@etherisc/gif-next 0.0.2-ff282a4-523 → 0.0.2-ff795d8-141

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 (582) hide show
  1. package/README.md +130 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1652 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1279 -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/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1333 -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 +1225 -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 +154 -600
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +564 -471
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +240 -116
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +165 -336
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +373 -113
  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 +1461 -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 +2018 -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 +1404 -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 +1152 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -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 +2405 -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 +526 -87
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +413 -74
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +533 -218
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2302 -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 +1843 -719
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +433 -211
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +171 -93
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1651 -770
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  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 +938 -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 +753 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1013 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +772 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -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 +355 -366
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +214 -102
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +221 -76
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +214 -423
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +554 -401
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +223 -624
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +694 -710
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +228 -112
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +219 -242
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +188 -88
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -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 +458 -332
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +222 -114
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +155 -9
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +327 -16
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +399 -69
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -82
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +367 -231
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -62
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +440 -380
  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 +196 -124
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -324
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +192 -108
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +409 -509
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -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 +462 -56
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +251 -127
  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 +905 -121
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2127 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +303 -245
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +169 -91
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2140 -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 +1393 -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 +315 -139
  215. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Component.sol/Component.json +109 -296
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1021 -165
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  221. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +680 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  231. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +116 -141
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1127 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  237. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  238. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
  239. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  240. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +154 -0
  247. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +74 -2
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -90
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +67 -102
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +615 -6
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1301 -119
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +685 -63
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +1579 -172
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +250 -73
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +775 -176
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +195 -83
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +122 -5
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  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 +119 -58
  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 +66 -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 +124 -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 +132 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  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 +1 -1
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -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 +1 -1
  356. package/contracts/accounting/AccountingService.sol +261 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +45 -0
  359. package/contracts/authorization/AccessAdmin.sol +789 -0
  360. package/contracts/authorization/AccessAdminLib.sol +387 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  362. package/contracts/authorization/Authorization.sol +174 -0
  363. package/contracts/authorization/IAccess.sol +67 -0
  364. package/contracts/authorization/IAccessAdmin.sol +137 -0
  365. package/contracts/authorization/IAuthorization.sol +27 -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 +135 -175
  371. package/contracts/distribution/DistributionService.sol +306 -213
  372. package/contracts/distribution/DistributionServiceManager.sol +13 -25
  373. package/contracts/distribution/IDistributionComponent.sol +23 -49
  374. package/contracts/distribution/IDistributionService.sol +55 -33
  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 +373 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BundleSet.sol +130 -0
  389. package/contracts/instance/IInstance.sol +114 -49
  390. package/contracts/instance/IInstanceService.sol +74 -37
  391. package/contracts/instance/Instance.sol +245 -133
  392. package/contracts/instance/InstanceAdmin.sol +380 -0
  393. package/contracts/instance/InstanceAuthorizationV3.sol +263 -0
  394. package/contracts/instance/InstanceReader.sol +437 -100
  395. package/contracts/instance/InstanceService.sol +402 -180
  396. package/contracts/instance/InstanceServiceManager.sol +14 -29
  397. package/contracts/instance/InstanceStore.sol +151 -64
  398. package/contracts/instance/RiskSet.sol +118 -0
  399. package/contracts/instance/base/BalanceStore.sol +123 -0
  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 +113 -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 -8
  406. package/contracts/instance/module/IComponents.sol +40 -19
  407. package/contracts/instance/module/IDistribution.sol +21 -9
  408. package/contracts/instance/module/IPolicy.sol +57 -30
  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 +173 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  421. package/contracts/pool/BundleService.sol +237 -224
  422. package/contracts/pool/BundleServiceManager.sol +13 -25
  423. package/contracts/pool/IBundleService.sol +35 -38
  424. package/contracts/pool/IPoolComponent.sol +23 -75
  425. package/contracts/pool/IPoolService.sol +107 -56
  426. package/contracts/pool/Pool.sol +209 -168
  427. package/contracts/pool/PoolLib.sol +353 -0
  428. package/contracts/pool/PoolService.sol +446 -262
  429. package/contracts/pool/PoolServiceManager.sol +12 -24
  430. package/contracts/product/ApplicationService.sol +177 -85
  431. package/contracts/product/ApplicationServiceManager.sol +12 -9
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +61 -0
  434. package/contracts/product/ClaimService.sol +380 -184
  435. package/contracts/product/ClaimServiceManager.sol +12 -9
  436. package/contracts/product/IApplicationService.sol +10 -3
  437. package/contracts/product/IClaimService.sol +48 -6
  438. package/contracts/product/IPolicyService.sol +54 -39
  439. package/contracts/product/IPricingService.sol +14 -11
  440. package/contracts/product/IProductComponent.sol +31 -10
  441. package/contracts/product/IRiskService.sol +33 -0
  442. package/contracts/product/PolicyService.sol +498 -234
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +12 -27
  445. package/contracts/product/PricingService.sol +116 -82
  446. package/contracts/product/PricingServiceManager.sol +12 -24
  447. package/contracts/product/Product.sol +236 -148
  448. package/contracts/product/RiskService.sol +154 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +72 -39
  451. package/contracts/registry/IRegistry.sol +94 -34
  452. package/contracts/registry/IRegistryService.sol +28 -35
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -2
  455. package/contracts/registry/Registry.sol +444 -219
  456. package/contracts/registry/RegistryAdmin.sol +188 -0
  457. package/contracts/registry/RegistryAuthorization.sol +277 -0
  458. package/contracts/registry/RegistryService.sol +74 -137
  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 +520 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +343 -0
  464. package/contracts/registry/TokenRegistry.sol +262 -64
  465. package/contracts/shared/Component.sol +122 -183
  466. package/contracts/shared/ComponentService.sol +610 -99
  467. package/contracts/shared/ComponentServiceManager.sol +38 -0
  468. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  469. package/contracts/shared/ContractLib.sol +357 -0
  470. package/contracts/shared/IComponent.sol +17 -49
  471. package/contracts/shared/IComponentService.sol +110 -0
  472. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  473. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  474. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  475. package/contracts/shared/INftOwnable.sol +3 -1
  476. package/contracts/shared/IPolicyHolder.sol +12 -17
  477. package/contracts/shared/IRegisterable.sol +23 -1
  478. package/contracts/shared/IService.sol +11 -6
  479. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  480. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  481. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  482. package/contracts/shared/Lifecycle.sol +88 -0
  483. package/contracts/shared/NftIdSet.sol +65 -0
  484. package/contracts/shared/NftOwnable.sol +33 -24
  485. package/contracts/shared/PolicyHolder.sol +18 -50
  486. package/contracts/shared/Registerable.sol +54 -23
  487. package/contracts/shared/RegistryLinked.sol +9 -14
  488. package/contracts/shared/Service.sol +36 -41
  489. package/contracts/shared/TokenHandler.sol +320 -13
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +170 -6
  492. package/contracts/staking/IStakingService.sol +110 -40
  493. package/contracts/staking/Staking.sol +509 -27
  494. package/contracts/staking/StakingLib.sol +281 -0
  495. package/contracts/staking/StakingLifecycle.sol +23 -0
  496. package/contracts/staking/StakingManager.sol +24 -16
  497. package/contracts/staking/StakingReader.sol +180 -0
  498. package/contracts/staking/StakingService.sol +311 -48
  499. package/contracts/staking/StakingServiceManager.sol +12 -8
  500. package/contracts/staking/StakingStore.sol +606 -0
  501. package/contracts/staking/TargetManagerLib.sol +211 -0
  502. package/contracts/type/AddressSet.sol +1 -1
  503. package/contracts/type/Amount.sol +44 -3
  504. package/contracts/type/Blocknumber.sol +26 -3
  505. package/contracts/type/ClaimId.sol +6 -1
  506. package/contracts/type/Fee.sol +22 -21
  507. package/contracts/type/Key32.sol +2 -2
  508. package/contracts/type/Key32Set.sol +62 -0
  509. package/contracts/type/NftId.sol +21 -16
  510. package/contracts/type/NftIdSet.sol +1 -1
  511. package/contracts/type/ObjectType.sol +204 -63
  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 -74
  517. package/contracts/type/Seconds.sol +48 -1
  518. package/contracts/type/Selector.sol +107 -0
  519. package/contracts/type/StateId.sol +41 -2
  520. package/contracts/type/String.sol +53 -0
  521. package/contracts/type/Timestamp.sol +16 -7
  522. package/contracts/type/UFixed.sol +61 -125
  523. package/contracts/type/Version.sol +58 -7
  524. package/contracts/{shared → upgradeability}/ProxyManager.sol +101 -36
  525. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  526. package/contracts/{shared → upgradeability}/Versionable.sol +6 -3
  527. package/package.json +12 -8
  528. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  530. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  531. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  532. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  533. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  534. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  535. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  538. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  540. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  542. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  543. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  544. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  545. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  547. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  548. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  549. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
  550. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  552. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  553. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  554. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  555. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -620
  556. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  557. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  558. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  559. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  560. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  561. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  562. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  563. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  564. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  565. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  566. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  567. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  568. package/contracts/instance/BundleManager.sol +0 -126
  569. package/contracts/instance/InstanceAccessManager.sol +0 -543
  570. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  571. package/contracts/instance/base/Lifecycle.sol +0 -121
  572. package/contracts/instance/base/ObjectManager.sol +0 -82
  573. package/contracts/instance/module/IAccess.sol +0 -54
  574. package/contracts/instance/module/ISetup.sol +0 -33
  575. package/contracts/instance/module/ITreasury.sol +0 -23
  576. package/contracts/product/IProductService.sol +0 -40
  577. package/contracts/product/ProductService.sol +0 -210
  578. package/contracts/product/ProductServiceManager.sol +0 -54
  579. package/contracts/registry/RegistryAccessManager.sol +0 -207
  580. package/contracts/registry/ReleaseManager.sol +0 -360
  581. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  582. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,380 @@
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, RoleIdLib, 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
+ // error ErrorInstanceAdminNotCustomRole(RoleId roleId);
32
+
33
+ // error ErrorInstanceAdminNotRegistered(address instance);
34
+ // error ErrorInstanceAdminAlreadyAuthorized(address instance);
35
+
36
+ // error ErrorInstanceAdminNotComponentRole(RoleId roleId);
37
+ // error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
38
+ // error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
39
+
40
+ // error ErrorInstanceAdminReleaseMismatch();
41
+ // error ErrorInstanceAdminExpectedTargetMissing(string targetName);
42
+
43
+ // authorizeFunctions
44
+ error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
45
+
46
+ IInstance internal _instance;
47
+ IRegistry internal _registry;
48
+ VersionPart internal _release;
49
+
50
+ uint64 internal _customRoleIdNext;
51
+
52
+ mapping(address target => RoleId roleId) internal _targetRoleId;
53
+ uint64 internal _components;
54
+
55
+
56
+ modifier onlyInstanceService() {
57
+ if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
58
+ revert ErrorInstanceAdminNotInstanceService(msg.sender);
59
+ }
60
+ _;
61
+ }
62
+
63
+ /// @dev Only used for master instance admin.
64
+ constructor(address accessManager) {
65
+ initialize(
66
+ accessManager,
67
+ "MasterInstanceAdmin");
68
+ }
69
+
70
+
71
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
72
+ /// Important: Initialization of instance admin is only complete after calling this function.
73
+ /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
74
+ function completeSetup(
75
+ address registry,
76
+ address authorization,
77
+ VersionPart release,
78
+ address instance
79
+ )
80
+ external
81
+ reinitializer(uint64(release.toInt()))
82
+ onlyDeployer()
83
+ {
84
+ // checks
85
+ AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
86
+
87
+ AccessManagerCloneable(
88
+ authority()).completeSetup(
89
+ registry,
90
+ release);
91
+
92
+ _checkAuthorization(authorization, INSTANCE(), release, false, true);
93
+
94
+ // effects
95
+ _registry = IRegistry(registry);
96
+ _release = release;
97
+
98
+ _instance = IInstance(instance);
99
+ _authorization = IAuthorization(authorization);
100
+ _components = 0;
101
+ _customRoleIdNext = 0;
102
+
103
+ // link nft ownability to instance
104
+ _linkToNftOwnable(instance);
105
+
106
+ // setup instance targets
107
+ _createInstanceTargets(_authorization.getMainTargetName());
108
+
109
+ // setup non-contract roles
110
+ _setupServiceRoles(_authorization);
111
+ _createRoles(_authorization);
112
+
113
+ // authorize functions of instance contracts
114
+ _createTargetAuthorizations(_authorization);
115
+ }
116
+
117
+
118
+ /// @dev grants the service roles to the service addresses based on the authorization specification.
119
+ /// Service addresses used for the granting are determined by the registry and the release of this instance.
120
+ function _setupServiceRoles(IAuthorization authorization)
121
+ internal
122
+ {
123
+ ObjectType[] memory serviceDomains = authorization.getServiceDomains();
124
+
125
+ for(uint256 i = 0; i < serviceDomains.length; i++) {
126
+ ObjectType serviceDomain = serviceDomains[i];
127
+ RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
128
+ string memory serviceRoleName = authorization.getRoleName(serviceRoleId);
129
+
130
+ // create service role if missing
131
+ if (!roleExists(serviceRoleId)) {
132
+ _createRole(
133
+ serviceRoleId,
134
+ AccessAdminLib.toRole(
135
+ ADMIN_ROLE(),
136
+ IAccess.RoleType.Contract,
137
+ 1,
138
+ serviceRoleName));
139
+ }
140
+
141
+ // grant service role to service
142
+ address service = _registry.getServiceAddress(serviceDomain, _release);
143
+ _grantRoleToAccount(
144
+ serviceRoleId,
145
+ service);
146
+ }
147
+ }
148
+
149
+
150
+ function _createInstanceTargets(string memory instanceTargetName)
151
+ internal
152
+ {
153
+ _createManagedTarget(address(_instance), instanceTargetName, TargetType.Instance);
154
+ _createManagedTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, TargetType.Instance);
155
+ _createManagedTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME, TargetType.Instance);
156
+ _createManagedTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME, TargetType.Instance);
157
+ _createManagedTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME, TargetType.Instance);
158
+ }
159
+
160
+
161
+ /// @dev Initializes the authorization for the specified component.
162
+ /// Important: The component MUST be registered.
163
+ function initializeComponentAuthorization(
164
+ address componentAddress,
165
+ ObjectType expectedType
166
+ )
167
+ external
168
+ restricted()
169
+ {
170
+ // checks
171
+ AccessAdminLib.checkIsRegistered(address(getRegistry()), componentAddress, expectedType);
172
+
173
+ IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
174
+ IAuthorization authorization = component.getAuthorization();
175
+ _checkAuthorization(address(authorization), expectedType, getRelease(), false, false);
176
+
177
+ // effects
178
+ _createRoles(authorization);
179
+ _createManagedTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component);
180
+ _createTargetAuthorizations(authorization);
181
+
182
+ // increase component count
183
+ _components++;
184
+ }
185
+
186
+ function getRelease()
187
+ public
188
+ view
189
+ override
190
+ returns (VersionPart release)
191
+ {
192
+ return _release;
193
+ }
194
+
195
+
196
+ /// @dev Creates a custom role.
197
+ function createRole(
198
+ string memory roleName,
199
+ RoleId adminRoleId,
200
+ uint32 maxMemberCount
201
+ )
202
+ external
203
+ restricted()
204
+ returns (RoleId roleId)
205
+ {
206
+ // create roleId
207
+ roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
208
+
209
+ // create role
210
+ _createRole(
211
+ roleId,
212
+ AccessAdminLib.toRole(
213
+ adminRoleId,
214
+ IAccess.RoleType.Custom,
215
+ maxMemberCount,
216
+ roleName));
217
+ }
218
+
219
+
220
+ /// @dev Activtes/pauses the specified role.
221
+ function setRoleActive(RoleId roleId, bool active)
222
+ external
223
+ restricted()
224
+ {
225
+ _setRoleActive(roleId, active);
226
+ }
227
+
228
+
229
+ /// @dev Grants the provided role to the specified account
230
+ function grantRole(
231
+ RoleId roleId,
232
+ address account)
233
+ external
234
+ restricted()
235
+ {
236
+ _grantRoleToAccount(roleId, account);
237
+ }
238
+
239
+
240
+ /// @dev Revokes the provided role from the specified account
241
+ function revokeRole(
242
+ RoleId roleId,
243
+ address account)
244
+ external
245
+ restricted()
246
+ {
247
+ _revokeRoleFromAccount(roleId, account);
248
+ }
249
+
250
+
251
+ /// @dev Create a new custom target.
252
+ /// The target needs to be an access managed contract.
253
+ function createTarget(
254
+ address target,
255
+ string memory name
256
+ )
257
+ external
258
+ restricted()
259
+ returns (RoleId contractRoleId)
260
+ {
261
+ return _createManagedTarget(
262
+ target,
263
+ name,
264
+ TargetType.Custom);
265
+ }
266
+
267
+
268
+ /// @dev Add function authorizations for the specified component or custom target.
269
+ function authorizeFunctions(
270
+ address target,
271
+ RoleId roleId,
272
+ IAccess.FunctionInfo[] memory functions
273
+ )
274
+ external
275
+ restricted()
276
+ onlyExistingTarget(target)
277
+ {
278
+ // check target type
279
+ IAccess.TargetType targetType = getTargetInfo(target).targetType;
280
+ if (targetType != TargetType.Component && targetType != TargetType.Custom) {
281
+ revert ErrorInstanceAdminNotComponentOrCustomTarget(target);
282
+ }
283
+
284
+ _authorizeTargetFunctions(target, roleId, functions, true);
285
+ }
286
+
287
+
288
+ /// @dev locks the instance and all its releated targets including component and custom targets.
289
+ function setInstanceLocked(bool locked)
290
+ external
291
+ // not restricted(): need to operate on locked instances to unlock instance
292
+ onlyInstanceService()
293
+ {
294
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
295
+ accessManager.setLocked(locked);
296
+ }
297
+
298
+
299
+ function setTargetLocked(address target, bool locked)
300
+ external
301
+ // not restricted(): might need to operate on targets while instance is locked
302
+ onlyInstanceService()
303
+ {
304
+ _setTargetLocked(target, locked);
305
+ }
306
+
307
+
308
+ function setComponentLocked(address target, bool locked)
309
+ external
310
+ restricted()
311
+ {
312
+ _setTargetLocked(target, locked);
313
+ }
314
+
315
+ /// @dev Returns the number of components that have been registered with this instance.
316
+ function components()
317
+ external
318
+ view
319
+ returns (uint64)
320
+ {
321
+ return _components;
322
+ }
323
+
324
+ /// @dev Returns the instance authorization specification used to set up this instance admin.
325
+ function getInstanceAuthorization()
326
+ external
327
+ view
328
+ returns (IAuthorization instanceAuthorizaion)
329
+ {
330
+ return _authorization;
331
+ }
332
+
333
+ // ------------------- Internal functions ------------------- //
334
+
335
+ function _createRoles(IAuthorization authorization)
336
+ internal
337
+ {
338
+ RoleId[] memory roles = authorization.getRoles();
339
+ RoleId mainTargetRoleId = authorization.getTargetRole(
340
+ authorization.getMainTarget());
341
+
342
+ for(uint256 i = 0; i < roles.length; i++) {
343
+ RoleId roleId = roles[i];
344
+
345
+ // skip main target role, create role if not exists
346
+ if (roleId != mainTargetRoleId && !roleExists(roleId)) {
347
+ _createRole(
348
+ roleId,
349
+ authorization.getRoleInfo(roleId));
350
+ }
351
+ }
352
+ }
353
+
354
+
355
+ function toComponentRole(RoleId roleId, uint64 componentIdx)
356
+ internal
357
+ pure
358
+ returns (RoleId)
359
+ {
360
+ return RoleIdLib.toRoleId(
361
+ RoleIdLib.toInt(roleId) + componentIdx);
362
+ }
363
+
364
+
365
+ function _createTargetAuthorizations(IAuthorization authorization)
366
+ internal
367
+ {
368
+ Str[] memory targets = authorization.getTargets();
369
+ Str target;
370
+
371
+ for(uint256 i = 0; i < targets.length; i++) {
372
+ target = targets[i];
373
+ RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
374
+
375
+ for(uint256 j = 0; j < authorizedRoles.length; j++) {
376
+ _authorizeFunctions(authorization, target, authorizedRoles[j]);
377
+ }
378
+ }
379
+ }
380
+ }
@@ -0,0 +1,263 @@
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.pause.selector, "pause");
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.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
142
+ _authorize(functions, IInstance.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
143
+
144
+ // custom authz
145
+ _authorize(functions, IInstance.createRole.selector, "createRole");
146
+ _authorize(functions, IInstance.setRoleActive.selector, "setRoleActive");
147
+ _authorize(functions, IInstance.grantRole.selector, "grantRole");
148
+ _authorize(functions, IInstance.revokeRole.selector, "revokeRole");
149
+ _authorize(functions, IInstance.createTarget.selector, "createTarget");
150
+ _authorize(functions, IInstance.authorizeFunctions.selector, "authorizeFunctions");
151
+
152
+ // authorize instance service role
153
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
154
+ _authorize(functions, IInstance.setInstanceReader.selector, "setInstanceReader");
155
+ }
156
+
157
+
158
+ function _setupInstanceAdminAuthorization()
159
+ internal
160
+ {
161
+ IAccess.FunctionInfo[] storage functions;
162
+
163
+ // authorize component service role
164
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
165
+ _authorize(functions, InstanceAdmin.createRole.selector, "createRole");
166
+ _authorize(functions, InstanceAdmin.setRoleActive.selector, "setRoleActive");
167
+ _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
168
+ _authorize(functions, InstanceAdmin.revokeRole.selector, "revokeRole");
169
+
170
+ _authorize(functions, InstanceAdmin.createTarget.selector, "createTarget");
171
+ _authorize(functions, InstanceAdmin.authorizeFunctions.selector, "authorizeFunctions");
172
+ _authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
173
+ _authorize(functions, InstanceAdmin.setInstanceLocked.selector, "setInstanceLocked");
174
+
175
+ // authorize component service role
176
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
177
+ _authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
178
+ _authorize(functions, InstanceAdmin.setComponentLocked.selector, "setComponentLocked");
179
+ }
180
+
181
+
182
+ function _setupInstanceStoreAuthorization()
183
+ internal
184
+ {
185
+ IAccess.FunctionInfo[] storage functions;
186
+
187
+ // authorize accounting service role
188
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
189
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
190
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
191
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
192
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
193
+
194
+ // authorize component service role
195
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
196
+ _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
197
+ _authorize(functions, InstanceStore.updateComponent.selector, "updateComponent");
198
+ _authorize(functions, InstanceStore.createPool.selector, "createPool");
199
+ _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
200
+ _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
201
+ _authorize(functions, InstanceStore.createFee.selector, "createFee");
202
+ _authorize(functions, InstanceStore.updateFee.selector, "updateFee");
203
+
204
+ // authorize distribution service role
205
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
206
+ _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
207
+ _authorize(functions, InstanceStore.updateDistributorType.selector, "updateDistributorType");
208
+ _authorize(functions, InstanceStore.updateDistributorTypeState.selector, "updateDistributorTypeState");
209
+ _authorize(functions, InstanceStore.createDistributor.selector, "createDistributor");
210
+ _authorize(functions, InstanceStore.updateDistributor.selector, "updateDistributor");
211
+ _authorize(functions, InstanceStore.updateDistributorState.selector, "updateDistributorState");
212
+ _authorize(functions, InstanceStore.createReferral.selector, "createReferral");
213
+ _authorize(functions, InstanceStore.updateReferral.selector, "updateReferral");
214
+ _authorize(functions, InstanceStore.updateReferralState.selector, "updateReferralState");
215
+
216
+ // authorize oracle service role
217
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ORACLE()));
218
+ _authorize(functions, InstanceStore.createRequest.selector, "createRequest");
219
+ _authorize(functions, InstanceStore.updateRequest.selector, "updateRequest");
220
+ _authorize(functions, InstanceStore.updateRequestState.selector, "updateRequestState");
221
+
222
+ // authorize pool service role
223
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POOL()));
224
+ _authorize(functions, InstanceStore.updatePool.selector, "updatePool");
225
+
226
+ // authorize bundle service role
227
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(BUNDLE()));
228
+ _authorize(functions, InstanceStore.createBundle.selector, "createBundle");
229
+ _authorize(functions, InstanceStore.updateBundle.selector, "updateBundle");
230
+ _authorize(functions, InstanceStore.updateBundleState.selector, "updateBundleState");
231
+ _authorize(functions, InstanceStore.increaseLocked.selector, "increaseLocked");
232
+ _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
233
+
234
+ // authorize product service role
235
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
236
+ _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
237
+ _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
238
+ _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
239
+
240
+ // authorize application service role
241
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(APPLICATION()));
242
+ _authorize(functions, InstanceStore.createApplication.selector, "createApplication");
243
+ _authorize(functions, InstanceStore.updateApplication.selector, "updateApplication");
244
+ _authorize(functions, InstanceStore.updateApplicationState.selector, "updateApplicationState");
245
+
246
+ // authorize policy service role
247
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
248
+ _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
249
+ _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
250
+ _authorize(functions, InstanceStore.createPremium.selector, "createPremium");
251
+ _authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
252
+
253
+ // authorize claim service role
254
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
255
+ _authorize(functions, InstanceStore.updatePolicyClaims.selector, "updatePolicyClaims");
256
+ _authorize(functions, InstanceStore.createClaim.selector, "createClaim");
257
+ _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
258
+ _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
259
+ _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
260
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
261
+ }
262
+ }
263
+