@etherisc/gif-next 0.0.2-839b2a2-792 → 0.0.2-83d1db6-607

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 (472) hide show
  1. package/README.md +403 -8
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/Component.json +662 -35
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +1319 -0
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → components/IComponent.sol/IComponent.json} +279 -226
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +869 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +954 -0
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +730 -0
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +1161 -133
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +967 -156
  18. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  19. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  20. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  21. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  22. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  23. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +190 -0
  24. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  25. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1676 -808
  26. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +567 -0
  28. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  29. package/artifacts/contracts/instance/Instance.sol/Instance.json +2407 -863
  30. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1311 -0
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  33. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1279 -0
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1033 -0
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +701 -0
  38. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +552 -0
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  43. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
  44. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  45. package/artifacts/contracts/instance/{lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  46. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  47. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +532 -0
  48. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  49. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +194 -0
  50. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  51. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  52. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  53. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  54. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  55. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  56. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  57. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  58. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  60. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  61. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  62. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  63. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +10 -0
  64. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  65. package/artifacts/contracts/instance/{treasury → module}/ITreasury.sol/ITreasury.json +1 -1
  66. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +968 -0
  68. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
  70. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1093 -0
  72. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  73. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +661 -0
  74. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
  76. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
  78. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  79. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1732 -0
  80. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +805 -0
  82. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  83. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +556 -0
  84. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  85. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +630 -0
  86. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  87. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +409 -0
  88. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  89. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +1013 -0
  90. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +540 -0
  92. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  93. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +428 -0
  94. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  95. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +384 -0
  96. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  97. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1021 -0
  98. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +689 -0
  100. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  101. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +824 -0
  102. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +657 -0
  104. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  105. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +777 -0
  106. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +649 -0
  108. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  110. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +595 -27
  112. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +890 -0
  114. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  116. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.json +652 -50
  118. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  120. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1177 -0
  122. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +670 -0
  124. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +547 -0
  126. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  127. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -0
  128. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  129. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  130. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  131. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  132. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  133. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +46 -74
  134. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/product/IProductService.sol/IProductService.json → shared/IPolicyHolder.sol/IPolicyHolder.json} +68 -66
  136. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  137. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +188 -0
  138. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  139. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +18 -19
  140. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IService.sol/IService.json +269 -0
  142. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  144. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +251 -0
  146. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  147. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  148. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +582 -0
  150. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +352 -0
  152. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  153. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
  154. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  155. package/artifacts/contracts/shared/Service.sol/Service.json +425 -0
  156. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  157. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  158. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  160. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  161. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  162. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  163. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  164. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  165. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +383 -0
  166. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  167. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
  168. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  169. package/artifacts/contracts/test/TestService.sol/TestService.json +521 -0
  170. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  171. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +376 -0
  172. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  173. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  174. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  175. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +104 -0
  176. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  177. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  178. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  179. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  180. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  181. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  182. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  183. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  184. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
  185. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  186. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  187. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  188. package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
  189. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  190. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
  191. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +78 -4
  193. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  194. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +33 -0
  195. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  196. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  197. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  198. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  199. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  200. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
  201. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  202. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +142 -0
  203. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  204. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  205. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  206. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  207. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  208. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  209. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  210. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  211. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  212. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +97 -4
  213. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  214. package/artifacts/contracts/{experiment/types/TypeB.sol/TypeBLib.json → types/UFixed.sol/MathLib.json} +4 -4
  215. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  216. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  217. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  218. package/artifacts/contracts/types/Version.sol/VersionLib.json +177 -0
  219. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  220. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +49 -0
  221. package/contracts/components/Component.sol +225 -51
  222. package/contracts/components/Distribution.sol +280 -0
  223. package/contracts/components/IComponent.sol +74 -0
  224. package/contracts/components/IDistributionComponent.sol +71 -0
  225. package/contracts/components/IPoolComponent.sol +113 -0
  226. package/contracts/components/IProductComponent.sol +40 -0
  227. package/contracts/components/Pool.sol +277 -30
  228. package/contracts/components/Product.sol +252 -48
  229. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  230. package/contracts/instance/BundleManager.sol +127 -0
  231. package/contracts/instance/Cloneable.sol +51 -0
  232. package/contracts/instance/IInstance.sol +95 -22
  233. package/contracts/instance/IInstanceService.sol +72 -0
  234. package/contracts/instance/Instance.sol +306 -51
  235. package/contracts/instance/InstanceAccessManager.sol +522 -0
  236. package/contracts/instance/InstanceReader.sol +290 -0
  237. package/contracts/instance/InstanceService.sol +495 -0
  238. package/contracts/instance/InstanceServiceManager.sol +54 -0
  239. package/contracts/instance/ObjectManager.sol +82 -0
  240. package/contracts/instance/base/ComponentService.sol +134 -0
  241. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  242. package/contracts/instance/base/ILifecycle.sol +30 -0
  243. package/contracts/instance/base/KeyValueStore.sol +175 -0
  244. package/contracts/instance/base/Lifecycle.sol +109 -0
  245. package/contracts/instance/module/IAccess.sol +54 -0
  246. package/contracts/instance/module/IBundle.sol +21 -0
  247. package/contracts/instance/module/IComponents.sol +35 -0
  248. package/contracts/instance/module/IDistribution.sol +41 -0
  249. package/contracts/instance/module/IPolicy.sol +72 -0
  250. package/contracts/instance/module/IRisk.sol +11 -0
  251. package/contracts/instance/module/ISetup.sol +33 -0
  252. package/contracts/instance/module/ITreasury.sol +23 -0
  253. package/contracts/instance/service/ApplicationService.sol +350 -0
  254. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  255. package/contracts/instance/service/BundleService.sol +336 -0
  256. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  257. package/contracts/instance/service/ClaimService.sol +151 -0
  258. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  259. package/contracts/instance/service/DistributionService.sol +467 -0
  260. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  261. package/contracts/instance/service/IApplicationService.sol +82 -0
  262. package/contracts/instance/service/IBundleService.sol +62 -0
  263. package/contracts/instance/service/IClaimService.sol +61 -0
  264. package/contracts/instance/service/IDistributionService.sol +98 -0
  265. package/contracts/instance/service/IPolicyService.sol +72 -0
  266. package/contracts/instance/service/IPoolService.sol +35 -0
  267. package/contracts/instance/service/IProductService.sol +40 -0
  268. package/contracts/instance/service/PolicyService.sol +403 -0
  269. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  270. package/contracts/instance/service/PoolService.sol +220 -0
  271. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  272. package/contracts/instance/service/ProductService.sol +241 -0
  273. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  274. package/contracts/registry/ChainNft.sol +137 -62
  275. package/contracts/registry/IRegistry.sol +75 -41
  276. package/contracts/registry/IRegistryService.sol +67 -0
  277. package/contracts/registry/ITransferInterceptor.sol +7 -0
  278. package/contracts/registry/Registry.sol +413 -128
  279. package/contracts/registry/RegistryAccessManager.sol +216 -0
  280. package/contracts/registry/RegistryService.sol +283 -0
  281. package/contracts/registry/RegistryServiceManager.sol +62 -0
  282. package/contracts/registry/ReleaseManager.sol +322 -0
  283. package/contracts/registry/TokenRegistry.sol +116 -0
  284. package/contracts/shared/ContractDeployerLib.sol +72 -0
  285. package/contracts/shared/ERC165.sol +27 -0
  286. package/contracts/shared/INftOwnable.sol +23 -0
  287. package/contracts/shared/IPolicyHolder.sol +26 -0
  288. package/contracts/shared/IRegisterable.sol +15 -0
  289. package/contracts/shared/IRegistryLinked.sol +12 -0
  290. package/contracts/shared/IService.sol +18 -0
  291. package/contracts/shared/IVersionable.sol +53 -0
  292. package/contracts/shared/NftOwnable.sol +120 -0
  293. package/contracts/shared/PolicyHolder.sol +81 -0
  294. package/contracts/shared/ProxyManager.sol +169 -0
  295. package/contracts/shared/Registerable.sol +74 -0
  296. package/contracts/shared/RegistryLinked.sol +48 -0
  297. package/contracts/shared/Service.sol +58 -0
  298. package/contracts/shared/TokenHandler.sol +33 -0
  299. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  300. package/contracts/shared/Versionable.sol +59 -0
  301. package/contracts/test/TestFee.sol +25 -0
  302. package/contracts/test/TestRegisterable.sol +18 -0
  303. package/contracts/test/TestRoleId.sol +14 -0
  304. package/contracts/test/TestService.sol +25 -0
  305. package/contracts/{mock/Dip.sol → test/TestToken.sol} +5 -5
  306. package/contracts/test/TestVersion.sol +44 -0
  307. package/contracts/test/TestVersionable.sol +17 -0
  308. package/contracts/{mock → test}/Usdc.sol +1 -1
  309. package/contracts/types/AddressSet.sol +58 -0
  310. package/contracts/types/Blocknumber.sol +1 -0
  311. package/contracts/types/ClaimId.sol +52 -0
  312. package/contracts/types/DistributorType.sol +55 -0
  313. package/contracts/types/Fee.sol +45 -20
  314. package/contracts/types/Key32.sol +50 -0
  315. package/contracts/types/NftId.sol +30 -1
  316. package/contracts/types/NftIdSet.sol +62 -0
  317. package/contracts/types/NumberId.sol +52 -0
  318. package/contracts/types/ObjectType.sol +65 -15
  319. package/contracts/types/PayoutId.sol +54 -0
  320. package/contracts/types/Referral.sol +89 -0
  321. package/contracts/types/RiskId.sol +43 -0
  322. package/contracts/types/RoleId.sol +97 -0
  323. package/contracts/types/Seconds.sol +54 -0
  324. package/contracts/types/StateId.sol +19 -4
  325. package/contracts/types/Timestamp.sol +31 -6
  326. package/contracts/types/UFixed.sol +139 -23
  327. package/contracts/types/Version.sol +108 -0
  328. package/package.json +12 -5
  329. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  330. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  331. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  332. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  333. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  334. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  335. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  336. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  337. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  338. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  339. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  340. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  341. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  342. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  343. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  344. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  345. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  346. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  347. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  348. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  349. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  350. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  351. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  352. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  353. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  354. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  355. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  356. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  357. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  358. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  359. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  360. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  361. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  362. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  363. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  364. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  365. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  366. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  367. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  368. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  369. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  370. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  371. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  372. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
  373. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  374. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  375. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  376. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  377. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  378. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
  379. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  380. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  381. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  382. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  383. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  384. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  385. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  386. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  387. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  388. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  389. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  390. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  391. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  392. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  393. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  394. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  395. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  396. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  397. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  398. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  399. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  400. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  401. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  402. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  403. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  404. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  405. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  406. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  407. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  408. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  409. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  410. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  411. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  412. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  413. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  414. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  415. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  416. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  417. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  418. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  419. package/artifacts/contracts/mock/Dip.sol/DIP.dbg.json +0 -4
  420. package/artifacts/contracts/mock/Dip.sol/DIP.json +0 -338
  421. package/artifacts/contracts/mock/TestPool.sol/TestPool.dbg.json +0 -4
  422. package/artifacts/contracts/mock/TestPool.sol/TestPool.json +0 -294
  423. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.dbg.json +0 -4
  424. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.json +0 -384
  425. package/artifacts/contracts/mock/Usdc.sol/USDC.dbg.json +0 -4
  426. package/artifacts/contracts/mock/Usdc.sol/USDC.json +0 -338
  427. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  428. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  429. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  430. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  431. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  432. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  433. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  434. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  435. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  436. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  437. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  438. package/contracts/components/IPool.sol +0 -15
  439. package/contracts/components/IProduct.sol +0 -16
  440. package/contracts/experiment/errors/Require.sol +0 -38
  441. package/contracts/experiment/errors/Revert.sol +0 -44
  442. package/contracts/experiment/inheritance/A.sol +0 -53
  443. package/contracts/experiment/inheritance/B.sol +0 -28
  444. package/contracts/experiment/inheritance/C.sol +0 -34
  445. package/contracts/experiment/inheritance/IA.sol +0 -13
  446. package/contracts/experiment/inheritance/IB.sol +0 -10
  447. package/contracts/experiment/inheritance/IC.sol +0 -12
  448. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  449. package/contracts/experiment/statemachine/ISM.sol +0 -25
  450. package/contracts/experiment/statemachine/README.md +0 -112
  451. package/contracts/experiment/statemachine/SM.sol +0 -57
  452. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  453. package/contracts/experiment/types/TypeA.sol +0 -47
  454. package/contracts/experiment/types/TypeB.sol +0 -29
  455. package/contracts/instance/access/Access.sol +0 -165
  456. package/contracts/instance/access/IAccess.sol +0 -63
  457. package/contracts/instance/component/ComponentModule.sol +0 -274
  458. package/contracts/instance/component/IComponent.sol +0 -74
  459. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  460. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  461. package/contracts/instance/policy/IPolicy.sol +0 -50
  462. package/contracts/instance/policy/PolicyModule.sol +0 -114
  463. package/contracts/instance/pool/IPoolModule.sol +0 -23
  464. package/contracts/instance/pool/PoolModule.sol +0 -81
  465. package/contracts/instance/product/IProductService.sol +0 -36
  466. package/contracts/instance/product/ProductService.sol +0 -136
  467. package/contracts/instance/treasury/ITreasury.sol +0 -91
  468. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  469. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  470. package/contracts/mock/TestPool.sol +0 -16
  471. package/contracts/mock/TestProduct.sol +0 -39
  472. package/contracts/registry/IChainNft.sol +0 -21
@@ -1,67 +1,101 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
3
5
 
4
6
  import {NftId} from "../types/NftId.sol";
5
7
  import {ObjectType} from "../types/ObjectType.sol";
8
+ import {VersionPart} from "../types/Version.sol";
9
+ import {Timestamp} from "../types/Timestamp.sol";
6
10
 
7
- interface IOwnable {
8
- function getOwner() external view returns (address owner);
9
- }
10
-
11
- interface IRegistryLinked {
12
- event LogDebug(uint256 idx, address module, string comment);
13
-
14
- function getRegistry() external view returns (IRegistry registry);
15
- }
16
-
17
- interface IRegisterable is IOwnable, IRegistryLinked {
18
- function register() external returns (NftId nftId);
19
-
20
- function getNftId() external view returns (NftId nftId);
21
-
22
- function getParentNftId() external view returns (NftId parentNftId);
11
+ interface IRegistry is IERC165 {
23
12
 
24
- function getType() external view returns (ObjectType objectType);
13
+ event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
14
+ event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
25
15
 
26
- function getData() external view returns (bytes memory data);
16
+ // registerService()
17
+ error CallerNotReleaseManager();
18
+ error ServiceAlreadyRegistered(address service);
27
19
 
28
- function isRegisterable() external pure returns (bool);
20
+ // register()
21
+ error CallerNotRegistryService();
22
+ error ServiceRegistration();
29
23
 
30
- function getInitialOwner() external view returns (address initialOwner);
24
+ // registerWithCustomTypes()
25
+ error CoreTypeRegistration();
31
26
 
32
- function isRegistered() external view returns (bool);
33
- }
27
+ // _register()
28
+ error ZeroParentAddress();
29
+ error InvalidTypesCombination(ObjectType objectType, ObjectType parentType);
30
+ error ContractAlreadyRegistered(address objectAddress);
34
31
 
35
- interface IRegistry {
36
- struct RegistryInfo {
32
+ struct ObjectInfo {
37
33
  NftId nftId;
38
34
  NftId parentNftId;
39
35
  ObjectType objectType;
36
+ bool isInterceptor;
40
37
  address objectAddress;
41
38
  address initialOwner;
39
+ bytes data;
40
+ }// TODO delete nftId and initialOwner(if not used) from struct
41
+ // TODO strong disagree, keep nftId there (lets keep get object info return object consistent)
42
+
43
+ struct ReleaseInfo {
44
+ ObjectType[] domains;
45
+ Timestamp createdAt;
46
+ //Timestamp updatedAt;
42
47
  }
43
48
 
44
- function register(address objectAddress) external returns (NftId nftId);
49
+ function registerService(
50
+ ObjectInfo memory serviceInfo,
51
+ VersionPart serviceVersion,
52
+ ObjectType serviceDomain
53
+ ) external returns(NftId nftId);
54
+
55
+ function register(ObjectInfo memory info) external returns (NftId nftId);
56
+
57
+ function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
58
+
59
+ function getInitialVersion() external view returns (VersionPart);
60
+
61
+ function getNextVersion() external view returns (VersionPart);
62
+
63
+ function getLatestVersion() external view returns (VersionPart);
45
64
 
46
- function registerObjectForInstance(
47
- NftId parentNftid,
48
- ObjectType objectType,
49
- address initialOwner
50
- ) external returns (NftId nftId);
65
+ function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory);
51
66
 
52
67
  function getObjectCount() external view returns (uint256);
53
68
 
54
- function getNftId(
55
- address objectAddress
56
- ) external view returns (NftId nftId);
69
+ function getNftId() external view returns (NftId nftId);
70
+
71
+ function getNftId(address objectAddress) external view returns (NftId nftId);
72
+
73
+ function ownerOf(NftId nftId) external view returns (address);
74
+
75
+ function ownerOf(address contractAddress) external view returns (address);
76
+
77
+ function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
78
+
79
+ function getObjectInfo(address object) external view returns (ObjectInfo memory info);
80
+
81
+ function isRegistered(NftId nftId) external view returns (bool);
82
+
83
+ function isRegistered(address contractAddress) external view returns (bool);
84
+
85
+ function isRegisteredService(address contractAddress) external view returns (bool);
86
+
87
+ function isRegisteredComponent(address object) external view returns (bool);
88
+
89
+ function isValidRelease(VersionPart version) external view returns (bool);
57
90
 
58
- function getInfo(
59
- NftId nftId
60
- ) external view returns (RegistryInfo memory info);
91
+ function getServiceAddress(
92
+ ObjectType serviceDomain,
93
+ VersionPart releaseVersion
94
+ ) external view returns (address serviceAddress);
61
95
 
62
- function getOwner(NftId nftId) external view returns (address ownerAddress);
96
+ function getReleaseManagerAddress() external view returns (address);
63
97
 
64
- function isRegistered(address objectAddress) external view returns (bool);
98
+ function getChainNftAddress() external view returns (address);
65
99
 
66
- function getNftAddress() external view returns (address nft);
67
- }
100
+ function getOwner() external view returns (address);
101
+ }
@@ -0,0 +1,67 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {NftId} from "../types/NftId.sol";
7
+ import {ObjectType} from "../types/ObjectType.sol";
8
+ import {RoleId} from "../types/RoleId.sol";
9
+ import {IService} from "../shared/IService.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+
12
+ import {IRegisterable} from "../shared/IRegisterable.sol";
13
+ import {IComponent} from "../components/IComponent.sol";
14
+
15
+ interface IRegistryService is
16
+ IService,
17
+ IAccessManaged
18
+ {
19
+ error SelfRegistration();
20
+ error NotRegistryOwner();
21
+
22
+ error NotService();
23
+ error NotInstance();
24
+ error NotProduct();
25
+ error NotPool();
26
+ error NotDistribution();
27
+
28
+ error UnexpectedRegisterableType(ObjectType expected, ObjectType found);
29
+ error NotRegisterableOwner(address expectedOwner);
30
+ error RegisterableOwnerIsZero();
31
+ error RegisterableOwnerIsRegistered();
32
+ error InvalidInitialOwner(address initialOwner);
33
+ error InvalidAddress(address registerableAddress);
34
+
35
+ struct FunctionConfig
36
+ {
37
+ ObjectType serviceDomain;
38
+ bytes4[] selectors;
39
+ }
40
+
41
+ function getFunctionConfigs()
42
+ external
43
+ pure
44
+ returns(
45
+ FunctionConfig[] memory config
46
+ );
47
+
48
+ // TODO used by service -> add owner arg
49
+ function registerInstance(IRegisterable instance, address owner)
50
+ external returns(IRegistry.ObjectInfo memory info);
51
+
52
+ function registerProduct(IComponent product, address owner)
53
+ external returns(IRegistry.ObjectInfo memory info);
54
+
55
+ function registerPool(IComponent pool, address owner)
56
+ external returns(IRegistry.ObjectInfo memory info);
57
+
58
+ function registerDistribution(IComponent distribution, address owner)
59
+ external returns(IRegistry.ObjectInfo memory info);
60
+
61
+ function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
62
+
63
+ function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
64
+
65
+ function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
66
+ }
67
+
@@ -0,0 +1,7 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ interface ITransferInterceptor {
5
+ function nftMint(address to, uint256 tokenId) external;
6
+ function nftTransferFrom(address from, address to, uint256 tokenId) external;
7
+ }