@etherisc/gif-next 0.0.2-7d65090-351 → 0.0.2-7dc3cd3-858

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 (339) hide show
  1. package/README.md +18 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  12. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
  16. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +171 -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 +90 -74
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +30 -30
  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/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1 -14
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +22 -39
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +30 -91
  44. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
  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 +56 -121
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +18 -42
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
  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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
  63. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  69. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  70. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  71. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  72. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  73. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  74. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  76. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
  78. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
  81. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +4 -4
  83. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +3 -3
  85. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  86. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  87. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  88. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  89. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  90. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
  91. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  92. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
  93. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  94. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  95. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  96. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  98. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  99. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
  101. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
  103. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  104. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +4 -4
  105. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  106. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +3 -3
  107. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  108. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  109. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  111. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  112. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  113. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
  115. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  116. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  117. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  118. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  119. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  120. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  121. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  122. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  123. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +10 -10
  124. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +6 -6
  126. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  127. package/artifacts/contracts/product/PricingService.sol/PricingService.json +40 -40
  128. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +21 -21
  130. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  131. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  132. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
  134. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  135. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
  136. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  137. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  138. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
  139. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  140. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  141. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  142. package/artifacts/contracts/registry/Registry.sol/Registry.json +18 -62
  143. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  144. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +228 -388
  145. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  146. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  147. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  149. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +48 -126
  151. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  152. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
  153. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  154. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  155. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  156. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +56 -80
  158. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +29 -41
  160. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  161. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  162. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  164. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  165. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  166. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  174. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  175. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  176. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  177. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  178. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +2 -2
  179. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  180. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +2 -2
  181. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  182. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +2 -2
  183. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  184. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  185. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  186. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  187. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  189. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  191. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  192. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  193. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  194. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  195. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  196. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  198. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  199. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  200. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  201. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  202. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  203. package/artifacts/contracts/staking/Staking.sol/Staking.json +2 -2
  204. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  205. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
  206. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  207. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  208. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  209. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
  210. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
  212. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  213. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  214. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  215. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  216. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  217. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  218. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
  219. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  220. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  221. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  222. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  223. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  224. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  225. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  226. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  227. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  228. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  229. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  230. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  231. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  232. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  234. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  236. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  238. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  239. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  240. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  241. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  242. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  244. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  252. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  254. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  256. package/contracts/{shared → authorization}/AccessAdmin.sol +131 -297
  257. package/contracts/authorization/Authorization.sol +218 -0
  258. package/contracts/authorization/IAccess.sol +48 -0
  259. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
  260. package/contracts/authorization/IAuthorization.sol +54 -0
  261. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  262. package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
  263. package/contracts/authorization/InstanceAdmin.sol +108 -0
  264. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  265. package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
  266. package/contracts/distribution/BasicDistribution.sol +149 -0
  267. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  268. package/contracts/distribution/Distribution.sol +126 -104
  269. package/contracts/distribution/DistributionService.sol +10 -5
  270. package/contracts/distribution/IDistributionComponent.sol +17 -35
  271. package/contracts/distribution/IDistributionService.sol +5 -1
  272. package/contracts/instance/IInstance.sol +5 -6
  273. package/contracts/instance/IInstanceService.sol +6 -12
  274. package/contracts/instance/Instance.sol +61 -70
  275. package/contracts/instance/InstanceAdminNew.sol +261 -0
  276. package/contracts/instance/InstanceAuthorizationV3.sol +209 -0
  277. package/contracts/instance/InstanceReader.sol +22 -9
  278. package/contracts/instance/InstanceService.sol +58 -67
  279. package/contracts/instance/InstanceStore.sol +5 -1
  280. package/contracts/instance/base/ObjectManager.sol +7 -8
  281. package/contracts/oracle/BasicOracle.sol +48 -0
  282. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  283. package/contracts/oracle/IOracle.sol +16 -0
  284. package/contracts/oracle/Oracle.sol +61 -49
  285. package/contracts/pool/BasicPool.sol +164 -0
  286. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  287. package/contracts/pool/IPoolComponent.sol +0 -60
  288. package/contracts/pool/Pool.sol +143 -131
  289. package/contracts/pool/PoolService.sol +1 -1
  290. package/contracts/product/BasicProduct.sol +82 -0
  291. package/contracts/product/BasicProductAuthorization.sol +40 -0
  292. package/contracts/product/IProductComponent.sol +6 -9
  293. package/contracts/product/Product.sol +103 -88
  294. package/contracts/registry/IRegistry.sol +5 -8
  295. package/contracts/registry/Registry.sol +1 -5
  296. package/contracts/registry/RegistryAdmin.sol +101 -71
  297. package/contracts/registry/ReleaseManager.sol +32 -41
  298. package/contracts/registry/ServiceAuthorizationV3.sol +9 -9
  299. package/contracts/shared/ComponentService.sol +18 -56
  300. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  301. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  302. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  303. package/contracts/type/ObjectType.sol +34 -0
  304. package/contracts/type/RoleId.sol +55 -82
  305. package/contracts/type/UFixed.sol +6 -0
  306. package/package.json +4 -1
  307. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
  308. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +0 -708
  309. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  310. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  311. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  312. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  313. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  314. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  315. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  316. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  317. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  318. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  319. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  320. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  321. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  322. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  323. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  324. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  325. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  326. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  327. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  328. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  329. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  330. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  331. package/contracts/instance/InstanceAdmin.sol +0 -331
  332. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  333. package/contracts/shared/AccessManagerCustom.sol +0 -741
  334. package/contracts/shared/AccessManagerExtended.sol +0 -481
  335. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  336. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  337. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  338. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  339. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -0,0 +1,261 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
+
6
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
7
+ import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
8
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
9
+ import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
11
+ import {IInstance} from "./IInstance.sol";
12
+ import {IService} from "../shared/IService.sol";
13
+ import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
14
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
15
+ import {Str, StrLib} from "../type/String.sol";
16
+ import {VersionPart} from "../type/Version.sol";
17
+
18
+
19
+ contract InstanceAdminNew is
20
+ AccessAdmin
21
+ {
22
+ string public constant INSTANCE_TARGET_NAME = "Instance";
23
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
24
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
25
+ string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
26
+
27
+ uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
28
+
29
+ error ErrorInstanceAdminNotRegistered(address target);
30
+ error ErrorInstanceAdminAlreadyAuthorized(address target);
31
+ error ErrorInstanceAdminReleaseMismatch();
32
+ error ErrorInstanceAdminExpectedTargetMissing(string targetName);
33
+
34
+ IInstance _instance;
35
+ IRegistry internal _registry;
36
+ uint64 _idNext;
37
+
38
+ IModuleAuthorization _instanceAuthorization;
39
+
40
+ /// @dev Only used for master instance admin.
41
+ /// Contracts created via constructor come with disabled initializers.
42
+ constructor(IModuleAuthorization instanceAuthorization) AccessAdmin() {
43
+ _instanceAuthorization = instanceAuthorization;
44
+ }
45
+
46
+ /// @dev Initializes this instance admin with the provided instances authorization specification.
47
+ /// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
48
+ /// for the inststance authorizatios.
49
+ /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
50
+ function initialize(
51
+ IModuleAuthorization instanceAuthorization
52
+ )
53
+ external
54
+ initializer()
55
+ {
56
+ // create new access manager for this instance admin
57
+ AccessManager accessManager = new AccessManager(address(this));
58
+ _initializeAuthority(address(accessManager));
59
+
60
+ // create basic instance independent setup
61
+ _createAdminAndPublicRoles();
62
+
63
+ // store instance authorization specification
64
+ _instanceAuthorization = IModuleAuthorization(instanceAuthorization);
65
+ }
66
+
67
+ function _checkTargetIsReadyForAuthorization(address target)
68
+ internal
69
+ view
70
+ {
71
+ if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
72
+ revert ErrorInstanceAdminNotRegistered(target);
73
+ }
74
+
75
+ if (targetExists(target)) {
76
+ revert ErrorInstanceAdminAlreadyAuthorized(target);
77
+ }
78
+ }
79
+
80
+ /// @dev Completes the initialization of this instance admin using the provided instance.
81
+ /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
82
+ function initializeInstanceAuthorization(address instanceAddress)
83
+ external
84
+ {
85
+ _checkTargetIsReadyForAuthorization(instanceAddress);
86
+
87
+ _idNext = CUSTOM_ROLE_ID_MIN;
88
+ _instance = IInstance(instanceAddress);
89
+ _registry = _instance.getRegistry();
90
+
91
+ // check matching releases
92
+ if (_instanceAuthorization.getRelease() != _instance.getMajorVersion()) {
93
+ revert ErrorInstanceAdminReleaseMismatch();
94
+ }
95
+
96
+ // add instance authorization
97
+ _createRoles(_instanceAuthorization);
98
+ _createModuleTargetsWithRoles();
99
+ _createTargetAuthorizations(_instanceAuthorization);
100
+
101
+ // grant component owner roles to instance owner
102
+ _grantComponentOwnerRoles();
103
+ }
104
+
105
+
106
+ /// @dev Initializes the authorization for the specified component.
107
+ /// Important: The component MUST be registered.
108
+ function initializeComponentAuthorization(
109
+ address componentAddress,
110
+ IAuthorization authorization
111
+ )
112
+ external
113
+ {
114
+ _checkTargetIsReadyForAuthorization(componentAddress);
115
+
116
+ _createRoles(authorization);
117
+
118
+ // create component target
119
+ _createTarget(
120
+ componentAddress,
121
+ authorization.getTargetName(),
122
+ true, // checkAuthority
123
+ false); // custom
124
+
125
+ _grantRoleToAccount(
126
+ authorization.getTargetRole(
127
+ authorization.getTarget()),
128
+ componentAddress);
129
+
130
+ _createTargetAuthorizations(authorization);
131
+ }
132
+
133
+
134
+ function _grantComponentOwnerRoles()
135
+ internal
136
+ {
137
+ address instanceOwner = _registry.ownerOf(_instance.getNftId());
138
+ _grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
139
+ _grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
140
+ _grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
141
+ _grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
142
+ }
143
+
144
+ /// @dev Creates a custom role
145
+ // TODO implement
146
+ // function createRole()
147
+ // external
148
+ // restricted()
149
+ // {
150
+
151
+ // }
152
+
153
+ /// @dev Grants the provided role to the specified account
154
+ function grantRole(
155
+ RoleId roleId,
156
+ address account)
157
+ external
158
+ restricted()
159
+ {
160
+ _grantRoleToAccount(roleId, account);
161
+ }
162
+
163
+ /// @dev Returns the instance authorization specification used to set up this instance admin.
164
+ function getInstanceAuthorization()
165
+ external
166
+ view
167
+ returns (IModuleAuthorization instanceAuthorizaion)
168
+ {
169
+ return _instanceAuthorization;
170
+ }
171
+
172
+
173
+ function _createRoles(IAuthorization authorization)
174
+ internal
175
+ {
176
+ RoleId[] memory roles = authorization.getRoles();
177
+ RoleId roleId;
178
+ RoleInfo memory roleInfo;
179
+
180
+ for(uint256 i = 0; i < roles.length; i++) {
181
+ roleId = roles[i];
182
+ _createRole(
183
+ roleId,
184
+ authorization.getRoleInfo(roleId));
185
+ }
186
+ }
187
+
188
+
189
+ function _createTargetAuthorizations(IAuthorization authorization)
190
+ internal
191
+ {
192
+ Str[] memory targets = authorization.getTargets();
193
+ Str target;
194
+
195
+ for(uint256 i = 0; i < targets.length; i++) {
196
+ target = targets[i];
197
+ RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
198
+ RoleId authorizedRole;
199
+
200
+ for(uint256 j = 0; j < authorizedRoles.length; j++) {
201
+ authorizedRole = authorizedRoles[j];
202
+
203
+ _authorizeTargetFunctions(
204
+ getTargetForName(target),
205
+ authorizedRole,
206
+ authorization.getAuthorizedFunctions(
207
+ target,
208
+ authorizedRole));
209
+ }
210
+ }
211
+ }
212
+
213
+ function _checkAndCreateTargetWithRole(
214
+ address target,
215
+ string memory targetName
216
+ )
217
+ internal
218
+ {
219
+ // check that target name is defined in authorization specification
220
+ Str name = StrLib.toStr(targetName);
221
+ if (!_instanceAuthorization.targetExists(name)) {
222
+ revert ErrorInstanceAdminExpectedTargetMissing(targetName);
223
+ }
224
+
225
+ // create named target
226
+ _createTarget(
227
+ target,
228
+ targetName,
229
+ false, // check authority TODO check normal targets, don't check service targets (they share authority with registry admin)
230
+ false);
231
+
232
+ // assign target role if defined
233
+ RoleId targetRoleId = _instanceAuthorization.getTargetRole(name);
234
+ if (targetRoleId != RoleIdLib.zero()) {
235
+ _grantRoleToAccount(targetRoleId, target);
236
+ }
237
+ }
238
+
239
+ function _createModuleTargetsWithRoles()
240
+ internal
241
+ {
242
+ // create module targets
243
+ _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
244
+ _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
245
+ _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
246
+ _checkAndCreateTargetWithRole(address(_instance.getBundleManager()), BUNDLE_MANAGER_TARGET_NAME);
247
+
248
+ // create targets for services that need to access the module targets
249
+ ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
250
+ VersionPart release = _instanceAuthorization.getRelease();
251
+ ObjectType serviceDomain;
252
+
253
+ for (uint256 i = 0; i < serviceDomains.length; i++) {
254
+ serviceDomain = serviceDomains[i];
255
+
256
+ _checkAndCreateTargetWithRole(
257
+ _registry.getServiceAddress(serviceDomain, release),
258
+ _instanceAuthorization.getServiceTarget(serviceDomain).toString());
259
+ }
260
+ }
261
+ }
@@ -0,0 +1,209 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {
5
+ PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
6
+ } from "../../contracts/type/ObjectType.sol";
7
+
8
+ import {
9
+ ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
10
+ } from "../../contracts/type/RoleId.sol";
11
+
12
+ import {BundleManager} from "../instance/BundleManager.sol";
13
+ import {IAccess} from "../authorization/IAccess.sol";
14
+ import {Instance} from "../instance/Instance.sol";
15
+ import {InstanceAdminNew} from "../instance/InstanceAdminNew.sol";
16
+ import {InstanceStore} from "../instance/InstanceStore.sol";
17
+ import {ModuleAuthorization} from "../authorization/ModuleAuthorization.sol";
18
+ import {RoleId} from "../type/RoleId.sol";
19
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
20
+
21
+
22
+ contract InstanceAuthorizationV3
23
+ is ModuleAuthorization
24
+ {
25
+
26
+ string public constant INSTANCE_TARGET_NAME = "Instance";
27
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
28
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
29
+ string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
30
+
31
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
32
+ string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
33
+ string public constant ORACLE_OWNER_ROLE_NAME = "OracleOwnerRole";
34
+ string public constant POOL_OWNER_ROLE_NAME = "PoolOwnerRole";
35
+ string public constant PRODUCT_OWNER_ROLE_NAME = "ProductOwnerRole";
36
+
37
+ constructor() ModuleAuthorization(INSTANCE_TARGET_NAME) {}
38
+
39
+
40
+ function _setupRoles()
41
+ internal
42
+ override
43
+ {
44
+ _addGifRole(DISTRIBUTION_OWNER_ROLE(), DISTRIBUTION_OWNER_ROLE_NAME);
45
+ _addGifRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME);
46
+ _addGifRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME);
47
+ _addGifRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME);
48
+ }
49
+
50
+
51
+ function _setupTargets()
52
+ internal
53
+ override
54
+ {
55
+ // instance target
56
+ _addTargetWithRole(
57
+ INSTANCE_TARGET_NAME,
58
+ _getTargetRoleId(INSTANCE()),
59
+ INSTANCE_ROLE_NAME);
60
+
61
+ // instance supporting targets
62
+ _addTarget(INSTANCE_STORE_TARGET_NAME);
63
+ _addTarget(INSTANCE_ADMIN_TARGET_NAME);
64
+ _addTarget(BUNDLE_MANAGER_TARGET_NAME);
65
+
66
+ // service targets relevant to instance
67
+ _addServiceTargetWithRole(INSTANCE());
68
+ _addServiceTargetWithRole(COMPONENT());
69
+ _addServiceTargetWithRole(DISTRIBUTION());
70
+ _addServiceTargetWithRole(ORACLE());
71
+ _addServiceTargetWithRole(POOL());
72
+ _addServiceTargetWithRole(BUNDLE());
73
+ _addServiceTargetWithRole(PRODUCT());
74
+ _addServiceTargetWithRole(APPLICATION());
75
+ _addServiceTargetWithRole(POLICY());
76
+ _addServiceTargetWithRole(CLAIM());
77
+ }
78
+
79
+
80
+ function _setupTargetAuthorizations()
81
+ internal
82
+ override
83
+ {
84
+ _setupInstanceAuthorization();
85
+ _setupInstanceAdminAuthorization();
86
+ _setupInstanceStoreAuthorization();
87
+ _setupBundleManagerAuthorization();
88
+ }
89
+
90
+
91
+ function _setupBundleManagerAuthorization()
92
+ internal
93
+ {
94
+ IAccess.FunctionInfo[] storage functions;
95
+
96
+ // authorize bundle service role
97
+ functions = _authorizeForTarget(BUNDLE_MANAGER_TARGET_NAME, getServiceRole(BUNDLE()));
98
+ _authorize(functions, BundleManager.linkPolicy.selector, "linkPolicy");
99
+ _authorize(functions, BundleManager.unlinkPolicy.selector, "unlinkPolicy");
100
+ _authorize(functions, BundleManager.add.selector, "add");
101
+ _authorize(functions, BundleManager.lock.selector, "lock");
102
+ _authorize(functions, BundleManager.unlock.selector, "unlock");
103
+ }
104
+
105
+
106
+ function _setupInstanceAuthorization()
107
+ internal
108
+ {
109
+ IAccess.FunctionInfo[] storage functions;
110
+
111
+ // authorize instance service role
112
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
113
+ _authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
114
+ }
115
+
116
+
117
+ function _setupInstanceAdminAuthorization()
118
+ internal
119
+ {
120
+ IAccess.FunctionInfo[] storage functions;
121
+
122
+ // authorize instance role
123
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _getTargetRoleId(INSTANCE()));
124
+ // _authorize(functions, InstanceAdminNew.createRole.selector, "createRole");
125
+ _authorize(functions, InstanceAdminNew.grantRole.selector, "grantRole");
126
+ // _authorize(functions, InstanceAdminNew.createTarget.selector, "createTarget");
127
+ // _authorize(functions, InstanceAdminNew.setTargetFunctionRoleByInstance.selector, "setTargetFunctionRoleByInstance");
128
+ // _authorize(functions, InstanceAdminNew.setTargetLockedByInstance.selector, "setTargetLockedByInstance");
129
+
130
+ // authorize instance service role
131
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
132
+ // _authorize(functions, InstanceAdminNew.createGifTarget.selector, "createGifTarget");
133
+ // _authorize(functions, InstanceAdminNew.setTargetLockedByService.selector, "setTargetLockedByService");
134
+ // _authorize(functions, InstanceAdminNew.setTargetFunctionRoleByService.selector, "setTargetFunctionRoleByService");
135
+ }
136
+
137
+
138
+ function _setupInstanceStoreAuthorization()
139
+ internal
140
+ {
141
+ IAccess.FunctionInfo[] storage functions;
142
+
143
+ // authorize component service role
144
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
145
+ _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
146
+ _authorize(functions, InstanceStore.updateComponent.selector, "updateComponent");
147
+ _authorize(functions, InstanceStore.createPool.selector, "createPool");
148
+ _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
149
+ _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
150
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
151
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
152
+
153
+ // authorize distribution service role
154
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
155
+ _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
156
+ _authorize(functions, InstanceStore.updateDistributorType.selector, "updateDistributorType");
157
+ _authorize(functions, InstanceStore.updateDistributorTypeState.selector, "updateDistributorTypeState");
158
+ _authorize(functions, InstanceStore.createDistributor.selector, "createDistributor");
159
+ _authorize(functions, InstanceStore.updateDistributor.selector, "updateDistributor");
160
+ _authorize(functions, InstanceStore.updateDistributorState.selector, "updateDistributorState");
161
+ _authorize(functions, InstanceStore.createReferral.selector, "createReferral");
162
+ _authorize(functions, InstanceStore.updateReferral.selector, "updateReferral");
163
+ _authorize(functions, InstanceStore.updateReferralState.selector, "updateReferralState");
164
+
165
+ // authorize oracle service role
166
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ORACLE()));
167
+ _authorize(functions, InstanceStore.createRequest.selector, "createRequest");
168
+ _authorize(functions, InstanceStore.updateRequest.selector, "updateRequest");
169
+ _authorize(functions, InstanceStore.updateRequestState.selector, "updateRequestState");
170
+
171
+ // authorize pool service role
172
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POOL()));
173
+ _authorize(functions, InstanceStore.updatePool.selector, "updatePool");
174
+
175
+ // authorize bundle service role
176
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(BUNDLE()));
177
+ _authorize(functions, InstanceStore.createBundle.selector, "createBundle");
178
+ _authorize(functions, InstanceStore.updateBundle.selector, "updateBundle");
179
+ _authorize(functions, InstanceStore.updateBundleState.selector, "updateBundleState");
180
+ _authorize(functions, InstanceStore.increaseLocked.selector, "increaseLocked");
181
+ _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
182
+
183
+ // authorize product service role
184
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(PRODUCT()));
185
+ _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
186
+ _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
187
+ _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
188
+
189
+ // authorize application service role
190
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(APPLICATION()));
191
+ _authorize(functions, InstanceStore.createApplication.selector, "createApplication");
192
+ _authorize(functions, InstanceStore.updateApplication.selector, "updateApplication");
193
+ _authorize(functions, InstanceStore.updateApplicationState.selector, "updateApplicationState");
194
+
195
+ // authorize policy service role
196
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
197
+ _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
198
+ _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
199
+
200
+ // authorize claim service role
201
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
202
+ _authorize(functions, InstanceStore.updatePolicyClaims.selector, "updatePolicyClaims");
203
+ _authorize(functions, InstanceStore.createClaim.selector, "createClaim");
204
+ _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
205
+ _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
206
+ _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
207
+ }
208
+ }
209
+
@@ -38,24 +38,29 @@ contract InstanceReader {
38
38
  error ErrorInstanceReaderAlreadyInitialized();
39
39
  error ErrorInstanceReaderInstanceAddressZero();
40
40
 
41
- bool private _initialized;
41
+ bool private _initialized = false;
42
42
 
43
43
  IInstance internal _instance;
44
44
  InstanceStore internal _store;
45
45
 
46
- function initialize(address instance) public {
46
+ /// @dev This initializer needs to be called from the instance itself.
47
+ function initialize() public {
47
48
  if(_initialized) {
48
49
  revert ErrorInstanceReaderAlreadyInitialized();
49
50
  }
50
51
 
51
- if(instance == address(0)) {
52
- revert ErrorInstanceReaderInstanceAddressZero();
53
- }
52
+ initializeWithInstance(msg.sender);
53
+ }
54
54
 
55
- _instance = IInstance(instance);
56
- _store = _instance.getInstanceStore();
55
+ /// @dev This initializer needs to be called from the instance itself.
56
+ function initializeWithInstance(address instanceAddress) public {
57
+ if(_initialized) {
58
+ revert ErrorInstanceReaderAlreadyInitialized();
59
+ }
57
60
 
58
61
  _initialized = true;
62
+ _instance = IInstance(instanceAddress);
63
+ _store = _instance.getInstanceStore();
59
64
  }
60
65
 
61
66
 
@@ -339,11 +344,19 @@ contract InstanceReader {
339
344
 
340
345
 
341
346
  function hasRole(address account, RoleId roleId) public view returns (bool isMember) {
342
- (isMember, ) = _instance.getInstanceAccessManager().hasRole(
343
- roleId.toInt(), account);
347
+ return _instance.getInstanceAdmin().hasRole(account, roleId);
348
+ }
349
+
350
+
351
+ function hasAdminRole(address account, RoleId roleId) public view returns (bool isMember) {
352
+ return _instance.getInstanceAdmin().hasAdminRole(account, roleId);
344
353
  }
345
354
 
346
355
 
356
+ function isTargetLocked(address target) public view returns (bool) {
357
+ return _instance.getInstanceAdmin().isTargetLocked(target);
358
+ }
359
+
347
360
  function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
348
361
  return policyNftId.toKey32(POLICY());
349
362
  }