@etherisc/gif-next 0.0.2-b28f7c7-340 → 0.0.2-b3a8633-027

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