@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e7a5428-226

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 (577) hide show
  1. package/README.md +133 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +146 -607
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +767 -301
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +288 -118
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +152 -273
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +553 -77
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +595 -96
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +497 -75
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +617 -250
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1789 -713
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +509 -220
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +204 -96
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1109 -817
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +582 -235
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +278 -96
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +398 -49
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +151 -394
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +770 -365
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +148 -682
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +940 -518
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +283 -97
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +382 -166
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +222 -92
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +502 -230
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +251 -113
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +320 -9
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +369 -18
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +436 -101
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +202 -80
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +291 -264
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +295 -150
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +564 -292
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +259 -97
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +262 -299
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +220 -122
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +322 -596
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +454 -42
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +275 -193
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +806 -97
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1061 -0
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +320 -312
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +206 -94
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +257 -147
  215. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Component.sol/Component.json +92 -277
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +632 -542
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +241 -115
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +99 -94
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +549 -228
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +138 -130
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +51 -19
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +42 -1
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +103 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +131 -366
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +61 -104
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +45 -55
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -98
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +96 -102
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1388 -635
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +705 -103
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +1703 -957
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +274 -92
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +544 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +751 -212
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +215 -85
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2637 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +657 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +122 -5
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +81 -17
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +153 -4
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +167 -2
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +780 -0
  360. package/contracts/authorization/AccessAdminLib.sol +396 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  362. package/contracts/authorization/Authorization.sol +169 -0
  363. package/contracts/authorization/IAccess.sol +67 -0
  364. package/contracts/authorization/IAccessAdmin.sol +144 -0
  365. package/contracts/authorization/IAuthorization.sol +26 -0
  366. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  367. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  368. package/contracts/distribution/BasicDistribution.sol +141 -0
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  370. package/contracts/distribution/Distribution.sol +126 -142
  371. package/contracts/distribution/DistributionService.sol +288 -137
  372. package/contracts/distribution/DistributionServiceManager.sol +13 -25
  373. package/contracts/distribution/IDistributionComponent.sol +22 -43
  374. package/contracts/distribution/IDistributionService.sol +61 -27
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BundleSet.sol +130 -0
  389. package/contracts/instance/IInstance.sol +117 -49
  390. package/contracts/instance/IInstanceService.sol +80 -46
  391. package/contracts/instance/Instance.sol +252 -133
  392. package/contracts/instance/InstanceAdmin.sol +383 -0
  393. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  394. package/contracts/instance/InstanceReader.sol +499 -233
  395. package/contracts/instance/InstanceService.sol +370 -218
  396. package/contracts/instance/InstanceServiceManager.sol +14 -29
  397. package/contracts/instance/InstanceStore.sol +94 -55
  398. package/contracts/instance/RiskSet.sol +126 -0
  399. package/contracts/instance/base/BalanceStore.sol +16 -13
  400. package/contracts/instance/base/Cloneable.sol +2 -25
  401. package/contracts/instance/base/ObjectCounter.sol +20 -0
  402. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  403. package/contracts/instance/base/ObjectSet.sol +77 -0
  404. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  405. package/contracts/instance/module/IBundle.sol +6 -5
  406. package/contracts/instance/module/IComponents.sol +30 -20
  407. package/contracts/instance/module/IDistribution.sol +21 -9
  408. package/contracts/instance/module/IPolicy.sol +50 -29
  409. package/contracts/instance/module/IRisk.sol +5 -0
  410. package/contracts/mock/Dip.sol +26 -0
  411. package/contracts/oracle/BasicOracle.sol +45 -0
  412. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  413. package/contracts/oracle/IOracle.sol +41 -0
  414. package/contracts/oracle/IOracleComponent.sol +33 -0
  415. package/contracts/oracle/IOracleService.sol +66 -0
  416. package/contracts/oracle/Oracle.sol +154 -0
  417. package/contracts/oracle/OracleService.sol +310 -0
  418. package/contracts/oracle/OracleServiceManager.sol +39 -0
  419. package/contracts/pool/BasicPool.sol +162 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  421. package/contracts/pool/BundleService.sol +225 -152
  422. package/contracts/pool/BundleServiceManager.sol +13 -25
  423. package/contracts/pool/IBundleService.sol +44 -34
  424. package/contracts/pool/IPoolComponent.sol +20 -70
  425. package/contracts/pool/IPoolService.sol +99 -76
  426. package/contracts/pool/Pool.sol +198 -164
  427. package/contracts/pool/PoolLib.sol +341 -0
  428. package/contracts/pool/PoolService.sol +448 -255
  429. package/contracts/pool/PoolServiceManager.sol +12 -24
  430. package/contracts/product/ApplicationService.sol +160 -86
  431. package/contracts/product/ApplicationServiceManager.sol +12 -9
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +63 -0
  434. package/contracts/product/ClaimService.sol +389 -195
  435. package/contracts/product/ClaimServiceManager.sol +12 -9
  436. package/contracts/product/IApplicationService.sol +30 -4
  437. package/contracts/product/IClaimService.sol +52 -9
  438. package/contracts/product/IPolicyService.sol +62 -38
  439. package/contracts/product/IPricingService.sol +12 -11
  440. package/contracts/product/IProductComponent.sol +29 -9
  441. package/contracts/product/IRiskService.sol +48 -0
  442. package/contracts/product/PolicyService.sol +450 -276
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +12 -27
  445. package/contracts/product/PricingService.sol +97 -91
  446. package/contracts/product/PricingServiceManager.sol +12 -24
  447. package/contracts/product/Product.sol +263 -147
  448. package/contracts/product/RiskService.sol +190 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +72 -39
  451. package/contracts/registry/IRegistry.sol +99 -38
  452. package/contracts/registry/IRegistryService.sol +26 -43
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -2
  455. package/contracts/registry/Registry.sol +439 -232
  456. package/contracts/registry/RegistryAdmin.sol +188 -0
  457. package/contracts/registry/RegistryAuthorization.sol +309 -0
  458. package/contracts/registry/RegistryService.sol +66 -152
  459. package/contracts/registry/RegistryServiceManager.sol +23 -30
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  462. package/contracts/registry/ReleaseRegistry.sol +525 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  464. package/contracts/registry/TokenRegistry.sol +211 -81
  465. package/contracts/shared/Component.sol +71 -143
  466. package/contracts/shared/ComponentService.sol +460 -369
  467. package/contracts/shared/ComponentServiceManager.sol +10 -7
  468. package/contracts/shared/ContractLib.sol +312 -0
  469. package/contracts/shared/IComponent.sol +7 -23
  470. package/contracts/shared/IComponentService.sol +51 -31
  471. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  472. package/contracts/shared/IKeyValueStore.sol +3 -2
  473. package/contracts/shared/ILifecycle.sol +3 -2
  474. package/contracts/shared/INftOwnable.sol +5 -1
  475. package/contracts/shared/IPolicyHolder.sol +12 -17
  476. package/contracts/shared/IRegisterable.sol +22 -1
  477. package/contracts/shared/IService.sol +11 -6
  478. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  479. package/contracts/shared/InstanceLinkedComponent.sol +95 -46
  480. package/contracts/shared/KeyValueStore.sol +32 -70
  481. package/contracts/shared/Lifecycle.sol +30 -63
  482. package/contracts/shared/NftIdSet.sol +65 -0
  483. package/contracts/shared/NftOwnable.sol +35 -24
  484. package/contracts/shared/PolicyHolder.sol +19 -50
  485. package/contracts/shared/Registerable.sol +52 -21
  486. package/contracts/shared/RegistryLinked.sol +9 -14
  487. package/contracts/shared/Service.sol +32 -42
  488. package/contracts/shared/TokenHandler.sol +310 -26
  489. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  490. package/contracts/staking/IStaking.sol +229 -42
  491. package/contracts/staking/IStakingService.sol +98 -76
  492. package/contracts/staking/Staking.sol +633 -99
  493. package/contracts/staking/StakingLib.sol +195 -0
  494. package/contracts/staking/StakingLifecycle.sol +23 -0
  495. package/contracts/staking/StakingManager.sol +25 -20
  496. package/contracts/staking/StakingReader.sol +151 -0
  497. package/contracts/staking/StakingService.sol +174 -53
  498. package/contracts/staking/StakingServiceManager.sol +13 -8
  499. package/contracts/staking/StakingStore.sol +973 -0
  500. package/contracts/staking/TargetManagerLib.sol +211 -0
  501. package/contracts/type/AddressSet.sol +1 -1
  502. package/contracts/type/Amount.sol +43 -3
  503. package/contracts/type/Blocknumber.sol +34 -16
  504. package/contracts/type/ChainId.sol +101 -0
  505. package/contracts/type/ClaimId.sol +6 -1
  506. package/contracts/type/Fee.sol +9 -9
  507. package/contracts/type/Key32.sol +2 -2
  508. package/contracts/type/Key32Set.sol +62 -0
  509. package/contracts/type/NftId.sol +16 -4
  510. package/contracts/type/NftIdSet.sol +1 -1
  511. package/contracts/type/ObjectType.sol +204 -62
  512. package/contracts/type/PayoutId.sol +10 -10
  513. package/contracts/type/Referral.sol +2 -1
  514. package/contracts/type/RequestId.sol +75 -0
  515. package/contracts/type/RiskId.sol +39 -7
  516. package/contracts/type/RoleId.sol +122 -80
  517. package/contracts/type/Seconds.sol +62 -1
  518. package/contracts/type/Selector.sol +107 -0
  519. package/contracts/type/StateId.sol +41 -2
  520. package/contracts/type/String.sol +65 -0
  521. package/contracts/type/Timestamp.sol +20 -9
  522. package/contracts/type/UFixed.sol +62 -125
  523. package/contracts/type/Version.sol +58 -7
  524. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  525. package/contracts/{shared → upgradeability}/ProxyManager.sol +115 -38
  526. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  527. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  528. package/package.json +12 -8
  529. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  530. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  531. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  533. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  534. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
  535. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  537. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  539. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  540. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -381
  541. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  542. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -673
  543. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  544. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -636
  545. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  546. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
  547. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  548. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -688
  549. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  550. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  551. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  552. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  553. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  555. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  556. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  557. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  559. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  561. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  562. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  563. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  564. package/contracts/instance/BundleManager.sol +0 -126
  565. package/contracts/instance/InstanceAccessManager.sol +0 -543
  566. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
  567. package/contracts/instance/base/ObjectManager.sol +0 -82
  568. package/contracts/instance/module/IAccess.sol +0 -54
  569. package/contracts/product/IProductService.sol +0 -33
  570. package/contracts/product/ProductService.sol +0 -122
  571. package/contracts/product/ProductServiceManager.sol +0 -54
  572. package/contracts/registry/RegistryAccessManager.sol +0 -213
  573. package/contracts/registry/ReleaseManager.sol +0 -375
  574. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  575. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  576. package/contracts/shared/ComponentVerifyingService.sol +0 -111
  577. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
@@ -0,0 +1,383 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
8
+ import {IInstance} from "./IInstance.sol";
9
+
10
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
11
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
12
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
13
+ import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
14
+ import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
15
+ import {Str} from "../type/String.sol";
16
+ import {VersionPart} from "../type/Version.sol";
17
+
18
+
19
+ contract InstanceAdmin is
20
+ AccessAdmin
21
+ {
22
+ string public constant INSTANCE_TARGET_NAME = "Instance";
23
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
24
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
25
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
26
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
27
+
28
+ // onlyInstanceService
29
+ error ErrorInstanceAdminNotInstanceService(address caller);
30
+
31
+ // authorizeFunctions
32
+ error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
33
+
34
+ IInstance internal _instance;
35
+ IRegistry internal _registry;
36
+ VersionPart internal _release;
37
+
38
+ uint64 internal _customRoleIdNext;
39
+
40
+ mapping(address target => RoleId roleId) internal _targetRoleId;
41
+ uint64 internal _components;
42
+
43
+
44
+ modifier onlyInstanceService() {
45
+ if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
46
+ revert ErrorInstanceAdminNotInstanceService(msg.sender);
47
+ }
48
+ _;
49
+ }
50
+
51
+ /// @dev Only used for master instance admin.
52
+ constructor(address accessManager) {
53
+ initialize(
54
+ accessManager,
55
+ "MasterInstanceAdmin");
56
+ }
57
+
58
+
59
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
60
+ /// Important: Initialization of instance admin is only complete after calling this function.
61
+ /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
62
+ function completeSetup(
63
+ address registry,
64
+ address authorization,
65
+ VersionPart release,
66
+ address instance
67
+ )
68
+ external
69
+ reinitializer(uint64(release.toInt()))
70
+ onlyDeployer()
71
+ {
72
+ // checks
73
+ AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
74
+
75
+ AccessManagerCloneable(
76
+ authority()).completeSetup(
77
+ registry,
78
+ release);
79
+
80
+ _checkAuthorization(authorization, INSTANCE(), release, false, true);
81
+
82
+ // effects
83
+ _registry = IRegistry(registry);
84
+ _release = release;
85
+
86
+ _instance = IInstance(instance);
87
+ _authorization = IAuthorization(authorization);
88
+ _components = 0;
89
+ _customRoleIdNext = 0;
90
+
91
+ // link nft ownability to instance
92
+ _linkToNftOwnable(instance);
93
+
94
+ // setup instance targets
95
+ _createInstanceTargets(_authorization.getMainTargetName());
96
+
97
+ // setup non-contract roles
98
+ _setupServiceRoles(_authorization);
99
+ _createRoles(_authorization);
100
+
101
+ // authorize functions of instance contracts
102
+ _createTargetAuthorizations(_authorization);
103
+ }
104
+
105
+
106
+ /// @dev grants the service roles to the service addresses based on the authorization specification.
107
+ /// Service addresses used for the granting are determined by the registry and the release of this instance.
108
+ function _setupServiceRoles(IAuthorization authorization)
109
+ internal
110
+ {
111
+ ObjectType[] memory serviceDomains = authorization.getServiceDomains();
112
+
113
+ for(uint256 i = 0; i < serviceDomains.length; i++) {
114
+ ObjectType serviceDomain = serviceDomains[i];
115
+ RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
116
+ string memory serviceRoleName = authorization.getRoleName(serviceRoleId);
117
+
118
+ // create service role if missing
119
+ if (!roleExists(serviceRoleId)) {
120
+ _createRole(
121
+ serviceRoleId,
122
+ AccessAdminLib.toRole(
123
+ ADMIN_ROLE(),
124
+ IAccess.RoleType.Contract,
125
+ 1,
126
+ serviceRoleName));
127
+ }
128
+
129
+ // grant service role to service
130
+ address service = _registry.getServiceAddress(serviceDomain, _release);
131
+ _grantRoleToAccount(
132
+ serviceRoleId,
133
+ service);
134
+ }
135
+ }
136
+
137
+
138
+ function _createInstanceTargets(string memory instanceTargetName)
139
+ internal
140
+ {
141
+ _createManagedTarget(address(_instance), instanceTargetName, TargetType.Instance);
142
+ _createManagedTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, TargetType.Instance);
143
+ _createManagedTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME, TargetType.Instance);
144
+ _createManagedTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME, TargetType.Instance);
145
+ _createManagedTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME, TargetType.Instance);
146
+ }
147
+
148
+
149
+ /// @dev Initializes the authorization for the specified component.
150
+ /// Important: The component MUST be registered.
151
+ function initializeComponentAuthorization(
152
+ address componentAddress,
153
+ ObjectType expectedType
154
+ )
155
+ external
156
+ restricted()
157
+ {
158
+ // checks
159
+ AccessAdminLib.checkIsRegistered(address(getRegistry()), componentAddress, expectedType);
160
+
161
+ IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
162
+ IAuthorization authorization = component.getAuthorization();
163
+ _checkAuthorization(address(authorization), expectedType, getRelease(), false, false);
164
+
165
+ // effects
166
+ _createRoles(authorization);
167
+ _createManagedTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component);
168
+ _createTargetAuthorizations(authorization);
169
+
170
+ // increase component count
171
+ _components++;
172
+ }
173
+
174
+ function getRelease()
175
+ public
176
+ view
177
+ override
178
+ returns (VersionPart release)
179
+ {
180
+ return _release;
181
+ }
182
+
183
+
184
+ /// @dev Creates a custom role.
185
+ function createRole(
186
+ string memory name,
187
+ RoleId adminRoleId,
188
+ uint32 maxMemberCount
189
+ )
190
+ external
191
+ restricted()
192
+ returns (RoleId roleId)
193
+ {
194
+ // check role does not yet exist
195
+ if (roleExists(name)) {
196
+ revert ErrorAccessAdminRoleAlreadyCreated(
197
+ getRoleForName(name),
198
+ name);
199
+ }
200
+
201
+ // create roleId
202
+ roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
203
+
204
+ // create role
205
+ _createRole(
206
+ roleId,
207
+ AccessAdminLib.toRole(
208
+ adminRoleId,
209
+ IAccess.RoleType.Custom,
210
+ maxMemberCount,
211
+ name));
212
+ }
213
+
214
+
215
+ /// @dev Activtes/pauses the specified role.
216
+ function setRoleActive(RoleId roleId, bool active)
217
+ external
218
+ restricted()
219
+ {
220
+ _setRoleActive(roleId, active);
221
+ }
222
+
223
+
224
+ /// @dev Grants the provided role to the specified account
225
+ function grantRole(
226
+ RoleId roleId,
227
+ address account)
228
+ external
229
+ restricted()
230
+ {
231
+ _grantRoleToAccount(roleId, account);
232
+ }
233
+
234
+
235
+ /// @dev Revokes the provided role from the specified account
236
+ function revokeRole(
237
+ RoleId roleId,
238
+ address account)
239
+ external
240
+ restricted()
241
+ {
242
+ _revokeRoleFromAccount(roleId, account);
243
+ }
244
+
245
+
246
+ /// @dev Create a new custom target.
247
+ /// The target needs to be an access managed contract.
248
+ function createTarget(
249
+ address target,
250
+ string memory name
251
+ )
252
+ external
253
+ restricted()
254
+ returns (RoleId contractRoleId)
255
+ {
256
+ return _createManagedTarget(
257
+ target,
258
+ name,
259
+ TargetType.Custom);
260
+ }
261
+
262
+
263
+ /// @dev Add function authorizations for the specified component or custom target.
264
+ function authorizeFunctions(
265
+ address target,
266
+ RoleId roleId,
267
+ IAccess.FunctionInfo[] memory functions
268
+ )
269
+ external
270
+ restricted()
271
+ {
272
+ _checkComponentOrCustomTarget(target);
273
+ _authorizeTargetFunctions(target, roleId, functions, true);
274
+ }
275
+
276
+
277
+ /// @dev Removes function authorizations for the specified component or custom target.
278
+ function unauthorizeFunctions(
279
+ address target,
280
+ IAccess.FunctionInfo[] memory functions
281
+ )
282
+ external
283
+ restricted()
284
+ {
285
+ _checkComponentOrCustomTarget(target);
286
+ _authorizeTargetFunctions(target, ADMIN_ROLE(), functions, false);
287
+ }
288
+
289
+
290
+ /// @dev locks the instance and all its releated targets including component and custom targets.
291
+ function setInstanceLocked(bool locked)
292
+ external
293
+ // not restricted(): need to operate on locked instances to unlock instance
294
+ onlyInstanceService()
295
+ {
296
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
297
+ accessManager.setLocked(locked);
298
+ }
299
+
300
+
301
+ function setTargetLocked(address target, bool locked)
302
+ external
303
+ // not restricted(): might need to operate on targets while instance is locked
304
+ onlyInstanceService()
305
+ {
306
+ _setTargetLocked(target, locked);
307
+ }
308
+
309
+
310
+ function setComponentLocked(address target, bool locked)
311
+ external
312
+ restricted()
313
+ {
314
+ _setTargetLocked(target, locked);
315
+ }
316
+
317
+ /// @dev Returns the number of components that have been registered with this instance.
318
+ function components()
319
+ external
320
+ view
321
+ returns (uint64)
322
+ {
323
+ return _components;
324
+ }
325
+
326
+ /// @dev Returns the instance authorization specification used to set up this instance admin.
327
+ function getInstanceAuthorization()
328
+ external
329
+ view
330
+ returns (IAuthorization instanceAuthorizaion)
331
+ {
332
+ return _authorization;
333
+ }
334
+
335
+ // ------------------- Internal functions ------------------- //
336
+
337
+ function _createRoles(IAuthorization authorization)
338
+ internal
339
+ {
340
+ RoleId[] memory roles = authorization.getRoles();
341
+ RoleId mainTargetRoleId = authorization.getTargetRole(
342
+ authorization.getMainTarget());
343
+
344
+ for(uint256 i = 0; i < roles.length; i++) {
345
+ RoleId roleId = roles[i];
346
+
347
+ // skip main target role, create role if not exists
348
+ if (roleId != mainTargetRoleId && !roleExists(roleId)) {
349
+ _createRole(
350
+ roleId,
351
+ authorization.getRoleInfo(roleId));
352
+ }
353
+ }
354
+ }
355
+
356
+
357
+ function _createTargetAuthorizations(IAuthorization authorization)
358
+ internal
359
+ {
360
+ Str[] memory targets = authorization.getTargets();
361
+ Str target;
362
+
363
+ for(uint256 i = 0; i < targets.length; i++) {
364
+ target = targets[i];
365
+ RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
366
+
367
+ for(uint256 j = 0; j < authorizedRoles.length; j++) {
368
+ _authorizeFunctions(authorization, target, authorizedRoles[j]);
369
+ }
370
+ }
371
+ }
372
+
373
+
374
+ function _checkComponentOrCustomTarget(address target)
375
+ internal
376
+ view
377
+ {
378
+ IAccess.TargetType targetType = getTargetInfo(target).targetType;
379
+ if (targetType != TargetType.Component && targetType != TargetType.Custom) {
380
+ revert ErrorInstanceAdminNotComponentOrCustomTarget(target);
381
+ }
382
+ }
383
+ }
@@ -0,0 +1,266 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IInstance} from "../instance/Instance.sol";
6
+
7
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
8
+ import {Authorization} from "../authorization/Authorization.sol";
9
+ import {ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK} from "../../contracts/type/ObjectType.sol";
10
+ import {BundleSet} from "../instance/BundleSet.sol";
11
+ import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
12
+ import {InstanceStore} from "../instance/InstanceStore.sol";
13
+ import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
14
+ import {RiskSet} from "../instance/RiskSet.sol";
15
+
16
+
17
+ contract InstanceAuthorizationV3
18
+ is Authorization
19
+ {
20
+
21
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
22
+ string public constant INSTANCE_OWNER_ROLE_NAME = "InstanceOwnerRole";
23
+
24
+ string public constant INSTANCE_TARGET_NAME = "Instance";
25
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
26
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
27
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
28
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
29
+
30
+ constructor()
31
+ Authorization(
32
+ INSTANCE_TARGET_NAME,
33
+ INSTANCE(),
34
+ 3,
35
+ COMMIT_HASH,
36
+ false,
37
+ false)
38
+ { }
39
+
40
+ function _setupServiceTargets() internal virtual override {
41
+ // service targets relevant to instance
42
+ _authorizeServiceDomain(INSTANCE(), address(10));
43
+ _authorizeServiceDomain(ACCOUNTING(), address(11));
44
+ _authorizeServiceDomain(COMPONENT(), address(12));
45
+ _authorizeServiceDomain(DISTRIBUTION(), address(13));
46
+ _authorizeServiceDomain(ORACLE(), address(14));
47
+ _authorizeServiceDomain(POOL(), address(15));
48
+ _authorizeServiceDomain(BUNDLE(), address(16));
49
+ _authorizeServiceDomain(RISK(), address(17));
50
+ _authorizeServiceDomain(APPLICATION(), address(18));
51
+ _authorizeServiceDomain(POLICY(), address(19));
52
+ _authorizeServiceDomain(CLAIM(), address(20));
53
+ }
54
+
55
+ function _setupRoles()
56
+ internal
57
+ override
58
+ {
59
+ _addRole(
60
+ INSTANCE_OWNER_ROLE(),
61
+ AccessAdminLib.toRole(
62
+ ADMIN_ROLE(),
63
+ RoleType.Custom,
64
+ 0, // max member count special case: instance nft owner is sole role owner
65
+ INSTANCE_OWNER_ROLE_NAME));
66
+ }
67
+
68
+ function _setupTargets()
69
+ internal
70
+ override
71
+ {
72
+ // instance supporting targets
73
+ _addTarget(INSTANCE_ADMIN_TARGET_NAME);
74
+ _addTarget(INSTANCE_STORE_TARGET_NAME);
75
+ _addTarget(BUNDLE_SET_TARGET_NAME);
76
+ _addTarget(RISK_SET_TARGET_NAME);
77
+
78
+ }
79
+
80
+
81
+ function _setupTargetAuthorizations()
82
+ internal
83
+ override
84
+ {
85
+ _setupInstanceAuthorization();
86
+ _setupInstanceAdminAuthorization();
87
+ _setupInstanceStoreAuthorization();
88
+ _setupBundleSetAuthorization();
89
+ _setUpRiskSetAuthorization();
90
+ }
91
+
92
+
93
+ function _setupBundleSetAuthorization()
94
+ internal
95
+ {
96
+ IAccess.FunctionInfo[] storage functions;
97
+
98
+ // authorize bundle service role
99
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
100
+ _authorize(functions, BundleSet.add.selector, "add");
101
+ _authorize(functions, BundleSet.lock.selector, "lock");
102
+ _authorize(functions, BundleSet.unlock.selector, "unlock");
103
+
104
+ // authorize bundle service role
105
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
106
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
107
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
108
+ }
109
+
110
+ function _setUpRiskSetAuthorization()
111
+ internal
112
+ {
113
+ IAccess.FunctionInfo[] storage functions;
114
+
115
+ // authorize risk service role
116
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
117
+ _authorize(functions, RiskSet.add.selector, "add");
118
+ _authorize(functions, RiskSet.deactivate.selector, "deactivate");
119
+ _authorize(functions, RiskSet.activate.selector, "activate");
120
+
121
+ // authorize policy service role
122
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
123
+ _authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
124
+ _authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
125
+ }
126
+
127
+
128
+ function _setupInstanceAuthorization()
129
+ internal
130
+ {
131
+ IAccess.FunctionInfo[] storage functions;
132
+
133
+ // authorize instance service role
134
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, PUBLIC_ROLE());
135
+ _authorize(functions, IInstance.registerProduct.selector, "registerProduct");
136
+ _authorize(functions, IInstance.upgradeInstanceReader.selector, "upgradeInstanceReader");
137
+
138
+ // staking
139
+ _authorize(functions, IInstance.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
140
+ _authorize(functions, IInstance.setStakingRewardRate.selector, "setStakingRewardRate");
141
+ _authorize(functions, IInstance.setStakingMaxAmount.selector, "setStakingMaxAmount");
142
+ _authorize(functions, IInstance.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
143
+ _authorize(functions, IInstance.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
144
+
145
+ // custom authz
146
+ _authorize(functions, IInstance.createRole.selector, "createRole");
147
+ _authorize(functions, IInstance.setRoleActive.selector, "setRoleActive");
148
+ _authorize(functions, IInstance.grantRole.selector, "grantRole");
149
+ _authorize(functions, IInstance.revokeRole.selector, "revokeRole");
150
+ _authorize(functions, IInstance.createTarget.selector, "createTarget");
151
+ _authorize(functions, IInstance.authorizeFunctions.selector, "authorizeFunctions");
152
+ _authorize(functions, IInstance.unauthorizeFunctions.selector, "unauthorizeFunctions");
153
+
154
+ // authorize instance service role
155
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
156
+ _authorize(functions, IInstance.setInstanceReader.selector, "setInstanceReader");
157
+ }
158
+
159
+
160
+ function _setupInstanceAdminAuthorization()
161
+ internal
162
+ {
163
+ IAccess.FunctionInfo[] storage functions;
164
+
165
+ // authorize component service role
166
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
167
+ _authorize(functions, InstanceAdmin.createRole.selector, "createRole");
168
+ _authorize(functions, InstanceAdmin.setRoleActive.selector, "setRoleActive");
169
+ _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
170
+ _authorize(functions, InstanceAdmin.revokeRole.selector, "revokeRole");
171
+
172
+ _authorize(functions, InstanceAdmin.createTarget.selector, "createTarget");
173
+ _authorize(functions, InstanceAdmin.authorizeFunctions.selector, "authorizeFunctions");
174
+ _authorize(functions, InstanceAdmin.unauthorizeFunctions.selector, "unauthorizeFunctions");
175
+ _authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
176
+ _authorize(functions, InstanceAdmin.setInstanceLocked.selector, "setInstanceLocked");
177
+
178
+ // authorize component service role
179
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
180
+ _authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
181
+ _authorize(functions, InstanceAdmin.setComponentLocked.selector, "setComponentLocked");
182
+ }
183
+
184
+
185
+ function _setupInstanceStoreAuthorization()
186
+ internal
187
+ {
188
+ IAccess.FunctionInfo[] storage functions;
189
+
190
+ // authorize accounting service role
191
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
192
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
193
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
194
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
195
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
196
+
197
+ // authorize component service role
198
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
199
+ _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
200
+ _authorize(functions, InstanceStore.updateComponent.selector, "updateComponent");
201
+ _authorize(functions, InstanceStore.createPool.selector, "createPool");
202
+ _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
203
+ _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
204
+ _authorize(functions, InstanceStore.createFee.selector, "createFee");
205
+ _authorize(functions, InstanceStore.updateFee.selector, "updateFee");
206
+
207
+ // authorize distribution service role
208
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
209
+ _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
210
+ _authorize(functions, InstanceStore.updateDistributorType.selector, "updateDistributorType");
211
+ _authorize(functions, InstanceStore.updateDistributorTypeState.selector, "updateDistributorTypeState");
212
+ _authorize(functions, InstanceStore.createDistributor.selector, "createDistributor");
213
+ _authorize(functions, InstanceStore.updateDistributor.selector, "updateDistributor");
214
+ _authorize(functions, InstanceStore.updateDistributorState.selector, "updateDistributorState");
215
+ _authorize(functions, InstanceStore.createReferral.selector, "createReferral");
216
+ _authorize(functions, InstanceStore.updateReferral.selector, "updateReferral");
217
+ _authorize(functions, InstanceStore.updateReferralState.selector, "updateReferralState");
218
+
219
+ // authorize oracle service role
220
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ORACLE()));
221
+ _authorize(functions, InstanceStore.createRequest.selector, "createRequest");
222
+ _authorize(functions, InstanceStore.updateRequest.selector, "updateRequest");
223
+ _authorize(functions, InstanceStore.updateRequestState.selector, "updateRequestState");
224
+
225
+ // authorize pool service role
226
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POOL()));
227
+ _authorize(functions, InstanceStore.updatePool.selector, "updatePool");
228
+
229
+ // authorize bundle service role
230
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(BUNDLE()));
231
+ _authorize(functions, InstanceStore.createBundle.selector, "createBundle");
232
+ _authorize(functions, InstanceStore.updateBundle.selector, "updateBundle");
233
+ _authorize(functions, InstanceStore.updateBundleState.selector, "updateBundleState");
234
+ _authorize(functions, InstanceStore.increaseLocked.selector, "increaseLocked");
235
+ _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
236
+
237
+ // authorize product service role
238
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
239
+ _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
240
+ _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
241
+ _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
242
+
243
+ // authorize application service role
244
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(APPLICATION()));
245
+ _authorize(functions, InstanceStore.createApplication.selector, "createApplication");
246
+ _authorize(functions, InstanceStore.updateApplication.selector, "updateApplication");
247
+ _authorize(functions, InstanceStore.updateApplicationState.selector, "updateApplicationState");
248
+
249
+ // authorize policy service role
250
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
251
+ _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
252
+ _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
253
+ _authorize(functions, InstanceStore.createPremium.selector, "createPremium");
254
+ _authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
255
+
256
+ // authorize claim service role
257
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
258
+ _authorize(functions, InstanceStore.updatePolicyClaims.selector, "updatePolicyClaims");
259
+ _authorize(functions, InstanceStore.createClaim.selector, "createClaim");
260
+ _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
261
+ _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
262
+ _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
263
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
264
+ }
265
+ }
266
+