@etherisc/gif-next 0.0.2-866ef18-420 → 0.0.2-86dae40-160

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 (342) hide show
  1. package/README.md +19 -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 +85 -90
  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 -64
  22. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +182 -74
  24. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +54 -38
  26. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -26
  28. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -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/Instance.sol/Instance.dbg.json +1 -1
  35. package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
  36. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  37. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2 -2
  38. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  39. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
  40. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  41. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +80 -122
  42. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  43. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +16 -16
  44. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +9 -9
  46. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +72 -194
  48. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  49. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  50. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  51. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  52. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  53. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  54. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  55. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  57. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  58. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  59. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  61. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  63. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  64. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  65. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  66. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -77
  67. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  68. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  69. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  70. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  71. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -26
  72. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  73. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  74. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -61
  75. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  76. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  77. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
  79. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  80. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +54 -125
  81. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
  83. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  84. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +383 -51
  85. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +90 -26
  87. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  88. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  89. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  90. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -83
  91. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  92. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +158 -54
  93. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  94. package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -121
  95. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +226 -90
  97. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +35 -19
  99. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  100. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +21 -32
  101. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +9 -17
  103. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  104. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -64
  105. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  106. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
  107. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  108. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -58
  109. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +30 -30
  111. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  112. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  113. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  114. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
  115. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  116. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +188 -108
  117. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  118. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  119. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -26
  120. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  121. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  122. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +260 -167
  123. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +42 -26
  125. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  126. package/artifacts/contracts/product/PricingService.sol/PricingService.json +7 -2
  127. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
  129. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  130. package/artifacts/contracts/product/Product.sol/Product.json +19 -64
  131. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  132. package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
  133. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
  135. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  136. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  137. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  138. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  139. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  140. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  141. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  142. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
  143. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  144. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  145. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  147. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  148. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +2 -2
  150. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
  152. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  154. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  155. package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
  156. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +327 -62
  158. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +88 -32
  160. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  161. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  162. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  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 -26
  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 -64
  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/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  184. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  185. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  186. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  188. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  189. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  190. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  191. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  192. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +240 -16
  193. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  194. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
  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 +40 -113
  198. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  199. package/artifacts/contracts/staking/Staking.sol/Staking.json +120 -112
  200. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  202. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +61 -25
  203. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  204. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  205. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  206. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +22 -22
  207. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  208. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +12 -12
  209. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +17 -12
  211. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  212. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +7 -2
  213. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  214. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  215. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  216. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  217. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  218. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  219. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  220. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  221. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  222. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  223. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  224. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  225. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  226. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  227. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  228. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  229. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  230. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  231. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  234. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  239. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  240. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  241. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  242. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
  244. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  246. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  247. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  248. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  249. package/artifacts/contracts/{shared → upgradeability}/ProxyManager.sol/ProxyManager.json +3 -3
  250. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  251. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  252. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  253. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  254. package/contracts/distribution/BasicDistribution.sol +4 -15
  255. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  256. package/contracts/distribution/Distribution.sol +22 -10
  257. package/contracts/distribution/DistributionService.sol +47 -27
  258. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  259. package/contracts/distribution/IDistributionComponent.sol +8 -4
  260. package/contracts/distribution/IDistributionService.sol +10 -0
  261. package/contracts/instance/InstanceAuthorizationV3.sol +2 -0
  262. package/contracts/instance/InstanceReader.sol +10 -7
  263. package/contracts/instance/InstanceService.sol +51 -27
  264. package/contracts/instance/InstanceServiceManager.sol +2 -6
  265. package/contracts/instance/InstanceStore.sol +2 -1
  266. package/contracts/instance/base/ObjectLifecycle.sol +2 -3
  267. package/contracts/instance/module/IBundle.sol +1 -1
  268. package/contracts/instance/module/IComponents.sol +1 -7
  269. package/contracts/instance/module/IDistribution.sol +0 -1
  270. package/contracts/instance/module/IPolicy.sol +1 -1
  271. package/contracts/mock/Dip.sol +1 -1
  272. package/contracts/oracle/IOracleComponent.sol +2 -1
  273. package/contracts/oracle/Oracle.sol +15 -6
  274. package/contracts/oracle/OracleServiceManager.sol +2 -5
  275. package/contracts/pool/BasicPool.sol +7 -5
  276. package/contracts/pool/BasicPoolAuthorization.sol +11 -2
  277. package/contracts/pool/BundleService.sol +174 -34
  278. package/contracts/pool/BundleServiceManager.sol +2 -5
  279. package/contracts/pool/IBundleService.sol +32 -5
  280. package/contracts/pool/IPoolComponent.sol +6 -0
  281. package/contracts/pool/IPoolService.sol +14 -17
  282. package/contracts/pool/Pool.sol +32 -15
  283. package/contracts/pool/PoolService.sol +151 -84
  284. package/contracts/pool/PoolServiceManager.sol +2 -5
  285. package/contracts/product/ApplicationService.sol +49 -53
  286. package/contracts/product/ApplicationServiceManager.sol +2 -2
  287. package/contracts/product/BasicProduct.sol +3 -33
  288. package/contracts/product/BasicProductAuthorization.sol +3 -0
  289. package/contracts/product/ClaimService.sol +13 -39
  290. package/contracts/product/ClaimServiceManager.sol +2 -2
  291. package/contracts/product/IApplicationService.sol +1 -0
  292. package/contracts/product/IClaimService.sol +1 -0
  293. package/contracts/product/IPolicyService.sol +23 -17
  294. package/contracts/product/IProductComponent.sol +1 -0
  295. package/contracts/product/IProductService.sol +1 -0
  296. package/contracts/product/PolicyService.sol +242 -131
  297. package/contracts/product/PolicyServiceManager.sol +2 -5
  298. package/contracts/product/PricingService.sol +5 -1
  299. package/contracts/product/PricingServiceManager.sol +2 -5
  300. package/contracts/product/Product.sol +27 -6
  301. package/contracts/product/ProductService.sol +7 -32
  302. package/contracts/product/ProductServiceManager.sol +2 -5
  303. package/contracts/registry/RegistryService.sol +4 -18
  304. package/contracts/registry/RegistryServiceManager.sol +2 -2
  305. package/contracts/registry/ReleaseRegistry.sol +0 -2
  306. package/contracts/shared/Component.sol +24 -37
  307. package/contracts/shared/ComponentService.sol +72 -14
  308. package/contracts/shared/ComponentServiceManager.sol +2 -2
  309. package/contracts/shared/IComponent.sol +4 -4
  310. package/contracts/shared/IComponentService.sol +15 -9
  311. package/contracts/shared/IInstanceLinkedComponent.sol +9 -3
  312. package/contracts/shared/IService.sol +1 -1
  313. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  314. package/contracts/shared/InstanceLinkedComponent.sol +21 -0
  315. package/contracts/shared/NftOwnable.sol +2 -2
  316. package/contracts/shared/PolicyHolder.sol +2 -5
  317. package/contracts/shared/Service.sol +3 -4
  318. package/contracts/shared/TokenHandler.sol +91 -17
  319. package/contracts/staking/IStaking.sol +1 -1
  320. package/contracts/staking/StakeManagerLib.sol +0 -25
  321. package/contracts/staking/Staking.sol +18 -33
  322. package/contracts/staking/StakingManager.sol +2 -5
  323. package/contracts/staking/StakingReader.sol +6 -9
  324. package/contracts/staking/StakingService.sol +8 -12
  325. package/contracts/staking/StakingServiceManager.sol +2 -2
  326. package/contracts/staking/StakingStore.sol +5 -15
  327. package/contracts/type/Amount.sol +12 -5
  328. package/contracts/type/Blocknumber.sol +7 -1
  329. package/contracts/type/Referral.sol +1 -0
  330. package/contracts/type/Seconds.sol +13 -1
  331. package/contracts/type/Timestamp.sol +11 -1
  332. package/contracts/type/UFixed.sol +29 -10
  333. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  334. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  335. package/package.json +1 -1
  336. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  337. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  338. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  339. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  340. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  341. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  342. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -27,12 +27,16 @@ interface IDistributionService is IService {
27
27
  error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
28
28
  error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
29
29
 
30
+ error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
31
+
30
32
  error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
31
33
  error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
32
34
 
33
35
  error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
34
36
  error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
35
37
 
38
+ event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
39
+
36
40
  function createDistributorType(
37
41
  string memory name,
38
42
  UFixed minDiscountPercentage,
@@ -82,4 +86,10 @@ interface IDistributionService is IService {
82
86
  NftId distributorNftId,
83
87
  ReferralId referralId
84
88
  ) external view returns (bool isValid);
89
+
90
+ /// @dev Withdraw commission for the distributor
91
+ /// @param distributorNftId the distributor Nft Id
92
+ /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
93
+ /// @return withdrawnAmount the effective withdrawn amount
94
+ function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
85
95
  }
@@ -141,7 +141,9 @@ contract InstanceAuthorizationV3
141
141
  _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
142
142
  _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
143
143
  _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
144
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
144
145
  _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
146
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
145
147
 
146
148
  // authorize distribution service role
147
149
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
@@ -1,25 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
4
  import {Amount} from "../type/Amount.sol";
7
5
  import {ClaimId} from "../type/ClaimId.sol";
8
6
  import {DistributorType} from "../type/DistributorType.sol";
9
- import {Fee, FeeLib} from "../type/Fee.sol";
10
7
  import {Key32} from "../type/Key32.sol";
11
8
  import {NftId} from "../type/NftId.sol";
12
- import {ObjectType, COMPONENT, DISTRIBUTOR, DISTRIBUTION, INSTANCE, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
9
+ import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
13
10
  import {PayoutId} from "../type/PayoutId.sol";
14
11
  import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
15
12
  import {RequestId} from "../type/RequestId.sol";
16
13
  import {RiskId} from "../type/RiskId.sol";
17
14
  import {RoleId} from "../type/RoleId.sol";
18
15
  import {StateId} from "../type/StateId.sol";
19
- import {UFixed, MathLib, UFixedLib} from "../type/UFixed.sol";
20
- import {Version} from "../type/Version.sol";
16
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
21
17
 
22
- import {IRegistry} from "../registry/IRegistry.sol";
23
18
  import {IBundle} from "../instance/module/IBundle.sol";
24
19
  import {IComponents} from "../instance/module/IComponents.sol";
25
20
  import {IDistribution} from "../instance/module/IDistribution.sol";
@@ -85,6 +80,14 @@ contract InstanceReader {
85
80
  return _store.getState(toPolicyKey(policyNftId));
86
81
  }
87
82
 
83
+ function getBundleState(NftId bundleNftId)
84
+ public
85
+ view
86
+ returns (StateId state)
87
+ {
88
+ return _store.getState(toBundleKey(bundleNftId));
89
+ }
90
+
88
91
  /// @dev returns true iff policy may be closed
89
92
  /// a policy can be closed all conditions below are met
90
93
  /// - policy exists
@@ -104,32 +104,9 @@ contract InstanceService is
104
104
  // tx sender will become instance owner
105
105
  address instanceOwner = msg.sender;
106
106
 
107
- // start with setting up a new OZ access manager
108
- AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
109
- Clones.clone(_masterAccessManager));
110
-
111
- // set up the instance admin
112
- InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
113
- clonedAccessManager.initialize(
114
- address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
115
-
116
- clonedInstanceAdmin.initialize(
117
- clonedAccessManager,
118
- InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
119
-
120
- InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
121
- BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
122
- InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
123
-
124
- // clone instance
125
- clonedInstance = Instance(Clones.clone(_masterInstance));
126
- clonedInstance.initialize(
127
- clonedInstanceAdmin,
128
- clonedInstanceStore,
129
- clonedBundleSet,
130
- clonedInstanceReader,
131
- getRegistry(),
132
- instanceOwner);
107
+ // create instance admin and instance
108
+ InstanceAdmin instanceAdmin = _createInstanceAdmin();
109
+ clonedInstance = _createInstance(instanceAdmin, instanceOwner);
133
110
 
134
111
  // register cloned instance with registry
135
112
  clonedInstanceNftId = _registryService.registerInstance(
@@ -142,7 +119,7 @@ contract InstanceService is
142
119
  TargetManagerLib.getDefaultRewardRate());
143
120
 
144
121
  // MUST be set after instance is set up and registered
145
- clonedInstanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
122
+ instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
146
123
 
147
124
  emit LogInstanceCloned(
148
125
  clonedInstanceNftId,
@@ -362,6 +339,53 @@ contract InstanceService is
362
339
  );
363
340
  }
364
341
 
342
+ /// @dev create new cloned instance admin
343
+ /// function used to setup a new instance
344
+ function _createInstanceAdmin()
345
+ internal
346
+ virtual
347
+ returns (InstanceAdmin clonedInstanceAdmin)
348
+ {
349
+ // start with setting up a new OZ access manager
350
+ AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
351
+ Clones.clone(_masterAccessManager));
352
+
353
+ // set up the instance admin
354
+ clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
355
+ clonedAccessManager.initialize(
356
+ address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
357
+
358
+ clonedInstanceAdmin.initialize(
359
+ clonedAccessManager,
360
+ InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
361
+ }
362
+
363
+
364
+ /// @dev create new cloned instance
365
+ /// function used to setup a new instance
366
+ function _createInstance(
367
+ InstanceAdmin instanceAdmin,
368
+ address instanceOwner
369
+ )
370
+ internal
371
+ virtual
372
+ returns (Instance clonedInstance)
373
+ {
374
+ InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
375
+ BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
376
+ InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
377
+
378
+ // clone instance
379
+ clonedInstance = Instance(Clones.clone(_masterInstance));
380
+ clonedInstance.initialize(
381
+ instanceAdmin,
382
+ clonedInstanceStore,
383
+ clonedBundleSet,
384
+ clonedInstanceReader,
385
+ getRegistry(),
386
+ instanceOwner);
387
+ }
388
+
365
389
 
366
390
  /// all gif targets MUST be children of instanceNftId
367
391
  function _createGifTarget(
@@ -1,13 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Instance} from "./Instance.sol";
5
- import {IVersionable} from "../shared/IVersionable.sol";
6
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
6
  import {InstanceService} from "./InstanceService.sol";
8
- import {Registry} from "../registry/Registry.sol";
9
- import {RegistryService} from "../registry/RegistryService.sol";
10
- import {REGISTRY} from "../type/ObjectType.sol";
11
7
 
12
8
  contract InstanceServiceManager is ProxyManager {
13
9
 
@@ -7,7 +7,7 @@ import {Amount} from "../type/Amount.sol";
7
7
  import {Key32} from "../type/Key32.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
9
  import {ClaimId} from "../type/ClaimId.sol";
10
- import {ObjectType, BUNDLE, POLICY, POOL, PRODUCT, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
10
+ import {ObjectType, BUNDLE, POLICY, POOL, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
11
11
  import {RequestId} from "../type/RequestId.sol";
12
12
  import {RiskId} from "../type/RiskId.sol";
13
13
  import {StateId} from "../type/StateId.sol";
@@ -116,6 +116,7 @@ contract InstanceStore is
116
116
 
117
117
  //--- Distributor -------------------------------------------------------//
118
118
  function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
119
+ _registerBalanceTarget(distributorNftId);
119
120
  _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
120
121
  }
121
122
 
@@ -54,9 +54,7 @@ contract ObjectLifecycle is
54
54
  setStateTransition(POLICY(), APPLIED(), REVOKED());
55
55
  setStateTransition(POLICY(), APPLIED(), DECLINED());
56
56
  setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
57
- setStateTransition(POLICY(), APPLIED(), ACTIVE());
58
- setStateTransition(POLICY(), COLLATERALIZED(), ACTIVE());
59
- setStateTransition(POLICY(), ACTIVE(), CLOSED());
57
+ setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
60
58
  }
61
59
 
62
60
  function _setupClaimLifecycle() private {
@@ -68,6 +66,7 @@ contract ObjectLifecycle is
68
66
 
69
67
  function _setupPayoutLifecycle() private {
70
68
  setInitialState(PAYOUT(), EXPECTED());
69
+ // TODO: add state cancelled
71
70
  setStateTransition(PAYOUT(), EXPECTED(), PAID());
72
71
  }
73
72
 
@@ -13,7 +13,7 @@ interface IBundle {
13
13
  NftId poolNftId;
14
14
  Fee fee; // bundle fee on net premium amounts
15
15
  bytes filter; // required conditions for applications to be considered for collateralization by this bundle
16
- Seconds lifetime; // lifetime of bundle after creation
16
+ Timestamp activatedAt;
17
17
  Timestamp expiredAt; // no new policies starting with this timestamp
18
18
  Timestamp closedAt; // no open policies, locked amount = 0
19
19
  }
@@ -21,7 +21,6 @@ interface IComponents {
21
21
  bytes data; // will hold component type specific additional info (eg encoded pool info)
22
22
  }
23
23
 
24
-
25
24
  struct ProductInfo {
26
25
  NftId distributionNftId;
27
26
  NftId poolNftId;
@@ -36,17 +35,12 @@ interface IComponents {
36
35
 
37
36
 
38
37
  struct PoolInfo {
39
- NftId productNftId; // the nft of the product this pool is linked to
40
38
  RoleId bundleOwnerRole; // the required role for bundle owners
41
- // TODO maxCapitalAmount -> maxBalanceAmount
42
- Amount maxCapitalAmount; // max capital amount allowed for pool
39
+ Amount maxBalanceAmount; // max balance amount allowed for pool
43
40
  bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
44
41
  bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
45
42
  bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
46
43
  UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
47
44
  UFixed retentionLevel; // amount of collateral held in pool (default 100%)
48
- Fee poolFee; // pool fee on net premium
49
- Fee stakingFee; // pool fee on staked capital from investor
50
- Fee performanceFee; // pool fee on profits from capital investors
51
45
  }
52
46
  }
@@ -25,7 +25,6 @@ interface IDistribution {
25
25
  DistributorType distributorType;
26
26
  bool active;
27
27
  bytes data;
28
- Amount commissionAmount;
29
28
  uint32 numPoliciesSold;
30
29
  }
31
30
 
@@ -22,7 +22,7 @@ interface IPolicy {
22
22
  uint256 netPremiumAmount;
23
23
  // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
24
24
  uint256 fullPremiumAmount;
25
- // premium = fullPremium - discount
25
+ // effective premium = fullPremium - discount
26
26
  uint256 premiumAmount;
27
27
  uint256 productFeeFixAmount;
28
28
  uint256 poolFeeFixAmount;
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
4
+ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
5
 
6
6
  contract Dip is ERC20 {
7
7
 
@@ -11,7 +11,8 @@ import {UFixed} from "../type/UFixed.sol";
11
11
  import {Timestamp} from "../type/Timestamp.sol";
12
12
 
13
13
  interface IOracleComponent is IInstanceLinkedComponent {
14
-
14
+ error ErrorOracleNotImplemented(string methodName);
15
+
15
16
  /// @dev callback method for requesting some data from the oracle
16
17
  function request(
17
18
  RequestId requestId,
@@ -1,19 +1,17 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Amount} from "../type/Amount.sol";
4
5
  import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
5
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
6
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
9
  import {IOracleComponent} from "./IOracleComponent.sol";
8
10
  import {IOracleService} from "./IOracleService.sol";
9
- import {IRegistry} from "../registry/IRegistry.sol";
10
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
11
- import {NftId, NftIdLib} from "../type/NftId.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
12
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
- import {InstanceReader} from "../instance/InstanceReader.sol";
14
13
  import {RequestId} from "../type/RequestId.sol";
15
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
16
- import {UFixed} from "../type/UFixed.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
17
15
 
18
16
 
19
17
  abstract contract Oracle is
@@ -73,6 +71,17 @@ abstract contract Oracle is
73
71
  return false;
74
72
  }
75
73
 
74
+ function withdrawFees(Amount amount)
75
+ external
76
+ virtual
77
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
78
+ onlyOwner()
79
+ restricted()
80
+ returns (Amount withdrawnAmount)
81
+ {
82
+ revert ErrorOracleNotImplemented("withdrawFees");
83
+ }
84
+
76
85
 
77
86
  function _initializeOracle(
78
87
  address registry,
@@ -1,12 +1,9 @@
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 {OracleService} from "./OracleService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {REGISTRY} from "../type/ObjectType.sol";
10
7
 
11
8
  contract OracleServiceManager is ProxyManager {
12
9
 
@@ -14,6 +14,7 @@ import {NftId, NftIdLib} from "../type/NftId.sol";
14
14
  import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
15
15
  import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
16
16
  import {Seconds} from "../type/Seconds.sol";
17
+ import {Timestamp} from "../type/Timestamp.sol";
17
18
  import {TokenHandler} from "../shared/TokenHandler.sol";
18
19
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
19
20
 
@@ -81,8 +82,9 @@ abstract contract BasicPool is
81
82
  virtual
82
83
  restricted()
83
84
  onlyBundleOwner(bundleNftId)
85
+ returns(Timestamp newExpiredAt)
84
86
  {
85
- _extend(bundleNftId, lifetimeExtension);
87
+ return _extend(bundleNftId, lifetimeExtension);
86
88
  }
87
89
 
88
90
 
@@ -106,13 +108,13 @@ abstract contract BasicPool is
106
108
  }
107
109
 
108
110
 
109
- function close(NftId bundleNftId)
111
+ function closeBundle(NftId bundleNftId)
110
112
  public
111
113
  virtual
112
114
  restricted()
113
115
  onlyBundleOwner(bundleNftId)
114
116
  {
115
- _close(bundleNftId);
117
+ _closeBundle(bundleNftId);
116
118
  }
117
119
 
118
120
 
@@ -129,13 +131,13 @@ abstract contract BasicPool is
129
131
  }
130
132
 
131
133
 
132
- function setMaxCapitalAmount(Amount maxCapitalAmount)
134
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
133
135
  public
134
136
  virtual
135
137
  restricted()
136
138
  onlyOwner()
137
139
  {
138
- _setMaxCapitalAmount(maxCapitalAmount);
140
+ _setMaxBalanceAmount(maxBalanceAmount);
139
141
  }
140
142
 
141
143
 
@@ -4,6 +4,8 @@ pragma solidity ^0.8.20;
4
4
  import {Authorization} from "../authorization/Authorization.sol";
5
5
  import {BasicPool} from "./BasicPool.sol";
6
6
  import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IPoolComponent} from "./IPoolComponent.sol";
7
9
  import {POOL} from "../type/ObjectType.sol";
8
10
  import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
9
11
  import {RoleId} from "../type/RoleId.sol";
@@ -38,12 +40,19 @@ contract BasicPoolAuthorization
38
40
  _authorize(functions, BasicPool.extend.selector, "extend");
39
41
  _authorize(functions, BasicPool.lockBundle.selector, "lockBundle");
40
42
  _authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
41
- _authorize(functions, BasicPool.close.selector, "close");
43
+ _authorize(functions, BasicPool.closeBundle.selector, "closeBundle");
42
44
  _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
43
45
 
44
- _authorize(functions, BasicPool.setMaxCapitalAmount.selector, "setMaxCapitalAmount");
46
+ _authorize(functions, BasicPool.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
45
47
  _authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
46
48
  _authorize(functions, BasicPool.setFees.selector, "setFees");
49
+ _authorize(functions, BasicPool.stake.selector, "stake");
50
+ _authorize(functions, BasicPool.unstake.selector, "unstake");
51
+ _authorize(functions, BasicPool.extend.selector, "extend");
52
+
53
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
54
+
55
+ _authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
47
56
  }
48
57
  }
49
58