@etherisc/gif-next 0.0.2-8dd2f76-992 → 0.0.2-8e4a894-234

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 (411) hide show
  1. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  2. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +61 -14
  3. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
  5. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
  7. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  8. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +45 -14
  9. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  10. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +24 -274
  11. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  13. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +309 -2023
  15. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +21 -38
  17. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  18. package/artifacts/contracts/instance/Instance.sol/Instance.json +407 -2759
  19. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +71 -53
  21. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  23. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +343 -63
  25. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -265
  27. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +39 -124
  29. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2837 -0
  31. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  32. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
  33. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  35. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  36. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +61 -12
  38. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +8 -8
  40. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  42. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  50. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  51. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  52. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
  54. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  55. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +105 -29
  56. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  57. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +56 -25
  58. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  59. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +270 -37
  60. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  61. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +56 -25
  62. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
  64. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
  66. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  67. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  68. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
  70. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  71. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1376 -0
  72. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
  74. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  75. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +119 -101
  76. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +743 -0
  78. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  79. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +129 -84
  80. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  81. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +63 -175
  82. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  83. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +53 -22
  84. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  85. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +6 -14
  86. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  87. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  88. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
  90. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  91. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  92. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  94. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  95. package/artifacts/contracts/{components → product}/Product.sol/Product.json +53 -22
  96. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  97. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  98. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
  100. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -13
  104. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  105. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  106. package/artifacts/contracts/registry/Registry.sol/Registry.json +6 -6
  107. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  108. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +4 -4
  109. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +21 -29
  111. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -40
  113. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +9 -9
  115. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  116. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
  117. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  118. package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
  119. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  120. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +38 -7
  121. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  122. package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +38 -14
  123. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  124. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  125. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +38 -7
  126. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  127. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
  128. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  129. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
  130. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  131. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
  132. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  133. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  134. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  135. package/artifacts/contracts/shared/IService.sol/IService.json +5 -13
  136. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  137. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  138. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +8 -21
  139. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  140. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
  141. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  142. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +20 -33
  143. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -21
  145. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  146. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  147. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  148. package/artifacts/contracts/shared/Service.sol/Service.json +5 -13
  149. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  150. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  151. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  152. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  153. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  154. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  155. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
  156. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
  158. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  159. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
  160. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  161. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  162. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  163. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  164. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  165. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  166. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  167. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  168. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  169. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  170. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  171. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  172. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  173. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  174. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  175. package/artifacts/contracts/{types → type}/NftId.sol/NftIdLib.json +5 -5
  176. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  177. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  178. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  179. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  180. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  181. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  182. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  183. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  184. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  185. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  186. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  187. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  188. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  189. package/artifacts/contracts/{types → type}/Seconds.sol/SecondsLib.json +3 -3
  190. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  191. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  192. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  193. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  194. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  195. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  196. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  197. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  198. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  199. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  200. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  201. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  202. package/contracts/{components → distribution}/Distribution.sol +21 -16
  203. package/contracts/{instance/service → distribution}/DistributionService.sol +91 -178
  204. package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +5 -5
  205. package/contracts/{components → distribution}/IDistributionComponent.sol +7 -7
  206. package/contracts/{instance/service → distribution}/IDistributionService.sol +18 -30
  207. package/contracts/instance/BundleManager.sol +8 -9
  208. package/contracts/instance/IInstance.sol +43 -64
  209. package/contracts/instance/IInstanceService.sol +18 -17
  210. package/contracts/instance/Instance.sol +116 -214
  211. package/contracts/instance/InstanceAccessManager.sol +38 -24
  212. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  213. package/contracts/instance/InstanceReader.sol +95 -18
  214. package/contracts/instance/InstanceService.sol +97 -284
  215. package/contracts/instance/InstanceServiceManager.sol +1 -1
  216. package/contracts/instance/InstanceStore.sol +211 -0
  217. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  218. package/contracts/instance/base/IKeyValueStore.sol +14 -10
  219. package/contracts/instance/base/ILifecycle.sol +3 -3
  220. package/contracts/instance/base/KeyValueStore.sol +31 -43
  221. package/contracts/instance/base/Lifecycle.sol +16 -5
  222. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -7
  223. package/contracts/instance/module/IAccess.sol +2 -2
  224. package/contracts/instance/module/IBundle.sol +5 -5
  225. package/contracts/instance/module/IComponents.sol +8 -8
  226. package/contracts/instance/module/IDistribution.sol +7 -6
  227. package/contracts/instance/module/IPolicy.sol +19 -14
  228. package/contracts/instance/module/IRisk.sol +1 -1
  229. package/contracts/instance/module/ISetup.sol +4 -4
  230. package/contracts/instance/module/ITreasury.sol +2 -2
  231. package/contracts/{instance/service → pool}/BundleService.sol +101 -150
  232. package/contracts/{instance/service → pool}/BundleServiceManager.sol +5 -5
  233. package/contracts/{instance/service → pool}/IBundleService.sol +43 -18
  234. package/contracts/{components → pool}/IPoolComponent.sol +14 -13
  235. package/contracts/{instance/service → pool}/IPoolService.sol +28 -13
  236. package/contracts/{components → pool}/Pool.sol +20 -21
  237. package/contracts/{instance/service → pool}/PoolService.sol +153 -53
  238. package/contracts/{instance/service → pool}/PoolServiceManager.sol +5 -5
  239. package/contracts/product/ApplicationService.sol +186 -0
  240. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +2 -2
  241. package/contracts/product/ClaimService.sol +437 -0
  242. package/contracts/{instance/service → product}/ClaimServiceManager.sol +2 -2
  243. package/contracts/{instance/service → product}/IApplicationService.sol +14 -34
  244. package/contracts/product/IClaimService.sol +90 -0
  245. package/contracts/{instance/service → product}/IPolicyService.sol +34 -26
  246. package/contracts/product/IPricingService.sol +37 -0
  247. package/contracts/{components → product}/IProductComponent.sol +11 -10
  248. package/contracts/{instance/service → product}/IProductService.sol +10 -10
  249. package/contracts/{instance/service → product}/PolicyService.sol +152 -138
  250. package/contracts/{instance/service → product}/PolicyServiceManager.sol +5 -5
  251. package/contracts/product/PricingService.sol +275 -0
  252. package/contracts/product/PricingServiceManager.sol +51 -0
  253. package/contracts/{components → product}/Product.sol +156 -74
  254. package/contracts/{instance/service → product}/ProductService.sol +46 -46
  255. package/contracts/{instance/service → product}/ProductServiceManager.sol +5 -5
  256. package/contracts/registry/IRegistry.sol +4 -4
  257. package/contracts/registry/IRegistryService.sol +4 -6
  258. package/contracts/registry/Registry.sol +3 -3
  259. package/contracts/registry/RegistryAccessManager.sol +1 -1
  260. package/contracts/registry/RegistryService.sol +23 -20
  261. package/contracts/registry/RegistryServiceManager.sol +0 -2
  262. package/contracts/registry/ReleaseManager.sol +5 -5
  263. package/contracts/registry/TokenRegistry.sol +2 -2
  264. package/contracts/{components → shared}/Component.sol +26 -8
  265. package/contracts/{instance/base → shared}/ComponentService.sol +63 -34
  266. package/contracts/{components → shared}/IComponent.sol +19 -5
  267. package/contracts/shared/INftOwnable.sol +1 -1
  268. package/contracts/shared/IPolicyHolder.sol +24 -10
  269. package/contracts/shared/IRegistryLinked.sol +0 -1
  270. package/contracts/shared/IService.sol +3 -1
  271. package/contracts/shared/IVersionable.sol +1 -1
  272. package/contracts/shared/NftOwnable.sol +1 -3
  273. package/contracts/shared/PolicyHolder.sol +31 -18
  274. package/contracts/shared/ProxyManager.sol +3 -3
  275. package/contracts/shared/Registerable.sol +12 -11
  276. package/contracts/shared/RegistryLinked.sol +0 -5
  277. package/contracts/shared/Service.sol +3 -3
  278. package/contracts/shared/TokenHandler.sol +4 -2
  279. package/contracts/shared/Versionable.sol +1 -1
  280. package/contracts/staking/IStakingService.sol +102 -0
  281. package/contracts/staking/StakeingServiceManager.sol +37 -0
  282. package/contracts/staking/StakingService.sol +166 -0
  283. package/contracts/{types → type}/Amount.sol +49 -0
  284. package/contracts/{types → type}/ClaimId.sol +25 -2
  285. package/contracts/{types → type}/Fee.sol +7 -6
  286. package/contracts/{types → type}/NftIdSet.sol +1 -1
  287. package/contracts/{types → type}/ObjectType.sol +10 -5
  288. package/contracts/{types → type}/PayoutId.sol +33 -5
  289. package/contracts/{types → type}/StateId.sol +6 -2
  290. package/contracts/{types → type}/Timestamp.sol +5 -0
  291. package/package.json +1 -1
  292. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  293. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  294. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  295. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  296. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  297. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  298. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  299. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  300. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  301. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  302. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  303. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  304. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  305. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  306. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  307. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  308. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  309. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  310. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  311. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  312. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  313. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  314. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  315. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  316. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  317. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  318. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  319. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  320. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  321. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  322. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  323. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  324. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  325. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  326. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  327. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  328. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  329. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  330. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  331. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  332. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  333. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  334. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  335. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  336. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  337. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  338. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  339. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  340. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  341. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  342. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  343. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  344. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  345. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  346. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  347. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  348. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  349. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  350. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  351. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  352. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  353. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  354. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  355. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  356. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  357. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  358. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  359. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  360. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  361. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  362. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  363. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  364. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  365. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  366. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  367. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  368. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  369. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  370. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  371. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  372. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  373. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  374. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  375. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  376. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  377. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  378. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  379. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  380. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  381. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  382. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  383. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  384. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  385. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  386. package/contracts/instance/service/ApplicationService.sol +0 -350
  387. package/contracts/instance/service/ClaimService.sol +0 -151
  388. package/contracts/instance/service/IClaimService.sol +0 -61
  389. package/contracts/shared/ContractDeployerLib.sol +0 -72
  390. package/contracts/test/TestFee.sol +0 -25
  391. package/contracts/test/TestRegisterable.sol +0 -18
  392. package/contracts/test/TestRoleId.sol +0 -14
  393. package/contracts/test/TestService.sol +0 -25
  394. package/contracts/test/TestToken.sol +0 -26
  395. package/contracts/test/TestVersion.sol +0 -44
  396. package/contracts/test/TestVersionable.sol +0 -17
  397. package/contracts/test/Usdc.sol +0 -26
  398. package/contracts/types/ChainId.sol +0 -38
  399. package/contracts/types/NumberId.sol +0 -52
  400. /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
  401. /package/contracts/{types → type}/AddressSet.sol +0 -0
  402. /package/contracts/{types → type}/Blocknumber.sol +0 -0
  403. /package/contracts/{types → type}/DistributorType.sol +0 -0
  404. /package/contracts/{types → type}/Key32.sol +0 -0
  405. /package/contracts/{types → type}/NftId.sol +0 -0
  406. /package/contracts/{types → type}/Referral.sol +0 -0
  407. /package/contracts/{types → type}/RiskId.sol +0 -0
  408. /package/contracts/{types → type}/RoleId.sol +0 -0
  409. /package/contracts/{types → type}/Seconds.sol +0 -0
  410. /package/contracts/{types → type}/UFixed.sol +0 -0
  411. /package/contracts/{types → type}/Version.sol +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_format": "hh-sol-artifact-1",
3
3
  "contractName": "VersionLib",
4
- "sourceName": "contracts/types/Version.sol",
4
+ "sourceName": "contracts/type/Version.sol",
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [
@@ -170,8 +170,8 @@
170
170
  "type": "function"
171
171
  }
172
172
  ],
173
- "bytecode": "0x61039161003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80638e4ad86c116100655780638e4ad86c1461012157806394aa449c14610144578063a123b37c14610152578063c9e66e291461017957600080fd5b806304b8f6c5146100975780632efe0113146100b357806349a7111a146100c657806355601007146100fd575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61009a6100c136600461026e565b610190565b6100d96100d436600461029a565b610231565b6040805160ff948516815292841660208401529216918101919091526060016100aa565b61011361010b36600461029a565b62ffffff1690565b6040519081526020016100aa565b61013261012f3660046102c6565b90565b60405160ff90911681526020016100aa565b61009a61012f3660046102df565b61016061010b36600461029a565b60405167ffffffffffffffff90911681526020016100aa565b61013261018736600461029a565b60101c60ff1690565b6000610100841080156101a4575061010083105b80156101b1575061010082105b61020c5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b8161021f600885901b601087901b61031f565b610229919061031f565b949350505050565b600080808360ff601082901c166102488383610338565b915061ffff600883901c16600061025f8185610338565b92989197509195509350505050565b60008060006060848603121561028357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156102ac57600080fd5b813562ffffff811681146102bf57600080fd5b9392505050565b6000602082840312156102d857600080fd5b5035919050565b6000602082840312156102f157600080fd5b813567ffffffffffffffff811681146102bf57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561033257610332610309565b92915050565b62ffffff82811682821603908082111561035457610354610309565b509291505056fea2646970667358221220801f2c14b03a7330f0c0f9dce2a4a4bea8603a2ffbea5bb26b7564e07c0d257564736f6c63430008140033",
174
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80638e4ad86c116100655780638e4ad86c1461012157806394aa449c14610144578063a123b37c14610152578063c9e66e291461017957600080fd5b806304b8f6c5146100975780632efe0113146100b357806349a7111a146100c657806355601007146100fd575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61009a6100c136600461026e565b610190565b6100d96100d436600461029a565b610231565b6040805160ff948516815292841660208401529216918101919091526060016100aa565b61011361010b36600461029a565b62ffffff1690565b6040519081526020016100aa565b61013261012f3660046102c6565b90565b60405160ff90911681526020016100aa565b61009a61012f3660046102df565b61016061010b36600461029a565b60405167ffffffffffffffff90911681526020016100aa565b61013261018736600461029a565b60101c60ff1690565b6000610100841080156101a4575061010083105b80156101b1575061010082105b61020c5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b8161021f600885901b601087901b61031f565b610229919061031f565b949350505050565b600080808360ff601082901c166102488383610338565b915061ffff600883901c16600061025f8185610338565b92989197509195509350505050565b60008060006060848603121561028357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156102ac57600080fd5b813562ffffff811681146102bf57600080fd5b9392505050565b6000602082840312156102d857600080fd5b5035919050565b6000602082840312156102f157600080fd5b813567ffffffffffffffff811681146102bf57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561033257610332610309565b92915050565b62ffffff82811682821603908082111561035457610354610309565b509291505056fea2646970667358221220801f2c14b03a7330f0c0f9dce2a4a4bea8603a2ffbea5bb26b7564e07c0d257564736f6c63430008140033",
173
+ "bytecode": "0x61039161003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80638e4ad86c116100655780638e4ad86c1461012157806394aa449c14610144578063a123b37c14610152578063c9e66e291461017957600080fd5b806304b8f6c5146100975780632efe0113146100b357806349a7111a146100c657806355601007146100fd575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61009a6100c136600461026e565b610190565b6100d96100d436600461029a565b610231565b6040805160ff948516815292841660208401529216918101919091526060016100aa565b61011361010b36600461029a565b62ffffff1690565b6040519081526020016100aa565b61013261012f3660046102c6565b90565b60405160ff90911681526020016100aa565b61009a61012f3660046102df565b61016061010b36600461029a565b60405167ffffffffffffffff90911681526020016100aa565b61013261018736600461029a565b60101c60ff1690565b6000610100841080156101a4575061010083105b80156101b1575061010082105b61020c5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b8161021f600885901b601087901b61031f565b610229919061031f565b949350505050565b600080808360ff601082901c166102488383610338565b915061ffff600883901c16600061025f8185610338565b92989197509195509350505050565b60008060006060848603121561028357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156102ac57600080fd5b813562ffffff811681146102bf57600080fd5b9392505050565b6000602082840312156102d857600080fd5b5035919050565b6000602082840312156102f157600080fd5b813567ffffffffffffffff811681146102bf57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561033257610332610309565b92915050565b62ffffff82811682821603908082111561035457610354610309565b509291505056fea26469706673582212201d4dd35474cec161a16fe12e8c428c93b28e9b80e6b379b8fbcd0128635f549264736f6c63430008140033",
174
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80638e4ad86c116100655780638e4ad86c1461012157806394aa449c14610144578063a123b37c14610152578063c9e66e291461017957600080fd5b806304b8f6c5146100975780632efe0113146100b357806349a7111a146100c657806355601007146100fd575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61009a6100c136600461026e565b610190565b6100d96100d436600461029a565b610231565b6040805160ff948516815292841660208401529216918101919091526060016100aa565b61011361010b36600461029a565b62ffffff1690565b6040519081526020016100aa565b61013261012f3660046102c6565b90565b60405160ff90911681526020016100aa565b61009a61012f3660046102df565b61016061010b36600461029a565b60405167ffffffffffffffff90911681526020016100aa565b61013261018736600461029a565b60101c60ff1690565b6000610100841080156101a4575061010083105b80156101b1575061010082105b61020c5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b8161021f600885901b601087901b61031f565b610229919061031f565b949350505050565b600080808360ff601082901c166102488383610338565b915061ffff600883901c16600061025f8185610338565b92989197509195509350505050565b60008060006060848603121561028357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156102ac57600080fd5b813562ffffff811681146102bf57600080fd5b9392505050565b6000602082840312156102d857600080fd5b5035919050565b6000602082840312156102f157600080fd5b813567ffffffffffffffff811681146102bf57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561033257610332610309565b92915050565b62ffffff82811682821603908082111561035457610354610309565b509291505056fea26469706673582212201d4dd35474cec161a16fe12e8c428c93b28e9b80e6b379b8fbcd0128635f549264736f6c63430008140033",
175
175
  "linkReferences": {},
176
176
  "deployedLinkReferences": {}
177
177
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/bf895eb4ea915422885f8c67328da090.json"
4
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_format": "hh-sol-artifact-1",
3
3
  "contractName": "VersionPartLib",
4
- "sourceName": "contracts/types/Version.sol",
4
+ "sourceName": "contracts/type/Version.sol",
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [
@@ -42,8 +42,8 @@
42
42
  "type": "function"
43
43
  }
44
44
  ],
45
- "bytecode": "0x60fb610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220cdee50fe6c9714f8463d3a3d707ceac1b02f5c17b070c998ecfbac805f95cace64736f6c63430008140033",
46
- "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220cdee50fe6c9714f8463d3a3d707ceac1b02f5c17b070c998ecfbac805f95cace64736f6c63430008140033",
45
+ "bytecode": "0x60fb610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220d4e44d0551a02092949fff97b216e1f9b3b93142e68e155f5815f857f381e5e264736f6c63430008140033",
46
+ "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220d4e44d0551a02092949fff97b216e1f9b3b93142e68e155f5815f857f381e5e264736f6c63430008140033",
47
47
  "linkReferences": {},
48
48
  "deployedLinkReferences": {}
49
49
  }
@@ -1,13 +1,13 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.19;
3
3
 
4
- import {DISTRIBUTION} from "../types/ObjectType.sol";
5
- import {IDistributionService} from "../instance/service/IDistributionService.sol";
6
- import {IProductService} from "../instance/service/IProductService.sol";
7
- import {NftId, zeroNftId, NftIdLib, toNftId} from "../types/NftId.sol";
8
- import {ReferralId, ReferralStatus, ReferralLib} from "../types/Referral.sol";
9
- import {Fee, FeeLib} from "../types/Fee.sol";
10
- import {Component} from "./Component.sol";
4
+ import {DISTRIBUTION} from "../type/ObjectType.sol";
5
+ import {IDistributionService} from "./IDistributionService.sol";
6
+ import {IProductService} from "../product/IProductService.sol";
7
+ import {NftId, zeroNftId, NftIdLib, toNftId} from "../type/NftId.sol";
8
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
9
+ import {Fee, FeeLib} from "../type/Fee.sol";
10
+ import {Component} from "../shared/Component.sol";
11
11
  import {IDistribution} from "../instance/module/IDistribution.sol";
12
12
  import {IDistributionComponent} from "./IDistributionComponent.sol";
13
13
  import {IRegistry} from "../registry/IRegistry.sol";
@@ -16,9 +16,9 @@ import {ISetup} from "../instance/module/ISetup.sol";
16
16
  import {Registerable} from "../shared/Registerable.sol";
17
17
  import {TokenHandler} from "../shared/TokenHandler.sol";
18
18
  import {InstanceReader} from "../instance/InstanceReader.sol";
19
- import {UFixed} from "../types/UFixed.sol";
20
- import {DistributorType} from "../types/DistributorType.sol";
21
- import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
19
+ import {UFixed} from "../type/UFixed.sol";
20
+ import {DistributorType} from "../type/DistributorType.sol";
21
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
22
22
  import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
23
 
24
24
 
@@ -37,6 +37,8 @@ abstract contract Distribution is
37
37
  mapping(address distributor => NftId distributorNftId) _distributorNftId;
38
38
  }
39
39
 
40
+ error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
41
+
40
42
  function initializeDistribution(
41
43
  address registry,
42
44
  NftId instanceNftId,
@@ -58,7 +60,7 @@ abstract contract Distribution is
58
60
  $._minDistributionOwnerFee = minDistributionOwnerFee;
59
61
  $._distributionFee = distributionFee;
60
62
  $._tokenHandler = new TokenHandler(token);
61
- $._distributionService = getInstance().getDistributionService();
63
+ $._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
62
64
 
63
65
  registerInterface(type(IDistributionComponent).interfaceId);
64
66
  }
@@ -116,7 +118,9 @@ abstract contract Distribution is
116
118
  returns(NftId distributorNftId)
117
119
  {
118
120
  DistributionStorage storage $ = _getDistributionStorage();
119
- require($._distributorNftId[distributor].eqz(), "ERROR:DST-030:ALREADY_DISTRIBUTOR");
121
+ if($._distributorNftId[distributor].gtz()) {
122
+ revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
123
+ }
120
124
 
121
125
  distributorNftId = $._distributionService.createDistributor(
122
126
  distributor,
@@ -136,10 +140,11 @@ abstract contract Distribution is
136
140
  // and add it
137
141
  {
138
142
  DistributionStorage storage $ = _getDistributionStorage();
139
- $._distributionService.updateDistributorType(
140
- distributorNftId,
141
- distributorType,
142
- data);
143
+ // TODO re-enable once implemented
144
+ // $._distributionService.updateDistributorType(
145
+ // distributorNftId,
146
+ // distributorType,
147
+ // data);
143
148
  }
144
149
 
145
150
  /**
@@ -1,38 +1,41 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.19;
3
3
 
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IInstance} from "../../instance/IInstance.sol";
6
- import {InstanceAccessManager} from "../InstanceAccessManager.sol";
7
- import {InstanceReader} from "../../instance/InstanceReader.sol";
8
- import {ISetup} from "../../instance/module/ISetup.sol";
9
- import {IPolicy} from "../module/IPolicy.sol";
10
-
11
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
12
- import {Fee, FeeLib} from "../../types/Fee.sol";
13
- import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../../types/RoleId.sol";
14
- import {KEEP_STATE} from "../../types/StateId.sol";
15
- import {ObjectType, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR} from "../../types/ObjectType.sol";
16
- import {Version, VersionLib} from "../../types/Version.sol";
17
- import {RoleId} from "../../types/RoleId.sol";
18
-
19
- import {IVersionable} from "../../shared/IVersionable.sol";
20
- import {Versionable} from "../../shared/Versionable.sol";
21
-
22
- import {IService} from "../../shared/IService.sol";
23
- import {Service} from "../../shared/Service.sol";
24
- import {ComponentService} from "../base/ComponentService.sol";
25
- import {InstanceService} from "../InstanceService.sol";
26
- import {IComponent} from "../../components/IComponent.sol";
27
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IInstance} from "../instance/IInstance.sol";
6
+ import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
7
+ import {InstanceReader} from "../instance/InstanceReader.sol";
8
+ import {ISetup} from "../instance/module/ISetup.sol";
9
+ import {IPolicy} from "../instance/module/IPolicy.sol";
10
+
11
+ import {Amount, AmountLib} from "../type/Amount.sol";
12
+ import {NftId, NftIdLib, zeroNftId} from "../type/NftId.sol";
13
+ import {Fee, FeeLib} from "../type/Fee.sol";
14
+ import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../type/RoleId.sol";
15
+ import {KEEP_STATE} from "../type/StateId.sol";
16
+ import {ObjectType, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, PRICE} from "../type/ObjectType.sol";
17
+ import {Version, VersionLib} from "../type/Version.sol";
18
+ import {RoleId} from "../type/RoleId.sol";
19
+
20
+ import {IVersionable} from "../shared/IVersionable.sol";
21
+ import {Versionable} from "../shared/Versionable.sol";
22
+
23
+ import {IService} from "../shared/IService.sol";
24
+ import {Service} from "../shared/Service.sol";
25
+ import {ComponentService} from "../shared/ComponentService.sol";
26
+ import {InstanceService} from "../instance/InstanceService.sol";
27
+ import {IComponent} from "../shared/IComponent.sol";
28
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
28
29
  import {IDistributionService} from "./IDistributionService.sol";
30
+ import {IPricingService} from "../product/IPricingService.sol";
29
31
 
30
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
31
- import {DistributorType, DistributorTypeLib} from "../../types/DistributorType.sol";
32
- import {ReferralId, ReferralStatus, ReferralLib} from "../../types/Referral.sol";
33
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
34
- import {Key32} from "../../types/Key32.sol";
35
- import {IDistribution} from "../module/IDistribution.sol";
32
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
33
+ import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
34
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
35
+ import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
36
+ import {Key32} from "../type/Key32.sol";
37
+ import {IDistribution} from "../instance/module/IDistribution.sol";
38
+ import {InstanceStore} from "../instance/InstanceStore.sol";
36
39
 
37
40
 
38
41
  contract DistributionService is
@@ -87,7 +90,7 @@ contract DistributionService is
87
90
  distribution.linkToRegisteredNftId();
88
91
  distributionNftId = distributionInfo.nftId;
89
92
 
90
- instance.createDistributionSetup(distributionNftId, distribution.getSetupInfo());
93
+ instance.getInstanceStore().createDistributionSetup(distributionNftId, distribution.getSetupInfo());
91
94
  // TODO move to distribution?
92
95
  bytes4[][] memory selectors = new bytes4[][](2);
93
96
  selectors[0] = new bytes4[](1);
@@ -119,14 +122,14 @@ contract DistributionService is
119
122
  revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
120
123
  }
121
124
 
122
- (NftId distributionNftId, IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(DISTRIBUTION());
125
+ (NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
123
126
  InstanceReader instanceReader = instance.getInstanceReader();
124
127
 
125
128
  ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
126
129
  distSetupInfo.minDistributionOwnerFee = minDistributionOwnerFee;
127
130
  distSetupInfo.distributionFee = distributionFee;
128
131
 
129
- instance.updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
132
+ instance.getInstanceStore().updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
130
133
  }
131
134
 
132
135
  function createDistributorType(
@@ -143,7 +146,7 @@ contract DistributionService is
143
146
  external
144
147
  returns (DistributorType distributorType)
145
148
  {
146
- (NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
149
+ (NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
147
150
 
148
151
  {
149
152
  ISetup.DistributionSetupInfo memory setupInfo = instance.getInstanceReader().getDistributionSetupInfo(distributionNftId);
@@ -153,33 +156,33 @@ contract DistributionService is
153
156
  revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
154
157
  }
155
158
  }
156
-
159
+
157
160
  distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
158
- Key32 key32 = distributorType.toKey32();
159
-
160
- if(!instance.exists(key32)) {
161
- IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
162
- name,
163
- minDiscountPercentage,
164
- maxDiscountPercentage,
165
- commissionPercentage,
166
- maxReferralCount,
167
- maxReferralLifetime,
168
- allowSelfReferrals,
169
- allowRenewals,
170
- data);
171
-
172
- instance.createDistributorType(key32, info);
173
- }
161
+ IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
162
+ name,
163
+ minDiscountPercentage,
164
+ maxDiscountPercentage,
165
+ commissionPercentage,
166
+ maxReferralCount,
167
+ maxReferralLifetime,
168
+ allowSelfReferrals,
169
+ allowRenewals,
170
+ data);
171
+
172
+ instance.getInstanceStore().createDistributorType(distributorType, info);
174
173
  }
175
174
 
175
+
176
176
  function createDistributor(
177
177
  address distributor,
178
178
  DistributorType distributorType,
179
179
  bytes memory data
180
- ) external returns (NftId distributorNftId)
180
+ )
181
+ external
182
+ virtual
183
+ returns (NftId distributorNftId)
181
184
  {
182
- (NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
185
+ (NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
183
186
 
184
187
  distributorNftId = getRegistryService().registerDistributor(
185
188
  IRegistry.ObjectInfo(
@@ -196,25 +199,27 @@ contract DistributionService is
196
199
  distributorType,
197
200
  true, // active
198
201
  data,
199
- 0,
202
+ AmountLib.zero(),
200
203
  0);
201
204
 
202
- instance.createDistributor(distributorNftId, info);
205
+ instance.getInstanceStore().createDistributor(distributorNftId, info);
203
206
  }
204
207
 
205
- function updateDistributorType(
206
- NftId distributorNftId,
207
- DistributorType distributorType,
208
- bytes memory data
209
- ) external virtual
210
- {
211
- (, IInstance instance) = _getAndVerifyCallingDistribution();
212
- InstanceReader instanceReader = instance.getInstanceReader();
213
- IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
214
- distributorInfo.distributorType = distributorType;
215
- distributorInfo.data = data;
216
- instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
217
- }
208
+ // function updateDistributorType(
209
+ // NftId distributorNftId,
210
+ // DistributorType distributorType,
211
+ // bytes memory data
212
+ // )
213
+ // external
214
+ // virtual
215
+ // {
216
+ // (, IInstance instance) = _getAndVerifyCallingDistribution();
217
+ // InstanceReader instanceReader = instance.getInstanceReader();
218
+ // IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
219
+ // distributorInfo.distributorType = distributorType;
220
+ // distributorInfo.data = data;
221
+ // instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
222
+ // }
218
223
 
219
224
 
220
225
  function createReferral(
@@ -229,7 +234,7 @@ contract DistributionService is
229
234
  virtual
230
235
  returns (ReferralId referralId)
231
236
  {
232
- (NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
237
+ (NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
233
238
 
234
239
  if (bytes(code).length == 0) {
235
240
  revert ErrorIDistributionServiceInvalidReferral(code);
@@ -239,8 +244,7 @@ contract DistributionService is
239
244
  }
240
245
 
241
246
  InstanceReader instanceReader = instance.getInstanceReader();
242
- IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
243
- DistributorType distributorType = distributorInfo.distributorType;
247
+ DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
244
248
  IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
245
249
 
246
250
  if (distributorTypeData.maxReferralCount < maxReferrals) {
@@ -267,15 +271,15 @@ contract DistributionService is
267
271
  data
268
272
  );
269
273
 
270
- instance.createReferral(referralId.toKey32(), info);
274
+ instance.getInstanceStore().createReferral(referralId, info);
271
275
  return referralId;
272
276
  }
273
277
 
274
278
  function processSale(
275
- NftId distributionNftId,
279
+ NftId distributionNftId, // assume always of distribution type
276
280
  ReferralId referralId,
277
281
  IPolicy.Premium memory premium,
278
- uint256 transferredDistributionFeeAmount
282
+ Amount transferredDistributionFeeAmount
279
283
  )
280
284
  external
281
285
  virtual
@@ -289,104 +293,36 @@ contract DistributionService is
289
293
 
290
294
  IInstance instance = _getInstanceForDistribution(distributionNftId);
291
295
  InstanceReader reader = instance.getInstanceReader();
296
+ InstanceStore store = instance.getInstanceStore();
292
297
  IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
293
298
  IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
294
299
  ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
295
300
 
296
- uint256 distributionOwnerFee = premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount;
297
- uint256 commissionAmount = premium.commissionAmount;
301
+ Amount distributionOwnerFee = AmountLib.toAmount(premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount);
302
+ Amount commissionAmount = AmountLib.toAmount(premium.commissionAmount);
298
303
 
299
- if (transferredDistributionFeeAmount != distributionOwnerFee + commissionAmount) {
300
- revert ErrorIDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
304
+ if (!(transferredDistributionFeeAmount == distributionOwnerFee + commissionAmount)) {
305
+ revert ErrorDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
301
306
  }
302
307
 
303
308
 
304
- if (distributionOwnerFee > 0) {
305
- setupInfo.sumDistributionOwnerFees += distributionOwnerFee;
306
- instance.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
309
+ if (distributionOwnerFee.gtz()) {
310
+ setupInfo.sumDistributionOwnerFees += distributionOwnerFee.toInt();
311
+ store.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
307
312
  }
308
313
 
309
314
  if (isReferral) {
310
315
  referralInfo.usedReferrals += 1;
311
- instance.updateReferral(referralId.toKey32(), referralInfo, KEEP_STATE());
316
+ store.updateReferral(referralId, referralInfo, KEEP_STATE());
312
317
 
313
- if (commissionAmount > 0) {
314
- distributorInfo.sumCommisions += commissionAmount;
318
+ if (commissionAmount.gtz()) {
319
+ distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
315
320
  distributorInfo.numPoliciesSold += 1;
316
- instance.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
321
+ store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
317
322
  }
318
323
  }
319
324
  }
320
325
 
321
- function calculateFeeAmount(
322
- NftId distributionNftId,
323
- ReferralId referralId,
324
- IPolicy.Premium memory premium
325
- )
326
- external
327
- virtual
328
- view
329
- returns (IPolicy.Premium memory finalPremium)
330
- {
331
- IInstance instance = _getInstanceForDistribution(distributionNftId);
332
- InstanceReader reader = instance.getInstanceReader();
333
-
334
- // first calculate all fixed and variable fees for the distribution - this will defined the fullPremium
335
- ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
336
- Fee memory distributionFee = setupInfo.distributionFee;
337
- Fee memory minDistributionOwnerFee = setupInfo.minDistributionOwnerFee;
338
- uint256 distributionFeeVarAmount = (UFixedLib.toUFixed(premium.netPremiumAmount) * distributionFee.fractionalFee).toInt();
339
- premium.distributionFeeVarAmount = distributionFeeVarAmount;
340
- premium.fullPremiumAmount += distributionFeeVarAmount;
341
-
342
- // if the referral is not valid, then the distribution owner gets everything
343
- if (! referralIsValid(distributionNftId, referralId)) {
344
- premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
345
- premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
346
- premium.premiumAmount = premium.fullPremiumAmount;
347
- return premium;
348
- }
349
-
350
- // if the referral is valid, the the commission and discount are calculated based in the full premium
351
- // the remaing amount goes to the distribution owner
352
- {
353
- IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
354
- IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
355
- IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
356
-
357
- uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
358
- premium.commissionAmount = commissionAmount;
359
- premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
360
- premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
361
- premium.distributionOwnerFeeVarAmount = distributionFeeVarAmount - commissionAmount - premium.discountAmount;
362
- premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
363
- }
364
-
365
- // sanity check to validate the fee calculation
366
- if (premium.distributionOwnerFeeFixAmount < minDistributionOwnerFee.fixedFee) {
367
- revert ErrorIDistributionServiceFeeCalculationMismatch(
368
- premium.distributionFeeFixAmount,
369
- premium.distributionFeeVarAmount,
370
- premium.distributionOwnerFeeFixAmount,
371
- premium.distributionOwnerFeeVarAmount,
372
- premium.commissionAmount,
373
- premium.discountAmount
374
- );
375
- }
376
- if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
377
- revert ErrorIDistributionServiceFeeCalculationMismatch(
378
- premium.distributionFeeFixAmount,
379
- premium.distributionFeeVarAmount,
380
- premium.distributionOwnerFeeFixAmount,
381
- premium.distributionOwnerFeeVarAmount,
382
- premium.commissionAmount,
383
- premium.discountAmount
384
- );
385
- }
386
-
387
- return premium;
388
- }
389
-
390
326
  // TODO: zero should return false
391
327
  function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
392
328
  IInstance instance = _getInstanceForDistribution(distributionNftId);
@@ -400,29 +336,6 @@ contract DistributionService is
400
336
  isValid = isValid && info.usedReferrals < info.maxReferrals;
401
337
  }
402
338
 
403
- function _getAndVerifyCallingDistribution()
404
- internal
405
- view
406
- returns(
407
- NftId distributionNftId,
408
- IInstance instance
409
- )
410
- {
411
- distributionNftId = getRegistry().getNftId(msg.sender);
412
- if (distributionNftId.eqz()) {
413
- revert ErrorDistributionServiceCallerNotRegistered(msg.sender);
414
- }
415
-
416
- IRegistry.ObjectInfo memory info = getRegistry().getObjectInfo(distributionNftId);
417
- if(info.objectType != DISTRIBUTION()) {
418
- revert ErrorIDistributionServiceCallerNotDistributor(msg.sender);
419
- }
420
-
421
- address instanceAddress = getRegistry().getObjectInfo(info.parentNftId).objectAddress;
422
- instance = IInstance(instanceAddress);
423
- }
424
-
425
-
426
339
  function _getInstanceForDistribution(NftId distributionNftId)
427
340
  internal
428
341
  view
@@ -432,4 +345,4 @@ contract DistributionService is
432
345
  address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
433
346
  return IInstance(instanceAddress);
434
347
  }
435
- }
348
+ }
@@ -1,12 +1,12 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../shared/IVersionable.sol";
5
+ import {ProxyManager} from "../shared/ProxyManager.sol";
6
6
  import {DistributionService} from "./DistributionService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {REGISTRY} from "../../types/ObjectType.sol";
7
+ import {Registry} from "../registry/Registry.sol";
8
+ import {RegistryService} from "../registry/RegistryService.sol";
9
+ import {REGISTRY} from "../type/ObjectType.sol";
10
10
 
11
11
  contract DistributionServiceManager is ProxyManager {
12
12
 
@@ -1,14 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.19;
3
3
 
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
4
+ import {Fee} from "../type/Fee.sol";
5
+ import {IComponent} from "../shared/IComponent.sol";
6
6
  import {ISetup} from "../instance/module/ISetup.sol";
7
- import {ReferralId, ReferralStatus} from "../types/Referral.sol";
8
- import {NftId} from "../types/NftId.sol";
9
- import {DistributorType} from "../types/DistributorType.sol";
10
- import {UFixed} from "../types/UFixed.sol";
11
- import {Timestamp} from "../types/Timestamp.sol";
7
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {DistributorType} from "../type/DistributorType.sol";
10
+ import {UFixed} from "../type/UFixed.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
12
 
13
13
  interface IDistributionComponent is IComponent {
14
14