@etherisc/gif-next 0.0.2-cddad6b-504 → 0.0.2-ce8407f-016

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 (348) hide show
  1. package/README.md +40 -25
  2. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +115 -48
  4. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  5. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  6. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  7. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  8. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  9. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  10. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  11. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  12. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  13. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  14. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  15. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  16. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  20. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  22. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  24. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +4 -0
  25. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +101 -0
  26. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +4 -0
  27. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +1119 -0
  28. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
  29. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
  30. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  31. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1 -1998
  32. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  33. package/artifacts/contracts/instance/Instance.sol/Instance.json +2378 -1243
  34. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  35. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +917 -0
  36. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  37. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +878 -0
  38. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  39. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +117 -0
  40. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  41. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +32 -86
  42. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/IService.sol/IService.json +174 -53
  45. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  46. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +138 -112
  47. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  48. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  49. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
  50. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +220 -52
  51. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  53. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  54. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  55. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  56. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  57. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  58. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  59. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  60. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  61. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  62. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  63. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  64. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  65. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  66. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +141 -12
  67. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  68. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
  69. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  70. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +298 -39
  71. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  72. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +745 -0
  73. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  74. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  75. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  76. package/artifacts/contracts/registry/Registry.sol/Registry.json +489 -120
  77. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  78. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1013 -0
  79. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  80. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +476 -0
  81. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  82. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  83. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  84. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  85. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  86. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +67 -57
  87. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  88. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  89. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  90. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  91. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  92. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  93. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  94. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  95. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  96. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  97. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  98. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  99. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  100. package/artifacts/contracts/shared/{Proxy.sol/ProxyWithProxyAdminGetter.json → UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json} +4 -4
  101. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  102. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  103. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  104. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  105. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  106. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  107. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +5 -111
  108. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  109. package/artifacts/contracts/test/TestService.sol/TestService.json +283 -62
  110. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  111. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  112. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  113. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  114. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +103 -23
  115. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  116. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  117. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  118. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  119. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  120. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  121. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  122. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  123. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  124. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  125. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  126. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  127. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  128. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  129. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  130. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  131. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  132. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  133. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  134. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  135. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  136. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  137. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  138. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  139. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  140. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  141. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  142. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  143. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  144. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  145. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  146. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  147. package/contracts/components/IBaseComponent.sol +4 -4
  148. package/contracts/instance/AccessManagedSimple.sol +114 -0
  149. package/contracts/instance/AccessManagerSimple.sol +682 -0
  150. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  151. package/contracts/instance/IInstance.sol +3 -50
  152. package/contracts/instance/Instance.sol +379 -61
  153. package/contracts/instance/InstanceAccessManager.sol +288 -0
  154. package/contracts/instance/InstanceReader.sol +235 -0
  155. package/contracts/instance/InstanceService.sol +45 -0
  156. package/contracts/instance/base/IKeyValueStore.sol +10 -12
  157. package/contracts/instance/base/ILifecycle.sol +3 -3
  158. package/contracts/instance/base/KeyValueStore.sol +46 -19
  159. package/contracts/instance/base/Lifecycle.sol +1 -1
  160. package/contracts/instance/base/ServiceBase.sol +20 -13
  161. package/contracts/instance/module/IAccess.sol +38 -0
  162. package/contracts/instance/module/IBundle.sol +19 -0
  163. package/contracts/instance/module/IDistribution.sol +39 -0
  164. package/contracts/instance/module/IPolicy.sol +45 -0
  165. package/contracts/instance/module/IRisk.sol +11 -0
  166. package/contracts/instance/module/ISetup.sol +41 -0
  167. package/contracts/instance/module/ITreasury.sol +23 -0
  168. package/contracts/registry/ChainNft.sol +43 -15
  169. package/contracts/registry/IChainNft.sol +3 -2
  170. package/contracts/registry/IRegistry.sol +42 -26
  171. package/contracts/registry/IRegistryService.sol +29 -0
  172. package/contracts/registry/ITransferInterceptor.sol +6 -0
  173. package/contracts/registry/Registry.sol +383 -273
  174. package/contracts/registry/RegistryService.sol +369 -0
  175. package/contracts/registry/RegistryServiceManager.sol +43 -0
  176. package/contracts/shared/ContractDeployerLib.sol +72 -0
  177. package/contracts/shared/ERC165.sol +1 -1
  178. package/contracts/shared/INftOwnable.sol +22 -0
  179. package/contracts/shared/IRegisterable.sol +9 -16
  180. package/contracts/shared/IVersionable.sol +55 -11
  181. package/contracts/shared/NftOwnable.sol +136 -0
  182. package/contracts/shared/ProxyManager.sol +94 -0
  183. package/contracts/shared/Registerable.sol +62 -59
  184. package/contracts/shared/TokenHandler.sol +27 -0
  185. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  186. package/contracts/shared/Versionable.sol +113 -55
  187. package/contracts/test/TestRegisterable.sol +5 -6
  188. package/contracts/test/TestRoleId.sol +6 -6
  189. package/contracts/test/TestService.sol +5 -11
  190. package/contracts/types/DistributorType.sol +55 -0
  191. package/contracts/types/Key32.sol +8 -3
  192. package/contracts/types/NumberId.sol +52 -0
  193. package/contracts/types/ObjectType.sol +35 -14
  194. package/contracts/types/Referral.sol +85 -0
  195. package/contracts/types/RoleId.sol +46 -9
  196. package/contracts/types/StateId.sol +1 -1
  197. package/contracts/types/Timestamp.sol +7 -3
  198. package/contracts/types/Version.sol +9 -0
  199. package/package.json +1 -1
  200. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  201. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  202. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  203. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -405
  204. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  205. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -340
  206. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  207. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -487
  208. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  209. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -370
  210. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  211. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -578
  212. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  213. package/artifacts/contracts/components/Product.sol/Product.json +0 -444
  214. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  215. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  216. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  217. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  218. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  219. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  220. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  221. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +0 -376
  222. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  223. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  224. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  225. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  226. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
  227. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  228. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  229. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  230. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  231. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  232. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  233. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  234. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  235. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  236. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  237. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  238. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  239. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  240. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  241. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  242. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  243. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  244. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  245. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  246. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  247. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  248. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  249. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  250. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  251. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  252. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  253. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  254. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  255. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  256. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  257. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  258. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  259. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  260. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  261. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  262. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  263. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  264. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  265. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  266. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  267. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  268. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -531
  269. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  270. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -420
  271. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  272. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -364
  273. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  274. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -325
  275. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  276. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -440
  277. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  278. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -630
  279. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  280. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -543
  281. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  282. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -858
  283. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  284. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  285. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.dbg.json +0 -4
  286. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.json +0 -495
  287. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  288. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  289. package/artifacts/contracts/shared/Proxy.sol/Proxy.dbg.json +0 -4
  290. package/artifacts/contracts/shared/Proxy.sol/Proxy.json +0 -178
  291. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +0 -4
  292. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +0 -4
  293. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +0 -187
  294. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  295. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  296. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  297. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  298. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  299. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  300. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  301. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  302. package/contracts/components/BaseComponent.sol +0 -94
  303. package/contracts/components/Distribution.sol +0 -132
  304. package/contracts/components/IDistributionComponent.sol +0 -47
  305. package/contracts/components/IPoolComponent.sol +0 -71
  306. package/contracts/components/IProductComponent.sol +0 -38
  307. package/contracts/components/Pool.sol +0 -235
  308. package/contracts/components/Product.sol +0 -227
  309. package/contracts/experiment/statemachine/README.md +0 -112
  310. package/contracts/instance/IInstanceLinked.sol +0 -8
  311. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  312. package/contracts/instance/base/IInstanceBase.sol +0 -22
  313. package/contracts/instance/base/InstanceBase.sol +0 -91
  314. package/contracts/instance/base/ModuleBase.sol +0 -57
  315. package/contracts/instance/module/access/Access.sol +0 -149
  316. package/contracts/instance/module/access/IAccess.sol +0 -53
  317. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  318. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  319. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  320. package/contracts/instance/module/component/IComponent.sol +0 -28
  321. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  322. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  323. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  324. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  325. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  326. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  327. package/contracts/instance/module/risk/IRisk.sol +0 -26
  328. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  329. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  330. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  331. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  332. package/contracts/instance/service/ComponentOwnerService.sol +0 -157
  333. package/contracts/instance/service/DistributionService.sol +0 -59
  334. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  335. package/contracts/instance/service/IDistributionService.sol +0 -12
  336. package/contracts/instance/service/IPoolService.sol +0 -37
  337. package/contracts/instance/service/IProductService.sol +0 -107
  338. package/contracts/instance/service/PoolService.sol +0 -149
  339. package/contracts/instance/service/ProductService.sol +0 -509
  340. package/contracts/registry/IRegistryLinked.sol +0 -8
  341. package/contracts/registry/RegistryUpgradeable.sol +0 -416
  342. package/contracts/shared/IOwnable.sol +0 -6
  343. package/contracts/shared/Proxy.sol +0 -83
  344. package/contracts/shared/VersionableUpgradeable.sol +0 -108
  345. package/contracts/test/TestDistribution.sol +0 -21
  346. package/contracts/test/TestPool.sol +0 -25
  347. package/contracts/test/TestProduct.sol +0 -72
  348. package/contracts/types/ReferralId.sol +0 -48
@@ -1,91 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Versionable} from "../../shared/Versionable.sol";
5
- import {Registerable} from "../../shared/Registerable.sol";
6
-
7
- import {ObjectType, INSTANCE} from "../../types/ObjectType.sol";
8
- import {Key32} from "../../types/Key32.sol";
9
- import {NftId} from "../../types/NftId.sol";
10
- import {StateId} from "../../types/StateId.sol";
11
- import {Version, VersionPart, VersionLib} from "../../types/Version.sol";
12
-
13
- import {IComponentOwnerService} from "../service/IComponentOwnerService.sol";
14
- import {IDistributionService} from "../service/IDistributionService.sol";
15
- import {IProductService} from "../service/IProductService.sol";
16
- import {IPoolService} from "../service/IPoolService.sol";
17
-
18
- import {IKeyValueStore} from "./IKeyValueStore.sol";
19
- import {IInstance} from "../IInstance.sol";
20
- import {IInstanceBase} from "./IInstanceBase.sol";
21
-
22
- import {KeyValueStore} from "./KeyValueStore.sol";
23
-
24
- abstract contract InstanceBase is
25
- Versionable,
26
- Registerable,
27
- IInstanceBase
28
- {
29
- IKeyValueStore internal _keyValueStore;
30
-
31
- IComponentOwnerService internal _componentOwnerService;
32
- IDistributionService internal _distributionService;
33
- IProductService internal _productService;
34
- IPoolService internal _poolService;
35
-
36
- constructor(
37
- address registry,
38
- NftId registryNftId
39
- )
40
- Registerable(registry, registryNftId)
41
- Versionable()
42
- {
43
- _keyValueStore = new KeyValueStore();
44
-
45
- _registerInterface(type(IInstance).interfaceId);
46
- _linkToServicesInRegistry();
47
- }
48
-
49
- function getKeyValueStore() public view virtual override returns (IKeyValueStore keyValueStore) { return _keyValueStore; }
50
-
51
- function updateState(Key32 key, StateId state) external override {
52
- _keyValueStore.updateState(key, state);
53
- }
54
-
55
- function getState(Key32 key) external view override returns (StateId state) {
56
- return _keyValueStore.getState(key);
57
- }
58
-
59
- // from versionable
60
- function getVersion()
61
- public
62
- pure
63
- virtual override
64
- returns(Version)
65
- {
66
- return VersionLib.toVersion(3,0,0);
67
- }
68
-
69
- // from registerable
70
- function getType() external pure override returns (ObjectType objectType) {
71
- return INSTANCE();
72
- }
73
-
74
-
75
- // internal / private functions
76
- function _linkToServicesInRegistry() internal {
77
- VersionPart majorVersion = getVersion().toMajorPart();
78
- _componentOwnerService = IComponentOwnerService(_getAndCheck("ComponentOwnerService", majorVersion));
79
- _distributionService = IDistributionService(_getAndCheck("DistributionService", majorVersion));
80
- _productService = IProductService(_getAndCheck("ProductService", majorVersion));
81
- _poolService = IPoolService(_getAndCheck("PoolService", majorVersion));
82
- }
83
-
84
- function _getAndCheck(string memory serviceName, VersionPart majorVersion) internal view returns (address serviceAddress) {
85
- serviceAddress = _registry.getServiceAddress(serviceName, majorVersion);
86
- require(
87
- serviceAddress != address(0),
88
- "ERROR:INS-001:NOT_REGISTERED"
89
- );
90
- }
91
- }
@@ -1,57 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
-
6
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
7
- import {Key32, KeyId} from "../../types/Key32.sol";
8
- import {LibNftIdSet} from "../../types/NftIdSet.sol";
9
- import {NftId} from "../../types/NftId.sol";
10
- import {ObjectType, PRODUCT, ORACLE, POOL, BUNDLE, POLICY} from "../../types/ObjectType.sol";
11
- import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, REVOKED, DECLINED} from "../../types/StateId.sol";
12
- import {Timestamp, blockTimestamp, zeroTimestamp} from "../../types/Timestamp.sol";
13
-
14
- import {IKeyValueStore} from "./IKeyValueStore.sol";
15
-
16
- abstract contract ModuleBase {
17
-
18
- IKeyValueStore private _store;
19
-
20
- function _initialize(IKeyValueStore keyValueStore) internal {
21
- _store = keyValueStore;
22
- }
23
-
24
- function _create(ObjectType objectType, Key32 key, bytes memory data) internal {
25
- _store.create(
26
- key,
27
- objectType,
28
- data);
29
- }
30
-
31
- function _create(ObjectType objectType, NftId nftId, bytes memory data) internal {
32
- _store.create(
33
- nftId.toKey32(objectType),
34
- objectType,
35
- data);
36
- }
37
-
38
- function _updateData(ObjectType objectType, NftId nftId, bytes memory data) internal {
39
- _store.updateData(nftId.toKey32(objectType), data);
40
- }
41
-
42
- function _updateState(ObjectType objectType, NftId nftId, StateId state) internal {
43
- _store.updateState(nftId.toKey32(objectType), state);
44
- }
45
-
46
- function _exists(ObjectType objectType, NftId nftId) internal view returns (bool hasData) {
47
- return _store.exists(nftId.toKey32(objectType));
48
- }
49
-
50
- function _getData(ObjectType objectType, NftId nftId) internal view returns(bytes memory data) {
51
- return _store.getData(nftId.toKey32(objectType));
52
- }
53
-
54
- function _getState(ObjectType objectType, NftId nftId) internal view returns(StateId) {
55
- return _store.getState(nftId.toKey32(objectType));
56
- }
57
- }
@@ -1,149 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- // role admin handling of oz doesn't fit nft ownability
5
- // import {AccessControlEnumerable} from "@openzeppelin/contracts/access/AccessControlEnumerable.sol";
6
- import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
7
-
8
- import {RoleId, RoleIdLib} from "../../../types/RoleId.sol";
9
- import {DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../../../types/RoleId.sol";
10
- import {DISTRIBUTION_OWNER_ROLE_NAME, ORACLE_OWNER_ROLE_NAME, POOL_OWNER_ROLE_NAME, PRODUCT_OWNER_ROLE_NAME} from "../../../types/RoleId.sol";
11
- import {IAccessModule} from "./IAccess.sol";
12
-
13
- abstract contract AccessModule is IAccessModule {
14
-
15
- using EnumerableSet for EnumerableSet.AddressSet;
16
-
17
- mapping(RoleId role => RoleInfo info) private _info;
18
- RoleId[] private _roles;
19
-
20
- mapping(RoleId role => mapping(address member => bool isMember))
21
- private _isRoleMember;
22
- mapping(RoleId role => EnumerableSet.AddressSet members) private _roleMembers;
23
-
24
- modifier onlyAccessOwner() {
25
- require(
26
- msg.sender == this.getOwner(),
27
- "ERROR:ACS-001:NOT_OWNER");
28
- _;
29
- }
30
-
31
- modifier onlyExistingRole(RoleId role) {
32
- require(
33
- _info[role].id == role,
34
- "ERROR:ACS-002:ROLE_NOT_EXISTING");
35
- _;
36
- }
37
-
38
- constructor() {
39
- _createRole(DISTRIBUTION_OWNER_ROLE(), DISTRIBUTION_OWNER_ROLE_NAME());
40
- _createRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME());
41
- _createRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME());
42
- _createRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME());
43
- }
44
-
45
- function createRole(
46
- string memory roleName
47
- ) public override onlyAccessOwner returns (RoleId role) {
48
- role = RoleIdLib.toRoleId(roleName);
49
- require(
50
- !roleExists(role),
51
- "ERROR:ACS-010:ROLE_ALREADY_EXISTS");
52
-
53
- _createRole(role, roleName);
54
- }
55
-
56
- function setRoleState(RoleId role, bool active) external override onlyExistingRole(role) onlyAccessOwner {
57
- RoleInfo memory info = _info[role];
58
- info.isActive = active;
59
- _setRoleInfo(info);
60
-
61
- emit LogAccessRoleStateSet(role, active);
62
- }
63
-
64
- function grantRole(
65
- RoleId role,
66
- address member
67
- ) external override onlyExistingRole(role) onlyAccessOwner {
68
- require(_info[role].isActive, "ERROR:ACS-040:ROLE_NOT_ACTIVE");
69
-
70
- _isRoleMember[role][member] = true;
71
- _roleMembers[role].add(member);
72
-
73
- emit LogAccessRoleGranted(role, member, _isRoleMember[role][member]);
74
- }
75
-
76
- function revokeRole(
77
- RoleId role,
78
- address member
79
- ) external override onlyExistingRole(role) onlyAccessOwner {
80
- delete _isRoleMember[role][member];
81
- _roleMembers[role].remove(member);
82
-
83
- emit LogAccessRoleGranted(role, member, false);
84
- }
85
-
86
- function roleExists(RoleId role) public view virtual override returns (bool) {
87
- return _info[role].id == role;
88
- }
89
-
90
- function hasRole(
91
- RoleId role,
92
- address member
93
- ) public view virtual override returns (bool) {
94
- return _isRoleMember[role][member];
95
- }
96
-
97
- function getRoleId(string memory roleName) external pure override returns (RoleId role) {
98
- return RoleIdLib.toRoleId(roleName);
99
- }
100
-
101
- function getRoleInfo(
102
- RoleId role
103
- ) external view override returns (RoleInfo memory info) {
104
- return _info[role];
105
- }
106
-
107
- function getRole(
108
- uint256 idx
109
- ) external view override returns (RoleId role) {
110
- return _roles[idx];
111
- }
112
-
113
- function getRoleCount() external view override returns (uint256 roles) {
114
- return _roles.length;
115
- }
116
-
117
- function getRoleMemberCount(
118
- RoleId role
119
- ) public view override returns (uint256 roleMembers) {
120
- return _roleMembers[role].length();
121
- }
122
-
123
- function getRoleMember(
124
- RoleId role,
125
- uint256 idx
126
- ) public view override returns (address roleMembers) {
127
- return _roleMembers[role].at(idx);
128
- }
129
-
130
- function _createRole(
131
- RoleId role,
132
- string memory roleName
133
- ) internal {
134
- RoleInfo memory info = RoleInfo(role, roleName, true);
135
- _setRoleInfo(info);
136
-
137
- emit LogAccessRoleCreated(role, roleName);
138
- }
139
-
140
- function _setRoleInfo(
141
- RoleInfo memory info
142
- ) internal {
143
- RoleId role = info.id;
144
- _info[role] = info;
145
- if(!roleExists(role)) {
146
- _roles.push(role);
147
- }
148
- }
149
- }
@@ -1,53 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {RoleId} from "../../../types/RoleId.sol";
5
-
6
- interface IAccess {
7
- struct RoleInfo {
8
- RoleId id;
9
- string name;
10
- bool isActive;
11
- }
12
- }
13
-
14
- interface IAccessModule is
15
- IAccess
16
- {
17
- event LogAccessRoleCreated(RoleId role, string roleName);
18
- event LogAccessRoleStateSet(RoleId role, bool active);
19
- event LogAccessRoleGranted(RoleId role, address member, bool isMember);
20
-
21
- function createRole(string memory roleName) external returns (RoleId role);
22
-
23
- function setRoleState(RoleId role, bool active) external;
24
-
25
- function grantRole(RoleId role, address member) external;
26
-
27
- function revokeRole(RoleId role, address member) external;
28
-
29
- function roleExists(RoleId role) external view returns (bool);
30
-
31
- function hasRole(RoleId role, address member) external view returns (bool);
32
-
33
- function getRoleCount() external view returns (uint256 roles);
34
-
35
- function getRole(uint256 idx) external view returns (RoleId role);
36
-
37
- function getRoleId(string memory roleName) external pure returns (RoleId role);
38
-
39
- function getRoleInfo(
40
- RoleId role
41
- ) external view returns (RoleInfo memory info);
42
-
43
- function getRoleMemberCount(
44
- RoleId role
45
- ) external view returns (uint256 roleMembers);
46
-
47
- function getRoleMember(
48
- RoleId role,
49
- uint256 idx
50
- ) external view returns (address roleMember);
51
-
52
- function getOwner() external view returns (address owner);
53
- }
@@ -1,134 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../../registry/IRegistry.sol";
5
-
6
- import {IProductService} from "../../service/IProductService.sol";
7
- import {IPoolService} from "../../service/IPoolService.sol";
8
-
9
- import {Fee} from "../../../types/Fee.sol";
10
- import {NftId} from "../../../types/NftId.sol";
11
- import {Key32, KeyId} from "../../../types/Key32.sol";
12
- import {LibNftIdSet} from "../../../types/NftIdSet.sol";
13
- import {ObjectType, PRODUCT, ORACLE, POOL, BUNDLE, POLICY} from "../../../types/ObjectType.sol";
14
- import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, REVOKED, DECLINED} from "../../../types/StateId.sol";
15
- import {Timestamp, blockTimestamp, zeroTimestamp} from "../../../types/Timestamp.sol";
16
- import {Blocknumber, blockNumber} from "../../../types/Blocknumber.sol";
17
-
18
- import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
19
- import {ModuleBase} from "../../base/ModuleBase.sol";
20
-
21
- import {IBundleModule} from "./IBundle.sol";
22
-
23
- abstract contract BundleModule is
24
- ModuleBase,
25
- IBundleModule
26
- {
27
-
28
- using LibNftIdSet for LibNftIdSet.Set;
29
-
30
- mapping(NftId bundleNftId => LibNftIdSet.Set policies) private _collateralizedPolicies;
31
- mapping(NftId bundleNftId => mapping(NftId policyNftId => uint256 amount)) private _collateralizationAmount;
32
-
33
- modifier onlyBundlePoolService() {
34
- require(
35
- msg.sender == address(this.getPoolService()),
36
- "ERROR:BDL-001:NOT_POOL_SERVICE"
37
- );
38
- _;
39
- }
40
-
41
- modifier onlyBundleProductService() {
42
- require(
43
- msg.sender == address(this.getProductService()),
44
- "ERROR:BDL-002:NOT_PRODUCT_SERVICE"
45
- );
46
- _;
47
- }
48
-
49
- modifier onlyPoolOrProductService() {
50
- require(
51
- msg.sender == address(this.getPoolService())
52
- || msg.sender == address(this.getProductService()),
53
- "ERROR:BDL-003:NOT_POOL_OR_PRODUCT_SERVICE"
54
- );
55
- _;
56
- }
57
-
58
- function initializeBundleModule(IKeyValueStore keyValueStore) internal {
59
- _initialize(keyValueStore);
60
- }
61
-
62
- function createBundleInfo(
63
- NftId bundleNftId,
64
- NftId poolNftId,
65
- Fee memory fee,
66
- uint256 amount,
67
- uint256 lifetime,
68
- bytes calldata filter
69
- )
70
- external
71
- onlyBundlePoolService
72
- override
73
- {
74
- BundleInfo memory info = BundleInfo(
75
- poolNftId,
76
- fee,
77
- filter,
78
- amount, // capital
79
- 0, // locked capital
80
- amount, // balance
81
- blockTimestamp().addSeconds(lifetime), // expiredAt
82
- zeroTimestamp() // closedAt
83
- );
84
-
85
- _create(BUNDLE(), bundleNftId, abi.encode(info));
86
- }
87
-
88
- function setBundleInfo(NftId bundleNftId, BundleInfo memory info)
89
- external
90
- override
91
- onlyPoolOrProductService
92
- {
93
- _updateData(BUNDLE(), bundleNftId, abi.encode(info));
94
- }
95
-
96
- function updateBundleState(NftId bundleNftId, StateId state)
97
- external
98
- override
99
- onlyBundlePoolService
100
- {
101
- _updateState(BUNDLE(), bundleNftId, state);
102
- }
103
-
104
- function collateralizePolicy(
105
- NftId bundleNftId,
106
- NftId policyNftId,
107
- uint256 collateralAmount
108
- )
109
- external
110
- onlyBundleProductService
111
- override
112
- {
113
- _collateralizationAmount[bundleNftId][policyNftId] = collateralAmount;
114
- _collateralizedPolicies[bundleNftId].add(policyNftId);
115
- }
116
-
117
- function releasePolicy(
118
- NftId bundleNftId,
119
- NftId policyNftId
120
- )
121
- external
122
- onlyBundleProductService
123
- override
124
- returns(uint256 collateralAmount)
125
- {
126
- collateralAmount = _collateralizationAmount[bundleNftId][policyNftId];
127
- delete _collateralizationAmount[bundleNftId][policyNftId];
128
- _collateralizedPolicies[bundleNftId].remove(policyNftId);
129
- }
130
-
131
- function getBundleInfo(NftId bundleNftId) external view override returns(BundleInfo memory bundleInfo) {
132
- return abi.decode(_getData(BUNDLE(), bundleNftId), (BundleInfo));
133
- }
134
- }
@@ -1,53 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../../registry/IRegistry.sol";
5
- import {IInstance} from "../../IInstance.sol";
6
- import {Fee} from "../../../types/Fee.sol";
7
- import {Key32} from "../../../types/Key32.sol";
8
- import {NftId} from "../../../types/NftId.sol";
9
- import {StateId} from "../../../types/StateId.sol";
10
- import {Timestamp} from "../../../types/Timestamp.sol";
11
- import {Blocknumber} from "../../../types/Blocknumber.sol";
12
-
13
- import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
14
- import {IProductService} from "../../service/IProductService.sol";
15
- import {IPoolService} from "../../service/IPoolService.sol";
16
-
17
- interface IBundle {
18
-
19
- struct BundleInfo {
20
- NftId poolNftId;
21
- Fee fee; // bundle fee on net premium amounts
22
- bytes filter; // required conditions for applications to be considered for collateralization by this bundle
23
- uint256 capitalAmount; // net investment capital amount (<= balance)
24
- uint256 lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= balance)
25
- uint256 balanceAmount; // total amount of funds: net investment capital + net premiums - payouts
26
- Timestamp expiredAt; // no new policies
27
- Timestamp closedAt;
28
- }
29
- }
30
-
31
- interface IBundleModule is IBundle {
32
-
33
- function createBundleInfo(
34
- NftId bundleNftId,
35
- NftId poolNftId,
36
- Fee memory fee,
37
- uint256 amount,
38
- uint256 lifetime,
39
- bytes calldata filter
40
- ) external;
41
-
42
- function setBundleInfo(NftId nftId, BundleInfo memory bundleInfo) external;
43
- function updateBundleState(NftId nftId, StateId state) external;
44
-
45
- function collateralizePolicy(NftId bundleNftId, NftId policyNftId, uint256 amount) external;
46
- function releasePolicy(NftId bundleNftId, NftId policyNftId) external returns(uint256 collateralAmount);
47
-
48
- function getBundleInfo(NftId nftId) external view returns(BundleInfo memory bundleInfo);
49
-
50
- // repeat service linked signatures to avoid linearization issues
51
- function getProductService() external returns(IProductService);
52
- function getPoolService() external returns(IPoolService);
53
- }
@@ -1,70 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
- import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
6
- import {IComponentModule} from "./IComponent.sol";
7
-
8
- import {NftId} from "../../../types/NftId.sol";
9
- import {ObjectType, COMPONENT} from "../../../types/ObjectType.sol";
10
- import {StateId} from "../../../types/StateId.sol";
11
- import {ModuleBase} from "../../base/ModuleBase.sol";
12
-
13
- abstract contract ComponentModule is
14
- ModuleBase,
15
- IComponentModule
16
- {
17
-
18
- NftId[] private _nftIds;
19
-
20
- modifier onlyComponentOwnerService() {
21
- require(
22
- msg.sender == address(this.getComponentOwnerService()),
23
- "ERROR:CMP-001:NOT_OWNER_SERVICE"
24
- );
25
- _;
26
- }
27
-
28
- function initializeComponentModule(IKeyValueStore keyValueStore) internal {
29
- _initialize(keyValueStore);
30
- }
31
-
32
- function registerComponent(
33
- NftId nftId,
34
- IERC20Metadata token,
35
- address wallet
36
- )
37
- external
38
- onlyComponentOwnerService
39
- override
40
- {
41
- ComponentInfo memory info = ComponentInfo(token, wallet);
42
- _nftIds.push(nftId);
43
- _create(COMPONENT(), nftId, abi.encode(info));
44
- }
45
-
46
- function getComponentToken(NftId nftId) external view override returns(IERC20Metadata token) {
47
- ComponentInfo memory info = abi.decode(_getData(COMPONENT(), nftId), (ComponentInfo));
48
- return info.token;
49
- }
50
-
51
- function getComponentWallet(NftId nftId) external view override returns (address wallet) {
52
- ComponentInfo memory info = abi.decode(_getData(COMPONENT(), nftId), (ComponentInfo));
53
- return info.wallet;
54
- }
55
-
56
- function getComponentCount()
57
- external
58
- view
59
- override
60
- returns (uint256 numberOfCompnents)
61
- {
62
- return _nftIds.length;
63
- }
64
-
65
- function getComponentId(
66
- uint256 idx
67
- ) external view override returns (NftId componentNftId) {
68
- return _nftIds[idx];
69
- }
70
- }
@@ -1,28 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
- import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
6
-
7
- import {StateId} from "../../../types/StateId.sol";
8
- import {NftId} from "../../../types/NftId.sol";
9
-
10
- interface IComponent {
11
- struct ComponentInfo {
12
- IERC20Metadata token;
13
- address wallet;
14
- }
15
- }
16
-
17
- interface IComponentModule is IComponent {
18
-
19
- function registerComponent(NftId nftId, IERC20Metadata token, address wallet) external;
20
- function getComponentToken(NftId nftId) external view returns (IERC20Metadata token);
21
- function getComponentWallet(NftId nftId) external view returns (address wallet);
22
-
23
- function getComponentCount() external view returns (uint256 numberOfCompnents);
24
- function getComponentId(uint256 idx) external view returns (NftId nftId);
25
-
26
- // repeat service linked signaturea to avoid linearization issues
27
- function getComponentOwnerService() external view returns(IComponentOwnerService);
28
- }
@@ -1,17 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IDistributionModule} from "./IDistribution.sol";
5
- import {IKeyValueStore} from "../../base/IKeyValueStore.sol";
6
- import {ModuleBase} from "../../base/ModuleBase.sol";
7
-
8
- contract DistributionModule is
9
- ModuleBase,
10
- IDistributionModule
11
- {
12
-
13
- function initializeDistributionModule(IKeyValueStore keyValueStore) internal {
14
- _initialize(keyValueStore);
15
- }
16
-
17
- }
@@ -1,10 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface IDistribution {
5
-
6
- }
7
-
8
- interface IDistributionModule is IDistribution {
9
-
10
- }