@etherisc/gif-next 0.0.2-9addcc0-107 → 0.0.2-9b58b75-869

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 (622) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +184 -326
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1571 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +858 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +181 -238
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +171 -274
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +240 -2316
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +203 -46
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +427 -2916
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +518 -352
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -207
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -102
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -219
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +226 -137
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +27 -54
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +169 -286
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +137 -136
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1288 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +31 -2
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +112 -43
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +64 -134
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +14 -56
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/{components → product}/Product.sol/Product.json +316 -238
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +182 -28
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +443 -43
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +374 -72
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -41
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +106 -83
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1640 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +22 -114
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +77 -82
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +977 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  194. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  196. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  199. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  200. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  201. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  202. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1015 -0
  203. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  204. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  205. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  206. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  207. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  208. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  209. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  210. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  211. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  213. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  214. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  215. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
  217. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  218. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -6
  219. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  220. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  221. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  222. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  223. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  224. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  225. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  226. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  227. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  228. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  229. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  230. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  231. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  232. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  233. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  235. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  236. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  237. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  239. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  240. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  241. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  242. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  243. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  244. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  245. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  246. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  247. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  248. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  249. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  250. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  251. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  252. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  253. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  254. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  255. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  256. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  258. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  259. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  260. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  261. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  262. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  263. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  264. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  265. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  267. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  268. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  269. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  271. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  273. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  275. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  277. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  278. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  279. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  281. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  282. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  283. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  285. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  287. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  289. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  291. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  292. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  293. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  294. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  295. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  296. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  297. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  298. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  299. package/contracts/authorization/AccessAdmin.sol +591 -0
  300. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  301. package/contracts/authorization/Authorization.sol +218 -0
  302. package/contracts/authorization/IAccess.sol +48 -0
  303. package/contracts/authorization/IAccessAdmin.sol +136 -0
  304. package/contracts/authorization/IAuthorization.sol +54 -0
  305. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  306. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  307. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  308. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  309. package/contracts/distribution/BasicDistribution.sol +138 -0
  310. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  311. package/contracts/{components → distribution}/Distribution.sol +167 -157
  312. package/contracts/distribution/DistributionService.sol +352 -0
  313. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  314. package/contracts/distribution/IDistributionComponent.sol +52 -0
  315. package/contracts/{instance/service → distribution}/IDistributionService.sol +30 -33
  316. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
  317. package/contracts/instance/IInstance.sol +54 -72
  318. package/contracts/instance/IInstanceService.sol +50 -21
  319. package/contracts/instance/Instance.sol +150 -214
  320. package/contracts/instance/InstanceAdmin.sol +266 -0
  321. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  322. package/contracts/instance/InstanceReader.sol +101 -62
  323. package/contracts/instance/InstanceService.sol +267 -308
  324. package/contracts/instance/InstanceServiceManager.sol +12 -26
  325. package/contracts/instance/InstanceStore.sol +276 -0
  326. package/contracts/instance/base/BalanceStore.sol +123 -0
  327. package/contracts/instance/base/Cloneable.sol +28 -0
  328. package/contracts/instance/base/ObjectCounter.sol +21 -0
  329. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  330. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  331. package/contracts/instance/module/IAccess.sol +4 -12
  332. package/contracts/instance/module/IBundle.sol +6 -9
  333. package/contracts/instance/module/IComponents.sol +19 -9
  334. package/contracts/instance/module/IDistribution.sol +5 -5
  335. package/contracts/instance/module/IPolicy.sol +19 -12
  336. package/contracts/instance/module/IRisk.sol +1 -1
  337. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  338. package/contracts/oracle/BasicOracle.sol +48 -0
  339. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  340. package/contracts/oracle/IOracle.sol +36 -0
  341. package/contracts/oracle/IOracleComponent.sol +33 -0
  342. package/contracts/oracle/IOracleService.sol +65 -0
  343. package/contracts/oracle/Oracle.sol +166 -0
  344. package/contracts/oracle/OracleService.sol +278 -0
  345. package/contracts/oracle/OracleServiceManager.sol +39 -0
  346. package/contracts/pool/BasicPool.sol +164 -0
  347. package/contracts/pool/BasicPoolAuthorization.sol +52 -0
  348. package/contracts/pool/BundleService.sol +284 -0
  349. package/contracts/pool/BundleServiceManager.sol +39 -0
  350. package/contracts/{instance/service → pool}/IBundleService.sol +15 -27
  351. package/contracts/pool/IPoolComponent.sol +51 -0
  352. package/contracts/{instance/service → pool}/IPoolService.sol +57 -21
  353. package/contracts/pool/Pool.sol +311 -0
  354. package/contracts/pool/PoolService.sol +436 -0
  355. package/contracts/pool/PoolServiceManager.sol +39 -0
  356. package/contracts/product/ApplicationService.sol +230 -0
  357. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  358. package/contracts/product/BasicProduct.sol +82 -0
  359. package/contracts/product/BasicProductAuthorization.sol +43 -0
  360. package/contracts/{instance/service → product}/ClaimService.sol +63 -90
  361. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  362. package/contracts/{instance/service → product}/IApplicationService.sol +10 -27
  363. package/contracts/{instance/service → product}/IClaimService.sol +23 -14
  364. package/contracts/{instance/service → product}/IPolicyService.sol +20 -22
  365. package/contracts/product/IPricingService.sol +39 -0
  366. package/contracts/{components → product}/IProductComponent.sol +16 -17
  367. package/contracts/product/IProductService.sol +33 -0
  368. package/contracts/product/PolicyService.sol +475 -0
  369. package/contracts/product/PolicyServiceManager.sol +39 -0
  370. package/contracts/product/PricingService.sol +300 -0
  371. package/contracts/product/PricingServiceManager.sol +39 -0
  372. package/contracts/{components → product}/Product.sol +145 -125
  373. package/contracts/product/ProductService.sol +99 -0
  374. package/contracts/product/ProductServiceManager.sol +39 -0
  375. package/contracts/registry/ChainNft.sol +8 -1
  376. package/contracts/registry/IRegistry.sol +59 -26
  377. package/contracts/registry/IRegistryService.sol +42 -39
  378. package/contracts/registry/Registry.sol +234 -125
  379. package/contracts/registry/RegistryAdmin.sol +365 -0
  380. package/contracts/registry/RegistryService.sol +69 -99
  381. package/contracts/registry/RegistryServiceManager.sol +23 -32
  382. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  383. package/contracts/registry/ReleaseRegistry.sol +485 -0
  384. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  385. package/contracts/registry/TokenRegistry.sol +261 -62
  386. package/contracts/shared/Component.sol +280 -0
  387. package/contracts/shared/ComponentService.sol +622 -0
  388. package/contracts/shared/ComponentServiceManager.sol +35 -0
  389. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  390. package/contracts/shared/ERC165.sol +1 -1
  391. package/contracts/{components → shared}/IComponent.sol +17 -37
  392. package/contracts/shared/IComponentService.sol +112 -0
  393. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  394. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  395. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  396. package/contracts/shared/INftOwnable.sol +2 -2
  397. package/contracts/shared/IService.sol +10 -3
  398. package/contracts/shared/InitializableCustom.sol +177 -0
  399. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  400. package/contracts/shared/KeyValueStore.sol +131 -0
  401. package/contracts/shared/Lifecycle.sol +77 -0
  402. package/contracts/shared/NftIdSet.sol +65 -0
  403. package/contracts/shared/NftOwnable.sol +3 -14
  404. package/contracts/shared/Registerable.sol +3 -3
  405. package/contracts/shared/Service.sol +32 -22
  406. package/contracts/shared/TokenHandler.sol +25 -2
  407. package/contracts/staking/IStaking.sol +167 -0
  408. package/contracts/staking/IStakingService.sol +160 -0
  409. package/contracts/staking/StakeManagerLib.sol +231 -0
  410. package/contracts/staking/Staking.sol +514 -0
  411. package/contracts/staking/StakingLifecycle.sol +23 -0
  412. package/contracts/staking/StakingManager.sol +50 -0
  413. package/contracts/staking/StakingReader.sol +183 -0
  414. package/contracts/staking/StakingService.sol +411 -0
  415. package/contracts/staking/StakingServiceManager.sol +44 -0
  416. package/contracts/staking/StakingStore.sol +605 -0
  417. package/contracts/staking/TargetManagerLib.sol +207 -0
  418. package/contracts/{types → type}/AddressSet.sol +1 -1
  419. package/contracts/{types → type}/Amount.sol +20 -1
  420. package/contracts/{types → type}/Blocknumber.sol +20 -3
  421. package/contracts/{types → type}/Fee.sol +17 -16
  422. package/contracts/{types → type}/NftId.sol +14 -16
  423. package/contracts/{types → type}/NftIdSet.sol +2 -2
  424. package/contracts/type/ObjectType.sol +271 -0
  425. package/contracts/{types → type}/Referral.sol +1 -1
  426. package/contracts/type/RequestId.sol +75 -0
  427. package/contracts/{types → type}/RiskId.sol +1 -1
  428. package/contracts/type/RoleId.sol +174 -0
  429. package/contracts/{types → type}/Seconds.sol +27 -0
  430. package/contracts/type/Selector.sol +102 -0
  431. package/contracts/{types → type}/StateId.sol +27 -2
  432. package/contracts/type/String.sol +53 -0
  433. package/contracts/{types → type}/Timestamp.sol +6 -2
  434. package/contracts/{types → type}/UFixed.sol +6 -0
  435. package/contracts/{types → type}/Version.sol +4 -2
  436. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  437. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  438. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  439. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  440. package/package.json +8 -5
  441. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  442. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  443. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  444. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  445. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  446. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  447. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  448. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  449. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  450. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  451. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  452. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  453. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  454. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  455. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  456. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  457. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  458. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  459. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  460. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  461. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  462. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  463. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  464. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  465. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  466. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  467. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  468. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  469. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1124
  470. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  471. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -688
  472. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  473. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1283
  474. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
  476. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
  478. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
  480. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1847
  482. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -816
  484. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1281
  493. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
  495. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
  497. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
  499. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  501. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  503. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  504. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  505. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  506. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  507. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  508. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  509. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +0 -4
  510. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +0 -189
  511. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  512. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +0 -4
  513. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +0 -302
  514. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  515. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  516. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  517. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  518. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  519. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  521. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  523. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  525. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  527. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  529. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  531. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  533. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  534. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  535. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  536. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  537. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
  539. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  541. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  542. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  543. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  545. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  547. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -312
  549. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  550. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  551. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  553. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  554. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  555. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  557. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  559. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  561. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  563. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  565. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  567. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  569. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  573. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  575. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  577. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  579. package/contracts/components/Component.sol +0 -272
  580. package/contracts/components/IDistributionComponent.sol +0 -71
  581. package/contracts/components/IPoolComponent.sol +0 -114
  582. package/contracts/components/Pool.sol +0 -302
  583. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  584. package/contracts/instance/Cloneable.sol +0 -51
  585. package/contracts/instance/InstanceAccessManager.sol +0 -527
  586. package/contracts/instance/base/ComponentService.sol +0 -130
  587. package/contracts/instance/base/KeyValueStore.sol +0 -149
  588. package/contracts/instance/base/Lifecycle.sol +0 -120
  589. package/contracts/instance/module/ISetup.sol +0 -33
  590. package/contracts/instance/module/ITreasury.sol +0 -23
  591. package/contracts/instance/service/ApplicationService.sol +0 -356
  592. package/contracts/instance/service/BundleService.sol +0 -385
  593. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  594. package/contracts/instance/service/DistributionService.sol +0 -432
  595. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  596. package/contracts/instance/service/IProductService.sol +0 -40
  597. package/contracts/instance/service/PolicyService.sol +0 -372
  598. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  599. package/contracts/instance/service/PoolService.sol +0 -403
  600. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  601. package/contracts/instance/service/ProductService.sol +0 -210
  602. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  603. package/contracts/registry/RegistryAccessManager.sol +0 -216
  604. package/contracts/registry/ReleaseManager.sol +0 -324
  605. package/contracts/shared/ContractDeployerLib.sol +0 -72
  606. package/contracts/shared/IPolicyHolder.sol +0 -40
  607. package/contracts/shared/PolicyHolder.sol +0 -94
  608. package/contracts/test/TestFee.sol +0 -25
  609. package/contracts/test/TestRegisterable.sol +0 -18
  610. package/contracts/test/TestRoleId.sol +0 -14
  611. package/contracts/test/TestService.sol +0 -25
  612. package/contracts/test/TestToken.sol +0 -26
  613. package/contracts/test/TestVersion.sol +0 -44
  614. package/contracts/test/TestVersionable.sol +0 -17
  615. package/contracts/types/ChainId.sol +0 -38
  616. package/contracts/types/NumberId.sol +0 -52
  617. package/contracts/types/ObjectType.sol +0 -157
  618. package/contracts/types/RoleId.sol +0 -97
  619. /package/contracts/{types → type}/ClaimId.sol +0 -0
  620. /package/contracts/{types → type}/DistributorType.sol +0 -0
  621. /package/contracts/{types → type}/Key32.sol +0 -0
  622. /package/contracts/{types → type}/PayoutId.sol +0 -0
@@ -1,432 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IInstance} from "../../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 {Amount, AmountLib} from "../../types/Amount.sol";
12
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
13
- import {Fee, FeeLib} from "../../types/Fee.sol";
14
- import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../../types/RoleId.sol";
15
- import {KEEP_STATE} from "../../types/StateId.sol";
16
- import {ObjectType, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR} from "../../types/ObjectType.sol";
17
- import {Version, VersionLib} from "../../types/Version.sol";
18
- import {RoleId} from "../../types/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 "../base/ComponentService.sol";
26
- import {InstanceService} from "../InstanceService.sol";
27
- import {IComponent} from "../../components/IComponent.sol";
28
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
29
- import {IDistributionService} from "./IDistributionService.sol";
30
-
31
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
32
- import {DistributorType, DistributorTypeLib} from "../../types/DistributorType.sol";
33
- import {ReferralId, ReferralStatus, ReferralLib} from "../../types/Referral.sol";
34
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
35
- import {Key32} from "../../types/Key32.sol";
36
- import {IDistribution} from "../module/IDistribution.sol";
37
-
38
-
39
- contract DistributionService is
40
- ComponentService,
41
- IDistributionService
42
- {
43
- using NftIdLib for NftId;
44
- using TimestampLib for Timestamp;
45
- using UFixedLib for UFixed;
46
- using FeeLib for Fee;
47
- using ReferralLib for ReferralId;
48
-
49
- address internal _registryAddress;
50
-
51
- function _initialize(
52
- address owner,
53
- bytes memory data
54
- )
55
- internal
56
- initializer
57
- virtual override
58
- {
59
- address initialOwner;
60
- address registryAddress;
61
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
62
- // TODO while DistributionService is not deployed in DistributionServiceManager constructor
63
- // owner is DistributionServiceManager deployer
64
- initializeService(registryAddress, address(0), owner);
65
- registerInterface(type(IDistributionService).interfaceId);
66
- }
67
-
68
- function getDomain() public pure override returns(ObjectType) {
69
- return DISTRIBUTION();
70
- }
71
-
72
- function register(address distributionAddress)
73
- external
74
- returns(NftId distributionNftId)
75
- {
76
- (
77
- IComponent component,
78
- address owner,
79
- IInstance instance,
80
- NftId instanceNftId
81
- ) = _checkComponentForRegistration(
82
- distributionAddress,
83
- DISTRIBUTION(),
84
- DISTRIBUTION_OWNER_ROLE());
85
-
86
- IRegistry.ObjectInfo memory distributionInfo = getRegistryService().registerDistribution(component, owner);
87
- IDistributionComponent distribution = IDistributionComponent(distributionAddress);
88
- distribution.linkToRegisteredNftId();
89
- distributionNftId = distributionInfo.nftId;
90
-
91
- instance.createDistributionSetup(distributionNftId, distribution.getSetupInfo());
92
- // TODO move to distribution?
93
- bytes4[][] memory selectors = new bytes4[][](2);
94
- selectors[0] = new bytes4[](1);
95
- selectors[1] = new bytes4[](2);
96
-
97
- selectors[0][0] = IDistributionComponent.setFees.selector;
98
- selectors[1][0] = IDistributionComponent.processRenewal.selector;
99
-
100
- RoleId[] memory roles = new RoleId[](2);
101
- roles[0] = DISTRIBUTION_OWNER_ROLE();
102
- roles[1] = PRODUCT_SERVICE_ROLE();
103
-
104
- getInstanceService().createGifTarget(
105
- instanceNftId,
106
- distributionAddress,
107
- distribution.getName(),
108
- selectors,
109
- roles);
110
- }
111
-
112
- function setFees(
113
- Fee memory minDistributionOwnerFee,
114
- Fee memory distributionFee
115
- )
116
- external
117
- override
118
- {
119
- if (minDistributionOwnerFee.fractionalFee > distributionFee.fractionalFee) {
120
- revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
121
- }
122
-
123
- (NftId distributionNftId, IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(DISTRIBUTION());
124
- InstanceReader instanceReader = instance.getInstanceReader();
125
-
126
- ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
127
- distSetupInfo.minDistributionOwnerFee = minDistributionOwnerFee;
128
- distSetupInfo.distributionFee = distributionFee;
129
-
130
- instance.updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
131
- }
132
-
133
- function createDistributorType(
134
- string memory name,
135
- UFixed minDiscountPercentage,
136
- UFixed maxDiscountPercentage,
137
- UFixed commissionPercentage,
138
- uint32 maxReferralCount,
139
- uint32 maxReferralLifetime,
140
- bool allowSelfReferrals,
141
- bool allowRenewals,
142
- bytes memory data
143
- )
144
- external
145
- returns (DistributorType distributorType)
146
- {
147
- (NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
148
-
149
- {
150
- ISetup.DistributionSetupInfo memory setupInfo = instance.getInstanceReader().getDistributionSetupInfo(distributionNftId);
151
- UFixed variableFeesPartsTotal = setupInfo.minDistributionOwnerFee.fractionalFee.add(commissionPercentage);
152
- UFixed maxDiscountPercentageLimit = setupInfo.distributionFee.fractionalFee.sub(variableFeesPartsTotal);
153
- if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
154
- revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
155
- }
156
- }
157
-
158
- distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
159
- IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
160
- name,
161
- minDiscountPercentage,
162
- maxDiscountPercentage,
163
- commissionPercentage,
164
- maxReferralCount,
165
- maxReferralLifetime,
166
- allowSelfReferrals,
167
- allowRenewals,
168
- data);
169
-
170
- instance.createDistributorType(distributorType, info);
171
- }
172
-
173
-
174
- function createDistributor(
175
- address distributor,
176
- DistributorType distributorType,
177
- bytes memory data
178
- )
179
- external
180
- virtual
181
- returns (NftId distributorNftId)
182
- {
183
- (NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
184
-
185
- distributorNftId = getRegistryService().registerDistributor(
186
- IRegistry.ObjectInfo(
187
- zeroNftId(),
188
- distributionNftId,
189
- DISTRIBUTOR(),
190
- true, // intercepting property for bundles is defined on pool
191
- address(0),
192
- distributor,
193
- ""
194
- ));
195
-
196
- IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
197
- distributorType,
198
- true, // active
199
- data,
200
- AmountLib.zero(),
201
- 0);
202
-
203
- instance.createDistributor(distributorNftId, info);
204
- }
205
-
206
- // function updateDistributorType(
207
- // NftId distributorNftId,
208
- // DistributorType distributorType,
209
- // bytes memory data
210
- // )
211
- // external
212
- // virtual
213
- // {
214
- // (, IInstance instance) = _getAndVerifyCallingDistribution();
215
- // InstanceReader instanceReader = instance.getInstanceReader();
216
- // IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
217
- // distributorInfo.distributorType = distributorType;
218
- // distributorInfo.data = data;
219
- // instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
220
- // }
221
-
222
-
223
- function createReferral(
224
- NftId distributorNftId,
225
- string memory code,
226
- UFixed discountPercentage,
227
- uint32 maxReferrals,
228
- Timestamp expiryAt,
229
- bytes memory data
230
- )
231
- external
232
- virtual
233
- returns (ReferralId referralId)
234
- {
235
- (NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
236
-
237
- if (bytes(code).length == 0) {
238
- revert ErrorIDistributionServiceInvalidReferral(code);
239
- }
240
- if (expiryAt.eqz()) {
241
- revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
242
- }
243
-
244
- InstanceReader instanceReader = instance.getInstanceReader();
245
- DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
246
- IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
247
-
248
- if (distributorTypeData.maxReferralCount < maxReferrals) {
249
- revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
250
- }
251
- if (distributorTypeData.minDiscountPercentage > discountPercentage) {
252
- revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
253
- }
254
- if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
255
- revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
256
- }
257
- if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
258
- revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
259
- }
260
-
261
- referralId = ReferralLib.toReferralId(distributionNftId, code);
262
- IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
263
- distributorNftId,
264
- code,
265
- discountPercentage,
266
- maxReferrals,
267
- 0, // used referrals
268
- expiryAt,
269
- data
270
- );
271
-
272
- instance.createReferral(referralId, info);
273
- return referralId;
274
- }
275
-
276
- function processSale(
277
- NftId distributionNftId,
278
- ReferralId referralId,
279
- IPolicy.Premium memory premium,
280
- Amount transferredDistributionFeeAmount
281
- )
282
- external
283
- virtual
284
- {
285
- bool isReferral = ! referralId.eqz();
286
- bool referralValid = referralIsValid(distributionNftId, referralId);
287
-
288
- if (isReferral && ! referralValid) {
289
- revert ErrorIDistributionServiceReferralInvalid(distributionNftId, referralId);
290
- }
291
-
292
- IInstance instance = _getInstanceForDistribution(distributionNftId);
293
- InstanceReader reader = instance.getInstanceReader();
294
- IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
295
- IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
296
- ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
297
-
298
- Amount distributionOwnerFee = AmountLib.toAmount(premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount);
299
- Amount commissionAmount = AmountLib.toAmount(premium.commissionAmount);
300
-
301
- if (!(transferredDistributionFeeAmount == distributionOwnerFee + commissionAmount)) {
302
- revert ErrorDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
303
- }
304
-
305
-
306
- if (distributionOwnerFee.gtz()) {
307
- setupInfo.sumDistributionOwnerFees += distributionOwnerFee.toInt();
308
- instance.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
309
- }
310
-
311
- if (isReferral) {
312
- referralInfo.usedReferrals += 1;
313
- instance.updateReferral(referralId, referralInfo, KEEP_STATE());
314
-
315
- if (commissionAmount.gtz()) {
316
- distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
317
- distributorInfo.numPoliciesSold += 1;
318
- instance.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
319
- }
320
- }
321
- }
322
-
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 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.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(
357
- reader.getDistributorInfo(
358
- referralInfo.distributorNftId).distributorType);
359
-
360
- uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
361
- premium.commissionAmount = commissionAmount;
362
- premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
363
- premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
364
- premium.distributionOwnerFeeVarAmount = distributionFeeVarAmount - commissionAmount - premium.discountAmount;
365
- premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
366
- }
367
-
368
- // sanity check to validate the fee calculation
369
- if (
370
- premium.distributionOwnerFeeFixAmount < minDistributionOwnerFee.fixedFee
371
- || (premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)
372
- )
373
- {
374
- revert ErrorIDistributionServiceFeeCalculationMismatch(
375
- premium.distributionFeeFixAmount,
376
- premium.distributionFeeVarAmount,
377
- premium.distributionOwnerFeeFixAmount,
378
- premium.distributionOwnerFeeVarAmount,
379
- premium.commissionAmount,
380
- premium.discountAmount
381
- );
382
- }
383
-
384
- return premium;
385
- }
386
-
387
- // TODO: zero should return false
388
- function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
389
- IInstance instance = _getInstanceForDistribution(distributionNftId);
390
- IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
391
-
392
- if (info.distributorNftId.eqz()) {
393
- return false;
394
- }
395
-
396
- isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
397
- isValid = isValid && info.usedReferrals < info.maxReferrals;
398
- }
399
-
400
- function _getAndVerifyCallingDistribution()
401
- internal
402
- view
403
- returns(
404
- NftId distributionNftId,
405
- IInstance instance
406
- )
407
- {
408
- distributionNftId = getRegistry().getNftId(msg.sender);
409
- if (distributionNftId.eqz()) {
410
- revert ErrorDistributionServiceCallerNotRegistered(msg.sender);
411
- }
412
-
413
- IRegistry.ObjectInfo memory info = getRegistry().getObjectInfo(distributionNftId);
414
- if(info.objectType != DISTRIBUTION()) {
415
- revert ErrorIDistributionServiceCallerNotDistributor(msg.sender);
416
- }
417
-
418
- address instanceAddress = getRegistry().getObjectInfo(info.parentNftId).objectAddress;
419
- instance = IInstance(instanceAddress);
420
- }
421
-
422
-
423
- function _getInstanceForDistribution(NftId distributionNftId)
424
- internal
425
- view
426
- returns(IInstance instance)
427
- {
428
- NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
429
- address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
430
- return IInstance(instanceAddress);
431
- }
432
- }
@@ -1,51 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
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";
10
-
11
- contract DistributionServiceManager is ProxyManager {
12
-
13
- DistributionService private _distributionService;
14
-
15
- /// @dev initializes proxy manager with distribution service implementation and deploys instance
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager(registryAddress)
20
- {
21
- DistributionService distSrv = new DistributionService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(distSrv),
25
- data);
26
-
27
- _distributionService = DistributionService(address(versionable));
28
-
29
- // TODO `thi` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _distributionService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_distributionService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_distributionService));
40
- }
41
-
42
- //--- view functions ----------------------------------------------------//
43
- function getDistributionService()
44
- external
45
- view
46
- returns (DistributionService distributionService)
47
- {
48
- return _distributionService;
49
- }
50
-
51
- }
@@ -1,40 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRisk} from "../module/IRisk.sol";
5
- import {IService} from "../../shared/IService.sol";
6
-
7
- import {NftId} from "../../types/NftId.sol";
8
- import {ReferralId} from "../../types/Referral.sol";
9
- import {RiskId} from "../../types/RiskId.sol";
10
- import {StateId} from "../../types/StateId.sol";
11
- import {Timestamp} from "../../types/Timestamp.sol";
12
- import {UFixed} from "../../types/UFixed.sol";
13
- import {Fee} from "../../types/Fee.sol";
14
-
15
- interface IProductService is IService {
16
-
17
- function register(address productAddress) external returns(NftId);
18
-
19
- function setFees(
20
- Fee memory productFee,
21
- Fee memory processingFee
22
- ) external;
23
-
24
- function createRisk(
25
- RiskId riskId,
26
- bytes memory data
27
- ) external;
28
-
29
-
30
- function updateRisk(
31
- RiskId riskId,
32
- bytes memory data
33
- ) external;
34
-
35
-
36
- function updateRiskState(
37
- RiskId riskId,
38
- StateId newState
39
- ) external;
40
- }