@etherisc/gif-next 0.0.2-a9f5983-610 → 0.0.2-aa7068b-175

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 (724) hide show
  1. package/README.md +83 -93
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1338 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +265 -559
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1525 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +872 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +349 -311
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1008 -0
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1491 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2048 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1495 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1671 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2448 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +377 -2053
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +364 -73
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +462 -2859
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1663 -625
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +369 -369
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +153 -112
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  104. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  105. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  108. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  109. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  117. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/IOracleComponent.sol/IOracleComponent.json} +236 -236
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1013 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +772 -0
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  127. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +320 -519
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1277 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +808 -0
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  140. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  141. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +437 -439
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1590 -0
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +816 -0
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +829 -0
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +736 -0
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  153. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +412 -418
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1512 -0
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +856 -0
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  161. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +221 -196
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +285 -305
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  169. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +502 -224
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +150 -64
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1349 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +816 -0
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingService.sol/PricingService.json +946 -0
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +792 -0
  182. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  183. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -0
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  189. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +499 -26
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -122
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  198. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/Registry.sol/Registry.json +989 -125
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +361 -258
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  219. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1532 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  224. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  225. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +115 -171
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  235. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +267 -82
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1180 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  241. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IService.sol/IService.json +158 -17
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  259. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  273. package/artifacts/contracts/shared/Service.sol/Service.json +144 -105
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  284. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  286. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  287. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1317 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +740 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  360. package/contracts/accounting/AccountingService.sol +261 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +45 -0
  363. package/contracts/authorization/AccessAdmin.sol +704 -0
  364. package/contracts/authorization/AccessAdminLib.sol +183 -0
  365. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  366. package/contracts/authorization/Authorization.sol +365 -0
  367. package/contracts/authorization/IAccess.sol +49 -0
  368. package/contracts/authorization/IAccessAdmin.sol +170 -0
  369. package/contracts/authorization/IAuthorization.sol +80 -0
  370. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  371. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  372. package/contracts/distribution/BasicDistribution.sol +141 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  374. package/contracts/{components → distribution}/Distribution.sol +175 -194
  375. package/contracts/distribution/DistributionService.sol +362 -0
  376. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  377. package/contracts/distribution/IDistributionComponent.sol +52 -0
  378. package/contracts/distribution/IDistributionService.sol +101 -0
  379. package/contracts/examples/fire/DamageLevel.sol +59 -0
  380. package/contracts/examples/fire/FirePool.sol +90 -0
  381. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  382. package/contracts/examples/fire/FireProduct.sol +437 -0
  383. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  384. package/contracts/examples/fire/FireUSD.sol +26 -0
  385. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  386. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  388. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  389. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  390. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BundleSet.sol +130 -0
  393. package/contracts/instance/IInstance.sol +77 -66
  394. package/contracts/instance/IInstanceService.sol +50 -26
  395. package/contracts/instance/Instance.sol +210 -212
  396. package/contracts/instance/InstanceAdmin.sol +450 -0
  397. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  398. package/contracts/instance/InstanceReader.sol +408 -64
  399. package/contracts/instance/InstanceService.sol +327 -367
  400. package/contracts/instance/InstanceServiceManager.sol +14 -29
  401. package/contracts/instance/InstanceStore.sol +298 -0
  402. package/contracts/instance/RiskSet.sol +118 -0
  403. package/contracts/instance/base/BalanceStore.sol +123 -0
  404. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  405. package/contracts/instance/base/ObjectCounter.sol +20 -0
  406. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  407. package/contracts/instance/base/ObjectSet.sol +77 -0
  408. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  409. package/contracts/instance/module/IBundle.sol +8 -9
  410. package/contracts/instance/module/IComponents.sol +51 -0
  411. package/contracts/instance/module/IDistribution.sol +8 -5
  412. package/contracts/instance/module/IPolicy.sol +55 -18
  413. package/contracts/instance/module/IRisk.sol +4 -1
  414. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  415. package/contracts/oracle/BasicOracle.sol +47 -0
  416. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  417. package/contracts/oracle/IOracle.sol +36 -0
  418. package/contracts/oracle/IOracleComponent.sol +33 -0
  419. package/contracts/oracle/IOracleService.sol +66 -0
  420. package/contracts/oracle/Oracle.sol +156 -0
  421. package/contracts/oracle/OracleService.sol +310 -0
  422. package/contracts/oracle/OracleServiceManager.sol +39 -0
  423. package/contracts/pool/BasicPool.sol +175 -0
  424. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  425. package/contracts/pool/BundleService.sol +395 -0
  426. package/contracts/pool/BundleServiceManager.sol +39 -0
  427. package/contracts/pool/IBundleService.sol +115 -0
  428. package/contracts/pool/IPoolComponent.sol +62 -0
  429. package/contracts/pool/IPoolService.sol +165 -0
  430. package/contracts/pool/Pool.sol +345 -0
  431. package/contracts/pool/PoolLib.sol +216 -0
  432. package/contracts/pool/PoolService.sol +760 -0
  433. package/contracts/pool/PoolServiceManager.sol +39 -0
  434. package/contracts/product/ApplicationService.sol +263 -0
  435. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  436. package/contracts/product/BasicProduct.sol +51 -0
  437. package/contracts/product/BasicProductAuthorization.sol +56 -0
  438. package/contracts/product/ClaimService.sol +640 -0
  439. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  440. package/contracts/{instance/service → product}/IApplicationService.sol +19 -36
  441. package/contracts/product/IClaimService.sol +135 -0
  442. package/contracts/product/IPolicyService.sol +95 -0
  443. package/contracts/product/IPricingService.sol +39 -0
  444. package/contracts/product/IProductComponent.sol +62 -0
  445. package/contracts/product/IRiskService.sol +30 -0
  446. package/contracts/product/PolicyService.sol +672 -0
  447. package/contracts/product/PolicyServiceLib.sol +65 -0
  448. package/contracts/product/PolicyServiceManager.sol +39 -0
  449. package/contracts/product/PricingService.sol +304 -0
  450. package/contracts/product/PricingServiceManager.sol +39 -0
  451. package/contracts/product/Product.sol +469 -0
  452. package/contracts/product/RiskService.sol +144 -0
  453. package/contracts/product/RiskServiceManager.sol +39 -0
  454. package/contracts/registry/ChainNft.sol +83 -36
  455. package/contracts/registry/IRegistry.sol +97 -30
  456. package/contracts/registry/IRegistryService.sol +36 -41
  457. package/contracts/registry/IRelease.sol +26 -0
  458. package/contracts/registry/ITransferInterceptor.sol +1 -1
  459. package/contracts/registry/Registry.sol +472 -206
  460. package/contracts/registry/RegistryAdmin.sol +258 -0
  461. package/contracts/registry/RegistryAuthorization.sol +266 -0
  462. package/contracts/registry/RegistryService.sol +89 -131
  463. package/contracts/registry/RegistryServiceManager.sol +23 -32
  464. package/contracts/registry/ReleaseAdmin.sol +253 -0
  465. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  466. package/contracts/registry/ReleaseRegistry.sol +517 -0
  467. package/contracts/registry/ServiceAuthorizationV3.sol +330 -0
  468. package/contracts/registry/TokenRegistry.sol +261 -64
  469. package/contracts/shared/Component.sol +227 -0
  470. package/contracts/shared/ComponentService.sol +696 -0
  471. package/contracts/shared/ComponentServiceManager.sol +38 -0
  472. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  473. package/contracts/shared/ContractLib.sol +281 -0
  474. package/contracts/shared/IComponent.sol +61 -0
  475. package/contracts/shared/IComponentService.sol +110 -0
  476. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  477. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  478. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  479. package/contracts/shared/INftOwnable.sol +4 -2
  480. package/contracts/shared/IPolicyHolder.sol +23 -14
  481. package/contracts/shared/IRegisterable.sol +23 -1
  482. package/contracts/shared/IRegistryLinked.sol +0 -1
  483. package/contracts/shared/IService.sol +12 -5
  484. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  485. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  486. package/contracts/shared/KeyValueStore.sol +131 -0
  487. package/contracts/shared/Lifecycle.sol +88 -0
  488. package/contracts/shared/NftIdSet.sol +65 -0
  489. package/contracts/shared/NftOwnable.sol +35 -27
  490. package/contracts/shared/PolicyHolder.sol +22 -41
  491. package/contracts/shared/Registerable.sol +52 -20
  492. package/contracts/shared/RegistryLinked.sol +9 -19
  493. package/contracts/shared/Service.sol +36 -29
  494. package/contracts/shared/TokenHandler.sol +327 -12
  495. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  496. package/contracts/staking/IStaking.sol +169 -0
  497. package/contracts/staking/IStakingService.sol +168 -0
  498. package/contracts/staking/StakeManagerLib.sol +224 -0
  499. package/contracts/staking/Staking.sol +526 -0
  500. package/contracts/staking/StakingLifecycle.sol +23 -0
  501. package/contracts/staking/StakingManager.sol +52 -0
  502. package/contracts/staking/StakingReader.sol +190 -0
  503. package/contracts/staking/StakingService.sol +433 -0
  504. package/contracts/staking/StakingServiceManager.sol +45 -0
  505. package/contracts/staking/StakingStore.sol +605 -0
  506. package/contracts/staking/TargetManagerLib.sol +211 -0
  507. package/contracts/{types → type}/AddressSet.sol +1 -1
  508. package/contracts/type/Amount.sol +150 -0
  509. package/contracts/{types → type}/Blocknumber.sol +27 -3
  510. package/contracts/{types → type}/ClaimId.sol +31 -3
  511. package/contracts/{types → type}/Fee.sol +33 -23
  512. package/contracts/{types → type}/Key32.sol +2 -2
  513. package/contracts/type/Key32Set.sol +62 -0
  514. package/contracts/{types → type}/NftId.sol +28 -15
  515. package/contracts/{types → type}/NftIdSet.sol +2 -2
  516. package/contracts/type/ObjectType.sol +294 -0
  517. package/contracts/type/PayoutId.sol +82 -0
  518. package/contracts/{types → type}/Referral.sol +6 -1
  519. package/contracts/type/RequestId.sol +75 -0
  520. package/contracts/type/RiskId.sol +75 -0
  521. package/contracts/type/RoleId.sol +182 -0
  522. package/contracts/type/Seconds.sol +101 -0
  523. package/contracts/type/Selector.sol +107 -0
  524. package/contracts/{types → type}/StateId.sol +48 -4
  525. package/contracts/type/String.sol +53 -0
  526. package/contracts/{types → type}/Timestamp.sol +21 -6
  527. package/contracts/{types → type}/UFixed.sol +41 -121
  528. package/contracts/{types → type}/Version.sol +59 -7
  529. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  530. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  531. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  532. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  533. package/package.json +12 -8
  534. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  535. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  536. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  540. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  541. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  542. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  544. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  545. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  546. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  547. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  548. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  549. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  553. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  554. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  555. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  556. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  557. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  558. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  559. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  562. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  564. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  566. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  568. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  570. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  572. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
  574. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
  576. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +0 -462
  578. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  581. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -480
  583. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  586. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  587. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  589. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  591. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  593. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  595. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  597. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  598. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  599. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  600. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  601. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  602. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  603. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  604. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  605. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  606. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  607. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  608. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  609. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  610. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  611. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  612. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  615. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  617. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  619. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  621. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  623. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  625. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  626. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  627. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  628. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  629. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  630. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  631. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  633. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  635. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  637. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  639. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  641. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  643. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  645. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  646. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  647. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  649. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  651. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  653. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  655. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  657. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  659. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  661. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  663. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  665. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  667. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  669. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  671. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  673. package/contracts/components/Component.sol +0 -221
  674. package/contracts/components/IComponent.sol +0 -68
  675. package/contracts/components/IDistributionComponent.sol +0 -100
  676. package/contracts/components/IPoolComponent.sol +0 -151
  677. package/contracts/components/IProductComponent.sol +0 -40
  678. package/contracts/components/Pool.sol +0 -378
  679. package/contracts/components/Product.sol +0 -293
  680. package/contracts/instance/BundleManager.sol +0 -125
  681. package/contracts/instance/InstanceAccessManager.sol +0 -297
  682. package/contracts/instance/ObjectManager.sol +0 -84
  683. package/contracts/instance/base/ComponentService.sol +0 -134
  684. package/contracts/instance/base/KeyValueStore.sol +0 -172
  685. package/contracts/instance/base/Lifecycle.sol +0 -100
  686. package/contracts/instance/module/IAccess.sol +0 -47
  687. package/contracts/instance/module/ISetup.sol +0 -48
  688. package/contracts/instance/module/ITreasury.sol +0 -23
  689. package/contracts/instance/service/ApplicationService.sol +0 -269
  690. package/contracts/instance/service/BundleService.sol +0 -299
  691. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  692. package/contracts/instance/service/ClaimService.sol +0 -151
  693. package/contracts/instance/service/DistributionService.sol +0 -277
  694. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  695. package/contracts/instance/service/IBundleService.sol +0 -55
  696. package/contracts/instance/service/IClaimService.sol +0 -61
  697. package/contracts/instance/service/IDistributionService.sol +0 -65
  698. package/contracts/instance/service/IPolicyService.sol +0 -90
  699. package/contracts/instance/service/IPoolService.sol +0 -20
  700. package/contracts/instance/service/IProductService.sol +0 -40
  701. package/contracts/instance/service/PolicyService.sol +0 -476
  702. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  703. package/contracts/instance/service/PoolService.sol +0 -109
  704. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  705. package/contracts/instance/service/ProductService.sol +0 -233
  706. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  707. package/contracts/registry/RegistryAccessManager.sol +0 -216
  708. package/contracts/registry/ReleaseManager.sol +0 -322
  709. package/contracts/shared/ContractDeployerLib.sol +0 -72
  710. package/contracts/test/TestFee.sol +0 -25
  711. package/contracts/test/TestRegisterable.sol +0 -18
  712. package/contracts/test/TestRoleId.sol +0 -14
  713. package/contracts/test/TestService.sol +0 -25
  714. package/contracts/test/TestToken.sol +0 -26
  715. package/contracts/test/TestVersion.sol +0 -44
  716. package/contracts/test/TestVersionable.sol +0 -17
  717. package/contracts/types/ChainId.sol +0 -38
  718. package/contracts/types/NumberId.sol +0 -52
  719. package/contracts/types/ObjectType.sol +0 -156
  720. package/contracts/types/PayoutId.sol +0 -54
  721. package/contracts/types/RiskId.sol +0 -43
  722. package/contracts/types/RoleId.sol +0 -95
  723. package/contracts/types/Seconds.sol +0 -54
  724. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,50 +1,26 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
5
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
-
7
- import {IRegistry} from "./IRegistry.sol";
4
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
8
6
  import {IInstance} from "../instance/IInstance.sol";
9
-
10
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
11
- import {IComponent} from "../../contracts/components/IComponent.sol";
12
- import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
13
- import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
14
- import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
15
-
16
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
17
- import {Versionable} from "../../contracts/shared/Versionable.sol";
7
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
8
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
18
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
19
- import {Registerable} from "../../contracts/shared/Registerable.sol";
20
-
21
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
22
- import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
23
- import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
24
- import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
25
- import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
26
- import {Version, VersionPart, VersionLib} from "../../contracts/types/Version.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+ import {IRegistryService} from "./IRegistryService.sol";
27
12
 
13
+ import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
14
+ import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
28
15
  import {Service} from "../shared/Service.sol";
29
- import {IService} from "../shared/IService.sol";
30
- import {IRegistryService} from "./IRegistryService.sol";
31
- import {Registry} from "./Registry.sol";
32
16
 
33
17
  contract RegistryService is
34
- AccessManagedUpgradeable,
35
18
  Service,
36
19
  IRegistryService
37
20
  {
38
- using NftIdLib for NftId;
39
-
40
21
  // TODO update to real hash when registry is stable
41
22
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
42
23
 
43
- // From IService
44
- function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
45
- return REGISTRY();
46
- }
47
-
48
24
  // from Versionable
49
25
 
50
26
  /// @dev top level initializer
@@ -57,25 +33,38 @@ contract RegistryService is
57
33
  initializer()
58
34
  {
59
35
  (
60
- address registryAddress,
61
- address initialAuthority
36
+ address authority,
37
+ address registry
62
38
  ) = abi.decode(data, (address, address));
63
39
 
64
- __AccessManaged_init(initialAuthority);
40
+ __Service_init(authority, registry, owner);
41
+ _registerInterface(type(IRegistryService).interfaceId);
42
+ }
43
+
65
44
 
66
- initializeService(registryAddress, owner);
67
- registerInterface(type(IRegistryService).interfaceId);
45
+ function registerStaking(IRegisterable staking, address owner)
46
+ external
47
+ virtual
48
+ restricted()
49
+ returns(
50
+ IRegistry.ObjectInfo memory info
51
+ )
52
+ {
53
+ info = _getAndVerifyContractInfo(staking, STAKING(), owner);
54
+ info.nftId = getRegistry().register(info);
68
55
  }
69
56
 
57
+
70
58
  function registerInstance(IRegisterable instance, address owner)
71
59
  external
72
- restricted
60
+ virtual
61
+ restricted()
73
62
  returns(
74
63
  IRegistry.ObjectInfo memory info
75
64
  )
76
65
  {
77
66
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
78
- revert NotInstance();
67
+ revert ErrorRegistryServiceNotInstance(address(instance));
79
68
  }
80
69
 
81
70
  info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
@@ -84,55 +73,54 @@ contract RegistryService is
84
73
  instance.linkToRegisteredNftId(); // asume safe
85
74
  }
86
75
 
87
- function registerProduct(IComponent product, address owner)
76
+ function registerProduct(
77
+ IComponent product,
78
+ address initialOwner
79
+ )
88
80
  external
89
- restricted
81
+ virtual
82
+ restricted()
90
83
  returns(
91
84
  IRegistry.ObjectInfo memory info
92
85
  )
93
86
  {
94
- // CAN revert if no ERC165 support -> will revert with empty message
95
87
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
96
- revert NotProduct();
88
+ revert ErrorRegistryServiceNotProduct(address(product));
97
89
  }
98
90
 
99
- info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
91
+ info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
100
92
  info.nftId = getRegistry().register(info);
101
93
  }
102
94
 
103
- function registerPool(IComponent pool, address owner)
95
+ function registerProductLinkedComponent(
96
+ IComponent component,
97
+ ObjectType objectType,
98
+ address initialOwner
99
+ )
104
100
  external
105
- restricted
101
+ virtual
102
+ restricted()
106
103
  returns(
107
104
  IRegistry.ObjectInfo memory info
108
105
  )
109
106
  {
110
- if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
111
- revert NotPool();
107
+ // CAN revert if no ERC165 support -> will revert with empty message
108
+ if(!component.supportsInterface(type(IComponent).interfaceId)) {
109
+ revert ErrorRegistryServiceNotComponent(address(component));
112
110
  }
113
111
 
114
- info = _getAndVerifyContractInfo(pool, POOL(), owner);
115
- info.nftId = getRegistry().register(info);
116
- }
117
-
118
- function registerDistribution(IComponent distribution, address owner)
119
- external
120
- restricted
121
- returns(
122
- IRegistry.ObjectInfo memory info
123
- )
124
- {
125
- if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
126
- revert NotDistribution();
112
+ if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
113
+ revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
127
114
  }
128
115
 
129
- info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
116
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
130
117
  info.nftId = getRegistry().register(info);
131
118
  }
132
119
 
133
120
  function registerDistributor(IRegistry.ObjectInfo memory info)
134
121
  external
135
- restricted
122
+ virtual
123
+ restricted()
136
124
  returns(NftId nftId)
137
125
  {
138
126
  _verifyObjectInfo(info, DISTRIBUTOR());
@@ -141,82 +129,34 @@ contract RegistryService is
141
129
 
142
130
  function registerPolicy(IRegistry.ObjectInfo memory info)
143
131
  external
144
- restricted
132
+ virtual
133
+ restricted()
145
134
  returns(NftId nftId)
146
135
  {
147
136
  _verifyObjectInfo(info, POLICY());
148
-
149
137
  nftId = getRegistry().register(info);
150
138
  }
151
139
 
152
140
  function registerBundle(IRegistry.ObjectInfo memory info)
153
141
  external
154
- restricted
142
+ virtual
143
+ restricted()
155
144
  returns(NftId nftId)
156
145
  {
157
146
  _verifyObjectInfo(info, BUNDLE());
158
-
159
147
  nftId = getRegistry().register(info);
160
148
  }
161
149
 
162
150
  function registerStake(IRegistry.ObjectInfo memory info)
163
151
  external
164
- restricted
152
+ virtual
153
+ restricted()
165
154
  returns(NftId nftId)
166
155
  {
167
156
  _verifyObjectInfo(info, STAKE());
168
-
169
157
  nftId = getRegistry().register(info);
170
158
  }
171
159
 
172
- // from IRegisterable
173
-
174
- function getFunctionConfigs()
175
- external
176
- pure
177
- returns(
178
- FunctionConfig[] memory config
179
- )
180
- {
181
- config = new FunctionConfig[](8);
182
-
183
- // order of service registrations MUST be reverse to this array
184
- /*config[-1].serviceDomain = STAKE();
185
- config[-1].selector = RegistryService.registerStake.selector;*/
186
-
187
- config[0].serviceDomain = APPLICATION();
188
- config[0].selectors = new bytes4[](1);
189
- config[0].selectors[0] = RegistryService.registerPolicy.selector;
190
-
191
- config[1].serviceDomain = POLICY();
192
- config[1].selectors = new bytes4[](0);
193
-
194
- config[2].serviceDomain = CLAIM();
195
- config[2].selectors = new bytes4[](0);
196
-
197
- config[3].serviceDomain = BUNDLE();
198
- config[3].selectors = new bytes4[](1);
199
- config[3].selectors[0] = RegistryService.registerBundle.selector;
200
-
201
- config[4].serviceDomain = PRODUCT();
202
- config[4].selectors = new bytes4[](1);
203
- config[4].selectors[0] = RegistryService.registerProduct.selector;
204
-
205
- config[5].serviceDomain = POOL();
206
- config[5].selectors = new bytes4[](1);
207
- config[5].selectors[0] = RegistryService.registerPool.selector;
208
-
209
- config[6].serviceDomain = DISTRIBUTION();
210
- config[6].selectors = new bytes4[](2);
211
- config[6].selectors[0] = RegistryService.registerDistribution.selector;
212
- config[6].selectors[1] = RegistryService.registerDistributor.selector;
213
-
214
- // registerInstance() have no restriction
215
- config[7].serviceDomain = INSTANCE();
216
- config[7].selectors = new bytes4[](1);
217
- config[7].selectors[0] = RegistryService.registerInstance.selector;
218
- }
219
-
220
160
  // Internal
221
161
 
222
162
  function _getAndVerifyContractInfo(
@@ -225,34 +165,38 @@ contract RegistryService is
225
165
  address expectedOwner // assume can be 0 when given by other service
226
166
  )
227
167
  internal
228
- // view
168
+ virtual
169
+ view
229
170
  returns(
230
171
  IRegistry.ObjectInfo memory info
231
172
  )
232
173
  {
233
174
  info = registerable.getInitialInfo();
234
- info.objectAddress = address(registerable);
175
+
176
+ if(info.objectAddress != address(registerable)) {
177
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
178
+ }
235
179
 
236
180
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
237
- revert UnexpectedRegisterableType(expectedType, info.objectType);
181
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
238
182
  }
239
183
 
240
184
  address owner = info.initialOwner;
241
185
 
242
186
  if(owner != expectedOwner) { // registerable owner protection
243
- revert NotRegisterableOwner(expectedOwner);
187
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
244
188
  }
245
189
 
246
190
  if(owner == address(registerable)) {
247
- revert SelfRegistration();
191
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
248
192
  }
249
193
 
250
194
  if(owner == address(0)) {
251
- revert RegisterableOwnerIsZero();
195
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
252
196
  }
253
197
 
254
198
  if(getRegistry().isRegistered(owner)) {
255
- revert RegisterableOwnerIsRegistered();
199
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
256
200
  }
257
201
  }
258
202
 
@@ -261,23 +205,37 @@ contract RegistryService is
261
205
  ObjectType expectedType
262
206
  )
263
207
  internal
208
+ virtual
264
209
  view
265
210
  {
266
- // enforce instead of check
267
- info.objectAddress = address(0);
211
+ if(info.objectAddress > address(0)) {
212
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
213
+ }
268
214
 
269
215
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
270
- revert UnexpectedRegisterableType(expectedType, info.objectType);
216
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
271
217
  }
272
218
 
273
219
  address owner = info.initialOwner;
274
220
 
275
221
  if(owner == address(0)) {
276
- revert RegisterableOwnerIsZero();
222
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
277
223
  }
278
224
 
279
- if(getRegistry().isRegistered(owner)) {
280
- revert RegisterableOwnerIsRegistered();
225
+ if(owner == msg.sender) {
226
+ revert ErrorRegistryServiceInvalidInitialOwner(owner);
227
+ }
228
+
229
+ if(getRegistry().isRegistered(owner)) {
230
+ ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
231
+ if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
232
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
233
+ }
281
234
  }
282
235
  }
283
- }
236
+
237
+ // From IService
238
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
239
+ return REGISTRY();
240
+ }
241
+ }
@@ -1,53 +1,44 @@
1
- // SPDX-License-Identifier: UNLICENSED
1
+ // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
-
6
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
7
-
8
- import {Registry} from "./Registry.sol";
9
- import {IVersionable} from "../shared/IVersionable.sol";
10
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
11
6
  import {RegistryService} from "./RegistryService.sol";
12
- import {TokenRegistry} from "./TokenRegistry.sol";
13
-
14
7
 
15
8
  contract RegistryServiceManager is
16
9
  ProxyManager
17
10
  {
11
+ error ErrorRegistryAccessManagerAuthorityZero();
12
+ error ErrorRegistryAccessManagerRegistryZero();
13
+
18
14
  bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
19
15
 
20
16
  RegistryService private immutable _registryService;
21
17
 
22
18
  /// @dev initializes proxy manager with registry service implementation and deploys registry
23
19
  constructor(
24
- address initialAuthority, // used by implementation
25
- address registryAddress) // used by implementation
26
- ProxyManager(registryAddress)
20
+ address authority, // used by implementation
21
+ address registry, // used by implementation
22
+ bytes32 salt
23
+ )
27
24
  {
28
- require(initialAuthority > address(0), "RegistryServiceManager: initial authority is 0");
29
- require(registryAddress > address(0), "RegistryServiceManager: registry is 0");
25
+ if(authority == address(0)) {
26
+ revert ErrorRegistryAccessManagerAuthorityZero();
27
+ }
28
+
29
+ if(registry == address(0)) {
30
+ revert ErrorRegistryAccessManagerRegistryZero();
31
+ }
30
32
 
31
- // implementation's initializer func `data` argument
32
- RegistryService srv = new RegistryService();
33
- bytes memory data = abi.encode(registryAddress, initialAuthority);
34
- IVersionable versionable = deploy(
33
+ RegistryService srv = new RegistryService{ salt: salt }();
34
+ bytes memory data = abi.encode(authority, registry);
35
+ IVersionable versionable = initialize(
36
+ registry,
35
37
  address(srv),
36
- data);
38
+ data,
39
+ salt);
37
40
 
38
41
  _registryService = RegistryService(address(versionable));
39
-
40
- // _linkToNftOwnable(address(_registryService));
41
- }
42
-
43
- // // from IRegisterable
44
-
45
- // // IMPORTANT: registry here and in constructor MUST be the same
46
- function linkOwnershipToServiceNft()
47
- public
48
- onlyOwner
49
- {
50
- _linkToNftOwnable(address(_registryService));
51
42
  }
52
43
 
53
44
  //--- view functions ----------------------------------------------------//
@@ -0,0 +1,253 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
6
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {IService} from "../shared/IService.sol";
9
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
10
+ import {ObjectType, ObjectTypeLib, ALL} from "../type/ObjectType.sol";
11
+ import {RoleId, RoleIdLib, ADMIN_ROLE, RELEASE_REGISTRY_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
12
+ import {VersionPart} from "../type/Version.sol";
13
+
14
+ /// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
15
+ /// There is one ReleaseAdmin contract per major GIF release.
16
+ /// Locking/unlocking of all services of a release is implemented in function setReleaseLocked.
17
+ contract ReleaseAdmin is
18
+ AccessAdmin
19
+ {
20
+ event LogReleaseAdminReleaseLockChanged(VersionPart release, bool locked);
21
+ event LogReleaseAdminServiceLockChanged(VersionPart release, address service, bool locked);
22
+
23
+ error ErrorReleaseAdminCallerNotReleaseRegistry(address caller);
24
+ error ErrorReleaseAdminNotService(address notService);
25
+ error ErrorReleaseAdminReleaseLockAlreadySetTo(bool locked);
26
+
27
+ /// @dev release core roles
28
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
29
+
30
+ /// @dev release core targets
31
+ string public constant RELEASE_ADMIN_TARGET_NAME = "ReleaseAdmin";
32
+
33
+
34
+ modifier onlyReleaseRegistry() {
35
+ (bool isMember, ) = _authority.hasRole(RELEASE_REGISTRY_ROLE().toInt(), msg.sender);
36
+ if(!isMember) {
37
+ revert ErrorReleaseAdminCallerNotReleaseRegistry(msg.sender);
38
+ }
39
+ _;
40
+ }
41
+
42
+ // @dev Only used for master release admin
43
+ constructor(address accessManager) {
44
+ initialize(
45
+ accessManager,
46
+ "MasterReleaseAdmin");
47
+ }
48
+
49
+
50
+ function completeSetup(
51
+ address registry,
52
+ address releaseRegistry,
53
+ VersionPart release
54
+ )
55
+ external
56
+ reinitializer(uint64(release.toInt()))
57
+ {
58
+
59
+ // checks
60
+ _checkRegistry(registry);
61
+
62
+ AccessManagerCloneable(
63
+ authority()).completeSetup(
64
+ registry,
65
+ release);
66
+
67
+ // link nft ownability to registry
68
+ _linkToNftOwnable(registry);
69
+
70
+ _setupReleaseRegistry(releaseRegistry);
71
+ }
72
+
73
+ /// @dev Sets up authorizaion for specified service.
74
+ /// For all authorized services its authorized functions are enabled.
75
+ /// Permissioned function: Access is restricted to release registry.
76
+ function authorizeService(
77
+ IServiceAuthorization serviceAuthorization,
78
+ IService service,
79
+ ObjectType serviceDomain,
80
+ VersionPart release
81
+ )
82
+ external
83
+ restricted()
84
+ {
85
+ _createServiceTargetAndRole(service, serviceDomain, release);
86
+ _authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, release);
87
+ }
88
+
89
+ /// @dev Locks/unlocks all release targets.
90
+ /// For all authorized services of release its authorized functions are disabled/enabled.
91
+ /// Permissioned function: Access is restricted to release registry.
92
+ /// Note: onlyReleaseRegistry() modifier is used to prevent dead lock.
93
+ function setReleaseLocked(bool locked)
94
+ external
95
+ onlyReleaseRegistry()
96
+ {
97
+ // checks
98
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
99
+ if(accessManager.isLocked() == locked) {
100
+ revert ErrorReleaseAdminReleaseLockAlreadySetTo(locked);
101
+ }
102
+
103
+ // effects
104
+ accessManager.setLocked(locked);
105
+
106
+ emit LogReleaseAdminReleaseLockChanged(getRelease(), locked);
107
+ }
108
+
109
+ /// @dev Lock/unlock specific service of release.
110
+ /// Permissioned function: Access is restricted to release registry.
111
+ function setServiceLocked(IService service, bool locked)
112
+ external
113
+ restricted()
114
+ {
115
+ // assume all targets except release admin are services
116
+ // ensure release admin can not be locked
117
+ if(address(service) == address(this)) {
118
+ revert ErrorReleaseAdminNotService(address(service));
119
+ }
120
+
121
+ _setTargetLocked(address(service), locked);
122
+
123
+ emit LogReleaseAdminServiceLockChanged(service.getRelease(), address(service), locked);
124
+ }
125
+
126
+ //--- view functions ----------------------------------------------------//
127
+
128
+ /*
129
+ function getReleaseAdminRole() external view returns (RoleId) {
130
+ return GIF_ADMIN_ROLE();
131
+ }
132
+ */
133
+ //--- private functions -------------------------------------------------//
134
+
135
+ function _createServiceTargetAndRole(
136
+ IService service,
137
+ ObjectType serviceDomain,
138
+ VersionPart release
139
+ )
140
+ private
141
+ {
142
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
143
+
144
+ // create service target
145
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
146
+ baseName, "Service", release);
147
+
148
+ _createTarget(
149
+ address(service),
150
+ serviceTargetName,
151
+ true,
152
+ false);
153
+
154
+ // create service role
155
+ RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
156
+ serviceDomain,
157
+ release);
158
+
159
+ if(!roleExists(serviceRoleId)) {
160
+ _createRole(
161
+ serviceRoleId,
162
+ AccessAdminLib.toRole({
163
+ adminRoleId: ADMIN_ROLE(),
164
+ roleType: RoleType.Contract,
165
+ maxMemberCount: 1,
166
+ name: ObjectTypeLib.toVersionedName(
167
+ baseName,
168
+ "ServiceRole",
169
+ release)}));
170
+ }
171
+
172
+ _grantRoleToAccount(
173
+ serviceRoleId,
174
+ address(service));
175
+ }
176
+
177
+
178
+ function _authorizeServiceFunctions(
179
+ IServiceAuthorization serviceAuthorization,
180
+ IService service,
181
+ ObjectType serviceDomain,
182
+ VersionPart release
183
+ )
184
+ private
185
+ {
186
+ ObjectType authorizedDomain;
187
+ RoleId authorizedRoleId;
188
+
189
+ ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
190
+
191
+ for (uint256 i = 0; i < authorizedDomains.length; i++) {
192
+ authorizedDomain = authorizedDomains[i];
193
+
194
+ // derive authorized role from authorized domain
195
+ if (authorizedDomain == ALL()) {
196
+ authorizedRoleId = PUBLIC_ROLE();
197
+ } else {
198
+ authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
199
+ authorizedDomain,
200
+ release);
201
+ }
202
+
203
+ if(!roleExists(authorizedRoleId)) {
204
+ // create role for authorized domain
205
+ _createRole(
206
+ authorizedRoleId,
207
+ AccessAdminLib.toRole({
208
+ adminRoleId: ADMIN_ROLE(),
209
+ roleType: RoleType.Contract,
210
+ maxMemberCount: 1,
211
+ name: ObjectTypeLib.toVersionedName(
212
+ ObjectTypeLib.toName(authorizedDomain),
213
+ "Role",
214
+ release)}));
215
+ }
216
+
217
+ // get authorized functions for authorized domain
218
+ IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
219
+ serviceDomain,
220
+ authorizedDomain);
221
+
222
+ _authorizeTargetFunctions(
223
+ address(service),
224
+ authorizedRoleId,
225
+ authorizatedFunctions);
226
+ }
227
+ }
228
+
229
+ //--- private initialization functions -------------------------------------------//
230
+
231
+ function _setupReleaseRegistry(address releaseRegistry)
232
+ private
233
+ onlyInitializing()
234
+ {
235
+ _createTarget(address(this), RELEASE_ADMIN_TARGET_NAME, false, false);
236
+
237
+ _createRole(
238
+ RELEASE_REGISTRY_ROLE(),
239
+ AccessAdminLib.toRole({
240
+ adminRoleId: ADMIN_ROLE(),
241
+ roleType: RoleType.Contract,
242
+ maxMemberCount: 1,
243
+ name: RELEASE_REGISTRY_ROLE_NAME}));
244
+
245
+ FunctionInfo[] memory functions;
246
+ functions = new FunctionInfo[](2);
247
+ functions[0] = AccessAdminLib.toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
248
+ functions[1] = AccessAdminLib.toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
249
+ _authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions);
250
+
251
+ _grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
252
+ }
253
+ }