@etherisc/gif-next 0.0.2-29a48ef-239 → 0.0.2-2a59cd5-352

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 (291) hide show
  1. package/README.md +136 -2
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +897 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +1020 -205
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → components/IComponent.sol/IComponent.json} +171 -191
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +798 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +676 -31
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +661 -5
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +849 -270
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +694 -133
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  33. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  36. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  39. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  40. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +764 -0
  41. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  42. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +86 -2
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  44. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +738 -36
  45. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  46. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +214 -20
  47. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  48. package/artifacts/contracts/instance/Instance.sol/Instance.json +505 -764
  49. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  50. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +211 -144
  51. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  52. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +61 -97
  53. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  54. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +491 -162
  55. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  56. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +178 -76
  57. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  58. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +261 -0
  59. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  60. package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → instance/base/ComponentService.sol/ComponentService.json} +321 -9
  61. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  63. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +2 -2
  65. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  66. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +59 -16
  69. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  75. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  76. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1117 -0
  77. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  78. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1318 -0
  79. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  80. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +586 -0
  81. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +544 -84
  83. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +191 -33
  85. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  86. package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IApplicationService.sol/IApplicationService.json} +223 -51
  87. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  88. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +798 -0
  89. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +229 -19
  91. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  92. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +784 -0
  93. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  94. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +31 -188
  95. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +33 -244
  97. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1378 -0
  99. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +642 -0
  101. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +268 -282
  103. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +166 -52
  105. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +270 -410
  107. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +166 -80
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +225 -133
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +185 -77
  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 +238 -235
  118. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  120. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +243 -129
  122. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +181 -97
  124. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +547 -0
  126. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  127. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +150 -29
  128. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  129. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  130. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  131. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  132. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +37 -0
  133. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  134. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
  135. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +18 -5
  137. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  138. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +69 -0
  139. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  140. package/artifacts/contracts/shared/IService.sol/IService.json +32 -19
  141. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -2
  143. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +156 -11
  145. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  146. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +269 -0
  147. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  148. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +156 -6
  149. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  150. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -11
  151. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  152. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +105 -0
  153. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  154. package/artifacts/contracts/shared/Service.sol/Service.json +178 -19
  155. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  156. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  157. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  158. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  159. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -2
  160. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  161. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  162. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +152 -11
  163. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  164. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  165. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  166. package/artifacts/contracts/test/TestService.sol/TestService.json +196 -37
  167. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  168. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  169. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  170. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -8
  171. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  172. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  173. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  175. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  177. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  179. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  180. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  181. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  182. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  183. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  184. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  185. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  187. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  188. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
  189. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  191. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  193. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  196. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  197. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  198. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  199. package/contracts/components/Component.sol +236 -0
  200. package/contracts/components/Distribution.sol +209 -64
  201. package/contracts/components/IComponent.sol +50 -0
  202. package/contracts/components/IDistributionComponent.sol +59 -3
  203. package/contracts/components/IPoolComponent.sol +54 -29
  204. package/contracts/components/IProductComponent.sol +7 -3
  205. package/contracts/components/Pool.sol +152 -145
  206. package/contracts/components/Product.sol +104 -115
  207. package/contracts/instance/BundleManager.sol +125 -0
  208. package/contracts/instance/Cloneable.sol +46 -0
  209. package/contracts/instance/IInstance.sol +41 -9
  210. package/contracts/instance/IInstanceService.sol +33 -4
  211. package/contracts/instance/Instance.sol +92 -254
  212. package/contracts/instance/InstanceAccessManager.sol +87 -78
  213. package/contracts/instance/InstanceReader.sol +3 -25
  214. package/contracts/instance/InstanceService.sol +350 -106
  215. package/contracts/instance/InstanceServiceManager.sol +5 -8
  216. package/contracts/instance/ObjectManager.sol +84 -0
  217. package/contracts/instance/base/ComponentService.sol +134 -0
  218. package/contracts/instance/module/IAccess.sol +27 -18
  219. package/contracts/instance/module/ISetup.sol +5 -5
  220. package/contracts/instance/service/ApplicationService.sol +268 -0
  221. package/contracts/instance/service/BundleService.sol +298 -0
  222. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  223. package/contracts/instance/service/DistributionService.sol +221 -27
  224. package/contracts/instance/service/DistributionServiceManager.sol +6 -9
  225. package/contracts/instance/service/IApplicationService.sol +82 -0
  226. package/contracts/instance/service/IBundleService.sol +54 -0
  227. package/contracts/instance/service/IDistributionService.sol +53 -0
  228. package/contracts/instance/service/IPolicyService.sol +88 -0
  229. package/contracts/instance/service/IPoolService.sol +3 -26
  230. package/contracts/instance/service/IProductService.sol +2 -72
  231. package/contracts/instance/service/PolicyService.sol +524 -0
  232. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  233. package/contracts/instance/service/PoolService.sol +37 -132
  234. package/contracts/instance/service/PoolServiceManager.sol +5 -8
  235. package/contracts/instance/service/ProductService.sol +123 -451
  236. package/contracts/registry/ChainNft.sol +1 -1
  237. package/contracts/registry/IRegistry.sol +37 -19
  238. package/contracts/registry/IRegistryService.sol +30 -13
  239. package/contracts/registry/Registry.sol +233 -217
  240. package/contracts/registry/RegistryAccessManager.sol +216 -0
  241. package/contracts/registry/RegistryService.sol +81 -162
  242. package/contracts/registry/RegistryServiceManager.sol +18 -36
  243. package/contracts/registry/ReleaseManager.sol +331 -0
  244. package/contracts/registry/TokenRegistry.sol +11 -9
  245. package/contracts/shared/ERC165.sol +12 -11
  246. package/contracts/shared/INftOwnable.sol +12 -6
  247. package/contracts/shared/IPolicyHolder.sol +26 -0
  248. package/contracts/shared/IRegisterable.sol +4 -6
  249. package/contracts/shared/IRegistryLinked.sol +15 -0
  250. package/contracts/shared/IService.sol +2 -1
  251. package/contracts/shared/IVersionable.sol +2 -2
  252. package/contracts/shared/NftOwnable.sol +113 -57
  253. package/contracts/shared/PolicyHolder.sol +81 -0
  254. package/contracts/shared/ProxyManager.sol +6 -5
  255. package/contracts/shared/Registerable.sol +15 -24
  256. package/contracts/shared/RegistryLinked.sol +64 -0
  257. package/contracts/shared/Service.sol +18 -13
  258. package/contracts/shared/Versionable.sol +3 -2
  259. package/contracts/test/TestRegisterable.sol +1 -1
  260. package/contracts/test/TestService.sol +4 -3
  261. package/contracts/types/DistributorType.sol +2 -2
  262. package/contracts/types/NftIdSet.sol +26 -24
  263. package/contracts/types/ObjectType.sol +6 -2
  264. package/contracts/types/RoleId.sol +10 -10
  265. package/package.json +3 -3
  266. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  267. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  268. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  269. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  270. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  271. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  272. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  273. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  274. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  275. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  276. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  277. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  278. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  279. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  280. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  281. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  282. package/contracts/components/BaseComponent.sol +0 -91
  283. package/contracts/components/IBaseComponent.sol +0 -25
  284. package/contracts/instance/AccessManagedSimple.sol +0 -115
  285. package/contracts/instance/AccessManagerSimple.sol +0 -692
  286. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  287. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  288. package/contracts/instance/base/IInstanceBase.sol +0 -23
  289. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  290. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  291. package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/f10f3aeaf877c015583985ece5f2890b.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/f10f3aeaf877c015583985ece5f2890b.json"
4
- }
@@ -1,91 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {Registerable} from "../shared/Registerable.sol";
7
-
8
- import {IRegistry} from "../registry/IRegistry.sol";
9
- import {IInstance} from "../instance/IInstance.sol";
10
-
11
- import {IInstance} from "../instance/IInstance.sol";
12
- import {IComponentOwnerService} from "../instance/service/IComponentOwnerService.sol";
13
- import {IBaseComponent} from "./IBaseComponent.sol";
14
- import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
15
- import {ObjectType} from "../types/ObjectType.sol";
16
-
17
- abstract contract BaseComponent is
18
- Registerable,
19
- IBaseComponent
20
- {
21
- using NftIdLib for NftId;
22
-
23
- IComponentOwnerService internal _componentOwnerService;
24
-
25
- address internal _deployer;
26
- address internal _wallet;
27
- IERC20Metadata internal _token;
28
- IInstance internal _instance;
29
- NftId internal _productNftId;
30
-
31
- constructor(
32
- address registry,
33
- NftId instanceNftId,
34
- address token,
35
- ObjectType componentType,
36
- bool isInterceptor,
37
- address initialOwner
38
- )
39
- {
40
- bytes memory data = "";
41
- _initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, data);
42
-
43
- IRegistry.ObjectInfo memory instanceInfo = getRegistry().getObjectInfo(instanceNftId);
44
- _instance = IInstance(instanceInfo.objectAddress);
45
- require(
46
- _instance.supportsInterface(type(IInstance).interfaceId),
47
- ""
48
- );
49
-
50
- _componentOwnerService = _instance.getComponentOwnerService();
51
- _wallet = address(this);
52
- _token = IERC20Metadata(token);
53
-
54
- _registerInterface(type(IBaseComponent).interfaceId);
55
- }
56
-
57
- // from component contract
58
- function lock() external onlyOwner override {
59
- _componentOwnerService.lock(this);
60
- }
61
-
62
- function unlock() external onlyOwner override {
63
- _componentOwnerService.unlock(this);
64
- }
65
-
66
- function getWallet()
67
- external
68
- view
69
- override
70
- returns (address walletAddress)
71
- {
72
- return _wallet;
73
- }
74
-
75
- function getToken() public view override returns (IERC20Metadata token) {
76
- return _token;
77
- }
78
-
79
- function getInstance() public view override returns (IInstance instance) {
80
- return _instance;
81
- }
82
-
83
- function setProductNftId(NftId productNftId) public override onlyOwner {
84
- require(_productNftId.eq(zeroNftId()), "product nft id already set");
85
- _productNftId = productNftId;
86
- }
87
-
88
- function getProductNftId() public view override returns (NftId productNftId) {
89
- return _productNftId;
90
- }
91
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {IRegisterable} from "../shared/IRegisterable.sol";
7
- import {IInstance} from "../instance/IInstance.sol";
8
- import {NftId} from "../types/NftId.sol";
9
-
10
- interface IBaseComponent is IRegisterable {
11
-
12
- function lock() external;
13
-
14
- function unlock() external;
15
-
16
- function getToken() external view returns (IERC20Metadata token);
17
-
18
- function getWallet() external view returns (address walletAddress);
19
-
20
- function getInstance() external view returns (IInstance instance);
21
-
22
- function setProductNftId(NftId productNftId) external;
23
- function getProductNftId() external view returns (NftId productNftId);
24
-
25
- }
@@ -1,115 +0,0 @@
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
- }