@etherisc/gif-next 0.0.2-8bdd2eb-413 → 0.0.2-8d6e553-386

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 (448) hide show
  1. package/README.md +30 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1524 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +26 -232
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +138 -93
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +65 -57
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +80 -136
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +227 -57
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +215 -108
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -49
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -127
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  82. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  84. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  86. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  88. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  90. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  92. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  94. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +89 -60
  96. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -42
  98. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +13 -0
  104. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +62 -41
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -37
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -36
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -69
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -52
  122. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  124. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  126. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  128. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  130. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  132. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  134. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +84 -47
  136. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +53 -41
  138. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.json +92 -63
  140. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +57 -49
  142. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  143. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  144. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  146. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
  148. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  150. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
  152. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
  154. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  155. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
  157. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1506 -167
  159. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
  161. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
  163. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  165. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  167. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  169. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  171. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  172. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +198 -77
  174. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +76 -56
  176. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  178. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  179. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +81 -0
  183. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  185. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  187. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  189. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  195. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  196. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  197. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  198. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  199. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  200. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  202. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  203. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  204. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  206. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  207. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  208. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  210. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  211. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  212. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  214. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  215. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  217. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
  219. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +44 -28
  221. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  222. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -84
  223. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  224. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  225. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -56
  227. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  229. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  230. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +92 -73
  231. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -47
  233. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  234. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +200 -152
  235. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  236. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  237. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  238. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  239. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Amount.sol/AmountLib.json +8 -8
  241. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  243. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  245. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  247. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  249. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  251. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  253. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  254. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  255. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  257. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  259. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  262. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  263. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  267. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  269. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  273. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  275. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  277. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  279. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  281. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  283. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  285. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  287. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  288. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  289. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  290. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  291. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  292. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  293. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  294. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  295. package/contracts/authorization/AccessAdmin.sol +591 -0
  296. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  297. package/contracts/authorization/Authorization.sol +218 -0
  298. package/contracts/authorization/IAccess.sol +48 -0
  299. package/contracts/authorization/IAccessAdmin.sol +136 -0
  300. package/contracts/authorization/IAuthorization.sol +54 -0
  301. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  302. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  303. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  304. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  305. package/contracts/distribution/BasicDistribution.sol +149 -0
  306. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  307. package/contracts/distribution/Distribution.sol +141 -101
  308. package/contracts/distribution/DistributionService.sol +15 -25
  309. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  310. package/contracts/distribution/IDistributionComponent.sol +22 -39
  311. package/contracts/distribution/IDistributionService.sol +5 -1
  312. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  313. package/contracts/instance/IInstance.sol +20 -13
  314. package/contracts/instance/IInstanceService.sol +34 -23
  315. package/contracts/instance/Instance.sol +108 -89
  316. package/contracts/instance/InstanceAdmin.sol +202 -267
  317. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  318. package/contracts/instance/InstanceReader.sol +49 -9
  319. package/contracts/instance/InstanceService.sol +159 -78
  320. package/contracts/instance/InstanceServiceManager.sol +2 -6
  321. package/contracts/instance/InstanceStore.sol +38 -22
  322. package/contracts/instance/base/BalanceStore.sol +11 -6
  323. package/contracts/instance/base/Cloneable.sol +2 -25
  324. package/contracts/instance/base/ObjectCounter.sol +21 -0
  325. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  326. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  327. package/contracts/instance/module/IComponents.sol +0 -1
  328. package/contracts/oracle/BasicOracle.sol +48 -0
  329. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  330. package/contracts/oracle/IOracle.sol +36 -0
  331. package/contracts/oracle/IOracleComponent.sol +32 -0
  332. package/contracts/oracle/IOracleService.sol +65 -0
  333. package/contracts/oracle/Oracle.sol +157 -0
  334. package/contracts/oracle/OracleService.sol +278 -0
  335. package/contracts/oracle/OracleServiceManager.sol +39 -0
  336. package/contracts/pool/BasicPool.sol +164 -0
  337. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  338. package/contracts/pool/BundleService.sol +32 -44
  339. package/contracts/pool/BundleServiceManager.sol +2 -5
  340. package/contracts/pool/IPoolComponent.sol +0 -60
  341. package/contracts/pool/Pool.sol +143 -131
  342. package/contracts/pool/PoolService.sol +17 -34
  343. package/contracts/pool/PoolServiceManager.sol +2 -5
  344. package/contracts/product/ApplicationService.sol +17 -41
  345. package/contracts/product/ApplicationServiceManager.sol +2 -2
  346. package/contracts/product/BasicProduct.sol +82 -0
  347. package/contracts/product/BasicProductAuthorization.sol +40 -0
  348. package/contracts/product/ClaimService.sol +10 -36
  349. package/contracts/product/ClaimServiceManager.sol +2 -2
  350. package/contracts/product/IClaimService.sol +6 -0
  351. package/contracts/product/IProductComponent.sol +6 -9
  352. package/contracts/product/PolicyService.sol +5 -5
  353. package/contracts/product/PolicyServiceManager.sol +2 -5
  354. package/contracts/product/PricingService.sol +5 -6
  355. package/contracts/product/PricingServiceManager.sol +2 -5
  356. package/contracts/product/Product.sol +103 -88
  357. package/contracts/product/ProductService.sol +12 -37
  358. package/contracts/product/ProductServiceManager.sol +2 -5
  359. package/contracts/registry/IRegistry.sol +26 -16
  360. package/contracts/registry/IRegistryService.sol +6 -6
  361. package/contracts/registry/Registry.sol +85 -85
  362. package/contracts/registry/RegistryAdmin.sol +283 -155
  363. package/contracts/registry/RegistryService.sol +9 -23
  364. package/contracts/registry/RegistryServiceManager.sol +2 -7
  365. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  366. package/contracts/registry/ReleaseRegistry.sol +487 -0
  367. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  368. package/contracts/registry/TokenRegistry.sol +2 -2
  369. package/contracts/shared/Component.sol +8 -12
  370. package/contracts/shared/ComponentService.sol +81 -60
  371. package/contracts/shared/ComponentServiceManager.sol +2 -2
  372. package/contracts/shared/ComponentVerifyingService.sol +13 -7
  373. package/contracts/shared/IComponentService.sol +17 -0
  374. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  375. package/contracts/shared/IKeyValueStore.sol +1 -0
  376. package/contracts/shared/ILifecycle.sol +1 -2
  377. package/contracts/shared/IService.sol +8 -1
  378. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  379. package/contracts/shared/KeyValueStore.sol +6 -2
  380. package/contracts/shared/Lifecycle.sol +16 -60
  381. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  382. package/contracts/shared/Service.sol +27 -22
  383. package/contracts/staking/IStaking.sol +1 -2
  384. package/contracts/staking/IStakingService.sol +22 -11
  385. package/contracts/staking/StakeManagerLib.sol +52 -0
  386. package/contracts/staking/Staking.sol +75 -112
  387. package/contracts/staking/StakingLifecycle.sol +23 -0
  388. package/contracts/staking/StakingManager.sol +2 -6
  389. package/contracts/staking/StakingReader.sol +12 -16
  390. package/contracts/staking/StakingService.sol +61 -56
  391. package/contracts/staking/StakingServiceManager.sol +2 -3
  392. package/contracts/staking/StakingStore.sol +93 -60
  393. package/contracts/type/ObjectType.sol +171 -69
  394. package/contracts/type/RequestId.sol +75 -0
  395. package/contracts/type/RoleId.sol +103 -72
  396. package/contracts/type/Selector.sol +102 -0
  397. package/contracts/type/StateId.sol +12 -0
  398. package/contracts/type/String.sol +53 -0
  399. package/contracts/type/Timestamp.sol +6 -2
  400. package/contracts/type/UFixed.sol +6 -0
  401. package/contracts/type/Version.sol +3 -1
  402. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  403. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  404. package/package.json +8 -5
  405. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  406. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  407. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  408. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
  409. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  410. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  411. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  412. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  413. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  414. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  415. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  416. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  417. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  418. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  419. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  420. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  421. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  422. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  423. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  424. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  425. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  426. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  427. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  428. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  429. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  430. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  431. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  432. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  433. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  434. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  435. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  436. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  437. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
  438. package/contracts/registry/ReleaseManager.sol +0 -599
  439. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  440. package/contracts/shared/AccessManagerCustom.sol +0 -736
  441. package/contracts/shared/AccessManagerExtended.sol +0 -470
  442. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  443. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  444. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  445. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  446. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  447. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  448. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -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 {DistributionService} from "./DistributionService.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 DistributionServiceManager is ProxyManager {
12
9
 
@@ -1,66 +1,49 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Fee} from "../type/Fee.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
5
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
- import {ReferralId, ReferralStatus} from "../type/Referral.sol";
7
6
  import {NftId} from "../type/NftId.sol";
8
- import {DistributorType} from "../type/DistributorType.sol";
7
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
9
8
  import {UFixed} from "../type/UFixed.sol";
10
- import {Timestamp} from "../type/Timestamp.sol";
11
9
 
12
10
  interface IDistributionComponent is IInstanceLinkedComponent {
13
11
 
12
+ error ErrorDistributionNotDistributor(address distributor);
13
+ error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
14
+
14
15
  event LogDistributorUpdated(address to, address caller);
15
16
 
16
- function setFees(
17
- Fee memory distributionFee,
18
- Fee memory minDistributionOwnerFee
19
- ) external;
17
+ /// @dev Returns true iff the provided address is registered as a distributor with this distribution component.
18
+ function isDistributor(address candidate) external view returns (bool);
20
19
 
21
- function createDistributorType(
22
- string memory name,
23
- UFixed minDiscountPercentage,
24
- UFixed maxDiscountPercentage,
25
- UFixed commissionPercentage,
26
- uint32 maxReferralCount,
27
- uint32 maxReferralLifetime,
28
- bool allowSelfReferrals,
29
- bool allowRenewals,
30
- bytes memory data
31
- ) external returns (DistributorType distributorType);
20
+ /// @dev Returns the distributor Nft Id for the provided address
21
+ function getDistributorNftId(address distributor) external view returns (NftId distributorNftId);
32
22
 
33
- function createDistributor(
34
- address distributor,
35
- DistributorType distributorType,
36
- bytes memory data
37
- ) external returns(NftId distributorNftId);
23
+ function getDiscountPercentage(
24
+ string memory referralCode
25
+ ) external view returns (UFixed discountPercentage, ReferralStatus status);
38
26
 
39
- function updateDistributorType(
40
- NftId distributorNftId,
41
- DistributorType distributorType,
42
- bytes memory data
43
- ) external;
27
+ function getReferralId(
28
+ string memory referralCode
29
+ ) external returns (ReferralId referralId);
44
30
 
45
31
  function calculateRenewalFeeAmount(
46
32
  ReferralId referralId,
47
33
  uint256 netPremiumAmount
48
34
  ) external view returns (uint256 feeAmount);
49
35
 
50
- /// @dev callback from product service when a policy is renews for a specific referralId
36
+ /// @dev Callback function to process a renewal of a policy.
37
+ /// The default implementation is empty.
38
+ /// Overwrite this function to implement a use case specific behaviour.
51
39
  function processRenewal(
52
40
  ReferralId referralId,
53
41
  uint256 feeAmount
54
42
  ) external;
55
43
 
56
- function getDiscountPercentage(
57
- string memory referralCode
58
- ) external view returns (UFixed discountPercentage, ReferralStatus status);
59
-
60
- function getReferralId(
61
- string memory referralCode
62
- ) external returns (ReferralId referralId);
63
-
64
- /// @dev returns true iff the component needs to be called when selling/renewing policis
44
+ /// @dev Returns true to ensure component is called when transferring distributor Nft Ids.
65
45
  function isVerifying() external view returns (bool verifying);
46
+
47
+ /// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
48
+ function withdrawFees(Amount amount) external returns (Amount withdrawnAmount);
66
49
  }
@@ -13,6 +13,7 @@ import {Timestamp} from "../type/Timestamp.sol";
13
13
 
14
14
 
15
15
  interface IDistributionService is IService {
16
+
16
17
  error ErrorDistributionServiceCallerNotRegistered(address caller);
17
18
  error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
18
19
  error ErrorIDistributionServiceCallerNotDistributor(address caller);
@@ -25,7 +26,10 @@ interface IDistributionService is IService {
25
26
  error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
26
27
  error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
27
28
  error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
28
- error ErrorIDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
29
+
30
+ error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
31
+ error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
32
+
29
33
  error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
30
34
  error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
31
35
 
@@ -10,26 +10,26 @@ import {LibNftIdSet} from "../type/NftIdSet.sol";
10
10
  import {NftId} from "../type/NftId.sol";
11
11
  import {TimestampLib} from "../type/Timestamp.sol";
12
12
 
13
- import {ObjectManager} from "./base/ObjectManager.sol";
13
+ import {ObjectSet} from "./base/ObjectSet.sol";
14
14
 
15
- contract BundleManager is
16
- ObjectManager
15
+ contract BundleSet is
16
+ ObjectSet
17
17
  {
18
18
 
19
- event LogBundleManagerPolicyLinked(NftId bundleNftId, NftId policyNftId);
20
- event LogBundleManagerPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
19
+ event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
20
+ event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
21
21
 
22
- event LogBundleManagerBundleAdded(NftId poolNftId, NftId bundleNftId);
23
- event LogBundleManagerBundleUnlocked(NftId poolNftId, NftId bundleNftId);
24
- event LogBundleManagerBundleLocked(NftId poolNftId, NftId bundleNftId);
25
- event LogBundleManagerBundleClosed(NftId poolNftId, NftId bundleNftId);
22
+ event LogBundleSetBundleAdded(NftId poolNftId, NftId bundleNftId);
23
+ event LogBundleSetBundleUnlocked(NftId poolNftId, NftId bundleNftId);
24
+ event LogBundleSetBundleLocked(NftId poolNftId, NftId bundleNftId);
25
+ event LogBundleSetBundleClosed(NftId poolNftId, NftId bundleNftId);
26
26
 
27
- error ErrorBundleManagerPolicyAlreadyActivated(NftId policyNftId);
28
- error ErrorBundleManagerBundleLocked(NftId bundleNftId, NftId policyNftId);
29
- error ErrorBundleManagerPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
30
- error ErrorBundleManagerPolicyNotCloseable(NftId policyNftId);
31
- error ErrorBundleManagerBundleUnknown(NftId bundleNftId);
32
- error ErrorBundleManagerBundleNotRegistered(NftId bundleNftId);
27
+ error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
28
+ error ErrorBundleSetBundleLocked(NftId bundleNftId, NftId policyNftId);
29
+ error ErrorBundleSetPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
30
+ error ErrorBundleSetPolicyNotCloseable(NftId policyNftId);
31
+ error ErrorBundleSetBundleUnknown(NftId bundleNftId);
32
+ error ErrorBundleSetBundleNotRegistered(NftId bundleNftId);
33
33
 
34
34
  mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
35
35
 
@@ -42,11 +42,11 @@ contract BundleManager is
42
42
 
43
43
  // ensure bundle is unlocked (in active set) and registered with this instance
44
44
  if (!_isActive(poolNftId, bundleNftId)) {
45
- revert ErrorBundleManagerBundleLocked(bundleNftId, policyNftId);
45
+ revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
46
46
  }
47
47
 
48
48
  LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
49
- emit LogBundleManagerPolicyLinked(bundleNftId, policyNftId);
49
+ emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
50
50
  }
51
51
 
52
52
 
@@ -63,11 +63,11 @@ contract BundleManager is
63
63
 
64
64
  // ensure bundle is registered with this instance
65
65
  if (!_contains(poolNftId, bundleNftId)) {
66
- revert ErrorBundleManagerBundleUnknown(bundleNftId);
66
+ revert ErrorBundleSetBundleUnknown(bundleNftId);
67
67
  }
68
68
 
69
69
  LibNftIdSet.remove(_activePolicies[bundleNftId], policyNftId);
70
- emit LogBundleManagerPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
70
+ emit LogBundleSetPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
71
71
  }
72
72
 
73
73
 
@@ -78,11 +78,11 @@ contract BundleManager is
78
78
 
79
79
  // ensure pool is registered with instance
80
80
  if(poolNftId.eqz()) {
81
- revert ErrorBundleManagerBundleNotRegistered(bundleNftId);
81
+ revert ErrorBundleSetBundleNotRegistered(bundleNftId);
82
82
  }
83
83
 
84
84
  _add(poolNftId, bundleNftId);
85
- emit LogBundleManagerBundleAdded(poolNftId, bundleNftId);
85
+ emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
86
86
  }
87
87
 
88
88
 
@@ -90,14 +90,14 @@ contract BundleManager is
90
90
  function unlock(NftId bundleNftId) external restricted() {
91
91
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
92
92
  _activate(poolNftId, bundleNftId);
93
- emit LogBundleManagerBundleUnlocked(poolNftId, bundleNftId);
93
+ emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
94
94
  }
95
95
 
96
96
  /// @dev locked (deactivated) bundles may not collateralize any new policies
97
97
  function lock(NftId bundleNftId) external restricted() {
98
98
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
99
99
  _deactivate(poolNftId, bundleNftId);
100
- emit LogBundleManagerBundleLocked(poolNftId, bundleNftId);
100
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
101
101
  }
102
102
 
103
103
  function bundles(NftId poolNftId) external view returns(uint256) {
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
+ import {Amount} from "../type/Amount.sol";
6
7
  import {ClaimId} from "../type/ClaimId.sol";
7
8
  import {DistributorType} from "../type/DistributorType.sol";
8
9
  import {PayoutId} from "../type/PayoutId.sol";
@@ -13,14 +14,15 @@ import {RiskId} from "../type/RiskId.sol";
13
14
  import {VersionPart} from "../type/Version.sol";
14
15
  import {Key32} from "../type/Key32.sol";
15
16
  import {RoleId} from "../type/RoleId.sol";
17
+ import {Seconds} from "../type/Seconds.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
16
19
 
17
- import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
18
20
  import {IRegisterable} from "../shared/IRegisterable.sol";
19
21
 
20
22
  import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
21
23
 
22
24
  import {InstanceAdmin} from "./InstanceAdmin.sol";
23
- import {BundleManager} from "./BundleManager.sol";
25
+ import {BundleSet} from "./BundleSet.sol";
24
26
  import {InstanceReader} from "./InstanceReader.sol";
25
27
  import {InstanceStore} from "./InstanceStore.sol";
26
28
 
@@ -37,7 +39,6 @@ import {IPolicyService} from "../product/IPolicyService.sol";
37
39
  import {IBundleService} from "../pool/IBundleService.sol";
38
40
 
39
41
 
40
-
41
42
  interface IInstance is
42
43
  IRegisterable,
43
44
  ITransferInterceptor,
@@ -47,15 +48,19 @@ interface IInstance is
47
48
  error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
48
49
  error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
49
50
 
50
- error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
51
- error ErrorInstanceBundleManagerInstanceMismatch(address instance);
52
- error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
51
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
52
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
53
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
53
54
 
54
55
  error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
55
56
 
56
57
  error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
57
58
  error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
58
59
 
60
+ struct InstanceInfo {
61
+ uint64 requestsCount;
62
+ }
63
+
59
64
  function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
60
65
  function grantRole(RoleId roleId, address account) external;
61
66
  function revokeRole(RoleId roleId, address account) external;
@@ -64,16 +69,18 @@ interface IInstance is
64
69
  function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
65
70
  function setTargetLocked(address target, bool locked) external;
66
71
 
67
- function getDistributionService() external view returns (IDistributionService);
68
- function getProductService() external view returns (IProductService);
69
- function getPoolService() external view returns (IPoolService);
70
- function getPolicyService() external view returns (IPolicyService);
71
- function getBundleService() external view returns (IBundleService);
72
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
73
+ function setStakingRewardRate(UFixed rewardRate) external;
74
+ function refillStakingRewardReserves(Amount dipAmount) external;
75
+
76
+ /// @dev Defunds the staking reward reserves for the specified target.
77
+ /// Permissioned: only the target owner may call this function.
78
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
72
79
 
80
+ // get instance release and supporting contracts
73
81
  function getMajorVersion() external pure returns (VersionPart majorVersion);
74
82
  function getInstanceReader() external view returns (InstanceReader);
75
- function getBundleManager() external view returns (BundleManager);
83
+ function getBundleSet() external view returns (BundleSet);
76
84
  function getInstanceAdmin() external view returns (InstanceAdmin);
77
85
  function getInstanceStore() external view returns (InstanceStore);
78
- function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable);
79
86
  }
@@ -1,25 +1,30 @@
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 {BundleSet} from "./BundleSet.sol";
6
+ import {Instance} from "./Instance.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IService} from "../shared/IService.sol";
4
9
  import {NftId} from "../type/NftId.sol";
5
10
  import {ObjectType} from "../type/ObjectType.sol";
6
11
  import {RoleId} from "../type/RoleId.sol";
7
- import {IService} from "../shared/IService.sol";
8
-
9
- import {InstanceAdmin} from "./InstanceAdmin.sol";
10
- import {Instance} from "./Instance.sol";
11
- import {InstanceReader} from "./InstanceReader.sol";
12
- import {BundleManager} from "./BundleManager.sol";
13
- import {InstanceStore} from "./InstanceStore.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
13
+ import {UFixed} from "../type/UFixed.sol";
14
+ import {VersionPart} from "../type/Version.sol";
14
15
 
15
16
  interface IInstanceService is IService {
16
17
 
18
+ // onlyInstance
19
+ error ErrorInstanceServiceNotRegistered(address instance);
20
+ error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
21
+ error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
22
+
17
23
  error ErrorInstanceServiceComponentNotInstanceLinked(address component);
18
24
 
19
25
  error ErrorInstanceServiceMasterInstanceAlreadySet();
20
- error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
21
26
  error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
22
- error ErrorInstanceServiceMasterBundleManagerAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleSetAlreadySet();
23
28
  error ErrorInstanceServiceInstanceAddressZero();
24
29
 
25
30
  error ErrorInstanceServiceMasterInstanceReaderNotSet();
@@ -27,40 +32,46 @@ interface IInstanceService is IService {
27
32
  error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
28
33
  error ErrorInstanceServiceInstanceReaderInstanceMismatch();
29
34
 
35
+ error ErrorInstanceServiceAccessManagerZero();
30
36
  error ErrorInstanceServiceInstanceAdminZero();
31
37
  error ErrorInstanceServiceInstanceReaderZero();
32
- error ErrorInstanceServiceBundleManagerZero();
38
+ error ErrorInstanceServiceBundleSetZero();
33
39
  error ErrorInstanceServiceInstanceStoreZero();
34
40
 
35
41
  error ErrorInstanceServiceInstanceAuthorityMismatch();
36
- error ErrorInstanceServiceBundleManagerAuthorityMismatch();
42
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
37
43
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
38
44
  error ErrorInstanceServiceBundleMangerInstanceMismatch();
39
45
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
40
46
 
41
47
  error ErrorInstanceServiceRequestUnauhorized(address caller);
42
- error ErrorInstanceServiceNotInstance(NftId nftId);
48
+ error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
43
49
  error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
44
50
  error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
45
51
  error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
46
52
 
47
- event LogInstanceCloned(
48
- address clonedOzAccessManager,
49
- address clonedInstanceAccessManager,
50
- address clonedInstance,
51
- address clonedInstanceStore,
52
- address clonedBundleManager,
53
- address clonedInstanceReader,
54
- NftId clonedInstanceNftId
55
- );
56
-
57
- function createInstanceClone()
53
+ event LogInstanceCloned(NftId instanceNftId, address instance);
54
+
55
+ function createInstance()
58
56
  external
59
57
  returns (
58
+ // TODO check if Instance can be changed to IInstance
60
59
  Instance clonedInstance,
61
60
  NftId instanceNftId
62
61
  );
63
62
 
63
+
64
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
65
+ function setStakingRewardRate(UFixed rewardRate) external;
66
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
67
+
68
+ /// @dev Defunds the staking reward reserves for the specified target.
69
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
70
+
71
+ /// @dev Sets up the component authorization for the specified instance.
72
+ /// The authorization is based on the authz specification provided by the component via getAuthorization.
73
+ function initializeAuthorization(NftId instanceNftId, IInstanceLinkedComponent component) external;
74
+
64
75
  function createComponentTarget(
65
76
  NftId instanceNftId,
66
77
  address targetAddress,