@etherisc/gif-next 0.0.2-e4b632c-016 → 0.0.2-e4d7e1c-013

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 (751) hide show
  1. package/README.md +205 -21
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +949 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1037 -329
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +741 -139
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +561 -2778
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1997 -634
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +789 -216
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +413 -73
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +31 -8
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +404 -351
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +372 -173
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +931 -154
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +409 -209
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +1259 -258
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -323
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +384 -115
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  217. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Component.sol/Component.json} +374 -150
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IComponent.sol/IComponent.json} +319 -250
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +101 -20
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  280. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  296. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  306. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -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 +373 -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 +254 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -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 +180 -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 +572 -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 +65 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  360. package/contracts/accounting/AccountingService.sol +274 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +47 -0
  363. package/contracts/authorization/AccessAdmin.sol +780 -0
  364. package/contracts/authorization/AccessAdminLib.sol +396 -0
  365. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  366. package/contracts/authorization/Authorization.sol +169 -0
  367. package/contracts/authorization/IAccess.sol +67 -0
  368. package/contracts/authorization/IAccessAdmin.sol +144 -0
  369. package/contracts/authorization/IAuthorization.sol +26 -0
  370. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  371. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  372. package/contracts/distribution/BasicDistribution.sol +141 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  374. package/contracts/distribution/Distribution.sol +247 -0
  375. package/contracts/distribution/DistributionService.sol +448 -0
  376. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  377. package/contracts/distribution/IDistributionComponent.sol +45 -0
  378. package/contracts/distribution/IDistributionService.sol +115 -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 +437 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BundleSet.sol +130 -0
  393. package/contracts/instance/IInstance.sol +131 -19
  394. package/contracts/instance/IInstanceService.sol +104 -17
  395. package/contracts/instance/Instance.sol +246 -341
  396. package/contracts/instance/InstanceAdmin.sol +383 -0
  397. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  398. package/contracts/instance/InstanceReader.sol +531 -189
  399. package/contracts/instance/InstanceService.sol +451 -89
  400. package/contracts/instance/InstanceServiceManager.sol +14 -31
  401. package/contracts/instance/InstanceStore.sol +298 -0
  402. package/contracts/instance/RiskSet.sol +126 -0
  403. package/contracts/instance/base/BalanceStore.sol +121 -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 +109 -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 +10 -8
  410. package/contracts/instance/module/IComponents.sol +62 -0
  411. package/contracts/instance/module/IDistribution.sol +25 -10
  412. package/contracts/instance/module/IPolicy.sol +81 -21
  413. package/contracts/instance/module/IRisk.sol +6 -1
  414. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  415. package/contracts/oracle/BasicOracle.sol +45 -0
  416. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  417. package/contracts/oracle/IOracle.sol +41 -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 +162 -0
  424. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  425. package/contracts/pool/BundleService.sol +386 -0
  426. package/contracts/pool/BundleServiceManager.sol +39 -0
  427. package/contracts/pool/IBundleService.sol +116 -0
  428. package/contracts/pool/IPoolComponent.sol +62 -0
  429. package/contracts/pool/IPoolService.sol +170 -0
  430. package/contracts/pool/Pool.sol +333 -0
  431. package/contracts/pool/PoolLib.sol +341 -0
  432. package/contracts/pool/PoolService.sol +614 -0
  433. package/contracts/pool/PoolServiceManager.sol +39 -0
  434. package/contracts/product/ApplicationService.sol +327 -0
  435. package/contracts/product/ApplicationServiceManager.sol +38 -0
  436. package/contracts/product/BasicProduct.sol +49 -0
  437. package/contracts/product/BasicProductAuthorization.sol +63 -0
  438. package/contracts/product/ClaimService.sol +630 -0
  439. package/contracts/product/ClaimServiceManager.sol +38 -0
  440. package/contracts/product/IApplicationService.sol +88 -0
  441. package/contracts/product/IClaimService.sol +136 -0
  442. package/contracts/product/IPolicyService.sol +102 -0
  443. package/contracts/product/IPricingService.sol +40 -0
  444. package/contracts/product/IProductComponent.sol +62 -0
  445. package/contracts/product/IRiskService.sol +48 -0
  446. package/contracts/product/PolicyService.sol +645 -0
  447. package/contracts/product/PolicyServiceLib.sol +139 -0
  448. package/contracts/product/PolicyServiceManager.sol +39 -0
  449. package/contracts/product/PricingService.sol +306 -0
  450. package/contracts/product/PricingServiceManager.sol +39 -0
  451. package/contracts/product/Product.sol +493 -0
  452. package/contracts/product/RiskService.sol +190 -0
  453. package/contracts/product/RiskServiceManager.sol +39 -0
  454. package/contracts/registry/ChainNft.sol +82 -35
  455. package/contracts/registry/IRegistry.sol +134 -20
  456. package/contracts/registry/IRegistryService.sol +44 -17
  457. package/contracts/registry/IRelease.sol +29 -0
  458. package/contracts/registry/ITransferInterceptor.sol +1 -1
  459. package/contracts/registry/Registry.sol +580 -267
  460. package/contracts/registry/RegistryAdmin.sol +191 -0
  461. package/contracts/registry/RegistryAuthorization.sol +336 -0
  462. package/contracts/registry/RegistryService.sol +123 -326
  463. package/contracts/registry/RegistryServiceManager.sol +27 -38
  464. package/contracts/registry/ReleaseAdmin.sol +195 -0
  465. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  466. package/contracts/registry/ReleaseRegistry.sol +525 -0
  467. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  468. package/contracts/registry/TokenRegistry.sol +317 -0
  469. package/contracts/shared/Component.sol +214 -0
  470. package/contracts/shared/ComponentService.sol +687 -0
  471. package/contracts/shared/ComponentServiceManager.sol +38 -0
  472. package/contracts/shared/ContractLib.sol +312 -0
  473. package/contracts/shared/IComponent.sol +58 -0
  474. package/contracts/shared/IComponentService.sol +111 -0
  475. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  476. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  477. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  478. package/contracts/shared/INftOwnable.sol +17 -12
  479. package/contracts/shared/IPolicyHolder.sol +35 -0
  480. package/contracts/shared/IRegisterable.sol +24 -5
  481. package/contracts/shared/IRegistryLinked.sol +11 -0
  482. package/contracts/shared/IService.sol +13 -5
  483. package/contracts/shared/InitializableERC165.sol +35 -0
  484. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  485. package/contracts/shared/KeyValueStore.sol +131 -0
  486. package/contracts/shared/Lifecycle.sol +88 -0
  487. package/contracts/shared/NftIdSet.sol +65 -0
  488. package/contracts/shared/NftOwnable.sol +77 -84
  489. package/contracts/shared/PolicyHolder.sol +63 -0
  490. package/contracts/shared/Registerable.sol +54 -37
  491. package/contracts/shared/RegistryLinked.sol +38 -0
  492. package/contracts/shared/Service.sol +46 -33
  493. package/contracts/shared/TokenHandler.sol +327 -12
  494. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  495. package/contracts/staking/IStaking.sol +367 -0
  496. package/contracts/staking/IStakingService.sol +127 -0
  497. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  498. package/contracts/staking/Staking.sol +798 -0
  499. package/contracts/staking/StakingLib.sol +195 -0
  500. package/contracts/staking/StakingManager.sol +53 -0
  501. package/contracts/staking/StakingReader.sol +171 -0
  502. package/contracts/staking/StakingService.sol +321 -0
  503. package/contracts/staking/StakingServiceManager.sol +46 -0
  504. package/contracts/staking/StakingStore.sol +1368 -0
  505. package/contracts/staking/TargetHandler.sol +132 -0
  506. package/contracts/staking/TargetManagerLib.sol +234 -0
  507. package/contracts/{types → type}/AddressSet.sol +1 -1
  508. package/contracts/type/Amount.sol +154 -0
  509. package/contracts/{types → type}/Blocknumber.sol +36 -12
  510. package/contracts/type/ChainId.sol +101 -0
  511. package/contracts/type/ClaimId.sol +80 -0
  512. package/contracts/{types → type}/DistributorType.sol +2 -2
  513. package/contracts/type/Fee.sol +66 -0
  514. package/contracts/{types → type}/Key32.sol +2 -2
  515. package/contracts/type/Key32Set.sol +62 -0
  516. package/contracts/{types → type}/NftId.sol +28 -15
  517. package/contracts/type/NftIdSet.sol +62 -0
  518. package/contracts/type/ObjectType.sol +307 -0
  519. package/contracts/type/PayoutId.sol +82 -0
  520. package/contracts/{types → type}/Referral.sol +6 -1
  521. package/contracts/type/RequestId.sol +75 -0
  522. package/contracts/type/RiskId.sol +75 -0
  523. package/contracts/type/RoleId.sol +180 -0
  524. package/contracts/type/Seconds.sol +120 -0
  525. package/contracts/type/Selector.sol +107 -0
  526. package/contracts/{types → type}/StateId.sol +48 -4
  527. package/contracts/type/String.sol +65 -0
  528. package/contracts/{types → type}/Timestamp.sol +36 -20
  529. package/contracts/type/UFixed.sol +263 -0
  530. package/contracts/{types → type}/Version.sol +61 -6
  531. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  532. package/contracts/upgradeability/ProxyManager.sol +246 -0
  533. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  534. package/contracts/upgradeability/Versionable.sol +62 -0
  535. package/package.json +12 -8
  536. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
  538. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  539. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
  540. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  541. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
  542. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  543. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  544. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  545. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  546. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  547. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  548. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  549. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
  550. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  551. package/artifacts/contracts/components/Product.sol/Product.json +0 -754
  552. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  554. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  556. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  558. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  560. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  562. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  564. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  566. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  568. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  570. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  572. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  575. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  577. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  579. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  581. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  582. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  583. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  584. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  585. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  586. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  587. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  588. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  589. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  590. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  591. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  592. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  593. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  594. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  595. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  596. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  597. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -930
  598. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  600. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  601. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  602. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  603. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  604. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  605. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  606. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  607. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  608. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  609. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  610. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  613. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -604
  615. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  617. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  619. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  620. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  621. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  622. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  623. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  624. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  625. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  626. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  627. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  628. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  629. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  630. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  631. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  632. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  633. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  634. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  635. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  636. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  637. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  638. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  639. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  640. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  641. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  642. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  643. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  644. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  645. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  646. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  647. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  648. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  649. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  650. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  651. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  652. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  653. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  654. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  656. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  658. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  660. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  662. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  663. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  664. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  666. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  667. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  668. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  670. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  672. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  673. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  674. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  675. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  676. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  677. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  678. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  679. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  680. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  681. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  682. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  683. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  684. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  685. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  686. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  687. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  688. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  689. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  690. package/contracts/components/BaseComponent.sol +0 -86
  691. package/contracts/components/Distribution.sol +0 -166
  692. package/contracts/components/IBaseComponent.sol +0 -24
  693. package/contracts/components/IDistributionComponent.sol +0 -43
  694. package/contracts/components/IPoolComponent.sol +0 -62
  695. package/contracts/components/IProductComponent.sol +0 -35
  696. package/contracts/components/Pool.sol +0 -259
  697. package/contracts/components/Product.sol +0 -297
  698. package/contracts/experiment/cloning/Cloner.sol +0 -47
  699. package/contracts/experiment/errors/Require.sol +0 -38
  700. package/contracts/experiment/errors/Revert.sol +0 -44
  701. package/contracts/experiment/inheritance/A.sol +0 -53
  702. package/contracts/experiment/inheritance/B.sol +0 -28
  703. package/contracts/experiment/inheritance/C.sol +0 -34
  704. package/contracts/experiment/inheritance/IA.sol +0 -13
  705. package/contracts/experiment/inheritance/IB.sol +0 -10
  706. package/contracts/experiment/inheritance/IC.sol +0 -12
  707. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  708. package/contracts/experiment/statemachine/ISM.sol +0 -25
  709. package/contracts/experiment/statemachine/SM.sol +0 -57
  710. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  711. package/contracts/experiment/types/TypeA.sol +0 -47
  712. package/contracts/experiment/types/TypeB.sol +0 -29
  713. package/contracts/instance/AccessManagedSimple.sol +0 -122
  714. package/contracts/instance/AccessManagerSimple.sol +0 -692
  715. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  716. package/contracts/instance/InstanceAccessManager.sol +0 -288
  717. package/contracts/instance/base/ComponentServiceBase.sol +0 -39
  718. package/contracts/instance/base/IInstanceBase.sol +0 -23
  719. package/contracts/instance/base/KeyValueStore.sol +0 -172
  720. package/contracts/instance/base/Lifecycle.sol +0 -100
  721. package/contracts/instance/module/IAccess.sol +0 -38
  722. package/contracts/instance/module/ISetup.sol +0 -43
  723. package/contracts/instance/module/ITreasury.sol +0 -23
  724. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  725. package/contracts/instance/service/DistributionService.sol +0 -70
  726. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  727. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  728. package/contracts/instance/service/IDistributionService.sol +0 -12
  729. package/contracts/instance/service/IPoolService.sol +0 -37
  730. package/contracts/instance/service/IProductService.sol +0 -107
  731. package/contracts/shared/ContractDeployerLib.sol +0 -72
  732. package/contracts/shared/ERC165.sol +0 -21
  733. package/contracts/shared/ProxyManager.sol +0 -94
  734. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  735. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  736. package/contracts/shared/Versionable.sol +0 -147
  737. package/contracts/test/TestFee.sol +0 -25
  738. package/contracts/test/TestRegisterable.sol +0 -18
  739. package/contracts/test/TestRoleId.sol +0 -14
  740. package/contracts/test/TestService.sol +0 -24
  741. package/contracts/test/TestToken.sol +0 -26
  742. package/contracts/test/TestVersion.sol +0 -44
  743. package/contracts/test/TestVersionable.sol +0 -17
  744. package/contracts/types/ChainId.sol +0 -38
  745. package/contracts/types/Fee.sol +0 -56
  746. package/contracts/types/NftIdSet.sol +0 -60
  747. package/contracts/types/NumberId.sol +0 -52
  748. package/contracts/types/ObjectType.sol +0 -152
  749. package/contracts/types/RiskId.sol +0 -43
  750. package/contracts/types/RoleId.sol +0 -82
  751. package/contracts/types/UFixed.sol +0 -325
@@ -1,444 +1,241 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
6
- import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
7
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
8
-
9
- import {IRegistry} from "./IRegistry.sol";
4
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
10
6
  import {IInstance} from "../instance/IInstance.sol";
11
-
12
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
13
- // import {IComponent, IComponentModule} from "../../contracts/instance/module/component/IComponent.sol";
14
- // import {IPool} from "../../contracts/instance/module/pool/IPoolModule.sol";
15
- import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
16
- import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
17
- import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
18
- import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
19
-
20
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
21
- import {Versionable} from "../../contracts/shared/Versionable.sol";
7
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
8
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
22
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+ import {IRegistryService} from "./IRegistryService.sol";
23
12
 
24
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
25
- import {ObjectType, REGISTRY, TOKEN, SERVICE, PRODUCT, ORACLE, POOL, TOKEN, INSTANCE, DISTRIBUTION, POLICY, BUNDLE} from "../../contracts/types/ObjectType.sol";
26
- import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
27
- import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
28
- import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
29
- import {Version, VersionPart, VersionLib} from "../../contracts/types/Version.sol";
30
-
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";
31
15
  import {Service} from "../shared/Service.sol";
32
- import {IService} from "../shared/IService.sol";
33
- import {IRegistryService} from "./IRegistryService.sol";
34
- import {Registry} from "./Registry.sol";
35
- import {ChainNft} from "./ChainNft.sol";
36
16
 
37
17
  contract RegistryService is
38
- AccessManagedUpgradeable,
39
18
  Service,
40
19
  IRegistryService
41
20
  {
42
- using NftIdLib for NftId;
43
-
44
- error SelfRegistration();
45
- error NotRegistryOwner();
46
-
47
- error NotToken();
48
- error NotService();
49
- error NotInstance();
50
- error NotProduct();
51
- error NotPool();
52
- error NotDistribution();
53
-
54
- error UnexpectedRegisterableType(ObjectType expected, ObjectType found);
55
- error NotRegisterableOwner(address expectedOwner);
56
- error RegisterableOwnerIsZero();
57
- error RegisterableOwnerIsRegistered();
58
- error InvalidInitialOwner(address initialOwner);
59
- error InvalidAddress(address registerableAddress);
60
-
61
-
62
- // Initial value for constant variable has to be compile-time constant
63
- // TODO define types as constants?
64
- //ObjectType public constant SERVICE_TYPE = REGISTRY();
65
- string public constant NAME = "RegistryService";
66
-
67
21
  // TODO update to real hash when registry is stable
68
22
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
69
23
 
70
- address public constant NFT_LOCK_ADDRESS = address(0x1);
71
-
72
- /// @dev
73
- // msg.sender - ONLY registry owner
74
- // CAN NOT register itself
75
- // CAN NOT register IRegisterable address
76
- // CAN register ONLY valid object-parent types combinations for TOKEN
77
- // IMPORTANT: MUST NOT call untrusted contract inbetween calls to registry/instance (trusted contracts)
78
- // motivation: registry/instance state may change during external call
79
- // TODO it may be usefull to have transferable token nft in order to delist token, make it invalid for new beginings
80
- // TODO: MUST prohibit registration of precompiles addresses
81
- function registerToken(address tokenAddress)
82
- external
83
- returns(NftId nftId)
84
- {
85
- if(msg.sender == tokenAddress) {
86
- revert SelfRegistration();
87
- }
88
-
89
- // MUST not revert if no ERC165 support
90
- if(tokenAddress.code.length == 0 ||
91
- ERC165Checker.supportsInterface(tokenAddress, type(IRegisterable).interfaceId)) {
92
- revert NotToken();
93
- }
94
-
95
- NftId registryNftId = _registry.getNftId(address(_registry));
24
+ // from Versionable
96
25
 
97
- if(msg.sender != _registry.ownerOf(registryNftId)) {
98
- revert NotRegistryOwner();
99
- }
26
+ /// @dev top level initializer
27
+ function _initialize(
28
+ address owner,
29
+ bytes memory data
30
+ )
31
+ internal
32
+ virtual override
33
+ onlyInitializing
34
+ {
35
+ (
36
+ address authority,
37
+ address registry
38
+ ) = abi.decode(data, (address, address));
100
39
 
101
- IRegistry.ObjectInfo memory info = IRegistry.ObjectInfo(
102
- zeroNftId(), // any value
103
- registryNftId, // parent nft id
104
- TOKEN(),
105
- false, // isInterceptor
106
- tokenAddress,
107
- NFT_LOCK_ADDRESS,
108
- "" // any value
109
- );
110
-
111
- nftId = _registry.register(info);
40
+ __Service_init(authority, registry, owner);
41
+ _registerInterface(type(IRegistryService).interfaceId);
112
42
  }
113
43
 
114
- /// @dev
115
- // msg.sender - ONLY registry owner
116
- // CAN NOT register itself
117
- // CAN register ONLY valid object-parent types combinations for SERVICE
118
- // CAN register ONLY IRegisterable address he owns
119
- // IMPORTANT: MUST NOT check owner before calling external contract
120
- function registerService(IService service)
121
- external
122
- // TODO restrict access - registryService.registerService must use accessmanager for checking permissions as
123
- // services are not always owned by registry owner - actually only registry service is owned by registry owner
124
44
 
45
+ function registerStaking(IRegisterable staking, address owner)
46
+ external
47
+ virtual
48
+ restricted()
125
49
  returns(
126
- IRegistry.ObjectInfo memory info,
127
- bytes memory data
128
- )
50
+ IRegistry.ObjectInfo memory info
51
+ )
129
52
  {
130
-
131
- // CAN revert if no ERC165 support -> will revert with empty message
132
- if(!service.supportsInterface(type(IService).interfaceId)) {
133
- revert NotService();
134
- }
135
-
136
- (
137
- info,
138
- data
139
- ) = _getAndVerifyContractInfo(service, SERVICE(), msg.sender);
140
-
141
- info.nftId = _registry.register(info);
142
- service.linkToRegisteredNftId();
143
- return (
144
- info,
145
- data
146
- );
53
+ info = _getAndVerifyContractInfo(staking, STAKING(), owner);
54
+ info.nftId = getRegistry().register(info);
147
55
  }
148
56
 
149
- // If msg.sender is approved service:
150
- // 1) add owner arg (service MUST pass it's msg.sender as owner)
151
- // 2) check service allowance
152
- // 3) comment self registrstion check
153
- //function registerInstance(IRegisterable instance, address owner)
154
- function registerInstance(IRegisterable instance)
57
+
58
+ function registerInstance(IRegisterable instance, address owner)
155
59
  external
60
+ virtual
61
+ restricted()
156
62
  returns(
157
- IRegistry.ObjectInfo memory info,
158
- bytes memory data
63
+ IRegistry.ObjectInfo memory info
159
64
  )
160
65
  {
161
66
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
162
- revert NotInstance();
67
+ revert ErrorRegistryServiceNotInstance(address(instance));
163
68
  }
164
69
 
165
- (
166
- info,
167
- data
168
- ) = _getAndVerifyContractInfo(instance, INSTANCE(), msg.sender);
70
+ info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
71
+ info.nftId = getRegistry().register(info);
169
72
 
170
- info.nftId = _registry.register(info);
171
73
  instance.linkToRegisteredNftId(); // asume safe
172
-
173
- return (
174
- info,
175
- data
176
- );
177
74
  }
178
75
 
179
- function registerProduct(IBaseComponent product, address owner)
76
+ function registerProduct(
77
+ IComponent product,
78
+ address initialOwner
79
+ )
180
80
  external
181
- restricted
81
+ virtual
82
+ restricted()
182
83
  returns(
183
- IRegistry.ObjectInfo memory info,
184
- bytes memory data
84
+ IRegistry.ObjectInfo memory info
185
85
  )
186
86
  {
187
- // CAN revert if no ERC165 support -> will revert with empty message
188
87
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
189
- revert NotProduct();
88
+ revert ErrorRegistryServiceNotProduct(address(product));
190
89
  }
191
90
 
192
- (
193
- info,
194
- data
195
- ) = _getAndVerifyContractInfo(product, PRODUCT(), owner);
196
-
197
- NftId serviceNftId = _registry.getNftId(msg.sender);
198
-
199
- info.nftId = _registry.register(info);
200
- // TODO unsafe, let component or its owner derive nftId latter, when state assumptions and modifications of GIF contracts are finished
201
- product.linkToRegisteredNftId();
202
-
203
- return (
204
- info,
205
- data
206
- );
91
+ info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
92
+ info.nftId = getRegistry().register(info);
207
93
  }
208
94
 
209
- function registerPool(IBaseComponent pool, address owner)
95
+ function registerProductLinkedComponent(
96
+ IComponent component,
97
+ ObjectType objectType,
98
+ address initialOwner
99
+ )
210
100
  external
211
- restricted
101
+ virtual
102
+ restricted()
212
103
  returns(
213
- IRegistry.ObjectInfo memory info,
214
- bytes memory data
104
+ IRegistry.ObjectInfo memory info
215
105
  )
216
106
  {
217
- if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
218
- 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));
219
110
  }
220
111
 
221
- (
222
- info,
223
- data
224
- ) = _getAndVerifyContractInfo(pool, POOL(), owner);
225
-
226
- NftId serviceNftId = _registry.getNftId(msg.sender);
227
-
228
- info.nftId = _registry.register(info);
229
- pool.linkToRegisteredNftId();
112
+ if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
113
+ revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
114
+ }
230
115
 
231
- return (
232
- info,
233
- data
234
- );
116
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
117
+ info.nftId = getRegistry().register(info);
235
118
  }
236
119
 
237
- function registerDistribution(IBaseComponent distribution, address owner)
120
+ function registerDistributor(IRegistry.ObjectInfo memory info)
238
121
  external
239
- restricted
240
- returns(
241
- IRegistry.ObjectInfo memory info,
242
- bytes memory data
243
- )
122
+ virtual
123
+ restricted()
124
+ returns(NftId nftId)
244
125
  {
245
- if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
246
- revert NotDistribution();
247
- }
248
-
249
- (
250
- info,
251
- data
252
- ) = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
253
-
254
- NftId serviceNftId = _registry.getNftId(msg.sender);
255
-
256
- info.nftId = _registry.register(info);
257
- distribution.linkToRegisteredNftId();
258
-
259
- return (
260
- info,
261
- data
262
- );
126
+ _verifyObjectInfo(info, DISTRIBUTOR());
127
+ nftId = getRegistry().register(info);
263
128
  }
264
129
 
265
130
  function registerPolicy(IRegistry.ObjectInfo memory info)
266
131
  external
267
- restricted
132
+ virtual
133
+ restricted()
268
134
  returns(NftId nftId)
269
135
  {
270
- NftId senderNftId = _registry.getNftId(msg.sender);
271
-
272
136
  _verifyObjectInfo(info, POLICY());
273
-
274
- nftId = _registry.register(info);
137
+ nftId = getRegistry().register(info);
275
138
  }
276
139
 
277
140
  function registerBundle(IRegistry.ObjectInfo memory info)
278
141
  external
279
- restricted
142
+ virtual
143
+ restricted()
280
144
  returns(NftId nftId)
281
145
  {
282
-
283
- NftId senderNftId = _registry.getNftId(msg.sender);
284
-
285
146
  _verifyObjectInfo(info, BUNDLE());
286
-
287
- nftId = _registry.register(info);
288
- }
289
-
290
-
291
- // From IService
292
- function getName() public pure override(IService, Service) returns(string memory) {
293
- return NAME;
147
+ nftId = getRegistry().register(info);
294
148
  }
295
- //function getType() public pure override(IService, ServiceBase) returns(ObjectType serviceType) {
296
- // return SERVICE_TYPE;
297
- //}
298
-
299
149
 
300
- // from Versionable
301
-
302
- /// @dev top level initializer
303
- // 1) registry is non upgradeable -> don't need a proxy and uses constructor !
304
- // 2) deploy registry service first -> from its initialization func it is easier to deploy registry then vice versa
305
- // 3) deploy registry -> pass registry service address as constructor argument
306
- // registry is getting instantiated and locked to registry service address forever
307
- function _initialize(
308
- address owner,
309
- bytes memory data
310
- )
311
- internal
312
- initializer
313
- virtual override
150
+ function registerStake(IRegistry.ObjectInfo memory info)
151
+ external
152
+ virtual
153
+ restricted()
154
+ returns(NftId nftId)
314
155
  {
315
- (
316
- address initialAuthority,
317
- bytes memory registryByteCodeWithInitCode
318
- ) = abi.decode(data, (address, bytes));
319
-
320
- __AccessManaged_init(initialAuthority);
321
-
322
- bytes memory encodedConstructorArguments = abi.encode(
323
- owner,
324
- getMajorVersion());
325
-
326
- bytes memory registryCreationCode = ContractDeployerLib.getCreationCode(
327
- registryByteCodeWithInitCode,
328
- encodedConstructorArguments);
329
-
330
- IRegistry registry = IRegistry(ContractDeployerLib.deploy(
331
- registryCreationCode,
332
- REGISTRY_CREATION_CODE_HASH));
333
-
334
- NftId registryNftId = registry.getNftId(address(registry));
335
-
336
- _initializeService(address(registry), owner);
337
-
338
- // TODO why do registry service proxy need to keep its nftId??? -> no registryServiceNftId checks in implementation
339
- // if they are -> use registry address to obtain owner of registry service nft (works the same with any registerable and(or) implementation)
340
- linkToRegisteredNftId();
341
- _registerInterface(type(IRegistryService).interfaceId);
156
+ _verifyObjectInfo(info, STAKE());
157
+ nftId = getRegistry().register(info);
342
158
  }
343
159
 
344
- // parent check done in registry because of approve()
160
+ // Internal
161
+
345
162
  function _getAndVerifyContractInfo(
346
163
  IRegisterable registerable,
347
164
  ObjectType expectedType, // assume can be valid only
348
- address expectedOwner // assume can be 0
165
+ address expectedOwner // assume can be 0 when given by other service
349
166
  )
350
167
  internal
168
+ virtual
351
169
  view
352
170
  returns(
353
- IRegistry.ObjectInfo memory info,
354
- bytes memory data
171
+ IRegistry.ObjectInfo memory info
355
172
  )
356
173
  {
357
- (
358
- info,
359
- data
360
- ) = registerable.getInitialInfo();
361
- info.objectAddress = address(registerable);
174
+ info = registerable.getInitialInfo();
175
+
176
+ if(info.objectAddress != address(registerable)) {
177
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
178
+ }
362
179
 
363
180
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
364
- revert UnexpectedRegisterableType(expectedType, info.objectType);
181
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
365
182
  }
366
183
 
367
184
  address owner = info.initialOwner;
368
185
 
369
- // solhint-disable-next-line
370
- if(expectedType == INSTANCE()) {
371
- // any address may create a new instance via instance service
372
- } else {
373
- if(owner != expectedOwner) { // registerable owner protection
374
- revert NotRegisterableOwner(expectedOwner);
375
- }
186
+ if(owner != expectedOwner) { // registerable owner protection
187
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
376
188
  }
377
189
 
378
190
  if(owner == address(registerable)) {
379
- revert SelfRegistration();
191
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
380
192
  }
381
193
 
382
194
  if(owner == address(0)) {
383
- revert RegisterableOwnerIsZero();
195
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
384
196
  }
385
197
 
386
198
  if(getRegistry().isRegistered(owner)) {
387
- revert RegisterableOwnerIsRegistered();
199
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
388
200
  }
389
-
390
- /*NftId parentNftId = info.parentNftId;
391
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
392
-
393
- if(parentInfo.objectType != parentType) { // parent registration + type
394
- revert InvalidParent(parentNftId);
395
- }*/
396
-
397
- return(
398
- info,
399
- data
400
- );
401
201
  }
402
202
 
403
- // parent checks done in registry because of approve()
404
203
  function _verifyObjectInfo(
405
204
  IRegistry.ObjectInfo memory info,
406
- ObjectType objectType
205
+ ObjectType expectedType
407
206
  )
408
207
  internal
208
+ virtual
409
209
  view
410
210
  {
411
211
  if(info.objectAddress > address(0)) {
412
- revert InvalidAddress(info.objectAddress);
212
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
413
213
  }
414
214
 
415
- if(
416
- getRegistry().isRegistered(info.initialOwner) ||
417
- info.initialOwner == address(0)) {
418
- // TODO non registered address can register object(e.g. POLICY()) and then transfer associated nft to registered contract
419
- // what are motivations to do so?
420
- // at least registered contract can not register objects by itself, SERVICE,
421
- 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);
422
217
  }
423
218
 
424
- // can catch all 3 if check that initialOwner is not registered
425
- /*if(info.initialOwner == msg.sender) {
426
- revert InitialOwnerIsParent();
427
- }
219
+ address owner = info.initialOwner;
428
220
 
429
- if(info.initialOwner == address(this)) {
430
- revert InitialOwnerIsService();
221
+ if(owner == address(0)) {
222
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
431
223
  }
432
224
 
433
- if(info.initialOwner == address(getRegistry())) {
434
- revert InitialOwnerIsRegistry();
435
- }*/
225
+ if(owner == msg.sender) {
226
+ revert ErrorRegistryServiceInvalidInitialOwner(owner);
227
+ }
436
228
 
437
- /*NftId parentNftId = info.parentNftId;
438
- 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
+ }
439
236
 
440
- if(parentInfo.objectType != parentType) { // parent registration + type
441
- revert InvalidParent(parentNftId);
442
- }*/
237
+ // From IService
238
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
239
+ return REGISTRY();
443
240
  }
444
- }
241
+ }
@@ -1,51 +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 {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
7
 
13
-
14
8
  contract RegistryServiceManager is
15
9
  ProxyManager
16
10
  {
17
- bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
11
+ error ErrorRegistryAccessManagerAuthorityZero();
12
+ error ErrorRegistryAccessManagerRegistryZero();
18
13
 
19
- RegistryService private _registryService;
14
+ bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
20
15
 
21
- AccessManager private _accessManager;
16
+ RegistryService private immutable _registryService;
22
17
 
23
18
  /// @dev initializes proxy manager with registry service implementation and deploys registry
24
19
  constructor(
25
- address accessManager
26
- )
27
- ProxyManager()
20
+ address authority, // used by implementation
21
+ address registry, // used by implementation
22
+ bytes32 salt
23
+ )
28
24
  {
29
- _accessManager = AccessManager(accessManager);
30
-
31
- bytes memory initializationData = abi.encode(accessManager, type(Registry).creationCode);
32
-
33
- IVersionable versionable = deploy(
34
- address(new RegistryService()),
35
- initializationData);
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);
36
40
 
37
41
  _registryService = RegistryService(address(versionable));
38
-
39
- // link ownership of registry service manager ot nft owner of registry service
40
- _linkToNftOwnable(
41
- address(_registryService.getRegistry()),
42
- address(_registryService));
43
-
44
- // implies that after this constructor call only upgrade functionality is available
45
- _isDeployed = true;
46
42
  }
47
43
 
48
44
  //--- view functions ----------------------------------------------------//
45
+
49
46
  function getRegistryService()
50
47
  external
51
48
  view
@@ -53,12 +50,4 @@ contract RegistryServiceManager is
53
50
  {
54
51
  return _registryService;
55
52
  }
56
-
57
- function getAccessManager()
58
- external
59
- view
60
- returns (AccessManager)
61
- {
62
- return _accessManager;
63
- }
64
53
  }