@etherisc/gif-next 0.0.2-85cbb88-630 → 0.0.2-85e7957-019

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 (352) hide show
  1. package/README.md +16 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
  14. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  16. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +69 -26
  18. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
  20. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -0
  22. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +237 -74
  24. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -38
  26. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -0
  28. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +102 -0
  30. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  31. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  32. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  33. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  34. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1 -1
  35. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  36. package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
  37. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  38. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2 -2
  39. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  40. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
  41. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  42. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +79 -121
  43. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  44. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +11 -11
  45. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  46. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +6 -6
  47. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  48. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +70 -192
  49. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  50. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  51. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  52. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  54. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  55. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  56. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  58. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  59. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  61. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  64. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  65. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  66. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  67. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +46 -16
  68. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  69. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  70. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  71. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  72. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -0
  73. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  74. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +30 -0
  76. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  78. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
  80. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  81. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +50 -57
  82. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  83. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
  84. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  85. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +426 -50
  86. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +102 -26
  88. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  89. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +224 -0
  90. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  91. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +43 -56
  92. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  93. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +188 -53
  94. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  95. package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -56
  96. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +288 -89
  98. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -19
  100. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  101. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  102. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  103. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +2 -2
  104. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  105. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -0
  106. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
  108. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  109. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  110. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
  112. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  113. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  114. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  115. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +86 -1
  116. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  117. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  118. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -0
  119. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  120. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  121. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +169 -52
  122. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +42 -26
  124. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  125. package/artifacts/contracts/product/PricingService.sol/PricingService.json +7 -2
  126. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
  128. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  129. package/artifacts/contracts/product/Product.sol/Product.json +19 -0
  130. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  131. package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
  132. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
  134. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  135. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  136. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +48 -0
  137. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  138. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  139. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  140. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  141. package/artifacts/contracts/registry/Registry.sol/Registry.json +90 -18
  142. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  143. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
  144. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  145. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  146. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  148. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  150. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +2 -2
  152. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  153. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  154. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  155. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  156. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  158. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +271 -62
  159. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +60 -32
  161. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  162. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  164. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  165. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  166. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -0
  167. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  168. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  174. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  175. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  176. package/artifacts/contracts/shared/{ERC165.sol/ERC165.json → InitializableERC165.sol/InitializableERC165.json} +4 -4
  177. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  178. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -0
  179. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  180. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  181. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  182. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  183. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  184. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  185. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  186. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  187. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  188. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  189. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  190. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  191. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  192. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  193. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  194. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  195. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  196. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  197. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +12 -2
  198. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  199. package/artifacts/contracts/staking/Staking.sol/Staking.json +36 -36
  200. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  202. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  203. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +19 -19
  204. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  205. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  206. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  207. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
  208. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  209. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
  210. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  211. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +17 -12
  212. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  213. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +7 -2
  214. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  215. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  216. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  217. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  218. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  219. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  220. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  221. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  222. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  223. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  224. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  225. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  226. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  227. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  228. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  229. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  230. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  231. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  233. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  235. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  237. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  239. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  241. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  243. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  245. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  251. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  253. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
  255. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  257. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  259. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  260. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  261. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  262. package/artifacts/contracts/{shared → upgradeability}/ProxyManager.sol/ProxyManager.json +3 -3
  263. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  264. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  265. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  266. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  267. package/contracts/distribution/BasicDistribution.sol +4 -15
  268. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  269. package/contracts/distribution/Distribution.sol +22 -10
  270. package/contracts/distribution/DistributionService.sol +61 -26
  271. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  272. package/contracts/distribution/IDistributionComponent.sol +8 -4
  273. package/contracts/distribution/IDistributionService.sol +12 -0
  274. package/contracts/instance/IInstanceService.sol +1 -1
  275. package/contracts/instance/InstanceAuthorizationV3.sol +2 -0
  276. package/contracts/instance/InstanceReader.sol +8 -0
  277. package/contracts/instance/InstanceService.sol +1 -1
  278. package/contracts/instance/InstanceServiceManager.sol +2 -6
  279. package/contracts/instance/InstanceStore.sol +2 -1
  280. package/contracts/instance/module/IBundle.sol +1 -1
  281. package/contracts/instance/module/IComponents.sol +0 -5
  282. package/contracts/instance/module/IDistribution.sol +0 -1
  283. package/contracts/mock/Dip.sol +1 -1
  284. package/contracts/oracle/IOracleComponent.sol +2 -1
  285. package/contracts/oracle/Oracle.sol +15 -6
  286. package/contracts/oracle/OracleServiceManager.sol +2 -5
  287. package/contracts/pool/BasicPool.sol +3 -1
  288. package/contracts/pool/BasicPoolAuthorization.sol +9 -0
  289. package/contracts/pool/BundleService.sol +175 -29
  290. package/contracts/pool/BundleServiceManager.sol +2 -5
  291. package/contracts/pool/IBundleService.sol +31 -4
  292. package/contracts/pool/IPoolComponent.sol +6 -0
  293. package/contracts/pool/IPoolService.sol +12 -13
  294. package/contracts/pool/Pool.sol +28 -11
  295. package/contracts/pool/PoolService.sol +138 -61
  296. package/contracts/pool/PoolServiceManager.sol +2 -5
  297. package/contracts/product/ApplicationService.sol +12 -36
  298. package/contracts/product/ApplicationServiceManager.sol +2 -2
  299. package/contracts/product/BasicProduct.sol +3 -33
  300. package/contracts/product/BasicProductAuthorization.sol +3 -0
  301. package/contracts/product/ClaimService.sol +7 -32
  302. package/contracts/product/ClaimServiceManager.sol +2 -2
  303. package/contracts/product/IPolicyService.sol +8 -2
  304. package/contracts/product/IProductComponent.sol +1 -0
  305. package/contracts/product/PolicyService.sol +72 -18
  306. package/contracts/product/PolicyServiceManager.sol +2 -5
  307. package/contracts/product/PricingServiceManager.sol +2 -5
  308. package/contracts/product/Product.sol +20 -1
  309. package/contracts/product/ProductService.sol +7 -32
  310. package/contracts/product/ProductServiceManager.sol +2 -5
  311. package/contracts/registry/IRegistry.sol +24 -11
  312. package/contracts/registry/IRegistryService.sol +6 -6
  313. package/contracts/registry/Registry.sol +62 -64
  314. package/contracts/registry/RegistryService.sol +4 -18
  315. package/contracts/registry/RegistryServiceManager.sol +2 -2
  316. package/contracts/registry/ReleaseRegistry.sol +0 -2
  317. package/contracts/registry/ServiceAuthorizationV3.sol +5 -5
  318. package/contracts/shared/Component.sol +13 -14
  319. package/contracts/shared/ComponentService.sol +82 -12
  320. package/contracts/shared/ComponentServiceManager.sol +2 -2
  321. package/contracts/shared/IComponentService.sol +15 -9
  322. package/contracts/shared/IInstanceLinkedComponent.sol +6 -0
  323. package/contracts/shared/IService.sol +1 -1
  324. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  325. package/contracts/shared/InstanceLinkedComponent.sol +21 -0
  326. package/contracts/shared/NftOwnable.sol +2 -2
  327. package/contracts/shared/PolicyHolder.sol +2 -5
  328. package/contracts/shared/Service.sol +3 -4
  329. package/contracts/staking/IStaking.sol +1 -1
  330. package/contracts/staking/Staking.sol +19 -14
  331. package/contracts/staking/StakingManager.sol +2 -5
  332. package/contracts/staking/StakingReader.sol +6 -9
  333. package/contracts/staking/StakingServiceManager.sol +2 -2
  334. package/contracts/staking/StakingStore.sol +5 -15
  335. package/contracts/type/Amount.sol +12 -5
  336. package/contracts/type/Blocknumber.sol +7 -1
  337. package/contracts/type/ObjectType.sol +3 -7
  338. package/contracts/type/Referral.sol +1 -0
  339. package/contracts/type/Seconds.sol +13 -1
  340. package/contracts/type/Timestamp.sol +11 -1
  341. package/contracts/type/UFixed.sol +29 -10
  342. package/contracts/type/Version.sol +3 -1
  343. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  344. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  345. package/package.json +1 -1
  346. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  347. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  348. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  349. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  350. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  351. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  352. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -6,6 +6,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
6
6
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
7
  import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
8
 
9
+ import {Amount} from "../type/Amount.sol";
9
10
  import {Component} from "./Component.sol";
10
11
  import {IComponentService} from "./IComponentService.sol";
11
12
  import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
@@ -36,6 +37,7 @@ abstract contract InstanceLinkedComponent is
36
37
  IInstance _instance; // instance for this component
37
38
  InstanceReader _instanceReader; // instance reader for this component
38
39
  IAuthorization _initialAuthorization;
40
+ IComponentService _componentService;
39
41
  }
40
42
 
41
43
  function lock() external onlyOwner {
@@ -58,6 +60,17 @@ abstract contract InstanceLinkedComponent is
58
60
  return _getInstanceLinkedComponentStorage()._initialAuthorization;
59
61
  }
60
62
 
63
+ /// @inheritdoc IInstanceLinkedComponent
64
+ function withdrawFees(Amount amount)
65
+ external
66
+ virtual
67
+ onlyOwner()
68
+ restricted()
69
+ returns (Amount withdrawnAmount)
70
+ {
71
+ return _withdrawFees(amount);
72
+ }
73
+
61
74
  function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
62
75
  assembly {
63
76
  $.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
@@ -105,6 +118,7 @@ abstract contract InstanceLinkedComponent is
105
118
  // set component state
106
119
  $._instanceReader = $._instance.getInstanceReader();
107
120
  $._initialAuthorization = authorization;
121
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
108
122
 
109
123
  registerInterface(type(IAccessManaged).interfaceId);
110
124
  registerInterface(type(IInstanceLinkedComponent).interfaceId);
@@ -141,6 +155,13 @@ abstract contract InstanceLinkedComponent is
141
155
  return _getInstanceLinkedComponentStorage()._instanceReader;
142
156
  }
143
157
 
158
+ function _withdrawFees(Amount amount)
159
+ internal
160
+ returns (Amount withdrawnAmount)
161
+ {
162
+ return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
163
+ }
164
+
144
165
 
145
166
  /// @dev returns the service address for the specified domain
146
167
  /// gets address via lookup from registry using the major version form the linked instance
@@ -1,13 +1,13 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ERC165} from "./ERC165.sol";
4
+ import {InitializableERC165} from "./InitializableERC165.sol";
5
5
  import {INftOwnable} from "./INftOwnable.sol";
6
6
  import {NftId} from "../type/NftId.sol";
7
7
  import {RegistryLinked} from "./RegistryLinked.sol";
8
8
 
9
9
  contract NftOwnable is
10
- ERC165,
10
+ InitializableERC165,
11
11
  RegistryLinked,
12
12
  INftOwnable
13
13
  {
@@ -1,22 +1,19 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
4
  import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
6
- import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
7
5
 
8
6
  import {Amount} from "../type/Amount.sol";
9
7
  import {ClaimId} from "../type/ClaimId.sol";
10
- import {ERC165} from "./ERC165.sol";
8
+ import {InitializableERC165} from "./InitializableERC165.sol";
11
9
  import {IPolicyHolder} from "./IPolicyHolder.sol";
12
10
  import {NftId} from "../type/NftId.sol";
13
11
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
14
12
  import {RegistryLinked} from "./RegistryLinked.sol";
15
- import {IRegistry} from "../registry/IRegistry.sol";
16
13
 
17
14
  /// @dev template implementation for IPolicyHolder
18
15
  contract PolicyHolder is
19
- ERC165,
16
+ InitializableERC165,
20
17
  RegistryLinked, // TODO need upgradeable version
21
18
  IPolicyHolder
22
19
  {
@@ -6,13 +6,12 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
6
6
 
7
7
  import {IRegistry} from "../registry/IRegistry.sol";
8
8
  import {IService} from "./IService.sol";
9
- import {IVersionable} from "./IVersionable.sol";
10
- import {NftId} from "../type/NftId.sol";
9
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
11
10
  import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
12
11
  import {Registerable} from "./Registerable.sol";
13
12
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
- import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
15
- import {Versionable} from "./Versionable.sol";
13
+ import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
14
+ import {Versionable} from "../upgradeability/Versionable.sol";
16
15
 
17
16
 
18
17
  /// @dev service base contract
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
5
  import {IComponent} from "../shared/IComponent.sol";
6
- import {IVersionable} from "../shared/IVersionable.sol";
6
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
7
7
  import {NftId} from "../type/NftId.sol";
8
8
  import {ObjectType} from "../type/ObjectType.sol";
9
9
  import {Seconds} from "../type/Seconds.sol";
@@ -1,27 +1,27 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount, AmountLib} from "../type/Amount.sol";
5
- import {ChainNft} from "../registry/ChainNft.sol";
6
- import {Component} from "../shared/Component.sol";
7
4
  import {IRegistry} from "../registry/IRegistry.sol";
8
5
  import {IRegistryService} from "../registry/IRegistryService.sol";
9
6
  import {IStaking} from "./IStaking.sol";
10
- import {IVersionable} from "../shared/IVersionable.sol";
11
- import {Key32} from "../type/Key32.sol";
12
- import {NftId, NftIdLib} from "../type/NftId.sol";
13
- import {ObjectType, INSTANCE, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
14
- import {Seconds, SecondsLib} from "../type/Seconds.sol";
7
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
8
+
9
+ import {Amount, AmountLib} from "../type/Amount.sol";
10
+ import {Component} from "../shared/Component.sol";
11
+ import {IComponent} from "../shared/IComponent.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType, STAKING} from "../type/ObjectType.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
15
15
  import {StakeManagerLib} from "./StakeManagerLib.sol";
16
16
  import {StakingReader} from "./StakingReader.sol";
17
17
  import {StakingStore} from "./StakingStore.sol";
18
18
  import {TargetManagerLib} from "./TargetManagerLib.sol";
19
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
19
+ import {Timestamp} from "../type/Timestamp.sol";
20
20
  import {TokenHandler} from "../shared/TokenHandler.sol";
21
21
  import {TokenRegistry} from "../registry/TokenRegistry.sol";
22
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
22
+ import {UFixed} from "../type/UFixed.sol";
23
23
  import {Version, VersionLib} from "../type/Version.sol";
24
- import {Versionable} from "../shared/Versionable.sol";
24
+ import {Versionable} from "../upgradeability/Versionable.sol";
25
25
 
26
26
  contract Staking is
27
27
  Component,
@@ -37,6 +37,7 @@ contract Staking is
37
37
  struct StakingStorage {
38
38
  IRegistryService _registryService;
39
39
  TokenRegistry _tokenRegistry;
40
+ TokenHandler _tokenHandler;
40
41
  StakingStore _store;
41
42
  StakingReader _reader;
42
43
  NftId _protocolNftId;
@@ -385,6 +386,7 @@ contract Staking is
385
386
  address(tokenHandler),
386
387
  dipAmount);
387
388
 
389
+ // TODO: centralize token handling (issue #471)
388
390
  tokenHandler.transfer(from, stakingWallet, dipAmount);
389
391
  }
390
392
 
@@ -401,7 +403,8 @@ contract Staking is
401
403
  stakingWallet,
402
404
  address(tokenHandler),
403
405
  dipAmount);
404
-
406
+
407
+ // TODO: centralize token handling (issue #471)
405
408
  tokenHandler.transfer(stakingWallet, to, dipAmount);
406
409
  }
407
410
 
@@ -420,6 +423,9 @@ contract Staking is
420
423
  return address(_getStakingStorage()._tokenRegistry);
421
424
  }
422
425
 
426
+ function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
427
+ return _getStakingStorage()._tokenHandler;
428
+ }
423
429
 
424
430
  // from Versionable
425
431
  function getVersion()
@@ -490,14 +496,13 @@ contract Staking is
490
496
  "", // registry data
491
497
  ""); // component data
492
498
 
493
- _createAndSetTokenHandler();
494
-
495
499
  // wiring to external contracts
496
500
  StakingStorage storage $ = _getStakingStorage();
497
501
  $._protocolNftId = getRegistry().getProtocolNftId();
498
502
  $._store = StakingStore(stakingStoreAddress);
499
503
  $._reader = StakingStore(stakingStoreAddress).getStakingReader();
500
504
  $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
505
+ $._tokenHandler = new TokenHandler(address(getToken()));
501
506
 
502
507
  registerInterface(type(IStaking).interfaceId);
503
508
  }
@@ -1,13 +1,10 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {Staking} from "./Staking.sol";
7
- import {StakingReader} from "./StakingReader.sol";
8
- import {StakingStore} from "./StakingStore.sol";
9
7
 
10
- import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
11
8
 
12
9
  contract StakingManager is
13
10
  ProxyManager
@@ -1,21 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {Blocknumber} from "../type/Blocknumber.sol";
6
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
7
- import {IComponent} from "../shared/IComponent.sol";
8
- import {InitializableCustom} from "../shared/InitializableCustom.sol";
9
4
  import {IRegistry} from "../registry/IRegistry.sol";
10
5
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
11
6
  import {IStaking} from "../staking/IStaking.sol";
12
- import {IVersionable} from "../shared/IVersionable.sol";
7
+
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {Blocknumber} from "../type/Blocknumber.sol";
10
+ import {InitializableCustom} from "../shared/InitializableCustom.sol";
13
11
  import {NftId} from "../type/NftId.sol";
14
- import {ObjectType, STAKE, TARGET} from "../type/ObjectType.sol";
15
- import {Seconds} from "../type/Seconds.sol";
12
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
16
13
  import {StakingStore} from "./StakingStore.sol";
17
14
  import {Timestamp} from "../type/Timestamp.sol";
18
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
15
+ import {UFixed} from "../type/UFixed.sol";
19
16
 
20
17
  contract StakingReader is
21
18
  IRegistryLinked,
@@ -2,8 +2,8 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IVersionable} from "../shared/IVersionable.sol";
6
- import {ProxyManager} from "../shared/ProxyManager.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
7
  import {StakingService} from "./StakingService.sol";
8
8
 
9
9
  contract StakingServiceManager is
@@ -3,31 +3,21 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
5
 
6
- import {Amount, AmountLib} from "../type/Amount.sol";
7
- import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
8
- import {ChainNft} from "../registry/ChainNft.sol";
9
- import {Component} from "../shared/Component.sol";
10
6
  import {IRegistry} from "../registry/IRegistry.sol";
11
- import {IRegistryService} from "../registry/IRegistryService.sol";
12
7
  import {IStaking} from "./IStaking.sol";
13
- import {IVersionable} from "../shared/IVersionable.sol";
14
- import {Key32} from "../type/Key32.sol";
8
+
9
+ import {Amount, AmountLib} from "../type/Amount.sol";
10
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
15
11
  import {KeyValueStore} from "../shared/KeyValueStore.sol";
16
12
  import {KEEP_STATE} from "../type/StateId.sol";
17
13
  import {NftId, NftIdLib} from "../type/NftId.sol";
18
14
  import {NftIdSet} from "../shared/NftIdSet.sol";
19
- import {ObjectType, INSTANCE, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
20
- import {Seconds, SecondsLib} from "../type/Seconds.sol";
15
+ import {PROTOCOL, STAKE, TARGET} from "../type/ObjectType.sol";
21
16
  import {StakingReader} from "./StakingReader.sol";
22
17
  import {TargetManagerLib} from "./TargetManagerLib.sol";
23
18
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
24
- import {TokenRegistry} from "../registry/TokenRegistry.sol";
25
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
26
- import {Version, VersionLib} from "../type/Version.sol";
27
- import {Versionable} from "../shared/Versionable.sol";
28
-
29
- import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
30
19
  import {StakingLifecycle} from "./StakingLifecycle.sol";
20
+ import {UFixed} from "../type/UFixed.sol";
31
21
 
32
22
 
33
23
  contract StakingStore is
@@ -12,13 +12,15 @@ using {
12
12
  nqAmount as !=,
13
13
  ltAmount as <,
14
14
  gtAmount as >,
15
+ AmountLib.add,
15
16
  AmountLib.eq,
16
17
  AmountLib.eqz,
17
18
  AmountLib.gtz,
19
+ AmountLib.gt,
20
+ AmountLib.gte,
21
+ AmountLib.multiplyWith,
18
22
  AmountLib.toInt,
19
- AmountLib.add,
20
- AmountLib.toUFixed,
21
- AmountLib.multiplyWith
23
+ AmountLib.toUFixed
22
24
  } for Amount global;
23
25
 
24
26
  function addAmount(Amount a, Amount b) pure returns (Amount) {
@@ -77,16 +79,21 @@ library AmountLib {
77
79
  return Amount.unwrap(amount1) == Amount.unwrap(amount2);
78
80
  }
79
81
 
80
- /// @dev return true if amount a1 is smaller than a2
82
+ /// @dev return true if amount a1 is less than a2
81
83
  function lt(Amount a1, Amount a2) public pure returns (bool) {
82
84
  return Amount.unwrap(a1) < Amount.unwrap(a2);
83
85
  }
84
86
 
85
- /// @dev return true if amount a1 is larger than a2
87
+ /// @dev return true if amount a1 is greater than a2
86
88
  function gt(Amount a1, Amount a2) public pure returns (bool) {
87
89
  return Amount.unwrap(a1) > Amount.unwrap(a2);
88
90
  }
89
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
+
90
97
  /// @dev return minimum of a1 and a2.
91
98
  function min(Amount a1, Amount a2) public pure returns (Amount) {
92
99
  if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
@@ -11,8 +11,14 @@ using {
11
11
  eqBlocknumber as ==,
12
12
  neBlocknumber as !=,
13
13
  BlocknumberLib.toInt,
14
+ BlocknumberLib.eq,
15
+ BlocknumberLib.ne,
14
16
  BlocknumberLib.eqz,
15
- BlocknumberLib.gtz
17
+ BlocknumberLib.gtz,
18
+ BlocknumberLib.gt,
19
+ BlocknumberLib.gte,
20
+ BlocknumberLib.lt,
21
+ BlocknumberLib.lte
16
22
  } for Blocknumber global;
17
23
 
18
24
  /// @dev return true if Blocknumber a is greater than Blocknumber b
@@ -27,20 +27,16 @@ function STAKING() pure returns (ObjectType) {
27
27
  return ObjectType.wrap(3);
28
28
  }
29
29
 
30
- function TOKEN() pure returns (ObjectType) {
31
- return ObjectType.wrap(6);
32
- }
33
-
34
30
  function RELEASE() pure returns (ObjectType) {
35
- return ObjectType.wrap(7);
31
+ return ObjectType.wrap(6);
36
32
  }
37
33
 
38
34
  function ROLE() pure returns (ObjectType) {
39
- return ObjectType.wrap(8);
35
+ return ObjectType.wrap(7);
40
36
  }
41
37
 
42
38
  function SERVICE() pure returns (ObjectType) {
43
- return ObjectType.wrap(9);
39
+ return ObjectType.wrap(8);
44
40
  }
45
41
 
46
42
  function INSTANCE() pure returns (ObjectType) {
@@ -12,6 +12,7 @@ type ReferralStatus is uint8;
12
12
  using {
13
13
  eqReferralId as ==,
14
14
  neReferralId as !=,
15
+ ReferralLib.eqz,
15
16
  ReferralLib.toKey32
16
17
  } for ReferralId global;
17
18
 
@@ -6,9 +6,11 @@ type Seconds is uint40;
6
6
  using {
7
7
  SecondsEq as ==,
8
8
  SecondsGt as >,
9
+ SecondsAdd as +,
9
10
  SecondsLib.eqz,
10
11
  SecondsLib.gtz,
11
- SecondsLib.toInt
12
+ SecondsLib.toInt,
13
+ SecondsLib.add
12
14
  } for Seconds global;
13
15
 
14
16
  function SecondsEq(Seconds duration1, Seconds duration2) pure returns (bool) {
@@ -19,6 +21,11 @@ function SecondsGt(Seconds duration1, Seconds duration2) pure returns (bool) {
19
21
  return SecondsLib.gt(duration1, duration2);
20
22
  }
21
23
 
24
+ function SecondsAdd(Seconds duration1, Seconds duration2) pure returns (Seconds) {
25
+ return SecondsLib.add(duration1, duration2);
26
+ }
27
+
28
+
22
29
  library SecondsLib {
23
30
 
24
31
  error ErrorSecondsLibDurationTooBig(uint256 duration);
@@ -70,6 +77,11 @@ library SecondsLib {
70
77
  return Seconds.unwrap(duration1) > Seconds.unwrap(duration2);
71
78
  }
72
79
 
80
+ /// @dev return add duration1 and duration2
81
+ function add(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
82
+ return Seconds.wrap(Seconds.unwrap(duration1) + Seconds.unwrap(duration2));
83
+ }
84
+
73
85
  function toInt(Seconds duration) public pure returns (uint256) {
74
86
  return uint256(uint40(Seconds.unwrap(duration)));
75
87
  }
@@ -12,6 +12,12 @@ using {
12
12
  lteTimestamp as <=,
13
13
  eqTimestamp as ==,
14
14
  neTimestamp as !=,
15
+ TimestampLib.eq,
16
+ TimestampLib.ne,
17
+ TimestampLib.gt,
18
+ TimestampLib.gte,
19
+ TimestampLib.lt,
20
+ TimestampLib.lte,
15
21
  TimestampLib.gtz,
16
22
  TimestampLib.eqz,
17
23
  TimestampLib.addSeconds,
@@ -50,7 +56,7 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
50
56
 
51
57
  /// @dev Converts the uint256 to a Timestamp.
52
58
  function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
53
- return Timestamp.wrap(uint40(timestamp));
59
+ return TimestampLib.toTimestamp(timestamp);
54
60
  }
55
61
 
56
62
  // TODO move to TimestampLib and rename to zero()
@@ -72,6 +78,10 @@ library TimestampLib {
72
78
  function blockTimestamp() public view returns (Timestamp) {
73
79
  return Timestamp.wrap(uint40(block.timestamp));
74
80
  }
81
+
82
+ function toTimestamp(uint256 timestamp) public pure returns (Timestamp) {
83
+ return Timestamp.wrap(uint40(timestamp));
84
+ }
75
85
 
76
86
  /// @dev return true if Timestamp a is after Timestamp b
77
87
  function gt(Timestamp a, Timestamp b) public pure returns (bool isAfter) {
@@ -15,9 +15,10 @@ using {
15
15
  lteUFixed as <=,
16
16
  eqUFixed as ==,
17
17
  neUFixed as !=,
18
+ UFixedLib.gt,
19
+ UFixedLib.gtz,
18
20
  UFixedLib.toInt,
19
- UFixedLib.toInt1000,
20
- UFixedLib.gtz
21
+ UFixedLib.toInt1000
21
22
  } for UFixed global;
22
23
 
23
24
  // TODO move to UFixedLib and rename to zero()
@@ -30,7 +31,9 @@ function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
30
31
  }
31
32
 
32
33
  function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
33
- require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
34
+ if (a < b) {
35
+ revert UFixedLib.UFixedLibNegativeResult();
36
+ }
34
37
  return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
35
38
  }
36
39
 
@@ -40,8 +43,10 @@ function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
40
43
  }
41
44
 
42
45
  function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
43
- require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
44
-
46
+ if (UFixed.unwrap(b) == 0) {
47
+ revert UFixedLib.UFixedLibDivisionByZero();
48
+ }
49
+
45
50
  return
46
51
  UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
47
52
  }
@@ -89,6 +94,8 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
89
94
  /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
90
95
  library MathLib {
91
96
 
97
+ error MathLigMulDivOverflow();
98
+
92
99
  enum Rounding {
93
100
  Down, // Toward negative infinity
94
101
  Up, // Toward infinity
@@ -122,8 +129,10 @@ library MathLib {
122
129
  }
123
130
 
124
131
  // Make sure the result is less than 2^256. Also prevents denominator == 0.
125
- require(denominator > prod1, "Math: mulDiv overflow");
126
-
132
+ if (denominator <= prod1) {
133
+ revert MathLigMulDivOverflow();
134
+ }
135
+
127
136
  ///////////////////////////////////////////////
128
137
  // 512 by 256 division.
129
138
  ///////////////////////////////////////////////
@@ -195,6 +204,12 @@ library MathLib {
195
204
  }
196
205
 
197
206
  library UFixedLib {
207
+ error UFixedLibNegativeResult();
208
+ error UFixedLibDivisionByZero();
209
+
210
+ error UFixedLibExponentTooSmall(int8 exp);
211
+ error UFixedLibExponentTooLarge(int8 exp);
212
+
198
213
  int8 public constant EXP = 18;
199
214
  uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
200
215
  uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
@@ -221,9 +236,13 @@ library UFixedLib {
221
236
 
222
237
  /// @dev Converts the uint256 to a UFixed with given exponent.
223
238
  function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
224
- require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
225
- require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
226
-
239
+ if (EXP + exp < 0) {
240
+ revert UFixedLibExponentTooSmall(exp);
241
+ }
242
+ if (EXP + exp > 64) {
243
+ revert UFixedLibExponentTooLarge(exp);
244
+ }
245
+
227
246
  return UFixed.wrap(a * 10 ** uint8(EXP + exp));
228
247
  }
229
248
 
@@ -7,6 +7,7 @@ using {
7
7
  versionPartGt as >,
8
8
  versionPartEq as ==,
9
9
  versionPartNe as !=,
10
+ VersionPartLib.eqz,
10
11
  VersionPartLib.toInt
11
12
  }
12
13
  for VersionPart global;
@@ -16,7 +17,8 @@ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) {
16
17
  function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
17
18
 
18
19
  library VersionPartLib {
19
- function toInt(VersionPart a) external pure returns(uint) { return VersionPart.unwrap(a); }
20
+ function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
21
+ function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
20
22
  function toVersionPart(uint256 a) external pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
21
23
  }
22
24
 
@@ -1,17 +1,16 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
4
5
  import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
5
6
 
6
7
  import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
7
8
  import {IVersionable} from "./IVersionable.sol";
8
- import {NftOwnable} from "./NftOwnable.sol";
9
- import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
10
- import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {NftOwnable} from "../shared/NftOwnable.sol";
11
11
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
12
12
  import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
13
13
  import {Version, VersionLib} from "../type/Version.sol";
14
- import {NftId} from "../type/NftId.sol";
15
14
 
16
15
  /// @dev manages proxy deployments for upgradable contracs of type IVersionable
17
16
  contract ProxyManager is
@@ -2,9 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
5
- import {TransparentUpgradeableProxy, ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
6
-
7
- import {IVersionable} from "./IVersionable.sol";
5
+ import {TransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
8
6
 
9
7
  contract UpgradableProxyWithAdmin is TransparentUpgradeableProxy {
10
8
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-85cbb88-630",
3
+ "version": "0.0.2-85e7957-019",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/dcf0f17c3ef1df2996d29f79099520df.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/dcf0f17c3ef1df2996d29f79099520df.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/dcf0f17c3ef1df2996d29f79099520df.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/dcf0f17c3ef1df2996d29f79099520df.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/dcf0f17c3ef1df2996d29f79099520df.json"
4
- }