@etherisc/gif-next 0.0.2-f634e5c-828 → 0.0.2-f689687-279

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 (433) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  12. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
  14. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +82 -12
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -65
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -39
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +117 -110
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -26
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +27 -3
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +102 -42
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +259 -184
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -54
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -63
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -48
  54. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +288 -147
  58. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  59. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  60. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
  62. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
  64. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  65. package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
  66. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +331 -99
  68. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
  70. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +294 -196
  72. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
  74. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  76. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +403 -353
  78. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  79. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
  80. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  81. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  82. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  85. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  89. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  90. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  91. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  96. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -56
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -26
  104. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  106. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -40
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -39
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
  120. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -26
  124. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  126. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  127. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -39
  128. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  139. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -130
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  141. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  147. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  149. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +27 -50
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -117
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +105 -137
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +40 -38
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  166. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  167. package/artifacts/contracts/product/Product.sol/Product.json +157 -130
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  169. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  177. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  178. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  179. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  188. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  190. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  192. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +315 -49
  194. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  196. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  198. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  199. package/artifacts/contracts/shared/Component.sol/Component.json +51 -39
  200. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -442
  202. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -70
  204. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  206. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
  208. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  211. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  212. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  213. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -26
  214. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -291
  216. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -26
  218. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  220. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  224. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  227. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -39
  230. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  231. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  233. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  237. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  241. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  242. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  249. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  251. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -26
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  253. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  255. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
  256. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  257. package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +27 -19
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -51
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +18 -20
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  273. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  282. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  283. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  287. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +23 -4
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  309. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  312. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  314. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  315. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  316. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  317. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  318. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  319. package/contracts/accounting/AccountingService.sol +262 -0
  320. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  321. package/contracts/accounting/IAccountingService.sol +45 -0
  322. package/contracts/authorization/AccessAdmin.sol +156 -82
  323. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  324. package/contracts/authorization/Authorization.sol +277 -229
  325. package/contracts/authorization/IAccessAdmin.sol +13 -7
  326. package/contracts/authorization/IAuthorization.sol +15 -1
  327. package/contracts/distribution/BasicDistribution.sol +4 -4
  328. package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
  329. package/contracts/distribution/Distribution.sol +27 -24
  330. package/contracts/distribution/DistributionService.sol +18 -15
  331. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  332. package/contracts/examples/fire/FirePool.sol +6 -2
  333. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  334. package/contracts/examples/fire/FireProduct.sol +8 -1
  335. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  336. package/contracts/examples/unpermissioned/SimpleDistribution.sol +6 -14
  337. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  338. package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
  339. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  340. package/contracts/examples/unpermissioned/SimpleProduct.sol +25 -0
  341. package/contracts/instance/BundleSet.sol +4 -4
  342. package/contracts/instance/IInstance.sol +6 -7
  343. package/contracts/instance/IInstanceService.sol +2 -0
  344. package/contracts/instance/Instance.sol +19 -11
  345. package/contracts/instance/InstanceAdmin.sol +216 -62
  346. package/contracts/instance/InstanceAuthorizationV3.sol +18 -23
  347. package/contracts/instance/InstanceReader.sol +79 -35
  348. package/contracts/instance/InstanceService.sol +43 -31
  349. package/contracts/instance/InstanceServiceManager.sol +1 -1
  350. package/contracts/instance/InstanceStore.sol +13 -2
  351. package/contracts/instance/RiskSet.sol +11 -12
  352. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  353. package/contracts/instance/base/ObjectSet.sol +7 -8
  354. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  355. package/contracts/instance/module/IComponents.sol +3 -2
  356. package/contracts/instance/module/IRisk.sol +2 -0
  357. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  358. package/contracts/oracle/Oracle.sol +1 -1
  359. package/contracts/oracle/OracleService.sol +16 -15
  360. package/contracts/oracle/OracleServiceManager.sol +1 -1
  361. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  362. package/contracts/pool/BundleService.sol +35 -63
  363. package/contracts/pool/BundleServiceManager.sol +1 -1
  364. package/contracts/pool/IBundleService.sol +13 -20
  365. package/contracts/pool/IPoolService.sol +50 -38
  366. package/contracts/pool/Pool.sol +9 -9
  367. package/contracts/pool/PoolLib.sol +216 -0
  368. package/contracts/pool/PoolService.sol +307 -162
  369. package/contracts/pool/PoolServiceManager.sol +1 -1
  370. package/contracts/product/ApplicationService.sol +3 -3
  371. package/contracts/product/ApplicationServiceManager.sol +1 -1
  372. package/contracts/product/BasicProduct.sol +2 -0
  373. package/contracts/product/BasicProductAuthorization.sol +24 -10
  374. package/contracts/product/ClaimService.sol +157 -139
  375. package/contracts/product/ClaimServiceManager.sol +1 -1
  376. package/contracts/product/IClaimService.sol +14 -2
  377. package/contracts/product/IPolicyService.sol +3 -2
  378. package/contracts/product/IProductComponent.sol +4 -1
  379. package/contracts/product/PolicyService.sol +74 -82
  380. package/contracts/product/PolicyServiceManager.sol +1 -1
  381. package/contracts/product/PricingService.sol +23 -19
  382. package/contracts/product/PricingServiceManager.sol +3 -3
  383. package/contracts/product/Product.sol +36 -0
  384. package/contracts/product/RiskService.sol +61 -23
  385. package/contracts/product/RiskServiceManager.sol +1 -1
  386. package/contracts/registry/IRegistry.sol +8 -15
  387. package/contracts/registry/IRelease.sol +26 -0
  388. package/contracts/registry/Registry.sol +7 -2
  389. package/contracts/registry/RegistryAdmin.sol +129 -226
  390. package/contracts/registry/RegistryService.sol +3 -3
  391. package/contracts/registry/RegistryServiceManager.sol +1 -1
  392. package/contracts/registry/ReleaseAdmin.sol +245 -0
  393. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  394. package/contracts/registry/ReleaseRegistry.sol +124 -99
  395. package/contracts/registry/ServiceAuthorizationV3.sol +85 -14
  396. package/contracts/registry/TokenRegistry.sol +6 -8
  397. package/contracts/shared/Component.sol +32 -27
  398. package/contracts/shared/ComponentService.sol +89 -266
  399. package/contracts/shared/ComponentServiceManager.sol +1 -1
  400. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  401. package/contracts/shared/ContractLib.sol +32 -3
  402. package/contracts/shared/IComponent.sol +3 -9
  403. package/contracts/shared/IComponentService.sol +1 -23
  404. package/contracts/shared/IRegisterable.sol +15 -4
  405. package/contracts/shared/IService.sol +3 -5
  406. package/contracts/shared/InstanceLinkedComponent.sol +3 -3
  407. package/contracts/shared/NftOwnable.sol +4 -4
  408. package/contracts/shared/PolicyHolder.sol +1 -1
  409. package/contracts/shared/Registerable.sol +45 -19
  410. package/contracts/shared/RegistryLinked.sol +1 -1
  411. package/contracts/shared/Service.sol +8 -27
  412. package/contracts/shared/TokenHandler.sol +40 -88
  413. package/contracts/staking/IStaking.sol +0 -8
  414. package/contracts/staking/IStakingService.sol +8 -0
  415. package/contracts/staking/StakeManagerLib.sol +1 -1
  416. package/contracts/staking/Staking.sol +34 -13
  417. package/contracts/staking/StakingReader.sol +1 -1
  418. package/contracts/staking/StakingService.sol +32 -42
  419. package/contracts/staking/StakingServiceManager.sol +5 -4
  420. package/contracts/type/ObjectType.sol +46 -21
  421. package/contracts/type/RiskId.sol +5 -0
  422. package/contracts/type/RoleId.sol +24 -4
  423. package/contracts/type/Selector.sol +5 -0
  424. package/contracts/type/Timestamp.sol +0 -5
  425. package/contracts/type/Version.sol +15 -5
  426. package/contracts/upgradeability/ProxyManager.sol +1 -1
  427. package/package.json +1 -1
  428. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  429. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  430. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  431. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  432. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  433. package/contracts/instance/module/IAccess.sol +0 -46
@@ -60,6 +60,8 @@ interface IInstanceService is IService {
60
60
  NftId instanceNftId
61
61
  );
62
62
 
63
+ function upgradeInstanceReader(NftId instanceNftId) external;
64
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external;
63
65
 
64
66
  function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
65
67
  function setStakingRewardRate(UFixed rewardRate) external;
@@ -1,8 +1,6 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
-
6
4
  import {Amount} from "../type/Amount.sol";
7
5
  import {BundleSet} from "./BundleSet.sol";
8
6
  import {RiskSet} from "./RiskSet.sol";
@@ -22,18 +20,19 @@ import {UFixed} from "../type/UFixed.sol";
22
20
 
23
21
  contract Instance is
24
22
  IInstance,
25
- AccessManagedUpgradeable,
26
23
  Registerable
27
24
  {
28
25
  bool private _initialized;
29
26
 
30
27
  IComponentService internal _componentService;
31
28
  IInstanceService internal _instanceService;
29
+
32
30
  InstanceAdmin internal _instanceAdmin;
33
31
  InstanceReader internal _instanceReader;
34
32
  BundleSet internal _bundleSet;
35
33
  RiskSet internal _riskSet;
36
34
  InstanceStore internal _instanceStore;
35
+ NftId [] internal _products;
37
36
 
38
37
  modifier onlyChainNft() {
39
38
  if(msg.sender != getRegistry().getChainNftAddress()) {
@@ -54,16 +53,15 @@ contract Instance is
54
53
  external
55
54
  initializer()
56
55
  {
57
- _instanceAdmin = instanceAdmin;
58
- if(_instanceAdmin.authority() == address(0)) {
56
+ if(address(instanceAdmin) == address(0)) {
59
57
  revert ErrorInstanceInstanceAdminZero();
60
58
  }
61
59
 
62
- // set authority to instance admin authority
63
- __AccessManaged_init(_instanceAdmin.authority());
60
+ _instanceAdmin = instanceAdmin;
64
61
 
65
62
  // setup instance object info
66
- _initializeRegisterable(
63
+ __Registerable_init(
64
+ instanceAdmin.authority(),
67
65
  address(registry),
68
66
  registry.getNftId(),
69
67
  INSTANCE(),
@@ -79,8 +77,8 @@ contract Instance is
79
77
 
80
78
  // initialize instance supporting contracts
81
79
  _instanceStore.initialize();
82
- _bundleSet.initialize();
83
- _riskSet.initialize();
80
+ _bundleSet.initialize(instanceAdmin.authority(), address(registry));
81
+ _riskSet.initialize(instanceAdmin.authority(), address(registry));
84
82
  _instanceReader.initialize();
85
83
 
86
84
  _componentService = IComponentService(
@@ -97,12 +95,14 @@ contract Instance is
97
95
  }
98
96
 
99
97
  //--- ProductRegistration ----------------------------------------------//
98
+
100
99
  function registerProduct(address product)
101
100
  external
102
101
  onlyOwner()
103
102
  returns (NftId productNftId)
104
103
  {
105
- return _componentService.registerProduct(product);
104
+ productNftId = _componentService.registerProduct(product);
105
+ _products.push(productNftId);
106
106
  }
107
107
 
108
108
  //--- Staking ----------------------------------------------------------//
@@ -215,6 +215,14 @@ contract Instance is
215
215
 
216
216
  //--- external view functions -------------------------------------------//
217
217
 
218
+ function products() external view returns (uint256 productCount) {
219
+ return _products.length;
220
+ }
221
+
222
+ function getProductNftid(uint256 idx) external view returns (NftId productNftId) {
223
+ return _products[idx];
224
+ }
225
+
218
226
  function getInstanceReader() external view returns (InstanceReader) {
219
227
  return _instanceReader;
220
228
  }
@@ -1,19 +1,20 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
-
5
- import {AccessAdmin} from "../authorization/AccessAdmin.sol";
6
- import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
7
5
  import {IAuthorization} from "../authorization/IAuthorization.sol";
8
6
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
- import {IAuthorization} from "../authorization/IAuthorization.sol";
10
7
  import {IRegistry} from "../registry/IRegistry.sol";
11
8
  import {IInstance} from "./IInstance.sol";
9
+
10
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
11
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
+ import {NftId} from "../type/NftId.sol";
12
13
  import {ObjectType} from "../type/ObjectType.sol";
13
14
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
15
  import {Str, StrLib} from "../type/String.sol";
15
16
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
- import {VersionPart} from "../type/Version.sol";
17
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
17
18
 
18
19
 
19
20
  contract InstanceAdmin is
@@ -27,67 +28,95 @@ contract InstanceAdmin is
27
28
 
28
29
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
29
30
 
31
+ error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
32
+ error ErrorInstanceAdminInstanceAlreadyLocked();
30
33
  error ErrorInstanceAdminNotRegistered(address target);
34
+
31
35
  error ErrorInstanceAdminAlreadyAuthorized(address target);
36
+ error ErrorInstanceAdminNotComponentRole(RoleId roleId);
37
+ error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
38
+ error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
39
+
32
40
  error ErrorInstanceAdminReleaseMismatch();
33
41
  error ErrorInstanceAdminExpectedTargetMissing(string targetName);
34
42
 
35
43
  IInstance internal _instance;
36
44
  IRegistry internal _registry;
37
- uint64 internal _idNext;
45
+ uint64 internal _customIdNext;
46
+
47
+ mapping(address target => RoleId roleId) internal _targetRoleId;
48
+ uint64 internal _components;
38
49
 
39
50
  IAuthorization internal _instanceAuthorization;
40
51
 
52
+
53
+ modifier onlyInstanceOwner() {
54
+ if(msg.sender != _registry.ownerOf(address(_instance))) {
55
+ revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
56
+ }
57
+ _;
58
+ }
59
+
41
60
  /// @dev Only used for master instance admin.
42
61
  /// Contracts created via constructor come with disabled initializers.
43
62
  constructor(
44
63
  address instanceAuthorization
45
- )
46
- AccessAdmin()
47
- {
64
+ ) {
65
+ initialize(new AccessManagerCloneable());
66
+
48
67
  _instanceAuthorization = IAuthorization(instanceAuthorization);
68
+
69
+ _disableInitializers();
49
70
  }
50
71
 
51
- /// @dev Initializes this instance admin with the provided instances authorization specification.
52
- /// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
53
- /// for the inststance authorizatios.
54
- /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
72
+
55
73
  function initialize(
56
- AccessManagerCloneable accessManager,
57
- address instanceAuthorization
74
+ AccessManagerCloneable clonedAccessManager,
75
+ IRegistry registry,
76
+ VersionPart release
58
77
  )
59
78
  external
60
79
  initializer()
61
80
  {
62
- // create new access manager for this instance admin
63
- _initializeAuthority(address(accessManager));
81
+ __AccessAdmin_init(clonedAccessManager);
64
82
 
65
- // create basic instance independent setup
66
- _createAdminAndPublicRoles();
83
+ clonedAccessManager.completeSetup(
84
+ address(registry),
85
+ release);
67
86
 
68
- // store instance authorization specification
69
- _instanceAuthorization = IAuthorization(instanceAuthorization);
87
+ _registry = registry;
70
88
  }
71
89
 
72
- /// @dev Completes the initialization of this instance admin using the provided instance.
90
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
91
+ /// Important: Initialization of instance admin is only complete after calling this function.
73
92
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
74
- function initializeInstanceAuthorization(address instanceAddress)
93
+ function completeSetup(
94
+ address instance,
95
+ address authorization
96
+ )
75
97
  external
98
+ reinitializer(uint64(getRelease().toInt()))
99
+ onlyDeployer()
76
100
  {
77
- _checkTargetIsReadyForAuthorization(instanceAddress);
101
+ _components = 0;
102
+ _customIdNext = CUSTOM_ROLE_ID_MIN;
103
+ _instance = IInstance(instance);
104
+ _instanceAuthorization = IAuthorization(authorization);
78
105
 
79
- _idNext = CUSTOM_ROLE_ID_MIN;
80
- _instance = IInstance(instanceAddress);
81
- _registry = _instance.getRegistry();
106
+ _checkTargetIsReadyForAuthorization(instance);
82
107
 
83
108
  // check matching releases
84
- if (_instanceAuthorization.getRelease() != _instance.getRelease()) {
109
+ if (_instanceAuthorization.getRelease() != getRelease()) {
85
110
  revert ErrorInstanceAdminReleaseMismatch();
86
111
  }
87
112
 
113
+ // create instance role and target
114
+ _setupInstance(instance);
115
+
88
116
  // add instance authorization
89
117
  _createRoles(_instanceAuthorization);
90
- _createModuleTargetsWithRoles();
118
+
119
+ _setupInstanceHelperTargetsWithRoles();
91
120
  _createTargetAuthorizations(_instanceAuthorization);
92
121
  }
93
122
 
@@ -98,47 +127,53 @@ contract InstanceAdmin is
98
127
  IInstanceLinkedComponent component
99
128
  )
100
129
  external
130
+ restricted()
101
131
  {
102
132
  // checks
103
- // get authorization specification
104
- IAuthorization authorization = component.getAuthorization();
105
- string memory targetName = authorization.getTargetName();
106
133
  _checkTargetIsReadyForAuthorization(address(component));
107
134
 
135
+ // setup target and role for component (including token handler)
136
+ _setupComponentAndTokenHandler(component);
108
137
 
109
- // create roles
138
+ // create other roles
139
+ IAuthorization authorization = component.getAuthorization();
110
140
  _createRoles(authorization);
111
141
 
112
- // create component target
113
- _createTarget(
114
- address(component),
115
- targetName,
116
- true, // checkAuthority
117
- false); // custom
142
+ // TODO cleanup
143
+ // FunctionInfo[] memory functions = new FunctionInfo[](2);
144
+ // functions[0] = toFunction(TokenHandler.pullToken.selector, "pullToken");
145
+ // functions[1] = toFunction(TokenHandler.pushToken.selector, "pushToken");
118
146
 
119
- _createTarget(
120
- address(component.getTokenHandler()),
121
- string(abi.encodePacked(targetName, "TH")),
122
- true,
123
- false);
147
+ // // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
148
+ // _authorizeTargetFunctions(
149
+ // address(component.getTokenHandler()),
150
+ // getPublicRole(),
151
+ // functions);
124
152
 
125
- FunctionInfo[] memory functions = new FunctionInfo[](3);
126
- functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
127
- functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
128
- functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
153
+ _createTargetAuthorizations(authorization);
154
+ }
155
+
156
+ // create instance role and target
157
+ function _setupInstance(address instance) internal {
158
+ // create instance role
159
+ RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
160
+ _instanceAuthorization.getMainTarget());
129
161
 
130
- // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
131
- _authorizeTargetFunctions(
132
- address(component.getTokenHandler()),
133
- getPublicRole(),
134
- functions);
162
+ _createRole(
163
+ instanceRoleId,
164
+ _instanceAuthorization.getRoleInfo(instanceRoleId));
135
165
 
166
+ // create instance target
167
+ _createTarget(
168
+ instance,
169
+ _instanceAuthorization.getMainTargetName(),
170
+ true, // checkAuthority
171
+ false); // custom
172
+
173
+ // assign instance role to instance
136
174
  _grantRoleToAccount(
137
- authorization.getTargetRole(
138
- authorization.getMainTarget()),
139
- address(component));
140
-
141
- _createTargetAuthorizations(authorization);
175
+ instanceRoleId,
176
+ instance);
142
177
  }
143
178
 
144
179
  /// @dev Creates a custom role
@@ -160,6 +195,19 @@ contract InstanceAdmin is
160
195
  _grantRoleToAccount(roleId, account);
161
196
  }
162
197
 
198
+
199
+ function setInstanceLocked(bool locked)
200
+ external
201
+ onlyInstanceOwner()
202
+ {
203
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
204
+
205
+ if(accessManager.isLocked() == locked) {
206
+ revert ErrorInstanceAdminInstanceAlreadyLocked();
207
+ }
208
+ accessManager.setLocked(locked);
209
+ }
210
+
163
211
  function setTargetLocked(address target, bool locked)
164
212
  external
165
213
  restricted()
@@ -178,12 +226,102 @@ contract InstanceAdmin is
178
226
  return _instanceAuthorization;
179
227
  }
180
228
 
229
+ // ------------------- Internal functions ------------------- //
230
+
231
+ function _setupComponentAndTokenHandler(IInstanceLinkedComponent component)
232
+ internal
233
+ {
234
+
235
+ IAuthorization authorization = component.getAuthorization();
236
+ string memory targetName = authorization.getMainTargetName();
237
+
238
+ // create component role and target
239
+ RoleId componentRoleId = _createComponentRoleId(component, authorization);
240
+
241
+ // create component's target
242
+ _createTarget(
243
+ address(component),
244
+ targetName,
245
+ true, // checkAuthority
246
+ false); // custom
247
+
248
+ // create component's token handler target
249
+ NftId componentNftId = _registry.getNftIdForAddress(address(component));
250
+ address tokenHandler = address(
251
+ _instance.getInstanceReader().getComponentInfo(
252
+ componentNftId).tokenHandler);
253
+
254
+ _createTarget(
255
+ tokenHandler,
256
+ authorization.getTokenHandlerName(),
257
+ true,
258
+ false);
259
+
260
+ // assign component role to component
261
+ _grantRoleToAccount(
262
+ componentRoleId,
263
+ address(component));
264
+
265
+ // token handler does not require its own role
266
+ // token handler is not calling other components
267
+ }
268
+
269
+
270
+ function _createComponentRoleId(
271
+ IInstanceLinkedComponent component,
272
+ IAuthorization authorization
273
+ )
274
+ internal
275
+ returns (RoleId componentRoleId)
276
+ {
277
+ // checks
278
+ // check component is not yet authorized
279
+ if (_targetRoleId[address(component)].gtz()) {
280
+ revert ErrorInstanceAdminAlreadyAuthorized(address(component));
281
+ }
282
+
283
+ // check generic component role
284
+ RoleId genericComponentRoleId = authorization.getTargetRole(
285
+ authorization.getMainTarget());
286
+
287
+ if (!genericComponentRoleId.isComponentRole()) {
288
+ revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
289
+ }
290
+
291
+ // check component role does not exist
292
+ componentRoleId = toComponentRole(
293
+ genericComponentRoleId,
294
+ _components);
295
+
296
+ if (roleExists(componentRoleId)) {
297
+ revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
298
+ }
299
+
300
+ // check role info
301
+ IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
302
+ genericComponentRoleId);
303
+
304
+ if (roleInfo.roleType != IAccess.RoleType.Contract) {
305
+ revert ErrorInstanceAdminRoleTypeNotContract(
306
+ componentRoleId,
307
+ roleInfo.roleType);
308
+ }
309
+
310
+ // effects
311
+ _targetRoleId[address(component)] = componentRoleId;
312
+ _components++;
313
+
314
+ _createRole(
315
+ componentRoleId,
316
+ roleInfo);
317
+ }
318
+
181
319
 
182
320
  function _checkTargetIsReadyForAuthorization(address target)
183
321
  internal
184
322
  view
185
323
  {
186
- if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
324
+ if (!_registry.isRegistered(target)) {
187
325
  revert ErrorInstanceAdminNotRegistered(target);
188
326
  }
189
327
 
@@ -197,13 +335,18 @@ contract InstanceAdmin is
197
335
  internal
198
336
  {
199
337
  RoleId[] memory roles = authorization.getRoles();
338
+ RoleId mainTargetRoleId = authorization.getTargetRole(
339
+ authorization.getMainTarget());
340
+
200
341
  RoleId roleId;
201
342
  RoleInfo memory roleInfo;
202
343
 
203
344
  for(uint256 i = 0; i < roles.length; i++) {
345
+
204
346
  roleId = roles[i];
205
347
 
206
- if (!roleExists(roleId)) {
348
+ // skip main target role, create role if not exists
349
+ if (roleId != mainTargetRoleId && !roleExists(roleId)) {
207
350
  _createRole(
208
351
  roleId,
209
352
  authorization.getRoleInfo(roleId));
@@ -212,6 +355,16 @@ contract InstanceAdmin is
212
355
  }
213
356
 
214
357
 
358
+ function toComponentRole(RoleId roleId, uint64 componentIdx)
359
+ internal
360
+ pure
361
+ returns (RoleId)
362
+ {
363
+ return RoleIdLib.toRoleId(
364
+ RoleIdLib.toInt(roleId) + componentIdx);
365
+ }
366
+
367
+
215
368
  function _createTargetAuthorizations(IAuthorization authorization)
216
369
  internal
217
370
  {
@@ -262,11 +415,12 @@ contract InstanceAdmin is
262
415
  }
263
416
  }
264
417
 
265
- function _createModuleTargetsWithRoles()
418
+ function _setupInstanceHelperTargetsWithRoles()
266
419
  internal
267
420
  {
421
+ // _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
422
+
268
423
  // create module targets
269
- _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
270
424
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
271
425
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
272
426
  _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
5
+ ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
8
  import {BundleSet} from "../instance/BundleSet.sol";
@@ -26,27 +26,14 @@ contract InstanceAuthorizationV3
26
26
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
27
  string public constant RISK_SET_TARGET_NAME = "RiskSet";
28
28
 
29
- constructor() Authorization(INSTANCE_TARGET_NAME) {}
30
-
31
-
32
- function _setupRoles()
33
- internal
34
- override
35
- {
36
- // empty implementation
37
- }
38
-
29
+ constructor()
30
+ Authorization(INSTANCE_TARGET_NAME, INSTANCE())
31
+ { }
39
32
 
40
33
  function _setupTargets()
41
34
  internal
42
35
  override
43
36
  {
44
- // instance target
45
- _addTargetWithRole(
46
- INSTANCE_TARGET_NAME,
47
- _toTargetRoleId(INSTANCE()),
48
- INSTANCE_ROLE_NAME);
49
-
50
37
  // instance supporting targets
51
38
  _addTarget(INSTANCE_STORE_TARGET_NAME);
52
39
  _addTarget(INSTANCE_ADMIN_TARGET_NAME);
@@ -55,6 +42,7 @@ contract InstanceAuthorizationV3
55
42
 
56
43
  // service targets relevant to instance
57
44
  _addServiceTargetWithRole(INSTANCE());
45
+ _addServiceTargetWithRole(ACCOUNTING());
58
46
  _addServiceTargetWithRole(COMPONENT());
59
47
  _addServiceTargetWithRole(DISTRIBUTION());
60
48
  _addServiceTargetWithRole(ORACLE());
@@ -131,11 +119,12 @@ contract InstanceAuthorizationV3
131
119
  IAccess.FunctionInfo[] storage functions;
132
120
 
133
121
  // authorize instance role
134
- functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
122
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getComponentRole(INSTANCE()));
135
123
  _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
136
124
 
137
125
  // authorize component service role
138
126
  functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
127
+ _authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
139
128
  _authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
140
129
  }
141
130
 
@@ -145,6 +134,13 @@ contract InstanceAuthorizationV3
145
134
  {
146
135
  IAccess.FunctionInfo[] storage functions;
147
136
 
137
+ // authorize accounting service role
138
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
139
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
140
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
141
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
142
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
143
+
148
144
  // authorize component service role
149
145
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
150
146
  _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
@@ -152,11 +148,9 @@ contract InstanceAuthorizationV3
152
148
  _authorize(functions, InstanceStore.createPool.selector, "createPool");
153
149
  _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
154
150
  _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
155
- _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
156
- _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
157
- _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
158
- _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
159
-
151
+ _authorize(functions, InstanceStore.createFee.selector, "createFee");
152
+ _authorize(functions, InstanceStore.updateFee.selector, "updateFee");
153
+
160
154
  // authorize distribution service role
161
155
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
162
156
  _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
@@ -213,6 +207,7 @@ contract InstanceAuthorizationV3
213
207
  _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
214
208
  _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
215
209
  _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
210
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
216
211
  }
217
212
  }
218
213