@etherisc/gif-next 0.0.2-fb8d07b-779 → 0.0.2-fbe22f0-239

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 (284) 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 +858 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +588 -92
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → components/IComponent.sol/IComponent.json} +208 -143
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +543 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +663 -31
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +648 -5
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +818 -273
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +657 -181
  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 +1371 -129
  45. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  46. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +132 -21
  47. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  48. package/artifacts/contracts/instance/Instance.sol/Instance.json +293 -656
  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 +89 -91
  53. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  54. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +395 -122
  55. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  56. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +149 -57
  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/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +243 -55
  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 +1091 -0
  77. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  78. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1292 -0
  79. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  80. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +560 -0
  81. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +272 -91
  83. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +140 -40
  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} +217 -58
  87. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  88. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +785 -0
  89. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +20 -20
  91. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  92. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +771 -0
  93. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  94. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +22 -84
  95. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +32 -247
  97. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1352 -0
  99. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +616 -0
  101. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +256 -180
  103. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +140 -52
  105. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  106. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +981 -0
  107. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +548 -0
  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 +208 -224
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +228 -95
  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 +222 -330
  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 +197 -109
  122. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -112
  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 +124 -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 +24 -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 +5 -5
  137. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  138. package/artifacts/contracts/shared/IService.sol/IService.json +20 -20
  139. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -2
  141. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +130 -11
  143. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  144. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +172 -0
  145. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  146. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +130 -6
  147. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  148. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -11
  149. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  150. package/artifacts/contracts/shared/Service.sol/Service.json +153 -20
  151. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  152. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  153. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  154. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  155. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -2
  156. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  157. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +126 -11
  159. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  160. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  161. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  162. package/artifacts/contracts/test/TestService.sol/TestService.json +171 -38
  163. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  164. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  166. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -8
  167. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  168. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  169. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  173. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  175. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  176. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  177. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  178. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  179. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  180. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  181. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  183. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
  185. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  187. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  188. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  189. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  195. package/contracts/components/Component.sol +230 -0
  196. package/contracts/components/Distribution.sol +53 -57
  197. package/contracts/components/IComponent.sol +50 -0
  198. package/contracts/components/IDistributionComponent.sol +5 -2
  199. package/contracts/components/IPoolComponent.sol +54 -29
  200. package/contracts/components/IProductComponent.sol +7 -3
  201. package/contracts/components/Pool.sol +153 -142
  202. package/contracts/components/Product.sol +109 -128
  203. package/contracts/instance/BundleManager.sol +125 -0
  204. package/contracts/instance/Cloneable.sol +46 -0
  205. package/contracts/instance/IInstance.sol +41 -8
  206. package/contracts/instance/IInstanceService.sol +15 -4
  207. package/contracts/instance/Instance.sol +65 -240
  208. package/contracts/instance/InstanceAccessManager.sol +87 -78
  209. package/contracts/instance/InstanceReader.sol +12 -25
  210. package/contracts/instance/InstanceService.sol +347 -95
  211. package/contracts/instance/InstanceServiceManager.sol +10 -12
  212. package/contracts/instance/ObjectManager.sol +84 -0
  213. package/contracts/instance/base/ComponentService.sol +134 -0
  214. package/contracts/instance/module/IAccess.sol +27 -18
  215. package/contracts/instance/module/ISetup.sol +7 -4
  216. package/contracts/instance/service/ApplicationService.sol +268 -0
  217. package/contracts/instance/service/BundleService.sol +298 -0
  218. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  219. package/contracts/instance/service/DistributionService.sol +45 -27
  220. package/contracts/instance/service/DistributionServiceManager.sol +10 -12
  221. package/contracts/instance/service/IApplicationService.sol +82 -0
  222. package/contracts/instance/service/IBundleService.sol +54 -0
  223. package/contracts/instance/service/IPolicyService.sol +88 -0
  224. package/contracts/instance/service/IPoolService.sol +6 -23
  225. package/contracts/instance/service/IProductService.sol +6 -73
  226. package/contracts/instance/service/PolicyService.sol +524 -0
  227. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  228. package/contracts/instance/service/PoolService.sol +40 -124
  229. package/contracts/instance/service/PoolServiceManager.sol +10 -12
  230. package/contracts/instance/service/ProductService.sol +233 -0
  231. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  232. package/contracts/registry/ChainNft.sol +1 -1
  233. package/contracts/registry/IRegistry.sol +38 -33
  234. package/contracts/registry/IRegistryService.sol +45 -13
  235. package/contracts/registry/Registry.sol +223 -250
  236. package/contracts/registry/RegistryAccessManager.sol +216 -0
  237. package/contracts/registry/RegistryService.sol +86 -224
  238. package/contracts/registry/RegistryServiceManager.sol +18 -36
  239. package/contracts/registry/ReleaseManager.sol +332 -0
  240. package/contracts/registry/TokenRegistry.sol +11 -9
  241. package/contracts/shared/ERC165.sol +12 -11
  242. package/contracts/shared/INftOwnable.sol +6 -1
  243. package/contracts/shared/IPolicyHolder.sol +26 -0
  244. package/contracts/shared/IRegisterable.sol +4 -6
  245. package/contracts/shared/IService.sol +2 -1
  246. package/contracts/shared/IVersionable.sol +2 -2
  247. package/contracts/shared/NftOwnable.sol +93 -42
  248. package/contracts/shared/PolicyHolder.sol +52 -0
  249. package/contracts/shared/ProxyManager.sol +6 -5
  250. package/contracts/shared/Registerable.sol +15 -24
  251. package/contracts/shared/Service.sol +18 -13
  252. package/contracts/shared/Versionable.sol +3 -2
  253. package/contracts/test/TestRegisterable.sol +1 -1
  254. package/contracts/test/TestService.sol +4 -3
  255. package/contracts/types/NftIdSet.sol +26 -24
  256. package/contracts/types/ObjectType.sol +5 -1
  257. package/contracts/types/RoleId.sol +10 -9
  258. package/package.json +3 -3
  259. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  260. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  261. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  262. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  263. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  264. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  265. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  266. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  267. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  268. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  269. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  270. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  271. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  272. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  273. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  274. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  275. package/contracts/components/BaseComponent.sol +0 -91
  276. package/contracts/components/IBaseComponent.sol +0 -25
  277. package/contracts/instance/AccessManagedSimple.sol +0 -115
  278. package/contracts/instance/AccessManagerSimple.sol +0 -692
  279. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  280. package/contracts/instance/base/ComponentServiceBase.sol +0 -125
  281. package/contracts/instance/base/IInstanceBase.sol +0 -23
  282. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  283. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  284. package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -1,135 +1,147 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ObjectType, POOL} from "../types/ObjectType.sol";
5
- import {IProductService} from "../instance/service/IProductService.sol";
4
+ import {POOL} from "../types/ObjectType.sol";
6
5
  import {IPoolService} from "../instance/service/IPoolService.sol";
7
- import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
8
- import {Fee} from "../types/Fee.sol";
6
+ import {IBundleService} from "../instance/service/IBundleService.sol";
7
+ import {NftId, NftIdLib} from "../types/NftId.sol";
8
+ import {Fee, FeeLib} from "../types/Fee.sol";
9
9
  import {UFixed} from "../types/UFixed.sol";
10
10
  import {IPoolComponent} from "./IPoolComponent.sol";
11
- import {BaseComponent} from "./BaseComponent.sol";
11
+ import {Component} from "./Component.sol";
12
12
  import {TokenHandler} from "../shared/TokenHandler.sol";
13
13
  import {ISetup} from "../instance/module/ISetup.sol";
14
14
 
15
- import {IRegistry} from "../registry/IRegistry.sol";
16
-
17
- // import {IPool} from "../instance/module/pool/IPoolModule.sol";
18
- import {ITreasury} from "../instance/module/ITreasury.sol";
19
15
  import {ISetup} from "../instance/module/ISetup.sol";
20
16
  import {InstanceReader} from "../instance/InstanceReader.sol";
21
17
 
22
- import {IRegisterable} from "../shared/IRegisterable.sol";
23
- import {Registerable} from "../shared/Registerable.sol";
24
18
 
25
- contract Pool is BaseComponent, IPoolComponent {
26
- using NftIdLib for NftId;
19
+ abstract contract Pool is
20
+ Component,
21
+ IPoolComponent
22
+ {
23
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
24
+ bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
27
25
 
28
- bool internal _isVerifying;
29
- UFixed internal _collateralizationLevel;
26
+ struct PoolStorage {
27
+ UFixed _collateralizationLevel;
28
+ UFixed _retentionLevel;
30
29
 
31
- Fee internal _initialPoolFee;
32
- Fee internal _initialStakingFee;
33
- Fee internal _initialPerformanceFee;
30
+ bool _isExternallyManaged;
31
+ bool _isInterceptingBundleTransfers;
32
+ bool _isVerifyingApplications;
34
33
 
35
- // may be used to interact with instance by derived contracts
36
- IPoolService internal _poolService;
34
+ Fee _initialPoolFee;
35
+ Fee _initialStakingFee;
36
+ Fee _initialPerformanceFee;
37
37
 
38
- // only relevant to protect callback functions for "active" pools
39
- IProductService private _productService;
38
+ TokenHandler _tokenHandler;
40
39
 
41
- modifier onlyPoolService() {
42
- require(
43
- msg.sender == address(_poolService),
44
- "ERROR:POL-001:NOT_POOL_SERVICE");
45
- _;
40
+ // may be used to interact with instance by derived contracts
41
+ IPoolService _poolService;
42
+ IBundleService _bundleService;
46
43
  }
47
44
 
48
- modifier onlyProductService() {
49
- require(
50
- msg.sender == address(_productService),
51
- "ERROR:POL-002:NOT_PRODUCT_SERVICE");
45
+ modifier onlyPoolService() {
46
+ if(msg.sender != address(_getPoolStorage()._poolService)) {
47
+ revert ErrorPoolNotPoolService(msg.sender);
48
+ }
52
49
  _;
53
50
  }
54
51
 
55
- constructor(
52
+
53
+ function initializePool(
56
54
  address registry,
57
55
  NftId instanceNftId,
56
+ string memory name,
58
57
  // TODO refactor into tokenNftId
59
58
  address token,
60
- bool isInterceptor,
61
- bool verifying,
59
+ bool isInterceptingNftTransfers,
60
+ bool isExternallyManaging,
61
+ bool isVerifying,
62
62
  UFixed collateralizationLevel,
63
- Fee memory poolFee,
64
- Fee memory stakingFee,
65
- Fee memory performanceFee,
66
- address initialOwner
63
+ UFixed retentionLevel,
64
+ address initialOwner,
65
+ bytes memory data
67
66
  )
68
- BaseComponent(registry, instanceNftId, token, POOL(), isInterceptor, initialOwner)
67
+ public
68
+ virtual
69
+ onlyInitializing()
69
70
  {
70
- _isVerifying = verifying;
71
- // TODO add validation
72
- _collateralizationLevel = collateralizationLevel;
73
- _initialPoolFee = poolFee;
74
- _initialStakingFee = stakingFee;
75
- _initialPerformanceFee = performanceFee;
76
-
77
- _poolService = _instance.getPoolService();
78
- // TODO: reactivate when services are available again
79
- // _productService = _instance.getProductService();
71
+ initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, data);
80
72
 
81
- _registerInterface(type(IPoolComponent).interfaceId);
82
- }
83
-
84
- function createBundle(
85
- Fee memory fee,
86
- uint256 initialAmount,
87
- uint256 lifetime,
88
- bytes memory filter
89
- )
90
- external
91
- virtual override
92
- returns(NftId bundleNftId)
93
- {
94
- address owner = msg.sender;
95
- bundleNftId = _poolService.createBundle(
96
- owner,
97
- fee,
98
- initialAmount,
99
- lifetime,
100
- filter
101
- );
102
-
103
- // TODO add logging
73
+ PoolStorage storage $ = _getPoolStorage();
74
+ // TODO add validation
75
+ $._tokenHandler = new TokenHandler(token);
76
+ $._isExternallyManaged = isExternallyManaging;
77
+ $._isVerifyingApplications = isVerifying;
78
+ $._collateralizationLevel = collateralizationLevel;
79
+ $._retentionLevel = retentionLevel;
80
+ $._initialPoolFee = FeeLib.zeroFee();
81
+ $._initialStakingFee = FeeLib.zeroFee();
82
+ $._initialPerformanceFee = FeeLib.zeroFee();
83
+ $._poolService = getInstance().getPoolService();
84
+ $._bundleService = getInstance().getBundleService();
85
+
86
+ registerInterface(type(IPoolComponent).interfaceId);
104
87
  }
105
88
 
106
89
  /**
107
- * @dev see {IPool.underwrite}.
90
+ * @dev see {IPool.verifyApplication}.
108
91
  * Default implementation that only writes a {LogUnderwrittenByPool} entry.
109
92
  */
110
- function underwrite(
111
- NftId policyNftId,
112
- bytes memory policyData,
93
+ function verifyApplication(
94
+ NftId applicationNftId,
95
+ bytes memory applicationData,
113
96
  bytes memory bundleFilter,
114
97
  uint256 collateralizationAmount
115
98
  )
116
99
  external
117
- onlyProductService
100
+ restricted()
118
101
  virtual override
119
102
  {
120
- _underwrite(policyNftId, policyData, bundleFilter, collateralizationAmount);
103
+ require(
104
+ policyMatchesBundle(applicationData, bundleFilter),
105
+ "ERROR:POL-020:POLICY_BUNDLE_MISMATCH"
106
+ );
107
+
108
+ emit LogUnderwrittenByPool(applicationNftId, collateralizationAmount, address(this));
121
109
  }
122
110
 
123
- /**
124
- * @dev see {IPoolComponent.policyMatchesBundle}.
125
- * Default implementation always returns true
126
- */
111
+
112
+ function isInterceptingBundleTransfers() external view override returns (bool) {
113
+ return isNftInterceptor();
114
+ }
115
+
116
+
117
+ function isExternallyManaged() external view override returns (bool) {
118
+ return _getPoolStorage()._isExternallyManaged;
119
+ }
120
+
121
+
122
+ function getRetentionLevel() external view override returns (UFixed retentionLevel) {
123
+ return _getPoolStorage()._retentionLevel;
124
+ }
125
+
126
+
127
+ function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
128
+ return _getPoolStorage()._collateralizationLevel;
129
+ }
130
+
131
+
132
+ function isVerifyingApplications() external view override returns (bool isConfirmingApplication) {
133
+ return _getPoolStorage()._isVerifyingApplications;
134
+ }
135
+
136
+
137
+ /// @dev see {IPoolComponent.policyMatchesBundle}.
138
+ /// Default implementation always returns true
127
139
  function policyMatchesBundle(
128
140
  bytes memory, // policyData
129
141
  bytes memory // bundleFilter
130
142
  )
131
143
  public
132
- view
144
+ pure
133
145
  virtual override
134
146
  returns (bool isMatching)
135
147
  {
@@ -137,14 +149,6 @@ contract Pool is BaseComponent, IPoolComponent {
137
149
  }
138
150
 
139
151
 
140
- function isVerifying() external view override returns (bool verifying) {
141
- return _isVerifying;
142
- }
143
-
144
- function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
145
- return _collateralizationLevel;
146
- }
147
-
148
152
  function setFees(
149
153
  Fee memory poolFee,
150
154
  Fee memory stakingFee,
@@ -152,9 +156,10 @@ contract Pool is BaseComponent, IPoolComponent {
152
156
  )
153
157
  external
154
158
  onlyOwner
159
+ restricted()
155
160
  override
156
161
  {
157
- _poolService.setFees(poolFee, stakingFee, performanceFee);
162
+ _getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
158
163
  }
159
164
 
160
165
  function setBundleFee(
@@ -165,79 +170,85 @@ contract Pool is BaseComponent, IPoolComponent {
165
170
  override
166
171
  // TODO add onlyBundleOwner
167
172
  {
168
- _poolService.setBundleFee(bundleNftId, fee);
173
+ _getPoolStorage()._bundleService.setBundleFee(bundleNftId, fee);
169
174
  }
170
175
 
171
- function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
172
- InstanceReader reader = _instance.getInstanceReader();
173
- return reader.getPoolSetupInfo(getNftId());
176
+ function lockBundle(
177
+ NftId bundleNftId
178
+ )
179
+ external
180
+ override
181
+ // TODO add onlyBundleOwner
182
+ {
183
+ _getPoolStorage()._bundleService.lockBundle(bundleNftId);
174
184
  }
175
185
 
176
- // from IRegisterable
177
-
178
- // TODO used only once, occupies space
179
- // TODO do not use super
180
- function getInitialInfo()
181
- public
182
- view
183
- override (IRegisterable, Registerable)
184
- returns (IRegistry.ObjectInfo memory, bytes memory)
186
+ function unlockBundle(
187
+ NftId bundleNftId
188
+ )
189
+ external
190
+ override
191
+ // TODO add onlyBundleOwner
185
192
  {
186
- (
187
- IRegistry.ObjectInfo memory info,
188
- ) = super.getInitialInfo();
189
-
190
- return (
191
- info,
192
- abi.encode(
193
- ISetup.PoolSetupInfo(
194
- _productNftId,
195
- TokenHandler(address(_token)),
196
- _collateralizationLevel,
197
- _initialPoolFee,
198
- _initialStakingFee,
199
- _initialPerformanceFee,
200
- _isVerifying,
201
- _wallet
202
- )
203
- )
204
- );
193
+ _getPoolStorage()._bundleService.unlockBundle(bundleNftId);
205
194
  }
206
195
 
207
- // Internals
196
+ function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
197
+ InstanceReader reader = getInstance().getInstanceReader();
198
+ setupInfo = reader.getPoolSetupInfo(getNftId());
208
199
 
209
- function _underwrite(
210
- NftId policyNftId,
211
- bytes memory policyData,
212
- bytes memory bundleFilter,
213
- uint256 collateralizationAmount
214
- )
215
- internal
216
- {
217
- require(
218
- policyMatchesBundle(policyData, bundleFilter),
219
- "ERROR:POL-020:POLICY_BUNDLE_MISMATCH"
220
- );
200
+ // fallback to initial setup info (wallet is always != address(0))
201
+ if(setupInfo.wallet == address(0)) {
202
+ setupInfo = _getInitialSetupInfo();
203
+ }
204
+ }
221
205
 
222
- emit LogUnderwrittenByPool(policyNftId, collateralizationAmount, address(this));
206
+ function _getInitialSetupInfo() internal view returns (ISetup.PoolSetupInfo memory) {
207
+ PoolStorage storage $ = _getPoolStorage();
208
+ return ISetup.PoolSetupInfo(
209
+ getProductNftId(),
210
+ $._tokenHandler,
211
+ isNftInterceptor(),
212
+ $._isExternallyManaged,
213
+ $._isVerifyingApplications,
214
+ $._collateralizationLevel,
215
+ $._retentionLevel,
216
+ $._initialPoolFee,
217
+ $._initialStakingFee,
218
+ $._initialPerformanceFee,
219
+ getWallet()
220
+ );
223
221
  }
224
222
 
223
+ // Internals
224
+
225
225
  function _createBundle(
226
226
  address bundleOwner,
227
227
  Fee memory fee,
228
228
  uint256 amount,
229
229
  uint256 lifetime,
230
- bytes calldata filter
230
+ bytes memory filter
231
231
  )
232
232
  internal
233
233
  returns(NftId bundleNftId)
234
234
  {
235
- bundleNftId = _poolService.createBundle(
235
+ bundleNftId = _getPoolStorage()._bundleService.createBundle(
236
236
  bundleOwner,
237
237
  fee,
238
238
  amount,
239
239
  lifetime,
240
- filter
241
- );
240
+ filter);
241
+
242
+ // TODO add logging
243
+ }
244
+
245
+ function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
246
+ return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
247
+ }
248
+
249
+ function _getPoolStorage() private pure returns (PoolStorage storage $) {
250
+ assembly {
251
+ $.slot := POOL_STORAGE_LOCATION_V1
252
+ }
242
253
  }
243
254
  }