@etherisc/gif-next 0.0.2-d10d6b3-916 → 0.0.2-d13bb9e-069

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 (714) hide show
  1. package/README.md +79 -19
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -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/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +483 -552
  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 +1342 -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/distribution/Distribution.sol/Distribution.json +1012 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1405 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +932 -0
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1491 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1946 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1545 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1980 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +274 -1320
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +444 -172
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +344 -3137
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1623 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1008 -387
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +498 -415
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +329 -127
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3607 -0
  76. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  78. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  79. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  80. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  82. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  84. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  86. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  88. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  90. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  91. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  94. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  95. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  96. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  98. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  100. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +378 -373
  104. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  106. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1276 -0
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1431 -0
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  120. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +931 -0
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +937 -0
  124. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1267 -0
  126. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  127. package/artifacts/contracts/pool/Pool.sol/Pool.json +1062 -0
  128. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1612 -0
  130. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
  132. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  134. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  136. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1098 -0
  138. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  140. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1397 -0
  142. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  144. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  145. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IApplicationService.sol/IApplicationService.json} +252 -181
  146. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +913 -0
  148. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +896 -0
  150. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  152. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +950 -0
  154. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +125 -191
  156. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1268 -0
  158. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +770 -0
  160. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  162. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  164. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  165. package/artifacts/contracts/product/Product.sol/Product.json +1056 -0
  166. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  168. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  170. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +611 -127
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +290 -297
  176. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  178. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.json +940 -162
  180. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  182. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +279 -410
  184. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +315 -131
  186. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  188. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  190. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  192. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  194. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  195. package/artifacts/contracts/shared/Component.sol/Component.json +685 -0
  196. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  198. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  200. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  201. package/artifacts/contracts/shared/{RegisterableUpgradable.sol/RegisterableUpgradable.json → ComponentVerifyingService.sol/ComponentVerifyingService.json} +149 -159
  202. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  203. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  204. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  205. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +267 -202
  206. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  208. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +350 -378
  210. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  212. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  213. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  214. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  216. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  217. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  218. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  220. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  221. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  222. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
  224. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  226. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  229. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  230. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  231. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  232. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  234. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  236. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +65 -30
  238. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  239. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  240. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +44 -54
  242. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  244. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  245. package/artifacts/contracts/shared/Service.sol/Service.json +115 -183
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  249. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  256. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  257. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  273. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  274. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  276. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  278. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  280. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  282. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  286. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  288. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  289. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  290. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  292. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  294. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  296. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  298. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  300. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  302. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  306. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  314. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  318. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  320. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  322. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  328. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  330. package/contracts/authorization/AccessAdmin.sol +592 -0
  331. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  332. package/contracts/authorization/Authorization.sol +221 -0
  333. package/contracts/authorization/IAccess.sol +48 -0
  334. package/contracts/authorization/IAccessAdmin.sol +135 -0
  335. package/contracts/authorization/IAuthorization.sol +54 -0
  336. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  337. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  338. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  339. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  340. package/contracts/distribution/BasicDistribution.sol +138 -0
  341. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  342. package/contracts/distribution/Distribution.sol +295 -0
  343. package/contracts/distribution/DistributionService.sol +336 -0
  344. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  345. package/contracts/distribution/IDistributionComponent.sol +52 -0
  346. package/contracts/distribution/IDistributionService.sol +101 -0
  347. package/contracts/examples/fire/DamageLevel.sol +59 -0
  348. package/contracts/examples/fire/FirePool.sol +75 -0
  349. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  350. package/contracts/examples/fire/FireProduct.sol +410 -0
  351. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  352. package/contracts/examples/fire/FireUSD.sol +26 -0
  353. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  354. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  355. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  356. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  357. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
  358. package/contracts/instance/IInstance.sol +56 -49
  359. package/contracts/instance/IInstanceService.sol +78 -18
  360. package/contracts/instance/Instance.sol +157 -382
  361. package/contracts/instance/InstanceAdmin.sol +288 -0
  362. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  363. package/contracts/instance/InstanceReader.sol +264 -84
  364. package/contracts/instance/InstanceService.sol +408 -175
  365. package/contracts/instance/InstanceServiceManager.sol +14 -32
  366. package/contracts/instance/InstanceStore.sol +287 -0
  367. package/contracts/instance/base/BalanceStore.sol +123 -0
  368. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  369. package/contracts/instance/base/ObjectCounter.sol +21 -0
  370. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  371. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +21 -37
  372. package/contracts/instance/module/IAccess.sol +29 -21
  373. package/contracts/instance/module/IBundle.sol +8 -8
  374. package/contracts/instance/module/IComponents.sol +48 -0
  375. package/contracts/instance/module/IDistribution.sol +6 -4
  376. package/contracts/instance/module/IPolicy.sol +58 -19
  377. package/contracts/instance/module/IRisk.sol +1 -1
  378. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  379. package/contracts/oracle/BasicOracle.sol +48 -0
  380. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  381. package/contracts/oracle/IOracle.sol +36 -0
  382. package/contracts/oracle/IOracleComponent.sol +33 -0
  383. package/contracts/oracle/IOracleService.sol +65 -0
  384. package/contracts/oracle/Oracle.sol +167 -0
  385. package/contracts/oracle/OracleService.sol +281 -0
  386. package/contracts/oracle/OracleServiceManager.sol +39 -0
  387. package/contracts/pool/BasicPool.sol +166 -0
  388. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  389. package/contracts/pool/BundleService.sol +461 -0
  390. package/contracts/pool/BundleServiceManager.sol +39 -0
  391. package/contracts/pool/IBundleService.sol +143 -0
  392. package/contracts/pool/IPoolComponent.sol +68 -0
  393. package/contracts/pool/IPoolService.sol +171 -0
  394. package/contracts/pool/Pool.sol +353 -0
  395. package/contracts/pool/PoolService.sol +563 -0
  396. package/contracts/pool/PoolServiceManager.sol +39 -0
  397. package/contracts/product/ApplicationService.sol +251 -0
  398. package/contracts/product/ApplicationServiceManager.sol +38 -0
  399. package/contracts/product/BasicProduct.sol +53 -0
  400. package/contracts/product/BasicProductAuthorization.sol +43 -0
  401. package/contracts/product/ClaimService.sol +581 -0
  402. package/contracts/product/ClaimServiceManager.sol +38 -0
  403. package/contracts/product/IApplicationService.sol +63 -0
  404. package/contracts/product/IClaimService.sol +123 -0
  405. package/contracts/product/IPolicyService.sol +80 -0
  406. package/contracts/product/IPricingService.sol +39 -0
  407. package/contracts/product/IProductComponent.sol +53 -0
  408. package/contracts/product/IRiskService.sol +33 -0
  409. package/contracts/product/PolicyService.sol +686 -0
  410. package/contracts/product/PolicyServiceManager.sol +39 -0
  411. package/contracts/product/PricingService.sol +300 -0
  412. package/contracts/product/PricingServiceManager.sol +39 -0
  413. package/contracts/product/Product.sol +432 -0
  414. package/contracts/product/RiskService.sol +96 -0
  415. package/contracts/product/RiskServiceManager.sol +39 -0
  416. package/contracts/registry/ChainNft.sol +79 -31
  417. package/contracts/registry/IRegistry.sol +124 -35
  418. package/contracts/registry/IRegistryService.sol +38 -28
  419. package/contracts/registry/ITransferInterceptor.sol +1 -0
  420. package/contracts/registry/Registry.sol +532 -273
  421. package/contracts/registry/RegistryAdmin.sol +464 -0
  422. package/contracts/registry/RegistryService.sol +135 -234
  423. package/contracts/registry/RegistryServiceManager.sol +26 -53
  424. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  425. package/contracts/registry/ReleaseRegistry.sol +491 -0
  426. package/contracts/registry/ServiceAuthorizationV3.sol +198 -0
  427. package/contracts/registry/TokenRegistry.sol +261 -57
  428. package/contracts/shared/Component.sol +268 -0
  429. package/contracts/shared/ComponentService.sol +641 -0
  430. package/contracts/shared/ComponentServiceManager.sol +38 -0
  431. package/contracts/shared/ComponentVerifyingService.sol +116 -0
  432. package/contracts/shared/ContractLib.sol +38 -0
  433. package/contracts/shared/IComponent.sol +70 -0
  434. package/contracts/shared/IComponentService.sol +108 -0
  435. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  436. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  437. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  438. package/contracts/shared/INftOwnable.sol +13 -12
  439. package/contracts/shared/IPolicyHolder.sol +35 -0
  440. package/contracts/shared/IRegisterable.sol +4 -6
  441. package/contracts/shared/IRegistryLinked.sol +11 -0
  442. package/contracts/shared/IService.sol +16 -6
  443. package/contracts/shared/InitializableCustom.sol +177 -0
  444. package/contracts/shared/InitializableERC165.sol +27 -0
  445. package/contracts/shared/InstanceLinkedComponent.sol +171 -0
  446. package/contracts/shared/KeyValueStore.sol +131 -0
  447. package/contracts/shared/Lifecycle.sol +77 -0
  448. package/contracts/shared/NftIdSet.sol +65 -0
  449. package/contracts/shared/NftOwnable.sol +59 -86
  450. package/contracts/shared/PolicyHolder.sol +62 -0
  451. package/contracts/shared/Registerable.sol +23 -38
  452. package/contracts/shared/RegistryLinked.sol +44 -0
  453. package/contracts/shared/Service.sol +62 -30
  454. package/contracts/shared/TokenHandler.sol +122 -10
  455. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  456. package/contracts/staking/IStaking.sol +168 -0
  457. package/contracts/staking/IStakingService.sol +160 -0
  458. package/contracts/staking/StakeManagerLib.sol +224 -0
  459. package/contracts/staking/Staking.sol +498 -0
  460. package/contracts/staking/StakingLifecycle.sol +23 -0
  461. package/contracts/staking/StakingManager.sol +52 -0
  462. package/contracts/staking/StakingReader.sol +183 -0
  463. package/contracts/staking/StakingService.sol +407 -0
  464. package/contracts/staking/StakingServiceManager.sol +44 -0
  465. package/contracts/staking/StakingStore.sol +605 -0
  466. package/contracts/staking/TargetManagerLib.sol +211 -0
  467. package/contracts/{types → type}/AddressSet.sol +1 -1
  468. package/contracts/type/Amount.sol +150 -0
  469. package/contracts/{types → type}/Blocknumber.sol +27 -3
  470. package/contracts/type/ClaimId.sol +80 -0
  471. package/contracts/{types → type}/DistributorType.sol +2 -2
  472. package/contracts/{types → type}/Fee.sol +33 -23
  473. package/contracts/{types → type}/NftId.sol +22 -15
  474. package/contracts/{types → type}/NftIdSet.sol +2 -2
  475. package/contracts/type/ObjectType.sol +275 -0
  476. package/contracts/type/PayoutId.sol +82 -0
  477. package/contracts/{types → type}/Referral.sol +6 -1
  478. package/contracts/type/RequestId.sol +75 -0
  479. package/contracts/{types → type}/RiskId.sol +16 -2
  480. package/contracts/type/RoleId.sol +174 -0
  481. package/contracts/type/Seconds.sol +101 -0
  482. package/contracts/type/Selector.sol +102 -0
  483. package/contracts/{types → type}/StateId.sol +35 -4
  484. package/contracts/type/String.sol +53 -0
  485. package/contracts/{types → type}/Timestamp.sol +34 -15
  486. package/contracts/{types → type}/UFixed.sol +39 -9
  487. package/contracts/{types → type}/Version.sol +5 -2
  488. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  489. package/contracts/upgradeability/ProxyManager.sol +231 -0
  490. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  491. package/contracts/upgradeability/Versionable.sol +59 -0
  492. package/package.json +10 -7
  493. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  494. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  495. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  496. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  497. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  498. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  499. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  500. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  501. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  502. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  503. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  504. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  505. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  506. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -813
  507. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  508. package/artifacts/contracts/components/Product.sol/Product.json +0 -729
  509. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  511. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  513. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  515. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  516. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  517. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  518. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  519. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  521. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  523. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  525. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  527. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  529. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  531. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  532. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  533. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  534. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  535. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  536. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  537. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  538. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  539. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  541. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  543. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  544. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  545. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  547. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  548. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
  549. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  550. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  551. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -775
  553. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  554. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  555. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  556. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  557. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -272
  559. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  560. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  561. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  562. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  563. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  564. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  565. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  566. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  567. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  568. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  572. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  574. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  576. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1049
  582. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -464
  584. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
  586. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  587. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
  588. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  589. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  590. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  591. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  592. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  593. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  594. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  596. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  597. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  598. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  599. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  600. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  601. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  603. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  605. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  607. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  609. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  611. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  613. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  615. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  616. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  617. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  618. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  619. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  621. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  623. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  625. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  627. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  629. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  631. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  632. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  633. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  635. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  637. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  639. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  641. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  643. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  646. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  648. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  650. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  652. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  654. package/contracts/components/BaseComponent.sol +0 -91
  655. package/contracts/components/Distribution.sol +0 -163
  656. package/contracts/components/IBaseComponent.sol +0 -25
  657. package/contracts/components/IDistributionComponent.sol +0 -44
  658. package/contracts/components/IPoolComponent.sol +0 -66
  659. package/contracts/components/IProductComponent.sol +0 -35
  660. package/contracts/components/Pool.sol +0 -267
  661. package/contracts/components/Product.sol +0 -289
  662. package/contracts/experiment/cloning/Cloner.sol +0 -47
  663. package/contracts/experiment/errors/Require.sol +0 -38
  664. package/contracts/experiment/errors/Revert.sol +0 -44
  665. package/contracts/experiment/inheritance/A.sol +0 -53
  666. package/contracts/experiment/inheritance/B.sol +0 -28
  667. package/contracts/experiment/inheritance/C.sol +0 -34
  668. package/contracts/experiment/inheritance/IA.sol +0 -13
  669. package/contracts/experiment/inheritance/IB.sol +0 -10
  670. package/contracts/experiment/inheritance/IC.sol +0 -12
  671. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  672. package/contracts/experiment/statemachine/ISM.sol +0 -25
  673. package/contracts/experiment/statemachine/SM.sol +0 -57
  674. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  675. package/contracts/experiment/types/TypeA.sol +0 -47
  676. package/contracts/experiment/types/TypeB.sol +0 -29
  677. package/contracts/instance/AccessManagedSimple.sol +0 -115
  678. package/contracts/instance/AccessManagerSimple.sol +0 -692
  679. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  680. package/contracts/instance/InstanceAccessManager.sol +0 -288
  681. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  682. package/contracts/instance/base/IInstanceBase.sol +0 -23
  683. package/contracts/instance/base/KeyValueStore.sol +0 -172
  684. package/contracts/instance/base/Lifecycle.sol +0 -100
  685. package/contracts/instance/module/ISetup.sol +0 -46
  686. package/contracts/instance/module/ITreasury.sol +0 -23
  687. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  688. package/contracts/instance/service/DistributionService.sol +0 -88
  689. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  690. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  691. package/contracts/instance/service/IDistributionService.sol +0 -12
  692. package/contracts/instance/service/IPoolService.sol +0 -51
  693. package/contracts/instance/service/IProductService.sol +0 -110
  694. package/contracts/instance/service/PoolService.sol +0 -287
  695. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  696. package/contracts/instance/service/ProductService.sol +0 -570
  697. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  698. package/contracts/shared/ContractDeployerLib.sol +0 -72
  699. package/contracts/shared/ERC165.sol +0 -25
  700. package/contracts/shared/ProxyManager.sol +0 -94
  701. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  702. package/contracts/shared/Versionable.sol +0 -147
  703. package/contracts/test/TestFee.sol +0 -25
  704. package/contracts/test/TestRegisterable.sol +0 -18
  705. package/contracts/test/TestRoleId.sol +0 -14
  706. package/contracts/test/TestService.sol +0 -24
  707. package/contracts/test/TestToken.sol +0 -26
  708. package/contracts/test/TestVersion.sol +0 -44
  709. package/contracts/test/TestVersionable.sol +0 -17
  710. package/contracts/types/ChainId.sol +0 -38
  711. package/contracts/types/NumberId.sol +0 -52
  712. package/contracts/types/ObjectType.sol +0 -152
  713. package/contracts/types/RoleId.sol +0 -90
  714. /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 {
@@ -0,0 +1,150 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {UFixed, UFixedLib} from "./UFixed.sol";
5
+
6
+ type Amount is uint96;
7
+
8
+ using {
9
+ addAmount as +,
10
+ subAmount as -,
11
+ eqAmount as ==,
12
+ nqAmount as !=,
13
+ ltAmount as <,
14
+ ltAmount as <=,
15
+ gtAmount as >,
16
+ gteAmount as >=,
17
+ AmountLib.add,
18
+ AmountLib.eq,
19
+ AmountLib.eqz,
20
+ AmountLib.gtz,
21
+ AmountLib.gt,
22
+ AmountLib.gte,
23
+ AmountLib.multiplyWith,
24
+ AmountLib.toInt,
25
+ AmountLib.toUFixed
26
+ } for Amount global;
27
+
28
+ function addAmount(Amount a, Amount b) pure returns (Amount) {
29
+ return AmountLib.add(a, b);
30
+ }
31
+
32
+ function subAmount(Amount a, Amount b) pure returns (Amount) {
33
+ return AmountLib.sub(a, b);
34
+ }
35
+
36
+ function eqAmount(Amount a, Amount b) pure returns (bool) {
37
+ return AmountLib.eq(a, b);
38
+ }
39
+
40
+ function nqAmount(Amount a, Amount b) pure returns (bool) {
41
+ return !AmountLib.eq(a, b);
42
+ }
43
+
44
+ function ltAmount(Amount a, Amount b) pure returns (bool) {
45
+ return AmountLib.lt(a, b);
46
+ }
47
+
48
+ function lteAmount(Amount a, Amount b) pure returns (bool) {
49
+ return AmountLib.lte(a, b);
50
+ }
51
+
52
+ function gtAmount(Amount a, Amount b) pure returns (bool) {
53
+ return AmountLib.gt(a, b);
54
+ }
55
+
56
+ function gteAmount(Amount a, Amount b) pure returns (bool) {
57
+ return AmountLib.gte(a, b);
58
+ }
59
+
60
+ library AmountLib {
61
+
62
+ error ErrorAmountLibValueTooBig(uint256 amount);
63
+
64
+ function zero() public pure returns (Amount) {
65
+ return Amount.wrap(0);
66
+ }
67
+
68
+ function max() public pure returns (Amount) {
69
+ return Amount.wrap(_max());
70
+ }
71
+
72
+ /// @dev converts the uint amount into Amount
73
+ /// function reverts if value is exceeding max Amount value
74
+ function toAmount(uint256 amount) public pure returns (Amount) {
75
+ if(amount > _max()) {
76
+ revert ErrorAmountLibValueTooBig(amount);
77
+ }
78
+
79
+ return Amount.wrap(uint96(amount));
80
+ }
81
+
82
+ /// @dev return true if amount equals 0
83
+ function eqz(Amount amount) public pure returns (bool) {
84
+ return Amount.unwrap(amount) == 0;
85
+ }
86
+
87
+ /// @dev return true if amount1 equals amount2
88
+ function eq(Amount amount1, Amount amount2) public pure returns (bool) {
89
+ return Amount.unwrap(amount1) == Amount.unwrap(amount2);
90
+ }
91
+
92
+ /// @dev return true if amount a1 is less than a2
93
+ function lt(Amount a1, Amount a2) public pure returns (bool) {
94
+ return Amount.unwrap(a1) < Amount.unwrap(a2);
95
+ }
96
+
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
103
+ function gt(Amount a1, Amount a2) public pure returns (bool) {
104
+ return Amount.unwrap(a1) > Amount.unwrap(a2);
105
+ }
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
+
121
+ /// @dev return true if amount is larger than 0
122
+ function gtz(Amount amount) public pure returns (bool) {
123
+ return Amount.unwrap(amount) > 0;
124
+ }
125
+
126
+ function add(Amount a1, Amount a2) public pure returns (Amount) {
127
+ return Amount.wrap(Amount.unwrap(a1) + Amount.unwrap(a2));
128
+ }
129
+
130
+ function sub(Amount a1, Amount a2) public pure returns (Amount) {
131
+ return Amount.wrap(Amount.unwrap(a1) - Amount.unwrap(a2));
132
+ }
133
+
134
+ function toInt(Amount amount) public pure returns (uint256) {
135
+ return uint256(uint96(Amount.unwrap(amount)));
136
+ }
137
+
138
+ function toUFixed(Amount amount) public pure returns (UFixed) {
139
+ return UFixedLib.toUFixed(Amount.unwrap(amount));
140
+ }
141
+
142
+ function multiplyWith(Amount amount, UFixed factor) public pure returns (Amount) {
143
+ return toAmount((factor * UFixedLib.toUFixed(Amount.unwrap(amount))).toInt());
144
+ }
145
+
146
+ function _max() internal pure returns (uint96) {
147
+ // IMPORTANT: type nees to match with actual definition for Amount
148
+ return type(uint96).max;
149
+ }
150
+ }
@@ -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,9 +57,10 @@ 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
 
63
+ // TODO move to BlocknumberLib and rename to zero()
55
64
  /// @dev Return the Blocknumber zero (0)
56
65
  function zeroBlocknumber() pure returns (Blocknumber) {
57
66
  return toBlocknumber(0);
@@ -63,6 +72,21 @@ function blockNumber() view returns (Blocknumber) {
63
72
  }
64
73
 
65
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
+
66
90
  /// @dev return true if Blocknumber a is greater than Blocknumber b
67
91
  function gt(
68
92
  Blocknumber a,
@@ -0,0 +1,80 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // uint16 allows for 65'535 claims per policy
5
+ type ClaimId is uint16;
6
+
7
+ import {CLAIM} from "./ObjectType.sol";
8
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
9
+ import {NftId} from "./NftId.sol";
10
+
11
+ // type bindings
12
+ using {
13
+ eqClaimId as ==,
14
+ neClaimId as !=,
15
+ ClaimIdLib.eq,
16
+ ClaimIdLib.eqz,
17
+ ClaimIdLib.gtz,
18
+ ClaimIdLib.toInt,
19
+ ClaimIdLib.toKey32
20
+ } for ClaimId global;
21
+
22
+
23
+ // pure free functions for operators
24
+ function eqClaimId(ClaimId a, ClaimId b) pure returns (bool isSame) {
25
+ return ClaimIdLib.eq(a, b);
26
+ }
27
+
28
+ function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
29
+ return ClaimId.unwrap(a) != ClaimId.unwrap(b);
30
+ }
31
+
32
+ // library functions that operate on user defined type
33
+ library ClaimIdLib {
34
+ /// @dev claim id min value (0), use only for non-initialized values
35
+ function zero() public pure returns (ClaimId) {
36
+ return ClaimId.wrap(0);
37
+ }
38
+ /// @dev claim id max value (2**16-1), use only for non-initialized values
39
+ function max() public pure returns (ClaimId) {
40
+ return ClaimId.wrap(type(uint16).max);
41
+ }
42
+
43
+ /// @dev Converts an uint into a ClaimId.
44
+ function toClaimId(uint256 a) public pure returns (ClaimId) {
45
+ return ClaimId.wrap(uint16(a));
46
+ }
47
+
48
+ /// @dev Converts the ClaimId to a uint.
49
+ function toInt(ClaimId a) public pure returns (uint16) {
50
+ return uint16(ClaimId.unwrap(a));
51
+ }
52
+
53
+ /// @dev Converts the ClaimId and NftId to a Key32.
54
+ function toKey32(ClaimId claimId, NftId policyNftId) public pure returns (Key32) {
55
+ return Key32Lib.toKey32(CLAIM(), toKeyId(claimId, policyNftId));
56
+ }
57
+
58
+ /// @dev Converts the ClaimId and NftId to a Key32.
59
+ function toKeyId(ClaimId claimId, NftId policyNftId) public pure returns (KeyId) {
60
+ return KeyId.wrap(
61
+ bytes31(
62
+ bytes14(
63
+ uint112(
64
+ NftId.unwrap(policyNftId) << 16 + ClaimId.unwrap(claimId)))));
65
+ }
66
+
67
+ /// @dev Returns true if the value is non-zero (> 0).
68
+ function gtz(ClaimId a) public pure returns (bool) {
69
+ return ClaimId.unwrap(a) > 0;
70
+ }
71
+
72
+ function eq(ClaimId a, ClaimId b) public pure returns (bool) {
73
+ return ClaimId.unwrap(a) == ClaimId.unwrap(b);
74
+ }
75
+
76
+ /// @dev Returns true if the value is zero (== 0).
77
+ function eqz(ClaimId a) public pure returns (bool) {
78
+ return ClaimId.unwrap(a) == 0;
79
+ }
80
+ }
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {NftId} from "./NftId.sol";
6
- import {DISTRIBUTION_TYPE} from "./ObjectType.sol";
6
+ import {DISTRIBUTOR_TYPE} from "./ObjectType.sol";
7
7
 
8
8
  type DistributorType is bytes8;
9
9
 
@@ -45,7 +45,7 @@ library DistributorTypeLib {
45
45
 
46
46
  /// @dev Returns the key32 value for the specified nft id and object type.
47
47
  function toKey32(DistributorType id) public pure returns (Key32 key) {
48
- return Key32Lib.toKey32(DISTRIBUTION_TYPE(), toKeyId(id));
48
+ return Key32Lib.toKey32(DISTRIBUTOR_TYPE(), toKeyId(id));
49
49
  }
50
50
 
51
51
  /// @dev Returns the key id value for the specified nft id
@@ -1,30 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
+ import {Amount, AmountLib} from "./Amount.sol";
4
5
  import {UFixed, UFixedLib} from "./UFixed.sol";
5
6
 
6
7
  struct Fee {
7
8
  UFixed fractionalFee;
9
+ // TODO migrate fixed fee to Amount
8
10
  uint256 fixedFee;
9
11
  }
10
12
 
11
13
  library FeeLib {
12
14
 
13
- function calculateFee(
14
- Fee memory fee,
15
- uint256 amount
16
- )
17
- public
18
- pure
19
- returns (
20
- uint256 feeAmount,
21
- uint256 netAmount
22
- )
23
- {
24
- UFixed fractionalAmount = UFixedLib.toUFixed(amount) *
25
- fee.fractionalFee;
26
- feeAmount = fractionalAmount.toInt() + fee.fixedFee;
27
- netAmount = amount - feeAmount;
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);
28
18
  }
29
19
 
30
20
  /// @dev Converts the uint256 to a fee struct.
@@ -35,22 +25,42 @@ library FeeLib {
35
25
  return Fee(fractionalFee, fixedFee);
36
26
  }
37
27
 
28
+ /// @dev Calculates fee and net amounts for the provided parameters
29
+ function calculateFee(
30
+ Fee memory fee,
31
+ Amount amount
32
+ )
33
+ public
34
+ pure
35
+ returns (
36
+ Amount feeAmount,
37
+ Amount netAmount
38
+ )
39
+ {
40
+ netAmount = amount;
41
+ if(gtz(fee)) {
42
+ UFixed fractionalAmount =
43
+ amount.toUFixed() * fee.fractionalFee;
44
+ feeAmount = AmountLib.toAmount(fractionalAmount.toInt() + fee.fixedFee);
45
+ netAmount = netAmount - feeAmount;
46
+ }
47
+ }
48
+
38
49
  /// @dev Return the percent fee struct (x%, 0)
39
50
  function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
40
51
  return Fee(UFixedLib.toUFixed(percent, -2), 0);
41
52
  }
42
53
 
43
- /// @dev Return a zero fee struct (0, 0)
44
- function zeroFee() public pure returns (Fee memory fee) {
45
- return Fee(UFixed.wrap(0), 0);
46
- }
47
-
48
54
  // pure free functions for operators
49
- 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) {
50
56
  return a.fixedFee == b.fixedFee && a.fractionalFee == b.fractionalFee;
51
57
  }
52
58
 
53
- function feeIsZero(Fee memory fee) public pure returns (bool) {
59
+ function gtz(Fee memory fee) public pure returns (bool) {
60
+ return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee > 0;
61
+ }
62
+
63
+ function eqz(Fee memory fee) public pure returns (bool) {
54
64
  return fee.fixedFee == 0 && UFixed.unwrap(fee.fractionalFee) == 0;
55
65
  }
56
66
  }
@@ -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,32 +14,34 @@ 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
- /// @dev Return the NftId zero (0)
28
- function zeroNftId() pure returns (NftId) {
29
- return NftId.wrap(0);
30
- }
31
-
32
22
  // pure free functions for operators
33
23
  function eqNftId(NftId a, NftId b) pure returns (bool isSame) {
34
- return NftId.unwrap(a) == NftId.unwrap(b);
24
+ return NftIdLib.eq(a, b);
35
25
  }
36
26
 
37
27
  function neNftId(NftId a, NftId b) pure returns (bool isDifferent) {
38
- return NftId.unwrap(a) != NftId.unwrap(b);
28
+ return NftIdLib.ne(a, b);
39
29
  }
40
30
 
41
31
  // library functions that operate on user defined type
42
32
  library NftIdLib {
33
+
34
+ /// @dev the zero nft id
35
+ /// is never a valid nft id and implies a non-initialized value
36
+ function zero() public pure returns (NftId) {
37
+ return NftId.wrap(0);
38
+ }
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
+
43
45
  /// @dev Converts the NftId to a uint256.
44
46
  function toInt(NftId nftId) public pure returns (uint96) {
45
47
  return uint96(NftId.unwrap(nftId));
@@ -57,7 +59,12 @@ library NftIdLib {
57
59
 
58
60
  /// @dev Returns true if the values are equal (==).
59
61
  function eq(NftId a, NftId b) public pure returns (bool isSame) {
60
- 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);
61
68
  }
62
69
 
63
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 {