@etherisc/gif-next 0.0.2-e1e92ab-754 → 0.0.2-e1f23dc-329

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 (339) hide show
  1. package/README.md +97 -1
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +26 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +94 -33
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +26 -0
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -25
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -59
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -50
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +131 -65
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +163 -58
  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 +735 -1020
  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 +2241 -1023
  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 +1407 -0
  60. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +931 -0
  62. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +508 -0
  64. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +59 -0
  66. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  67. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  68. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +27 -158
  69. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +37 -245
  72. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  76. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  78. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  79. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  81. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  82. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  83. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  84. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  85. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  86. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  87. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  88. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +47 -47
  90. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +121 -35
  92. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  93. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +444 -0
  94. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +1 -1
  96. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +87 -0
  99. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +19 -31
  101. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +210 -37
  103. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  104. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +448 -0
  105. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +129 -103
  107. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +472 -0
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +47 -2
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +202 -1
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +94 -19
  115. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  116. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.json +173 -50
  118. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  119. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +75 -27
  120. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +61 -34
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  123. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
  124. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  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 +1 -1
  128. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  129. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +1 -1
  131. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  132. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  133. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  134. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  135. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  136. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  137. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +4 -4
  138. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/RegisterableUpgradable.sol/RegisterableUpgradable.json} +2 -104
  140. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +2 -2
  142. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  143. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  144. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  145. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  146. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  147. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  148. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  149. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +4 -4
  150. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
  152. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  153. package/artifacts/contracts/test/TestService.sol/TestService.json +26 -10
  154. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  157. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +18 -2
  159. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  160. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  161. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  162. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  163. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  164. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  165. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  166. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  167. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  168. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  169. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  170. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  171. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  172. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  173. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  174. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  175. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  176. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  177. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  178. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  179. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  180. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  181. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  182. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  183. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  184. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  185. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  186. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  187. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  188. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  189. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  190. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  192. package/contracts/components/BaseComponent.sol +15 -3
  193. package/contracts/components/Distribution.sol +19 -15
  194. package/contracts/components/IBaseComponent.sol +8 -2
  195. package/contracts/components/IDistributionComponent.sol +2 -4
  196. package/contracts/components/IPoolComponent.sol +0 -2
  197. package/contracts/components/IProductComponent.sol +2 -4
  198. package/contracts/components/Pool.sol +22 -26
  199. package/contracts/components/Product.sol +46 -61
  200. package/contracts/experiment/cloning/Cloner.sol +47 -0
  201. package/contracts/instance/AccessManagedSimple.sol +115 -0
  202. package/contracts/instance/AccessManagerSimple.sol +692 -0
  203. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  204. package/contracts/instance/IInstance.sol +46 -44
  205. package/contracts/instance/IInstanceService.sol +30 -0
  206. package/contracts/instance/Instance.sol +423 -63
  207. package/contracts/instance/InstanceAccessManager.sol +288 -0
  208. package/contracts/instance/InstanceReader.sol +315 -0
  209. package/contracts/instance/InstanceService.sol +198 -0
  210. package/contracts/instance/InstanceServiceManager.sol +57 -0
  211. package/contracts/instance/base/ComponentServiceBase.sol +93 -8
  212. package/contracts/instance/base/IKeyValueStore.sol +13 -14
  213. package/contracts/instance/base/ILifecycle.sol +3 -3
  214. package/contracts/instance/base/KeyValueStore.sol +49 -38
  215. package/contracts/instance/base/Lifecycle.sol +1 -1
  216. package/contracts/instance/module/IAccess.sol +38 -0
  217. package/contracts/instance/module/IBundle.sol +20 -0
  218. package/contracts/instance/module/IDistribution.sol +39 -0
  219. package/contracts/instance/module/IPolicy.sol +45 -0
  220. package/contracts/instance/module/IRisk.sol +11 -0
  221. package/contracts/instance/module/ISetup.sol +44 -0
  222. package/contracts/instance/module/ITreasury.sol +23 -0
  223. package/contracts/instance/service/ComponentOwnerService.sol +62 -60
  224. package/contracts/instance/service/DistributionService.sol +49 -15
  225. package/contracts/instance/service/DistributionServiceManager.sol +54 -0
  226. package/contracts/instance/service/IComponentOwnerService.sol +1 -1
  227. package/contracts/instance/service/IDistributionService.sol +1 -1
  228. package/contracts/instance/service/IPoolService.sol +5 -1
  229. package/contracts/instance/service/IProductService.sol +6 -6
  230. package/contracts/instance/service/PoolService.sol +104 -52
  231. package/contracts/instance/service/PoolServiceManager.sol +54 -0
  232. package/contracts/instance/service/ProductService.sol +176 -122
  233. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  234. package/contracts/registry/ChainNft.sol +38 -23
  235. package/contracts/registry/IRegistry.sol +28 -4
  236. package/contracts/registry/IRegistryService.sol +34 -19
  237. package/contracts/registry/Registry.sol +82 -60
  238. package/contracts/registry/RegistryService.sol +42 -125
  239. package/contracts/registry/RegistryServiceManager.sol +24 -7
  240. package/contracts/registry/TokenRegistry.sol +111 -0
  241. package/contracts/shared/ERC165.sol +6 -2
  242. package/contracts/{instance/base → shared}/IService.sol +3 -3
  243. package/contracts/shared/NftOwnable.sol +2 -4
  244. package/contracts/shared/Registerable.sol +1 -0
  245. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  246. package/contracts/shared/Service.sol +55 -0
  247. package/contracts/shared/TokenHandler.sol +27 -0
  248. package/contracts/shared/Versionable.sol +2 -2
  249. package/contracts/test/TestRoleId.sol +1 -1
  250. package/contracts/test/TestService.sol +3 -5
  251. package/contracts/types/DistributorType.sol +55 -0
  252. package/contracts/types/Key32.sol +8 -3
  253. package/contracts/types/NumberId.sol +52 -0
  254. package/contracts/types/ObjectType.sol +35 -14
  255. package/contracts/types/Referral.sol +85 -0
  256. package/contracts/types/RoleId.sol +60 -15
  257. package/contracts/types/StateId.sol +5 -1
  258. package/contracts/types/Timestamp.sol +7 -3
  259. package/contracts/types/Version.sol +4 -1
  260. package/package.json +1 -1
  261. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  262. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  263. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  264. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  265. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  266. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  267. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  268. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  269. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  270. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  271. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  272. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  273. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  274. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  275. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  276. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  277. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  278. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  279. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  280. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  281. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  282. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  283. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  284. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  285. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -271
  286. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  287. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -271
  288. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  289. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  290. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  291. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  292. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  293. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  294. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  295. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  296. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  297. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  298. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  299. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  300. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  301. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  302. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  303. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  304. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  305. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  306. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  307. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  308. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  309. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -557
  310. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  311. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -716
  312. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  313. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -744
  314. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  315. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  316. package/contracts/instance/IInstanceLinked.sol +0 -8
  317. package/contracts/instance/base/InstanceBase.sol +0 -89
  318. package/contracts/instance/base/ModuleBase.sol +0 -57
  319. package/contracts/instance/base/ServiceBase.sol +0 -44
  320. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  321. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  322. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  323. package/contracts/instance/module/component/IComponent.sol +0 -28
  324. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  325. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  326. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  327. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  328. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  329. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  330. package/contracts/instance/module/risk/IRisk.sol +0 -26
  331. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  332. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  333. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  334. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  335. package/contracts/registry/IChainNft.sol +0 -22
  336. package/contracts/test/TestDistribution.sol +0 -22
  337. package/contracts/test/TestPool.sol +0 -27
  338. package/contracts/test/TestProduct.sol +0 -74
  339. package/contracts/types/ReferralId.sol +0 -48
@@ -3,13 +3,13 @@ pragma solidity ^0.8.19;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
- import {IRisk} from "../instance/module/risk/IRisk.sol";
7
- import {ITreasury} from "../instance/module/treasury/ITreasury.sol";
6
+ import {IRisk} from "../instance/module/IRisk.sol";
7
+ import {ITreasury} from "../instance/module/ITreasury.sol";
8
8
  import {IProductService} from "../instance/service/IProductService.sol";
9
9
  import {IProductComponent} from "./IProductComponent.sol";
10
- import {NftId, zeroNftId} from "../types/NftId.sol";
10
+ import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
11
11
  import {ObjectType, PRODUCT} from "../types/ObjectType.sol";
12
- import {ReferralId} from "../types/ReferralId.sol";
12
+ import {ReferralId} from "../types/Referral.sol";
13
13
  import {RiskId, RiskIdLib} from "../types/RiskId.sol";
14
14
  import {StateId} from "../types/StateId.sol";
15
15
  import {Timestamp} from "../types/Timestamp.sol";
@@ -19,14 +19,21 @@ import {BaseComponent} from "./BaseComponent.sol";
19
19
  import {IRegistry} from "../registry/IRegistry.sol";
20
20
  import {IRegisterable} from "../shared/IRegisterable.sol";
21
21
  import {Registerable} from "../shared/Registerable.sol";
22
+ import {TokenHandler} from "../shared/TokenHandler.sol";
22
23
 
23
- import {IPool} from "../instance/module/pool/IPoolModule.sol";
24
+ import {InstanceReader} from "../instance/InstanceReader.sol";
25
+ import {ISetup} from "../instance/module/ISetup.sol";
24
26
  import {Pool} from "../components/Pool.sol";
27
+ import {Distribution} from "../components/Distribution.sol";
28
+
29
+ import {zeroNftId} from "../types/NftId.sol";
25
30
 
26
31
  contract Product is BaseComponent, IProductComponent {
32
+ using NftIdLib for NftId;
33
+
27
34
  IProductService internal _productService;
28
35
  Pool internal _pool;
29
- address internal _distribution;
36
+ Distribution internal _distribution;
30
37
  Fee internal _initialProductFee;
31
38
  Fee internal _initialProcessingFee;
32
39
 
@@ -47,12 +54,12 @@ contract Product is BaseComponent, IProductComponent {
47
54
  // TODO add validation
48
55
  _productService = _instance.getProductService();
49
56
  _pool = Pool(pool);
50
- _distribution = distribution;
57
+ _distribution = Distribution(distribution);
51
58
  _initialProductFee = productFee;
52
59
  _initialProcessingFee = processingFee;
53
60
 
54
61
  _poolNftId = getRegistry().getNftId(address(_pool));
55
- _distributionNftId = getRegistry().getNftId(_distribution);
62
+ _distributionNftId = getRegistry().getNftId(address(_distribution));
56
63
 
57
64
  _registerInterface(type(IProductComponent).interfaceId);
58
65
  }
@@ -111,13 +118,13 @@ contract Product is BaseComponent, IProductComponent {
111
118
  );
112
119
  }
113
120
 
114
- function _setRiskInfo(
121
+ function _updateRisk(
115
122
  RiskId id,
116
- IRisk.RiskInfo memory info
123
+ bytes memory data
117
124
  ) internal {
118
- _productService.setRiskInfo(
125
+ _productService.updateRisk(
119
126
  id,
120
- info
127
+ data
121
128
  );
122
129
  }
123
130
 
@@ -132,7 +139,7 @@ contract Product is BaseComponent, IProductComponent {
132
139
  }
133
140
 
134
141
  function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
135
- return _instance.getRiskInfo(id);
142
+ return _instance.getInstanceReader().getRiskInfo(id);
136
143
  }
137
144
 
138
145
  function _createApplication(
@@ -195,7 +202,7 @@ contract Product is BaseComponent, IProductComponent {
195
202
  }
196
203
 
197
204
  function getDistributionNftId() external view override returns (NftId distributionNftId) {
198
- return getRegistry().getNftId(_distribution);
205
+ return getRegistry().getNftId(address(_distribution));
199
206
  }
200
207
 
201
208
  // from product component
@@ -210,38 +217,13 @@ contract Product is BaseComponent, IProductComponent {
210
217
  _productService.setFees(productFee, processingFee);
211
218
  }
212
219
 
213
- // TODO delete, call instance intead
214
- function getProductFee()
215
- external
216
- view
217
- override
218
- returns (Fee memory productFee)
219
- {
220
- NftId productNftId = getNftId();
221
- if (_instance.hasTreasuryInfo(productNftId)) {
222
- return _instance.getTreasuryInfo(productNftId).productFee;
223
- } else {
224
- return _initialProductFee;
225
- }
226
- }
227
-
228
- function getProcessingFee()
229
- external
230
- view
231
- override
232
- returns (Fee memory processingFee)
233
- {
234
- NftId productNftId = getNftId();
235
- if (_instance.hasTreasuryInfo(productNftId)) {
236
- return _instance.getTreasuryInfo(productNftId).processingFee;
237
- } else {
238
- return _initialProcessingFee;
239
- }
220
+ function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
221
+ InstanceReader reader = _instance.getInstanceReader();
222
+ return reader.getProductSetupInfo(getNftId());
240
223
  }
241
224
 
242
225
  // from IRegisterable
243
226
 
244
- // TODO used only once, occupies space
245
227
  function getInitialInfo()
246
228
  public
247
229
  view
@@ -253,7 +235,7 @@ contract Product is BaseComponent, IProductComponent {
253
235
  IRegistry.ObjectInfo memory productInfo,
254
236
  bytes memory data
255
237
  ) = super.getInitialInfo();
256
-
238
+
257
239
  // TODO read pool & distribution fees
258
240
  // 1) from pool -> the only option -> pool must be registered first?
259
241
  // 2) from instance -> all fees are set into instance at product registration which is ongoing here
@@ -263,36 +245,39 @@ contract Product is BaseComponent, IProductComponent {
263
245
 
264
246
  // from PoolComponent
265
247
  (
266
- IRegistry.ObjectInfo memory poolInfo,
248
+ ,
267
249
  bytes memory poolData
268
250
  ) = _pool.getInitialInfo();
251
+
252
+ (
253
+ ISetup.PoolSetupInfo memory poolSetupInfo
254
+ ) = abi.decode(poolData, (ISetup.PoolSetupInfo));
269
255
 
256
+ // from DistributionComponent
270
257
  (
271
- /*IPool.PoolInfo memory info*/,
272
- /*address wallet*/,
273
- /*IERC20Metadata token*/,
274
- Fee memory initialPoolFee,
275
- Fee memory initialStakingFee,
276
- Fee memory initialPerformanceFee
277
- ) = abi.decode(poolData, (IPool.PoolInfo, address, IERC20Metadata, Fee, Fee, Fee));
258
+ ,
259
+ bytes memory distributionData
260
+ ) = _distribution.getInitialInfo();
278
261
 
279
- // TODO from DistributionComponent
262
+ (
263
+ ISetup.DistributionSetupInfo memory distributionSetupInfo
264
+ ) = abi.decode(distributionData, (ISetup.DistributionSetupInfo));
280
265
 
281
266
  return (
282
267
  productInfo,
283
268
  abi.encode(
284
- ITreasury.TreasuryInfo(
285
- _poolNftId,
286
- _distributionNftId,
269
+ ISetup.ProductSetupInfo(
287
270
  _token,
271
+ TokenHandler(address(_token)),
272
+ _distributionNftId,
273
+ _poolNftId,
274
+ distributionSetupInfo.distributionFee,
288
275
  _initialProductFee,
289
276
  _initialProcessingFee,
290
- initialPoolFee,
291
- initialStakingFee,
292
- initialPerformanceFee,
293
- FeeLib.zeroFee()//_instance.getDistributionFee(_distributionNftId)
294
- ),
295
- _wallet
277
+ poolSetupInfo.poolFee,
278
+ poolSetupInfo.stakingFee,
279
+ poolSetupInfo.performanceFee
280
+ )
296
281
  )
297
282
  );
298
283
  }
@@ -0,0 +1,47 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
+
6
+
7
+ contract Cloner {
8
+
9
+ Mock1 public mock1;
10
+ Mock2 public mock2;
11
+
12
+ constructor() {
13
+ mock1 = new Mock1();
14
+ mock2 = new Mock2();
15
+ }
16
+
17
+ function createClone(address master)
18
+ external
19
+ returns (address cloned)
20
+ {
21
+ cloned = Clones.clone(master);
22
+ }
23
+ }
24
+
25
+
26
+ contract Mock1 {
27
+ function getValue() external virtual view returns (uint256) {
28
+ return 42;
29
+ }
30
+ }
31
+
32
+ contract Mock2 is Mock1 {
33
+ uint256 internal _value;
34
+
35
+ constructor() {
36
+ _value = 42;
37
+ }
38
+
39
+ function setValue(uint256 value) external virtual {
40
+ _value = value;
41
+ }
42
+
43
+ function getValue() external virtual override view returns (uint256) {
44
+ return _value;
45
+ }
46
+ }
47
+
@@ -0,0 +1,115 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // OpenZeppelin Contracts (last updated v5.0.0) (access/manager/AccessManaged.sol)
3
+
4
+ pragma solidity ^0.8.20;
5
+
6
+ import {AuthorityUtils} from "@openzeppelin/contracts/access/manager/AuthorityUtils.sol";
7
+ import {Context} from "@openzeppelin/contracts/utils/Context.sol";
8
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
9
+ import {IAuthority} from "@openzeppelin/contracts/access/manager/IAuthority.sol";
10
+
11
+ import {IAccessManagerSimple} from "./IAccessManagerSimple.sol";
12
+
13
+ /**
14
+ * @dev This contract module makes available a {restricted} modifier. Functions decorated with this modifier will be
15
+ * permissioned according to an "authority": a contract like {AccessManager} that follows the {IAuthority} interface,
16
+ * implementing a policy that allows certain callers to access certain functions.
17
+ *
18
+ * IMPORTANT: The `restricted` modifier should never be used on `internal` functions, judiciously used in `public`
19
+ * functions, and ideally only used in `external` functions. See {restricted}.
20
+ */
21
+ abstract contract AccessManagedSimple is Context, IAccessManaged {
22
+ bool private _initialized;
23
+ address private _authority;
24
+
25
+ bool private _consumingSchedule;
26
+
27
+ function initializeAccessManagedSimple(address initialAuthority) internal {
28
+ require(!_initialized, "AccessManaged: already initialized");
29
+ _setAuthority(initialAuthority);
30
+ _initialized = true;
31
+ }
32
+
33
+
34
+ /**
35
+ * @dev Restricts access to a function as defined by the connected Authority for this contract and the
36
+ * caller and selector of the function that entered the contract.
37
+ *
38
+ * [IMPORTANT]
39
+ * ====
40
+ * In general, this modifier should only be used on `external` functions. It is okay to use it on `public`
41
+ * functions that are used as external entry points and are not called internally. Unless you know what you're
42
+ * doing, it should never be used on `internal` functions. Failure to follow these rules can have critical security
43
+ * implications! This is because the permissions are determined by the function that entered the contract, i.e. the
44
+ * function at the bottom of the call stack, and not the function where the modifier is visible in the source code.
45
+ * ====
46
+ *
47
+ * [WARNING]
48
+ * ====
49
+ * Avoid adding this modifier to the https://docs.soliditylang.org/en/v0.8.20/contracts.html#receive-ether-function[`receive()`]
50
+ * function or the https://docs.soliditylang.org/en/v0.8.20/contracts.html#fallback-function[`fallback()`]. These
51
+ * functions are the only execution paths where a function selector cannot be unambiguosly determined from the calldata
52
+ * since the selector defaults to `0x00000000` in the `receive()` function and similarly in the `fallback()` function
53
+ * if no calldata is provided. (See {_checkCanCall}).
54
+ *
55
+ * The `receive()` function will always panic whereas the `fallback()` may panic depending on the calldata length.
56
+ * ====
57
+ */
58
+ modifier restricted() {
59
+ _checkCanCall(_msgSender(), _msgData());
60
+ _;
61
+ }
62
+
63
+ /// @inheritdoc IAccessManaged
64
+ function authority() public view virtual returns (address) {
65
+ return _authority;
66
+ }
67
+
68
+ /// @inheritdoc IAccessManaged
69
+ function setAuthority(address newAuthority) public virtual {
70
+ address caller = _msgSender();
71
+ if (caller != authority()) {
72
+ revert AccessManagedUnauthorized(caller);
73
+ }
74
+ if (newAuthority.code.length == 0) {
75
+ revert AccessManagedInvalidAuthority(newAuthority);
76
+ }
77
+ _setAuthority(newAuthority);
78
+ }
79
+
80
+ /// @inheritdoc IAccessManaged
81
+ function isConsumingScheduledOp() public view returns (bytes4) {
82
+ return _consumingSchedule ? this.isConsumingScheduledOp.selector : bytes4(0);
83
+ }
84
+
85
+ /**
86
+ * @dev Transfers control to a new authority. Internal function with no access restriction. Allows bypassing the
87
+ * permissions set by the current authority.
88
+ */
89
+ function _setAuthority(address newAuthority) internal virtual {
90
+ _authority = newAuthority;
91
+ emit AuthorityUpdated(newAuthority);
92
+ }
93
+
94
+ /**
95
+ * @dev Reverts if the caller is not allowed to call the function identified by a selector. Panics if the calldata
96
+ * is less than 4 bytes long.
97
+ */
98
+ function _checkCanCall(address caller, bytes calldata data) internal virtual {
99
+ (bool immediate, uint32 delay) = AuthorityUtils.canCallWithDelay(
100
+ authority(),
101
+ caller,
102
+ address(this),
103
+ bytes4(data[0:4])
104
+ );
105
+ if (!immediate) {
106
+ if (delay > 0) {
107
+ _consumingSchedule = true;
108
+ IAccessManagerSimple(authority()).consumeScheduledOp(caller, data);
109
+ _consumingSchedule = false;
110
+ } else {
111
+ revert AccessManagedUnauthorized(caller);
112
+ }
113
+ }
114
+ }
115
+ }