@etherisc/gif-next 0.0.2-7dc3cd3-858 → 0.0.2-7e48d89-379

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 (419) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +38 -33
  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 +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +8 -8
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  14. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +8 -8
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +23 -4
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -90
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +19 -19
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -64
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +182 -74
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +71 -55
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -26
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -0
  32. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  33. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  34. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  35. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +7 -7
  36. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  37. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +10 -5
  38. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/Instance.sol/Instance.json +19 -19
  40. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  41. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  42. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  43. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
  44. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +80 -122
  46. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -39
  48. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -35
  50. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +89 -212
  52. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  54. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  55. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  57. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  58. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  59. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  60. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  61. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  67. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  68. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  69. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  70. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -77
  71. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  72. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +21 -21
  73. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  74. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -26
  76. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -61
  79. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  81. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  83. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  84. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +54 -125
  85. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
  87. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  88. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +394 -62
  89. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  90. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +107 -43
  91. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  92. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  93. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  94. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -83
  95. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +158 -54
  97. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  98. package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -121
  99. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +226 -90
  101. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +52 -36
  103. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  104. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +33 -44
  105. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  106. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -40
  107. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  108. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -64
  109. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  110. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
  111. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  112. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +88 -72
  113. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
  115. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  116. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  117. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  118. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
  119. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  120. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +188 -108
  121. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  122. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  123. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -26
  124. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  125. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  126. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +260 -167
  127. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +59 -43
  129. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  130. package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -58
  131. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
  133. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  134. package/artifacts/contracts/product/Product.sol/Product.json +19 -64
  135. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  136. package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
  137. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
  139. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  140. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  141. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  142. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
  143. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  144. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  145. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  146. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  147. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -29
  148. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  149. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +100 -95
  150. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  151. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  152. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  154. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  155. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  156. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  157. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  158. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  159. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +26 -7
  160. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  161. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  162. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  163. package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
  164. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  165. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +255 -62
  166. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -49
  168. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  171. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  173. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  174. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -26
  175. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  177. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  178. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  179. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  180. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  184. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  185. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  186. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  187. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  188. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -64
  189. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  190. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  191. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  192. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  193. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  194. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  195. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  196. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  197. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  198. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  199. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  200. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  201. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  202. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  203. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  204. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  205. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  206. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  207. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  209. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
  210. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  211. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  212. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +40 -113
  213. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  214. package/artifacts/contracts/staking/Staking.sol/Staking.json +55 -119
  215. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  216. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  218. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +46 -46
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  222. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  228. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
  229. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  230. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  237. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  241. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  242. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  245. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  246. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  255. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  257. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +14 -14
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  261. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  263. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  265. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  267. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  269. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  271. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  273. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
  275. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  277. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  279. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  280. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  281. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  282. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  283. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  284. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  285. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  286. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  287. package/contracts/authorization/AccessAdmin.sol +8 -10
  288. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  289. package/contracts/authorization/Authorization.sol +0 -1
  290. package/contracts/authorization/IServiceAuthorization.sol +3 -0
  291. package/contracts/authorization/ServiceAuthorization.sol +4 -0
  292. package/contracts/distribution/BasicDistribution.sol +4 -15
  293. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  294. package/contracts/distribution/Distribution.sol +22 -10
  295. package/contracts/distribution/DistributionService.sol +47 -27
  296. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  297. package/contracts/distribution/IDistributionComponent.sol +8 -4
  298. package/contracts/distribution/IDistributionService.sol +10 -0
  299. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  300. package/contracts/instance/IInstance.sol +7 -7
  301. package/contracts/instance/IInstanceService.sol +6 -5
  302. package/contracts/instance/Instance.sol +8 -8
  303. package/contracts/instance/{InstanceAdminNew.sol → InstanceAdmin.sol} +33 -9
  304. package/contracts/instance/InstanceAuthorizationV3.sol +16 -21
  305. package/contracts/instance/InstanceReader.sol +10 -7
  306. package/contracts/instance/InstanceService.sol +69 -32
  307. package/contracts/instance/InstanceServiceManager.sol +2 -6
  308. package/contracts/instance/InstanceStore.sol +8 -4
  309. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  310. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  311. package/contracts/instance/module/IBundle.sol +1 -1
  312. package/contracts/instance/module/IComponents.sol +1 -7
  313. package/contracts/instance/module/IDistribution.sol +0 -1
  314. package/contracts/instance/module/IPolicy.sol +1 -1
  315. package/contracts/mock/Dip.sol +1 -1
  316. package/contracts/oracle/IOracleComponent.sol +2 -1
  317. package/contracts/oracle/Oracle.sol +15 -6
  318. package/contracts/oracle/OracleServiceManager.sol +2 -5
  319. package/contracts/pool/BasicPool.sol +7 -5
  320. package/contracts/pool/BasicPoolAuthorization.sol +11 -2
  321. package/contracts/pool/BundleService.sol +181 -41
  322. package/contracts/pool/BundleServiceManager.sol +2 -5
  323. package/contracts/pool/IBundleService.sol +33 -5
  324. package/contracts/pool/IPoolComponent.sol +6 -0
  325. package/contracts/pool/IPoolService.sol +14 -17
  326. package/contracts/pool/Pool.sol +32 -15
  327. package/contracts/pool/PoolService.sol +152 -85
  328. package/contracts/pool/PoolServiceManager.sol +2 -5
  329. package/contracts/product/ApplicationService.sol +49 -53
  330. package/contracts/product/ApplicationServiceManager.sol +2 -2
  331. package/contracts/product/BasicProduct.sol +3 -33
  332. package/contracts/product/BasicProductAuthorization.sol +3 -0
  333. package/contracts/product/ClaimService.sol +13 -39
  334. package/contracts/product/ClaimServiceManager.sol +2 -2
  335. package/contracts/product/IApplicationService.sol +1 -0
  336. package/contracts/product/IClaimService.sol +1 -0
  337. package/contracts/product/IPolicyService.sol +23 -17
  338. package/contracts/product/IProductComponent.sol +1 -0
  339. package/contracts/product/IProductService.sol +1 -0
  340. package/contracts/product/PolicyService.sol +251 -134
  341. package/contracts/product/PolicyServiceManager.sol +2 -5
  342. package/contracts/product/PricingService.sol +5 -1
  343. package/contracts/product/PricingServiceManager.sol +2 -5
  344. package/contracts/product/Product.sol +27 -6
  345. package/contracts/product/ProductService.sol +7 -32
  346. package/contracts/product/ProductServiceManager.sol +2 -5
  347. package/contracts/registry/IRegistry.sol +26 -13
  348. package/contracts/registry/IRegistryService.sol +6 -6
  349. package/contracts/registry/Registry.sol +80 -82
  350. package/contracts/registry/RegistryAdmin.sol +34 -23
  351. package/contracts/registry/RegistryService.sol +4 -18
  352. package/contracts/registry/RegistryServiceManager.sol +2 -2
  353. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  354. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +145 -178
  355. package/contracts/registry/ServiceAuthorizationV3.sol +5 -5
  356. package/contracts/registry/TokenRegistry.sol +2 -2
  357. package/contracts/shared/Component.sol +24 -37
  358. package/contracts/shared/ComponentService.sol +83 -21
  359. package/contracts/shared/ComponentServiceManager.sol +2 -2
  360. package/contracts/shared/IComponent.sol +4 -4
  361. package/contracts/shared/IComponentService.sol +15 -9
  362. package/contracts/shared/IInstanceLinkedComponent.sol +9 -3
  363. package/contracts/shared/IKeyValueStore.sol +1 -0
  364. package/contracts/shared/ILifecycle.sol +1 -2
  365. package/contracts/shared/IService.sol +1 -1
  366. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  367. package/contracts/shared/InstanceLinkedComponent.sol +21 -0
  368. package/contracts/shared/KeyValueStore.sol +6 -2
  369. package/contracts/shared/Lifecycle.sol +16 -69
  370. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  371. package/contracts/shared/NftOwnable.sol +2 -2
  372. package/contracts/shared/PolicyHolder.sol +2 -5
  373. package/contracts/shared/Service.sol +3 -4
  374. package/contracts/shared/TokenHandler.sol +100 -19
  375. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  376. package/contracts/staking/IStaking.sol +1 -2
  377. package/contracts/staking/IStakingService.sol +12 -5
  378. package/contracts/staking/StakeManagerLib.sol +0 -25
  379. package/contracts/staking/Staking.sol +21 -37
  380. package/contracts/staking/StakingLifecycle.sol +23 -0
  381. package/contracts/staking/StakingManager.sol +2 -6
  382. package/contracts/staking/StakingReader.sol +12 -16
  383. package/contracts/staking/StakingService.sol +8 -12
  384. package/contracts/staking/StakingServiceManager.sol +2 -2
  385. package/contracts/staking/StakingStore.sol +15 -23
  386. package/contracts/type/Amount.sol +12 -5
  387. package/contracts/type/Blocknumber.sol +7 -1
  388. package/contracts/type/ObjectType.sol +3 -7
  389. package/contracts/type/Referral.sol +1 -0
  390. package/contracts/type/Seconds.sol +13 -1
  391. package/contracts/type/Timestamp.sol +11 -1
  392. package/contracts/type/UFixed.sol +29 -10
  393. package/contracts/type/Version.sol +3 -1
  394. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  395. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  396. package/package.json +3 -3
  397. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
  398. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +0 -1385
  399. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  400. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  401. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +0 -4
  402. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +0 -1616
  403. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  404. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
  405. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  406. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1140
  407. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  408. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  409. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  410. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  411. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  412. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  413. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  414. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  415. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  416. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  417. package/contracts/authorization/InstanceAdmin.sol +0 -108
  418. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  419. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -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) {
@@ -21,8 +21,8 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
21
21
 
22
22
  import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
23
 
24
- import {InstanceAdminNew} from "./InstanceAdminNew.sol";
25
- import {BundleManager} from "./BundleManager.sol";
24
+ import {InstanceAdmin} from "./InstanceAdmin.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);
84
- function getInstanceAdmin() external view returns (InstanceAdminNew);
83
+ function getBundleSet() external view returns (BundleSet);
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();
@@ -32,13 +32,14 @@ interface IInstanceService is IService {
32
32
  error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
33
33
  error ErrorInstanceServiceInstanceReaderInstanceMismatch();
34
34
 
35
+ error ErrorInstanceServiceAccessManagerZero();
35
36
  error ErrorInstanceServiceInstanceAdminZero();
36
37
  error ErrorInstanceServiceInstanceReaderZero();
37
- error ErrorInstanceServiceBundleManagerZero();
38
+ error ErrorInstanceServiceBundleSetZero();
38
39
  error ErrorInstanceServiceInstanceStoreZero();
39
40
 
40
41
  error ErrorInstanceServiceInstanceAuthorityMismatch();
41
- error ErrorInstanceServiceBundleManagerAuthorityMismatch();
42
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
42
43
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
43
44
  error ErrorInstanceServiceBundleMangerInstanceMismatch();
44
45
  error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
@@ -51,7 +52,7 @@ interface IInstanceService is IService {
51
52
 
52
53
  event LogInstanceCloned(NftId instanceNftId, address instance);
53
54
 
54
- function createInstanceClone()
55
+ function createInstance()
55
56
  external
56
57
  returns (
57
58
  // TODO check if Instance can be changed to IInstance
@@ -25,8 +25,8 @@ import {IRegistry} from "../registry/IRegistry.sol";
25
25
  import {IInstance} from "./IInstance.sol";
26
26
  import {IInstanceService} from "./IInstanceService.sol";
27
27
  import {InstanceReader} from "./InstanceReader.sol";
28
- import {InstanceAdminNew} from "./InstanceAdminNew.sol";
29
- import {BundleManager} from "./BundleManager.sol";
28
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
29
+ import {BundleSet} from "./BundleSet.sol";
30
30
  import {InstanceStore} from "./InstanceStore.sol";
31
31
 
32
32
  import {KeyValueStore} from "../shared/KeyValueStore.sol";
@@ -53,9 +53,9 @@ contract Instance is
53
53
  bool private _initialized;
54
54
 
55
55
  IInstanceService internal _instanceService;
56
- InstanceAdminNew internal _instanceAdmin;
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() {
@@ -66,9 +66,9 @@ contract Instance is
66
66
  }
67
67
 
68
68
  function initialize(
69
- InstanceAdminNew instanceAdmin,
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,11 +234,11 @@ 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
 
241
- function getInstanceAdmin() external view returns (InstanceAdminNew) {
241
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
242
242
  return _instanceAdmin;
243
243
  }
244
244
 
@@ -4,8 +4,10 @@ pragma solidity ^0.8.20;
4
4
  import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
5
 
6
6
  import {AccessAdmin} from "../authorization/AccessAdmin.sol";
7
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
7
8
  import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
8
9
  import {IAuthorization} from "../authorization/IAuthorization.sol";
10
+ import {IComponent} from "../shared/IComponent.sol";
9
11
  import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
10
12
  import {IRegistry} from "../registry/IRegistry.sol";
11
13
  import {IInstance} from "./IInstance.sol";
@@ -13,16 +15,17 @@ import {IService} from "../shared/IService.sol";
13
15
  import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
14
16
  import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
15
17
  import {Str, StrLib} from "../type/String.sol";
18
+ import {TokenHandler} from "../shared/TokenHandler.sol";
16
19
  import {VersionPart} from "../type/Version.sol";
17
20
 
18
21
 
19
- contract InstanceAdminNew is
22
+ contract InstanceAdmin is
20
23
  AccessAdmin
21
24
  {
22
25
  string public constant INSTANCE_TARGET_NAME = "Instance";
23
26
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
24
27
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
25
- string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
28
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
26
29
 
27
30
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
28
31
 
@@ -39,7 +42,11 @@ contract InstanceAdminNew is
39
42
 
40
43
  /// @dev Only used for master instance admin.
41
44
  /// Contracts created via constructor come with disabled initializers.
42
- constructor(IModuleAuthorization instanceAuthorization) AccessAdmin() {
45
+ constructor(
46
+ IModuleAuthorization instanceAuthorization
47
+ )
48
+ AccessAdmin()
49
+ {
43
50
  _instanceAuthorization = instanceAuthorization;
44
51
  }
45
52
 
@@ -48,13 +55,13 @@ contract InstanceAdminNew is
48
55
  /// for the inststance authorizatios.
49
56
  /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
50
57
  function initialize(
58
+ AccessManagerCloneable accessManager,
51
59
  IModuleAuthorization instanceAuthorization
52
60
  )
53
61
  external
54
62
  initializer()
55
63
  {
56
64
  // create new access manager for this instance admin
57
- AccessManager accessManager = new AccessManager(address(this));
58
65
  _initializeAuthority(address(accessManager));
59
66
 
60
67
  // create basic instance independent setup
@@ -106,26 +113,43 @@ contract InstanceAdminNew is
106
113
  /// @dev Initializes the authorization for the specified component.
107
114
  /// Important: The component MUST be registered.
108
115
  function initializeComponentAuthorization(
109
- address componentAddress,
116
+ IComponent component,
110
117
  IAuthorization authorization
111
118
  )
112
119
  external
113
120
  {
114
- _checkTargetIsReadyForAuthorization(componentAddress);
121
+ _checkTargetIsReadyForAuthorization(address(component));
115
122
 
116
123
  _createRoles(authorization);
117
124
 
118
125
  // create component target
119
126
  _createTarget(
120
- componentAddress,
127
+ address(component),
121
128
  authorization.getTargetName(),
122
129
  true, // checkAuthority
123
130
  false); // custom
124
131
 
132
+ _createTarget(
133
+ address(component.getTokenHandler()),
134
+ string(abi.encodePacked(authorization.getTargetName(), "TH")),
135
+ true,
136
+ false);
137
+
138
+ // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
139
+ FunctionInfo[] memory functions = new FunctionInfo[](3);
140
+ functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
141
+ functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
142
+ functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
143
+
144
+ _authorizeTargetFunctions(
145
+ address(component.getTokenHandler()),
146
+ getPublicRole(),
147
+ functions);
148
+
125
149
  _grantRoleToAccount(
126
150
  authorization.getTargetRole(
127
151
  authorization.getTarget()),
128
- componentAddress);
152
+ address(component));
129
153
 
130
154
  _createTargetAuthorizations(authorization);
131
155
  }
@@ -243,7 +267,7 @@ contract InstanceAdminNew is
243
267
  _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
244
268
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
245
269
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
246
- _checkAndCreateTargetWithRole(address(_instance.getBundleManager()), BUNDLE_MANAGER_TARGET_NAME);
270
+ _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
247
271
 
248
272
  // create targets for services that need to access the module targets
249
273
  ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
@@ -9,10 +9,10 @@ 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
- import {InstanceAdminNew} from "../instance/InstanceAdminNew.sol";
15
+ import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
16
16
  import {InstanceStore} from "../instance/InstanceStore.sol";
17
17
  import {ModuleAuthorization} from "../authorization/ModuleAuthorization.sol";
18
18
  import {RoleId} from "../type/RoleId.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
 
@@ -121,17 +121,10 @@ contract InstanceAuthorizationV3
121
121
 
122
122
  // authorize instance role
123
123
  functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _getTargetRoleId(INSTANCE()));
124
- // _authorize(functions, InstanceAdminNew.createRole.selector, "createRole");
125
- _authorize(functions, InstanceAdminNew.grantRole.selector, "grantRole");
126
- // _authorize(functions, InstanceAdminNew.createTarget.selector, "createTarget");
127
- // _authorize(functions, InstanceAdminNew.setTargetFunctionRoleByInstance.selector, "setTargetFunctionRoleByInstance");
128
- // _authorize(functions, InstanceAdminNew.setTargetLockedByInstance.selector, "setTargetLockedByInstance");
124
+ _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
129
125
 
130
126
  // authorize instance service role
131
- functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
132
- // _authorize(functions, InstanceAdminNew.createGifTarget.selector, "createGifTarget");
133
- // _authorize(functions, InstanceAdminNew.setTargetLockedByService.selector, "setTargetLockedByService");
134
- // _authorize(functions, InstanceAdminNew.setTargetFunctionRoleByService.selector, "setTargetFunctionRoleByService");
127
+ // functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
135
128
  }
136
129
 
137
130
 
@@ -148,7 +141,9 @@ contract InstanceAuthorizationV3
148
141
  _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
149
142
  _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
150
143
  _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
144
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
151
145
  _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
146
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
152
147
 
153
148
  // authorize distribution service role
154
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