@etherisc/gif-next 0.0.2-7b53731-256 → 0.0.2-7c1c4c4-821

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 (387) hide show
  1. package/README.md +148 -26
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +176 -23
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +267 -54
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +129 -23
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -188
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -238
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -213
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +300 -96
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +409 -78
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
  21. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
  22. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
  23. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
  24. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  36. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  40. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  42. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  44. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +4 -0
  45. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +101 -0
  46. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +4 -0
  47. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +1132 -0
  48. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
  49. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
  50. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +238 -1492
  52. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  53. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +480 -0
  54. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/Instance.sol/Instance.json +2298 -1144
  56. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  57. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +917 -0
  58. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  59. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1388 -0
  60. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +891 -0
  62. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +492 -0
  64. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +276 -36
  66. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  67. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +1 -1
  68. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  69. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +27 -158
  70. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  72. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +37 -245
  73. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  74. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  75. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  76. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  77. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  78. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  79. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  80. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  81. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  82. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  83. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  84. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  85. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  86. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  87. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  89. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +375 -79
  91. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  92. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +349 -53
  93. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  94. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +448 -0
  95. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +177 -75
  97. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +174 -53
  99. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +176 -55
  101. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +179 -58
  103. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  104. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +351 -55
  105. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  106. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +452 -0
  107. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  108. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
  109. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  110. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +485 -37
  111. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  112. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +853 -0
  113. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  114. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  115. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  116. package/artifacts/contracts/registry/Registry.sol/Registry.json +597 -122
  117. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  118. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1237 -0
  119. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +525 -0
  121. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
  123. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  124. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  125. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  126. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  127. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +67 -57
  129. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  130. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  131. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  132. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +168 -123
  133. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  135. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  136. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  137. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  138. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  139. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  141. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/base/IService.sol/IService.json → shared/RegisterableUpgradable.sol/RegisterableUpgradable.json} +215 -73
  143. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  144. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +222 -54
  145. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  146. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  147. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  148. package/artifacts/contracts/shared/{Proxy.sol/ProxyWithProxyAdminGetter.json → UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json} +4 -4
  149. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  150. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  151. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  152. package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
  153. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  154. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  155. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
  157. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestService.sol/TestService.json +283 -62
  159. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  160. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  161. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  162. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  163. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  164. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +103 -23
  165. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  166. package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
  167. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  168. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  169. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  171. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  172. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  173. package/artifacts/contracts/types/Fee.sol/FeeLib.json +4 -4
  174. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  175. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  176. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  177. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  178. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  179. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  180. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  181. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  182. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  183. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  184. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  185. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  186. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  187. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  188. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  189. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  190. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  192. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  194. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  195. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  196. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
  198. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  200. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  202. package/contracts/components/BaseComponent.sol +26 -29
  203. package/contracts/components/Distribution.sol +47 -19
  204. package/contracts/components/IBaseComponent.sol +9 -3
  205. package/contracts/components/IDistributionComponent.sol +3 -6
  206. package/contracts/components/IPoolComponent.sol +2 -11
  207. package/contracts/components/IProductComponent.sol +4 -7
  208. package/contracts/components/Pool.sol +83 -75
  209. package/contracts/components/Product.sol +111 -41
  210. package/contracts/experiment/cloning/Cloner.sol +47 -0
  211. package/contracts/instance/AccessManagedSimple.sol +115 -0
  212. package/contracts/instance/AccessManagerSimple.sol +692 -0
  213. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  214. package/contracts/instance/IInstance.sol +31 -45
  215. package/contracts/instance/IInstanceService.sol +30 -0
  216. package/contracts/instance/Instance.sol +426 -57
  217. package/contracts/instance/InstanceAccessManager.sol +288 -0
  218. package/contracts/instance/InstanceReader.sol +306 -0
  219. package/contracts/instance/InstanceService.sol +182 -0
  220. package/contracts/instance/InstanceServiceManager.sol +56 -0
  221. package/contracts/instance/base/ComponentServiceBase.sol +92 -10
  222. package/contracts/instance/base/IInstanceBase.sol +3 -2
  223. package/contracts/instance/base/IKeyValueStore.sol +13 -14
  224. package/contracts/instance/base/ILifecycle.sol +3 -3
  225. package/contracts/instance/base/KeyValueStore.sol +49 -38
  226. package/contracts/instance/base/Lifecycle.sol +1 -1
  227. package/contracts/instance/module/IAccess.sol +38 -0
  228. package/contracts/instance/module/IBundle.sol +20 -0
  229. package/contracts/instance/module/IDistribution.sol +39 -0
  230. package/contracts/instance/module/IPolicy.sol +45 -0
  231. package/contracts/instance/module/IRisk.sol +11 -0
  232. package/contracts/instance/module/ISetup.sol +44 -0
  233. package/contracts/instance/module/ITreasury.sol +23 -0
  234. package/contracts/instance/service/ComponentOwnerService.sol +232 -72
  235. package/contracts/instance/service/DistributionService.sol +48 -20
  236. package/contracts/instance/service/DistributionServiceManager.sol +53 -0
  237. package/contracts/instance/service/IComponentOwnerService.sol +1 -3
  238. package/contracts/instance/service/IDistributionService.sol +1 -1
  239. package/contracts/instance/service/IPoolService.sol +1 -1
  240. package/contracts/instance/service/IProductService.sol +3 -3
  241. package/contracts/instance/service/PoolService.sol +102 -58
  242. package/contracts/instance/service/PoolServiceManager.sol +53 -0
  243. package/contracts/registry/ChainNft.sol +80 -37
  244. package/contracts/registry/IRegistry.sol +62 -25
  245. package/contracts/registry/IRegistryService.sol +33 -0
  246. package/contracts/registry/ITransferInterceptor.sol +6 -0
  247. package/contracts/registry/Registry.sol +374 -266
  248. package/contracts/registry/RegistryService.sol +399 -0
  249. package/contracts/registry/RegistryServiceManager.sol +80 -0
  250. package/contracts/registry/TokenRegistry.sol +111 -0
  251. package/contracts/shared/ContractDeployerLib.sol +72 -0
  252. package/contracts/shared/ERC165.sol +6 -2
  253. package/contracts/shared/INftOwnable.sol +22 -0
  254. package/contracts/shared/IRegisterable.sol +8 -15
  255. package/contracts/{instance/base → shared}/IService.sol +3 -3
  256. package/contracts/shared/IVersionable.sol +55 -11
  257. package/contracts/shared/NftOwnable.sol +136 -0
  258. package/contracts/shared/ProxyManager.sol +94 -0
  259. package/contracts/shared/Registerable.sol +63 -59
  260. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  261. package/contracts/shared/Service.sol +55 -0
  262. package/contracts/shared/TokenHandler.sol +27 -0
  263. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  264. package/contracts/shared/Versionable.sol +113 -55
  265. package/contracts/test/TestFee.sol +2 -2
  266. package/contracts/test/TestRegisterable.sol +5 -6
  267. package/contracts/test/TestRoleId.sol +1 -1
  268. package/contracts/test/TestService.sol +5 -13
  269. package/contracts/types/DistributorType.sol +55 -0
  270. package/contracts/types/Fee.sol +3 -3
  271. package/contracts/types/Key32.sol +8 -3
  272. package/contracts/types/NumberId.sol +52 -0
  273. package/contracts/types/ObjectType.sol +35 -14
  274. package/contracts/types/Referral.sol +85 -0
  275. package/contracts/types/RoleId.sol +60 -9
  276. package/contracts/types/StateId.sol +5 -1
  277. package/contracts/types/Timestamp.sol +7 -3
  278. package/contracts/types/UFixed.sol +128 -12
  279. package/contracts/types/Version.sol +13 -1
  280. package/package.json +4 -3
  281. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  282. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  283. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  284. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  285. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  286. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  287. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  288. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  289. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  290. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
  291. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  292. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  293. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  294. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  295. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  296. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  297. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  298. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  299. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  300. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  301. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  302. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  303. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  304. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  305. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  306. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  307. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  308. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  309. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  310. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  311. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  312. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  313. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  314. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  315. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  316. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  317. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  318. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  319. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  320. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  321. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  322. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  323. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  324. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  325. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  326. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  327. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  328. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  329. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  330. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  331. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  332. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -858
  333. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  334. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  335. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  336. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  337. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.dbg.json +0 -4
  338. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.json +0 -495
  339. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  340. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  341. package/artifacts/contracts/shared/Proxy.sol/Proxy.dbg.json +0 -4
  342. package/artifacts/contracts/shared/Proxy.sol/Proxy.json +0 -178
  343. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +0 -4
  344. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +0 -4
  345. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +0 -187
  346. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  347. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  348. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  349. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  350. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  351. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  352. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  353. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  354. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  355. package/contracts/experiment/statemachine/README.md +0 -112
  356. package/contracts/instance/IInstanceLinked.sol +0 -8
  357. package/contracts/instance/base/InstanceBase.sol +0 -91
  358. package/contracts/instance/base/ModuleBase.sol +0 -57
  359. package/contracts/instance/base/ServiceBase.sol +0 -37
  360. package/contracts/instance/module/access/Access.sol +0 -149
  361. package/contracts/instance/module/access/IAccess.sol +0 -53
  362. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  363. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  364. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  365. package/contracts/instance/module/component/IComponent.sol +0 -28
  366. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  367. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  368. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  369. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  370. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  371. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  372. package/contracts/instance/module/risk/IRisk.sol +0 -26
  373. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  374. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  375. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  376. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  377. package/contracts/instance/service/ProductService.sol +0 -509
  378. package/contracts/registry/IChainNft.sol +0 -21
  379. package/contracts/registry/IRegistryLinked.sol +0 -8
  380. package/contracts/registry/RegistryUpgradeable.sol +0 -416
  381. package/contracts/shared/IOwnable.sol +0 -6
  382. package/contracts/shared/Proxy.sol +0 -83
  383. package/contracts/shared/VersionableUpgradeable.sol +0 -108
  384. package/contracts/test/TestDistribution.sol +0 -21
  385. package/contracts/test/TestPool.sol +0 -25
  386. package/contracts/test/TestProduct.sol +0 -72
  387. package/contracts/types/ReferralId.sol +0 -48
@@ -1,57 +1,94 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
 
6
+ import {ChainNft} from "./ChainNft.sol";
6
7
  import {NftId} from "../types/NftId.sol";
7
8
  import {ObjectType} from "../types/ObjectType.sol";
8
9
  import {VersionPart} from "../types/Version.sol";
9
- import {IChainNft} from "./IChainNft.sol";
10
10
 
11
11
  interface IRegistry is IERC165 {
12
+
13
+ event LogInitialMajorVersionSet(VersionPart majorVersion);
14
+ event LogMajorVersionSet(VersionPart majorVersionMax);
15
+ event LogRegistration(ObjectInfo info);
16
+ event LogTokenStateSet(address token, VersionPart majorVersion, bool active);
17
+ event LogServiceNameRegistration(string serviceName, VersionPart majorVersion);
18
+
19
+ // supported versions
20
+ error MajorVersionMaxIncreaseInvalid(VersionPart newMajorVersionMax, VersionPart existingMaxMajorVersion);
21
+
22
+ // token whitelisting
23
+ error TokenNotRegistered(address token);
24
+ error NotToken(address token);
25
+ error TokenMajorVersionInvalid(VersionPart majorVersion);
26
+
27
+ // register
28
+ error NotRegistryService();
29
+ error ZeroParentAddress();
30
+ error ContractAlreadyRegistered(address objectAddress);
31
+ error InvalidServiceVersion(VersionPart majorVersion);
32
+ error ServiceNameAlreadyRegistered(string name, VersionPart majorVersion);
33
+
34
+ // approve
35
+ error NotOwner(address account);
36
+ error NotRegisteredContract(NftId registrarNftId);
37
+ error NotService(NftId registrarNftId);
38
+ error InvalidTypesCombination(ObjectType objectType, ObjectType parentType);
39
+
40
+
12
41
  struct ObjectInfo {
13
42
  NftId nftId;
14
43
  NftId parentNftId;
15
44
  ObjectType objectType;
45
+ bool isInterceptor;
16
46
  address objectAddress;
17
47
  address initialOwner;
18
48
  bytes data;
19
- }
49
+ }// TODO delete nftId and initialOwner(if not used) from struct
50
+ // TODO strong disagree, keep nftId there (lets keep get object info return object consistent)
51
+
52
+ function setMajorVersion(VersionPart newMajorVersionMax) external;
53
+
54
+ function register(ObjectInfo memory info) external returns (NftId nftId);
20
55
 
21
- function register(address objectAddress) external returns (NftId nftId);
56
+ function setTokenActive(address token, VersionPart majorVersion, bool active) external;
22
57
 
23
- function registerObjectForInstance(
24
- NftId parentNftid,
25
- ObjectType objectType,
26
- address initialOwner,
27
- bytes memory data
28
- ) external returns (NftId nftId);
58
+ function getMajorVersionMin() external view returns (VersionPart);
29
59
 
30
- function getServiceAddress(string memory serviceName, VersionPart majorVersion) external view returns (address serviceAddress);
60
+ function getMajorVersionMax() external view returns (VersionPart);
61
+
62
+ function getMajorVersion() external view returns (VersionPart);
31
63
 
32
64
  function getObjectCount() external view returns (uint256);
33
65
 
34
66
  function getNftId() external view returns (NftId nftId);
35
67
 
36
- function getNftId(
37
- address objectAddress
38
- ) external view returns (NftId nftId);
68
+ function getNftId(address objectAddress) external view returns (NftId nftId);
39
69
 
40
- function getObjectInfo(
41
- NftId nftId
42
- ) external view returns (ObjectInfo memory info);
70
+ function ownerOf(NftId nftId) external view returns (address);
43
71
 
44
- function getName(
45
- NftId nftId
46
- ) external view returns (string memory name);
72
+ function ownerOf(address contractAddress) external view returns (address);
47
73
 
48
- function getProtocolOwner() external view returns (address);
74
+ function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
49
75
 
50
- function getOwner(NftId nftId) external view returns (address ownerAddress);
76
+ function getObjectInfo(address object) external view returns (ObjectInfo memory info);
51
77
 
52
78
  function isRegistered(NftId nftId) external view returns (bool);
53
79
 
54
- function isRegistered(address objectAddress) external view returns (bool);
80
+ function isRegistered(address contractAddress) external view returns (bool);
81
+
82
+ function isTokenActive(address token, VersionPart majorVersion) external view returns (bool);
83
+
84
+ function getServiceName(NftId nftId) external view returns (string memory name);
85
+
86
+ function getServiceAddress(
87
+ string memory serviceName,
88
+ VersionPart majorVersion
89
+ ) external view returns (address serviceAddress);
90
+
91
+ function getChainNft() external view returns (ChainNft);
55
92
 
56
- function getChainNft() external view returns (IChainNft);
57
- }
93
+ function getOwner() external view returns (address);
94
+ }
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../types/NftId.sol";
5
+ import {ObjectType} from "../types/ObjectType.sol";
6
+ import {RoleId} from "../types/RoleId.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+ import {IRegistry} from "./IRegistry.sol";
9
+
10
+ import {IRegisterable} from "../shared/IRegisterable.sol";
11
+ import {IBaseComponent} from "../components/IBaseComponent.sol";
12
+
13
+ interface IRegistryService is IService {
14
+
15
+ function registerService(IService service) external returns(IRegistry.ObjectInfo memory info, bytes memory data);
16
+
17
+ function registerInstance(IRegisterable instance)
18
+ external returns(IRegistry.ObjectInfo memory info, bytes memory data);
19
+
20
+ function registerProduct(IBaseComponent product, address owner)
21
+ external returns(IRegistry.ObjectInfo memory info, bytes memory data);
22
+
23
+ function registerPool(IBaseComponent pool, address owner)
24
+ external returns(IRegistry.ObjectInfo memory info, bytes memory data);
25
+
26
+ function registerDistribution(IBaseComponent distribution, address owner)
27
+ external returns(IRegistry.ObjectInfo memory info, bytes memory data);
28
+
29
+ function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId); // -> easy to upgrade
30
+
31
+ function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
32
+ }
33
+
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ interface ITransferInterceptor {
5
+ function nftTransferFrom(address from, address to, uint256 tokenId) external;
6
+ }