@etherisc/gif-next 0.0.2-9b434da-265 → 0.0.2-9b4f8fa-920

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 (699) hide show
  1. package/README.md +252 -21
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/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 +1209 -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/distribution/Distribution.sol/Distribution.json +930 -0
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1580 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1071 -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 +1445 -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 +2002 -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 +1388 -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 +1152 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -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 +2389 -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 +4 -0
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +836 -0
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +802 -0
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +510 -3011
  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 +4 -0
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2458 -0
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +958 -27
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3728 -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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  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 +938 -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/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  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 +854 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  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 +1261 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -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 +886 -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/pool/Pool.sol/Pool.json +1006 -0
  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 +1574 -0
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  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 +1496 -0
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +639 -0
  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/product/IPricingService.sol/IPricingService.json +623 -0
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  169. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  171. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +480 -0
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -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 +808 -0
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingService.sol/PricingService.json +951 -0
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  182. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  183. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  189. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +103 -2
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +809 -163
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +491 -193
  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 +1010 -148
  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 +515 -259
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +373 -114
  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 +4 -0
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  219. package/artifacts/contracts/shared/Component.sol/Component.json +686 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1556 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  224. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
  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/shared/IComponent.sol/IComponent.json +611 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1196 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -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 -91
  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 +46 -26
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  253. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +138 -160
  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 +776 -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 +81 -30
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  273. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +158 -173
  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 +1491 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -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 +792 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -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/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  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/upgradeability/Versionable.sol/Versionable.json +78 -0
  360. package/contracts/accounting/AccountingService.sol +262 -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/distribution/Distribution.sol +244 -0
  375. package/contracts/distribution/DistributionService.sol +385 -0
  376. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  377. package/contracts/distribution/IDistributionComponent.sol +43 -0
  378. package/contracts/distribution/IDistributionService.sol +103 -0
  379. package/contracts/examples/fire/DamageLevel.sol +59 -0
  380. package/contracts/examples/fire/FirePool.sol +86 -0
  381. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  382. package/contracts/examples/fire/FireProduct.sol +433 -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 +81 -0
  386. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  388. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  389. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  390. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BundleSet.sol +130 -0
  393. package/contracts/instance/IInstance.sol +105 -0
  394. package/contracts/instance/IInstanceService.sol +84 -0
  395. package/contracts/instance/Instance.sol +214 -308
  396. package/contracts/instance/InstanceAdmin.sol +450 -0
  397. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  398. package/contracts/instance/InstanceReader.sol +650 -0
  399. package/contracts/instance/InstanceService.sol +441 -24
  400. package/contracts/instance/InstanceServiceManager.sol +39 -0
  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/base/Cloneable.sol +28 -0
  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 -7
  410. package/contracts/instance/module/IComponents.sol +50 -0
  411. package/contracts/instance/module/IDistribution.sol +11 -6
  412. package/contracts/instance/module/IPolicy.sol +59 -19
  413. package/contracts/instance/module/IRisk.sol +4 -1
  414. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  415. package/contracts/oracle/BasicOracle.sol +45 -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 +154 -0
  421. package/contracts/oracle/OracleService.sol +310 -0
  422. package/contracts/oracle/OracleServiceManager.sol +39 -0
  423. package/contracts/pool/BasicPool.sol +173 -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 +343 -0
  431. package/contracts/pool/PoolLib.sol +216 -0
  432. package/contracts/pool/PoolService.sol +755 -0
  433. package/contracts/pool/PoolServiceManager.sol +39 -0
  434. package/contracts/product/ApplicationService.sol +274 -0
  435. package/contracts/product/ApplicationServiceManager.sol +38 -0
  436. package/contracts/product/BasicProduct.sol +49 -0
  437. package/contracts/product/BasicProductAuthorization.sol +56 -0
  438. package/contracts/product/ClaimService.sol +632 -0
  439. package/contracts/product/ClaimServiceManager.sol +38 -0
  440. package/contracts/product/IApplicationService.sol +69 -0
  441. package/contracts/product/IClaimService.sol +135 -0
  442. package/contracts/product/IPolicyService.sol +95 -0
  443. package/contracts/product/IPricingService.sol +40 -0
  444. package/contracts/product/IProductComponent.sol +62 -0
  445. package/contracts/product/IRiskService.sol +33 -0
  446. package/contracts/product/PolicyService.sol +664 -0
  447. package/contracts/product/PolicyServiceLib.sol +65 -0
  448. package/contracts/product/PolicyServiceManager.sol +39 -0
  449. package/contracts/product/PricingService.sol +309 -0
  450. package/contracts/product/PricingServiceManager.sol +39 -0
  451. package/contracts/product/Product.sol +467 -0
  452. package/contracts/product/RiskService.sol +154 -0
  453. package/contracts/product/RiskServiceManager.sol +39 -0
  454. package/contracts/registry/ChainNft.sol +99 -37
  455. package/contracts/registry/IRegistry.sol +128 -35
  456. package/contracts/registry/IRegistryService.sol +49 -16
  457. package/contracts/registry/IRelease.sol +26 -0
  458. package/contracts/registry/ITransferInterceptor.sol +1 -1
  459. package/contracts/registry/Registry.sol +573 -334
  460. package/contracts/registry/RegistryAdmin.sol +258 -0
  461. package/contracts/registry/RegistryAuthorization.sol +267 -0
  462. package/contracts/registry/RegistryService.sol +148 -276
  463. package/contracts/registry/RegistryServiceManager.sol +29 -19
  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 +331 -0
  468. package/contracts/registry/TokenRegistry.sol +313 -0
  469. package/contracts/shared/Component.sol +210 -0
  470. package/contracts/shared/ComponentService.sol +708 -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 +58 -0
  475. package/contracts/shared/IComponentService.sol +112 -0
  476. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  477. package/contracts/{instance/base → shared}/IKeyValueStore.sol +20 -14
  478. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  479. package/contracts/shared/INftOwnable.sol +15 -12
  480. package/contracts/shared/IPolicyHolder.sol +35 -0
  481. package/contracts/shared/IRegisterable.sol +25 -5
  482. package/contracts/shared/IRegistryLinked.sol +11 -0
  483. package/contracts/shared/IService.sol +23 -0
  484. package/contracts/shared/InitializableERC165.sol +35 -0
  485. package/contracts/shared/InstanceLinkedComponent.sol +195 -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 +75 -84
  490. package/contracts/shared/PolicyHolder.sol +62 -0
  491. package/contracts/shared/Registerable.sol +54 -37
  492. package/contracts/shared/RegistryLinked.sol +38 -0
  493. package/contracts/shared/Service.sol +65 -0
  494. package/contracts/shared/TokenHandler.sol +329 -14
  495. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  496. package/contracts/staking/IStaking.sol +175 -0
  497. package/contracts/staking/IStakingService.sol +172 -0
  498. package/contracts/staking/Staking.sol +546 -0
  499. package/contracts/staking/StakingLib.sol +281 -0
  500. package/contracts/staking/StakingLifecycle.sol +23 -0
  501. package/contracts/staking/StakingManager.sol +52 -0
  502. package/contracts/staking/StakingReader.sol +180 -0
  503. package/contracts/staking/StakingService.sol +464 -0
  504. package/contracts/staking/StakingServiceManager.sol +45 -0
  505. package/contracts/staking/StakingStore.sol +606 -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/type/ClaimId.sol +80 -0
  511. package/contracts/{types → type}/DistributorType.sol +2 -2
  512. package/contracts/type/Fee.sol +66 -0
  513. package/contracts/{types → type}/Key32.sol +2 -2
  514. package/contracts/type/Key32Set.sol +62 -0
  515. package/contracts/{types → type}/NftId.sol +28 -15
  516. package/contracts/type/NftIdSet.sol +62 -0
  517. package/contracts/type/ObjectType.sol +294 -0
  518. package/contracts/type/PayoutId.sol +82 -0
  519. package/contracts/{types → type}/Referral.sol +6 -1
  520. package/contracts/type/RequestId.sol +75 -0
  521. package/contracts/type/RiskId.sol +75 -0
  522. package/contracts/type/RoleId.sol +182 -0
  523. package/contracts/type/Seconds.sol +101 -0
  524. package/contracts/type/Selector.sol +107 -0
  525. package/contracts/{types → type}/StateId.sol +52 -4
  526. package/contracts/type/String.sol +53 -0
  527. package/contracts/{types → type}/Timestamp.sol +33 -19
  528. package/contracts/{types → type}/UFixed.sol +48 -12
  529. package/contracts/{types → type}/Version.sol +61 -6
  530. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  531. package/contracts/upgradeability/ProxyManager.sol +232 -0
  532. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  533. package/contracts/upgradeability/Versionable.sol +59 -0
  534. package/package.json +13 -8
  535. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -241
  537. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  538. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  539. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  541. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  543. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  544. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  545. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  547. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  549. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  551. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  554. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  556. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  558. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  560. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  562. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  564. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  566. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  568. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  570. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  571. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  572. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
  573. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  574. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  575. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  576. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  577. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  578. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  579. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  581. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -736
  582. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  583. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  584. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  585. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  587. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  588. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  589. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  590. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  591. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  592. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  593. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  594. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  595. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  596. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  597. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  598. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  599. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  600. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  601. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  602. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  603. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  605. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  607. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -10
  609. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  611. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  613. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  615. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  617. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  618. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  619. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  620. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  621. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  623. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  625. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  627. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  629. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  633. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  635. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  637. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  639. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  641. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  643. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  645. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  647. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  649. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  651. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  653. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  655. package/contracts/components/IBaseComponent.sol +0 -19
  656. package/contracts/experiment/errors/Require.sol +0 -38
  657. package/contracts/experiment/errors/Revert.sol +0 -44
  658. package/contracts/experiment/inheritance/A.sol +0 -53
  659. package/contracts/experiment/inheritance/B.sol +0 -28
  660. package/contracts/experiment/inheritance/C.sol +0 -34
  661. package/contracts/experiment/inheritance/IA.sol +0 -13
  662. package/contracts/experiment/inheritance/IB.sol +0 -10
  663. package/contracts/experiment/inheritance/IC.sol +0 -12
  664. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  665. package/contracts/experiment/statemachine/ISM.sol +0 -25
  666. package/contracts/experiment/statemachine/SM.sol +0 -57
  667. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  668. package/contracts/experiment/types/TypeA.sol +0 -47
  669. package/contracts/experiment/types/TypeB.sol +0 -29
  670. package/contracts/instance/AccessManagedSimple.sol +0 -114
  671. package/contracts/instance/AccessManagerSimple.sol +0 -682
  672. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  673. package/contracts/instance/InstanceAccessManager.sol +0 -288
  674. package/contracts/instance/base/IService.sol +0 -15
  675. package/contracts/instance/base/KeyValueStore.sol +0 -188
  676. package/contracts/instance/base/Lifecycle.sol +0 -100
  677. package/contracts/instance/base/ServiceBase.sol +0 -44
  678. package/contracts/instance/module/IAccess.sol +0 -38
  679. package/contracts/instance/module/ISetup.sol +0 -41
  680. package/contracts/instance/module/ITreasury.sol +0 -23
  681. package/contracts/registry/IChainNft.sol +0 -22
  682. package/contracts/shared/ContractDeployerLib.sol +0 -72
  683. package/contracts/shared/ERC165.sol +0 -21
  684. package/contracts/shared/ProxyManager.sol +0 -94
  685. package/contracts/shared/Versionable.sol +0 -147
  686. package/contracts/test/TestFee.sol +0 -25
  687. package/contracts/test/TestRegisterable.sol +0 -18
  688. package/contracts/test/TestRoleId.sol +0 -14
  689. package/contracts/test/TestService.sol +0 -26
  690. package/contracts/test/TestVersion.sol +0 -44
  691. package/contracts/test/TestVersionable.sol +0 -17
  692. package/contracts/test/Usdc.sol +0 -26
  693. package/contracts/types/ChainId.sol +0 -38
  694. package/contracts/types/Fee.sol +0 -56
  695. package/contracts/types/NftIdSet.sol +0 -60
  696. package/contracts/types/NumberId.sol +0 -52
  697. package/contracts/types/ObjectType.sol +0 -152
  698. package/contracts/types/RiskId.sol +0 -43
  699. package/contracts/types/RoleId.sol +0 -75
@@ -1,369 +1,241 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin5/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {IRegistry} from "../registry/IRegistry.sol";
7
- // import {IInstance} from "../instance/IInstance.sol";
8
-
9
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
10
- // import {IComponent, IComponentModule} from "../../contracts/instance/module/component/IComponent.sol";
11
- // import {IPool} from "../../contracts/instance/module/pool/IPoolModule.sol";
12
- import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
13
- // import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
14
- // import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
15
- // import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
16
-
17
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
18
- import {Versionable} from "../../contracts/shared/Versionable.sol";
4
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
6
+ import {IInstance} from "../instance/IInstance.sol";
7
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
8
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
19
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
20
-
21
- import {RoleId} from "../../contracts/types/RoleId.sol";
22
- import {ObjectType, REGISTRY, TOKEN, SERVICE, PRODUCT, ORACLE, POOL, TOKEN, INSTANCE, DISTRIBUTION, POLICY, BUNDLE} 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";
27
-
28
- import {ServiceBase} from "../../contracts/instance/base/ServiceBase.sol";
29
- import {IService} from "../../contracts/instance/base/IService.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
30
11
  import {IRegistryService} from "./IRegistryService.sol";
31
- import {Registry} from "../registry/Registry.sol";
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";
15
+ import {Service} from "../shared/Service.sol";
32
16
 
33
17
  contract RegistryService is
34
- ServiceBase,
18
+ Service,
35
19
  IRegistryService
36
20
  {
37
- using NftIdLib for NftId;
38
-
39
- error NotRegistryOwner();
40
- error MissingAllowance();
41
-
42
- error NotToken();
43
- error NotService();
44
- error NotComponent();
45
- error NotInstance();
46
-
47
- error InvalidAddress(address registerableAddress);
48
- error InvalidInitialOwner(address initialOwner);
49
- error SelfRegistration();
50
- error InvalidType(ObjectType objectType);
51
-
52
- string public constant NAME = "RegistryService";
53
-
54
21
  // TODO update to real hash when registry is stable
55
22
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
56
23
 
57
- address constant public NFT_LOCK_ADDRESS = address(0x1);
58
-
59
- /// @dev
60
- // msg.sender - ONLY registry owner
61
- // CAN register ANY non IRegisterable address
62
- // CAN register ONLY valid object-parent types combinations for TOKEN
63
- // CAN NOT register itself
64
- // IMPORTANT: MUST NOT call untrusted contract inbetween calls to registry/instance (trusted contracts)
65
- // motivation: registry/instance state may change during external call
66
- // TODO it may be usefull to have transferable token nft in order to delist token, make it invalid for new beginings
67
- // TODO: MUST prohibit registration of precompiles addresses
68
- function registerToken(address tokenAddress)
69
- external
70
- returns(NftId nftId)
24
+ // from Versionable
25
+
26
+ /// @dev top level initializer
27
+ function _initialize(
28
+ address owner,
29
+ bytes memory data
30
+ )
31
+ internal
32
+ virtual override
33
+ initializer()
71
34
  {
72
- IRegisterable registerable = IRegisterable(tokenAddress);
73
- bool isRegisterable;
74
-
75
- // registryOwner can not register IRegisterable as TOKEN
76
- try registerable.supportsInterface(type(IRegisterable).interfaceId) returns(bool result) {
77
- isRegisterable = result;
78
- } catch {
79
- isRegisterable = false;
80
- }
35
+ (
36
+ address authority,
37
+ address registry
38
+ ) = abi.decode(data, (address, address));
81
39
 
82
- if(isRegisterable) {
83
- revert NotToken();
84
- }
40
+ __Service_init(authority, registry, owner);
41
+ _registerInterface(type(IRegistryService).interfaceId);
42
+ }
85
43
 
86
- NftId registryNftId = _registry.getNftId(address(_registry));
87
- if(msg.sender != _registry.ownerOf(registryNftId)) {
88
- revert NotRegistryOwner();
89
- }
90
44
 
91
- IRegistry.ObjectInfo memory info = IRegistry.ObjectInfo(
92
- zeroNftId(), // any value
93
- registryNftId, // parent nft id
94
- TOKEN(),
95
- false, // isInterceptor
96
- tokenAddress,
97
- NFT_LOCK_ADDRESS,
98
- "" // any value
99
- );
100
-
101
- nftId = _registry.register(info);
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);
102
55
  }
103
56
 
104
- /// @dev
105
- // msg.sender - ONLY registry owner
106
- // CAN register ONLY valid object-parent types combinations for SERVICE
107
- // CAN register ONLY IRegisterable address he owns
108
- // CAN NOT register itself
109
- // IMPORTANT: MUST NOT check owner before calling external contract
110
- function registerService(IService service)
57
+
58
+ function registerInstance(IRegisterable instance, address owner)
111
59
  external
60
+ virtual
61
+ restricted()
112
62
  returns(
113
- IRegistry.ObjectInfo memory info,
114
- bytes memory data
63
+ IRegistry.ObjectInfo memory info
115
64
  )
116
65
  {
117
- if(service.supportsInterface(type(IService).interfaceId) == false) {
118
- revert NotService();
119
- }
120
-
121
- (
122
- info,
123
- data
124
- ) = _getAndVerifyContractInfo(service, SERVICE(), msg.sender);
125
-
126
- NftId registryNftId = _registry.getNftId(address(_registry));
127
- if(msg.sender != _registry.ownerOf(registryNftId)) {
128
- revert NotRegistryOwner();
66
+ if(!instance.supportsInterface(type(IInstance).interfaceId)) {
67
+ revert ErrorRegistryServiceNotInstance(address(instance));
129
68
  }
130
69
 
131
- info.initialOwner = NFT_LOCK_ADDRESS;//registry.getLockAddress();
132
- info.nftId = _registry.register(info);
133
- service.linkToRegisteredNftId();
70
+ info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
71
+ info.nftId = getRegistry().register(info);
134
72
 
135
- return (
136
- info,
137
- data
138
- );
73
+ instance.linkToRegisteredNftId(); // asume safe
139
74
  }
140
75
 
141
- // anybody can register component if instance gives a corresponding role
142
- //function registerComponent(IBaseComponent component, ObjectType componentType)
143
- function registerComponent(IBaseComponent component, ObjectType componentType, address owner)
76
+ function registerProduct(
77
+ IComponent product,
78
+ address initialOwner
79
+ )
144
80
  external
81
+ virtual
82
+ restricted()
145
83
  returns(
146
- IRegistry.ObjectInfo memory info,
147
- bytes memory data
84
+ IRegistry.ObjectInfo memory info
148
85
  )
149
86
  {
150
- if(!component.supportsInterface(type(IBaseComponent).interfaceId)) {
151
- revert NotComponent();
87
+ if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
88
+ revert ErrorRegistryServiceNotProduct(address(product));
152
89
  }
153
90
 
154
- (
155
- info,
156
- data
157
- ) = _getAndVerifyContractInfo(component, componentType, owner);
158
-
159
- NftId serviceNftId = _registry.getNftId(msg.sender);
91
+ info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
92
+ info.nftId = getRegistry().register(info);
93
+ }
160
94
 
161
- if(!_registry.allowance(serviceNftId, componentType)) {
162
- revert MissingAllowance();
163
- }
95
+ function registerProductLinkedComponent(
96
+ IComponent component,
97
+ ObjectType objectType,
98
+ address initialOwner
99
+ )
100
+ external
101
+ virtual
102
+ restricted()
103
+ returns(
104
+ IRegistry.ObjectInfo memory info
105
+ )
106
+ {
107
+ // CAN revert if no ERC165 support -> will revert with empty message
108
+ if(!component.supportsInterface(type(IComponent).interfaceId)) {
109
+ revert ErrorRegistryServiceNotComponent(address(component));
110
+ }
164
111
 
165
- info.nftId = _registry.register(info);
166
- component.linkToRegisteredNftId();
112
+ if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
113
+ revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
114
+ }
167
115
 
168
- return (
169
- info,
170
- data
171
- );
116
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
117
+ info.nftId = getRegistry().register(info);
172
118
  }
173
119
 
174
- // TODO: when called by approved service: add owner arg (service must pass it's msg.sender as owner) & check service allowance
175
- //function registerInstance(IRegisterable instance, address owner)
176
- function registerInstance(IRegisterable instance)
177
- external
178
- returns(
179
- IRegistry.ObjectInfo memory info,
180
- bytes memory data
181
- )
120
+ function registerDistributor(IRegistry.ObjectInfo memory info)
121
+ external
122
+ virtual
123
+ restricted()
124
+ returns(NftId nftId)
182
125
  {
183
- // TODO reactivate later
184
- // if(instance.supportsInterface(type(IInstance).interfaceId) == false) {
185
- // revert NotInstance();
186
- // }
187
-
188
- // (
189
- // info,
190
- // data
191
- // ) = _getAndVerifyContractInfo(instance, INSTANCE(), msg.sender);// owner);
192
-
193
- // info.nftId = _registry.register(info);
194
- // instance.linkToRegisteredNftId();
195
-
196
- // return (
197
- // info,
198
- // data
199
- // );
126
+ _verifyObjectInfo(info, DISTRIBUTOR());
127
+ nftId = getRegistry().register(info);
200
128
  }
201
129
 
202
130
  function registerPolicy(IRegistry.ObjectInfo memory info)
203
- external
131
+ external
132
+ virtual
133
+ restricted()
204
134
  returns(NftId nftId)
205
135
  {
206
- NftId senderNftId = _registry.getNftId(msg.sender);
207
-
208
- if(_registry.allowance(senderNftId, POLICY()) == false) {
209
- revert MissingAllowance();
210
- }
211
-
212
136
  _verifyObjectInfo(info, POLICY());
213
-
214
- nftId = _registry.register(info);
137
+ nftId = getRegistry().register(info);
215
138
  }
216
139
 
217
140
  function registerBundle(IRegistry.ObjectInfo memory info)
218
- external
141
+ external
142
+ virtual
143
+ restricted()
219
144
  returns(NftId nftId)
220
145
  {
221
- NftId senderNftId = _registry.getNftId(msg.sender);
222
-
223
- if(_registry.allowance(senderNftId, BUNDLE()) == false) {
224
- revert MissingAllowance();
225
- }
226
-
227
146
  _verifyObjectInfo(info, BUNDLE());
228
-
229
- nftId = _registry.register(info);
147
+ nftId = getRegistry().register(info);
230
148
  }
231
149
 
232
-
233
- // From IService
234
- function getName() public pure override(IService, ServiceBase) returns(string memory) {
235
- return NAME;
236
- }
237
-
238
-
239
- // from Versionable
240
-
241
- /// @dev top level initializer
242
- // 1) registry is non upgradeable -> don't need a proxy and uses constructor !
243
- // 2) deploy registry service first -> from its initialization func it is easier to deploy registry then vice versa
244
- // 3) deploy registry -> pass registry service address as constructor argument
245
- // registry is getting instantiated and locked to registry service address forever
246
- function _initialize(
247
- address owner,
248
- bytes memory registryByteCodeWithInitCode
249
- )
250
- internal
251
- initializer
252
- virtual override
150
+ function registerStake(IRegistry.ObjectInfo memory info)
151
+ external
152
+ virtual
153
+ restricted()
154
+ returns(NftId nftId)
253
155
  {
254
- bytes memory encodedConstructorArguments = abi.encode(
255
- owner,
256
- getMajorVersion());
257
-
258
- bytes memory registryCreationCode = ContractDeployerLib.getCreationCode(
259
- registryByteCodeWithInitCode,
260
- encodedConstructorArguments);
261
-
262
- address registryAddress = ContractDeployerLib.deploy(
263
- registryCreationCode,
264
- REGISTRY_CREATION_CODE_HASH);
265
-
266
- IRegistry registry = IRegistry(registryAddress);
267
- NftId registryNftId = registry.getNftId(registryAddress);
268
-
269
- _initializeServiceBase(registryAddress, registryNftId, owner);
270
- linkToRegisteredNftId();
271
-
272
- _registerInterface(type(IRegistryService).interfaceId);
156
+ _verifyObjectInfo(info, STAKE());
157
+ nftId = getRegistry().register(info);
273
158
  }
274
159
 
275
- // parent check done in registry because of approve()
160
+ // Internal
161
+
276
162
  function _getAndVerifyContractInfo(
277
163
  IRegisterable registerable,
278
- ObjectType objectType,
279
- address owner
164
+ ObjectType expectedType, // assume can be valid only
165
+ address expectedOwner // assume can be 0 when given by other service
280
166
  )
281
167
  internal
168
+ virtual
169
+ view
282
170
  returns(
283
- IRegistry.ObjectInfo memory info,
284
- bytes memory data
171
+ IRegistry.ObjectInfo memory info
285
172
  )
286
173
  {
287
- (
288
- info,
289
- data
290
- ) = registerable.getInitialInfo();
174
+ info = registerable.getInitialInfo();
291
175
 
292
176
  if(info.objectAddress != address(registerable)) {
293
- revert InvalidAddress(info.objectAddress);
177
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
294
178
  }
295
179
 
296
- if(
297
- getRegistry().isRegistered(owner) ||
298
- info.initialOwner != owner) { // contract owner protection
299
- revert InvalidInitialOwner(info.initialOwner);
180
+ if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
181
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
300
182
  }
301
183
 
302
- if(msg.sender == address(registerable)) {
303
- revert SelfRegistration();
304
- }
305
-
306
- if(info.objectType != objectType) {
307
- revert InvalidType(info.objectType);
308
- }
184
+ address owner = info.initialOwner;
309
185
 
310
- /*NftId parentNftId = info.parentNftId;
311
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
186
+ if(owner != expectedOwner) { // registerable owner protection
187
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
188
+ }
312
189
 
313
- if(parentInfo.objectType != parentType) { // parent registration + type
314
- revert InvalidParent(parentNftId);
315
- }*/
190
+ if(owner == address(registerable)) {
191
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
192
+ }
316
193
 
317
- return(
318
- info,
319
- data
320
- );
194
+ if(owner == address(0)) {
195
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
196
+ }
197
+
198
+ if(getRegistry().isRegistered(owner)) {
199
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
200
+ }
321
201
  }
322
202
 
323
- // parent checks done in registry because of approve()
324
203
  function _verifyObjectInfo(
325
204
  IRegistry.ObjectInfo memory info,
326
- ObjectType objectType
205
+ ObjectType expectedType
327
206
  )
328
207
  internal
208
+ virtual
329
209
  view
330
210
  {
331
211
  if(info.objectAddress > address(0)) {
332
- revert InvalidAddress(info.objectAddress);
212
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
333
213
  }
334
214
 
335
- if(
336
- getRegistry().isRegistered(info.initialOwner) ||
337
- info.initialOwner == address(0)) {
338
- // TODO non registered address can register object(e.g. POLICY()) and then transfer associated nft to registered contract
339
- // what are motivations to do so?
340
- // at least registered contract can not register objects by itself, SERVICE,
341
- revert InvalidInitialOwner(info.initialOwner);
215
+ if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
216
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
342
217
  }
343
218
 
344
- // can catch all 3 if check that initialOwner is not registered
345
- /*if(info.initialOwner == msg.sender) {
346
- revert InitialOwnerIsParent();
347
- }
219
+ address owner = info.initialOwner;
348
220
 
349
- if(info.initialOwner == address(this)) {
350
- revert InitialOwnerIsService();
221
+ if(owner == address(0)) {
222
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
351
223
  }
352
224
 
353
- if(info.initialOwner == address(getRegistry())) {
354
- revert InitialOwnerIsRegistry();
355
- }*/
356
-
357
-
358
- if(info.objectType != objectType) {
359
- revert InvalidType(info.objectType);
225
+ if(owner == msg.sender) {
226
+ revert ErrorRegistryServiceInvalidInitialOwner(owner);
360
227
  }
361
228
 
362
- /*NftId parentNftId = info.parentNftId;
363
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
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
+ }
234
+ }
235
+ }
364
236
 
365
- if(parentInfo.objectType != parentType) { // parent registration + type
366
- revert InvalidParent(parentNftId);
367
- }*/
237
+ // From IService
238
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
239
+ return REGISTRY();
368
240
  }
369
241
  }
@@ -1,38 +1,48 @@
1
- // SPDX-License-Identifier: UNLICENSED
1
+ // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Registry} from "./Registry.sol";
5
- import {IVersionable} from "../shared/IVersionable.sol";
6
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
6
  import {RegistryService} from "./RegistryService.sol";
8
7
 
9
-
10
8
  contract RegistryServiceManager is
11
9
  ProxyManager
12
10
  {
13
- RegistryService private _registryService;
11
+ error ErrorRegistryAccessManagerAuthorityZero();
12
+ error ErrorRegistryAccessManagerRegistryZero();
13
+
14
+ bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
15
+
16
+ RegistryService private immutable _registryService;
14
17
 
15
18
  /// @dev initializes proxy manager with registry service implementation and deploys registry
16
19
  constructor(
17
- )
18
- ProxyManager()
20
+ address authority, // used by implementation
21
+ address registry, // used by implementation
22
+ bytes32 salt
23
+ )
19
24
  {
20
- IVersionable versionable = deploy(
21
- address(new RegistryService()),
22
- type(Registry).creationCode);
25
+ if(authority == address(0)) {
26
+ revert ErrorRegistryAccessManagerAuthorityZero();
27
+ }
28
+
29
+ if(registry == address(0)) {
30
+ revert ErrorRegistryAccessManagerRegistryZero();
31
+ }
32
+
33
+ RegistryService srv = new RegistryService{ salt: salt }();
34
+ bytes memory data = abi.encode(authority, registry);
35
+ IVersionable versionable = initialize(
36
+ registry,
37
+ address(srv),
38
+ data,
39
+ salt);
23
40
 
24
41
  _registryService = RegistryService(address(versionable));
25
-
26
- // link ownership of registry service manager ot nft owner of registry service
27
- _linkToNftOwnable(
28
- address(_registryService.getRegistry()),
29
- address(_registryService));
30
-
31
- // implies that after this constructor call only upgrade functionality is available
32
- _isDeployed = true;
33
42
  }
34
43
 
35
44
  //--- view functions ----------------------------------------------------//
45
+
36
46
  function getRegistryService()
37
47
  external
38
48
  view