@etherisc/gif-next 0.0.2-dc7e4cb-141 → 0.0.2-de0a1d3-009

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 (268) hide show
  1. package/README.md +58 -11
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.json +405 -0
  5. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  6. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +340 -0
  8. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +131 -0
  10. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +109 -18
  12. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  13. package/artifacts/contracts/components/Pool.sol/Pool.json +194 -3
  14. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  15. package/artifacts/contracts/components/Product.sol/Product.json +160 -21
  16. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  28. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  32. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  34. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  36. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  37. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +709 -678
  38. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
  39. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  40. package/artifacts/contracts/instance/Instance.sol/Instance.json +916 -717
  41. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
  42. package/artifacts/contracts/instance/{InstanceBase.sol/InstanceBase.json → base/ComponentServiceBase.sol/ComponentServiceBase.json} +102 -28
  43. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  44. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
  45. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  46. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +560 -0
  47. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  48. package/artifacts/contracts/instance/{module/lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  49. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +4 -0
  50. package/artifacts/contracts/instance/{service → base}/IService.sol/IService.json +58 -17
  51. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  52. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +463 -0
  53. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  54. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +710 -0
  55. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  56. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
  57. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +4 -0
  58. package/artifacts/contracts/instance/{module/compensation/ICompensation.sol/ICompensation.json → base/ModuleBase.sol/ModuleBase.json} +2 -2
  59. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +4 -0
  60. package/artifacts/contracts/instance/{service → base}/ServiceBase.sol/ServiceBase.json +88 -1
  61. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +71 -50
  66. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +71 -50
  69. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
  71. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
  74. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
  76. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
  78. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
  79. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +10 -0
  80. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +61 -38
  83. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +61 -38
  85. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -5
  88. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -5
  90. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
  93. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
  95. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +209 -231
  98. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
  100. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +209 -231
  102. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +145 -18
  104. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  105. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +507 -0
  106. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  107. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +57 -16
  108. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  109. package/artifacts/contracts/instance/service/{ComponentServiceBase.sol/ComponentServiceBase.json → IDistributionService.sol/IDistributionService.json} +91 -25
  110. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  111. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +122 -17
  112. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  113. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +210 -16
  114. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  115. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +171 -12
  116. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  117. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +303 -31
  118. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  120. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  122. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  124. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.json +724 -0
  126. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  127. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  129. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  130. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +53 -12
  131. package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.dbg.json +4 -0
  132. package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.json +248 -0
  133. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +4 -0
  134. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.json +129 -0
  135. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  137. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +87 -0
  138. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +228 -0
  140. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
  141. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +405 -0
  142. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  143. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  144. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
  145. package/artifacts/contracts/test/TestPool.sol/TestPool.json +194 -3
  146. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
  147. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +209 -27
  148. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  149. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
  150. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +38 -4
  152. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  153. package/artifacts/contracts/test/TestService.sol/TestService.json +95 -8
  154. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  157. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +95 -8
  159. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  160. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  161. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  162. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  163. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  164. package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
  165. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  166. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +111 -0
  167. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
  169. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  170. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  171. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  173. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
  174. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
  175. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  176. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  177. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  178. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +30 -0
  179. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  180. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  181. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  183. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  185. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  187. package/contracts/components/BaseComponent.sol +7 -2
  188. package/contracts/components/Distribution.sol +132 -0
  189. package/contracts/components/IDistributionComponent.sol +47 -0
  190. package/contracts/components/IPoolComponent.sol +14 -0
  191. package/contracts/components/IProductComponent.sol +24 -5
  192. package/contracts/components/Pool.sol +64 -3
  193. package/contracts/components/Product.sol +123 -13
  194. package/contracts/instance/IInstance.sol +14 -14
  195. package/contracts/instance/Instance.sol +20 -12
  196. package/contracts/instance/{service → base}/ComponentServiceBase.sol +1 -0
  197. package/contracts/instance/base/IInstanceBase.sol +22 -0
  198. package/contracts/instance/base/IKeyValueStore.sol +50 -0
  199. package/contracts/instance/base/ILifecycle.sol +30 -0
  200. package/contracts/instance/{InstanceBase.sol → base/InstanceBase.sol} +33 -13
  201. package/contracts/instance/base/KeyValueStore.sol +161 -0
  202. package/contracts/instance/{module/lifecycle/LifecycleModule.sol → base/Lifecycle.sol} +50 -39
  203. package/contracts/instance/base/ModuleBase.sol +57 -0
  204. package/contracts/instance/{service → base}/ServiceBase.sol +0 -2
  205. package/contracts/instance/module/access/Access.sol +6 -6
  206. package/contracts/instance/module/bundle/BundleModule.sol +24 -118
  207. package/contracts/instance/module/bundle/IBundle.sol +9 -9
  208. package/contracts/instance/module/component/ComponentModule.sol +27 -60
  209. package/contracts/instance/module/component/IComponent.sol +5 -30
  210. package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
  211. package/contracts/instance/module/distribution/IDistribution.sol +10 -0
  212. package/contracts/instance/module/policy/IPolicy.sol +12 -9
  213. package/contracts/instance/module/policy/PolicyModule.sol +33 -26
  214. package/contracts/instance/module/pool/IPoolModule.sol +0 -1
  215. package/contracts/instance/module/pool/PoolModule.sol +12 -9
  216. package/contracts/instance/module/risk/IRisk.sol +18 -2
  217. package/contracts/instance/module/risk/RiskModule.sol +56 -2
  218. package/contracts/instance/module/treasury/ITreasury.sol +29 -50
  219. package/contracts/instance/module/treasury/TreasuryModule.sol +71 -85
  220. package/contracts/instance/service/ComponentOwnerService.sol +30 -44
  221. package/contracts/instance/service/DistributionService.sol +59 -0
  222. package/contracts/instance/service/IComponentOwnerService.sol +1 -1
  223. package/contracts/instance/service/IDistributionService.sol +12 -0
  224. package/contracts/instance/service/IPoolService.sol +8 -1
  225. package/contracts/instance/service/IProductService.sol +56 -7
  226. package/contracts/instance/service/PoolService.sol +31 -5
  227. package/contracts/instance/service/ProductService.sol +231 -77
  228. package/contracts/registry/Registry.sol +4 -4
  229. package/contracts/registry/RegistryUpgradeable.sol +473 -0
  230. package/contracts/shared/IVersionable.sol +17 -4
  231. package/contracts/shared/Proxy.sol +94 -0
  232. package/contracts/shared/Versionable.sol +13 -3
  233. package/contracts/shared/VersionableUpgradeable.sol +133 -0
  234. package/contracts/test/TestDistribution.sol +21 -0
  235. package/contracts/test/TestPool.sol +5 -2
  236. package/contracts/test/TestProduct.sol +35 -7
  237. package/contracts/test/TestRoleId.sol +2 -2
  238. package/contracts/test/TestService.sol +1 -1
  239. package/contracts/types/Fee.sol +8 -3
  240. package/contracts/types/Key32.sol +45 -0
  241. package/contracts/types/NftId.sol +16 -1
  242. package/contracts/types/ObjectType.sol +24 -8
  243. package/contracts/types/ReferralId.sol +48 -0
  244. package/contracts/types/RiskId.sol +43 -0
  245. package/contracts/types/RoleId.sol +12 -10
  246. package/contracts/types/StateId.sol +7 -1
  247. package/contracts/types/Version.sol +8 -0
  248. package/package.json +1 -1
  249. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +0 -4
  250. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.json +0 -50
  251. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  252. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  253. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  254. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  255. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  256. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  257. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  258. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  259. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  260. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  261. package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  262. package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +0 -4
  263. package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  264. package/contracts/instance/IServiceLinked.sol +0 -12
  265. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  266. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  267. package/contracts/instance/module/lifecycle/ILifecycle.sol +0 -47
  268. /package/contracts/instance/{service → base}/IService.sol +0 -0
@@ -2,10 +2,13 @@
2
2
  pragma solidity ^0.8.19;
3
3
 
4
4
  import {IRegistry} from "../../registry/IRegistry.sol";
5
+ import {IProductComponent} from "../../components/IProductComponent.sol";
5
6
  import {IPoolComponent} from "../../components/IPoolComponent.sol";
7
+ import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
6
8
  import {IInstance} from "../../instance/IInstance.sol";
7
9
  import {IPolicy, IPolicyModule} from "../module/policy/IPolicy.sol";
8
10
  import {IPool} from "../module/pool/IPoolModule.sol";
11
+ import {IRisk} from "../module/risk/IRisk.sol";
9
12
  import {IBundle} from "../module/bundle/IBundle.sol";
10
13
  import {IProductService} from "./IProductService.sol";
11
14
  import {ITreasury, ITreasuryModule, TokenHandler} from "../../instance/module/treasury/ITreasury.sol";
@@ -15,14 +18,17 @@ import {Versionable} from "../../shared/Versionable.sol";
15
18
 
16
19
  import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
17
20
  import {UFixed, UFixedMathLib} from "../../types/UFixed.sol";
21
+ import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
18
22
  import {ObjectType, INSTANCE, PRODUCT, POLICY} from "../../types/ObjectType.sol";
19
23
  import {APPLIED, UNDERWRITTEN, ACTIVE} from "../../types/StateId.sol";
20
24
  import {NftId, NftIdLib} from "../../types/NftId.sol";
21
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
22
25
  import {Fee, FeeLib} from "../../types/Fee.sol";
26
+ import {ReferralId} from "../../types/ReferralId.sol";
27
+ import {RiskId} from "../../types/RiskId.sol";
28
+ import {StateId} from "../../types/StateId.sol";
23
29
  import {Version, VersionLib} from "../../types/Version.sol";
24
30
 
25
- import {ComponentServiceBase} from "./ComponentServiceBase.sol";
31
+ import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
26
32
  import {IProductService} from "./IProductService.sol";
27
33
 
28
34
  // TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
@@ -55,37 +61,168 @@ contract ProductService is ComponentServiceBase, IProductService {
55
61
  }
56
62
 
57
63
  function setFees(
58
- Fee memory policyFee,
64
+ Fee memory productFee,
59
65
  Fee memory processingFee
60
66
  )
61
67
  external
62
68
  override
63
69
  {
64
70
  (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
65
- instance.setProductFees(productInfo.nftId, policyFee, processingFee);
71
+ NftId productNftId = productInfo.nftId;
72
+ ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productNftId);
73
+ treasuryInfo.productFee = productFee;
74
+ treasuryInfo.processingFee = processingFee;
75
+ instance.setTreasuryInfo(productNftId, treasuryInfo);
76
+ }
77
+
78
+ function createRisk(
79
+ RiskId riskId,
80
+ bytes memory data
81
+ ) external override {
82
+ (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
83
+ NftId productNftId = productInfo.nftId;
84
+ instance.createRisk(
85
+ riskId,
86
+ productNftId,
87
+ data
88
+ );
89
+ }
90
+
91
+ function setRiskInfo(
92
+ RiskId riskId,
93
+ IRisk.RiskInfo memory info
94
+ ) external {
95
+ (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
96
+ instance.setRiskInfo(
97
+ riskId,
98
+ info
99
+ );
100
+ }
101
+
102
+ function updateRiskState(
103
+ RiskId riskId,
104
+ StateId state
105
+ ) external {
106
+ (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
107
+ instance.updateRiskState(
108
+ riskId,
109
+ state
110
+ );
111
+ }
112
+
113
+ function _getAndVerifyInstanceAndProduct() internal view returns (IProductComponent product) {
114
+ IRegistry.ObjectInfo memory productInfo;
115
+ (productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
116
+ product = IProductComponent(productInfo.objectAddress);
117
+ }
118
+
119
+ function calculatePremium(
120
+ RiskId riskId,
121
+ uint256 sumInsuredAmount,
122
+ uint256 lifetime,
123
+ bytes memory applicationData,
124
+ NftId bundleNftId,
125
+ ReferralId referralId
126
+ )
127
+ public
128
+ view
129
+ override
130
+ returns (
131
+ uint256 premiumAmount,
132
+ uint256 productFeeAmount,
133
+ uint256 poolFeeAmount,
134
+ uint256 bundleFeeAmount,
135
+ uint256 distributionFeeAmount
136
+ )
137
+ {
138
+ IProductComponent product = _getAndVerifyInstanceAndProduct();
139
+ uint256 netPremiumAmount = product.calculateNetPremium(
140
+ sumInsuredAmount,
141
+ riskId,
142
+ lifetime,
143
+ applicationData
144
+ );
145
+
146
+ (
147
+ productFeeAmount,
148
+ poolFeeAmount,
149
+ bundleFeeAmount,
150
+ distributionFeeAmount
151
+ ) = _calculateFeeAmounts(
152
+ netPremiumAmount,
153
+ product,
154
+ bundleNftId,
155
+ referralId
156
+ );
157
+
158
+ premiumAmount = netPremiumAmount + productFeeAmount;
159
+ premiumAmount += poolFeeAmount + bundleFeeAmount;
160
+ premiumAmount += distributionFeeAmount;
161
+ }
162
+
163
+ function _calculateFeeAmounts(
164
+ uint256 netPremiumAmount,
165
+ IProductComponent product,
166
+ NftId bundleNftId,
167
+ ReferralId referralId
168
+ )
169
+ internal
170
+ view
171
+ returns (
172
+ uint256 productFeeAmount,
173
+ uint256 poolFeeAmount,
174
+ uint256 bundleFeeAmount,
175
+ uint256 distributionFeeAmount
176
+ )
177
+ {
178
+ IInstance instance = product.getInstance();
179
+ ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(product.getNftId());
180
+ IBundle.BundleInfo memory bundleInfo = instance.getBundleInfo(bundleNftId);
181
+ require(bundleInfo.poolNftId == treasuryInfo.poolNftId,"ERROR:PRS-035:BUNDLE_POOL_MISMATCH");
182
+
183
+ (productFeeAmount,) = FeeLib.calculateFee(treasuryInfo.productFee, netPremiumAmount);
184
+ (poolFeeAmount,) = FeeLib.calculateFee(treasuryInfo.poolFee, netPremiumAmount);
185
+ (bundleFeeAmount,) = FeeLib.calculateFee(bundleInfo.fee, netPremiumAmount);
186
+
187
+ IRegistry.ObjectInfo memory distributionInfo = _registry.getObjectInfo(treasuryInfo.distributionNftId);
188
+ IDistributionComponent distribution = IDistributionComponent(distributionInfo.objectAddress);
189
+ distributionFeeAmount = distribution.calculateFeeAmount(referralId, netPremiumAmount);
66
190
  }
67
191
 
192
+
68
193
  function createApplication(
69
194
  address applicationOwner,
195
+ RiskId riskId,
70
196
  uint256 sumInsuredAmount,
71
- uint256 premiumAmount,
72
197
  uint256 lifetime,
73
- NftId bundleNftId
198
+ bytes memory applicationData,
199
+ NftId bundleNftId,
200
+ ReferralId referralId
74
201
  ) external override returns (NftId policyNftId) {
75
202
  (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
76
- NftId productNftId = productInfo.nftId;
77
203
  // TODO add validations (see create bundle in pool service)
78
204
 
79
205
  policyNftId = this.getRegistry().registerObjectForInstance(
80
- productNftId,
206
+ productInfo.nftId,
81
207
  POLICY(),
82
208
  applicationOwner,
83
209
  ""
84
210
  );
85
211
 
86
- instance.createApplication(
87
- productNftId,
212
+ (uint256 premiumAmount,,,,) = calculatePremium(
213
+ riskId,
214
+ sumInsuredAmount,
215
+ lifetime,
216
+ applicationData,
217
+ bundleNftId,
218
+ referralId
219
+ );
220
+
221
+ instance.createPolicyInfo(
88
222
  policyNftId,
223
+ productInfo.nftId,
224
+ referralId,
225
+ riskId,
89
226
  sumInsuredAmount,
90
227
  premiumAmount,
91
228
  lifetime,
@@ -102,30 +239,29 @@ contract ProductService is ComponentServiceBase, IProductService {
102
239
  internal
103
240
  view
104
241
  returns (
105
- ITreasury.ProductSetup memory productSetup,
242
+ ITreasury.TreasuryInfo memory treasuryInfo,
243
+ NftId bundleNftId,
106
244
  IBundle.BundleInfo memory bundleInfo,
107
- uint256 collateralAmount,
108
- bool poolIsVerifying,
109
- bytes memory bundleFilter
245
+ uint256 collateralAmount
110
246
  )
111
247
  {
112
248
  // check match between policy and bundle (via pool)
113
- productSetup = instance.getProductSetup(policyInfo.productNftId);
114
- bundleInfo = instance.getBundleInfo(policyInfo.bundleNftId);
115
- require(bundleInfo.poolNftId == productSetup.poolNftId, "POLICY_BUNDLE_MISMATCH");
249
+ treasuryInfo = instance.getTreasuryInfo(policyInfo.productNftId);
250
+ bundleNftId = policyInfo.bundleNftId;
251
+ bundleInfo = instance.getBundleInfo(bundleNftId);
252
+ require(bundleInfo.poolNftId == treasuryInfo.poolNftId, "POLICY_BUNDLE_MISMATCH");
116
253
 
117
254
  // calculate required collateral
118
- NftId poolNftId = productSetup.poolNftId;
255
+ NftId poolNftId = treasuryInfo.poolNftId;
119
256
  IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
120
257
 
121
258
  // obtain remaining return values
122
- poolIsVerifying = poolInfo.isVerifying;
123
259
  collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
124
- bundleFilter = bundleInfo.filter;
125
260
  }
126
261
 
127
262
  function _lockCollateralInBundle(
128
263
  IInstance instance,
264
+ NftId bundleNftId,
129
265
  IBundle.BundleInfo memory bundleInfo,
130
266
  NftId policyNftId,
131
267
  uint256 collateralAmount
@@ -134,29 +270,39 @@ contract ProductService is ComponentServiceBase, IProductService {
134
270
  returns (IBundle.BundleInfo memory)
135
271
  {
136
272
  bundleInfo.lockedAmount += collateralAmount;
137
- bundleInfo.updatedIn = blockNumber();
138
- instance.collateralizePolicy(bundleInfo.nftId, policyNftId, collateralAmount);
273
+ instance.collateralizePolicy(bundleNftId, policyNftId, collateralAmount);
139
274
  return bundleInfo;
140
275
  }
141
276
 
142
277
  function _underwriteByPool(
143
- ITreasury.ProductSetup memory productSetup,
278
+ ITreasury.TreasuryInfo memory treasuryInfo,
279
+ NftId policyNftId,
144
280
  IPolicy.PolicyInfo memory policyInfo,
145
281
  bytes memory bundleFilter,
146
282
  uint256 collateralAmount
147
283
  )
148
284
  internal
149
285
  {
150
- address poolAddress = _registry.getObjectInfo(productSetup.poolNftId).objectAddress;
286
+ address poolAddress = _registry.getObjectInfo(treasuryInfo.poolNftId).objectAddress;
151
287
  IPoolComponent pool = IPoolComponent(poolAddress);
152
288
  pool.underwrite(
153
- policyInfo.nftId,
154
- policyInfo.data,
289
+ policyNftId,
290
+ policyInfo.applicationData,
155
291
  bundleFilter,
156
292
  collateralAmount);
157
293
  }
158
294
 
159
295
 
296
+ function revoke(
297
+ NftId policyNftId
298
+ )
299
+ external
300
+ override
301
+ {
302
+ require(false, "ERROR:PRS-234:NOT_YET_IMPLEMENTED");
303
+ }
304
+
305
+
160
306
  function underwrite(
161
307
  NftId policyNftId,
162
308
  bool requirePremiumPayment,
@@ -175,14 +321,18 @@ contract ProductService is ComponentServiceBase, IProductService {
175
321
  NftId productNftId = productInfo.nftId;
176
322
  IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
177
323
  require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
178
- require(policyInfo.state == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
324
+ require(instance.getState(policyNftId.toKey32(POLICY())) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
325
+
326
+ ITreasury.TreasuryInfo memory treasuryInfo;
327
+ NftId bundleNftId;
328
+ IBundle.BundleInfo memory bundleInfo;
329
+ uint256 collateralAmount;
179
330
 
180
331
  (
181
- ITreasury.ProductSetup memory productSetup,
182
- IBundle.BundleInfo memory bundleInfo,
183
- uint256 collateralAmount,
184
- bool poolIsVerifying,
185
- bytes memory bundleFilter
332
+ treasuryInfo,
333
+ bundleNftId,
334
+ bundleInfo,
335
+ collateralAmount
186
336
  ) = _getAndVerifyUnderwritingSetup(
187
337
  instance,
188
338
  policyInfo
@@ -191,15 +341,28 @@ contract ProductService is ComponentServiceBase, IProductService {
191
341
  // lock bundle collateral
192
342
  bundleInfo = _lockCollateralInBundle(
193
343
  instance,
344
+ bundleNftId,
194
345
  bundleInfo,
195
346
  policyNftId,
196
347
  collateralAmount);
197
348
 
198
- // collect premium
349
+ // set policy state to underwritten
350
+ instance.updatePolicyState(policyNftId, UNDERWRITTEN());
351
+
352
+ // optional activation of policy
353
+ if(activateAt > zeroTimestamp()) {
354
+ policyInfo.activatedAt = activateAt;
355
+ policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
356
+
357
+ instance.updatePolicyState(policyNftId, ACTIVE());
358
+ }
359
+
360
+ // optional collection of premium
199
361
  if(requirePremiumPayment) {
200
362
  uint256 netPremiumAmount = _processPremiumByTreasury(
201
363
  instance,
202
- productSetup,
364
+ productInfo.nftId,
365
+ treasuryInfo,
203
366
  policyNftId,
204
367
  policyInfo.premiumAmount);
205
368
 
@@ -207,31 +370,23 @@ contract ProductService is ComponentServiceBase, IProductService {
207
370
  bundleInfo.balanceAmount += netPremiumAmount;
208
371
  }
209
372
 
210
- // set policy state to underwritten
211
- // TODO add require for state change
212
- policyInfo.state = UNDERWRITTEN();
213
- policyInfo.updatedIn = blockNumber();
214
-
215
- // optional activation of policy
216
- if(activateAt > zeroTimestamp()) {
217
- policyInfo.activatedAt = activateAt;
218
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
219
-
220
- // TODO add require for state change
221
- policyInfo.state = ACTIVE();
222
- }
223
-
224
- instance.setPolicyInfo(policyInfo);
225
- instance.setBundleInfo(bundleInfo);
226
-
227
- // integrate pool component
228
- if(poolIsVerifying) {
229
- _underwriteByPool(
230
- productSetup,
231
- policyInfo,
232
- bundleFilter,
233
- collateralAmount
234
- );
373
+ instance.setPolicyInfo(policyNftId, policyInfo);
374
+ instance.setBundleInfo(bundleNftId, bundleInfo);
375
+
376
+ // involve pool if necessary
377
+ {
378
+ NftId poolNftId = treasuryInfo.poolNftId;
379
+ IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
380
+
381
+ if(poolInfo.isVerifying) {
382
+ _underwriteByPool(
383
+ treasuryInfo,
384
+ policyNftId,
385
+ policyInfo,
386
+ bundleInfo.filter,
387
+ collateralAmount
388
+ );
389
+ }
235
390
  }
236
391
 
237
392
  // TODO add logging
@@ -249,14 +404,13 @@ contract ProductService is ComponentServiceBase, IProductService {
249
404
 
250
405
  // perform actual token transfers
251
406
  IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
252
- ITreasury.ProductSetup memory product = instance.getProductSetup(productInfo.nftId);
407
+ ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productInfo.nftId);
253
408
 
254
409
  uint256 premiumAmount = policyInfo.premiumAmount;
255
- _processPremiumByTreasury(instance, product, policyNftId, premiumAmount);
410
+ _processPremiumByTreasury(instance, productInfo.nftId, treasuryInfo, policyNftId, premiumAmount);
256
411
 
257
412
  // policy level book keeping for premium paid
258
413
  policyInfo.premiumPaidAmount += premiumAmount;
259
- policyInfo.updatedIn = blockNumber();
260
414
 
261
415
  // optional activation of policy
262
416
  if(activateAt > zeroTimestamp()) {
@@ -267,11 +421,10 @@ contract ProductService is ComponentServiceBase, IProductService {
267
421
  policyInfo.activatedAt = activateAt;
268
422
  policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
269
423
 
270
- // TODO add require for state change
271
- policyInfo.state = ACTIVE();
424
+ instance.updatePolicyState(policyNftId, ACTIVE());
272
425
  }
273
426
 
274
- instance.setPolicyInfo(policyInfo);
427
+ instance.setPolicyInfo(policyNftId, policyInfo);
275
428
 
276
429
  // TODO add logging
277
430
  }
@@ -289,10 +442,8 @@ contract ProductService is ComponentServiceBase, IProductService {
289
442
  policyInfo.activatedAt = activateAt;
290
443
  policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
291
444
 
292
- // TODO add require for state change
293
- policyInfo.state = ACTIVE();
294
-
295
- instance.setPolicyInfo(policyInfo);
445
+ instance.setPolicyInfo(policyNftId, policyInfo);
446
+ instance.updatePolicyState(policyNftId, ACTIVE());
296
447
 
297
448
  // TODO add logging
298
449
  }
@@ -312,12 +463,14 @@ contract ProductService is ComponentServiceBase, IProductService {
312
463
  view
313
464
  returns (NftId poolNftid)
314
465
  {
315
- return instance.getProductSetup(productNftId).poolNftId;
466
+ return instance.getTreasuryInfo(productNftId).poolNftId;
316
467
  }
317
468
 
469
+
318
470
  function _processPremiumByTreasury(
319
471
  IInstance instance,
320
- ITreasury.ProductSetup memory product,
472
+ NftId productNftId,
473
+ ITreasury.TreasuryInfo memory treasuryInfo,
321
474
  NftId policyNftId,
322
475
  uint256 premiumAmount
323
476
  )
@@ -326,13 +479,13 @@ contract ProductService is ComponentServiceBase, IProductService {
326
479
  {
327
480
  // process token transfer(s)
328
481
  if(premiumAmount > 0) {
329
- TokenHandler tokenHandler = instance.getTokenHandler(product.productNftId);
482
+ TokenHandler tokenHandler = instance.getTokenHandler(productNftId);
330
483
  address policyOwner = _registry.getOwner(policyNftId);
331
- address poolWallet = instance.getPoolSetup(product.poolNftId).wallet;
484
+ address poolWallet = instance.getComponentWallet(treasuryInfo.poolNftId);
332
485
  netPremiumAmount = premiumAmount;
333
- Fee memory policyFee = product.policyFee;
486
+ Fee memory productFee = treasuryInfo.productFee;
334
487
 
335
- if (FeeLib.feeIsZero(policyFee)) {
488
+ if (FeeLib.feeIsZero(productFee)) {
336
489
  tokenHandler.transfer(
337
490
  policyOwner,
338
491
  poolWallet,
@@ -341,10 +494,11 @@ contract ProductService is ComponentServiceBase, IProductService {
341
494
  } else {
342
495
  (uint256 feeAmount, uint256 netAmount) = instance.calculateFeeAmount(
343
496
  premiumAmount,
344
- policyFee
497
+ productFee
345
498
  );
346
499
 
347
- tokenHandler.transfer(policyOwner, product.wallet, feeAmount);
500
+ address productWallet = instance.getComponentWallet(productNftId);
501
+ tokenHandler.transfer(policyOwner, productWallet, feeAmount);
348
502
  tokenHandler.transfer(policyOwner, poolWallet, netAmount);
349
503
  netPremiumAmount = netAmount;
350
504
  }
@@ -2,14 +2,14 @@
2
2
  pragma solidity ^0.8.19;
3
3
 
4
4
  import {IRegisterable} from "../shared/IRegisterable.sol";
5
- import {IService} from "../instance/service/IService.sol";
5
+ import {IService} from "../instance/base/IService.sol";
6
6
 
7
7
  import {IChainNft} from "./IChainNft.sol";
8
8
  import {ChainNft} from "./ChainNft.sol";
9
9
  import {IRegistry} from "./IRegistry.sol";
10
10
  import {NftId, toNftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
11
11
  import {VersionPart} from "../types/Version.sol";
12
- import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, PRODUCT, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../types/ObjectType.sol";
12
+ import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, PRODUCT, DISTRIBUTION, ORACLE, POOL, POLICY, BUNDLE} from "../types/ObjectType.sol";
13
13
 
14
14
  // TODO make registry upgradable
15
15
  contract Registry is
@@ -21,7 +21,6 @@ contract Registry is
21
21
  string public constant EMPTY_URI = "";
22
22
 
23
23
  mapping(NftId nftId => ObjectInfo info) private _info;
24
- mapping(NftId nftId => address owner) private _owner;
25
24
  mapping(address object => NftId nftId) private _nftIdByAddress;
26
25
  mapping(ObjectType objectType => bool) private _isValidType;
27
26
  mapping(ObjectType objectType => mapping(ObjectType objectParentType => bool)) private _isValidParentType;
@@ -280,6 +279,7 @@ contract Registry is
280
279
  _isValidType[PRODUCT()] = true;
281
280
  _isValidType[ORACLE()] = true;
282
281
  _isValidType[POOL()] = true;
282
+ _isValidType[DISTRIBUTION()] = true;
283
283
  _isValidType[POLICY()] = true;
284
284
  _isValidType[BUNDLE()] = true;
285
285
  }
@@ -293,7 +293,7 @@ contract Registry is
293
293
 
294
294
  // instance as parent
295
295
  _isValidParentType[PRODUCT()][INSTANCE()] = true;
296
- _isValidParentType[DISTRIBUTOR()][INSTANCE()] = true;
296
+ _isValidParentType[DISTRIBUTION()][INSTANCE()] = true;
297
297
  _isValidParentType[ORACLE()][INSTANCE()] = true;
298
298
  _isValidParentType[POOL()][INSTANCE()] = true;
299
299