@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-ead1eb0-841

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