@etherisc/gif-next 0.0.2-742eda3-807 → 0.0.2-750c7cb-311

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 (376) hide show
  1. package/README.md +16 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
  14. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  16. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -64
  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 -38
  22. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +237 -74
  24. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -38
  26. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -0
  28. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +102 -0
  30. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  31. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  32. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  33. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -6
  34. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  35. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -5
  36. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  37. package/artifacts/contracts/instance/Instance.sol/Instance.json +9 -9
  38. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  39. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +73 -73
  40. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  41. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
  42. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  43. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +80 -122
  44. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +15 -15
  46. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +6 -6
  48. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +72 -194
  50. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  51. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  52. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  54. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  55. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  57. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  58. package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
  59. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  61. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  65. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  66. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  67. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  68. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +51 -51
  69. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  70. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  71. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  72. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  73. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -0
  74. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  76. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -35
  77. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  79. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
  81. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  82. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +54 -99
  83. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  84. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
  85. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  86. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +449 -62
  87. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  88. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +102 -26
  89. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  90. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +236 -1
  91. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  92. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -57
  93. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  94. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +189 -54
  95. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  96. package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -95
  97. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  98. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +337 -90
  99. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  100. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +75 -19
  101. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  102. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  103. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +2 -2
  105. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  106. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -38
  107. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
  109. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  110. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +82 -58
  111. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +34 -30
  113. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  114. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  115. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
  116. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  117. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +184 -88
  118. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  119. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  120. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -0
  121. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  122. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  123. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +291 -139
  124. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +54 -26
  126. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  127. package/artifacts/contracts/product/PricingService.sol/PricingService.json +7 -2
  128. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
  130. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  131. package/artifacts/contracts/product/Product.sol/Product.json +19 -38
  132. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
  134. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  135. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
  136. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  137. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  138. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
  139. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  140. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  141. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  142. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  143. package/artifacts/contracts/registry/Registry.sol/Registry.json +95 -23
  144. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  145. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +88 -88
  146. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  147. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  148. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  150. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  152. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  153. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  154. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  155. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  156. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  158. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  159. package/artifacts/contracts/shared/Component.sol/Component.json +0 -38
  160. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  161. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +287 -62
  162. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +68 -32
  164. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  165. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  166. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  167. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  168. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -0
  170. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  171. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  172. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  174. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  178. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  179. package/artifacts/contracts/shared/{ERC165.sol/ERC165.json → InitializableERC165.sol/InitializableERC165.json} +4 -4
  180. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  181. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -38
  182. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  183. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  184. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  185. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  186. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  188. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  189. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  190. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  192. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  193. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  194. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  195. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  196. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +53 -6
  197. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  198. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  199. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  200. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +12 -2
  201. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  202. package/artifacts/contracts/staking/Staking.sol/Staking.json +60 -74
  203. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  204. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  205. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  206. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +31 -19
  207. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  208. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  209. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +22 -22
  211. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +12 -12
  213. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +20 -15
  215. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  216. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +7 -2
  217. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  218. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  219. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  220. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  221. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  222. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  223. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  224. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  225. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  226. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  227. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  228. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  229. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  230. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  231. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  232. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  233. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  234. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  236. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  238. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  239. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  240. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  241. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  242. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  244. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  246. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  248. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  254. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  256. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
  258. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  260. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  262. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  263. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  264. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  265. package/artifacts/contracts/{shared → upgradeability}/ProxyManager.sol/ProxyManager.json +3 -3
  266. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  267. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  268. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  269. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  270. package/contracts/distribution/BasicDistribution.sol +4 -15
  271. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  272. package/contracts/distribution/Distribution.sol +22 -10
  273. package/contracts/distribution/DistributionService.sol +60 -26
  274. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  275. package/contracts/distribution/IDistributionComponent.sol +8 -4
  276. package/contracts/distribution/IDistributionService.sol +12 -0
  277. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  278. package/contracts/instance/IInstance.sol +5 -5
  279. package/contracts/instance/IInstanceService.sol +5 -5
  280. package/contracts/instance/Instance.sol +4 -4
  281. package/contracts/instance/InstanceAdmin.sol +2 -2
  282. package/contracts/instance/InstanceAuthorizationV3.sol +13 -11
  283. package/contracts/instance/InstanceReader.sol +10 -7
  284. package/contracts/instance/InstanceService.sol +10 -10
  285. package/contracts/instance/InstanceServiceManager.sol +2 -6
  286. package/contracts/instance/InstanceStore.sol +2 -1
  287. package/contracts/instance/base/ObjectLifecycle.sol +1 -3
  288. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  289. package/contracts/instance/module/IBundle.sol +1 -1
  290. package/contracts/instance/module/IComponents.sol +1 -7
  291. package/contracts/instance/module/IDistribution.sol +0 -1
  292. package/contracts/instance/module/IPolicy.sol +1 -1
  293. package/contracts/mock/Dip.sol +1 -1
  294. package/contracts/oracle/IOracleComponent.sol +2 -1
  295. package/contracts/oracle/Oracle.sol +15 -6
  296. package/contracts/oracle/OracleServiceManager.sol +2 -5
  297. package/contracts/pool/BasicPool.sol +7 -5
  298. package/contracts/pool/BasicPoolAuthorization.sol +11 -2
  299. package/contracts/pool/BundleService.sol +195 -41
  300. package/contracts/pool/BundleServiceManager.sol +2 -5
  301. package/contracts/pool/IBundleService.sol +34 -5
  302. package/contracts/pool/IPoolComponent.sol +6 -0
  303. package/contracts/pool/IPoolService.sol +15 -16
  304. package/contracts/pool/Pool.sol +32 -15
  305. package/contracts/pool/PoolService.sol +183 -76
  306. package/contracts/pool/PoolServiceManager.sol +2 -5
  307. package/contracts/product/ApplicationService.sol +12 -36
  308. package/contracts/product/ApplicationServiceManager.sol +2 -2
  309. package/contracts/product/BasicProduct.sol +3 -33
  310. package/contracts/product/BasicProductAuthorization.sol +3 -0
  311. package/contracts/product/ClaimService.sol +21 -39
  312. package/contracts/product/ClaimServiceManager.sol +2 -2
  313. package/contracts/product/IClaimService.sol +1 -0
  314. package/contracts/product/IPolicyService.sol +19 -12
  315. package/contracts/product/IProductComponent.sol +1 -0
  316. package/contracts/product/PolicyService.sol +189 -108
  317. package/contracts/product/PolicyServiceManager.sol +2 -5
  318. package/contracts/product/PricingServiceManager.sol +2 -5
  319. package/contracts/product/Product.sol +20 -1
  320. package/contracts/product/ProductService.sol +7 -32
  321. package/contracts/product/ProductServiceManager.sol +2 -5
  322. package/contracts/registry/IRegistry.sol +26 -13
  323. package/contracts/registry/IRegistryService.sol +6 -6
  324. package/contracts/registry/Registry.sol +80 -82
  325. package/contracts/registry/RegistryAdmin.sol +23 -23
  326. package/contracts/registry/RegistryService.sol +4 -18
  327. package/contracts/registry/RegistryServiceManager.sol +2 -2
  328. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +48 -50
  329. package/contracts/registry/ServiceAuthorizationV3.sol +5 -5
  330. package/contracts/registry/TokenRegistry.sol +2 -2
  331. package/contracts/shared/Component.sol +21 -21
  332. package/contracts/shared/ComponentService.sol +81 -12
  333. package/contracts/shared/ComponentServiceManager.sol +2 -2
  334. package/contracts/shared/IComponent.sol +4 -3
  335. package/contracts/shared/IComponentService.sol +15 -9
  336. package/contracts/shared/IInstanceLinkedComponent.sol +9 -3
  337. package/contracts/shared/IService.sol +1 -1
  338. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  339. package/contracts/shared/InstanceLinkedComponent.sol +21 -0
  340. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  341. package/contracts/shared/NftOwnable.sol +2 -2
  342. package/contracts/shared/PolicyHolder.sol +2 -5
  343. package/contracts/shared/Service.sol +3 -4
  344. package/contracts/shared/TokenHandler.sol +4 -0
  345. package/contracts/staking/IStaking.sol +1 -2
  346. package/contracts/staking/IStakingService.sol +12 -5
  347. package/contracts/staking/Staking.sol +20 -17
  348. package/contracts/staking/StakingManager.sol +2 -6
  349. package/contracts/staking/StakingReader.sol +12 -16
  350. package/contracts/staking/StakingService.sol +8 -12
  351. package/contracts/staking/StakingServiceManager.sol +2 -2
  352. package/contracts/staking/StakingStore.sol +12 -22
  353. package/contracts/type/Amount.sol +12 -5
  354. package/contracts/type/Blocknumber.sol +7 -1
  355. package/contracts/type/ObjectType.sol +3 -7
  356. package/contracts/type/Referral.sol +1 -0
  357. package/contracts/type/Seconds.sol +13 -1
  358. package/contracts/type/Timestamp.sol +11 -1
  359. package/contracts/type/UFixed.sol +29 -10
  360. package/contracts/type/Version.sol +3 -1
  361. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  362. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  363. package/package.json +1 -1
  364. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  365. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  366. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  367. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  368. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  369. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  370. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  371. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  372. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  373. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  374. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  375. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  376. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -27,12 +27,18 @@ 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
+ error ErrorDistributionServiceCommissionWithdrawAmountIsZero();
32
+ error ErrorDistributionServiceWalletAllowanceTooSmall(address wallet, address tokenHandler, uint256 allowance, uint256 amount);
33
+
30
34
  error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
31
35
  error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
32
36
 
33
37
  error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
34
38
  error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
35
39
 
40
+ event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
41
+
36
42
  function createDistributorType(
37
43
  string memory name,
38
44
  UFixed minDiscountPercentage,
@@ -82,4 +88,10 @@ interface IDistributionService is IService {
82
88
  NftId distributorNftId,
83
89
  ReferralId referralId
84
90
  ) external view returns (bool isValid);
91
+
92
+ /// @dev Withdraw commission for the distributor
93
+ /// @param distributorNftId the distributor Nft Id
94
+ /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
95
+ /// @return withdrawnAmount the effective withdrawn amount
96
+ function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
85
97
  }
@@ -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) {
@@ -22,7 +22,7 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
22
22
  import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
23
 
24
24
  import {InstanceAdmin} from "./InstanceAdmin.sol";
25
- import {BundleManager} from "./BundleManager.sol";
25
+ import {BundleSet} from "./BundleSet.sol";
26
26
  import {InstanceReader} from "./InstanceReader.sol";
27
27
  import {InstanceStore} from "./InstanceStore.sol";
28
28
 
@@ -48,9 +48,9 @@ interface IInstance is
48
48
  error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
49
49
  error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
50
50
 
51
- error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
52
- error ErrorInstanceBundleManagerInstanceMismatch(address instance);
53
- error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
51
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
52
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
53
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
54
54
 
55
55
  error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
56
56
 
@@ -80,7 +80,7 @@ interface IInstance is
80
80
  // get instance release and supporting contracts
81
81
  function getMajorVersion() external pure returns (VersionPart majorVersion);
82
82
  function getInstanceReader() external view returns (InstanceReader);
83
- function getBundleManager() external view returns (BundleManager);
83
+ function getBundleSet() external view returns (BundleSet);
84
84
  function getInstanceAdmin() external view returns (InstanceAdmin);
85
85
  function getInstanceStore() external view returns (InstanceStore);
86
86
  }
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {BundleManager} from "./BundleManager.sol";
5
+ import {BundleSet} from "./BundleSet.sol";
6
6
  import {Instance} from "./Instance.sol";
7
7
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
8
  import {IService} from "../shared/IService.sol";
@@ -24,7 +24,7 @@ interface IInstanceService is IService {
24
24
 
25
25
  error ErrorInstanceServiceMasterInstanceAlreadySet();
26
26
  error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
- error ErrorInstanceServiceMasterBundleManagerAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleSetAlreadySet();
28
28
  error ErrorInstanceServiceInstanceAddressZero();
29
29
 
30
30
  error ErrorInstanceServiceMasterInstanceReaderNotSet();
@@ -35,11 +35,11 @@ interface IInstanceService is IService {
35
35
  error ErrorInstanceServiceAccessManagerZero();
36
36
  error ErrorInstanceServiceInstanceAdminZero();
37
37
  error ErrorInstanceServiceInstanceReaderZero();
38
- error ErrorInstanceServiceBundleManagerZero();
38
+ error ErrorInstanceServiceBundleSetZero();
39
39
  error ErrorInstanceServiceInstanceStoreZero();
40
40
 
41
41
  error ErrorInstanceServiceInstanceAuthorityMismatch();
42
- error ErrorInstanceServiceBundleManagerAuthorityMismatch();
42
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
43
43
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
44
44
  error ErrorInstanceServiceBundleMangerInstanceMismatch();
45
45
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
@@ -52,7 +52,7 @@ interface IInstanceService is IService {
52
52
 
53
53
  event LogInstanceCloned(NftId instanceNftId, address instance);
54
54
 
55
- function createInstanceClone()
55
+ function createInstance()
56
56
  external
57
57
  returns (
58
58
  // TODO check if Instance can be changed to IInstance
@@ -26,7 +26,7 @@ import {IInstance} from "./IInstance.sol";
26
26
  import {IInstanceService} from "./IInstanceService.sol";
27
27
  import {InstanceReader} from "./InstanceReader.sol";
28
28
  import {InstanceAdmin} from "./InstanceAdmin.sol";
29
- import {BundleManager} from "./BundleManager.sol";
29
+ import {BundleSet} from "./BundleSet.sol";
30
30
  import {InstanceStore} from "./InstanceStore.sol";
31
31
 
32
32
  import {KeyValueStore} from "../shared/KeyValueStore.sol";
@@ -55,7 +55,7 @@ contract Instance is
55
55
  IInstanceService internal _instanceService;
56
56
  InstanceAdmin internal _instanceAdmin;
57
57
  InstanceReader internal _instanceReader;
58
- BundleManager internal _bundleManager;
58
+ BundleSet internal _bundleManager;
59
59
  InstanceStore internal _instanceStore;
60
60
 
61
61
  modifier onlyChainNft() {
@@ -68,7 +68,7 @@ contract Instance is
68
68
  function initialize(
69
69
  InstanceAdmin instanceAdmin,
70
70
  InstanceStore instanceStore,
71
- BundleManager bundleManager,
71
+ BundleSet bundleManager,
72
72
  InstanceReader instanceReader,
73
73
  IRegistry registry,
74
74
  address initialOwner
@@ -234,7 +234,7 @@ contract Instance is
234
234
  return _instanceReader;
235
235
  }
236
236
 
237
- function getBundleManager() external view returns (BundleManager) {
237
+ function getBundleSet() external view returns (BundleSet) {
238
238
  return _bundleManager;
239
239
  }
240
240
 
@@ -23,7 +23,7 @@ contract InstanceAdmin is
23
23
  string public constant INSTANCE_TARGET_NAME = "Instance";
24
24
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
25
25
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
26
- string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
26
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
27
 
28
28
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
29
29
 
@@ -248,7 +248,7 @@ contract InstanceAdmin is
248
248
  _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
249
249
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
250
250
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
251
- _checkAndCreateTargetWithRole(address(_instance.getBundleManager()), BUNDLE_MANAGER_TARGET_NAME);
251
+ _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
252
252
 
253
253
  // create targets for services that need to access the module targets
254
254
  ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
@@ -9,7 +9,7 @@ import {
9
9
  ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
10
10
  } from "../../contracts/type/RoleId.sol";
11
11
 
12
- import {BundleManager} from "../instance/BundleManager.sol";
12
+ import {BundleSet} from "../instance/BundleSet.sol";
13
13
  import {IAccess} from "../authorization/IAccess.sol";
14
14
  import {Instance} from "../instance/Instance.sol";
15
15
  import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
@@ -26,7 +26,7 @@ contract InstanceAuthorizationV3
26
26
  string public constant INSTANCE_TARGET_NAME = "Instance";
27
27
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
28
28
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
29
- string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
29
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
30
30
 
31
31
  string public constant INSTANCE_ROLE_NAME = "InstanceRole";
32
32
  string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
@@ -61,7 +61,7 @@ contract InstanceAuthorizationV3
61
61
  // instance supporting targets
62
62
  _addTarget(INSTANCE_STORE_TARGET_NAME);
63
63
  _addTarget(INSTANCE_ADMIN_TARGET_NAME);
64
- _addTarget(BUNDLE_MANAGER_TARGET_NAME);
64
+ _addTarget(BUNDLE_SET_TARGET_NAME);
65
65
 
66
66
  // service targets relevant to instance
67
67
  _addServiceTargetWithRole(INSTANCE());
@@ -84,22 +84,22 @@ contract InstanceAuthorizationV3
84
84
  _setupInstanceAuthorization();
85
85
  _setupInstanceAdminAuthorization();
86
86
  _setupInstanceStoreAuthorization();
87
- _setupBundleManagerAuthorization();
87
+ _setupBundleSetAuthorization();
88
88
  }
89
89
 
90
90
 
91
- function _setupBundleManagerAuthorization()
91
+ function _setupBundleSetAuthorization()
92
92
  internal
93
93
  {
94
94
  IAccess.FunctionInfo[] storage functions;
95
95
 
96
96
  // authorize bundle service role
97
- functions = _authorizeForTarget(BUNDLE_MANAGER_TARGET_NAME, getServiceRole(BUNDLE()));
98
- _authorize(functions, BundleManager.linkPolicy.selector, "linkPolicy");
99
- _authorize(functions, BundleManager.unlinkPolicy.selector, "unlinkPolicy");
100
- _authorize(functions, BundleManager.add.selector, "add");
101
- _authorize(functions, BundleManager.lock.selector, "lock");
102
- _authorize(functions, BundleManager.unlock.selector, "unlock");
97
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
98
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
99
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
100
+ _authorize(functions, BundleSet.add.selector, "add");
101
+ _authorize(functions, BundleSet.lock.selector, "lock");
102
+ _authorize(functions, BundleSet.unlock.selector, "unlock");
103
103
  }
104
104
 
105
105
 
@@ -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
@@ -6,7 +6,7 @@ import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStri
6
6
 
7
7
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
8
  import {Amount} from "../type/Amount.sol";
9
- import {BundleManager} from "./BundleManager.sol";
9
+ import {BundleSet} from "./BundleSet.sol";
10
10
  import {ChainNft} from "../registry/ChainNft.sol";
11
11
  import {NftId} from "../type/NftId.sol";
12
12
  import {RoleId} from "../type/RoleId.sol";
@@ -54,7 +54,7 @@ contract InstanceService is
54
54
  address internal _masterInstanceAdmin;
55
55
  address internal _masterInstance;
56
56
  address internal _masterInstanceReader;
57
- address internal _masterInstanceBundleManager;
57
+ address internal _masterInstanceBundleSet;
58
58
  address internal _masterInstanceStore;
59
59
 
60
60
 
@@ -94,7 +94,7 @@ contract InstanceService is
94
94
  _;
95
95
  }
96
96
 
97
- function createInstanceClone()
97
+ function createInstance()
98
98
  external
99
99
  returns (
100
100
  Instance clonedInstance,
@@ -118,7 +118,7 @@ contract InstanceService is
118
118
  InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
119
119
 
120
120
  InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
121
- BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
121
+ BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
122
122
  InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
123
123
 
124
124
  // clone instance
@@ -126,7 +126,7 @@ contract InstanceService is
126
126
  clonedInstance.initialize(
127
127
  clonedInstanceAdmin,
128
128
  clonedInstanceStore,
129
- clonedBundleManager,
129
+ clonedBundleSet,
130
130
  clonedInstanceReader,
131
131
  getRegistry(),
132
132
  instanceOwner);
@@ -238,7 +238,7 @@ contract InstanceService is
238
238
  {
239
239
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
240
240
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
241
- if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
241
+ if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
242
242
 
243
243
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
244
244
 
@@ -248,7 +248,7 @@ contract InstanceService is
248
248
  address instanceAdminAddress = address(instanceAdmin);
249
249
  InstanceReader instanceReader = instance.getInstanceReader();
250
250
  address instanceReaderAddress = address(instanceReader);
251
- BundleManager bundleManager = instance.getBundleManager();
251
+ BundleSet bundleManager = instance.getBundleSet();
252
252
  address bundleManagerAddress = address(bundleManager);
253
253
  InstanceStore instanceStore = instance.getInstanceStore();
254
254
  address instanceStoreAddress = address(instanceStore);
@@ -256,11 +256,11 @@ contract InstanceService is
256
256
  if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
257
257
  if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
258
258
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
259
- if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
259
+ if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
260
260
  if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
261
261
 
262
262
  if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
263
- if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
263
+ if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
264
264
  if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
265
265
  if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
266
266
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
@@ -269,7 +269,7 @@ contract InstanceService is
269
269
  _masterInstanceAdmin = instanceAdminAddress;
270
270
  _masterInstance = instanceAddress;
271
271
  _masterInstanceReader = instanceReaderAddress;
272
- _masterInstanceBundleManager = bundleManagerAddress;
272
+ _masterInstanceBundleSet = bundleManagerAddress;
273
273
  _masterInstanceStore = instanceStoreAddress;
274
274
 
275
275
  IInstance masterInstance = IInstance(_masterInstance);
@@ -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 {
@@ -10,17 +10,17 @@ import {IRegistry} from "../../registry/IRegistry.sol";
10
10
  import {LibNftIdSet} from "../../type/NftIdSet.sol";
11
11
  import {NftId} from "../../type/NftId.sol";
12
12
 
13
- contract ObjectManager is
13
+ contract ObjectSet is
14
14
  Cloneable
15
15
  {
16
16
 
17
- event LogObjectManagerInitialized(address instance);
17
+ event LogObjectSetInitialized(address instance);
18
18
 
19
- error ErrorObjectManagerNftIdInvalid(NftId instanceNftId);
19
+ error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
20
20
 
21
21
  mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
22
22
  mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
23
- IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectManager initialization
23
+ IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
24
24
 
25
25
  /// @dev This initializer needs to be called from the instance itself.
26
26
  function initialize()
@@ -30,7 +30,7 @@ contract ObjectManager is
30
30
  _instance = IInstance(msg.sender);
31
31
  __Cloneable_init(_instance.authority(), address(_instance.getRegistry()));
32
32
 
33
- emit LogObjectManagerInitialized(address(_instance));
33
+ emit LogObjectSetInitialized(address(_instance));
34
34
  }
35
35
 
36
36
  function getInstance() external view returns (IInstance) {
@@ -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,