@etherisc/gif-next 0.0.2-fd2113c-488 → 0.0.2-fd41099-706

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