@etherisc/gif-next 0.0.2-be8b3db-650 → 0.0.2-bf018c6-898

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 (709) hide show
  1. package/README.md +83 -93
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1341 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1092 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +238 -523
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +337 -273
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +329 -334
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +365 -1924
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +329 -79
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +426 -2705
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1800 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1449 -394
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +352 -373
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +157 -106
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +355 -162
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +313 -399
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +820 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +946 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +320 -349
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1309 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1626 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +792 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +456 -434
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1538 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +860 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +208 -167
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1082 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +968 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +249 -277
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +130 -61
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1320 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +480 -26
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +277 -124
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  193. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.json +963 -118
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +352 -260
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1325 -0
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  212. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1597 -0
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +824 -0
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +115 -182
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  228. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +229 -84
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1221 -0
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +247 -250
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  234. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  243. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  245. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.json +148 -18
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +204 -221
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +134 -106
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1067 -0
  277. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1272 -0
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  295. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  335. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  353. package/contracts/accounting/AccountingService.sol +262 -0
  354. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  355. package/contracts/accounting/IAccountingService.sol +45 -0
  356. package/contracts/authorization/AccessAdmin.sol +659 -0
  357. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  358. package/contracts/authorization/Authorization.sol +289 -0
  359. package/contracts/authorization/IAccess.sol +49 -0
  360. package/contracts/authorization/IAccessAdmin.sol +140 -0
  361. package/contracts/authorization/IAuthorization.sol +60 -0
  362. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  363. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  364. package/contracts/distribution/BasicDistribution.sol +139 -0
  365. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  366. package/contracts/{components → distribution}/Distribution.sol +170 -163
  367. package/contracts/distribution/DistributionService.sol +357 -0
  368. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  369. package/contracts/distribution/IDistributionComponent.sol +52 -0
  370. package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -34
  371. package/contracts/examples/fire/DamageLevel.sol +59 -0
  372. package/contracts/examples/fire/FirePool.sol +90 -0
  373. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  374. package/contracts/examples/fire/FireProduct.sol +438 -0
  375. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  376. package/contracts/examples/fire/FireUSD.sol +26 -0
  377. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  378. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  379. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  380. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  381. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  383. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  384. package/contracts/instance/BundleSet.sol +130 -0
  385. package/contracts/instance/IInstance.sol +47 -74
  386. package/contracts/instance/IInstanceService.sol +39 -27
  387. package/contracts/instance/Instance.sol +170 -230
  388. package/contracts/instance/InstanceAdmin.sol +326 -0
  389. package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
  390. package/contracts/instance/InstanceReader.sol +365 -63
  391. package/contracts/instance/InstanceService.sol +291 -376
  392. package/contracts/instance/InstanceServiceManager.sol +14 -29
  393. package/contracts/instance/InstanceStore.sol +298 -0
  394. package/contracts/instance/RiskSet.sol +118 -0
  395. package/contracts/instance/base/BalanceStore.sol +123 -0
  396. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  397. package/contracts/instance/base/ObjectCounter.sol +20 -0
  398. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  399. package/contracts/instance/base/ObjectSet.sol +77 -0
  400. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  401. package/contracts/instance/module/IAccess.sol +19 -20
  402. package/contracts/instance/module/IBundle.sol +8 -9
  403. package/contracts/instance/module/IComponents.sol +28 -12
  404. package/contracts/instance/module/IDistribution.sol +6 -6
  405. package/contracts/instance/module/IPolicy.sol +48 -35
  406. package/contracts/instance/module/IRisk.sol +4 -1
  407. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  408. package/contracts/oracle/BasicOracle.sol +47 -0
  409. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  410. package/contracts/oracle/IOracle.sol +36 -0
  411. package/contracts/oracle/IOracleComponent.sol +33 -0
  412. package/contracts/oracle/IOracleService.sol +66 -0
  413. package/contracts/oracle/Oracle.sol +156 -0
  414. package/contracts/oracle/OracleService.sol +310 -0
  415. package/contracts/oracle/OracleServiceManager.sol +39 -0
  416. package/contracts/pool/BasicPool.sol +175 -0
  417. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  418. package/contracts/pool/BundleService.sol +425 -0
  419. package/contracts/pool/BundleServiceManager.sol +39 -0
  420. package/contracts/pool/IBundleService.sol +121 -0
  421. package/contracts/pool/IPoolComponent.sol +62 -0
  422. package/contracts/pool/IPoolService.sol +153 -0
  423. package/contracts/pool/Pool.sol +345 -0
  424. package/contracts/pool/PoolService.sol +615 -0
  425. package/contracts/pool/PoolServiceManager.sol +39 -0
  426. package/contracts/product/ApplicationService.sol +259 -0
  427. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  428. package/contracts/product/BasicProduct.sol +51 -0
  429. package/contracts/product/BasicProductAuthorization.sol +41 -0
  430. package/contracts/product/ClaimService.sol +708 -0
  431. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  432. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  433. package/contracts/product/IClaimService.sol +136 -0
  434. package/contracts/product/IPolicyService.sol +90 -0
  435. package/contracts/product/IPricingService.sol +39 -0
  436. package/contracts/product/IProductComponent.sol +62 -0
  437. package/contracts/product/IRiskService.sol +33 -0
  438. package/contracts/product/PolicyService.sol +736 -0
  439. package/contracts/product/PolicyServiceManager.sol +39 -0
  440. package/contracts/product/PricingService.sol +304 -0
  441. package/contracts/product/PricingServiceManager.sol +39 -0
  442. package/contracts/product/Product.sol +463 -0
  443. package/contracts/product/RiskService.sol +151 -0
  444. package/contracts/product/RiskServiceManager.sol +39 -0
  445. package/contracts/registry/ChainNft.sol +79 -36
  446. package/contracts/registry/IRegistry.sol +95 -30
  447. package/contracts/registry/IRegistryService.sol +36 -41
  448. package/contracts/registry/IRelease.sol +26 -0
  449. package/contracts/registry/ITransferInterceptor.sol +1 -1
  450. package/contracts/registry/Registry.sol +467 -203
  451. package/contracts/registry/RegistryAdmin.sol +344 -0
  452. package/contracts/registry/RegistryService.sol +89 -131
  453. package/contracts/registry/RegistryServiceManager.sol +23 -32
  454. package/contracts/registry/ReleaseAdmin.sol +245 -0
  455. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  456. package/contracts/registry/ReleaseRegistry.sol +511 -0
  457. package/contracts/registry/ServiceAuthorizationV3.sol +242 -0
  458. package/contracts/registry/TokenRegistry.sol +261 -64
  459. package/contracts/shared/Component.sol +226 -0
  460. package/contracts/shared/ComponentService.sol +700 -0
  461. package/contracts/shared/ComponentServiceManager.sol +38 -0
  462. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  463. package/contracts/shared/ContractLib.sol +252 -0
  464. package/contracts/shared/IComponent.sol +61 -0
  465. package/contracts/shared/IComponentService.sol +116 -0
  466. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  467. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  468. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  469. package/contracts/shared/INftOwnable.sol +4 -2
  470. package/contracts/shared/IPolicyHolder.sol +23 -14
  471. package/contracts/shared/IRegisterable.sol +23 -1
  472. package/contracts/shared/IRegistryLinked.sol +0 -1
  473. package/contracts/shared/IService.sol +12 -7
  474. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  475. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  476. package/contracts/shared/KeyValueStore.sol +131 -0
  477. package/contracts/shared/Lifecycle.sol +88 -0
  478. package/contracts/shared/NftIdSet.sol +65 -0
  479. package/contracts/shared/NftOwnable.sol +34 -27
  480. package/contracts/shared/PolicyHolder.sol +22 -41
  481. package/contracts/shared/Registerable.sol +55 -20
  482. package/contracts/shared/RegistryLinked.sol +9 -19
  483. package/contracts/shared/Service.sol +36 -29
  484. package/contracts/shared/TokenHandler.sol +368 -12
  485. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  486. package/contracts/staking/IStaking.sol +173 -0
  487. package/contracts/staking/IStakingService.sol +157 -0
  488. package/contracts/staking/StakeManagerLib.sol +224 -0
  489. package/contracts/staking/Staking.sol +526 -0
  490. package/contracts/staking/StakingLifecycle.sol +23 -0
  491. package/contracts/staking/StakingManager.sol +52 -0
  492. package/contracts/staking/StakingReader.sol +190 -0
  493. package/contracts/staking/StakingService.sol +439 -0
  494. package/contracts/staking/StakingServiceManager.sol +44 -0
  495. package/contracts/staking/StakingStore.sol +605 -0
  496. package/contracts/staking/TargetManagerLib.sol +211 -0
  497. package/contracts/{types → type}/AddressSet.sol +1 -1
  498. package/contracts/type/Amount.sol +150 -0
  499. package/contracts/{types → type}/Blocknumber.sol +26 -3
  500. package/contracts/{types → type}/ClaimId.sol +31 -3
  501. package/contracts/{types → type}/Fee.sol +33 -24
  502. package/contracts/{types → type}/Key32.sol +2 -2
  503. package/contracts/type/Key32Set.sol +62 -0
  504. package/contracts/{types → type}/NftId.sol +21 -16
  505. package/contracts/{types → type}/NftIdSet.sol +2 -2
  506. package/contracts/type/ObjectType.sol +290 -0
  507. package/contracts/type/PayoutId.sol +82 -0
  508. package/contracts/{types → type}/Referral.sol +2 -1
  509. package/contracts/type/RequestId.sol +75 -0
  510. package/contracts/type/RiskId.sol +74 -0
  511. package/contracts/type/RoleId.sol +165 -0
  512. package/contracts/type/Seconds.sol +101 -0
  513. package/contracts/type/Selector.sol +102 -0
  514. package/contracts/{types → type}/StateId.sol +47 -4
  515. package/contracts/type/String.sol +53 -0
  516. package/contracts/{types → type}/Timestamp.sol +20 -6
  517. package/contracts/{types → type}/UFixed.sol +40 -121
  518. package/contracts/{types → type}/Version.sol +19 -7
  519. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  520. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  521. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  522. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  523. package/package.json +11 -7
  524. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  525. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  526. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  528. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  531. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  532. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  533. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -783
  534. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  535. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  536. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  537. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  539. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  544. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  546. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  549. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  551. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  553. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  555. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  557. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  559. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  561. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1724
  563. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -801
  565. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  569. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  573. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  576. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  578. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -816
  580. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  584. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  586. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  587. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  588. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  589. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  590. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  591. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  593. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  594. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  596. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  597. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  598. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  599. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  602. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  604. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  606. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  608. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  610. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  612. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  614. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  615. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  616. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  617. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  618. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  620. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  622. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  624. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  626. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  628. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  630. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  632. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  633. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  634. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  636. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  638. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  640. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  642. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  644. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  646. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  648. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  650. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  652. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  654. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  656. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  658. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  660. package/contracts/components/Component.sol +0 -241
  661. package/contracts/components/IComponent.sol +0 -74
  662. package/contracts/components/IDistributionComponent.sol +0 -71
  663. package/contracts/components/IPoolComponent.sol +0 -113
  664. package/contracts/components/IProductComponent.sol +0 -40
  665. package/contracts/components/Pool.sol +0 -299
  666. package/contracts/components/Product.sol +0 -293
  667. package/contracts/instance/BundleManager.sol +0 -127
  668. package/contracts/instance/InstanceAccessManager.sol +0 -297
  669. package/contracts/instance/ObjectManager.sol +0 -84
  670. package/contracts/instance/base/ComponentService.sol +0 -134
  671. package/contracts/instance/base/KeyValueStore.sol +0 -175
  672. package/contracts/instance/base/Lifecycle.sol +0 -109
  673. package/contracts/instance/module/ISetup.sol +0 -33
  674. package/contracts/instance/module/ITreasury.sol +0 -23
  675. package/contracts/instance/service/ApplicationService.sol +0 -350
  676. package/contracts/instance/service/BundleService.sol +0 -336
  677. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  678. package/contracts/instance/service/ClaimService.sol +0 -151
  679. package/contracts/instance/service/DistributionService.sol +0 -450
  680. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  681. package/contracts/instance/service/IBundleService.sol +0 -62
  682. package/contracts/instance/service/IClaimService.sol +0 -61
  683. package/contracts/instance/service/IPolicyService.sol +0 -72
  684. package/contracts/instance/service/IPoolService.sol +0 -35
  685. package/contracts/instance/service/IProductService.sol +0 -40
  686. package/contracts/instance/service/PolicyService.sol +0 -403
  687. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  688. package/contracts/instance/service/PoolService.sol +0 -163
  689. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  690. package/contracts/instance/service/ProductService.sol +0 -233
  691. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  692. package/contracts/registry/RegistryAccessManager.sol +0 -216
  693. package/contracts/registry/ReleaseManager.sol +0 -322
  694. package/contracts/shared/ContractDeployerLib.sol +0 -72
  695. package/contracts/test/TestFee.sol +0 -25
  696. package/contracts/test/TestRegisterable.sol +0 -18
  697. package/contracts/test/TestRoleId.sol +0 -14
  698. package/contracts/test/TestService.sol +0 -25
  699. package/contracts/test/TestToken.sol +0 -26
  700. package/contracts/test/TestVersion.sol +0 -44
  701. package/contracts/test/TestVersionable.sol +0 -17
  702. package/contracts/types/ChainId.sol +0 -38
  703. package/contracts/types/NumberId.sol +0 -52
  704. package/contracts/types/ObjectType.sol +0 -157
  705. package/contracts/types/PayoutId.sol +0 -54
  706. package/contracts/types/RiskId.sol +0 -43
  707. package/contracts/types/RoleId.sol +0 -95
  708. package/contracts/types/Seconds.sol +0 -54
  709. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,450 +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 {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
-
18
- import {IVersionable} from "../../shared/IVersionable.sol";
19
- import {Versionable} from "../../shared/Versionable.sol";
20
-
21
- import {IService} from "../../shared/IService.sol";
22
- import {Service} from "../../shared/Service.sol";
23
- import {ComponentService} from "../base/ComponentService.sol";
24
- import {InstanceService} from "../InstanceService.sol";
25
- import {IComponent} from "../../components/IComponent.sol";
26
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
27
- import {IDistributionService} from "./IDistributionService.sol";
28
-
29
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
30
- import {DistributorType, DistributorTypeLib} from "../../types/DistributorType.sol";
31
- import {ReferralId, ReferralStatus, ReferralLib} from "../../types/Referral.sol";
32
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
33
- import {Key32} from "../../types/Key32.sol";
34
- import {IDistribution} from "../module/IDistribution.sol";
35
-
36
-
37
- contract DistributionService is
38
- ComponentService,
39
- IDistributionService
40
- {
41
- using NftIdLib for NftId;
42
- using TimestampLib for Timestamp;
43
- using UFixedLib for UFixed;
44
- using FeeLib for Fee;
45
- using ReferralLib for ReferralId;
46
-
47
- address internal _registryAddress;
48
-
49
- function _initialize(
50
- address owner,
51
- bytes memory data
52
- )
53
- internal
54
- initializer
55
- virtual override
56
- {
57
- address initialOwner;
58
- address registryAddress;
59
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
60
- // TODO while DistributionService is not deployed in DistributionServiceManager constructor
61
- // owner is DistributionServiceManager deployer
62
- initializeService(registryAddress, owner);
63
- registerInterface(type(IDistributionService).interfaceId);
64
- }
65
-
66
- function getDomain() public pure override(Service, IService) returns(ObjectType) {
67
- return DISTRIBUTION();
68
- }
69
-
70
- function register(address distributionAddress)
71
- external
72
- returns(NftId distributionNftId)
73
- {
74
- (
75
- IComponent component,
76
- address owner,
77
- IInstance instance,
78
- NftId instanceNftId
79
- ) = _checkComponentForRegistration(
80
- distributionAddress,
81
- DISTRIBUTION(),
82
- DISTRIBUTION_OWNER_ROLE());
83
-
84
- IRegistry.ObjectInfo memory distributionInfo = getRegistryService().registerDistribution(component, owner);
85
- IDistributionComponent distribution = IDistributionComponent(distributionAddress);
86
- distribution.linkToRegisteredNftId();
87
- distributionNftId = distributionInfo.nftId;
88
-
89
- instance.createDistributionSetup(distributionNftId, distribution.getSetupInfo());
90
- getInstanceService().createGifTarget(instanceNftId, distributionAddress, distribution.getName());
91
- getInstanceService().grantDistributionDefaultPermissions(instanceNftId, distributionAddress, distribution.getName());
92
- }
93
-
94
- function setFees(
95
- Fee memory minDistributionOwnerFee,
96
- Fee memory distributionFee
97
- )
98
- external
99
- override
100
- {
101
- if (minDistributionOwnerFee.fractionalFee > distributionFee.fractionalFee) {
102
- revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
103
- }
104
-
105
- (IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(DISTRIBUTION());
106
- InstanceReader instanceReader = instance.getInstanceReader();
107
- NftId distributionNftId = info.nftId;
108
-
109
- ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
110
- distSetupInfo.minDistributionOwnerFee = minDistributionOwnerFee;
111
- distSetupInfo.distributionFee = distributionFee;
112
-
113
- instance.updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
114
- }
115
-
116
- function createDistributorType(
117
- string memory name,
118
- UFixed minDiscountPercentage,
119
- UFixed maxDiscountPercentage,
120
- UFixed commissionPercentage,
121
- uint32 maxReferralCount,
122
- uint32 maxReferralLifetime,
123
- bool allowSelfReferrals,
124
- bool allowRenewals,
125
- bytes memory data
126
- )
127
- external
128
- returns (DistributorType distributorType)
129
- {
130
- (,NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
131
-
132
- {
133
- ISetup.DistributionSetupInfo memory setupInfo = instance.getInstanceReader().getDistributionSetupInfo(distributionNftId);
134
- UFixed variableFeesPartsTotal = setupInfo.minDistributionOwnerFee.fractionalFee.add(commissionPercentage);
135
- UFixed maxDiscountPercentageLimit = setupInfo.distributionFee.fractionalFee.sub(variableFeesPartsTotal);
136
- if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
137
- revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
138
- }
139
- }
140
-
141
- distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
142
- Key32 key32 = distributorType.toKey32();
143
-
144
- if(!instance.exists(key32)) {
145
- IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
146
- name,
147
- minDiscountPercentage,
148
- maxDiscountPercentage,
149
- commissionPercentage,
150
- maxReferralCount,
151
- maxReferralLifetime,
152
- allowSelfReferrals,
153
- allowRenewals,
154
- data);
155
-
156
- instance.createDistributorType(key32, info);
157
- }
158
- }
159
-
160
- function createDistributor(
161
- address distributor,
162
- DistributorType distributorType,
163
- bytes memory data
164
- ) external returns (NftId distributorNftId)
165
- {
166
- (, NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
167
-
168
- distributorNftId = getRegistryService().registerDistributor(
169
- IRegistry.ObjectInfo(
170
- zeroNftId(),
171
- distributionNftId,
172
- DISTRIBUTOR(),
173
- true, // intercepting property for bundles is defined on pool
174
- address(0),
175
- distributor,
176
- ""
177
- ));
178
-
179
- IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
180
- distributorType,
181
- true, // active
182
- data,
183
- 0,
184
- 0);
185
-
186
- instance.createDistributor(distributorNftId, info);
187
- }
188
-
189
- function updateDistributorType(
190
- NftId distributorNftId,
191
- DistributorType distributorType,
192
- bytes memory data
193
- ) external virtual
194
- {
195
- (,, IInstance instance) = _getAndVerifyCallingDistribution();
196
- InstanceReader instanceReader = instance.getInstanceReader();
197
- IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
198
- distributorInfo.distributorType = distributorType;
199
- distributorInfo.data = data;
200
- instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
201
- }
202
-
203
-
204
- function createReferral(
205
- NftId distributorNftId,
206
- string memory code,
207
- UFixed discountPercentage,
208
- uint32 maxReferrals,
209
- Timestamp expiryAt,
210
- bytes memory data
211
- )
212
- external
213
- virtual
214
- returns (ReferralId referralId)
215
- {
216
- (,NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
217
-
218
- if (bytes(code).length == 0) {
219
- revert ErrorIDistributionServiceInvalidReferral(code);
220
- }
221
- if (expiryAt.eqz()) {
222
- revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
223
- }
224
-
225
- InstanceReader instanceReader = instance.getInstanceReader();
226
- IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
227
- DistributorType distributorType = distributorInfo.distributorType;
228
- IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
229
-
230
- if (distributorTypeData.maxReferralCount < maxReferrals) {
231
- revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
232
- }
233
- if (distributorTypeData.minDiscountPercentage > discountPercentage) {
234
- revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
235
- }
236
- if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
237
- revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
238
- }
239
- if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
240
- revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
241
- }
242
-
243
- referralId = ReferralLib.toReferralId(distributionNftId, code);
244
- IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
245
- distributorNftId,
246
- code,
247
- discountPercentage,
248
- maxReferrals,
249
- 0, // used referrals
250
- expiryAt,
251
- data
252
- );
253
-
254
- instance.createReferral(referralId.toKey32(), info);
255
- return referralId;
256
- }
257
-
258
- function processSale(
259
- NftId distributionNftId,
260
- ReferralId referralId,
261
- IPolicy.Premium memory premium,
262
- uint256 transferredDistributionFeeAmount
263
- )
264
- external
265
- virtual
266
- {
267
- bool isReferral = ! referralId.eqz();
268
- bool referralValid = referralIsValid(distributionNftId, referralId);
269
-
270
- if (isReferral && ! referralValid) {
271
- revert ErrorIDistributionServiceReferralInvalid(distributionNftId, referralId);
272
- }
273
-
274
- (, IInstance instance) = _getAndVerifyDistribution(distributionNftId);
275
- InstanceReader reader = instance.getInstanceReader();
276
- IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
277
- IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
278
- ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
279
-
280
- uint256 distributionOwnerFee = premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount;
281
- uint256 commissionAmount = premium.commissionAmount;
282
-
283
- if (transferredDistributionFeeAmount != distributionOwnerFee + commissionAmount) {
284
- revert ErrorIDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
285
- }
286
-
287
-
288
- if (distributionOwnerFee > 0) {
289
- setupInfo.sumDistributionOwnerFees += distributionOwnerFee;
290
- instance.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
291
- }
292
-
293
- if (isReferral) {
294
- referralInfo.usedReferrals += 1;
295
- instance.updateReferral(referralId.toKey32(), referralInfo, KEEP_STATE());
296
-
297
- if (commissionAmount > 0) {
298
- distributorInfo.sumCommisions += commissionAmount;
299
- distributorInfo.numPoliciesSold += 1;
300
- instance.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
301
- }
302
- }
303
- }
304
-
305
- function calculateFeeAmount(
306
- NftId distributionNftId,
307
- ReferralId referralId,
308
- IPolicy.Premium memory premium
309
- )
310
- external
311
- virtual
312
- view
313
- returns (IPolicy.Premium memory finalPremium)
314
- {
315
- (, IInstance instance) = _getAndVerifyDistribution(distributionNftId);
316
- InstanceReader reader = instance.getInstanceReader();
317
-
318
- // first calculate all fixed and variable fees for the distribution - this will defined the fullPremium
319
- ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
320
- Fee memory distributionFee = setupInfo.distributionFee;
321
- Fee memory minDistributionOwnerFee = setupInfo.minDistributionOwnerFee;
322
- uint256 distributionFeeVarAmount = (UFixedLib.toUFixed(premium.netPremiumAmount) * distributionFee.fractionalFee).toInt();
323
- premium.distributionFeeVarAmount = distributionFeeVarAmount;
324
- premium.fullPremiumAmount += distributionFeeVarAmount;
325
-
326
- // if the referral is not valid, then the distribution owner gets everything
327
- if (! referralIsValid(distributionNftId, referralId)) {
328
- premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
329
- premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
330
- premium.premiumAmount = premium.fullPremiumAmount;
331
- return premium;
332
- }
333
-
334
- // if the referral is valid, the the commission and discount are calculated based in the full premium
335
- // the remaing amount goes to the distribution owner
336
- {
337
- IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
338
- IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
339
- IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
340
-
341
- uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
342
- premium.commissionAmount = commissionAmount;
343
- premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
344
- premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
345
- premium.distributionOwnerFeeVarAmount = distributionFeeVarAmount - commissionAmount - premium.discountAmount;
346
- premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
347
- }
348
-
349
- // sanity check to validate the fee calculation
350
- if (premium.distributionOwnerFeeFixAmount < minDistributionOwnerFee.fixedFee) {
351
- revert ErrorIDistributionServiceFeeCalculationMismatch(
352
- premium.distributionFeeFixAmount,
353
- premium.distributionFeeVarAmount,
354
- premium.distributionOwnerFeeFixAmount,
355
- premium.distributionOwnerFeeVarAmount,
356
- premium.commissionAmount,
357
- premium.discountAmount
358
- );
359
- }
360
- if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
361
- revert ErrorIDistributionServiceFeeCalculationMismatch(
362
- premium.distributionFeeFixAmount,
363
- premium.distributionFeeVarAmount,
364
- premium.distributionOwnerFeeFixAmount,
365
- premium.distributionOwnerFeeVarAmount,
366
- premium.commissionAmount,
367
- premium.discountAmount
368
- );
369
- }
370
-
371
- return premium;
372
- }
373
-
374
- // TODO: zero should return false
375
- function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
376
- (address distributionAddress, IInstance instance) = _getAndVerifyDistribution(distributionNftId);
377
- IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
378
-
379
- if (info.distributorNftId.eqz()) {
380
- return false;
381
- }
382
-
383
- isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
384
- isValid = isValid && info.usedReferrals < info.maxReferrals;
385
- }
386
-
387
- function _getAndVerifyCallingDistribution()
388
- internal
389
- view
390
- returns(
391
- address distributionAddress,
392
- NftId distributionNftId,
393
- IInstance instance
394
- )
395
- {
396
- ObjectType objectType;
397
- (
398
- distributionAddress,
399
- distributionNftId,
400
- objectType,
401
- instance
402
- ) = _getAndVerifyCaller();
403
-
404
- if(objectType != DISTRIBUTION()) {
405
- revert ErrorIDistributionServiceCallerNotDistributor(msg.sender);
406
- }
407
- }
408
-
409
- function _getAndVerifyDistribution(NftId distributionNftId)
410
- internal
411
- view
412
- returns(
413
- address distributionAddress,
414
- IInstance instance
415
- )
416
- {
417
- IRegistry.ObjectInfo memory info = getRegistry().getObjectInfo(distributionNftId);
418
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(info.parentNftId);
419
- if (parentInfo.objectType != INSTANCE()) {
420
- revert ErrorIDistributionServiceParentNftIdNotInstance(distributionNftId, info.parentNftId);
421
- }
422
- instance = IInstance(parentInfo.objectAddress);
423
- }
424
-
425
- function _getAndVerifyCaller()
426
- internal
427
- view
428
- returns(
429
- address objectAddress,
430
- NftId objectNftId,
431
- ObjectType objectType,
432
- IInstance instance
433
- )
434
- {
435
- objectAddress = msg.sender;
436
- objectNftId = getRegistry().getNftId(objectAddress);
437
- if ( objectNftId.eqz()) {
438
- revert ErrorIServiceCallerUnknown(objectAddress);
439
- }
440
- IRegistry.ObjectInfo memory info = getRegistry().getObjectInfo(objectNftId);
441
- objectType = info.objectType;
442
-
443
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(info.parentNftId);
444
- if (parentInfo.objectType != INSTANCE()) {
445
- revert ErrorIDistributionServiceParentNftIdNotInstance(objectNftId, info.parentNftId);
446
- }
447
- instance = IInstance(parentInfo.objectAddress);
448
- }
449
-
450
- }
@@ -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,62 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../types/NftId.sol";
5
- import {Fee} from "../../types/Fee.sol";
6
- import {IService} from "../../shared/IService.sol";
7
- import {IBundle} from "../module/IBundle.sol";
8
- import {IInstance} from "../../instance/IInstance.sol";
9
- import {Seconds} from "../../types/Seconds.sol";
10
- import {StateId} from "../../types/StateId.sol";
11
-
12
- interface IBundleService is IService {
13
-
14
- event LogBundleServiceBundleActivated(NftId bundleNftId);
15
- event LogBundleServiceBundleLocked(NftId bundleNftId);
16
- event LogBundleServiceBundleClosed(NftId bundleNftId);
17
-
18
- error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, uint256 amount);
19
- error ErrorBundleServiceBundleNotOpen(NftId bundleNftId, StateId state);
20
- error ErrorBundleServiceBundleWithOpenPolicies(NftId bundleNftId, uint256 openPoliciesCount);
21
-
22
- function create(
23
- address owner,
24
- Fee memory fee,
25
- uint256 amount,
26
- Seconds lifetime,
27
- bytes calldata filter
28
- ) external returns(NftId bundleNftId);
29
-
30
-
31
- function setFee(
32
- NftId bundleNftId,
33
- Fee memory fee
34
- ) external;
35
-
36
-
37
- function lockCollateral(
38
- IInstance instanceNftId,
39
- NftId policyNftId,
40
- NftId bundleNftId,
41
- uint256 collateralAmount,
42
- uint256 netPremium
43
- )
44
- external
45
- returns (
46
- IBundle.BundleInfo memory bundleInfo
47
- );
48
-
49
- function increaseBalance(IInstance instance, NftId bundleNftId, uint256 amount) external;
50
-
51
- function closePolicy(IInstance instance, NftId policyNftId, NftId bundleNftId, uint256 collateralAmount) external;
52
-
53
- // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
54
-
55
- // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
56
-
57
- function lock(NftId bundleNftId) external;
58
-
59
- function unlock(NftId bundleNftId) external;
60
-
61
- function close(NftId bundleNftId) external;
62
- }
@@ -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
- }