@etherisc/gif-next 0.0.2-8459327 → 0.0.2-8469187-381

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 (663) hide show
  1. package/README.md +222 -77
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -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 +817 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +939 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +838 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  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 +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -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 +1429 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +734 -451
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1102 -0
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +810 -530
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2526 -0
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1348 -0
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +792 -0
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  108. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  109. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  110. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  111. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  112. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  113. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  114. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  115. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  116. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  117. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  118. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  120. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  122. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  124. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  126. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  128. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  130. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  131. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  132. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  134. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  136. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  138. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  140. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  142. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  144. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  145. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  146. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  148. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  149. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  150. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  151. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  152. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  153. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  154. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  156. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  157. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  158. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  160. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  161. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  162. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  163. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  164. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  166. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  168. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  170. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  171. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  172. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  173. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  174. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  175. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  176. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  177. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  178. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +665 -0
  180. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  182. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  183. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  184. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  186. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  187. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  188. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  190. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  191. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  192. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  193. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  194. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  195. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  196. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  198. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1055 -113
  200. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  201. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
  202. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  204. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  206. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/Registry.sol/Registry.json +1543 -176
  208. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  210. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  211. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  212. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  213. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
  214. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  215. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +793 -0
  216. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  218. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  220. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  221. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  222. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  223. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  224. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  225. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  226. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  227. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  228. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  230. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  235. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  236. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  238. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  239. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  240. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +620 -0
  242. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  244. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  245. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  246. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  248. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  249. package/artifacts/contracts/{registry/IRegistry.sol/IRegisterable.json → shared/INftOwnable.sol/INftOwnable.json} +72 -72
  250. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  251. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  252. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  253. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +179 -158
  254. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  255. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  256. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  257. package/artifacts/contracts/shared/IService.sol/IService.json +428 -0
  258. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  259. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  260. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  261. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  262. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  264. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  266. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
  268. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  270. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +397 -0
  272. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  274. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  275. package/artifacts/contracts/shared/Service.sol/Service.json +482 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  280. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  282. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  284. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  286. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  287. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  288. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  289. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  303. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  306. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  307. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  308. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  310. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
  312. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  314. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  316. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  318. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  320. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  322. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  324. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  326. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  328. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  330. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  332. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  334. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  336. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  338. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  340. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  342. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  344. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  346. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  348. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  350. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  352. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  354. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  356. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  358. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  360. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  362. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  363. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  364. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  365. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  366. package/contracts/accounting/AccountingService.sol +274 -0
  367. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  368. package/contracts/accounting/IAccountingService.sol +47 -0
  369. package/contracts/authorization/AccessAdmin.sol +679 -0
  370. package/contracts/authorization/AccessAdminLib.sol +678 -0
  371. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  372. package/contracts/authorization/Authorization.sol +190 -0
  373. package/contracts/authorization/IAccess.sol +66 -0
  374. package/contracts/authorization/IAccessAdmin.sol +142 -0
  375. package/contracts/authorization/IAuthorization.sol +26 -0
  376. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  377. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  378. package/contracts/distribution/BasicDistribution.sol +140 -0
  379. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  380. package/contracts/distribution/Distribution.sol +245 -0
  381. package/contracts/distribution/DistributionService.sol +448 -0
  382. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  383. package/contracts/distribution/IDistributionComponent.sol +45 -0
  384. package/contracts/distribution/IDistributionService.sol +115 -0
  385. package/contracts/examples/fire/DamageLevel.sol +59 -0
  386. package/contracts/examples/fire/FirePool.sol +86 -0
  387. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  388. package/contracts/examples/fire/FireProduct.sol +433 -0
  389. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  390. package/contracts/examples/fire/FireUSD.sol +26 -0
  391. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  392. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  393. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  394. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  395. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  396. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  397. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  398. package/contracts/instance/BaseStore.sol +93 -0
  399. package/contracts/instance/BundleSet.sol +130 -0
  400. package/contracts/instance/IBaseStore.sol +37 -0
  401. package/contracts/instance/IInstance.sol +155 -17
  402. package/contracts/instance/IInstanceService.sol +119 -0
  403. package/contracts/instance/Instance.sol +335 -48
  404. package/contracts/instance/InstanceAdmin.sol +307 -0
  405. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  406. package/contracts/instance/InstanceReader.sol +606 -0
  407. package/contracts/instance/InstanceService.sol +514 -0
  408. package/contracts/instance/InstanceServiceManager.sol +39 -0
  409. package/contracts/instance/InstanceStore.sol +323 -0
  410. package/contracts/instance/ProductStore.sol +290 -0
  411. package/contracts/instance/RiskSet.sol +126 -0
  412. package/contracts/instance/TargetNames.sol +10 -0
  413. package/contracts/instance/base/BalanceStore.sol +121 -0
  414. package/contracts/instance/base/Cloneable.sol +28 -0
  415. package/contracts/instance/base/ObjectCounter.sol +20 -0
  416. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  417. package/contracts/instance/base/ObjectSet.sol +77 -0
  418. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  419. package/contracts/instance/module/IBundle.sol +21 -0
  420. package/contracts/instance/module/IComponents.sol +60 -0
  421. package/contracts/instance/module/IDistribution.sol +54 -0
  422. package/contracts/instance/module/IPolicy.sol +105 -0
  423. package/contracts/instance/module/IRisk.sol +16 -0
  424. package/contracts/mock/Dip.sol +26 -0
  425. package/contracts/oracle/BasicOracle.sol +44 -0
  426. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  427. package/contracts/oracle/IOracle.sol +41 -0
  428. package/contracts/oracle/IOracleComponent.sol +33 -0
  429. package/contracts/oracle/IOracleService.sol +66 -0
  430. package/contracts/oracle/Oracle.sol +152 -0
  431. package/contracts/oracle/OracleService.sol +310 -0
  432. package/contracts/oracle/OracleServiceManager.sol +39 -0
  433. package/contracts/pool/BasicPool.sol +161 -0
  434. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  435. package/contracts/pool/BundleService.sol +386 -0
  436. package/contracts/pool/BundleServiceManager.sol +39 -0
  437. package/contracts/pool/IBundleService.sol +116 -0
  438. package/contracts/pool/IPoolComponent.sol +62 -0
  439. package/contracts/pool/IPoolService.sol +170 -0
  440. package/contracts/pool/Pool.sol +331 -0
  441. package/contracts/pool/PoolLib.sol +341 -0
  442. package/contracts/pool/PoolService.sol +614 -0
  443. package/contracts/pool/PoolServiceManager.sol +39 -0
  444. package/contracts/product/ApplicationService.sol +327 -0
  445. package/contracts/product/ApplicationServiceManager.sol +38 -0
  446. package/contracts/product/BasicProduct.sol +48 -0
  447. package/contracts/product/BasicProductAuthorization.sol +63 -0
  448. package/contracts/product/ClaimService.sol +626 -0
  449. package/contracts/product/ClaimServiceManager.sol +38 -0
  450. package/contracts/product/IApplicationService.sol +88 -0
  451. package/contracts/product/IClaimService.sol +136 -0
  452. package/contracts/product/IPolicyService.sol +102 -0
  453. package/contracts/product/IPricingService.sol +40 -0
  454. package/contracts/product/IProductComponent.sol +62 -0
  455. package/contracts/product/IRiskService.sol +48 -0
  456. package/contracts/product/PolicyService.sol +645 -0
  457. package/contracts/product/PolicyServiceLib.sol +139 -0
  458. package/contracts/product/PolicyServiceManager.sol +39 -0
  459. package/contracts/product/PricingService.sol +306 -0
  460. package/contracts/product/PricingServiceManager.sol +39 -0
  461. package/contracts/product/Product.sol +491 -0
  462. package/contracts/product/RiskService.sol +189 -0
  463. package/contracts/product/RiskServiceManager.sol +39 -0
  464. package/contracts/registry/ChainNft.sol +175 -61
  465. package/contracts/registry/IRegistry.sol +143 -51
  466. package/contracts/registry/IRegistryService.sol +62 -0
  467. package/contracts/registry/IRelease.sol +29 -0
  468. package/contracts/registry/ITransferInterceptor.sol +6 -0
  469. package/contracts/registry/Registry.sol +667 -140
  470. package/contracts/registry/RegistryAdmin.sol +173 -0
  471. package/contracts/registry/RegistryAuthorization.sol +337 -0
  472. package/contracts/registry/RegistryService.sol +241 -0
  473. package/contracts/registry/RegistryServiceManager.sol +53 -0
  474. package/contracts/registry/ReleaseAdmin.sol +199 -0
  475. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  476. package/contracts/registry/ReleaseRegistry.sol +525 -0
  477. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  478. package/contracts/registry/TokenRegistry.sol +317 -0
  479. package/contracts/shared/Component.sol +210 -0
  480. package/contracts/shared/ComponentService.sol +691 -0
  481. package/contracts/shared/ComponentServiceManager.sol +38 -0
  482. package/contracts/shared/ContractLib.sol +312 -0
  483. package/contracts/shared/IComponent.sol +58 -0
  484. package/contracts/shared/IComponentService.sol +111 -0
  485. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  486. package/contracts/shared/ILifecycle.sol +31 -0
  487. package/contracts/shared/INftOwnable.sol +27 -0
  488. package/contracts/shared/IPolicyHolder.sol +35 -0
  489. package/contracts/shared/IRegisterable.sol +36 -0
  490. package/contracts/shared/IRegistryLinked.sol +11 -0
  491. package/contracts/shared/IService.sol +23 -0
  492. package/contracts/shared/InitializableERC165.sol +35 -0
  493. package/contracts/shared/InstanceLinkedComponent.sol +192 -0
  494. package/contracts/shared/Lifecycle.sol +88 -0
  495. package/contracts/shared/NftIdSet.sol +65 -0
  496. package/contracts/shared/NftOwnable.sol +129 -0
  497. package/contracts/shared/PolicyHolder.sol +63 -0
  498. package/contracts/shared/Registerable.sol +106 -0
  499. package/contracts/shared/RegistryLinked.sol +38 -0
  500. package/contracts/shared/Service.sol +67 -0
  501. package/contracts/shared/TokenHandler.sol +342 -0
  502. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  503. package/contracts/staking/IStaking.sol +366 -0
  504. package/contracts/staking/IStakingService.sol +127 -0
  505. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  506. package/contracts/staking/Staking.sol +797 -0
  507. package/contracts/staking/StakingLib.sol +195 -0
  508. package/contracts/staking/StakingManager.sol +53 -0
  509. package/contracts/staking/StakingReader.sol +171 -0
  510. package/contracts/staking/StakingService.sol +321 -0
  511. package/contracts/staking/StakingServiceManager.sol +46 -0
  512. package/contracts/staking/StakingStore.sol +1368 -0
  513. package/contracts/staking/TargetHandler.sol +132 -0
  514. package/contracts/staking/TargetManagerLib.sol +234 -0
  515. package/contracts/type/AddressSet.sol +58 -0
  516. package/contracts/type/Amount.sol +154 -0
  517. package/contracts/{types → type}/Blocknumber.sol +38 -19
  518. package/contracts/type/ChainId.sol +101 -0
  519. package/contracts/type/ClaimId.sol +80 -0
  520. package/contracts/type/DistributorType.sol +55 -0
  521. package/contracts/type/Fee.sol +66 -0
  522. package/contracts/type/Key32.sol +50 -0
  523. package/contracts/type/Key32Set.sol +62 -0
  524. package/contracts/type/NftId.sol +85 -0
  525. package/contracts/type/NftIdSet.sol +62 -0
  526. package/contracts/type/ObjectType.sol +307 -0
  527. package/contracts/type/PayoutId.sol +82 -0
  528. package/contracts/type/Referral.sol +90 -0
  529. package/contracts/type/RequestId.sol +75 -0
  530. package/contracts/type/RiskId.sol +75 -0
  531. package/contracts/type/RoleId.sol +180 -0
  532. package/contracts/type/Seconds.sol +120 -0
  533. package/contracts/type/Selector.sol +107 -0
  534. package/contracts/type/StateId.sol +149 -0
  535. package/contracts/type/String.sol +65 -0
  536. package/contracts/{types → type}/Timestamp.sol +53 -12
  537. package/contracts/{types → type}/UFixed.sol +97 -39
  538. package/contracts/type/Version.sol +159 -0
  539. package/contracts/upgradeability/IVersionable.sol +56 -0
  540. package/contracts/upgradeability/ProxyManager.sol +246 -0
  541. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  542. package/contracts/upgradeability/Versionable.sol +62 -0
  543. package/package.json +22 -8
  544. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  545. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  546. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  547. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  548. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  549. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  550. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  551. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  552. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  553. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  554. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  555. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  556. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  558. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  560. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  562. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  564. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  566. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  568. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  570. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  572. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  574. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  576. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  578. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  580. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  581. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  582. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  583. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  584. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  585. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  586. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  587. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  588. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  589. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  591. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  592. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  593. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  594. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  595. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  596. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  597. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  598. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  599. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  600. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  601. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  602. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  604. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  605. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  606. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  607. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  608. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  609. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  610. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  611. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  613. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  614. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  615. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  617. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  618. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  619. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  620. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  621. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  622. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  623. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  624. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  625. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  626. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  628. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  630. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  632. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  634. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  636. package/contracts/components/Component.sol +0 -60
  637. package/contracts/components/IPool.sol +0 -9
  638. package/contracts/components/IProduct.sol +0 -9
  639. package/contracts/components/Pool.sol +0 -22
  640. package/contracts/components/Product.sol +0 -55
  641. package/contracts/experiment/errors/Require.sol +0 -38
  642. package/contracts/experiment/errors/Revert.sol +0 -44
  643. package/contracts/experiment/inheritance/A.sol +0 -53
  644. package/contracts/experiment/inheritance/B.sol +0 -28
  645. package/contracts/experiment/inheritance/C.sol +0 -34
  646. package/contracts/experiment/inheritance/IA.sol +0 -13
  647. package/contracts/experiment/inheritance/IB.sol +0 -10
  648. package/contracts/experiment/inheritance/IC.sol +0 -12
  649. package/contracts/experiment/types/TypeA.sol +0 -47
  650. package/contracts/experiment/types/TypeB.sol +0 -29
  651. package/contracts/instance/access/Access.sol +0 -165
  652. package/contracts/instance/access/IAccess.sol +0 -63
  653. package/contracts/instance/component/ComponentModule.sol +0 -213
  654. package/contracts/instance/component/IComponent.sol +0 -73
  655. package/contracts/instance/policy/IPolicy.sol +0 -51
  656. package/contracts/instance/policy/PolicyModule.sol +0 -91
  657. package/contracts/instance/pool/IPoolModule.sol +0 -29
  658. package/contracts/instance/pool/PoolModule.sol +0 -73
  659. package/contracts/instance/product/IProductService.sol +0 -36
  660. package/contracts/instance/product/ProductService.sol +0 -112
  661. package/contracts/registry/IChainNft.sol +0 -21
  662. package/contracts/types/ChainId.sol +0 -38
  663. package/contracts/types/NftId.sol +0 -51
@@ -1,64 +1,351 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {Registerable} from "../registry/Registry.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IInstance} from "./IInstance.sol";
6
+ import {IComponentService} from "../shared/IComponentService.sol";
7
+ import {IInstanceService} from "./IInstanceService.sol";
5
8
  import {IRegistry} from "../registry/IRegistry.sol";
6
9
 
7
- import {IAccessModule, AccessModule} from "./access/Access.sol";
8
- import {ComponentModule} from "./component/ComponentModule.sol";
9
- import {ProductModule} from "./product/ProductService.sol";
10
- import {PolicyModule} from "./policy/PolicyModule.sol";
11
- import {PoolModule} from "./pool/PoolModule.sol";
12
-
13
- import {IInstance} from "./IInstance.sol";
14
- import {NftId, toNftId} from "../types/NftId.sol";
10
+ import {Amount} from "../type/Amount.sol";
11
+ import {BundleSet} from "./BundleSet.sol";
12
+ import {RiskSet} from "./RiskSet.sol";
13
+ import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
14
+ import {InstanceReader} from "./InstanceReader.sol";
15
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
16
+ import {InstanceStore} from "./InstanceStore.sol";
17
+ import {NftId} from "../type/NftId.sol";
18
+ import {ProductStore} from "./ProductStore.sol";
19
+ import {Registerable} from "../shared/Registerable.sol";
20
+ import {RoleId} from "../type/RoleId.sol";
21
+ import {Seconds} from "../type/Seconds.sol";
22
+ import {UFixed} from "../type/UFixed.sol";
23
+ import {VersionPart} from "../type/Version.sol";
15
24
 
16
25
  contract Instance is
17
- Registerable,
18
- AccessModule,
19
- ComponentModule,
20
- PolicyModule,
21
- PoolModule,
22
- ProductModule,
23
- IInstance
26
+ IInstance,
27
+ Registerable
24
28
  {
25
- constructor(
26
- address registry,
27
- address componentOwnerService,
28
- address productService
29
+ bool private _initialized;
30
+
31
+ IComponentService internal _componentService;
32
+ IInstanceService internal _instanceService;
33
+
34
+ InstanceAdmin internal _instanceAdmin;
35
+ InstanceReader internal _instanceReader;
36
+ BundleSet internal _bundleSet;
37
+ RiskSet internal _riskSet;
38
+ InstanceStore internal _instanceStore;
39
+ ProductStore internal _productStore;
40
+ NftId [] internal _products;
41
+ bool internal _tokenRegistryDisabled;
42
+
43
+
44
+ modifier onlyCustomRoleAdmin(RoleId roleId) {
45
+ if (!_instanceAdmin.isRoleCustom(roleId)) {
46
+ revert ErrorInstanceNotCustomRole(roleId);
47
+ }
48
+
49
+ // instance owner can always act as role admin
50
+ address account = msg.sender;
51
+ if (account != getOwner()) {
52
+ if (!_instanceAdmin.isRoleAdmin(roleId, account)) {
53
+ revert ErrorInstanceNotRoleAdmin(roleId, account);
54
+ }
55
+ }
56
+ _;
57
+ }
58
+
59
+
60
+ function initialize(
61
+ InstanceContracts memory instanceContracts,
62
+ IRegistry registry,
63
+ VersionPart release,
64
+ address initialOwner,
65
+ bool tokenRegistryDisabled // only disable for testing
66
+ )
67
+ external
68
+ initializer()
69
+ {
70
+ if(address(instanceContracts.instanceAdmin) == address(0)) {
71
+ revert ErrorInstanceInstanceAdminZero();
72
+ }
73
+
74
+ _instanceAdmin = instanceContracts.instanceAdmin;
75
+
76
+ // setup instance object info
77
+ __Registerable_init({
78
+ authority: instanceContracts.instanceAdmin.authority(),
79
+ registry: address(registry),
80
+ parentNftId: registry.getNftId(),
81
+ objectType: INSTANCE(),
82
+ isInterceptor: false,
83
+ initialOwner: initialOwner,
84
+ data: ""});
85
+
86
+ // store instance supporting contracts
87
+ _instanceStore = instanceContracts.instanceStore;
88
+ _productStore = instanceContracts.productStore;
89
+ _bundleSet = instanceContracts.bundleSet;
90
+ _riskSet = instanceContracts.riskSet;
91
+ _instanceReader = instanceContracts.instanceReader;
92
+
93
+ // initialize instance supporting contracts
94
+ _instanceStore.initialize();
95
+ _productStore.initialize();
96
+ _bundleSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
97
+ _riskSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
98
+ _instanceReader.initialize();
99
+
100
+ _componentService = IComponentService(
101
+ getRegistry().getServiceAddress(
102
+ COMPONENT(),
103
+ release));
104
+
105
+ _instanceService = IInstanceService(
106
+ getRegistry().getServiceAddress(
107
+ INSTANCE(),
108
+ release));
109
+
110
+ _tokenRegistryDisabled = tokenRegistryDisabled;
111
+
112
+ _registerInterface(type(IInstance).interfaceId);
113
+ }
114
+
115
+
116
+ function setInstanceLocked(bool locked)
117
+ external
118
+ // not restricted(): need to be able to unlock a locked instance
119
+ onlyOwner()
120
+ {
121
+ _instanceService.setInstanceLocked(locked);
122
+ }
123
+
124
+
125
+ function upgradeInstanceReader()
126
+ external
127
+ restricted()
128
+ onlyOwner()
129
+ {
130
+ _instanceService.upgradeInstanceReader();
131
+ }
132
+
133
+
134
+ //--- ProductRegistration ----------------------------------------------//
135
+
136
+ function registerProduct(address product, address token)
137
+ external
138
+ restricted()
139
+ onlyOwner()
140
+ returns (NftId productNftId)
141
+ {
142
+ productNftId = _componentService.registerProduct(product, token);
143
+ _products.push(productNftId);
144
+ }
145
+
146
+ //--- Staking ----------------------------------------------------------//
147
+
148
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
149
+ external
150
+ restricted()
151
+ onlyOwner()
152
+ {
153
+ _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
154
+ }
155
+
156
+ function setStakingRewardRate(UFixed rewardRate)
157
+ external
158
+ restricted()
159
+ onlyOwner()
160
+ {
161
+ _instanceService.setStakingRewardRate(rewardRate);
162
+ }
163
+
164
+ function setStakingMaxAmount(Amount maxStakedAmount)
165
+ external
166
+ restricted()
167
+ onlyOwner()
168
+ {
169
+ _instanceService.setStakingMaxAmount(maxStakedAmount);
170
+ }
171
+
172
+ function refillStakingRewardReserves(Amount dipAmount)
173
+ external
174
+ restricted()
175
+ onlyOwner()
176
+ returns (Amount newRewardReserveBalance)
177
+ {
178
+ address instanceOwner = msg.sender;
179
+ return _instanceService.refillInstanceRewardReserves(instanceOwner, dipAmount);
180
+ }
181
+
182
+ function withdrawStakingRewardReserves(Amount dipAmount)
183
+ external
184
+ restricted()
185
+ onlyOwner()
186
+ returns (Amount newRewardReserveBalance)
187
+ {
188
+ return _instanceService.withdrawInstanceRewardReserves(dipAmount);
189
+ }
190
+
191
+ //--- Roles ------------------------------------------------------------//
192
+
193
+ /// @inheritdoc IInstance
194
+ function createRole(
195
+ string memory roleName,
196
+ RoleId adminRoleId,
197
+ uint32 maxMemberCount
29
198
  )
30
- Registerable(registry)
31
- AccessModule()
32
- ComponentModule(componentOwnerService)
33
- PolicyModule(productService)
34
- ProductModule(productService)
35
- PoolModule(productService)
36
- {}
199
+ external
200
+ restricted()
201
+ onlyOwner()
202
+ returns (RoleId roleId)
203
+ {
204
+ roleId = _instanceService.createRole(roleName, adminRoleId, maxMemberCount);
205
+ emit LogInstanceCustomRoleCreated(roleId, roleName, adminRoleId, maxMemberCount);
206
+ }
207
+
208
+
209
+ /// @inheritdoc IInstance
210
+ function setRoleActive(RoleId roleId, bool active)
211
+ external
212
+ restricted()
213
+ onlyCustomRoleAdmin(roleId)
214
+ {
215
+ _instanceService.setRoleActive(roleId, active);
216
+ emit LogInstanceCustomRoleActiveSet(roleId, active, msg.sender);
217
+ }
218
+
219
+
220
+ /// @inheritdoc IInstance
221
+ function grantRole(RoleId roleId, address account)
222
+ external
223
+ restricted()
224
+ onlyCustomRoleAdmin(roleId)
225
+ {
226
+ _instanceService.grantRole(roleId, account);
227
+ emit LogInstanceCustomRoleGranted(roleId, account, msg.sender);
228
+ }
229
+
230
+
231
+ /// @inheritdoc IInstance
232
+ function revokeRole(RoleId roleId, address account)
233
+ external
234
+ restricted()
235
+ onlyCustomRoleAdmin(roleId)
236
+ {
237
+ _instanceService.revokeRole(roleId, account);
238
+ emit LogInstanceCustomRoleRevoked(roleId, account, msg.sender);
239
+ }
240
+
241
+ //--- Targets ------------------------------------------------------------//
242
+
243
+ /// @inheritdoc IInstance
244
+ function createTarget(address target, string memory name)
245
+ external
246
+ restricted()
247
+ onlyOwner()
248
+ returns (RoleId targetRoleId)
249
+ {
250
+ targetRoleId = _instanceService.createTarget(target, name);
251
+ emit LogInstanceCustomTargetCreated(target, targetRoleId, name);
252
+ }
253
+
254
+
255
+ /// @inheritdoc IInstance
256
+ function setTargetLocked(address target, bool locked)
257
+ external
258
+ // not restricted(): instance owner may need to be able to unlock targets on an locked instance
259
+ onlyOwner()
260
+ {
261
+ _instanceService.setTargetLocked(target, locked);
262
+ emit LogInstanceTargetLocked(target, locked);
263
+ }
264
+
265
+
266
+ /// @inheritdoc IInstance
267
+ function authorizeFunctions(
268
+ address target,
269
+ RoleId roleId,
270
+ IAccess.FunctionInfo[] memory functions
271
+ )
272
+ external
273
+ restricted()
274
+ onlyOwner()
275
+ {
276
+ _instanceService.authorizeFunctions(target, roleId, functions);
277
+ }
278
+
279
+
280
+ /// @inheritdoc IInstance
281
+ function unauthorizeFunctions(
282
+ address target,
283
+ IAccess.FunctionInfo[] memory functions
284
+ )
285
+ external
286
+ restricted()
287
+ onlyOwner()
288
+ {
289
+ _instanceService.unauthorizeFunctions(target, functions);
290
+ }
291
+
292
+ //--- initial setup functions -------------------------------------------//
293
+
294
+
295
+ function setInstanceReader(InstanceReader instanceReader)
296
+ external
297
+ restricted()
298
+ {
299
+ if(instanceReader.getInstance() != Instance(this)) {
300
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
301
+ }
302
+
303
+ _instanceReader = instanceReader;
304
+ }
305
+
306
+ //--- external view functions -------------------------------------------//
307
+
308
+ function isInstanceLocked() external view returns (bool) {
309
+ return _instanceAdmin.isLocked();
310
+ }
311
+
312
+ function isTargetLocked(address target) external view returns (bool) {
313
+ return _instanceAdmin.isTargetLocked(target);
314
+ }
315
+
316
+ function products() external view returns (uint256 productCount) {
317
+ return _products.length;
318
+ }
319
+
320
+ function getProductNftId(uint256 idx) external view returns (NftId productNftId) {
321
+ return _products[idx];
322
+ }
323
+
324
+ function getInstanceReader() external view returns (InstanceReader) {
325
+ return _instanceReader;
326
+ }
327
+
328
+ function getBundleSet() external view returns (BundleSet) {
329
+ return _bundleSet;
330
+ }
331
+
332
+ function getRiskSet() external view returns (RiskSet) {
333
+ return _riskSet;
334
+ }
37
335
 
38
- // from registerable
39
- function register() external override returns (NftId nftId) {
40
- require(
41
- address(_registry) != address(0),
42
- "ERROR:PRD-001:REGISTRY_ZERO"
43
- );
44
- return _registry.register(address(this));
336
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
337
+ return _instanceAdmin;
45
338
  }
46
339
 
47
- // from registerable
48
- function getParentNftId() public view override returns (NftId) {
49
- // TODO add self registry and exchange 0 for_registry.getNftId();
50
- // define parent tree for all registerables
51
- // eg 0 <- chain(mainnet) <- global registry <- chain registry <- instance <- component <- policy/bundle
52
- return toNftId(0);
340
+ function getInstanceStore() external view returns (InstanceStore) {
341
+ return _instanceStore;
53
342
  }
54
343
 
55
- // from registerable
56
- function getType() external view override returns (uint256 objectType) {
57
- return _registry.INSTANCE();
344
+ function getProductStore() external view returns (ProductStore) {
345
+ return _productStore;
58
346
  }
59
347
 
60
- // from registerable
61
- function getData() external view override returns (bytes memory data) {
62
- return bytes(abi.encode(0));
348
+ function isTokenRegistryDisabled() external view returns (bool) {
349
+ return _tokenRegistryDisabled;
63
350
  }
64
- }
351
+ }
@@ -0,0 +1,307 @@
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 {IRegistry} from "../registry/IRegistry.sol";
7
+ import {IInstance} from "./IInstance.sol";
8
+
9
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
10
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
11
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
+ import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
13
+ import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
14
+ import {Str} from "../type/String.sol";
15
+ import {VersionPart} from "../type/Version.sol";
16
+ import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
17
+
18
+
19
+ contract InstanceAdmin is
20
+ AccessAdmin
21
+ {
22
+ // onlyInstanceService
23
+ error ErrorInstanceAdminNotInstanceService(address caller);
24
+
25
+ // authorizeFunctions
26
+ error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
27
+
28
+ IInstance internal _instance;
29
+ IRegistry internal _registry;
30
+
31
+ uint64 internal _customRoleIdNext;
32
+
33
+
34
+ modifier onlyInstanceService() {
35
+ if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
36
+ revert ErrorInstanceAdminNotInstanceService(msg.sender);
37
+ }
38
+ _;
39
+ }
40
+
41
+
42
+ /// @dev Only used for master instance admin.
43
+ constructor(address accessManager) {
44
+ initialize(
45
+ accessManager,
46
+ "MasterInstanceAdmin");
47
+ }
48
+
49
+
50
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
51
+ /// Important: Initialization of instance admin is only complete after calling this function.
52
+ /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
53
+ function completeSetup(
54
+ address registry,
55
+ address authorization,
56
+ VersionPart release,
57
+ address instance
58
+ )
59
+ external
60
+ reinitializer(uint64(release.toInt()))
61
+ {
62
+ // checks
63
+ AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
64
+
65
+ // effects
66
+ AccessManagerCloneable(
67
+ authority()).completeSetup(
68
+ registry,
69
+ release);
70
+
71
+ AccessAdminLib.checkAuthorization(
72
+ address(_authorization),
73
+ authorization,
74
+ INSTANCE(), // expectedDomain
75
+ release, // expectedRelease
76
+ false, // expectServiceAuthorization
77
+ true); // checkAlreadyInitialized
78
+
79
+ _registry = IRegistry(registry);
80
+ _instance = IInstance(instance);
81
+ _authorization = IAuthorization(authorization);
82
+ _customRoleIdNext = 0;
83
+
84
+ // link nft ownability to instance
85
+ _linkToNftOwnable(instance);
86
+
87
+ // setup roles and services
88
+ _createRoles(_authorization);
89
+ _setupServices(_authorization);
90
+
91
+ // setup instance targets
92
+ _createInstanceTargets(_authorization.getMainTargetName());
93
+
94
+ // authorize functions of instance contracts
95
+ _createTargetAuthorizations(_authorization);
96
+ }
97
+
98
+ /// @dev grants the service roles to the service addresses based on the authorization specification.
99
+ /// Service addresses used for the granting are determined by the registry and the release of this instance.
100
+ function _setupServices(IAuthorization authorization)
101
+ internal
102
+ {
103
+ ObjectType[] memory serviceDomains = authorization.getServiceDomains();
104
+
105
+ for(uint256 i = 0; i < serviceDomains.length; i++) {
106
+ ObjectType serviceDomain = serviceDomains[i];
107
+ RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
108
+ address service = _registry.getServiceAddress(serviceDomain, getRelease());
109
+
110
+ _grantRoleToAccount(
111
+ serviceRoleId,
112
+ service);
113
+ }
114
+ }
115
+
116
+
117
+ function _createInstanceTargets(string memory instanceTargetName)
118
+ internal
119
+ {
120
+ _createInstanceTarget(address(_instance), instanceTargetName);
121
+ _createInstanceTarget(address(this), INSTANCE_ADMIN_TARGET_NAME);
122
+ _createInstanceTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
123
+ _createInstanceTarget(address(_instance.getProductStore()), PRODUCT_STORE_TARGET_NAME);
124
+ _createInstanceTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
125
+ _createInstanceTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME);
126
+ }
127
+
128
+
129
+ function _createInstanceTarget(address target, string memory name) internal {
130
+ _createTarget(target, name, TargetType.Instance, true);
131
+ }
132
+
133
+
134
+ /// @dev Initializes the authorization for the specified component.
135
+ /// Important: The component MUST be registered.
136
+ function initializeComponentAuthorization(
137
+ address componentAddress,
138
+ ObjectType expectedType
139
+ )
140
+ external
141
+ restricted()
142
+ {
143
+ IAuthorization authorization = AccessAdminLib.checkComponentInitialization(
144
+ this, _authorization, componentAddress, expectedType);
145
+
146
+ // effects
147
+ _createRoles(authorization);
148
+ _createTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component, true);
149
+ _createTargetAuthorizations(authorization);
150
+ }
151
+
152
+
153
+ /// @dev Creates a custom role.
154
+ function createRole(
155
+ string memory name,
156
+ RoleId adminRoleId,
157
+ uint32 maxMemberCount
158
+ )
159
+ external
160
+ restricted()
161
+ returns (RoleId roleId)
162
+ {
163
+ // create roleId
164
+ roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
165
+
166
+ // create role
167
+ _createRole(
168
+ roleId,
169
+ AccessAdminLib.roleInfo(
170
+ adminRoleId,
171
+ IAccess.TargetType.Custom,
172
+ maxMemberCount,
173
+ name),
174
+ true); // revert on existing role
175
+ }
176
+
177
+
178
+ /// @dev Activtes/pauses the specified role.
179
+ function setRoleActive(RoleId roleId, bool active)
180
+ external
181
+ restricted()
182
+ {
183
+ _setRoleActive(roleId, active);
184
+ }
185
+
186
+
187
+ /// @dev Grants the provided role to the specified account
188
+ function grantRole(
189
+ RoleId roleId,
190
+ address account)
191
+ external
192
+ restricted()
193
+ {
194
+ _grantRoleToAccount(roleId, account);
195
+ }
196
+
197
+
198
+ /// @dev Revokes the provided role from the specified account
199
+ function revokeRole(
200
+ RoleId roleId,
201
+ address account)
202
+ external
203
+ restricted()
204
+ {
205
+ _revokeRoleFromAccount(roleId, account);
206
+ }
207
+
208
+
209
+ /// @dev Create a new contract target.
210
+ /// The target needs to be an access managed contract.
211
+ function createTarget(
212
+ address target,
213
+ string memory name
214
+ )
215
+ external
216
+ restricted()
217
+ returns (RoleId contractRoleId)
218
+ {
219
+ return _createTarget(
220
+ target,
221
+ name,
222
+ TargetType.Contract,
223
+ true); // check authority matches
224
+ }
225
+
226
+
227
+ /// @dev Add function authorizations for the specified component or custom target.
228
+ function authorizeFunctions(
229
+ address target,
230
+ RoleId roleId,
231
+ IAccess.FunctionInfo[] memory functions
232
+ )
233
+ external
234
+ restricted()
235
+ {
236
+ _authorizeTargetFunctions(target, roleId, functions, true, true);
237
+ }
238
+
239
+
240
+ /// @dev Removes function authorizations for the specified component or custom target.
241
+ function unauthorizeFunctions(
242
+ address target,
243
+ IAccess.FunctionInfo[] memory functions
244
+ )
245
+ external
246
+ restricted()
247
+ {
248
+ _authorizeTargetFunctions(target, ADMIN_ROLE(), functions, true, false);
249
+ }
250
+
251
+
252
+ /// @dev locks the instance and all its releated targets including component and custom targets.
253
+ function setInstanceLocked(bool locked)
254
+ external
255
+ // not restricted(): need to operate on locked instances to unlock instance
256
+ onlyInstanceService()
257
+ {
258
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
259
+ accessManager.setLocked(locked);
260
+ }
261
+
262
+
263
+ function setTargetLocked(address target, bool locked)
264
+ external
265
+ // not restricted(): need to operate on locked instances to unlock instance
266
+ onlyInstanceService()
267
+ {
268
+ _setTargetLocked(target, locked);
269
+ }
270
+
271
+
272
+ function setContractLocked(address target, bool locked)
273
+ external
274
+ restricted() // component service
275
+ {
276
+ _setTargetLocked(target, locked);
277
+ }
278
+
279
+
280
+ /// @dev Returns the instance authorization specification used to set up this instance admin.
281
+ function getInstanceAuthorization()
282
+ external
283
+ view
284
+ returns (IAuthorization instanceAuthorizaion)
285
+ {
286
+ return _authorization;
287
+ }
288
+
289
+ // ------------------- Internal functions ------------------- //
290
+
291
+
292
+ function _createTargetAuthorizations(IAuthorization authorization)
293
+ internal
294
+ {
295
+ Str[] memory targets = authorization.getTargets();
296
+ Str target;
297
+
298
+ for(uint256 i = 0; i < targets.length; i++) {
299
+ target = targets[i];
300
+ RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
301
+
302
+ for(uint256 j = 0; j < authorizedRoles.length; j++) {
303
+ _authorizeFunctions(authorization, target, authorizedRoles[j]);
304
+ }
305
+ }
306
+ }
307
+ }