@etherisc/gif-next 0.0.2-aad7ee0-660 → 0.0.2-aaf3274-107

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 (787) hide show
  1. package/README.md +212 -21
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{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 +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +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 +930 -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 +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +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 +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1050 -329
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +751 -139
  94. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  95. package/artifacts/contracts/instance/Instance.sol/Instance.json +598 -2790
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  97. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1999 -661
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +799 -216
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +413 -73
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  107. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  109. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  111. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  114. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  115. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +31 -8
  116. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  117. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  118. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  120. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  122. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  123. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  124. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  126. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  127. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  130. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  131. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  132. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  133. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  134. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  135. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -0
  136. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  137. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  138. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  139. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  140. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  141. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  142. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  143. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  144. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  145. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  146. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  148. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  149. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  150. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  151. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  152. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  153. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  154. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  156. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  157. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  158. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  159. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  160. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  161. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  162. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  163. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  164. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  165. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  166. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  167. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  168. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  170. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  171. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  172. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  173. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  174. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  175. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  176. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  177. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  178. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  179. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  180. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  182. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  183. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +404 -351
  184. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  185. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  186. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  187. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  188. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  189. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  190. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  191. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  192. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IRiskService.sol/IRiskService.json} +353 -249
  194. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  195. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  196. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  197. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  198. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  199. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  200. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  201. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  202. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  203. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  204. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  205. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  206. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  207. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  208. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  209. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  210. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  212. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +931 -154
  214. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +409 -209
  216. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  217. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  218. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  219. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  220. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  221. package/artifacts/contracts/registry/Registry.sol/Registry.json +1259 -258
  222. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  223. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  224. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  225. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  226. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -323
  228. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +384 -115
  230. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  231. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  232. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  234. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  235. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  236. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  237. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  238. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  239. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  240. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  241. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  242. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  244. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  246. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  250. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  253. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  254. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  255. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +303 -164
  256. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  257. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  258. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  259. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  260. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  262. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
  264. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  265. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  266. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
  268. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  269. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  270. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  271. package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
  272. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  273. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  274. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  275. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  276. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  277. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  278. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  279. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  280. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  281. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
  282. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  283. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  284. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  285. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
  286. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  287. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  288. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  289. package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  294. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  295. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  296. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  297. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  298. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  299. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  300. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  301. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  302. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  303. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  305. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  307. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  309. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  311. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  313. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  315. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  317. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  319. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  320. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  322. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  324. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  326. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  328. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  330. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  332. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  334. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  336. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  337. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  338. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  340. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  341. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  342. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +238 -0
  344. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  346. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  348. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  350. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  352. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  354. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  356. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  358. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  359. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  360. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  361. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  362. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  363. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  364. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  365. package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  368. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  369. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  370. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  371. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  372. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  373. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  374. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  375. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  376. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  377. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  378. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  379. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  380. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  382. package/contracts/accounting/AccountingService.sol +274 -0
  383. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  384. package/contracts/accounting/IAccountingService.sol +47 -0
  385. package/contracts/authorization/AccessAdmin.sol +780 -0
  386. package/contracts/authorization/AccessAdminLib.sol +396 -0
  387. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  388. package/contracts/authorization/Authorization.sol +169 -0
  389. package/contracts/authorization/IAccess.sol +67 -0
  390. package/contracts/authorization/IAccessAdmin.sol +144 -0
  391. package/contracts/authorization/IAuthorization.sol +26 -0
  392. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  393. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  394. package/contracts/distribution/BasicDistribution.sol +140 -0
  395. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  396. package/contracts/distribution/Distribution.sol +245 -0
  397. package/contracts/distribution/DistributionService.sol +448 -0
  398. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  399. package/contracts/distribution/IDistributionComponent.sol +45 -0
  400. package/contracts/distribution/IDistributionService.sol +115 -0
  401. package/contracts/examples/fire/DamageLevel.sol +59 -0
  402. package/contracts/examples/fire/FirePool.sol +86 -0
  403. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  404. package/contracts/examples/fire/FireProduct.sol +433 -0
  405. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  406. package/contracts/examples/fire/FireUSD.sol +26 -0
  407. package/contracts/examples/flight/FlightLib.sol +279 -0
  408. package/contracts/examples/flight/FlightOracle.sol +167 -0
  409. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  410. package/contracts/examples/flight/FlightPool.sol +89 -0
  411. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  412. package/contracts/examples/flight/FlightProduct.sol +470 -0
  413. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  414. package/contracts/examples/flight/FlightUSD.sol +26 -0
  415. package/contracts/examples/flight/originalV1.sol +396 -0
  416. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  417. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  418. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  419. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  420. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  421. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  422. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  423. package/contracts/instance/BaseStore.sol +93 -0
  424. package/contracts/instance/BundleSet.sol +130 -0
  425. package/contracts/instance/IBaseStore.sol +37 -0
  426. package/contracts/instance/IInstance.sol +142 -19
  427. package/contracts/instance/IInstanceService.sol +106 -17
  428. package/contracts/instance/Instance.sol +250 -341
  429. package/contracts/instance/InstanceAdmin.sol +379 -0
  430. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  431. package/contracts/instance/InstanceReader.sol +534 -190
  432. package/contracts/instance/InstanceService.sol +465 -89
  433. package/contracts/instance/InstanceServiceManager.sol +14 -31
  434. package/contracts/instance/InstanceStore.sol +323 -0
  435. package/contracts/instance/ProductStore.sol +290 -0
  436. package/contracts/instance/RiskSet.sol +126 -0
  437. package/contracts/instance/TargetNames.sol +10 -0
  438. package/contracts/instance/base/BalanceStore.sol +121 -0
  439. package/contracts/instance/base/Cloneable.sol +28 -0
  440. package/contracts/instance/base/ObjectCounter.sol +20 -0
  441. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  442. package/contracts/instance/base/ObjectSet.sol +77 -0
  443. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  444. package/contracts/instance/module/IBundle.sol +10 -8
  445. package/contracts/instance/module/IComponents.sol +60 -0
  446. package/contracts/instance/module/IDistribution.sol +25 -10
  447. package/contracts/instance/module/IPolicy.sol +81 -21
  448. package/contracts/instance/module/IRisk.sol +6 -1
  449. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  450. package/contracts/oracle/BasicOracle.sol +44 -0
  451. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  452. package/contracts/oracle/IOracle.sol +41 -0
  453. package/contracts/oracle/IOracleComponent.sol +33 -0
  454. package/contracts/oracle/IOracleService.sol +66 -0
  455. package/contracts/oracle/Oracle.sol +152 -0
  456. package/contracts/oracle/OracleService.sol +310 -0
  457. package/contracts/oracle/OracleServiceManager.sol +39 -0
  458. package/contracts/pool/BasicPool.sol +161 -0
  459. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  460. package/contracts/pool/BundleService.sol +386 -0
  461. package/contracts/pool/BundleServiceManager.sol +39 -0
  462. package/contracts/pool/IBundleService.sol +116 -0
  463. package/contracts/pool/IPoolComponent.sol +62 -0
  464. package/contracts/pool/IPoolService.sol +170 -0
  465. package/contracts/pool/Pool.sol +331 -0
  466. package/contracts/pool/PoolLib.sol +341 -0
  467. package/contracts/pool/PoolService.sol +614 -0
  468. package/contracts/pool/PoolServiceManager.sol +39 -0
  469. package/contracts/product/ApplicationService.sol +327 -0
  470. package/contracts/product/ApplicationServiceManager.sol +38 -0
  471. package/contracts/product/BasicProduct.sol +48 -0
  472. package/contracts/product/BasicProductAuthorization.sol +64 -0
  473. package/contracts/product/ClaimService.sol +626 -0
  474. package/contracts/product/ClaimServiceManager.sol +38 -0
  475. package/contracts/product/IApplicationService.sol +88 -0
  476. package/contracts/product/IClaimService.sol +136 -0
  477. package/contracts/product/IPolicyService.sol +102 -0
  478. package/contracts/product/IPricingService.sol +40 -0
  479. package/contracts/product/IProductComponent.sol +62 -0
  480. package/contracts/product/IRiskService.sol +48 -0
  481. package/contracts/product/PolicyService.sol +645 -0
  482. package/contracts/product/PolicyServiceLib.sol +139 -0
  483. package/contracts/product/PolicyServiceManager.sol +39 -0
  484. package/contracts/product/PricingService.sol +306 -0
  485. package/contracts/product/PricingServiceManager.sol +39 -0
  486. package/contracts/product/Product.sol +491 -0
  487. package/contracts/product/RiskService.sol +189 -0
  488. package/contracts/product/RiskServiceManager.sol +39 -0
  489. package/contracts/registry/ChainNft.sol +82 -35
  490. package/contracts/registry/IRegistry.sol +134 -20
  491. package/contracts/registry/IRegistryService.sol +44 -17
  492. package/contracts/registry/IRelease.sol +29 -0
  493. package/contracts/registry/ITransferInterceptor.sol +1 -1
  494. package/contracts/registry/Registry.sol +580 -267
  495. package/contracts/registry/RegistryAdmin.sol +191 -0
  496. package/contracts/registry/RegistryAuthorization.sol +336 -0
  497. package/contracts/registry/RegistryService.sol +123 -326
  498. package/contracts/registry/RegistryServiceManager.sol +27 -38
  499. package/contracts/registry/ReleaseAdmin.sol +195 -0
  500. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  501. package/contracts/registry/ReleaseRegistry.sol +525 -0
  502. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  503. package/contracts/registry/TokenRegistry.sol +317 -0
  504. package/contracts/shared/Component.sol +210 -0
  505. package/contracts/shared/ComponentService.sol +691 -0
  506. package/contracts/shared/ComponentServiceManager.sol +38 -0
  507. package/contracts/shared/ContractLib.sol +312 -0
  508. package/contracts/shared/IComponent.sol +58 -0
  509. package/contracts/shared/IComponentService.sol +111 -0
  510. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  511. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  512. package/contracts/shared/INftOwnable.sol +17 -12
  513. package/contracts/shared/IPolicyHolder.sol +35 -0
  514. package/contracts/shared/IRegisterable.sol +24 -5
  515. package/contracts/shared/IRegistryLinked.sol +11 -0
  516. package/contracts/shared/IService.sol +13 -5
  517. package/contracts/shared/InitializableERC165.sol +35 -0
  518. package/contracts/shared/InstanceLinkedComponent.sol +232 -0
  519. package/contracts/shared/Lifecycle.sol +88 -0
  520. package/contracts/shared/NftIdSet.sol +65 -0
  521. package/contracts/shared/NftOwnable.sol +77 -84
  522. package/contracts/shared/PolicyHolder.sol +63 -0
  523. package/contracts/shared/Registerable.sol +54 -37
  524. package/contracts/shared/RegistryLinked.sol +38 -0
  525. package/contracts/shared/Service.sol +46 -33
  526. package/contracts/shared/TokenHandler.sol +327 -12
  527. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  528. package/contracts/staking/IStaking.sol +367 -0
  529. package/contracts/staking/IStakingService.sol +127 -0
  530. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  531. package/contracts/staking/Staking.sol +797 -0
  532. package/contracts/staking/StakingLib.sol +195 -0
  533. package/contracts/staking/StakingManager.sol +53 -0
  534. package/contracts/staking/StakingReader.sol +171 -0
  535. package/contracts/staking/StakingService.sol +321 -0
  536. package/contracts/staking/StakingServiceManager.sol +46 -0
  537. package/contracts/staking/StakingStore.sol +1368 -0
  538. package/contracts/staking/TargetHandler.sol +132 -0
  539. package/contracts/staking/TargetManagerLib.sol +234 -0
  540. package/contracts/{types → type}/AddressSet.sol +1 -1
  541. package/contracts/type/Amount.sol +154 -0
  542. package/contracts/{types → type}/Blocknumber.sol +36 -12
  543. package/contracts/type/ChainId.sol +101 -0
  544. package/contracts/type/ClaimId.sol +80 -0
  545. package/contracts/{types → type}/DistributorType.sol +2 -2
  546. package/contracts/type/Fee.sol +66 -0
  547. package/contracts/{types → type}/Key32.sol +2 -2
  548. package/contracts/type/Key32Set.sol +62 -0
  549. package/contracts/{types → type}/NftId.sol +28 -15
  550. package/contracts/type/NftIdSet.sol +62 -0
  551. package/contracts/type/ObjectType.sol +278 -0
  552. package/contracts/type/PayoutId.sol +82 -0
  553. package/contracts/{types → type}/Referral.sol +12 -1
  554. package/contracts/type/RequestId.sol +75 -0
  555. package/contracts/type/RequestIdSet.sol +62 -0
  556. package/contracts/type/RiskId.sol +75 -0
  557. package/contracts/type/RoleId.sol +180 -0
  558. package/contracts/type/Seconds.sol +124 -0
  559. package/contracts/type/Selector.sol +107 -0
  560. package/contracts/{types → type}/StateId.sol +48 -4
  561. package/contracts/type/String.sol +95 -0
  562. package/contracts/{types → type}/Timestamp.sol +45 -20
  563. package/contracts/type/UFixed.sol +263 -0
  564. package/contracts/{types → type}/Version.sol +61 -6
  565. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  566. package/contracts/upgradeability/ProxyManager.sol +246 -0
  567. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  568. package/contracts/upgradeability/Versionable.sol +62 -0
  569. package/package.json +12 -8
  570. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  571. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
  572. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  573. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
  574. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  575. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
  576. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  577. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  578. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  579. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  580. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  581. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  582. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  583. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
  584. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  585. package/artifacts/contracts/components/Product.sol/Product.json +0 -754
  586. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  587. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  588. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  589. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  590. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  591. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  592. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  593. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  594. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  595. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  596. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  597. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  598. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  599. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  600. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  601. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  602. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  603. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  604. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  605. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  606. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  607. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  608. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  609. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  610. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  611. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  612. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  613. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  614. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  615. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  616. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  617. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  618. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  619. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  620. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  621. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  622. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  623. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  624. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  625. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  626. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  627. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  628. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  629. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  630. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  631. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -930
  632. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  633. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  634. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  635. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  636. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  637. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  638. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  639. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  640. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  641. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  642. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  643. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  644. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  645. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  646. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  647. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  648. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -617
  649. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  650. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  651. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  652. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  653. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  654. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  655. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  656. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  657. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  658. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  659. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  660. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  661. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  662. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  663. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  664. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  665. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  666. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  667. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  668. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  669. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  670. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  671. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  672. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  673. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  674. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  675. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  676. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  677. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  678. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  679. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  680. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  681. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  682. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  683. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  684. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  685. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  686. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  687. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  688. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  689. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  691. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  693. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  695. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  697. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  698. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  699. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  701. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  702. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  703. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  705. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  706. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  707. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  709. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  710. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  711. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  712. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  713. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  714. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  715. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  716. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  717. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  718. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  719. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  720. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  721. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  722. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  723. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  724. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  725. package/contracts/components/BaseComponent.sol +0 -86
  726. package/contracts/components/Distribution.sol +0 -166
  727. package/contracts/components/IBaseComponent.sol +0 -24
  728. package/contracts/components/IDistributionComponent.sol +0 -43
  729. package/contracts/components/IPoolComponent.sol +0 -62
  730. package/contracts/components/IProductComponent.sol +0 -35
  731. package/contracts/components/Pool.sol +0 -259
  732. package/contracts/components/Product.sol +0 -297
  733. package/contracts/experiment/cloning/Cloner.sol +0 -47
  734. package/contracts/experiment/errors/Require.sol +0 -38
  735. package/contracts/experiment/errors/Revert.sol +0 -44
  736. package/contracts/experiment/inheritance/A.sol +0 -53
  737. package/contracts/experiment/inheritance/B.sol +0 -28
  738. package/contracts/experiment/inheritance/C.sol +0 -34
  739. package/contracts/experiment/inheritance/IA.sol +0 -13
  740. package/contracts/experiment/inheritance/IB.sol +0 -10
  741. package/contracts/experiment/inheritance/IC.sol +0 -12
  742. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  743. package/contracts/experiment/statemachine/ISM.sol +0 -25
  744. package/contracts/experiment/statemachine/SM.sol +0 -57
  745. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  746. package/contracts/experiment/types/TypeA.sol +0 -47
  747. package/contracts/experiment/types/TypeB.sol +0 -29
  748. package/contracts/instance/AccessManagedSimple.sol +0 -122
  749. package/contracts/instance/AccessManagerSimple.sol +0 -692
  750. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  751. package/contracts/instance/InstanceAccessManager.sol +0 -288
  752. package/contracts/instance/base/ComponentServiceBase.sol +0 -39
  753. package/contracts/instance/base/IInstanceBase.sol +0 -23
  754. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  755. package/contracts/instance/base/KeyValueStore.sol +0 -172
  756. package/contracts/instance/base/Lifecycle.sol +0 -100
  757. package/contracts/instance/module/IAccess.sol +0 -38
  758. package/contracts/instance/module/ISetup.sol +0 -43
  759. package/contracts/instance/module/ITreasury.sol +0 -23
  760. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  761. package/contracts/instance/service/DistributionService.sol +0 -73
  762. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  763. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  764. package/contracts/instance/service/IDistributionService.sol +0 -12
  765. package/contracts/instance/service/IPoolService.sol +0 -37
  766. package/contracts/instance/service/IProductService.sol +0 -107
  767. package/contracts/shared/ContractDeployerLib.sol +0 -72
  768. package/contracts/shared/ERC165.sol +0 -21
  769. package/contracts/shared/ProxyManager.sol +0 -94
  770. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  771. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  772. package/contracts/shared/Versionable.sol +0 -147
  773. package/contracts/test/TestFee.sol +0 -25
  774. package/contracts/test/TestRegisterable.sol +0 -18
  775. package/contracts/test/TestRoleId.sol +0 -14
  776. package/contracts/test/TestService.sol +0 -24
  777. package/contracts/test/TestToken.sol +0 -26
  778. package/contracts/test/TestVersion.sol +0 -44
  779. package/contracts/test/TestVersionable.sol +0 -17
  780. package/contracts/types/ChainId.sol +0 -38
  781. package/contracts/types/Fee.sol +0 -56
  782. package/contracts/types/NftIdSet.sol +0 -60
  783. package/contracts/types/NumberId.sol +0 -52
  784. package/contracts/types/ObjectType.sol +0 -152
  785. package/contracts/types/RiskId.sol +0 -43
  786. package/contracts/types/RoleId.sol +0 -82
  787. package/contracts/types/UFixed.sol +0 -325
@@ -1,442 +1,351 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
-
7
- import {AccessManagedSimple} from "./AccessManagedSimple.sol";
8
- import {AccessManagerSimple} from "./AccessManagerSimple.sol";
9
- import {IAccess} from "./module/IAccess.sol";
10
- import {IBundle} from "./module/IBundle.sol";
11
- import {IPolicy} from "./module/IPolicy.sol";
12
- import {IRisk} from "./module/IRisk.sol";
13
- import {ISetup} from "./module/ISetup.sol";
14
- import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
15
- import {KeyValueStore} from "./base/KeyValueStore.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
16
5
  import {IInstance} from "./IInstance.sol";
6
+ import {IComponentService} from "../shared/IComponentService.sol";
7
+ import {IInstanceService} from "./IInstanceService.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+
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";
17
14
  import {InstanceReader} from "./InstanceReader.sol";
18
- import {NftId} from "../types/NftId.sol";
19
- import {NumberId} from "../types/NumberId.sol";
20
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
21
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
22
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
23
- import {StateId, ACTIVE} from "../types/StateId.sol";
24
- import {ERC165} from "../shared/ERC165.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";
25
19
  import {Registerable} from "../shared/Registerable.sol";
26
- import {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
27
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
28
- import {IDistributionService} from "./service/IDistributionService.sol";
29
- import {VersionPart} from "../types/Version.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";
30
24
 
31
25
  contract Instance is
32
- AccessManagedSimple,
33
- KeyValueStore,
34
26
  IInstance,
35
- ERC165,
36
27
  Registerable
37
28
  {
38
-
39
- uint64 public constant ADMIN_ROLE = type(uint64).min;
40
- uint64 public constant PUBLIC_ROLE = type(uint64).max;
41
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
42
-
43
- uint32 public constant EXECUTION_DELAY = 0;
44
-
45
29
  bool private _initialized;
46
30
 
47
- mapping(ShortString name => RoleId roleId) internal _role;
48
- mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
49
- RoleId [] internal _roles;
50
-
51
- mapping(ShortString name => address target) internal _target;
31
+ IComponentService internal _componentService;
32
+ IInstanceService internal _instanceService;
52
33
 
53
- AccessManagerSimple internal _accessManager;
34
+ InstanceAdmin internal _instanceAdmin;
54
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;
55
42
 
56
- constructor(address accessManagerAddress, address registryAddress, NftId registryNftId)
57
- AccessManagedSimple(accessManagerAddress)
58
- {
59
- initialize(accessManagerAddress, registryAddress, registryNftId, msg.sender);
60
- }
61
-
62
- function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner) public {
63
- require(!_initialized, "Contract instance has already been initialized");
64
-
65
- _accessManager = AccessManagerSimple(accessManagerAddress);
66
- _createRole(RoleIdLib.toRoleId(ADMIN_ROLE), "AdminRole", false, false);
67
- _createRole(RoleIdLib.toRoleId(PUBLIC_ROLE), "PublicRole", false, false);
68
43
 
69
- _initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
70
-
71
- _registerInterface(type(IInstance).interfaceId);
72
- _initialized = true;
73
- }
74
-
75
- //--- Role ------------------------------------------------------//
76
- function createStandardRole(RoleId roleId, string memory name) external restricted() {
77
- _createRole(roleId, name, false, true);
78
- }
79
-
80
- function createCustomRole(RoleId roleId, string memory name) external restricted() {
81
- _createRole(roleId, name, true, true);
82
- }
83
-
84
- function updateRole(RoleId roleId, string memory name, StateId newState) external restricted() {
85
- (bool isCustom,) = _validateRoleParameters(roleId, name, false);
86
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
87
- update(toRoleKey32(roleId), abi.encode(role), newState);
88
- }
89
-
90
- function updateRoleState(RoleId roleId, StateId newState) external restricted() {
91
- updateState(toRoleKey32(roleId), newState);
92
- }
93
-
94
- function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
95
- Key32 roleKey = toRoleKey32(roleId);
96
-
97
- if (!exists(roleKey)) {
98
- revert IAccess.ErrorGrantNonexstentRole(roleId);
99
- }
100
-
101
- if (getState(roleKey) != ACTIVE()) {
102
- revert IAccess.ErrorRoleIdNotActive(roleId);
44
+ modifier onlyCustomRoleAdmin(RoleId roleId) {
45
+ if (!_instanceAdmin.isRoleCustom(roleId)) {
46
+ revert ErrorInstanceNotCustomRole(roleId);
103
47
  }
104
48
 
105
- if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
106
- _accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
107
- EnumerableSet.add(_roleMembers[roleId], member);
108
- return true;
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
+ }
109
55
  }
110
-
111
- return false;
56
+ _;
112
57
  }
113
58
 
114
- function revokeRole(RoleId roleId, address member) external restricted() returns (bool revoked) {
115
- Key32 roleKey = toRoleKey32(roleId);
116
-
117
- if (!exists(roleKey)) {
118
- revert IAccess.ErrorRevokeNonexstentRole(roleId);
119
- }
120
59
 
121
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
122
- _accessManager.revokeRole(roleId.toInt(), member);
123
- EnumerableSet.remove(_roleMembers[roleId], member);
124
- return true;
125
- }
126
-
127
- return false;
128
- }
129
-
130
- /// @dev not restricted function by intention
131
- /// the restriction to role members is already enforced by the call to the access manger
132
- function renounceRole(RoleId roleId) external returns (bool revoked) {
133
- address member = msg.sender;
134
- Key32 roleKey = toRoleKey32(roleId);
135
-
136
- if (!exists(roleKey)) {
137
- revert IAccess.ErrorRenounceNonexstentRole(roleId);
138
- }
139
-
140
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
141
- _accessManager.renounceRole(roleId.toInt(), member);
142
- EnumerableSet.remove(_roleMembers[roleId], member);
143
- return true;
144
- }
145
-
146
- return false;
147
- }
148
-
149
- function roles() external view returns (uint256 numberOfRoles) {
150
- return _roles.length;
151
- }
152
-
153
- function getRoleId(uint256 idx) external view returns (RoleId roleId) {
154
- return _roles[idx];
155
- }
156
-
157
- function getRole(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
158
- return abi.decode(getData(roleId.toKey32()), (IAccess.RoleInfo));
159
- }
160
-
161
- function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
162
- return EnumerableSet.length(_roleMembers[roleId]);
163
- }
164
-
165
- function getRoleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
166
- return EnumerableSet.at(_roleMembers[roleId], idx);
167
- }
168
-
169
- function _createRole(RoleId roleId, string memory name, bool isCustom, bool validateParameters) internal {
170
- if (validateParameters) {
171
- _validateRoleParameters(roleId, name, isCustom);
172
- }
173
-
174
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
175
- _role[role.name] = roleId;
176
- _roles.push(roleId);
177
-
178
- create(toRoleKey32(roleId), abi.encode(role));
179
- }
180
-
181
- //--- Target ------------------------------------------------------//
182
- function createTarget(address target, IAccess.TargetInfo memory targetInfo) external restricted() {
183
- _validateTargetParameters(target, targetInfo);
184
- create(toTargetKey32(target), abi.encode(targetInfo));
185
- }
186
-
187
- function setTargetClosed(address target, bool closed) external restricted() {
188
- if (!exists(toTargetKey32(target))) {
189
- revert IAccess.ErrorTargetDoesNotExist(target);
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();
190
72
  }
191
73
 
192
- _accessManager.setTargetClosed(target, closed);
193
- }
194
-
195
- //--- ProductSetup ------------------------------------------------------//
196
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
197
- create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
198
- }
199
-
200
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
201
- update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
202
- }
203
-
204
- function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
205
- updateState(_toNftKey32(productNftId, PRODUCT()), newState);
206
- }
207
-
208
- //--- DistributionSetup ------------------------------------------------------//
209
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
210
- create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
211
- }
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;
212
111
 
213
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
214
- update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
215
- }
216
-
217
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
218
- updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
112
+ _registerInterface(type(IInstance).interfaceId);
219
113
  }
220
114
 
221
- //--- PoolSetup ------------------------------------------------------//
222
- function createPoolSetup(NftId distributionNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
223
- create(_toNftKey32(distributionNftId, POOL()), abi.encode(setup));
224
- }
225
115
 
226
- function updatePoolSetup(NftId distributionNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
227
- update(_toNftKey32(distributionNftId, POOL()), abi.encode(setup), newState);
228
- }
229
-
230
- function updatePoolSetupState(NftId distributionNftId, StateId newState) external restricted() {
231
- updateState(_toNftKey32(distributionNftId, POOL()), newState);
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);
232
122
  }
233
123
 
234
- //--- DistributorType ---------------------------------------------------//
235
- function createDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
236
- create(toPolicyKey32(policyNftId), abi.encode(payout));
237
- }
238
124
 
239
- function updateDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
240
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
125
+ function upgradeInstanceReader()
126
+ external
127
+ restricted()
128
+ onlyOwner()
129
+ {
130
+ _instanceService.upgradeInstanceReader();
241
131
  }
242
132
 
243
- function updateDistributorTypeState(NftId policyNftId, StateId newState) external restricted() {
244
- updateState(toPolicyKey32(policyNftId), newState);
245
- }
246
133
 
247
- //--- Distributor -------------------------------------------------------//
248
- function createDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
249
- create(toPolicyKey32(policyNftId), abi.encode(payout));
250
- }
134
+ //--- ProductRegistration ----------------------------------------------//
251
135
 
252
- function updateDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
253
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
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);
254
144
  }
255
145
 
256
- function updateDistributorState(NftId policyNftId, StateId newState) external restricted() {
257
- updateState(toPolicyKey32(policyNftId), newState);
258
- }
146
+ //--- Staking ----------------------------------------------------------//
259
147
 
260
- //--- Referral ----------------------------------------------------------//
261
- function createReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
262
- create(toPolicyKey32(policyNftId), abi.encode(payout));
148
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
149
+ external
150
+ restricted()
151
+ onlyOwner()
152
+ {
153
+ _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
263
154
  }
264
155
 
265
- function updateReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
266
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
156
+ function setStakingRewardRate(UFixed rewardRate)
157
+ external
158
+ restricted()
159
+ onlyOwner()
160
+ {
161
+ _instanceService.setStakingRewardRate(rewardRate);
267
162
  }
268
163
 
269
- function updateReferralState(NftId policyNftId, StateId newState) external restricted() {
270
- updateState(toPolicyKey32(policyNftId), newState);
164
+ function setStakingMaxAmount(Amount maxStakedAmount)
165
+ external
166
+ restricted()
167
+ onlyOwner()
168
+ {
169
+ _instanceService.setStakingMaxAmount(maxStakedAmount);
271
170
  }
272
171
 
273
- //--- Bundle ------------------------------------------------------------//
274
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
275
- create(toBundleKey32(bundleNftId), abi.encode(bundle));
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);
276
180
  }
277
181
 
278
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
279
- update(toBundleKey32(bundleNftId), abi.encode(bundle), newState);
182
+ function withdrawStakingRewardReserves(Amount dipAmount)
183
+ external
184
+ restricted()
185
+ onlyOwner()
186
+ returns (Amount newRewardReserveBalance)
187
+ {
188
+ return _instanceService.withdrawInstanceRewardReserves(dipAmount);
280
189
  }
281
190
 
282
- function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
283
- updateState(toBundleKey32(bundleNftId), newState);
284
- }
191
+ //--- Roles ------------------------------------------------------------//
285
192
 
286
- //--- Risk --------------------------------------------------------------//
287
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
288
- create(riskId.toKey32(), abi.encode(risk));
193
+ /// @inheritdoc IInstance
194
+ function createRole(
195
+ string memory roleName,
196
+ RoleId adminRoleId,
197
+ uint32 maxMemberCount
198
+ )
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);
289
206
  }
290
207
 
291
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
292
- update(riskId.toKey32(), abi.encode(risk), newState);
293
- }
294
208
 
295
- function updateRiskState(RiskId riskId, StateId newState) external restricted() {
296
- updateState(riskId.toKey32(), newState);
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);
297
217
  }
298
218
 
299
- //--- Policy ------------------------------------------------------------//
300
- function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external restricted() {
301
- create(toPolicyKey32(policyNftId), abi.encode(policy));
302
- }
303
219
 
304
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
305
- update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
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);
306
228
  }
307
229
 
308
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
309
- updateState(toPolicyKey32(policyNftId), newState);
310
- }
311
230
 
312
- //--- Claim -------------------------------------------------------------//
313
- function createClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
314
- create(toPolicyKey32(policyNftId), abi.encode(claim));
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);
315
239
  }
316
240
 
317
- function updateClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
318
- update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
319
- }
241
+ //--- Targets ------------------------------------------------------------//
320
242
 
321
- function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
322
- updateState(toPolicyKey32(policyNftId), newState);
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);
323
252
  }
324
253
 
325
- //--- Payout ------------------------------------------------------------//
326
- function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
327
- create(toPolicyKey32(policyNftId), abi.encode(payout));
328
- }
329
254
 
330
- function updateClaim(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
331
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
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);
332
263
  }
333
264
 
334
- function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
335
- updateState(toPolicyKey32(policyNftId), newState);
336
- }
337
265
 
338
- //--- internal view/pure functions --------------------------------------//
339
- function _toRole(RoleId roleId, string memory name, bool isCustom)
340
- internal
341
- pure
342
- returns (IAccess.RoleInfo memory role)
266
+ /// @inheritdoc IInstance
267
+ function authorizeFunctions(
268
+ address target,
269
+ RoleId roleId,
270
+ IAccess.FunctionInfo[] memory functions
271
+ )
272
+ external
273
+ restricted()
274
+ onlyOwner()
343
275
  {
344
- return IAccess.RoleInfo(
345
- ShortStrings.toShortString(name),
346
- isCustom);
276
+ _instanceService.authorizeFunctions(target, roleId, functions);
347
277
  }
348
278
 
349
- function _validateRoleParameters(
350
- RoleId roleId,
351
- string memory name,
352
- bool isCustom
279
+
280
+ /// @inheritdoc IInstance
281
+ function unauthorizeFunctions(
282
+ address target,
283
+ IAccess.FunctionInfo[] memory functions
353
284
  )
354
- internal
355
- view
356
- returns (
357
- bool roleExists,
358
- bool roleIsCustom
359
- )
285
+ external
286
+ restricted()
287
+ onlyOwner()
360
288
  {
361
- Key32 roleKey = toRoleKey32(roleId);
362
- roleExists = exists(roleKey);
363
- if (roleExists) {
364
- roleIsCustom = abi.decode(getData(roleKey), (IAccess.RoleInfo)).isCustom;
365
- } else {
366
- roleIsCustom = isCustom;
367
- }
289
+ _instanceService.unauthorizeFunctions(target, functions);
290
+ }
368
291
 
369
- // check role id
370
- uint64 roleIdInt = RoleId.unwrap(roleId);
371
- if(roleIdInt == ADMIN_ROLE || roleIdInt == PUBLIC_ROLE) {
372
- revert IAccess.ErrorRoleIdInvalid(roleId);
373
- }
292
+ //--- initial setup functions -------------------------------------------//
374
293
 
375
- if (roleIsCustom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
376
- revert IAccess.ErrorRoleIdTooSmall(roleId);
377
- } else if (roleIsCustom && roleIdInt >= CUSTOM_ROLE_ID_MIN) {
378
- revert IAccess.ErrorRoleIdTooBig(roleId);
379
- }
380
294
 
381
- // role name checks
382
- ShortString nameShort = ShortStrings.toShortString(name);
383
- if (ShortStrings.byteLength(nameShort) == 0) {
384
- revert IAccess.ErrorRoleNameEmpty(roleId);
295
+ function setInstanceReader(InstanceReader instanceReader)
296
+ external
297
+ restricted()
298
+ {
299
+ if(instanceReader.getInstance() != Instance(this)) {
300
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
385
301
  }
386
302
 
387
- if (_role[nameShort] != RoleIdLib.zero() && _role[nameShort] != roleId) {
388
- revert IAccess.ErrorRoleNameNotUnique(_role[nameShort], nameShort);
389
- }
303
+ _instanceReader = instanceReader;
390
304
  }
391
305
 
392
- function _validateTargetParameters(address target, IAccess.TargetInfo memory targetInfo) internal view {
306
+ //--- external view functions -------------------------------------------//
393
307
 
308
+ function isInstanceLocked() external view returns (bool) {
309
+ return _instanceAdmin.isLocked();
394
310
  }
395
311
 
396
- function toRoleKey32(RoleId roleId) public pure returns (Key32) {
397
- return roleId.toKey32();
312
+ function isTargetLocked(address target) external view returns (bool) {
313
+ return _instanceAdmin.isTargetLocked(target);
398
314
  }
399
315
 
400
- function toTargetKey32(address target) public pure returns (Key32) {
401
- return Key32Lib.toKey32(TARGET(), KeyId.wrap(bytes20(target)));
316
+ function products() external view returns (uint256 productCount) {
317
+ return _products.length;
402
318
  }
403
319
 
404
- function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
405
- return nftId.toKey32(objectType);
320
+ function getProduct(uint256 idx) external view returns (NftId productNftId) {
321
+ return _products[idx];
406
322
  }
407
323
 
408
- function toBundleKey32(NftId bundleNftId) public pure returns (Key32) {
409
- return bundleNftId.toKey32(BUNDLE());
324
+ function getInstanceReader() external view returns (InstanceReader) {
325
+ return _instanceReader;
410
326
  }
411
327
 
412
- function toPolicyKey32(NftId policyNftId) public pure returns (Key32) {
413
- return policyNftId.toKey32(POLICY());
328
+ function getBundleSet() external view returns (BundleSet) {
329
+ return _bundleSet;
414
330
  }
415
331
 
416
- function getComponentOwnerService() external view returns (IComponentOwnerService) {
417
- return ComponentOwnerService(_registry.getServiceAddress("ComponentOwnerService", VersionPart.wrap(3)));
332
+ function getRiskSet() external view returns (RiskSet) {
333
+ return _riskSet;
418
334
  }
419
335
 
420
- function getDistributionService() external view returns (IDistributionService) {
421
- return IDistributionService(_registry.getServiceAddress("DistributionService", VersionPart.wrap(3)));
336
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
337
+ return _instanceAdmin;
422
338
  }
423
339
 
424
- // TODO reactivate when services are available
425
- // function getProductService() external view returns (IProductService) {
426
- // return ProductService(_registry.getServiceAddress("ProductService", VersionPart.wrap(3)));
427
- // }
428
-
429
- // TODO reactivate when services are available
430
- // function getPoolService() external view returns (IPoolService) {
431
- // return PoolService(_registry.getServiceAddress("PoolService", VersionPart.wrap(3)));
432
- // }
340
+ function getInstanceStore() external view returns (InstanceStore) {
341
+ return _instanceStore;
342
+ }
433
343
 
434
- function setInstanceReader(InstanceReader instanceReader) external restricted() {
435
- require(address(_instanceReader) == address(0), "InstanceReader is set");
436
- _instanceReader = instanceReader;
344
+ function getProductStore() external view returns (ProductStore) {
345
+ return _productStore;
437
346
  }
438
347
 
439
- function getInstanceReader() external view returns (InstanceReader) {
440
- return _instanceReader;
348
+ function isTokenRegistryDisabled() external view returns (bool) {
349
+ return _tokenRegistryDisabled;
441
350
  }
442
- }
351
+ }