@etherisc/gif-next 0.0.2-fe77319 → 0.0.2-fe88ad7-208

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 (441) hide show
  1. package/README.md +364 -8
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +482 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +675 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/access/Access.sol/AccessModule.json → components/IBaseComponent.sol/IBaseComponent.json} +217 -220
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +152 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +275 -0
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  13. package/artifacts/contracts/{instance/pool/PoolModule.sol/PoolModule.json → components/IProductComponent.sol/IProductComponent.json} +81 -86
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +687 -40
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +612 -50
  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 +4 -0
  25. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +105 -0
  26. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +4 -0
  27. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +105 -0
  28. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +4 -0
  29. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +128 -0
  30. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +4 -0
  31. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +42 -0
  32. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +4 -0
  33. package/artifacts/contracts/experiment/{B.sol → inheritance/B.sol}/B.json +2 -2
  34. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +4 -0
  35. package/artifacts/contracts/experiment/{C.sol → inheritance/C.sol}/C.json +2 -2
  36. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +4 -0
  37. package/artifacts/contracts/experiment/{IA.sol → inheritance/IA.sol}/IA.json +1 -1
  38. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +4 -0
  39. package/artifacts/contracts/experiment/{IA.sol → inheritance/IA.sol}/ISharedA.json +1 -1
  40. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +4 -0
  41. package/artifacts/contracts/experiment/{IB.sol → inheritance/IB.sol}/IB.json +1 -1
  42. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +4 -0
  43. package/artifacts/contracts/experiment/{IC.sol → inheritance/IC.sol}/IC.json +1 -1
  44. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +4 -0
  45. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +59 -0
  46. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +4 -0
  47. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +124 -0
  48. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +4 -0
  49. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +74 -0
  50. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +4 -0
  51. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +124 -0
  52. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +4 -0
  53. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +207 -0
  54. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +4 -0
  55. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +10 -0
  56. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +4 -0
  57. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +10 -0
  58. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  60. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  61. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  62. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  63. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1314 -469
  66. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  67. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +570 -0
  70. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/Instance.sol/Instance.json +2531 -505
  72. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1047 -0
  74. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +963 -0
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +460 -0
  82. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  84. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +532 -0
  86. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
  88. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
  90. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.json +115 -0
  92. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +502 -0
  94. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
  96. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  97. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +254 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  99. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  105. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  106. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/ISetup.sol/ISetup.json} +2 -2
  108. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +10 -0
  110. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  111. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +945 -0
  112. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  113. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +432 -0
  114. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
  115. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +814 -0
  116. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  117. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +693 -0
  118. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +420 -0
  120. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  121. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +669 -0
  122. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
  123. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +466 -0
  124. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  125. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
  126. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  127. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +664 -0
  128. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  129. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +499 -0
  130. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  131. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +536 -0
  132. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  133. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +993 -0
  134. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +464 -0
  136. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  137. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +727 -0
  138. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +420 -0
  140. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  141. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +777 -0
  142. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +420 -0
  144. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
  145. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +771 -0
  146. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  147. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +449 -76
  148. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  149. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +976 -0
  150. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  151. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  152. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/Registry.sol/Registry.json +544 -79
  154. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  155. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  156. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  157. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1195 -0
  158. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +451 -0
  160. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  161. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +546 -0
  162. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  163. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +397 -0
  164. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  165. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  166. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  167. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +35 -0
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  170. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +201 -0
  172. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IService.sol/IService.json +421 -0
  174. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +205 -0
  176. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  177. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  178. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  180. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  181. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +274 -0
  182. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  183. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +442 -0
  184. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  185. package/artifacts/contracts/shared/Service.sol/Service.json +468 -0
  186. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  187. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  188. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  189. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  190. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  191. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +228 -0
  192. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  193. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  194. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  195. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +305 -0
  196. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  197. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
  198. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  199. package/artifacts/contracts/test/TestService.sol/TestService.json +600 -0
  200. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  201. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +376 -0
  202. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  203. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  204. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  205. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +286 -0
  206. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  207. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  208. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  209. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  210. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  211. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +174 -0
  212. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +4 -0
  213. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +10 -0
  214. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  215. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  216. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  217. package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
  218. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  219. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
  220. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +4 -0
  221. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +153 -0
  222. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  223. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +33 -0
  224. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  225. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  226. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  227. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +92 -0
  228. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  229. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  230. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  231. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  232. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  234. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +92 -0
  236. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +4 -0
  237. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +249 -0
  238. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  239. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  240. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  241. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  242. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  243. package/artifacts/contracts/types/Version.sol/VersionLib.json +177 -0
  244. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  245. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +49 -0
  246. package/contracts/components/BaseComponent.sol +159 -0
  247. package/contracts/components/Distribution.sol +163 -0
  248. package/contracts/components/IBaseComponent.sol +34 -0
  249. package/contracts/components/IDistributionComponent.sol +44 -0
  250. package/contracts/components/IPoolComponent.sol +66 -0
  251. package/contracts/components/IProductComponent.sol +35 -0
  252. package/contracts/components/Pool.sol +260 -18
  253. package/contracts/components/Product.sol +263 -36
  254. package/contracts/experiment/cloning/Cloner.sol +47 -0
  255. package/contracts/experiment/errors/Require.sol +38 -0
  256. package/contracts/experiment/errors/Revert.sol +44 -0
  257. package/contracts/experiment/{A.sol → inheritance/A.sol} +8 -11
  258. package/contracts/experiment/{B.sol → inheritance/B.sol} +10 -5
  259. package/contracts/experiment/{C.sol → inheritance/C.sol} +11 -5
  260. package/contracts/experiment/{IA.sol → inheritance/IA.sol} +2 -7
  261. package/contracts/experiment/{IB.sol → inheritance/IB.sol} +3 -2
  262. package/contracts/experiment/inheritance/IC.sol +12 -0
  263. package/contracts/experiment/statemachine/Dummy.sol +27 -0
  264. package/contracts/experiment/statemachine/ISM.sol +25 -0
  265. package/contracts/experiment/statemachine/SM.sol +57 -0
  266. package/contracts/experiment/statemachine/SimpleStateMachine.sol +31 -0
  267. package/contracts/experiment/types/TypeA.sol +47 -0
  268. package/contracts/experiment/types/TypeB.sol +29 -0
  269. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  270. package/contracts/instance/BundleManager.sol +129 -0
  271. package/contracts/instance/Cloneable.sol +46 -0
  272. package/contracts/instance/IInstance.sol +57 -15
  273. package/contracts/instance/IInstanceBase.sol +26 -0
  274. package/contracts/instance/IInstanceService.sol +40 -0
  275. package/contracts/instance/Instance.sol +257 -44
  276. package/contracts/instance/InstanceAccessManager.sol +303 -0
  277. package/contracts/instance/InstanceBase.sol +41 -0
  278. package/contracts/instance/InstanceReader.sol +315 -0
  279. package/contracts/instance/InstanceService.sol +350 -0
  280. package/contracts/instance/InstanceServiceManager.sol +54 -0
  281. package/contracts/instance/ObjectManager.sol +101 -0
  282. package/contracts/instance/base/ComponentServiceBase.sol +82 -0
  283. package/contracts/instance/base/IInstanceBase.sol +23 -0
  284. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  285. package/contracts/instance/base/ILifecycle.sol +30 -0
  286. package/contracts/instance/base/KeyValueStore.sol +172 -0
  287. package/contracts/instance/base/Lifecycle.sol +100 -0
  288. package/contracts/instance/module/IAccess.sol +48 -0
  289. package/contracts/instance/module/IBundle.sol +20 -0
  290. package/contracts/instance/module/IDistribution.sol +39 -0
  291. package/contracts/instance/module/IPolicy.sol +45 -0
  292. package/contracts/instance/module/IRisk.sol +11 -0
  293. package/contracts/instance/module/ISetup.sol +46 -0
  294. package/contracts/instance/module/ITreasury.sol +23 -0
  295. package/contracts/instance/service/BundleService.sol +260 -0
  296. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  297. package/contracts/instance/service/ComponentOwnerService.sol +315 -0
  298. package/contracts/instance/service/DistributionService.sol +113 -0
  299. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  300. package/contracts/instance/service/IBundleService.sol +45 -0
  301. package/contracts/instance/service/IComponentOwnerService.sol +20 -0
  302. package/contracts/instance/service/IDistributionService.sol +12 -0
  303. package/contracts/instance/service/IPolicyService.sol +87 -0
  304. package/contracts/instance/service/IPoolService.sol +20 -0
  305. package/contracts/instance/service/IProductService.sol +40 -0
  306. package/contracts/instance/service/PolicyService.sol +503 -0
  307. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  308. package/contracts/instance/service/PoolService.sol +124 -0
  309. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  310. package/contracts/instance/service/ProductService.sol +170 -0
  311. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  312. package/contracts/registry/ChainNft.sol +202 -0
  313. package/contracts/registry/IRegistry.sol +78 -53
  314. package/contracts/registry/IRegistryService.sol +58 -0
  315. package/contracts/registry/ITransferInterceptor.sol +6 -0
  316. package/contracts/registry/Registry.sol +329 -130
  317. package/contracts/registry/RegistryAccessManager.sol +210 -0
  318. package/contracts/registry/RegistryService.sol +323 -0
  319. package/contracts/registry/RegistryServiceManager.sol +62 -0
  320. package/contracts/registry/ReleaseManager.sol +348 -0
  321. package/contracts/registry/TokenRegistry.sol +110 -0
  322. package/contracts/shared/ContractDeployerLib.sol +72 -0
  323. package/contracts/shared/ERC165.sol +25 -0
  324. package/contracts/shared/INftOwnable.sol +22 -0
  325. package/contracts/shared/IRegisterable.sol +17 -0
  326. package/contracts/shared/IService.sol +16 -0
  327. package/contracts/shared/IVersionable.sol +96 -0
  328. package/contracts/shared/NftOwnable.sol +134 -0
  329. package/contracts/shared/ProxyManager.sol +94 -0
  330. package/contracts/shared/Registerable.sol +90 -0
  331. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  332. package/contracts/shared/Service.sol +58 -0
  333. package/contracts/shared/TokenHandler.sol +27 -0
  334. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  335. package/contracts/shared/Versionable.sol +147 -0
  336. package/contracts/test/TestFee.sol +25 -0
  337. package/contracts/test/TestRegisterable.sol +18 -0
  338. package/contracts/test/TestRoleId.sol +14 -0
  339. package/contracts/test/TestService.sol +25 -0
  340. package/contracts/test/TestToken.sol +26 -0
  341. package/contracts/test/TestVersion.sol +44 -0
  342. package/contracts/test/TestVersionable.sol +17 -0
  343. package/contracts/test/Usdc.sol +26 -0
  344. package/contracts/types/AddressSet.sol +58 -0
  345. package/contracts/types/Blocknumber.sol +118 -0
  346. package/contracts/types/ChainId.sol +38 -0
  347. package/contracts/types/DistributorType.sol +55 -0
  348. package/contracts/types/Fee.sol +56 -0
  349. package/contracts/types/Key32.sol +50 -0
  350. package/contracts/types/NftId.sol +72 -0
  351. package/contracts/types/NftIdSet.sol +62 -0
  352. package/contracts/types/NumberId.sol +52 -0
  353. package/contracts/types/ObjectType.sol +152 -0
  354. package/contracts/types/Referral.sol +85 -0
  355. package/contracts/types/RiskId.sol +43 -0
  356. package/contracts/types/RoleId.sol +90 -0
  357. package/contracts/types/StateId.sol +105 -0
  358. package/contracts/types/Timestamp.sol +127 -0
  359. package/contracts/types/UFixed.sol +325 -0
  360. package/contracts/types/Version.sol +107 -0
  361. package/package.json +21 -6
  362. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  363. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  364. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  365. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  366. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  367. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  368. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  369. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  370. package/artifacts/contracts/experiment/A.sol/A.dbg.json +0 -4
  371. package/artifacts/contracts/experiment/A.sol/A.json +0 -128
  372. package/artifacts/contracts/experiment/A.sol/AShared.dbg.json +0 -4
  373. package/artifacts/contracts/experiment/A.sol/AShared.json +0 -42
  374. package/artifacts/contracts/experiment/B.sol/B.dbg.json +0 -4
  375. package/artifacts/contracts/experiment/C.sol/C.dbg.json +0 -4
  376. package/artifacts/contracts/experiment/IA.sol/IA.dbg.json +0 -4
  377. package/artifacts/contracts/experiment/IA.sol/ISharedA.dbg.json +0 -4
  378. package/artifacts/contracts/experiment/IB.sol/IB.dbg.json +0 -4
  379. package/artifacts/contracts/experiment/IC.sol/IC.dbg.json +0 -4
  380. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  381. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  382. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  383. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
  384. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  385. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  386. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  387. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  388. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  389. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  390. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  391. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -105
  392. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  393. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  394. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  395. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  396. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  397. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  398. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  399. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  400. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  401. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  402. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  403. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  404. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  405. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  406. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  407. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  408. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  409. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  410. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  411. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  412. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  413. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  414. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  415. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  416. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  417. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
  418. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  419. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  420. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  421. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  422. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  423. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  424. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  425. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  426. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  427. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  428. package/contracts/components/Component.sol +0 -62
  429. package/contracts/components/IPool.sol +0 -9
  430. package/contracts/components/IProduct.sol +0 -11
  431. package/contracts/experiment/IC.sol +0 -11
  432. package/contracts/instance/access/Access.sol +0 -218
  433. package/contracts/instance/access/IAccess.sol +0 -83
  434. package/contracts/instance/component/ComponentModule.sol +0 -259
  435. package/contracts/instance/component/IComponent.sol +0 -94
  436. package/contracts/instance/policy/IPolicy.sol +0 -66
  437. package/contracts/instance/policy/PolicyModule.sol +0 -106
  438. package/contracts/instance/pool/IPoolModule.sol +0 -40
  439. package/contracts/instance/pool/PoolModule.sol +0 -83
  440. package/contracts/instance/product/IProductService.sol +0 -45
  441. package/contracts/instance/product/ProductService.sol +0 -105
@@ -1,62 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry, IRegisterable, IRegistryLinked} from "../registry/IRegistry.sol";
5
- import {Registerable} from "../registry/Registry.sol";
6
- import {IInstance} from "../instance/IInstance.sol";
7
-
8
- import {IInstanceLinked, IComponent, IComponentContract, IComponentModule, IComponentOwnerService} from "../instance/component/IComponent.sol";
9
-
10
-
11
- contract InstanceLinked is
12
- IInstanceLinked
13
- {
14
- IInstance internal _instance;
15
-
16
- constructor(address instance) {
17
- _instance = IInstance(instance);
18
- }
19
-
20
- // function setInstance(address instance) public override {
21
- // require(address(_instance) == address(0), "ERROR:RGL-001:INSTANCE_ALREADY_SET");
22
- // _instance = IInstance(instance);
23
- // }
24
-
25
- function getInstance() public view override returns(IInstance instance) {
26
- return _instance;
27
- }
28
- }
29
-
30
-
31
- abstract contract Component is
32
- Registerable,
33
- InstanceLinked,
34
- IComponentContract
35
- {
36
-
37
- address private _deployer;
38
-
39
- constructor(address registry, address instance)
40
- Registerable(registry)
41
- InstanceLinked(instance)
42
- { }
43
-
44
- // from registerable
45
- function register()
46
- public
47
- override
48
- returns(uint256 componentId)
49
- {
50
- require(msg.sender == getInitialOwner(), "");
51
- require(address(_registry) != address(0), "ERROR:PRD-001:REGISTRY_ZERO");
52
- require(_registry.isRegistered(address(_instance)), "ERROR:PRD-002:INSTANCE_NOT_REGISTERED");
53
-
54
- IComponentOwnerService cos = _instance.getComponentOwnerService();
55
- componentId = cos.register(this);
56
- }
57
-
58
- // from registerable
59
- function getParentNftId() public view override returns(uint256) {
60
- return getInstance().getNftId();
61
- }
62
- }
@@ -1,9 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IComponentContract} from "../instance/component/IComponent.sol";
5
-
6
- // just marker interface for now
7
- interface IPoolComponent is
8
- IComponentContract
9
- { }
@@ -1,11 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IComponentContract} from "../instance/component/IComponent.sol";
5
-
6
- interface IProductComponent is
7
- IComponentContract
8
- {
9
-
10
- function getPoolNftId() external view returns(uint256 poolNftId);
11
- }
@@ -1,11 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface IC {
5
-
6
- function getAfromC() external view returns(uint256);
7
- function getBfromC() external view returns(uint256);
8
-
9
- function getC() external view returns(uint256);
10
- function setC(uint256 newA) external;
11
- }
@@ -1,218 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- // role admin handling of oz doesn't fit nft ownability
5
- // import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol";
6
- import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
7
-
8
- import {IAccessModule} from "./IAccess.sol";
9
-
10
-
11
- abstract contract AccessModule is
12
- IAccessModule
13
- {
14
- string constant public PRODUCT_OWNER = "ProductOwner";
15
- string constant public ORACLE_OWNER = "OracleOwner";
16
- string constant public POOL_OWNER = "PoolOwner";
17
-
18
- using EnumerableSet for EnumerableSet.AddressSet;
19
-
20
- event LogAccessRoleGranted(bytes32 role, address member, bool isMember);
21
-
22
- mapping(bytes32 role => RoleInfo info) private _info;
23
- bytes32 [] private _roles;
24
-
25
- bytes32 private immutable _productOwnerRole;
26
- bytes32 private immutable _oracleOwnerRole;
27
- bytes32 private immutable _poolOwnerRole;
28
-
29
- mapping(bytes32 role => mapping(address member => bool isMember)) private _isRoleMember;
30
- mapping(bytes32 role => EnumerableSet.AddressSet) private _roleMembers;
31
-
32
- modifier onlyOwner() {
33
- require(msg.sender == this.getOwner(), "ERROR:ACM-001:NOT_OWNER");
34
- _;
35
- }
36
-
37
- constructor() {
38
- _productOwnerRole = _createRole(PRODUCT_OWNER);
39
- _oracleOwnerRole = _createRole(ORACLE_OWNER);
40
- _poolOwnerRole = _createRole(POOL_OWNER);
41
- }
42
-
43
- function PRODUCT_OWNER_ROLE() public view override returns(bytes32 role) { return _productOwnerRole; }
44
- function ORACLE_OWNER_ROLE() public view override returns(bytes32 role) { return _oracleOwnerRole; }
45
- function POOL_OWNER_ROLE() public view override returns(bytes32 role) { return _poolOwnerRole; }
46
-
47
-
48
- function createRole(string memory roleName)
49
- external
50
- override
51
- onlyOwner
52
- returns(bytes32 role)
53
- {
54
- return _createRole(roleName);
55
- }
56
-
57
- function _createRole(string memory roleName)
58
- internal
59
- returns(bytes32 role)
60
- {
61
- RoleInfo memory info = RoleInfo(
62
- 0,
63
- roleName,
64
- true
65
- );
66
-
67
- role = _setRoleInfo(info);
68
-
69
-
70
- }
71
-
72
- // TODO move to module
73
- function disableRole(bytes32 role)
74
- external
75
- override
76
- onlyOwner
77
- {
78
- RoleInfo memory info = _info[role];
79
- require(info.id == role, "ERROR:AOS-001:ROLE_DOES_NOT_EXIST");
80
-
81
- info.isActive = false;
82
- _setRoleInfo(info);
83
-
84
-
85
- }
86
-
87
- // TODO move to module
88
- function enableRole(bytes32 role)
89
- external
90
- override
91
- onlyOwner
92
- {
93
- RoleInfo memory info = _info[role];
94
- require(info.id == role, "ERROR:AOS-002:ROLE_DOES_NOT_EXIST");
95
-
96
- info.isActive = true;
97
- _setRoleInfo(info);
98
-
99
-
100
- }
101
-
102
- function grantRole(bytes32 role, address member)
103
- external
104
- override
105
- onlyOwner
106
- {
107
- require(_info[role].id == role, "ERROR:ACM-010:ROLE_NOT_EXISTING");
108
- require(_info[role].isActive, "ERROR:ACM-011:ROLE_NOT_ACTIVE");
109
-
110
- _isRoleMember[role][member] = true;
111
- _roleMembers[role].add(member);
112
-
113
- emit LogAccessRoleGranted(role, member, _isRoleMember[role][member]);
114
- }
115
-
116
-
117
- function revokeRole(bytes32 role, address member)
118
- external
119
- override
120
- onlyOwner
121
- {
122
- require(_info[role].id == role, "ERROR:ACM-020:ROLE_NOT_EXISTING");
123
-
124
- _isRoleMember[role][member] = false;
125
- _roleMembers[role].remove(member);
126
-
127
-
128
- }
129
-
130
-
131
- function hasRole(bytes32 role, address member)
132
- external
133
- view
134
- override
135
- returns(bool)
136
- {
137
- return _isRoleMember[role][member];
138
- }
139
-
140
-
141
- function getRoleInfo(bytes32 role)
142
- external
143
- override
144
- view
145
- returns(RoleInfo memory info)
146
- {
147
- return _info[role];
148
- }
149
-
150
-
151
- function getRole(uint256 idx)
152
- external
153
- override
154
- view
155
- returns(bytes32 role)
156
- {
157
- return _roles[idx];
158
- }
159
-
160
-
161
- function getRoleCount()
162
- external
163
- override
164
- view
165
- returns(uint256 roles)
166
- {
167
- return _roles.length;
168
- }
169
-
170
- function getRoleMemberCount(bytes32 role)
171
- public
172
- override
173
- view
174
- returns(uint256 roleMembers)
175
- {
176
- return _roleMembers[role].length();
177
- }
178
-
179
- function getRoleMember(bytes32 role, uint256 idx)
180
- public
181
- override
182
- view
183
- returns(address roleMembers)
184
- {
185
- return _roleMembers[role].at(idx);
186
- }
187
-
188
- function getRoleForName(string memory roleName)
189
- public
190
- override
191
- pure
192
- returns(bytes32 role)
193
- {
194
- return keccak256(abi.encode(roleName));
195
- }
196
-
197
-
198
- function _setRoleInfo(RoleInfo memory info)
199
- internal
200
- returns(bytes32 role)
201
- {
202
- role = info.id;
203
-
204
- if(role == bytes32(0)) {
205
- role = getRoleForName(info.name);
206
- // TODO check that this is a new role id
207
-
208
- info.id = role;
209
- _roles.push(role);
210
-
211
-
212
- }
213
-
214
- _info[role] = info;
215
-
216
-
217
- }
218
- }
@@ -1,83 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IOwnable, IRegistryLinked} from "../../registry/IRegistry.sol";
5
-
6
- interface IAccess {
7
-
8
- struct RoleInfo {
9
- bytes32 id;
10
- string name;
11
- bool isActive;
12
- }
13
- }
14
-
15
- interface IAccessCheckRole {
16
-
17
- function hasRole(bytes32 role, address member)
18
- external
19
- view
20
- returns(bool);
21
- }
22
-
23
- interface IAccessComponentTypeRoles {
24
- function PRODUCT_OWNER_ROLE() external view returns(bytes32 role);
25
- function ORACLE_OWNER_ROLE() external view returns(bytes32 role);
26
- function POOL_OWNER_ROLE() external view returns(bytes32 role);
27
- }
28
-
29
-
30
- interface IAccessModule is
31
- IOwnable,
32
- IRegistryLinked,
33
- IAccess,
34
- IAccessComponentTypeRoles,
35
- IAccessCheckRole
36
- {
37
-
38
- function createRole(string memory roleName)
39
- external
40
- returns(bytes32 role);
41
-
42
- function enableRole(bytes32 role)
43
- external;
44
-
45
- function disableRole(bytes32 role)
46
- external;
47
-
48
- function grantRole(bytes32 role, address member)
49
- external;
50
-
51
- function revokeRole(bytes32 role, address member)
52
- external;
53
-
54
- function getRole(uint256 idx)
55
- external
56
- view
57
- returns(bytes32 role);
58
-
59
- function getRoleInfo(bytes32 role)
60
- external
61
- view
62
- returns(RoleInfo memory info);
63
-
64
- function getRoleForName(string memory roleName)
65
- external
66
- pure
67
- returns(bytes32 role);
68
-
69
- function getRoleCount()
70
- external
71
- view
72
- returns(uint256 roles);
73
-
74
- function getRoleMemberCount(bytes32 role)
75
- external
76
- view
77
- returns(uint256 roleMembers);
78
-
79
- function getRoleMember(bytes32 role, uint256 idx)
80
- external
81
- view
82
- returns(address roleMembers);
83
- }
@@ -1,259 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {RegistryLinked} from "../../registry/Registry.sol";
5
- import {IRegistry, IRegistryLinked} from "../../registry/IRegistry.sol";
6
- import {IAccessComponentTypeRoles, IAccessCheckRole} from "../access/IAccess.sol";
7
- import {IInstance} from "../IInstance.sol";
8
-
9
- import {IComponent, IComponentContract, IComponentModule, IComponentOwnerService} from "./IComponent.sol";
10
- import {IProductComponent} from "../../components/IProduct.sol";
11
- import {IPoolModule} from "../pool/IPoolModule.sol";
12
-
13
-
14
- abstract contract ComponentModule is
15
- IRegistryLinked,
16
- IAccessComponentTypeRoles,
17
- IAccessCheckRole,
18
- IComponentModule
19
- {
20
-
21
- mapping(uint256 nftId => ComponentInfo info) private _componentInfo;
22
- mapping(uint256 nftId => uint256 poolNftId) private _poolNftIdForProduct;
23
- mapping(address cAddress => uint256 id) private _idByAddress;
24
- uint256 [] private _ids;
25
-
26
- mapping(uint256 cType => bytes32 role) private _componentOwnerRole;
27
-
28
- IComponentOwnerService private _componentOwnerService;
29
-
30
- modifier onlyComponentOwnerService() {
31
- require(address(_componentOwnerService) == msg.sender, "ERROR:CMP-001:NOT_OWNER_SERVICE");
32
- _;
33
- }
34
-
35
- constructor(address componentOwnerService) {
36
- _componentOwnerService = ComponentOwnerService(componentOwnerService);
37
- }
38
-
39
- function registerComponent(IComponentContract component)
40
- external
41
- override
42
- onlyComponentOwnerService
43
- returns(uint256 nftId)
44
- {
45
- bytes32 typeRole = getRoleForType(component.getType());
46
- require(
47
- this.hasRole(typeRole, component.getInitialOwner()),
48
- "ERROR:CMP-004:TYPE_ROLE_MISSING");
49
-
50
- nftId = this.getRegistry().register(address(component));
51
-
52
- _componentInfo[nftId] = ComponentInfo(
53
- nftId,
54
- CState.Active);
55
-
56
- // special case product -> persist product - pool assignment
57
- if(component.getType() == this.getRegistry().PRODUCT()) {
58
- IProductComponent product = IProductComponent(address(component));
59
- uint256 poolNftId = product.getPoolNftId();
60
- require(poolNftId > 0, "ERROR:CMP-005:POOL_UNKNOWN");
61
- // add more validation (type, token, ...)
62
-
63
- _poolNftIdForProduct[nftId] = poolNftId;
64
-
65
- // add creation of productInfo
66
- }
67
- else if(component.getType() == this.getRegistry().POOL()) {
68
- IPoolModule poolModule = IPoolModule(address(this));
69
- poolModule.createPoolInfo(
70
- nftId,
71
- address(component), // set pool as its wallet
72
- address(0) // don't deal with token yet
73
- );
74
- }
75
-
76
- _idByAddress[address(component)] = nftId;
77
- _ids.push(nftId);
78
-
79
- // add logging
80
- }
81
-
82
- function getPoolNftId(uint256 productNftId)
83
- external
84
- view
85
- override
86
- returns(uint256 poolNftId)
87
- {
88
- poolNftId = _poolNftIdForProduct[productNftId];
89
- }
90
-
91
-
92
- function getComponentOwnerService()
93
- external
94
- override
95
- view
96
- returns(IComponentOwnerService)
97
- {
98
- return _componentOwnerService;
99
- }
100
-
101
- function setComponentInfo(ComponentInfo memory info)
102
- external
103
- onlyComponentOwnerService
104
- returns(uint256 nftId)
105
- {
106
- uint256 id = info.nftId;
107
- require(
108
- id > 0 && _componentInfo[id].nftId == id,
109
- "ERROR:CMP-005:COMPONENT_UNKNOWN");
110
-
111
- _componentInfo[id] = info;
112
-
113
- // add logging
114
- }
115
-
116
- function getComponentInfo(uint256 id)
117
- external
118
- override
119
- view
120
- returns(ComponentInfo memory)
121
- {
122
- return _componentInfo[id];
123
- }
124
-
125
- function getComponentOwner(uint256 id)
126
- external
127
- view
128
- returns(address owner)
129
- {
130
-
131
- }
132
-
133
- function getComponentId(address componentAddress)
134
- external
135
- view
136
- returns(uint256 id)
137
- {
138
- return _idByAddress[componentAddress];
139
- }
140
-
141
-
142
- function getComponentId(uint256 idx)
143
- external
144
- override
145
- view
146
- returns(uint256 id)
147
- {
148
- return _ids[idx];
149
- }
150
-
151
-
152
- function components()
153
- external
154
- override
155
- view
156
- returns(uint256 numberOfCompnents)
157
- {
158
- return _ids.length;
159
- }
160
-
161
- function getRoleForType(uint256 cType)
162
- public
163
- view
164
- returns(bytes32 role)
165
- {
166
- if(cType == this.getRegistry().PRODUCT()) {
167
- return this.PRODUCT_OWNER_ROLE();
168
- }
169
- if(cType == this.getRegistry().POOL()) {
170
- return this.POOL_OWNER_ROLE();
171
- }
172
- if(cType == this.getRegistry().ORACLE()) {
173
- return this.ORACLE_OWNER_ROLE();
174
- }
175
-
176
- }
177
- }
178
-
179
-
180
- // this is actually the component owner service
181
- contract ComponentOwnerService is
182
- RegistryLinked,
183
- IComponent,
184
- IComponentOwnerService
185
- {
186
-
187
- modifier onlyComponentOwner(IComponentContract component) {
188
- uint256 nftId = _registry.getNftId(address(component));
189
- require(
190
- nftId > 0,
191
- "ERROR:COS-001:COMPONENT_UNKNOWN");
192
- require(
193
- msg.sender == _registry.getOwner(nftId),
194
- "ERROR:COS-002:NOT_OWNER"
195
- );
196
- _;
197
- }
198
-
199
- constructor(address registry)
200
- RegistryLinked(registry)
201
- { }
202
-
203
-
204
- // modifier onlyComponentOwnerRole(IComponentContract component) {
205
- // IInstance instance = component.getInstance();
206
- // // TODO add set/getComponentOwnerRole to IComonentModule
207
- // bytes32 typeRole = instance.getComponentTypeRole(component.getType());
208
- // require(
209
- // instance.hasRole(typeRole, msg.sender),
210
- // "ERROR:COS-003:COMPONENT_ROLE_MISSING"
211
- // );
212
- // _;
213
- // }
214
-
215
-
216
- function register(IComponentContract component)
217
- external
218
- override
219
- returns(uint256 nftId)
220
- {
221
- require(
222
- msg.sender == component.getInitialOwner(),
223
- "ERROR:COS-003:NOT_OWNER");
224
-
225
- IInstance instance = component.getInstance();
226
- nftId = instance.registerComponent(component);
227
- }
228
-
229
-
230
- function lock(IComponentContract component)
231
- external
232
- override
233
- onlyComponentOwner(component)
234
- {
235
- IInstance instance = component.getInstance();
236
- ComponentInfo memory info = instance.getComponentInfo(component.getNftId());
237
- require(info.nftId > 0, "ERROR_COMPONENT_UNKNOWN");
238
- // TODO add state change validation
239
-
240
- info.state = CState.Locked;
241
- instance.setComponentInfo(info);
242
- }
243
-
244
-
245
- function unlock(IComponentContract component)
246
- external
247
- override
248
- onlyComponentOwner(component)
249
- {
250
- IInstance instance = component.getInstance();
251
- ComponentInfo memory info = instance.getComponentInfo(component.getNftId());
252
- require(info.nftId > 0, "ERROR_COMPONENT_UNKNOWN");
253
- // TODO state change validation
254
-
255
- info.state = CState.Active;
256
- instance.setComponentInfo(info);
257
- }
258
-
259
- }