@etherisc/gif-next 0.0.2-9addcc0-107 → 0.0.2-9b4e378-274

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 (629) 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 +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{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 +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1489 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +179 -396
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1512 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +170 -264
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +182 -309
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +240 -2316
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +203 -46
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +427 -2916
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +612 -345
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -207
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -102
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3722 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1018 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +252 -264
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1474 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +212 -35
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +343 -212
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +442 -356
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1591 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +746 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1437 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +25 -127
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +145 -2
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +229 -85
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +271 -184
  133. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +15 -57
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1226 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +972 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +766 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/{components → product}/Product.sol/Product.json +345 -342
  145. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  146. package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
  147. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +183 -29
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +444 -44
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +374 -72
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -41
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +105 -146
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +22 -114
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  181. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +77 -108
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  190. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  192. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  194. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  196. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  199. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  200. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  201. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  202. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  203. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +940 -0
  205. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  207. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  209. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  211. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  213. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  215. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  219. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +364 -9
  223. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  224. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  229. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  231. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.json +1975 -0
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +765 -0
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  247. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  249. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  253. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  255. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  257. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  259. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  261. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  263. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  265. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  267. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  269. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  271. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  273. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  275. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  277. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  283. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  285. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  287. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  288. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  289. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  291. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  293. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  295. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  297. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  298. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  299. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  301. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  303. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  304. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  305. package/contracts/authorization/AccessAdmin.sol +591 -0
  306. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  307. package/contracts/authorization/Authorization.sol +217 -0
  308. package/contracts/authorization/IAccess.sol +48 -0
  309. package/contracts/authorization/IAccessAdmin.sol +136 -0
  310. package/contracts/authorization/IAuthorization.sol +54 -0
  311. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  312. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  313. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  314. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  315. package/contracts/distribution/BasicDistribution.sol +138 -0
  316. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  317. package/contracts/{components → distribution}/Distribution.sol +167 -157
  318. package/contracts/distribution/DistributionService.sol +336 -0
  319. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  320. package/contracts/distribution/IDistributionComponent.sol +52 -0
  321. package/contracts/{instance/service → distribution}/IDistributionService.sol +33 -33
  322. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
  323. package/contracts/instance/IInstance.sol +37 -78
  324. package/contracts/instance/IInstanceService.sol +50 -21
  325. package/contracts/instance/Instance.sol +138 -227
  326. package/contracts/instance/InstanceAdmin.sol +285 -0
  327. package/contracts/instance/InstanceAuthorizationV3.sol +203 -0
  328. package/contracts/instance/InstanceReader.sol +122 -66
  329. package/contracts/instance/InstanceService.sol +292 -309
  330. package/contracts/instance/InstanceServiceManager.sol +12 -26
  331. package/contracts/instance/InstanceStore.sol +291 -0
  332. package/contracts/instance/base/BalanceStore.sol +123 -0
  333. package/contracts/instance/base/Cloneable.sol +28 -0
  334. package/contracts/instance/base/ObjectCounter.sol +21 -0
  335. package/contracts/instance/base/ObjectLifecycle.sol +110 -0
  336. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  337. package/contracts/instance/module/IAccess.sol +4 -12
  338. package/contracts/instance/module/IBundle.sol +6 -9
  339. package/contracts/instance/module/IComponents.sol +20 -15
  340. package/contracts/instance/module/IDistribution.sol +5 -6
  341. package/contracts/instance/module/IPolicy.sol +39 -31
  342. package/contracts/instance/module/IRisk.sol +1 -1
  343. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  344. package/contracts/oracle/BasicOracle.sol +48 -0
  345. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  346. package/contracts/oracle/IOracle.sol +36 -0
  347. package/contracts/oracle/IOracleComponent.sol +33 -0
  348. package/contracts/oracle/IOracleService.sol +65 -0
  349. package/contracts/oracle/Oracle.sol +167 -0
  350. package/contracts/oracle/OracleService.sol +279 -0
  351. package/contracts/oracle/OracleServiceManager.sol +39 -0
  352. package/contracts/pool/BasicPool.sol +166 -0
  353. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  354. package/contracts/pool/BundleService.sol +438 -0
  355. package/contracts/pool/BundleServiceManager.sol +39 -0
  356. package/contracts/{instance/service → pool}/IBundleService.sol +46 -30
  357. package/contracts/pool/IPoolComponent.sol +58 -0
  358. package/contracts/{instance/service → pool}/IPoolService.sol +91 -45
  359. package/contracts/pool/Pool.sol +326 -0
  360. package/contracts/pool/PoolService.sol +509 -0
  361. package/contracts/pool/PoolServiceManager.sol +39 -0
  362. package/contracts/product/ApplicationService.sol +249 -0
  363. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  364. package/contracts/product/BasicProduct.sol +53 -0
  365. package/contracts/product/BasicProductAuthorization.sol +43 -0
  366. package/contracts/{instance/service → product}/ClaimService.sol +171 -127
  367. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  368. package/contracts/{instance/service → product}/IApplicationService.sol +11 -27
  369. package/contracts/{instance/service → product}/IClaimService.sol +48 -16
  370. package/contracts/product/IPolicyService.sol +73 -0
  371. package/contracts/product/IPricingService.sol +39 -0
  372. package/contracts/{components → product}/IProductComponent.sol +15 -17
  373. package/contracts/product/IRiskService.sol +33 -0
  374. package/contracts/product/PolicyService.sol +574 -0
  375. package/contracts/product/PolicyServiceManager.sol +39 -0
  376. package/contracts/product/PricingService.sol +301 -0
  377. package/contracts/product/PricingServiceManager.sol +39 -0
  378. package/contracts/{components → product}/Product.sol +202 -149
  379. package/contracts/product/RiskService.sol +97 -0
  380. package/contracts/product/RiskServiceManager.sol +39 -0
  381. package/contracts/registry/ChainNft.sol +8 -1
  382. package/contracts/registry/IRegistry.sol +60 -27
  383. package/contracts/registry/IRegistryService.sol +42 -39
  384. package/contracts/registry/Registry.sol +235 -126
  385. package/contracts/registry/RegistryAdmin.sol +374 -0
  386. package/contracts/registry/RegistryService.sol +69 -99
  387. package/contracts/registry/RegistryServiceManager.sol +23 -32
  388. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  389. package/contracts/registry/ReleaseRegistry.sol +485 -0
  390. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  391. package/contracts/registry/TokenRegistry.sol +261 -62
  392. package/contracts/shared/Component.sol +268 -0
  393. package/contracts/shared/ComponentService.sol +641 -0
  394. package/contracts/shared/ComponentServiceManager.sol +35 -0
  395. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  396. package/contracts/{components → shared}/IComponent.sol +21 -41
  397. package/contracts/shared/IComponentService.sol +108 -0
  398. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  399. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  400. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  401. package/contracts/shared/INftOwnable.sol +2 -2
  402. package/contracts/shared/IPolicyHolder.sol +10 -5
  403. package/contracts/shared/IService.sol +10 -3
  404. package/contracts/shared/InitializableCustom.sol +177 -0
  405. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  406. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  407. package/contracts/shared/KeyValueStore.sol +131 -0
  408. package/contracts/shared/Lifecycle.sol +77 -0
  409. package/contracts/shared/NftIdSet.sol +65 -0
  410. package/contracts/shared/NftOwnable.sol +6 -17
  411. package/contracts/shared/PolicyHolder.sol +24 -19
  412. package/contracts/shared/Registerable.sol +3 -3
  413. package/contracts/shared/Service.sol +32 -22
  414. package/contracts/shared/TokenHandler.sol +113 -9
  415. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  416. package/contracts/staking/IStaking.sol +168 -0
  417. package/contracts/staking/IStakingService.sol +160 -0
  418. package/contracts/staking/StakeManagerLib.sol +224 -0
  419. package/contracts/staking/Staking.sol +498 -0
  420. package/contracts/staking/StakingLifecycle.sol +23 -0
  421. package/contracts/staking/StakingManager.sol +50 -0
  422. package/contracts/staking/StakingReader.sol +183 -0
  423. package/contracts/staking/StakingService.sol +407 -0
  424. package/contracts/staking/StakingServiceManager.sol +44 -0
  425. package/contracts/staking/StakingStore.sol +605 -0
  426. package/contracts/staking/TargetManagerLib.sol +211 -0
  427. package/contracts/{types → type}/AddressSet.sol +1 -1
  428. package/contracts/{types → type}/Amount.sol +29 -3
  429. package/contracts/{types → type}/Blocknumber.sol +26 -3
  430. package/contracts/{types → type}/Fee.sol +17 -16
  431. package/contracts/{types → type}/NftId.sol +14 -16
  432. package/contracts/{types → type}/NftIdSet.sol +2 -2
  433. package/contracts/type/ObjectType.sol +275 -0
  434. package/contracts/{types → type}/Referral.sol +2 -1
  435. package/contracts/type/RequestId.sol +75 -0
  436. package/contracts/{types → type}/RiskId.sol +1 -1
  437. package/contracts/type/RoleId.sol +174 -0
  438. package/contracts/type/Seconds.sol +101 -0
  439. package/contracts/type/Selector.sol +102 -0
  440. package/contracts/{types → type}/StateId.sol +27 -2
  441. package/contracts/type/String.sol +53 -0
  442. package/contracts/{types → type}/Timestamp.sol +17 -3
  443. package/contracts/{types → type}/UFixed.sol +34 -9
  444. package/contracts/{types → type}/Version.sol +4 -2
  445. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  446. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  447. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  448. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  449. package/package.json +8 -5
  450. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  451. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  452. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  453. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  454. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  455. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  456. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  457. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  458. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  459. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  460. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  461. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  462. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  463. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  464. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  465. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  466. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  467. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  469. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  472. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  474. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  475. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  476. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  477. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1124
  479. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -688
  481. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1283
  483. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
  485. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
  487. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
  489. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1847
  491. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -816
  493. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1281
  502. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
  504. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
  506. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  507. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
  508. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  509. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  510. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  511. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  512. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  513. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  514. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  515. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  516. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  517. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  518. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  519. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  520. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  521. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  522. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  523. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  524. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  525. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  527. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  528. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  529. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  530. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  531. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  532. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  533. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  534. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  535. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  536. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  537. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  538. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  539. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  540. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  541. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  542. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  543. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  544. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
  546. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  547. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  548. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  550. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  552. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  554. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -312
  556. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  557. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  558. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  560. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  561. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  562. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  564. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  566. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  568. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  569. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  570. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  572. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  574. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  576. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  577. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  580. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  582. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  584. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  586. package/contracts/components/Component.sol +0 -272
  587. package/contracts/components/IDistributionComponent.sol +0 -71
  588. package/contracts/components/IPoolComponent.sol +0 -114
  589. package/contracts/components/Pool.sol +0 -302
  590. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  591. package/contracts/instance/Cloneable.sol +0 -51
  592. package/contracts/instance/InstanceAccessManager.sol +0 -527
  593. package/contracts/instance/base/ComponentService.sol +0 -130
  594. package/contracts/instance/base/KeyValueStore.sol +0 -149
  595. package/contracts/instance/base/Lifecycle.sol +0 -120
  596. package/contracts/instance/module/ISetup.sol +0 -33
  597. package/contracts/instance/module/ITreasury.sol +0 -23
  598. package/contracts/instance/service/ApplicationService.sol +0 -356
  599. package/contracts/instance/service/BundleService.sol +0 -385
  600. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  601. package/contracts/instance/service/DistributionService.sol +0 -432
  602. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  603. package/contracts/instance/service/IPolicyService.sol +0 -80
  604. package/contracts/instance/service/IProductService.sol +0 -40
  605. package/contracts/instance/service/PolicyService.sol +0 -372
  606. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  607. package/contracts/instance/service/PoolService.sol +0 -403
  608. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  609. package/contracts/instance/service/ProductService.sol +0 -210
  610. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  611. package/contracts/registry/RegistryAccessManager.sol +0 -216
  612. package/contracts/registry/ReleaseManager.sol +0 -324
  613. package/contracts/shared/ContractDeployerLib.sol +0 -72
  614. package/contracts/test/TestFee.sol +0 -25
  615. package/contracts/test/TestRegisterable.sol +0 -18
  616. package/contracts/test/TestRoleId.sol +0 -14
  617. package/contracts/test/TestService.sol +0 -25
  618. package/contracts/test/TestToken.sol +0 -26
  619. package/contracts/test/TestVersion.sol +0 -44
  620. package/contracts/test/TestVersionable.sol +0 -17
  621. package/contracts/types/ChainId.sol +0 -38
  622. package/contracts/types/NumberId.sol +0 -52
  623. package/contracts/types/ObjectType.sol +0 -157
  624. package/contracts/types/RoleId.sol +0 -97
  625. package/contracts/types/Seconds.sol +0 -54
  626. /package/contracts/{types → type}/ClaimId.sol +0 -0
  627. /package/contracts/{types → type}/DistributorType.sol +0 -0
  628. /package/contracts/{types → type}/Key32.sol +0 -0
  629. /package/contracts/{types → type}/PayoutId.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,17 @@ using {
9
9
  addAmount as +,
10
10
  subAmount as -,
11
11
  eqAmount as ==,
12
+ nqAmount as !=,
12
13
  ltAmount as <,
13
14
  gtAmount as >,
15
+ AmountLib.add,
14
16
  AmountLib.eq,
15
17
  AmountLib.eqz,
16
18
  AmountLib.gtz,
19
+ AmountLib.gt,
20
+ AmountLib.gte,
21
+ AmountLib.multiplyWith,
17
22
  AmountLib.toInt,
18
- AmountLib.add,
19
23
  AmountLib.toUFixed
20
24
  } for Amount global;
21
25
 
@@ -31,6 +35,10 @@ function eqAmount(Amount a, Amount b) pure returns (bool) {
31
35
  return AmountLib.eq(a, b);
32
36
  }
33
37
 
38
+ function nqAmount(Amount a, Amount b) pure returns (bool) {
39
+ return !AmountLib.eq(a, b);
40
+ }
41
+
34
42
  function ltAmount(Amount a, Amount b) pure returns (bool) {
35
43
  return AmountLib.lt(a, b);
36
44
  }
@@ -71,16 +79,30 @@ library AmountLib {
71
79
  return Amount.unwrap(amount1) == Amount.unwrap(amount2);
72
80
  }
73
81
 
74
- /// @dev return true if amount a1 is smaller than a2
82
+ /// @dev return true if amount a1 is less than a2
75
83
  function lt(Amount a1, Amount a2) public pure returns (bool) {
76
84
  return Amount.unwrap(a1) < Amount.unwrap(a2);
77
85
  }
78
86
 
79
- /// @dev return true if amount a1 is larger than a2
87
+ /// @dev return true if amount a1 is greater than a2
80
88
  function gt(Amount a1, Amount a2) public pure returns (bool) {
81
89
  return Amount.unwrap(a1) > Amount.unwrap(a2);
82
90
  }
83
91
 
92
+ /// @dev return true if amount a1 is greater or equal than a2
93
+ function gte(Amount a1, Amount a2) public pure returns (bool) {
94
+ return Amount.unwrap(a1) >= Amount.unwrap(a2);
95
+ }
96
+
97
+ /// @dev return minimum of a1 and a2.
98
+ function min(Amount a1, Amount a2) public pure returns (Amount) {
99
+ if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
100
+ return a1;
101
+ }
102
+
103
+ return a2;
104
+ }
105
+
84
106
  /// @dev return true if amount is larger than 0
85
107
  function gtz(Amount amount) public pure returns (bool) {
86
108
  return Amount.unwrap(amount) > 0;
@@ -102,6 +124,10 @@ library AmountLib {
102
124
  return UFixedLib.toUFixed(Amount.unwrap(amount));
103
125
  }
104
126
 
127
+ function multiplyWith(Amount amount, UFixed factor) public pure returns (Amount) {
128
+ return toAmount((factor * UFixedLib.toUFixed(Amount.unwrap(amount))).toInt());
129
+ }
130
+
105
131
  function _max() internal pure returns (uint96) {
106
132
  // IMPORTANT: type nees to match with actual definition for Amount
107
133
  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,
@@ -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,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 {