@etherisc/gif-next 0.0.2-719a8f1-103 → 0.0.2-71b939f-497

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 (773) hide show
  1. package/README.md +252 -21
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  5. package/artifacts/contracts/{shared/IOwnable.sol/IOwnable.json → authorization/AccessAdmin.sol/IAccessManagedChecker.json} +4 -4
  6. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  8. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  10. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  12. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  14. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  18. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1018 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +917 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +984 -0
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +384 -1836
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +722 -0
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +401 -2076
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1666 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2286 -0
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1031 -0
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +746 -0
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  76. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  77. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  78. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  80. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  82. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  84. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  86. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  88. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  90. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  92. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  94. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  95. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  97. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  98. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  99. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  100. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  101. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +922 -0
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  132. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  133. package/artifacts/contracts/pool/Pool.sol/Pool.json +1029 -0
  134. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  136. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  138. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  140. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  142. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
  144. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  146. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  148. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  150. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +244 -345
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  154. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +944 -0
  156. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  158. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1005 -0
  160. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  161. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → product/IRiskService.sol/IRiskService.json} +202 -153
  162. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  171. package/artifacts/contracts/product/Product.sol/Product.json +1106 -0
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +103 -2
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +791 -163
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +539 -188
  182. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  184. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/Registry.sol/Registry.json +991 -147
  186. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  188. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +592 -215
  190. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +379 -102
  192. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  194. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  195. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  196. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  198. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  199. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  200. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  201. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  202. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  203. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1835 -0
  204. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  205. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +846 -0
  206. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  207. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +223 -205
  208. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  209. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/IInstanceLinked.sol/IInstanceLinked.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  212. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  214. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +620 -0
  216. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  217. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  218. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  219. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  220. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +122 -172
  222. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  223. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  224. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  225. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +82 -52
  226. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  227. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  228. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +94 -8
  230. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  231. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  232. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  233. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +168 -182
  234. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  236. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +799 -0
  238. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  240. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  241. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +101 -24
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +174 -12
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  252. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  253. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +215 -166
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +822 -0
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  264. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  268. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  280. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  282. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  283. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  284. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  286. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  288. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  290. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  292. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  294. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  296. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  297. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  298. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  300. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  301. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  302. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  304. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  306. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  308. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  310. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  312. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  314. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  316. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  318. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  322. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  333. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  340. package/contracts/authorization/AccessAdmin.sol +615 -0
  341. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  342. package/contracts/authorization/Authorization.sol +289 -0
  343. package/contracts/authorization/IAccess.sol +49 -0
  344. package/contracts/authorization/IAccessAdmin.sol +137 -0
  345. package/contracts/authorization/IAuthorization.sol +60 -0
  346. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  347. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  348. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  349. package/contracts/distribution/BasicDistribution.sol +139 -0
  350. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  351. package/contracts/distribution/Distribution.sol +284 -0
  352. package/contracts/distribution/DistributionService.sol +354 -0
  353. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  354. package/contracts/distribution/IDistributionComponent.sol +52 -0
  355. package/contracts/distribution/IDistributionService.sol +100 -0
  356. package/contracts/examples/fire/DamageLevel.sol +59 -0
  357. package/contracts/examples/fire/FirePool.sol +86 -0
  358. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  359. package/contracts/examples/fire/FireProduct.sol +431 -0
  360. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  361. package/contracts/examples/fire/FireUSD.sol +26 -0
  362. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  363. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  364. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  365. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  366. package/contracts/instance/BundleSet.sol +130 -0
  367. package/contracts/instance/IInstance.sol +64 -46
  368. package/contracts/instance/IInstanceService.sol +74 -0
  369. package/contracts/instance/Instance.sol +226 -70
  370. package/contracts/instance/InstanceAdmin.sol +281 -0
  371. package/contracts/instance/InstanceAuthorizationV3.sol +217 -0
  372. package/contracts/instance/InstanceReader.sol +581 -0
  373. package/contracts/instance/InstanceService.sol +425 -0
  374. package/contracts/instance/InstanceServiceManager.sol +39 -0
  375. package/contracts/instance/InstanceStore.sol +287 -0
  376. package/contracts/instance/RiskSet.sol +119 -0
  377. package/contracts/instance/base/BalanceStore.sol +123 -0
  378. package/contracts/instance/base/Cloneable.sol +28 -0
  379. package/contracts/instance/base/ObjectCounter.sol +20 -0
  380. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  381. package/contracts/instance/base/ObjectSet.sol +78 -0
  382. package/contracts/instance/module/IAccess.sol +46 -0
  383. package/contracts/instance/module/IBundle.sol +20 -0
  384. package/contracts/instance/module/IComponents.sol +50 -0
  385. package/contracts/instance/module/IDistribution.sol +41 -0
  386. package/contracts/instance/module/IPolicy.sol +85 -0
  387. package/contracts/instance/module/IRisk.sol +12 -0
  388. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  389. package/contracts/oracle/BasicOracle.sol +47 -0
  390. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  391. package/contracts/oracle/IOracle.sol +36 -0
  392. package/contracts/oracle/IOracleComponent.sol +33 -0
  393. package/contracts/oracle/IOracleService.sol +66 -0
  394. package/contracts/oracle/Oracle.sol +156 -0
  395. package/contracts/oracle/OracleService.sol +309 -0
  396. package/contracts/oracle/OracleServiceManager.sol +39 -0
  397. package/contracts/pool/BasicPool.sol +175 -0
  398. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  399. package/contracts/pool/BundleService.sol +423 -0
  400. package/contracts/pool/BundleServiceManager.sol +39 -0
  401. package/contracts/pool/IBundleService.sol +122 -0
  402. package/contracts/pool/IPoolComponent.sol +62 -0
  403. package/contracts/pool/IPoolService.sol +153 -0
  404. package/contracts/pool/Pool.sol +345 -0
  405. package/contracts/pool/PoolService.sol +612 -0
  406. package/contracts/pool/PoolServiceManager.sol +39 -0
  407. package/contracts/product/ApplicationService.sol +259 -0
  408. package/contracts/product/ApplicationServiceManager.sol +38 -0
  409. package/contracts/product/BasicProduct.sol +49 -0
  410. package/contracts/product/BasicProductAuthorization.sol +42 -0
  411. package/contracts/product/ClaimService.sol +614 -0
  412. package/contracts/product/ClaimServiceManager.sol +38 -0
  413. package/contracts/product/IApplicationService.sol +66 -0
  414. package/contracts/product/IClaimService.sol +123 -0
  415. package/contracts/product/IPolicyService.sol +90 -0
  416. package/contracts/product/IPricingService.sol +39 -0
  417. package/contracts/product/IProductComponent.sol +59 -0
  418. package/contracts/product/IRiskService.sol +33 -0
  419. package/contracts/product/PolicyService.sol +733 -0
  420. package/contracts/product/PolicyServiceManager.sol +39 -0
  421. package/contracts/product/PricingService.sol +300 -0
  422. package/contracts/product/PricingServiceManager.sol +39 -0
  423. package/contracts/product/Product.sol +427 -0
  424. package/contracts/product/RiskService.sol +107 -0
  425. package/contracts/product/RiskServiceManager.sol +39 -0
  426. package/contracts/registry/ChainNft.sol +99 -37
  427. package/contracts/registry/IRegistry.sol +139 -39
  428. package/contracts/registry/IRegistryService.sol +49 -16
  429. package/contracts/registry/ITransferInterceptor.sol +1 -1
  430. package/contracts/registry/Registry.sol +568 -333
  431. package/contracts/registry/RegistryAdmin.sol +451 -0
  432. package/contracts/registry/RegistryService.sol +144 -278
  433. package/contracts/registry/RegistryServiceManager.sol +28 -27
  434. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  435. package/contracts/registry/ReleaseRegistry.sol +486 -0
  436. package/contracts/registry/ServiceAuthorizationV3.sol +175 -0
  437. package/contracts/registry/TokenRegistry.sol +315 -0
  438. package/contracts/shared/Component.sol +217 -0
  439. package/contracts/shared/ComponentService.sol +809 -0
  440. package/contracts/shared/ComponentServiceManager.sol +38 -0
  441. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  442. package/contracts/shared/ContractLib.sol +224 -0
  443. package/contracts/shared/IComponent.sol +67 -0
  444. package/contracts/shared/IComponentService.sol +130 -0
  445. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  446. package/contracts/shared/IKeyValueStore.sol +54 -0
  447. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  448. package/contracts/shared/INftOwnable.sol +25 -0
  449. package/contracts/shared/IPolicyHolder.sol +35 -0
  450. package/contracts/shared/IRegisterable.sol +16 -12
  451. package/contracts/shared/IRegistryLinked.sol +11 -0
  452. package/contracts/shared/IService.sol +25 -0
  453. package/contracts/shared/InitializableERC165.sol +27 -0
  454. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  455. package/contracts/shared/KeyValueStore.sol +131 -0
  456. package/contracts/shared/Lifecycle.sol +88 -0
  457. package/contracts/shared/NftIdSet.sol +65 -0
  458. package/contracts/shared/NftOwnable.sol +90 -50
  459. package/contracts/shared/PolicyHolder.sol +62 -0
  460. package/contracts/shared/Registerable.sol +37 -71
  461. package/contracts/shared/RegistryLinked.sol +38 -0
  462. package/contracts/shared/Service.sol +84 -0
  463. package/contracts/shared/TokenHandler.sol +389 -0
  464. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  465. package/contracts/staking/IStaking.sol +173 -0
  466. package/contracts/staking/IStakingService.sol +157 -0
  467. package/contracts/staking/StakeManagerLib.sol +224 -0
  468. package/contracts/staking/Staking.sol +505 -0
  469. package/contracts/staking/StakingLifecycle.sol +23 -0
  470. package/contracts/staking/StakingManager.sol +52 -0
  471. package/contracts/staking/StakingReader.sol +190 -0
  472. package/contracts/staking/StakingService.sol +440 -0
  473. package/contracts/staking/StakingServiceManager.sol +44 -0
  474. package/contracts/staking/StakingStore.sol +605 -0
  475. package/contracts/staking/TargetManagerLib.sol +211 -0
  476. package/contracts/{types → type}/AddressSet.sol +1 -1
  477. package/contracts/type/Amount.sol +150 -0
  478. package/contracts/{types → type}/Blocknumber.sol +27 -3
  479. package/contracts/type/ClaimId.sol +80 -0
  480. package/contracts/type/DistributorType.sol +55 -0
  481. package/contracts/type/Fee.sol +66 -0
  482. package/contracts/{types → type}/Key32.sol +10 -5
  483. package/contracts/type/Key32Set.sol +62 -0
  484. package/contracts/{types → type}/NftId.sol +28 -15
  485. package/contracts/type/NftIdSet.sol +62 -0
  486. package/contracts/type/ObjectType.sol +278 -0
  487. package/contracts/type/PayoutId.sol +82 -0
  488. package/contracts/type/Referral.sol +90 -0
  489. package/contracts/type/RequestId.sol +75 -0
  490. package/contracts/{types → type}/RiskId.sol +31 -5
  491. package/contracts/type/RoleId.sol +162 -0
  492. package/contracts/type/Seconds.sol +101 -0
  493. package/contracts/type/Selector.sol +102 -0
  494. package/contracts/{types → type}/StateId.sol +53 -5
  495. package/contracts/type/String.sol +53 -0
  496. package/contracts/{types → type}/Timestamp.sol +38 -15
  497. package/contracts/{types → type}/UFixed.sol +48 -12
  498. package/contracts/{types → type}/Version.sol +8 -2
  499. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  500. package/contracts/upgradeability/ProxyManager.sol +232 -0
  501. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  502. package/contracts/upgradeability/Versionable.sol +59 -0
  503. package/package.json +12 -7
  504. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  505. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  506. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  507. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  508. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  509. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  510. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  511. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -177
  512. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  513. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -308
  514. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  515. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -207
  516. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  517. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  518. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  519. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  520. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  522. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  524. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  525. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  526. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  527. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  528. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  529. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  530. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  531. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  532. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  533. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  534. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  535. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  536. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  537. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  538. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  539. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  541. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  543. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  544. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  545. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  547. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  549. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  551. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  553. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  555. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  557. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  559. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -344
  561. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  562. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  563. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  564. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  565. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  566. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  567. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  568. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  570. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  572. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  573. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  574. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  575. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  576. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  577. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  578. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  579. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  580. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  581. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  582. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  583. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  584. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  585. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  587. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  588. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  589. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  590. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  591. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  592. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  593. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  594. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  595. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  596. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  597. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  598. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  599. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  600. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  601. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  602. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  604. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  605. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  606. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  607. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  608. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  609. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  610. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  611. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  612. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  614. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  615. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  616. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  617. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  619. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -484
  621. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  623. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  624. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  625. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  626. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  627. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  628. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  629. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  630. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  631. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  632. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  633. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  634. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  635. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  636. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -344
  637. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  638. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  639. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  640. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  641. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  643. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  645. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  646. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  647. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  648. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  649. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  650. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  651. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  652. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  653. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  654. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  655. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  656. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  657. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  658. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  659. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  660. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  661. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  662. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  663. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  664. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  665. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  667. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  669. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  671. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  673. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  675. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  676. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  677. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  679. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  681. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  683. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  685. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  687. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  689. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  691. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  693. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  695. package/contracts/components/BaseComponent.sol +0 -79
  696. package/contracts/components/Distribution.sol +0 -155
  697. package/contracts/components/IBaseComponent.sol +0 -19
  698. package/contracts/components/IDistributionComponent.sol +0 -46
  699. package/contracts/components/IPoolComponent.sol +0 -64
  700. package/contracts/components/IProductComponent.sol +0 -37
  701. package/contracts/components/Pool.sol +0 -246
  702. package/contracts/components/Product.sol +0 -299
  703. package/contracts/experiment/errors/Require.sol +0 -38
  704. package/contracts/experiment/errors/Revert.sol +0 -44
  705. package/contracts/experiment/inheritance/A.sol +0 -53
  706. package/contracts/experiment/inheritance/B.sol +0 -28
  707. package/contracts/experiment/inheritance/C.sol +0 -34
  708. package/contracts/experiment/inheritance/IA.sol +0 -13
  709. package/contracts/experiment/inheritance/IB.sol +0 -10
  710. package/contracts/experiment/inheritance/IC.sol +0 -12
  711. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  712. package/contracts/experiment/statemachine/ISM.sol +0 -25
  713. package/contracts/experiment/statemachine/SM.sol +0 -57
  714. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  715. package/contracts/experiment/types/TypeA.sol +0 -47
  716. package/contracts/experiment/types/TypeB.sol +0 -29
  717. package/contracts/instance/IInstanceLinked.sol +0 -8
  718. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  719. package/contracts/instance/base/IInstanceBase.sol +0 -23
  720. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  721. package/contracts/instance/base/IService.sol +0 -15
  722. package/contracts/instance/base/InstanceBase.sol +0 -89
  723. package/contracts/instance/base/KeyValueStore.sol +0 -161
  724. package/contracts/instance/base/Lifecycle.sol +0 -100
  725. package/contracts/instance/base/ModuleBase.sol +0 -57
  726. package/contracts/instance/base/ServiceBase.sol +0 -43
  727. package/contracts/instance/module/access/Access.sol +0 -149
  728. package/contracts/instance/module/access/IAccess.sol +0 -53
  729. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  730. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  731. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  732. package/contracts/instance/module/component/IComponent.sol +0 -28
  733. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  734. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  735. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  736. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  737. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  738. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  739. package/contracts/instance/module/risk/IRisk.sol +0 -26
  740. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  741. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  742. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  743. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  744. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  745. package/contracts/instance/service/DistributionService.sol +0 -54
  746. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  747. package/contracts/instance/service/IDistributionService.sol +0 -12
  748. package/contracts/instance/service/IPoolService.sol +0 -37
  749. package/contracts/instance/service/IProductService.sol +0 -107
  750. package/contracts/instance/service/PoolService.sol +0 -149
  751. package/contracts/instance/service/ProductService.sol +0 -510
  752. package/contracts/registry/IChainNft.sol +0 -22
  753. package/contracts/shared/ContractDeployerLib.sol +0 -72
  754. package/contracts/shared/ERC165.sol +0 -21
  755. package/contracts/shared/IOwnable.sol +0 -6
  756. package/contracts/shared/ProxyManager.sol +0 -103
  757. package/contracts/shared/Versionable.sol +0 -147
  758. package/contracts/test/TestDistribution.sol +0 -22
  759. package/contracts/test/TestFee.sol +0 -25
  760. package/contracts/test/TestPool.sol +0 -27
  761. package/contracts/test/TestProduct.sol +0 -74
  762. package/contracts/test/TestRegisterable.sol +0 -18
  763. package/contracts/test/TestRoleId.sol +0 -14
  764. package/contracts/test/TestService.sol +0 -26
  765. package/contracts/test/TestVersion.sol +0 -44
  766. package/contracts/test/TestVersionable.sol +0 -17
  767. package/contracts/test/Usdc.sol +0 -26
  768. package/contracts/types/ChainId.sol +0 -38
  769. package/contracts/types/Fee.sol +0 -56
  770. package/contracts/types/NftIdSet.sol +0 -60
  771. package/contracts/types/ObjectType.sol +0 -131
  772. package/contracts/types/ReferralId.sol +0 -48
  773. package/contracts/types/RoleId.sol +0 -38
@@ -1,19 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ERC721, ERC721Enumerable} from "@openzeppelin5/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
5
- import {IERC721} from "@openzeppelin5/contracts/token/ERC721/IERC721.sol";
4
+ import {ERC721, ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
5
+ import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
6
6
 
7
- import {IChainNft} from "./IChainNft.sol";
8
7
  import {ITransferInterceptor} from "./ITransferInterceptor.sol";
9
8
 
10
- contract ChainNft is ERC721Enumerable, IChainNft {
11
- string public constant NAME = "Dezentralized Insurance Protocol Registry";
12
- string public constant SYMBOL = "DIPR";
9
+ contract ChainNft is ERC721Enumerable {
10
+
11
+ event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
12
+
13
+ // constants
14
+ string public constant NAME = "Dezentralized Insurance Protocol NFT";
15
+ string public constant SYMBOL = "DIPNFT";
13
16
 
14
17
  uint256 public constant PROTOCOL_NFT_ID = 1101;
15
18
  uint256 public constant GLOBAL_REGISTRY_ID = 2101;
16
19
 
20
+ // custom errors
21
+ error ErrorChainNftCallerNotRegistry(address caller);
22
+ error ErrorChainNftRegistryAddressZero();
23
+ error ErrorChainNftUriEmpty();
24
+ error ErrorChainNftUriAlreadySet();
25
+
26
+ // contract state
27
+
17
28
  // remember interceptors
18
29
  mapping(uint256 tokenId => address interceptor) private _interceptor;
19
30
 
@@ -24,26 +35,34 @@ contract ChainNft is ERC721Enumerable, IChainNft {
24
35
  address private _registry;
25
36
 
26
37
  // only used for _getNextTokenId
27
- uint256 internal _chainIdInt;
28
38
  uint256 internal _chainIdDigits;
29
39
  uint256 internal _chainIdMultiplier;
30
40
  uint256 internal _idNext;
31
41
  uint256 internal _totalMinted;
32
42
 
33
43
  modifier onlyRegistry() {
34
- require(msg.sender == _registry, "ERROR:NFT-001:CALLER_NOT_REGISTRY");
44
+ if (msg.sender != _registry) { revert ErrorChainNftCallerNotRegistry(msg.sender); }
35
45
  _;
36
46
  }
37
47
 
38
- constructor(address registry) ERC721(NAME, SYMBOL) {
39
- require(registry != address(0), "ERROR:NFT-010:REGISTRY_ZERO");
48
+ constructor(address registry)
49
+ ERC721(NAME, SYMBOL)
50
+ {
51
+ if (registry == address(0)) { revert ErrorChainNftRegistryAddressZero(); }
40
52
 
53
+ // NFT contract is deployed by the registry
41
54
  _registry = registry;
42
55
 
43
- _chainIdInt = block.chainid;
44
- _chainIdDigits = _countDigits(_chainIdInt);
56
+ _chainIdDigits = _calculateChainIdDigits(block.chainid);
45
57
  _chainIdMultiplier = 10 ** _chainIdDigits;
58
+
59
+ // the first object registered through normal registration starts with id 4
60
+ // 1 -> protocol
61
+ // 2 -> registry
62
+ // 3 -> staking
63
+ // >= 4 -> all other objects
46
64
  _idNext = 4;
65
+ _totalMinted = 0;
47
66
  }
48
67
 
49
68
  /**
@@ -51,12 +70,16 @@ contract ChainNft is ERC721Enumerable, IChainNft {
51
70
  * not part of the IRegistry interface only needed for
52
71
  * initial registry setup (protocol and global registry objects)
53
72
  */
54
- function mint(address to, uint256 tokenId) external onlyRegistry {
55
- _totalMinted++;
56
- _safeMint(to, tokenId);
73
+ function mint(
74
+ address to,
75
+ uint256 tokenId
76
+ )
77
+ external
78
+ onlyRegistry()
79
+ {
80
+ _safeMintWithInterceptorAddress(to, tokenId, address(0));
57
81
  }
58
82
 
59
-
60
83
  /**
61
84
  * @dev mints the next token to register new objects
62
85
  * non-zero transferInterceptors are recorded and called during nft token transfers.
@@ -66,7 +89,11 @@ contract ChainNft is ERC721Enumerable, IChainNft {
66
89
  address to,
67
90
  address interceptor,
68
91
  string memory uri
69
- ) public onlyRegistry returns (uint256 tokenId) {
92
+ )
93
+ public
94
+ onlyRegistry()
95
+ returns (uint256 tokenId)
96
+ {
70
97
  tokenId = _getNextTokenId();
71
98
 
72
99
  if (interceptor != address(0)) {
@@ -77,25 +104,26 @@ contract ChainNft is ERC721Enumerable, IChainNft {
77
104
  _uri[tokenId] = uri;
78
105
  }
79
106
 
80
- _safeMint(to, tokenId);
81
- _totalMinted++;
107
+ _safeMintWithInterceptorAddress(to, tokenId, interceptor);
82
108
  }
83
109
 
84
110
 
85
111
  /**
86
- * @dev amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id
87
- * this allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
112
+ * @dev Amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id.
113
+ * This allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
88
114
  */
89
- function transferFrom(address from, address to, uint256 tokenId) public override (ERC721, IERC721) {
115
+ function transferFrom(address from, address to, uint256 tokenId) public override (IERC721, ERC721) {
116
+ // default open zeppelin implementation of transferFrom
90
117
  super.transferFrom(from, to, tokenId);
91
118
 
92
119
  if (_interceptor[tokenId] != address(0)) {
93
- ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId);
120
+ address operator = msg.sender;
121
+ ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId, operator);
94
122
  }
95
123
  }
96
124
 
97
125
 
98
- function burn(uint256 tokenId) external override onlyRegistry {
126
+ function burn(uint256 tokenId) external onlyRegistry {
99
127
  _requireOwned(tokenId);
100
128
  _burn(tokenId);
101
129
  delete _uri[tokenId];
@@ -104,29 +132,36 @@ contract ChainNft is ERC721Enumerable, IChainNft {
104
132
  function setURI(
105
133
  uint256 tokenId,
106
134
  string memory uri
107
- ) external override onlyRegistry {
108
- require(bytes(uri).length > 0, "ERROR:CRG-011:URI_EMPTY");
135
+ ) external onlyRegistry {
136
+ if (bytes(uri).length == 0) { revert ErrorChainNftUriEmpty(); }
137
+ if (bytes(_uri[tokenId]).length > 0) { revert ErrorChainNftUriAlreadySet(); }
109
138
 
110
139
  _requireOwned(tokenId);
111
140
  _uri[tokenId] = uri;
112
141
  }
113
142
 
114
- function exists(uint256 tokenId) external view override returns (bool) {
143
+ function exists(uint256 tokenId) external view returns (bool) {
115
144
  return _ownerOf(tokenId) != address(0);
116
145
  }
117
146
 
118
147
  function tokenURI(
119
148
  uint256 tokenId
120
149
  ) public view override returns (string memory) {
150
+ // gif generally does not revert for view functions
151
+ // this is an exception to keep the openzeppelin nft semantics
121
152
  _requireOwned(tokenId);
122
153
  return _uri[tokenId];
123
154
  }
124
155
 
125
- function getRegistryAddress() external view override returns (address) {
156
+ function getInterceptor(uint256 tokenId) external view returns (address) {
157
+ return _interceptor[tokenId];
158
+ }
159
+
160
+ function getRegistryAddress() external view returns (address) {
126
161
  return _registry;
127
162
  }
128
163
 
129
- function totalMinted() external view override returns (uint256) {
164
+ function totalMinted() external view returns (uint256) {
130
165
  return _totalMinted;
131
166
  }
132
167
 
@@ -165,23 +200,50 @@ contract ChainNft is ERC721Enumerable, IChainNft {
165
200
  * (42 * 10 ** 10 + 9876543210) * 100 + 10
166
201
  * (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
167
202
  */
168
- function calculateTokenId(uint256 idIndex) public view returns (uint256 id) {
169
- id =
170
- (idIndex * _chainIdMultiplier + _chainIdInt) *
171
- 100 +
172
- _chainIdDigits;
203
+ function calculateTokenId(uint256 idIndex, uint256 chainId) public view returns (uint256 id) {
204
+ if(chainId == block.chainid) {
205
+ return 100 * (idIndex * _chainIdMultiplier + chainId) + _chainIdDigits;
206
+ } else {
207
+ uint256 chainIdDigits = _calculateChainIdDigits(chainId);
208
+ return 100 * (idIndex * (10 ** chainIdDigits) + chainId) + chainIdDigits;
209
+ }
210
+ }
211
+
212
+ function calculateTokenId(uint256 idIndex) public view returns (uint256) {
213
+ return 100 * (idIndex * _chainIdMultiplier + block.chainid) + _chainIdDigits;
173
214
  }
174
215
 
216
+ function getNextTokenId() external view returns (uint256) {
217
+ return calculateTokenId(_idNext);
218
+ }
219
+
220
+ // ---------------- private functions ----------------- //
221
+
175
222
  function _getNextTokenId() private returns (uint256 id) {
176
223
  id = calculateTokenId(_idNext);
177
224
  _idNext++;
178
225
  }
179
226
 
180
- function _countDigits(uint256 num) private pure returns (uint256 count) {
181
- count = 0;
227
+ function _calculateChainIdDigits(uint256 chainId) private pure returns (uint256) {
228
+ uint256 num = chainId;
229
+ uint256 digits = 0;
182
230
  while (num != 0) {
183
- count++;
231
+ digits++;
184
232
  num /= 10;
185
233
  }
234
+ return digits;
235
+ }
236
+
237
+ function _safeMintWithInterceptorAddress(
238
+ address to,
239
+ uint256 tokenId,
240
+ address interceptor
241
+ )
242
+ private
243
+ {
244
+ _totalMinted++;
245
+ _safeMint(to, tokenId);
246
+
247
+ emit LogTokenInterceptorAddress(tokenId, interceptor);
186
248
  }
187
249
  }
@@ -1,21 +1,55 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin5/contracts/utils/introspection/IERC165.sol";
5
-
6
- import {IOwnable} from "../shared/IOwnable.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {ObjectType} from "../types/ObjectType.sol";
9
- import {VersionPart} from "../types/Version.sol";
10
- import {IChainNft} from "./IChainNft.sol";
11
-
12
- interface IRegistry is IERC165, IOwnable {
13
-
14
- event LogRegistration(NftId indexed nftId, NftId parentNftId, ObjectType objectType, address objectAddress, address initialOwner);
15
-
16
- event LogServiceNameRegistration(string serviceName, VersionPart majorVersion);
17
-
18
- event LogApproval(NftId indexed nftId, ObjectType objectType);
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
+
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {VersionPart} from "../type/Version.sol";
9
+ import {Timestamp} from "../type/Timestamp.sol";
10
+ import {StateId} from "../type/StateId.sol";
11
+
12
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
13
+
14
+ /// @title Chain Registry interface.
15
+ /// A chain registry holds all protocol relevant objects with basic metadata.
16
+ /// Registered objects include services, instances, products, pools, policies, bundles, stakes and more.
17
+ /// Registered objects are represented by NFTs.
18
+ /// When on mainnet registry is global and keeps arbitrary number of chain registries residing on different chain ids.
19
+ /// When not on mainnet registry keeps the only object residing on different chain id (on mainnet) - global registry.
20
+ interface IRegistry is IERC165 {
21
+
22
+ event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
23
+ event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
24
+ event LogChainRegistryRegistration(NftId nftId, uint256 chainId, address chainRegistryAddress);
25
+
26
+ // initialize
27
+ error ErrorRegistryCallerNotDeployer();
28
+
29
+ // registerRegistry()
30
+ error ErrorRegistryNotOnMainnet(uint256 chainId);
31
+ error ErrorRegistryChainRegistryChainIdZero(NftId nftId);
32
+ error ErrorRegistryChainRegistryAddressZero(NftId nftId, uint256 chainId);
33
+ error ErrorRegistryChainRegistryNftIdInvalid(NftId nftId, uint256 chainId);
34
+ error ErrorRegistryChainRegistryAlreadyRegistered(NftId nftId, uint256 chainId);
35
+
36
+ // registerService()
37
+ error ErrorRegistryServiceAddressZero();
38
+ error ErrorRegistryServiceVersionZero(address service);
39
+ //error ErrorRegistryServiceVersionMismatch(address service, VersionPart serviceVersion, VersionPart releaseVersion);
40
+ //error ErrorRegistryServiceVersionNotDeploying(address service, VersionPart version);
41
+ error ErrorRegistryServiceDomainZero(address service, VersionPart version);
42
+ error ErrorRegistryNotService(address service, ObjectType objectType);
43
+ error ErrorRegistryServiceParentNotRegistry(address service, VersionPart version, NftId parentNftId);
44
+ error ErrorRegistryServiceDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
45
+
46
+ // registerWithCustomTypes()
47
+ error ErrorRegistryCoreTypeRegistration();
48
+
49
+ // _register()
50
+ error ErrorRegistryGlobalRegistryAsParent(address objectAddress, ObjectType objectType);
51
+ error ErrorRegistryTypesCombinationInvalid(address objectAddress, ObjectType objectType, ObjectType parentType);
52
+ error ErrorRegistryContractAlreadyRegistered(address objectAddress);
19
53
 
20
54
  struct ObjectInfo {
21
55
  NftId nftId;
@@ -25,49 +59,115 @@ interface IRegistry is IERC165, IOwnable {
25
59
  address objectAddress;
26
60
  address initialOwner;
27
61
  bytes data;
28
- }// TODO delete nftId and initialOwner(if not used) from struct
62
+ }
63
+
64
+ struct ReleaseInfo {
65
+ StateId state;
66
+ VersionPart version;
67
+ bytes32 salt;
68
+ IServiceAuthorization auth;
69
+ Timestamp activatedAt;
70
+ Timestamp disabledAt;
71
+ }
72
+
73
+ /// @dev Registers a registry contract for a specified chain.
74
+ /// Only one chain registry may be registered per chain
75
+ function registerRegistry(
76
+ NftId nftId,
77
+ uint256 chainId,
78
+ address chainRegistryAddress
79
+ ) external;
29
80
 
81
+ /// @dev Register a service with using the provided domain and version.
82
+ /// The function returns a newly minted service NFT ID.
83
+ /// May only be used to register services.
84
+ function registerService(
85
+ ObjectInfo memory serviceInfo,
86
+ VersionPart serviceVersion,
87
+ ObjectType serviceDomain
88
+ ) external returns(NftId nftId);
89
+
90
+ /// @dev Register an object with a known core type.
91
+ /// The function returns a newly minted object NFT ID.
92
+ /// May not be used to register services.
30
93
  function register(ObjectInfo memory info) external returns (NftId nftId);
31
-
32
- function registerFrom(
33
- address from,
34
- ObjectInfo memory info
35
- ) external returns (NftId nftId);
36
-
37
- function approve(
38
- NftId registrar,
39
- ObjectType object,
40
- ObjectType parent
41
- ) external;
42
94
 
43
- function allowance(
44
- NftId registrar,
45
- ObjectType object
46
- ) external view returns (bool);
95
+ /// @dev Register an object with a custom type.
96
+ /// The function returns a newly minted object NFT ID.
97
+ /// This function is reserved for GIF releases > 3.
98
+ /// May not be used to register known core types.
99
+ function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
100
+
101
+ function getInitialVersion() external view returns (VersionPart);
102
+
103
+ function getNextVersion() external view returns (VersionPart);
104
+
105
+ function getLatestVersion() external view returns (VersionPart);
106
+
107
+ function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory);
108
+
109
+ /// @dev Returns the number of supported chains.
110
+ function chainIds() external view returns (uint256);
111
+
112
+ /// @dev Returns the chain id at the specified index.
113
+ function getChainId(uint256 idx) external view returns (uint256);
114
+
115
+ /// @dev Returns the NFT ID of the registry for the specified chain.
116
+ function getRegistryNftId(uint256 chainId) external returns (NftId nftId);
47
117
 
48
118
  function getObjectCount() external view returns (uint256);
49
119
 
50
- //nftIdOf
51
- function getNftId(address objectAddress) external view returns (NftId nftId);
120
+ function getNftIdForAddress(address objectAddress) external view returns (NftId nftId);
52
121
 
53
122
  function ownerOf(NftId nftId) external view returns (address);
54
123
 
124
+ function isOwnerOf(NftId nftId, address expectedOwner) external view returns (bool);
125
+
55
126
  function ownerOf(address contractAddress) external view returns (address);
56
- // infoOf()
127
+
57
128
  function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
58
- // infoOf()
129
+
130
+ function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
131
+
132
+ function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
133
+
134
+ function getObjectAddress(NftId nftId) external view returns (address objectAddress);
135
+
136
+ /// @dev Returns the object info for the specified object address.
137
+ // MUST not be used with chain registry address (resides on different chan id)
59
138
  function getObjectInfo(address object) external view returns (ObjectInfo memory info);
60
139
 
61
140
  function isRegistered(NftId nftId) external view returns (bool);
62
141
 
63
142
  function isRegistered(address contractAddress) external view returns (bool);
64
143
 
65
- function getServiceName(NftId nftId) external view returns (string memory name);
144
+ function isRegisteredService(address contractAddress) external view returns (bool);
145
+
146
+ function isRegisteredComponent(address object) external view returns (bool);
147
+
148
+ function isActiveRelease(VersionPart version) external view returns (bool);
66
149
 
67
150
  function getServiceAddress(
68
- string memory serviceName,
69
- VersionPart majorVersion
151
+ ObjectType serviceDomain,
152
+ VersionPart releaseVersion
70
153
  ) external view returns (address serviceAddress);
71
154
 
72
- function getChainNft() external view returns (IChainNft);
155
+ function getProtocolNftId() external view returns (NftId protocolNftId);
156
+
157
+ function getNftId() external view returns (NftId nftId);
158
+
159
+ function getOwner() external view returns (address);
160
+
161
+ // TODO refactor the address getters below to contract getters
162
+ function getChainNftAddress() external view returns (address);
163
+
164
+ function getReleaseRegistryAddress() external view returns (address);
165
+
166
+ function getStakingAddress() external view returns (address);
167
+
168
+ function getTokenRegistryAddress() external view returns (address);
169
+
170
+ function getRegistryAdminAddress() external view returns (address);
171
+
172
+ function getAuthority() external view returns (address);
73
173
  }
@@ -1,29 +1,62 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../contracts/types/NftId.sol";
5
- import {ObjectType} from "../../contracts/types/ObjectType.sol";
6
- import {RoleId} from "../../contracts/types/RoleId.sol";
7
- import {IService} from "../../contracts/instance/base/IService.sol";
8
- import {IRegistry} from "../../contracts/registry/IRegistry.sol";
4
+ // import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
9
5
 
10
- import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
11
- import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {RoleId} from "../type/RoleId.sol";
9
+ import {IService} from "../shared/IService.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
12
11
 
13
- interface IRegistryService is IService {
12
+ import {IRegisterable} from "../shared/IRegisterable.sol";
13
+ import {IComponent} from "../shared/IComponent.sol";
14
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
14
15
 
15
- function registerToken(address tokenAddress) external returns(NftId nftId);
16
16
 
17
- function registerService(IService service) external returns(IRegistry.ObjectInfo memory info, bytes memory data);
17
+ interface IRegistryService is
18
+ IService
19
+ {
20
+ error ErrorRegistryServiceNotRegistryOwner();
18
21
 
19
- function registerComponent(IBaseComponent component, ObjectType componentType, address owner)
20
- external returns(IRegistry.ObjectInfo memory info, bytes memory data);
22
+ error ErrorRegistryServiceNotService(address notService);
23
+ error ErrorRegistryServiceNotInstance(address notInstance);
24
+ error ErrorRegistryServiceNotProduct(address notProduct);
25
+ error ErrorRegistryServiceNotComponent(address notComponent);
26
+ error ErrorRegistryServiceNotProductLinkedComponent(address notProductLinkedComponent);
21
27
 
22
- function registerInstance(IRegisterable instance)
23
- external returns(IRegistry.ObjectInfo memory info, bytes memory data);
28
+ error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
29
+ error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
30
+ error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
31
+ error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
32
+ error ErrorRegistryServiceRegisterableOwnerRegistered(IRegisterable registerable, address owner);
33
+ error ErrorRegistryServiceRegisterableSelfRegistration(IRegisterable registerable);
24
34
 
25
- function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId); // -> easy to upgrade
35
+ error ErrorRegistryServiceObjectAddressNotZero(ObjectType objectType);
36
+ error ErrorRegistryServiceObjectTypeInvalid(ObjectType expected, ObjectType found);
37
+ error ErrorRegistryServiceObjectOwnerRegistered(ObjectType objectType, address owner);
38
+ error ErrorRegistryServiceObjectOwnerZero(ObjectType objectType);
39
+
40
+ error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
41
+ error ErrorRegistryServiceInvalidAddress(address registerableAddress);
42
+
43
+ function registerStake(IRegistry.ObjectInfo memory info)
44
+ external returns(NftId nftId);
45
+
46
+ function registerInstance(IRegisterable instance, address owner)
47
+ external returns(IRegistry.ObjectInfo memory info);
48
+
49
+ function registerProduct(IComponent product, address owner)
50
+ external returns(IRegistry.ObjectInfo memory info);
51
+
52
+ function registerProductLinkedComponent(IComponent component, ObjectType objectType, address owner)
53
+ external returns(IRegistry.ObjectInfo memory info);
54
+
55
+ function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
56
+
57
+ function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
58
+
59
+ function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
26
60
 
27
- function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
28
61
  }
29
62
 
@@ -2,5 +2,5 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  interface ITransferInterceptor {
5
- function nftTransferFrom(address from, address to, uint256 tokenId) external;
5
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external;
6
6
  }