@etherisc/gif-next 0.0.2-f9bc4c7-556 → 0.0.2-fbe8e04-715

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 (407) hide show
  1. package/README.md +242 -2
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +302 -23
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +744 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +217 -23
  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 +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +90 -171
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +55 -177
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +615 -63
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +620 -70
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
  21. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
  22. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
  23. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
  24. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  36. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  40. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  42. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  44. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  45. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  46. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  47. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  48. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  49. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
  50. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
  51. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
  52. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  53. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +946 -1088
  54. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  55. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +485 -0
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +2592 -1219
  60. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +940 -0
  62. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1039 -0
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +552 -0
  70. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  71. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  72. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +264 -43
  74. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +51 -1
  76. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +45 -127
  78. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  80. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +55 -245
  81. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  82. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
  83. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  85. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  86. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  87. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IDistribution.sol/IDistribution.json} +2 -2
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  90. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  91. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  92. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  93. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  94. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  95. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  96. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  97. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +923 -0
  99. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +440 -0
  101. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +381 -77
  103. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  104. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +684 -0
  105. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  106. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +428 -0
  107. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  108. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +669 -0
  109. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  110. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +177 -75
  111. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  112. package/artifacts/contracts/instance/{base/ServiceBase.sol/ServiceBase.json → service/IDistributionService.sol/IDistributionService.json} +204 -58
  113. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  114. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +664 -0
  115. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  116. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +194 -71
  117. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  118. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +202 -143
  119. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  120. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +984 -0
  121. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +464 -0
  123. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  124. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +323 -76
  125. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  126. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +428 -0
  127. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  128. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +313 -218
  129. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +420 -0
  131. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  132. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
  133. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  134. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +377 -37
  135. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  136. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +947 -0
  137. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  138. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  139. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  140. package/artifacts/contracts/registry/Registry.sol/Registry.json +487 -123
  141. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  142. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1293 -0
  143. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +517 -0
  145. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  146. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
  147. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  148. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  149. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  150. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  151. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  152. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  153. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  154. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  155. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  156. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +175 -54
  157. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  158. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  159. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  160. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  161. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  162. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  163. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  164. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  165. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  166. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/RegisterableUpgradable.sol/RegisterableUpgradable.json} +199 -83
  167. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  168. package/artifacts/contracts/shared/Service.sol/Service.json +468 -0
  169. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  170. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  171. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  172. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  173. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  174. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  175. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  176. package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
  177. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  178. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  179. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  180. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
  181. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  182. package/artifacts/contracts/test/TestService.sol/TestService.json +283 -62
  183. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  184. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  185. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  186. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  187. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  188. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +103 -23
  189. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  190. package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
  191. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  192. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  195. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  196. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  197. package/artifacts/contracts/types/Fee.sol/FeeLib.json +52 -13
  198. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  199. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  200. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  202. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  203. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  204. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  205. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  206. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  207. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  208. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  209. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  210. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  211. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  212. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  213. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  214. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  215. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  216. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  217. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  218. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  219. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  220. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  221. package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
  222. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  223. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  224. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  225. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  226. package/contracts/components/BaseComponent.sol +75 -31
  227. package/contracts/components/Distribution.sol +163 -0
  228. package/contracts/components/IBaseComponent.sol +15 -3
  229. package/contracts/components/IDistributionComponent.sol +44 -0
  230. package/contracts/components/IPoolComponent.sol +19 -10
  231. package/contracts/components/IProductComponent.sol +25 -9
  232. package/contracts/components/Pool.sol +132 -35
  233. package/contracts/components/Product.sol +211 -36
  234. package/contracts/experiment/cloning/Cloner.sol +47 -0
  235. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  236. package/contracts/instance/BundleManager.sol +129 -0
  237. package/contracts/instance/Cloneable.sol +46 -0
  238. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  239. package/contracts/instance/IInstance.sol +53 -45
  240. package/contracts/instance/IInstanceBase.sol +26 -0
  241. package/contracts/instance/IInstanceService.sol +32 -0
  242. package/contracts/instance/Instance.sol +448 -51
  243. package/contracts/instance/InstanceAccessManager.sol +288 -0
  244. package/contracts/instance/InstanceBase.sol +41 -0
  245. package/contracts/instance/InstanceReader.sol +315 -0
  246. package/contracts/instance/InstanceService.sol +261 -0
  247. package/contracts/instance/InstanceServiceManager.sol +57 -0
  248. package/contracts/instance/ObjectManager.sol +101 -0
  249. package/contracts/instance/base/ComponentServiceBase.sol +46 -16
  250. package/contracts/instance/base/IInstanceBase.sol +11 -2
  251. package/contracts/instance/base/IKeyValueStore.sol +13 -13
  252. package/contracts/instance/base/ILifecycle.sol +3 -3
  253. package/contracts/instance/base/KeyValueStore.sol +53 -37
  254. package/contracts/instance/base/Lifecycle.sol +16 -11
  255. package/contracts/instance/module/IAccess.sol +38 -0
  256. package/contracts/instance/module/IBundle.sol +20 -0
  257. package/contracts/instance/module/IDistribution.sol +39 -0
  258. package/contracts/instance/module/IPolicy.sol +45 -0
  259. package/contracts/instance/module/IRisk.sol +11 -0
  260. package/contracts/instance/module/ISetup.sol +46 -0
  261. package/contracts/instance/module/ITreasury.sol +23 -0
  262. package/contracts/instance/service/BundleService.sol +260 -0
  263. package/contracts/instance/service/BundleServiceManager.sol +54 -0
  264. package/contracts/instance/service/ComponentOwnerService.sol +244 -97
  265. package/contracts/instance/service/DistributionService.sol +118 -0
  266. package/contracts/instance/service/DistributionServiceManager.sol +54 -0
  267. package/contracts/instance/service/IBundleService.sol +45 -0
  268. package/contracts/instance/service/IComponentOwnerService.sol +1 -3
  269. package/contracts/instance/service/IDistributionService.sol +12 -0
  270. package/contracts/instance/service/IPolicyService.sol +87 -0
  271. package/contracts/instance/service/IPoolService.sol +8 -18
  272. package/contracts/instance/service/IProductService.sol +21 -39
  273. package/contracts/instance/service/PolicyService.sol +508 -0
  274. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  275. package/contracts/instance/service/PoolService.sol +86 -85
  276. package/contracts/instance/service/PoolServiceManager.sol +54 -0
  277. package/contracts/instance/service/ProductService.sol +108 -289
  278. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  279. package/contracts/registry/ChainNft.sol +80 -37
  280. package/contracts/registry/IRegistry.sol +49 -25
  281. package/contracts/registry/IRegistryService.sol +50 -0
  282. package/contracts/registry/ITransferInterceptor.sol +6 -0
  283. package/contracts/registry/Registry.sol +337 -270
  284. package/contracts/registry/RegistryService.sol +358 -0
  285. package/contracts/registry/RegistryServiceManager.sol +80 -0
  286. package/contracts/registry/TokenRegistry.sol +111 -0
  287. package/contracts/shared/ContractDeployerLib.sol +72 -0
  288. package/contracts/shared/ERC165.sol +6 -2
  289. package/contracts/shared/INftOwnable.sol +22 -0
  290. package/contracts/shared/IRegisterable.sol +8 -15
  291. package/contracts/{instance/base → shared}/IService.sol +3 -3
  292. package/contracts/shared/IVersionable.sol +55 -11
  293. package/contracts/shared/NftOwnable.sol +134 -0
  294. package/contracts/shared/ProxyManager.sol +94 -0
  295. package/contracts/shared/Registerable.sol +63 -59
  296. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  297. package/contracts/shared/Service.sol +55 -0
  298. package/contracts/shared/TokenHandler.sol +27 -0
  299. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  300. package/contracts/shared/Versionable.sol +113 -55
  301. package/contracts/test/TestFee.sol +2 -2
  302. package/contracts/test/TestRegisterable.sol +5 -6
  303. package/contracts/test/TestRoleId.sol +1 -1
  304. package/contracts/test/TestService.sol +5 -13
  305. package/contracts/types/DistributorType.sol +55 -0
  306. package/contracts/types/Fee.sol +10 -5
  307. package/contracts/types/Key32.sol +8 -3
  308. package/contracts/types/NftIdSet.sol +26 -24
  309. package/contracts/types/NumberId.sol +52 -0
  310. package/contracts/types/ObjectType.sol +51 -14
  311. package/contracts/types/Referral.sol +85 -0
  312. package/contracts/types/RiskId.sol +43 -0
  313. package/contracts/types/RoleId.sol +64 -10
  314. package/contracts/types/StateId.sol +5 -1
  315. package/contracts/types/Timestamp.sol +7 -3
  316. package/contracts/types/UFixed.sol +128 -12
  317. package/contracts/types/Version.sol +13 -1
  318. package/package.json +4 -3
  319. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  320. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  321. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  322. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  323. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  324. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  325. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  326. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  327. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  328. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  329. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  330. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  331. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  332. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  333. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  334. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  335. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  336. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  337. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  338. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  339. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  340. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  341. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  342. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  343. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  344. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  345. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  346. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  347. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  348. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  349. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  350. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  351. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  352. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  353. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  354. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  355. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  356. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  357. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  358. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  359. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  360. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  361. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  362. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  363. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  364. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  365. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  366. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  367. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  368. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  369. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  370. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  371. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  372. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  373. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  374. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  375. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  376. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  377. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  378. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  379. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  380. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  381. package/contracts/experiment/statemachine/README.md +0 -112
  382. package/contracts/instance/IInstanceLinked.sol +0 -8
  383. package/contracts/instance/base/InstanceBase.sol +0 -80
  384. package/contracts/instance/base/ModuleBase.sol +0 -52
  385. package/contracts/instance/base/ServiceBase.sol +0 -37
  386. package/contracts/instance/module/access/Access.sol +0 -149
  387. package/contracts/instance/module/access/IAccess.sol +0 -53
  388. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  389. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  390. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  391. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  392. package/contracts/instance/module/component/ComponentModule.sol +0 -95
  393. package/contracts/instance/module/component/IComponent.sol +0 -53
  394. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  395. package/contracts/instance/module/policy/PolicyModule.sol +0 -76
  396. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  397. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  398. package/contracts/instance/module/risk/IRisk.sol +0 -10
  399. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  400. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  401. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  402. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  403. package/contracts/registry/IChainNft.sol +0 -21
  404. package/contracts/registry/IRegistryLinked.sol +0 -8
  405. package/contracts/shared/IOwnable.sol +0 -6
  406. package/contracts/test/TestPool.sol +0 -22
  407. package/contracts/test/TestProduct.sol +0 -44
@@ -0,0 +1,44 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {Fee} from "../types/Fee.sol";
5
+ import {ReferralId} from "../types/Referral.sol";
6
+ import {NftId} from "../types/NftId.sol";
7
+ import {ISetup} from "../instance/module/ISetup.sol";
8
+
9
+ interface IDistributionComponent {
10
+
11
+ function setFees(
12
+ Fee memory distributionFee
13
+ ) external;
14
+
15
+ function calculateFeeAmount(
16
+ ReferralId referralId,
17
+ uint256 netPremiumAmount
18
+ ) external view returns (uint256 feeAmount);
19
+
20
+ function calculateRenewalFeeAmount(
21
+ ReferralId referralId,
22
+ uint256 netPremiumAmount
23
+ ) external view returns (uint256 feeAmount);
24
+
25
+ /// @dev callback from product service when selling a policy for a specific referralId
26
+ /// the used referral id and the collected fee are provided as parameters
27
+ /// the component implementation can then process this information accordingly
28
+ function processSale(
29
+ ReferralId referralId,
30
+ uint256 feeAmount
31
+ ) external;
32
+
33
+ /// @dev callback from product service when a policy is renews for a specific referralId
34
+ function processRenewal(
35
+ ReferralId referralId,
36
+ uint256 feeAmount
37
+ ) external;
38
+
39
+ /// @dev returns true iff the referral id is valid
40
+ function referralIsValid(ReferralId referralId) external view returns (bool isValid);
41
+
42
+ /// @dev returns true iff the component needs to be called when selling/renewing policis
43
+ function isVerifying() external view returns (bool verifying);
44
+ }
@@ -1,24 +1,35 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../types/NftId.sol";
5
5
  import {Fee} from "../types/Fee.sol";
6
6
  import {UFixed} from "../types/UFixed.sol";
7
- import {IBaseComponent} from "./IBaseComponent.sol";
8
7
 
9
- interface IPoolComponent is IBaseComponent {
8
+ interface IPoolComponent {
10
9
 
11
10
  event LogUnderwrittenByPool(NftId policyNftId, uint256 collateralizationAmount, address pool);
12
11
 
12
+ function setFees(
13
+ Fee memory poolFee,
14
+ Fee memory stakingFee,
15
+ Fee memory performanceFee
16
+ ) external;
17
+
13
18
  /**
14
19
  * @dev creates a new bundle for this pool.
15
20
  */
16
21
  function createBundle(
22
+ Fee memory fee,
17
23
  uint256 initialAmount,
18
24
  uint256 lifetime,
19
25
  bytes memory filter
20
26
  ) external returns(NftId bundleNftId);
21
27
 
28
+ function setBundleFee(
29
+ NftId policyNftId,
30
+ Fee memory fee
31
+ ) external;
32
+
22
33
  /**
23
34
  * @dev this is a callback function that is called by the product service when underwriting a policy.
24
35
  * the pool has the option to check the details and object to underwriting by reverting.
@@ -32,6 +43,10 @@ interface IPoolComponent is IBaseComponent {
32
43
  uint256 collateralizationAmount
33
44
  ) external;
34
45
 
46
+ function lockBundle(NftId bundleNftId) external;
47
+
48
+ function unlockBundle(NftId bundleNftId) external;
49
+
35
50
  /**
36
51
  * @dev returns true iff the policy application data in policyData matches
37
52
  * with the bundle filter criteria encoded in bundleFilter.
@@ -44,14 +59,8 @@ interface IPoolComponent is IBaseComponent {
44
59
  view
45
60
  returns (bool isMatching);
46
61
 
47
- function isVerifying() external view returns (bool verifying);
62
+ function isConfirmingApplication() external view returns (bool isConfirmingApplication);
48
63
 
49
64
  function getCollateralizationLevel() external view returns (UFixed collateralizationLevel);
50
65
 
51
- function getStakingFee() external view returns (Fee memory stakingFee);
52
-
53
- function getPerformanceFee()
54
- external
55
- view
56
- returns (Fee memory performanceFee);
57
66
  }
@@ -1,19 +1,35 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
5
4
  import {Fee} from "../types/Fee.sol";
6
- import {IBaseComponent} from "./IBaseComponent.sol";
5
+ import {NftId} from "../types/NftId.sol";
6
+ import {ReferralId} from "../types/Referral.sol";
7
+ import {RiskId} from "../types/RiskId.sol";
8
+
9
+ interface IProductComponent {
7
10
 
8
- interface IProductComponent is IBaseComponent {
9
11
  function setFees(
10
- Fee memory policyFee,
12
+ Fee memory productFee,
11
13
  Fee memory processingFee
12
14
  ) external;
13
15
 
14
- function getPoolNftId() external view returns (NftId poolNftId);
15
-
16
- function getPolicyFee() external view returns (Fee memory policyFee);
16
+ function calculatePremium(
17
+ uint256 sumInsuredAmount,
18
+ RiskId riskId,
19
+ uint256 lifetime,
20
+ bytes memory applicationData,
21
+ ReferralId referralId,
22
+ NftId bundleNftId
23
+ ) external view returns (uint256 premiumAmount);
24
+
25
+ function calculateNetPremium(
26
+ uint256 sumInsuredAmount,
27
+ RiskId riskId,
28
+ uint256 lifetime,
29
+ bytes memory applicationData
30
+ ) external view returns (uint256 netPremiumAmount);
17
31
 
18
- function getProcessingFee() external view returns (Fee memory processingFee);
32
+
33
+ function getPoolNftId() external view returns (NftId poolNftId);
34
+ function getDistributionNftId() external view returns (NftId distributionNftId);
19
35
  }
@@ -1,26 +1,48 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {ObjectType, POOL} from "../types/ObjectType.sol";
5
5
  import {IProductService} from "../instance/service/IProductService.sol";
6
6
  import {IPoolService} from "../instance/service/IPoolService.sol";
7
- import {NftId} from "../types/NftId.sol";
7
+ import {IBundleService} from "../instance/service/IBundleService.sol";
8
+ import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
8
9
  import {Fee} from "../types/Fee.sol";
9
10
  import {UFixed} from "../types/UFixed.sol";
10
11
  import {IPoolComponent} from "./IPoolComponent.sol";
11
12
  import {BaseComponent} from "./BaseComponent.sol";
13
+ import {TokenHandler} from "../shared/TokenHandler.sol";
14
+ import {ISetup} from "../instance/module/ISetup.sol";
15
+
16
+ import {IRegistry} from "../registry/IRegistry.sol";
17
+
18
+ // import {IPool} from "../instance/module/pool/IPoolModule.sol";
19
+ import {ITreasury} from "../instance/module/ITreasury.sol";
20
+ import {ISetup} from "../instance/module/ISetup.sol";
21
+ import {InstanceReader} from "../instance/InstanceReader.sol";
22
+
23
+ import {IRegisterable} from "../shared/IRegisterable.sol";
24
+ import {Registerable} from "../shared/Registerable.sol";
12
25
 
13
26
  contract Pool is BaseComponent, IPoolComponent {
27
+ using NftIdLib for NftId;
14
28
 
15
- bool internal _isVerifying;
29
+ bool internal _isConfirmingApplication;
16
30
  UFixed internal _collateralizationLevel;
17
31
 
32
+ Fee internal _initialPoolFee;
33
+ Fee internal _initialStakingFee;
34
+ Fee internal _initialPerformanceFee;
35
+
36
+ TokenHandler internal _tokenHandler;
37
+
18
38
  // may be used to interact with instance by derived contracts
19
39
  IPoolService internal _poolService;
20
40
 
21
41
  // only relevant to protect callback functions for "active" pools
22
42
  IProductService private _productService;
23
43
 
44
+ IBundleService private _bundleService;
45
+
24
46
  modifier onlyPoolService() {
25
47
  require(
26
48
  msg.sender == address(_poolService),
@@ -40,20 +62,34 @@ contract Pool is BaseComponent, IPoolComponent {
40
62
  NftId instanceNftId,
41
63
  // TODO refactor into tokenNftId
42
64
  address token,
43
- bool verifying,
44
- UFixed collateralizationLevel
65
+ bool isInterceptor,
66
+ bool isConfirmingApplication,
67
+ UFixed collateralizationLevel,
68
+ Fee memory poolFee,
69
+ Fee memory stakingFee,
70
+ Fee memory performanceFee,
71
+ address initialOwner
45
72
  )
46
- BaseComponent(registry, instanceNftId, token)
73
+ BaseComponent(registry, instanceNftId, token, POOL(), isInterceptor, initialOwner)
47
74
  {
48
- _isVerifying = verifying;
75
+ _isConfirmingApplication = isConfirmingApplication;
49
76
  // TODO add validation
50
77
  _collateralizationLevel = collateralizationLevel;
78
+ _initialPoolFee = poolFee;
79
+ _initialStakingFee = stakingFee;
80
+ _initialPerformanceFee = performanceFee;
81
+
82
+ _tokenHandler = new TokenHandler(token);
51
83
 
52
84
  _poolService = _instance.getPoolService();
53
85
  _productService = _instance.getProductService();
86
+ _bundleService = _instance.getBundleService();
87
+
88
+ _registerInterface(type(IPoolComponent).interfaceId);
54
89
  }
55
90
 
56
91
  function createBundle(
92
+ Fee memory fee,
57
93
  uint256 initialAmount,
58
94
  uint256 lifetime,
59
95
  bytes memory filter
@@ -63,8 +99,9 @@ contract Pool is BaseComponent, IPoolComponent {
63
99
  returns(NftId bundleNftId)
64
100
  {
65
101
  address owner = msg.sender;
66
- bundleNftId = _poolService.createBundle(
102
+ bundleNftId = _bundleService.createBundle(
67
103
  owner,
104
+ fee,
68
105
  initialAmount,
69
106
  lifetime,
70
107
  filter
@@ -107,14 +144,96 @@ contract Pool is BaseComponent, IPoolComponent {
107
144
  }
108
145
 
109
146
 
110
- function isVerifying() external view override returns (bool verifying) {
111
- return _isVerifying;
147
+ function isConfirmingApplication() external view override returns (bool isConfirmingApplication) {
148
+ return _isConfirmingApplication;
112
149
  }
113
150
 
114
151
  function getCollateralizationLevel() external view override returns (UFixed collateralizationLevel) {
115
152
  return _collateralizationLevel;
116
153
  }
117
154
 
155
+ function setFees(
156
+ Fee memory poolFee,
157
+ Fee memory stakingFee,
158
+ Fee memory performanceFee
159
+ )
160
+ external
161
+ onlyOwner
162
+ override
163
+ {
164
+ _poolService.setFees(poolFee, stakingFee, performanceFee);
165
+ }
166
+
167
+ function setBundleFee(
168
+ NftId bundleNftId,
169
+ Fee memory fee
170
+ )
171
+ external
172
+ override
173
+ // TODO add onlyBundleOwner
174
+ {
175
+ _bundleService.setBundleFee(bundleNftId, fee);
176
+ }
177
+
178
+ function lockBundle(
179
+ NftId bundleNftId
180
+ )
181
+ external
182
+ override
183
+ // TODO add onlyBundleOwner
184
+ {
185
+ _bundleService.lockBundle(bundleNftId);
186
+ }
187
+
188
+ function unlockBundle(
189
+ NftId bundleNftId
190
+ )
191
+ external
192
+ override
193
+ // TODO add onlyBundleOwner
194
+ {
195
+ _bundleService.unlockBundle(bundleNftId);
196
+ }
197
+
198
+ function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
199
+ InstanceReader reader = _instance.getInstanceReader();
200
+ return reader.getPoolSetupInfo(getNftId());
201
+ }
202
+
203
+ // from IRegisterable
204
+
205
+ // TODO used only once, occupies space
206
+ // TODO do not use super
207
+ function getInitialInfo()
208
+ public
209
+ view
210
+ override (IRegisterable, Registerable)
211
+ returns (IRegistry.ObjectInfo memory, bytes memory)
212
+ {
213
+ (
214
+ IRegistry.ObjectInfo memory info,
215
+ ) = super.getInitialInfo();
216
+
217
+ return (
218
+ info,
219
+ abi.encode(
220
+ ISetup.PoolSetupInfo(
221
+ _productNftId,
222
+ _tokenHandler,
223
+ _collateralizationLevel,
224
+ _initialPoolFee,
225
+ _initialStakingFee,
226
+ _initialPerformanceFee,
227
+ false,
228
+ _isConfirmingApplication,
229
+ _wallet
230
+ )
231
+ )
232
+ );
233
+ }
234
+
235
+ // Internals
236
+
118
237
  function _underwrite(
119
238
  NftId policyNftId,
120
239
  bytes memory policyData,
@@ -133,6 +252,7 @@ contract Pool is BaseComponent, IPoolComponent {
133
252
 
134
253
  function _createBundle(
135
254
  address bundleOwner,
255
+ Fee memory fee,
136
256
  uint256 amount,
137
257
  uint256 lifetime,
138
258
  bytes calldata filter
@@ -140,35 +260,12 @@ contract Pool is BaseComponent, IPoolComponent {
140
260
  internal
141
261
  returns(NftId bundleNftId)
142
262
  {
143
- bundleNftId = _poolService.createBundle(
263
+ bundleNftId = _bundleService.createBundle(
144
264
  bundleOwner,
265
+ fee,
145
266
  amount,
146
267
  lifetime,
147
268
  filter
148
269
  );
149
270
  }
150
-
151
- // from pool component
152
- function getStakingFee()
153
- external
154
- view
155
- override
156
- returns (Fee memory stakingFee)
157
- {
158
- return _instance.getPoolSetup(getNftId()).stakingFee;
159
- }
160
-
161
- function getPerformanceFee()
162
- external
163
- view
164
- override
165
- returns (Fee memory performanceFee)
166
- {
167
- return _instance.getPoolSetup(getNftId()).performanceFee;
168
- }
169
-
170
- // from registerable
171
- function getType() public pure override returns (ObjectType) {
172
- return POOL();
173
- }
174
271
  }