@etherisc/gif-next 0.0.2-b28f7c7-340 → 0.0.2-b2e620f-736

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 (716) hide show
  1. package/README.md +77 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → accounting/IAccountingService.sol/IAccountingService.json} +327 -380
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -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 +1130 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +259 -572
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +258 -312
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +243 -325
  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 +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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 +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +378 -1974
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +238 -112
  70. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/Instance.sol/Instance.json +455 -2782
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1927 -0
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1670 -575
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +272 -426
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -153
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  88. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  89. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  112. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +228 -284
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  114. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +302 -175
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -229
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  122. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +318 -442
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +283 -62
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  136. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +377 -414
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  148. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +451 -457
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  156. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +138 -163
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  166. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +64 -61
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  193. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -249
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  212. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +280 -180
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1537 -0
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +142 -132
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  228. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +152 -125
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1185 -0
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  234. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  243. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  245. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  277. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  295. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  335. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  353. package/contracts/accounting/AccountingService.sol +262 -0
  354. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  355. package/contracts/accounting/IAccountingService.sol +45 -0
  356. package/contracts/authorization/AccessAdmin.sol +689 -0
  357. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  358. package/contracts/authorization/Authorization.sol +337 -0
  359. package/contracts/authorization/IAccess.sol +49 -0
  360. package/contracts/authorization/IAccessAdmin.sol +143 -0
  361. package/contracts/authorization/IAuthorization.sol +74 -0
  362. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  363. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  364. package/contracts/distribution/BasicDistribution.sol +139 -0
  365. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  366. package/contracts/{components → distribution}/Distribution.sol +170 -163
  367. package/contracts/distribution/DistributionService.sol +357 -0
  368. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  369. package/contracts/distribution/IDistributionComponent.sol +52 -0
  370. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  371. package/contracts/examples/fire/DamageLevel.sol +59 -0
  372. package/contracts/examples/fire/FirePool.sol +90 -0
  373. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  374. package/contracts/examples/fire/FireProduct.sol +438 -0
  375. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  376. package/contracts/examples/fire/FireUSD.sol +26 -0
  377. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  378. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  379. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  380. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  381. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  383. package/contracts/instance/BundleSet.sol +130 -0
  384. package/contracts/instance/IInstance.sol +49 -76
  385. package/contracts/instance/IInstanceService.sol +39 -39
  386. package/contracts/instance/Instance.sol +175 -247
  387. package/contracts/instance/InstanceAdmin.sol +448 -0
  388. package/contracts/instance/InstanceAuthorizationV3.sol +216 -0
  389. package/contracts/instance/InstanceReader.sol +397 -63
  390. package/contracts/instance/InstanceService.sol +273 -364
  391. package/contracts/instance/InstanceServiceManager.sol +14 -29
  392. package/contracts/instance/InstanceStore.sol +298 -0
  393. package/contracts/instance/RiskSet.sol +118 -0
  394. package/contracts/instance/base/BalanceStore.sol +123 -0
  395. package/contracts/instance/base/Cloneable.sol +28 -0
  396. package/contracts/instance/base/ObjectCounter.sol +20 -0
  397. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  398. package/contracts/instance/base/ObjectSet.sol +77 -0
  399. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  400. package/contracts/instance/module/IBundle.sol +6 -9
  401. package/contracts/instance/module/IComponents.sol +28 -18
  402. package/contracts/instance/module/IDistribution.sol +6 -6
  403. package/contracts/instance/module/IPolicy.sol +48 -35
  404. package/contracts/instance/module/IRisk.sol +4 -1
  405. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  406. package/contracts/oracle/BasicOracle.sol +47 -0
  407. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  408. package/contracts/oracle/IOracle.sol +36 -0
  409. package/contracts/oracle/IOracleComponent.sol +33 -0
  410. package/contracts/oracle/IOracleService.sol +66 -0
  411. package/contracts/oracle/Oracle.sol +156 -0
  412. package/contracts/oracle/OracleService.sol +310 -0
  413. package/contracts/oracle/OracleServiceManager.sol +39 -0
  414. package/contracts/pool/BasicPool.sol +175 -0
  415. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  416. package/contracts/pool/BundleService.sol +395 -0
  417. package/contracts/pool/BundleServiceManager.sol +39 -0
  418. package/contracts/{instance/service → pool}/IBundleService.sol +52 -30
  419. package/contracts/pool/IPoolComponent.sol +62 -0
  420. package/contracts/pool/IPoolService.sol +165 -0
  421. package/contracts/pool/Pool.sol +345 -0
  422. package/contracts/pool/PoolLib.sol +216 -0
  423. package/contracts/pool/PoolService.sol +757 -0
  424. package/contracts/pool/PoolServiceManager.sol +39 -0
  425. package/contracts/product/ApplicationService.sol +259 -0
  426. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  427. package/contracts/product/BasicProduct.sol +51 -0
  428. package/contracts/product/BasicProductAuthorization.sol +56 -0
  429. package/contracts/product/ClaimService.sol +632 -0
  430. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  431. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  432. package/contracts/product/IClaimService.sol +135 -0
  433. package/contracts/product/IPolicyService.sol +95 -0
  434. package/contracts/product/IPricingService.sol +39 -0
  435. package/contracts/product/IProductComponent.sol +62 -0
  436. package/contracts/product/IRiskService.sol +33 -0
  437. package/contracts/product/PolicyService.sol +707 -0
  438. package/contracts/product/PolicyServiceLib.sol +65 -0
  439. package/contracts/product/PolicyServiceManager.sol +39 -0
  440. package/contracts/product/PricingService.sol +304 -0
  441. package/contracts/product/PricingServiceManager.sol +39 -0
  442. package/contracts/product/Product.sol +478 -0
  443. package/contracts/product/RiskService.sol +145 -0
  444. package/contracts/product/RiskServiceManager.sol +39 -0
  445. package/contracts/registry/ChainNft.sol +79 -40
  446. package/contracts/registry/IRegistry.sol +95 -30
  447. package/contracts/registry/IRegistryService.sol +34 -40
  448. package/contracts/registry/IRelease.sol +26 -0
  449. package/contracts/registry/ITransferInterceptor.sol +1 -2
  450. package/contracts/registry/Registry.sol +460 -197
  451. package/contracts/registry/RegistryAdmin.sol +354 -0
  452. package/contracts/registry/RegistryService.sol +89 -130
  453. package/contracts/registry/RegistryServiceManager.sol +23 -32
  454. package/contracts/registry/ReleaseAdmin.sol +245 -0
  455. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  456. package/contracts/registry/ReleaseRegistry.sol +511 -0
  457. package/contracts/registry/ServiceAuthorizationV3.sol +326 -0
  458. package/contracts/registry/TokenRegistry.sol +261 -64
  459. package/contracts/shared/Component.sol +226 -0
  460. package/contracts/shared/ComponentService.sol +682 -0
  461. package/contracts/shared/ComponentServiceManager.sol +38 -0
  462. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  463. package/contracts/shared/ContractLib.sol +253 -0
  464. package/contracts/shared/IComponent.sol +61 -0
  465. package/contracts/shared/IComponentService.sol +109 -0
  466. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  467. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  468. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  469. package/contracts/shared/INftOwnable.sol +4 -2
  470. package/contracts/shared/IPolicyHolder.sol +23 -14
  471. package/contracts/shared/IRegisterable.sol +23 -1
  472. package/contracts/shared/IRegistryLinked.sol +0 -1
  473. package/contracts/shared/IService.sol +12 -5
  474. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  475. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  476. package/contracts/shared/KeyValueStore.sol +131 -0
  477. package/contracts/shared/Lifecycle.sol +88 -0
  478. package/contracts/shared/NftIdSet.sol +65 -0
  479. package/contracts/shared/NftOwnable.sol +34 -27
  480. package/contracts/shared/PolicyHolder.sol +22 -41
  481. package/contracts/shared/Registerable.sol +55 -20
  482. package/contracts/shared/RegistryLinked.sol +9 -19
  483. package/contracts/shared/Service.sol +33 -40
  484. package/contracts/shared/TokenHandler.sol +321 -13
  485. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  486. package/contracts/staking/IStaking.sol +165 -0
  487. package/contracts/staking/IStakingService.sol +165 -0
  488. package/contracts/staking/StakeManagerLib.sol +224 -0
  489. package/contracts/staking/Staking.sol +526 -0
  490. package/contracts/staking/StakingLifecycle.sol +23 -0
  491. package/contracts/staking/StakingManager.sol +52 -0
  492. package/contracts/staking/StakingReader.sol +190 -0
  493. package/contracts/staking/StakingService.sol +430 -0
  494. package/contracts/staking/StakingServiceManager.sol +45 -0
  495. package/contracts/staking/StakingStore.sol +605 -0
  496. package/contracts/staking/TargetManagerLib.sol +211 -0
  497. package/contracts/{types → type}/AddressSet.sol +1 -1
  498. package/contracts/type/Amount.sol +150 -0
  499. package/contracts/{types → type}/Blocknumber.sol +26 -3
  500. package/contracts/{types → type}/ClaimId.sol +31 -3
  501. package/contracts/{types → type}/Fee.sol +24 -22
  502. package/contracts/{types → type}/Key32.sol +2 -2
  503. package/contracts/type/Key32Set.sol +62 -0
  504. package/contracts/{types → type}/NftId.sol +21 -16
  505. package/contracts/{types → type}/NftIdSet.sol +2 -2
  506. package/contracts/type/ObjectType.sol +303 -0
  507. package/contracts/type/PayoutId.sol +82 -0
  508. package/contracts/{types → type}/Referral.sol +2 -1
  509. package/contracts/type/RequestId.sol +75 -0
  510. package/contracts/type/RiskId.sol +74 -0
  511. package/contracts/type/RoleId.sol +182 -0
  512. package/contracts/type/Seconds.sol +101 -0
  513. package/contracts/type/Selector.sol +107 -0
  514. package/contracts/{types → type}/StateId.sol +47 -4
  515. package/contracts/type/String.sol +53 -0
  516. package/contracts/{types → type}/Timestamp.sol +20 -6
  517. package/contracts/{types → type}/UFixed.sol +40 -121
  518. package/contracts/{types → type}/Version.sol +19 -7
  519. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  520. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  521. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  522. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  523. package/package.json +11 -7
  524. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  525. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  526. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  528. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  531. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  532. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  533. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  536. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  539. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  541. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  546. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  548. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  550. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  553. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  555. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  557. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  559. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  561. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  563. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  565. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  567. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  569. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  578. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  580. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  582. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  584. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  586. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  587. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  588. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  589. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  590. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  591. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  592. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  593. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  594. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  596. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  597. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  598. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  599. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  600. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  601. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  604. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  606. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  608. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  610. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  612. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  614. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  616. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  617. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  618. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  619. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  620. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  622. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  624. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  626. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  628. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  630. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  632. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  634. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  636. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  637. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  638. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  640. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  642. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  644. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  646. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  648. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  650. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  652. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  654. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  656. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  658. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  660. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  662. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  664. package/contracts/components/Component.sol +0 -253
  665. package/contracts/components/IComponent.sol +0 -76
  666. package/contracts/components/IDistributionComponent.sol +0 -71
  667. package/contracts/components/IPoolComponent.sol +0 -113
  668. package/contracts/components/IProductComponent.sol +0 -40
  669. package/contracts/components/Pool.sol +0 -303
  670. package/contracts/components/Product.sol +0 -293
  671. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  672. package/contracts/instance/BundleManager.sol +0 -127
  673. package/contracts/instance/Cloneable.sol +0 -51
  674. package/contracts/instance/InstanceAccessManager.sol +0 -527
  675. package/contracts/instance/ObjectManager.sol +0 -82
  676. package/contracts/instance/base/ComponentService.sol +0 -121
  677. package/contracts/instance/base/KeyValueStore.sol +0 -180
  678. package/contracts/instance/base/Lifecycle.sol +0 -109
  679. package/contracts/instance/module/IAccess.sol +0 -54
  680. package/contracts/instance/module/ISetup.sol +0 -33
  681. package/contracts/instance/module/ITreasury.sol +0 -23
  682. package/contracts/instance/service/ApplicationService.sol +0 -350
  683. package/contracts/instance/service/BundleService.sol +0 -431
  684. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  685. package/contracts/instance/service/ClaimService.sol +0 -151
  686. package/contracts/instance/service/DistributionService.sol +0 -435
  687. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  688. package/contracts/instance/service/IClaimService.sol +0 -61
  689. package/contracts/instance/service/IPolicyService.sol +0 -72
  690. package/contracts/instance/service/IPoolService.sol +0 -99
  691. package/contracts/instance/service/IProductService.sol +0 -40
  692. package/contracts/instance/service/PolicyService.sol +0 -362
  693. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  694. package/contracts/instance/service/PoolService.sol +0 -303
  695. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  696. package/contracts/instance/service/ProductService.sol +0 -210
  697. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  698. package/contracts/registry/RegistryAccessManager.sol +0 -216
  699. package/contracts/registry/ReleaseManager.sol +0 -324
  700. package/contracts/shared/ContractDeployerLib.sol +0 -72
  701. package/contracts/test/TestFee.sol +0 -25
  702. package/contracts/test/TestRegisterable.sol +0 -18
  703. package/contracts/test/TestRoleId.sol +0 -14
  704. package/contracts/test/TestService.sol +0 -25
  705. package/contracts/test/TestToken.sol +0 -26
  706. package/contracts/test/TestVersion.sol +0 -44
  707. package/contracts/test/TestVersionable.sol +0 -17
  708. package/contracts/types/Amount.sol +0 -60
  709. package/contracts/types/ChainId.sol +0 -38
  710. package/contracts/types/NumberId.sol +0 -52
  711. package/contracts/types/ObjectType.sol +0 -157
  712. package/contracts/types/PayoutId.sol +0 -54
  713. package/contracts/types/RiskId.sol +0 -43
  714. package/contracts/types/RoleId.sol +0 -97
  715. package/contracts/types/Seconds.sol +0 -54
  716. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,448 @@
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 {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType} from "../type/ObjectType.sol";
14
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
15
+ import {Str, StrLib} from "../type/String.sol";
16
+ import {TokenHandler} from "../shared/TokenHandler.sol";
17
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
18
+
19
+
20
+ contract InstanceAdmin is
21
+ AccessAdmin
22
+ {
23
+ string public constant INSTANCE_TARGET_NAME = "Instance";
24
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
25
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
26
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TAGET_NAME = "RiskSet";
28
+
29
+ uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
30
+
31
+ error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
32
+ error ErrorInstanceAdminCallerNotInstance(address caller);
33
+ error ErrorInstanceAdminInstanceAlreadyLocked();
34
+ error ErrorInstanceAdminNotRegistered(address target);
35
+
36
+ error ErrorInstanceAdminAlreadyAuthorized(address target);
37
+ error ErrorInstanceAdminNotComponentRole(RoleId roleId);
38
+ error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
39
+ error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
40
+
41
+ error ErrorInstanceAdminReleaseMismatch();
42
+ error ErrorInstanceAdminExpectedTargetMissing(string targetName);
43
+
44
+ IInstance internal _instance;
45
+ IRegistry internal _registry;
46
+ uint64 internal _customIdNext;
47
+
48
+ mapping(address target => RoleId roleId) internal _targetRoleId;
49
+ uint64 internal _components;
50
+
51
+ IAuthorization internal _instanceAuthorization;
52
+
53
+
54
+ modifier onlyInstanceOwner() {
55
+ if(msg.sender != _registry.ownerOf(address(_instance))) {
56
+ revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
57
+ }
58
+ _;
59
+ }
60
+
61
+ modifier onlyInstance() {
62
+ if(msg.sender != address(_instance)) {
63
+ revert ErrorInstanceAdminCallerNotInstance(msg.sender);
64
+ }
65
+ _;
66
+ }
67
+
68
+ /// @dev Only used for master instance admin.
69
+ /// Contracts created via constructor come with disabled initializers.
70
+ constructor(
71
+ address instanceAuthorization
72
+ ) {
73
+ initialize(new AccessManagerCloneable());
74
+
75
+ _instanceAuthorization = IAuthorization(instanceAuthorization);
76
+
77
+ _disableInitializers();
78
+ }
79
+
80
+
81
+ function initialize(
82
+ AccessManagerCloneable clonedAccessManager,
83
+ IRegistry registry,
84
+ VersionPart release
85
+ )
86
+ external
87
+ initializer()
88
+ {
89
+ __AccessAdmin_init(clonedAccessManager);
90
+
91
+ clonedAccessManager.completeSetup(
92
+ address(registry),
93
+ release);
94
+
95
+ _registry = registry;
96
+ }
97
+
98
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
99
+ /// Important: Initialization of instance admin is only complete after calling this function.
100
+ /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
101
+ function completeSetup(
102
+ address instance,
103
+ address authorization
104
+ )
105
+ external
106
+ reinitializer(uint64(getRelease().toInt()))
107
+ onlyDeployer()
108
+ {
109
+ _components = 0;
110
+ _customIdNext = CUSTOM_ROLE_ID_MIN;
111
+ _instance = IInstance(instance);
112
+ _instanceAuthorization = IAuthorization(authorization);
113
+
114
+ _checkTargetIsReadyForAuthorization(instance);
115
+
116
+ // check matching releases
117
+ if (_instanceAuthorization.getRelease() != getRelease()) {
118
+ revert ErrorInstanceAdminReleaseMismatch();
119
+ }
120
+
121
+ // create instance role and target
122
+ _setupInstance(instance);
123
+
124
+ // add instance authorization
125
+ _createRoles(_instanceAuthorization);
126
+
127
+ _setupInstanceHelperTargetsWithRoles();
128
+ _createTargetAuthorizations(_instanceAuthorization);
129
+ }
130
+
131
+
132
+ /// @dev Initializes the authorization for the specified component.
133
+ /// Important: The component MUST be registered.
134
+ function initializeComponentAuthorization(
135
+ IInstanceLinkedComponent component
136
+ )
137
+ external
138
+ restricted()
139
+ {
140
+ // TODO check componentInfo exists
141
+ // TODO deploy token handler here
142
+ // checks
143
+ _checkTargetIsReadyForAuthorization(address(component));
144
+
145
+ // setup target and role for component (including token handler)
146
+ _setupComponentAndTokenHandler(component);
147
+
148
+ // create other roles
149
+ IAuthorization authorization = component.getAuthorization();
150
+ _createRoles(authorization);
151
+
152
+
153
+ // // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
154
+ // _authorizeTargetFunctions(
155
+ // address(component.getTokenHandler()),
156
+ // getPublicRole(),
157
+ // functions);
158
+
159
+ _createTargetAuthorizations(authorization);
160
+ }
161
+
162
+ // create instance role and target
163
+ function _setupInstance(address instance) internal {
164
+ // create instance role
165
+ RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
166
+ _instanceAuthorization.getMainTarget());
167
+
168
+ _createRole(
169
+ instanceRoleId,
170
+ _instanceAuthorization.getRoleInfo(instanceRoleId));
171
+
172
+ // create instance target
173
+ _createTarget(
174
+ instance,
175
+ _instanceAuthorization.getMainTargetName(),
176
+ true, // checkAuthority
177
+ false); // custom
178
+
179
+ // assign instance role to instance
180
+ _grantRoleToAccount(
181
+ instanceRoleId,
182
+ instance);
183
+ }
184
+
185
+ /// @dev Creates a custom role
186
+ // TODO implement
187
+ // function createRole()
188
+ // external
189
+ // restricted()
190
+ // {
191
+
192
+ // }
193
+
194
+ /// @dev Grants the provided role to the specified account
195
+ function grantRole(
196
+ RoleId roleId,
197
+ address account)
198
+ external
199
+ restricted()
200
+ {
201
+ _grantRoleToAccount(roleId, account);
202
+ }
203
+
204
+
205
+ function setInstanceLocked(bool locked)
206
+ external
207
+ onlyInstanceOwner()
208
+ {
209
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
210
+
211
+ if(accessManager.isLocked() == locked) {
212
+ revert ErrorInstanceAdminInstanceAlreadyLocked();
213
+ }
214
+ accessManager.setLocked(locked);
215
+ }
216
+
217
+ function setTargetLocked(address target, bool locked)
218
+ external
219
+ onlyInstance()
220
+ {
221
+ _setTargetClosed(target, locked);
222
+ }
223
+
224
+
225
+
226
+ /// @dev Returns the instance authorization specification used to set up this instance admin.
227
+ function getInstanceAuthorization()
228
+ external
229
+ view
230
+ returns (IAuthorization instanceAuthorizaion)
231
+ {
232
+ return _instanceAuthorization;
233
+ }
234
+
235
+ // ------------------- Internal functions ------------------- //
236
+
237
+ function _setupComponentAndTokenHandler(IInstanceLinkedComponent component)
238
+ internal
239
+ {
240
+
241
+ IAuthorization authorization = component.getAuthorization();
242
+ string memory targetName = authorization.getMainTargetName();
243
+
244
+ // create component role and target
245
+ RoleId componentRoleId = _createComponentRoleId(component, authorization);
246
+
247
+ // create component's target
248
+ _createTarget(
249
+ address(component),
250
+ targetName,
251
+ true, // checkAuthority
252
+ false); // custom
253
+
254
+ // create component's token handler target
255
+ NftId componentNftId = _registry.getNftIdForAddress(address(component));
256
+ address tokenHandler = address(
257
+ _instance.getInstanceReader().getComponentInfo(
258
+ componentNftId).tokenHandler);
259
+
260
+ _createTarget(
261
+ tokenHandler,
262
+ authorization.getTokenHandlerName(),
263
+ true,
264
+ false);
265
+
266
+ // assign component role to component
267
+ _grantRoleToAccount(
268
+ componentRoleId,
269
+ address(component));
270
+
271
+ // token handler does not require its own role
272
+ // token handler is not calling other components
273
+ }
274
+
275
+
276
+ function _createComponentRoleId(
277
+ IInstanceLinkedComponent component,
278
+ IAuthorization authorization
279
+ )
280
+ internal
281
+ returns (RoleId componentRoleId)
282
+ {
283
+ // checks
284
+ // check component is not yet authorized
285
+ if (_targetRoleId[address(component)].gtz()) {
286
+ revert ErrorInstanceAdminAlreadyAuthorized(address(component));
287
+ }
288
+
289
+ // check generic component role
290
+ RoleId genericComponentRoleId = authorization.getTargetRole(
291
+ authorization.getMainTarget());
292
+
293
+ if (!genericComponentRoleId.isComponentRole()) {
294
+ revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
295
+ }
296
+
297
+ // check component role does not exist
298
+ componentRoleId = toComponentRole(
299
+ genericComponentRoleId,
300
+ _components);
301
+
302
+ if (roleExists(componentRoleId)) {
303
+ revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
304
+ }
305
+
306
+ // check role info
307
+ IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
308
+ genericComponentRoleId);
309
+
310
+ if (roleInfo.roleType != IAccess.RoleType.Contract) {
311
+ revert ErrorInstanceAdminRoleTypeNotContract(
312
+ componentRoleId,
313
+ roleInfo.roleType);
314
+ }
315
+
316
+ // effects
317
+ _targetRoleId[address(component)] = componentRoleId;
318
+ _components++;
319
+
320
+ _createRole(
321
+ componentRoleId,
322
+ roleInfo);
323
+ }
324
+
325
+
326
+ function _checkTargetIsReadyForAuthorization(address target)
327
+ internal
328
+ view
329
+ {
330
+ if (!_registry.isRegistered(target)) {
331
+ revert ErrorInstanceAdminNotRegistered(target);
332
+ }
333
+
334
+ if (targetExists(target)) {
335
+ revert ErrorInstanceAdminAlreadyAuthorized(target);
336
+ }
337
+ }
338
+
339
+
340
+ function _createRoles(IAuthorization authorization)
341
+ internal
342
+ {
343
+ RoleId[] memory roles = authorization.getRoles();
344
+ RoleId mainTargetRoleId = authorization.getTargetRole(
345
+ authorization.getMainTarget());
346
+
347
+ RoleId roleId;
348
+ RoleInfo memory roleInfo;
349
+
350
+ for(uint256 i = 0; i < roles.length; i++) {
351
+
352
+ roleId = roles[i];
353
+
354
+ // skip main target role, create role if not exists
355
+ if (roleId != mainTargetRoleId && !roleExists(roleId)) {
356
+ _createRole(
357
+ roleId,
358
+ authorization.getRoleInfo(roleId));
359
+ }
360
+ }
361
+ }
362
+
363
+
364
+ function toComponentRole(RoleId roleId, uint64 componentIdx)
365
+ internal
366
+ pure
367
+ returns (RoleId)
368
+ {
369
+ return RoleIdLib.toRoleId(
370
+ RoleIdLib.toInt(roleId) + componentIdx);
371
+ }
372
+
373
+
374
+ function _createTargetAuthorizations(IAuthorization authorization)
375
+ internal
376
+ {
377
+ Str[] memory targets = authorization.getTargets();
378
+ Str target;
379
+
380
+ for(uint256 i = 0; i < targets.length; i++) {
381
+ target = targets[i];
382
+ RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
383
+ RoleId authorizedRole;
384
+
385
+ for(uint256 j = 0; j < authorizedRoles.length; j++) {
386
+ authorizedRole = authorizedRoles[j];
387
+
388
+ _authorizeTargetFunctions(
389
+ getTargetForName(target),
390
+ authorizedRole,
391
+ authorization.getAuthorizedFunctions(
392
+ target,
393
+ authorizedRole));
394
+ }
395
+ }
396
+ }
397
+
398
+ function _checkAndCreateTargetWithRole(
399
+ address target,
400
+ string memory targetName
401
+ )
402
+ internal
403
+ {
404
+ // check that target name is defined in authorization specification
405
+ Str name = StrLib.toStr(targetName);
406
+ if (!_instanceAuthorization.targetExists(name)) {
407
+ revert ErrorInstanceAdminExpectedTargetMissing(targetName);
408
+ }
409
+
410
+ // create named target
411
+ _createTarget(
412
+ target,
413
+ targetName,
414
+ false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
415
+ false);
416
+
417
+ // assign target role if defined
418
+ RoleId targetRoleId = _instanceAuthorization.getTargetRole(name);
419
+ if (targetRoleId != RoleIdLib.zero()) {
420
+ _grantRoleToAccount(targetRoleId, target);
421
+ }
422
+ }
423
+
424
+ function _setupInstanceHelperTargetsWithRoles()
425
+ internal
426
+ {
427
+ // _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
428
+
429
+ // create module targets
430
+ _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
431
+ _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
432
+ _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
433
+ _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
434
+
435
+ // create targets for services that need to access the module targets
436
+ ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
437
+ VersionPart release = _instanceAuthorization.getRelease();
438
+ ObjectType serviceDomain;
439
+
440
+ for (uint256 i = 0; i < serviceDomains.length; i++) {
441
+ serviceDomain = serviceDomains[i];
442
+
443
+ _checkAndCreateTargetWithRole(
444
+ _registry.getServiceAddress(serviceDomain, release),
445
+ _instanceAuthorization.getServiceTarget(serviceDomain).toString());
446
+ }
447
+ }
448
+ }
@@ -0,0 +1,216 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {
5
+ ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
6
+ } from "../../contracts/type/ObjectType.sol";
7
+
8
+ import {BundleSet} from "../instance/BundleSet.sol";
9
+ import {RiskSet} from "../instance/RiskSet.sol";
10
+ import {IAccess} from "../authorization/IAccess.sol";
11
+ import {Instance} from "../instance/Instance.sol";
12
+ import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
13
+ import {InstanceStore} from "../instance/InstanceStore.sol";
14
+ import {Authorization} from "../authorization/Authorization.sol";
15
+
16
+
17
+ contract InstanceAuthorizationV3
18
+ is Authorization
19
+ {
20
+
21
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
22
+
23
+ string public constant INSTANCE_TARGET_NAME = "Instance";
24
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
25
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
26
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
28
+
29
+ constructor()
30
+ Authorization(INSTANCE_TARGET_NAME, INSTANCE())
31
+ { }
32
+
33
+ function _setupTargets()
34
+ internal
35
+ override
36
+ {
37
+ // instance supporting targets
38
+ _addTarget(INSTANCE_STORE_TARGET_NAME);
39
+ _addTarget(INSTANCE_ADMIN_TARGET_NAME);
40
+ _addTarget(BUNDLE_SET_TARGET_NAME);
41
+ _addTarget(RISK_SET_TARGET_NAME);
42
+
43
+ // service targets relevant to instance
44
+ _addServiceTargetWithRole(INSTANCE());
45
+ _addServiceTargetWithRole(ACCOUNTING());
46
+ _addServiceTargetWithRole(COMPONENT());
47
+ _addServiceTargetWithRole(DISTRIBUTION());
48
+ _addServiceTargetWithRole(ORACLE());
49
+ _addServiceTargetWithRole(POOL());
50
+ _addServiceTargetWithRole(BUNDLE());
51
+ _addServiceTargetWithRole(RISK());
52
+ _addServiceTargetWithRole(APPLICATION());
53
+ _addServiceTargetWithRole(POLICY());
54
+ _addServiceTargetWithRole(CLAIM());
55
+ }
56
+
57
+
58
+ function _setupTargetAuthorizations()
59
+ internal
60
+ override
61
+ {
62
+ _setupInstanceAuthorization();
63
+ _setupInstanceAdminAuthorization();
64
+ _setupInstanceStoreAuthorization();
65
+ _setupBundleSetAuthorization();
66
+ _setUpRiskSetAuthorization();
67
+ }
68
+
69
+
70
+ function _setupBundleSetAuthorization()
71
+ internal
72
+ {
73
+ IAccess.FunctionInfo[] storage functions;
74
+
75
+ // authorize bundle service role
76
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
77
+ _authorize(functions, BundleSet.add.selector, "add");
78
+ _authorize(functions, BundleSet.lock.selector, "lock");
79
+ _authorize(functions, BundleSet.unlock.selector, "unlock");
80
+
81
+ // authorize bundle service role
82
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
83
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
84
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
85
+ }
86
+
87
+ function _setUpRiskSetAuthorization()
88
+ internal
89
+ {
90
+ IAccess.FunctionInfo[] storage functions;
91
+
92
+ // authorize risk service role
93
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
94
+ _authorize(functions, RiskSet.add.selector, "add");
95
+ _authorize(functions, RiskSet.pause.selector, "pause");
96
+ _authorize(functions, RiskSet.activate.selector, "activate");
97
+
98
+ // authorize policy service role
99
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
100
+ _authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
101
+ _authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
102
+ }
103
+
104
+
105
+ function _setupInstanceAuthorization()
106
+ internal
107
+ {
108
+ IAccess.FunctionInfo[] storage functions;
109
+
110
+ // authorize instance service role
111
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
112
+ _authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
113
+
114
+ // authorize component service role
115
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(COMPONENT()));
116
+ _authorize(functions, Instance.setLockedFromService.selector, "setLockedFromService");
117
+ }
118
+
119
+
120
+ function _setupInstanceAdminAuthorization()
121
+ internal
122
+ {
123
+ IAccess.FunctionInfo[] storage functions;
124
+
125
+ // authorize instance role
126
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getComponentRole(INSTANCE()));
127
+ _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
128
+
129
+ // authorize component service role
130
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
131
+ _authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
132
+ }
133
+
134
+
135
+ function _setupInstanceStoreAuthorization()
136
+ internal
137
+ {
138
+ IAccess.FunctionInfo[] storage functions;
139
+
140
+ // authorize accounting service role
141
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
142
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
143
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
144
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
145
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
146
+
147
+ // authorize component service role
148
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
149
+ _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
150
+ _authorize(functions, InstanceStore.updateComponent.selector, "updateComponent");
151
+ _authorize(functions, InstanceStore.createPool.selector, "createPool");
152
+ _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
153
+ _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
154
+ _authorize(functions, InstanceStore.createFee.selector, "createFee");
155
+ _authorize(functions, InstanceStore.updateFee.selector, "updateFee");
156
+
157
+ // authorize distribution service role
158
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
159
+ _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
160
+ _authorize(functions, InstanceStore.updateDistributorType.selector, "updateDistributorType");
161
+ _authorize(functions, InstanceStore.updateDistributorTypeState.selector, "updateDistributorTypeState");
162
+ _authorize(functions, InstanceStore.createDistributor.selector, "createDistributor");
163
+ _authorize(functions, InstanceStore.updateDistributor.selector, "updateDistributor");
164
+ _authorize(functions, InstanceStore.updateDistributorState.selector, "updateDistributorState");
165
+ _authorize(functions, InstanceStore.createReferral.selector, "createReferral");
166
+ _authorize(functions, InstanceStore.updateReferral.selector, "updateReferral");
167
+ _authorize(functions, InstanceStore.updateReferralState.selector, "updateReferralState");
168
+
169
+ // authorize oracle service role
170
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ORACLE()));
171
+ _authorize(functions, InstanceStore.createRequest.selector, "createRequest");
172
+ _authorize(functions, InstanceStore.updateRequest.selector, "updateRequest");
173
+ _authorize(functions, InstanceStore.updateRequestState.selector, "updateRequestState");
174
+
175
+ // authorize pool service role
176
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POOL()));
177
+ _authorize(functions, InstanceStore.updatePool.selector, "updatePool");
178
+
179
+ // authorize bundle service role
180
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(BUNDLE()));
181
+ _authorize(functions, InstanceStore.createBundle.selector, "createBundle");
182
+ _authorize(functions, InstanceStore.updateBundle.selector, "updateBundle");
183
+ _authorize(functions, InstanceStore.updateBundleState.selector, "updateBundleState");
184
+ _authorize(functions, InstanceStore.increaseLocked.selector, "increaseLocked");
185
+ _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
186
+
187
+ // authorize product service role
188
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
189
+ _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
190
+ _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
191
+ _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
192
+
193
+ // authorize application service role
194
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(APPLICATION()));
195
+ _authorize(functions, InstanceStore.createApplication.selector, "createApplication");
196
+ _authorize(functions, InstanceStore.updateApplication.selector, "updateApplication");
197
+ _authorize(functions, InstanceStore.updateApplicationState.selector, "updateApplicationState");
198
+
199
+ // authorize policy service role
200
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
201
+ _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
202
+ _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
203
+ _authorize(functions, InstanceStore.createPremium.selector, "createPremium");
204
+ _authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
205
+
206
+ // authorize claim service role
207
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
208
+ _authorize(functions, InstanceStore.updatePolicyClaims.selector, "updatePolicyClaims");
209
+ _authorize(functions, InstanceStore.createClaim.selector, "createClaim");
210
+ _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
211
+ _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
212
+ _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
213
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
214
+ }
215
+ }
216
+