@etherisc/gif-next 0.0.2-95f8cce-959 → 0.0.2-9628b30-648

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 (760) hide show
  1. package/README.md +133 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -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 +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +304 -324
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +293 -275
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +534 -340
  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 +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1208 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2572 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  82. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  84. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  85. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +569 -1784
  86. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +523 -74
  88. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  89. package/artifacts/contracts/instance/Instance.sol/Instance.json +644 -2621
  90. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  91. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  92. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  93. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  94. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  95. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2068 -617
  96. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +530 -381
  98. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +202 -171
  100. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  101. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
  102. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  104. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  106. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  108. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  109. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  110. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  111. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  112. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  114. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  115. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  116. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  117. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  118. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  119. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  120. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  121. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  122. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  123. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  125. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -0
  127. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  128. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  129. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  130. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  131. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  132. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +328 -225
  133. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  134. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +272 -241
  135. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  136. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  137. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  139. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +339 -473
  141. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  142. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  143. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  144. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  145. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  147. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  148. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  149. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  150. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  151. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  152. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  153. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  154. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +384 -423
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  156. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  158. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  162. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  164. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  165. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  166. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +475 -483
  167. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  168. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  169. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  170. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  171. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  173. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  174. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +334 -374
  175. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  176. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  177. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  178. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  179. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  180. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +185 -155
  181. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  182. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  183. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  184. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +223 -164
  185. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  186. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  187. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  188. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  189. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  190. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  191. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  192. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  193. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  194. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  195. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  196. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  197. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  198. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  199. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  200. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  201. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  203. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +499 -34
  205. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +315 -109
  207. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  208. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  209. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  211. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.json +987 -131
  213. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  215. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  217. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +390 -250
  219. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +213 -110
  221. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  223. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  225. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  227. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  229. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -137
  231. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  232. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +284 -186
  233. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  235. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  237. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  239. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  245. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  246. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +156 -131
  247. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  248. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +584 -738
  249. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  251. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  252. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +101 -20
  253. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  254. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  255. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +38 -10
  257. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  259. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +163 -3
  261. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  263. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IService.sol/IService.json +98 -5
  265. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  266. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  267. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  268. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  269. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  270. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  271. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  272. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  273. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  274. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  275. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  276. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -70
  277. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  278. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  279. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  280. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +145 -100
  281. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  282. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  283. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  284. package/artifacts/contracts/shared/Service.sol/Service.json +95 -109
  285. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  286. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  289. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  290. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  291. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  292. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
  293. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  294. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  295. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  296. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  297. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  298. package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
  299. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  301. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  302. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  303. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  304. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  305. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  306. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  307. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  308. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  309. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  310. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  311. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  312. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  313. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  314. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  315. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  316. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  317. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  319. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  321. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  323. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  325. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  327. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  329. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  331. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  332. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  333. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  335. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  336. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  337. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  339. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  341. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  343. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  345. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  346. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  347. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  349. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  351. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  352. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  353. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  354. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  355. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  356. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  357. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  358. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  359. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  360. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  361. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  362. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  363. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  364. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  365. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  366. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  367. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  368. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  369. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  370. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  371. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  372. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  373. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  374. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  375. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  376. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  377. package/contracts/accounting/AccountingService.sol +274 -0
  378. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  379. package/contracts/accounting/IAccountingService.sol +47 -0
  380. package/contracts/authorization/AccessAdmin.sol +780 -0
  381. package/contracts/authorization/AccessAdminLib.sol +396 -0
  382. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  383. package/contracts/authorization/Authorization.sol +169 -0
  384. package/contracts/authorization/IAccess.sol +67 -0
  385. package/contracts/authorization/IAccessAdmin.sol +144 -0
  386. package/contracts/authorization/IAuthorization.sol +26 -0
  387. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  388. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  389. package/contracts/distribution/BasicDistribution.sol +141 -0
  390. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  391. package/contracts/distribution/Distribution.sol +247 -0
  392. package/contracts/distribution/DistributionService.sol +448 -0
  393. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  394. package/contracts/distribution/IDistributionComponent.sol +45 -0
  395. package/contracts/distribution/IDistributionService.sol +115 -0
  396. package/contracts/examples/fire/DamageLevel.sol +59 -0
  397. package/contracts/examples/fire/FirePool.sol +86 -0
  398. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  399. package/contracts/examples/fire/FireProduct.sol +433 -0
  400. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  401. package/contracts/examples/fire/FireUSD.sol +26 -0
  402. package/contracts/examples/flight/FlightOracle.sol +160 -0
  403. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  404. package/contracts/examples/flight/FlightPool.sol +89 -0
  405. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  406. package/contracts/examples/flight/FlightProduct.sol +661 -0
  407. package/contracts/examples/flight/FlightProductAuthorization.sol +42 -0
  408. package/contracts/examples/flight/FlightUSD.sol +26 -0
  409. package/contracts/examples/flight/originalV1.sol +396 -0
  410. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  411. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  412. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  413. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  414. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  415. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  416. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  417. package/contracts/instance/BundleSet.sol +130 -0
  418. package/contracts/instance/IInstance.sol +120 -73
  419. package/contracts/instance/IInstanceService.sol +84 -39
  420. package/contracts/instance/Instance.sol +248 -230
  421. package/contracts/instance/InstanceAdmin.sol +383 -0
  422. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  423. package/contracts/instance/InstanceReader.sol +554 -191
  424. package/contracts/instance/InstanceService.sol +384 -379
  425. package/contracts/instance/InstanceServiceManager.sol +14 -29
  426. package/contracts/instance/InstanceStore.sol +298 -0
  427. package/contracts/instance/RiskSet.sol +126 -0
  428. package/contracts/instance/base/BalanceStore.sol +121 -0
  429. package/contracts/instance/base/Cloneable.sol +28 -0
  430. package/contracts/instance/base/ObjectCounter.sol +20 -0
  431. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  432. package/contracts/instance/base/ObjectSet.sol +77 -0
  433. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  434. package/contracts/instance/module/IBundle.sol +9 -11
  435. package/contracts/instance/module/IComponents.sol +44 -23
  436. package/contracts/instance/module/IDistribution.sol +25 -12
  437. package/contracts/instance/module/IPolicy.sol +71 -38
  438. package/contracts/instance/module/IRisk.sol +6 -1
  439. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  440. package/contracts/oracle/BasicOracle.sol +45 -0
  441. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  442. package/contracts/oracle/IOracle.sol +41 -0
  443. package/contracts/oracle/IOracleComponent.sol +33 -0
  444. package/contracts/oracle/IOracleService.sol +66 -0
  445. package/contracts/oracle/Oracle.sol +154 -0
  446. package/contracts/oracle/OracleService.sol +310 -0
  447. package/contracts/oracle/OracleServiceManager.sol +39 -0
  448. package/contracts/pool/BasicPool.sol +162 -0
  449. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  450. package/contracts/pool/BundleService.sol +386 -0
  451. package/contracts/pool/BundleServiceManager.sol +39 -0
  452. package/contracts/pool/IBundleService.sol +116 -0
  453. package/contracts/pool/IPoolComponent.sol +62 -0
  454. package/contracts/pool/IPoolService.sol +170 -0
  455. package/contracts/pool/Pool.sol +333 -0
  456. package/contracts/pool/PoolLib.sol +341 -0
  457. package/contracts/pool/PoolService.sol +614 -0
  458. package/contracts/pool/PoolServiceManager.sol +39 -0
  459. package/contracts/product/ApplicationService.sol +327 -0
  460. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  461. package/contracts/product/BasicProduct.sol +49 -0
  462. package/contracts/product/BasicProductAuthorization.sol +63 -0
  463. package/contracts/product/ClaimService.sol +630 -0
  464. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  465. package/contracts/{instance/service → product}/IApplicationService.sol +41 -35
  466. package/contracts/product/IClaimService.sol +136 -0
  467. package/contracts/product/IPolicyService.sol +102 -0
  468. package/contracts/product/IPricingService.sol +40 -0
  469. package/contracts/product/IProductComponent.sol +62 -0
  470. package/contracts/product/IRiskService.sol +48 -0
  471. package/contracts/product/PolicyService.sol +645 -0
  472. package/contracts/product/PolicyServiceLib.sol +139 -0
  473. package/contracts/product/PolicyServiceManager.sol +39 -0
  474. package/contracts/product/PricingService.sol +306 -0
  475. package/contracts/product/PricingServiceManager.sol +39 -0
  476. package/contracts/product/Product.sol +493 -0
  477. package/contracts/product/RiskService.sol +190 -0
  478. package/contracts/product/RiskServiceManager.sol +39 -0
  479. package/contracts/registry/ChainNft.sol +79 -40
  480. package/contracts/registry/IRegistry.sol +104 -33
  481. package/contracts/registry/IRegistryService.sol +34 -40
  482. package/contracts/registry/IRelease.sol +29 -0
  483. package/contracts/registry/ITransferInterceptor.sol +1 -2
  484. package/contracts/registry/Registry.sol +469 -200
  485. package/contracts/registry/RegistryAdmin.sol +191 -0
  486. package/contracts/registry/RegistryAuthorization.sol +336 -0
  487. package/contracts/registry/RegistryService.sol +90 -131
  488. package/contracts/registry/RegistryServiceManager.sol +23 -32
  489. package/contracts/registry/ReleaseAdmin.sol +195 -0
  490. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  491. package/contracts/registry/ReleaseRegistry.sol +525 -0
  492. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  493. package/contracts/registry/TokenRegistry.sol +265 -64
  494. package/contracts/shared/Component.sol +214 -0
  495. package/contracts/shared/ComponentService.sol +687 -0
  496. package/contracts/shared/ComponentServiceManager.sol +38 -0
  497. package/contracts/shared/ContractLib.sol +312 -0
  498. package/contracts/shared/IComponent.sol +58 -0
  499. package/contracts/shared/IComponentService.sol +111 -0
  500. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  501. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  502. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  503. package/contracts/shared/INftOwnable.sol +6 -2
  504. package/contracts/shared/IPolicyHolder.sol +23 -14
  505. package/contracts/shared/IRegisterable.sol +22 -1
  506. package/contracts/shared/IRegistryLinked.sol +0 -1
  507. package/contracts/shared/IService.sol +12 -5
  508. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  509. package/contracts/shared/InstanceLinkedComponent.sol +234 -0
  510. package/contracts/shared/KeyValueStore.sol +131 -0
  511. package/contracts/shared/Lifecycle.sol +88 -0
  512. package/contracts/shared/NftIdSet.sol +65 -0
  513. package/contracts/shared/NftOwnable.sol +36 -27
  514. package/contracts/shared/PolicyHolder.sol +23 -41
  515. package/contracts/shared/Registerable.sol +52 -20
  516. package/contracts/shared/RegistryLinked.sol +9 -19
  517. package/contracts/shared/Service.sol +36 -41
  518. package/contracts/shared/TokenHandler.sol +322 -13
  519. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  520. package/contracts/staking/IStaking.sol +367 -0
  521. package/contracts/staking/IStakingService.sol +127 -0
  522. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  523. package/contracts/staking/Staking.sol +798 -0
  524. package/contracts/staking/StakingLib.sol +195 -0
  525. package/contracts/staking/StakingManager.sol +53 -0
  526. package/contracts/staking/StakingReader.sol +171 -0
  527. package/contracts/staking/StakingService.sol +321 -0
  528. package/contracts/staking/StakingServiceManager.sol +46 -0
  529. package/contracts/staking/StakingStore.sol +1368 -0
  530. package/contracts/staking/TargetHandler.sol +132 -0
  531. package/contracts/staking/TargetManagerLib.sol +234 -0
  532. package/contracts/{types → type}/AddressSet.sol +1 -1
  533. package/contracts/type/Amount.sol +154 -0
  534. package/contracts/{types → type}/Blocknumber.sol +36 -13
  535. package/contracts/type/ChainId.sol +101 -0
  536. package/contracts/{types → type}/ClaimId.sol +31 -3
  537. package/contracts/{types → type}/Fee.sol +28 -26
  538. package/contracts/{types → type}/Key32.sol +2 -2
  539. package/contracts/type/Key32Set.sol +62 -0
  540. package/contracts/{types → type}/NftId.sol +21 -16
  541. package/contracts/{types → type}/NftIdSet.sol +2 -2
  542. package/contracts/type/ObjectType.sol +307 -0
  543. package/contracts/type/PayoutId.sol +82 -0
  544. package/contracts/{types → type}/Referral.sol +8 -1
  545. package/contracts/type/RequestId.sol +75 -0
  546. package/contracts/type/RequestIdSet.sol +62 -0
  547. package/contracts/type/RiskId.sol +75 -0
  548. package/contracts/type/RoleId.sol +180 -0
  549. package/contracts/type/Seconds.sol +124 -0
  550. package/contracts/type/Selector.sol +107 -0
  551. package/contracts/{types → type}/StateId.sol +47 -4
  552. package/contracts/type/String.sol +65 -0
  553. package/contracts/{types → type}/Timestamp.sol +33 -8
  554. package/contracts/type/UFixed.sol +263 -0
  555. package/contracts/{types → type}/Version.sol +58 -7
  556. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  557. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  558. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  559. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  560. package/package.json +12 -8
  561. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  562. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  563. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  564. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  565. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  566. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  567. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  568. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  569. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  570. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  571. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  572. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  573. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  574. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  575. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  576. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  578. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  580. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  581. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  582. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  583. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  584. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  585. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  587. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  588. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  589. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  590. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  592. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  594. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  596. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  598. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  599. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  600. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  601. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  602. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  603. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  604. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  605. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  606. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -475
  610. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -450
  615. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  617. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  619. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  621. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  623. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  625. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  626. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  627. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  628. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  629. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  630. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  631. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  632. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  633. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  634. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  635. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  636. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  637. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  638. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  639. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  640. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  641. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  643. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  645. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  646. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  647. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  648. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  649. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  650. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  651. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  652. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  653. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  654. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  655. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  656. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  657. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  658. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  659. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  661. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  663. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  665. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  667. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  669. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  671. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  673. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  675. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  676. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  677. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  679. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  681. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  683. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  685. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  687. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  689. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  691. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  693. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  695. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  697. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  699. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  701. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  703. package/contracts/components/Component.sol +0 -253
  704. package/contracts/components/Distribution.sol +0 -280
  705. package/contracts/components/IComponent.sol +0 -76
  706. package/contracts/components/IDistributionComponent.sol +0 -71
  707. package/contracts/components/IPoolComponent.sol +0 -113
  708. package/contracts/components/IProductComponent.sol +0 -40
  709. package/contracts/components/Pool.sol +0 -303
  710. package/contracts/components/Product.sol +0 -293
  711. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  712. package/contracts/instance/BundleManager.sol +0 -127
  713. package/contracts/instance/Cloneable.sol +0 -51
  714. package/contracts/instance/InstanceAccessManager.sol +0 -527
  715. package/contracts/instance/ObjectManager.sol +0 -82
  716. package/contracts/instance/base/ComponentService.sol +0 -121
  717. package/contracts/instance/base/KeyValueStore.sol +0 -180
  718. package/contracts/instance/base/Lifecycle.sol +0 -109
  719. package/contracts/instance/module/IAccess.sol +0 -54
  720. package/contracts/instance/module/ISetup.sol +0 -33
  721. package/contracts/instance/module/ITreasury.sol +0 -23
  722. package/contracts/instance/service/ApplicationService.sol +0 -350
  723. package/contracts/instance/service/BundleService.sol +0 -431
  724. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  725. package/contracts/instance/service/ClaimService.sol +0 -151
  726. package/contracts/instance/service/DistributionService.sol +0 -435
  727. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  728. package/contracts/instance/service/IBundleService.sol +0 -93
  729. package/contracts/instance/service/IClaimService.sol +0 -61
  730. package/contracts/instance/service/IDistributionService.sol +0 -99
  731. package/contracts/instance/service/IPolicyService.sol +0 -72
  732. package/contracts/instance/service/IPoolService.sol +0 -99
  733. package/contracts/instance/service/IProductService.sol +0 -40
  734. package/contracts/instance/service/PolicyService.sol +0 -362
  735. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  736. package/contracts/instance/service/PoolService.sol +0 -303
  737. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  738. package/contracts/instance/service/ProductService.sol +0 -210
  739. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  740. package/contracts/registry/RegistryAccessManager.sol +0 -216
  741. package/contracts/registry/ReleaseManager.sol +0 -324
  742. package/contracts/shared/ContractDeployerLib.sol +0 -72
  743. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  744. package/contracts/test/TestFee.sol +0 -25
  745. package/contracts/test/TestRegisterable.sol +0 -18
  746. package/contracts/test/TestRoleId.sol +0 -14
  747. package/contracts/test/TestService.sol +0 -25
  748. package/contracts/test/TestToken.sol +0 -26
  749. package/contracts/test/TestVersion.sol +0 -44
  750. package/contracts/test/TestVersionable.sol +0 -17
  751. package/contracts/types/Amount.sol +0 -60
  752. package/contracts/types/ChainId.sol +0 -38
  753. package/contracts/types/NumberId.sol +0 -52
  754. package/contracts/types/ObjectType.sol +0 -157
  755. package/contracts/types/PayoutId.sol +0 -54
  756. package/contracts/types/RiskId.sol +0 -43
  757. package/contracts/types/RoleId.sol +0 -97
  758. package/contracts/types/Seconds.sol +0 -54
  759. package/contracts/types/UFixed.sol +0 -326
  760. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,71 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
6
- import {ISetup} from "../instance/module/ISetup.sol";
7
- import {ReferralId, ReferralStatus} from "../types/Referral.sol";
8
- import {NftId} from "../types/NftId.sol";
9
- import {DistributorType} from "../types/DistributorType.sol";
10
- import {UFixed} from "../types/UFixed.sol";
11
- import {Timestamp} from "../types/Timestamp.sol";
12
-
13
- interface IDistributionComponent is IComponent {
14
-
15
- event LogDistributorUpdated(address to, address caller);
16
-
17
- function getSetupInfo() external view returns (ISetup.DistributionSetupInfo memory setupInfo);
18
-
19
- function setFees(
20
- Fee memory minDistributionOwnerFee,
21
- Fee memory distributionFee
22
- ) external;
23
-
24
- function createDistributorType(
25
- string memory name,
26
- UFixed minDiscountPercentage,
27
- UFixed maxDiscountPercentage,
28
- UFixed commissionPercentage,
29
- uint32 maxReferralCount,
30
- uint32 maxReferralLifetime,
31
- bool allowSelfReferrals,
32
- bool allowRenewals,
33
- bytes memory data
34
- ) external returns (DistributorType distributorType);
35
-
36
- function createDistributor(
37
- address distributor,
38
- DistributorType distributorType,
39
- bytes memory data
40
- ) external returns(NftId distributorNftId);
41
-
42
- function updateDistributorType(
43
- NftId distributorNftId,
44
- DistributorType distributorType,
45
- bytes memory data
46
- ) external;
47
-
48
- function calculateRenewalFeeAmount(
49
- ReferralId referralId,
50
- uint256 netPremiumAmount
51
- ) external view returns (uint256 feeAmount);
52
-
53
- /// @dev callback from product service when a policy is renews for a specific referralId
54
- function processRenewal(
55
- ReferralId referralId,
56
- uint256 feeAmount
57
- ) external;
58
-
59
- function getDiscountPercentage(
60
- string memory referralCode
61
- ) external view returns (UFixed discountPercentage, ReferralStatus status);
62
-
63
- function getDistributionFee() external view returns (Fee memory distibutionFee);
64
-
65
- function getReferralId(
66
- string memory referralCode
67
- ) external returns (ReferralId referralId);
68
-
69
- /// @dev returns true iff the component needs to be called when selling/renewing policis
70
- function isVerifying() external view returns (bool verifying);
71
- }
@@ -1,113 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
6
- import {IComponents} from "../instance/module/IComponents.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {RoleId} from "../types/RoleId.sol";
9
- import {Seconds} from "../types/Seconds.sol";
10
- import {UFixed} from "../types/UFixed.sol";
11
-
12
- /// @dev pool components hold and manage the collateral to cover active policies
13
- /// pools come in different flavors
14
- interface IPoolComponent is IComponent {
15
-
16
- error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
17
- error ErrorPoolNotPoolService(address caller);
18
-
19
- error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
20
-
21
- event LogPoolVerifiedByPool(address pool, NftId applicationNftId, uint256 collateralizationAmount);
22
-
23
- /// @dev increases the staked tokens by the specified amount
24
- /// only the bundle owner may stake tokens
25
- /// bundle MUST be in active or locked state
26
- function stake(NftId bundleNftId, uint256 amount) external;
27
-
28
- /// @dev decreases the staked tokens by the specified amount
29
- /// only the bundle owner may unstake tokens from the bundle
30
- /// bundle MUST be in active, locked or closed state
31
- function unstake(NftId bundleNftId, uint256 amount) external;
32
-
33
- /// @dev extends the bundle lifetime of the bundle by the specified time
34
- /// only the bundle owner may extend the bundle's lifetime
35
- /// bundle MUST be in active or locked state
36
- function extend(NftId bundleNftId, Seconds lifetimeExtension) external;
37
-
38
- /// @dev locks the specified bundle
39
- /// a bundle to be locked MUST be in active state
40
- /// locked bundles may not be used to underwrite any new policy
41
- function lockBundle(NftId bundleNftId) external;
42
-
43
- /// @dev unlocks the specified bundle
44
- /// a bundle to be unlocked MUST be in locked state
45
- function unlockBundle(NftId bundleNftId) external;
46
-
47
- /// @dev close the specified bundle
48
- /// a bundle to be closed MUST be in active or locked state
49
- /// to close a bundle all all linked policies MUST be in closed state as well
50
- /// closing a bundle finalizes the bundle bookkeeping including overall profit calculation
51
- /// once a bundle is closed this action cannot be reversed
52
- function close(NftId bundleNftId) external;
53
-
54
- /// @dev sets the fee for the specified bundle
55
- /// the fee is added on top of the poolFee and deducted from the premium amounts
56
- /// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
57
- function setBundleFee(
58
- NftId bundleNftId,
59
- Fee memory fee
60
- ) external;
61
-
62
- /// @dev sets the maximum overall capital amound held by this pool
63
- /// function may only be called by pool owner
64
- function setMaxCapitalAmount(uint256 maxCapitalAmount) external;
65
-
66
- /// @dev sets the required role to create/own bundles
67
- /// may only be called once after setting up a pool
68
- /// may only be called by pool owner
69
- function setBundleOwnerRole(RoleId bundleOwnerRole) external;
70
-
71
- /// @dev update pool fees to the specified values
72
- /// pool fees: are deducted from the premium amount and goes to the pool owner
73
- /// staking fees: are deducted from the staked tokens by a bundle owner and goes to the pool owner
74
- /// performance fees: when a bundle is closed a bundle specific profit is calculated
75
- /// the performance fee is deducted from this profit and goes to the pool owner
76
- function setFees(
77
- Fee memory poolFee,
78
- Fee memory stakingFee,
79
- Fee memory performanceFee
80
- ) external;
81
-
82
- /// @dev this is a callback function that is called by the product service when underwriting a policy.
83
- /// the pool has the option to check the details and object to underwriting by reverting.
84
- /// the function is only called for "active" pools that ask to be involved/notified
85
- /// by product related state changes.
86
- function verifyApplication(
87
- NftId applicationNftId,
88
- bytes memory applicationData,
89
- NftId bundleNftId,
90
- bytes memory bundleFilter,
91
- uint256 collateralizationAmount
92
- ) external;
93
-
94
- /// @dev returns true iff the application matches with the bundle
95
- /// this is a callback function that is only called if a pool declares itself as a verifying pool
96
- /// default implementation returns true
97
- function applicationMatchesBundle(
98
- NftId applicationNftId,
99
- bytes memory applicationData,
100
- NftId bundleNftId,
101
- bytes memory bundleFilter,
102
- uint256 collateralizationAmount
103
- )
104
- external
105
- view
106
- returns (bool isMatching);
107
-
108
- /// @dev returns pool specific infos for this pool
109
- /// when registered with an instance the info is obtained from the data stored in the instance
110
- /// when not registered the function returns the info from the component contract
111
- function getPoolInfo() external view returns (IComponents.PoolInfo memory info);
112
-
113
- }
@@ -1,40 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
6
- import {ISetup} from "../instance/module/ISetup.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {ReferralId} from "../types/Referral.sol";
9
- import {RiskId} from "../types/RiskId.sol";
10
- import {Seconds} from "../types/Seconds.sol";
11
-
12
- interface IProductComponent is IComponent {
13
-
14
- function getSetupInfo() external view returns (ISetup.ProductSetupInfo memory setupInfo);
15
-
16
- function setFees(
17
- Fee memory productFee,
18
- Fee memory processingFee
19
- ) external;
20
-
21
- function calculatePremium(
22
- uint256 sumInsuredAmount,
23
- RiskId riskId,
24
- Seconds lifetime,
25
- bytes memory applicationData,
26
- NftId bundleNftId,
27
- ReferralId referralId
28
- ) external view returns (uint256 premiumAmount);
29
-
30
- function calculateNetPremium(
31
- uint256 sumInsuredAmount,
32
- RiskId riskId,
33
- Seconds lifetime,
34
- bytes memory applicationData
35
- ) external view returns (uint256 netPremiumAmount);
36
-
37
-
38
- function getPoolNftId() external view returns (NftId poolNftId);
39
- function getDistributionNftId() external view returns (NftId distributionNftId);
40
- }
@@ -1,303 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Amount, AmountLib} from "../types/Amount.sol";
5
- import {Component} from "./Component.sol";
6
- import {Fee, FeeLib} from "../types/Fee.sol";
7
- import {IBundleService} from "../instance/service/IBundleService.sol";
8
- import {InstanceReader} from "../instance/InstanceReader.sol";
9
- import {IPoolComponent} from "./IPoolComponent.sol";
10
- import {IPoolService} from "../instance/service/IPoolService.sol";
11
- import {IComponents} from "../instance/module/IComponents.sol";
12
- import {NftId, NftIdLib} from "../types/NftId.sol";
13
- import {POOL} from "../types/ObjectType.sol";
14
- import {RoleId, PUBLIC_ROLE} from "../types/RoleId.sol";
15
- import {Seconds} from "../types/Seconds.sol";
16
- import {TokenHandler} from "../shared/TokenHandler.sol";
17
- import {UFixed, UFixedLib} from "../types/UFixed.sol";
18
-
19
- abstract contract Pool is
20
- Component,
21
- IPoolComponent
22
- {
23
- // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
24
- bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
25
-
26
- struct PoolStorage {
27
- IPoolService _poolService;
28
- IBundleService _bundleService;
29
- }
30
-
31
-
32
- modifier onlyBundleOwner(NftId bundleNftId) {
33
- if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
34
- revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
35
- }
36
- _;
37
- }
38
-
39
-
40
- modifier onlyPoolService() {
41
- if(msg.sender != address(_getPoolStorage()._poolService)) {
42
- revert ErrorPoolNotPoolService(msg.sender);
43
- }
44
- _;
45
- }
46
-
47
-
48
- function initializePool(
49
- address registry,
50
- NftId instanceNftId,
51
- string memory name,
52
- address token,
53
- bool isInterceptingNftTransfers,
54
- address initialOwner,
55
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
56
- )
57
- public
58
- virtual
59
- onlyInitializing()
60
- {
61
- initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
62
-
63
- PoolStorage storage $ = _getPoolStorage();
64
- $._poolService = getInstance().getPoolService();
65
- $._bundleService = getInstance().getBundleService();
66
-
67
- registerInterface(type(IPoolComponent).interfaceId);
68
- }
69
-
70
-
71
- function stake(
72
- NftId bundleNftId,
73
- uint256 amount
74
- )
75
- public
76
- virtual
77
- restricted()
78
- onlyBundleOwner(bundleNftId)
79
- {
80
- // TODO add implementation
81
- }
82
-
83
-
84
- function unstake(
85
- NftId bundleNftId,
86
- uint256 amount
87
- )
88
- public
89
- virtual
90
- restricted()
91
- onlyBundleOwner(bundleNftId)
92
- {
93
- // TODO add implementation
94
- }
95
-
96
-
97
- function extend(
98
- NftId bundleNftId,
99
- Seconds lifetimeExtension
100
- )
101
- public
102
- virtual
103
- restricted()
104
- onlyBundleOwner(bundleNftId)
105
- {
106
- // TODO add implementation
107
- }
108
-
109
-
110
- function lockBundle(NftId bundleNftId)
111
- public
112
- virtual
113
- //restricted() // TODO consider adding this back
114
- onlyBundleOwner(bundleNftId)
115
- {
116
- _getPoolStorage()._bundleService.lock(bundleNftId);
117
- }
118
-
119
-
120
- function unlockBundle(NftId bundleNftId)
121
- public
122
- virtual
123
- //restricted()
124
- onlyBundleOwner(bundleNftId)
125
- {
126
- _getPoolStorage()._bundleService.unlock(bundleNftId);
127
- }
128
-
129
-
130
- function close(NftId bundleNftId)
131
- public
132
- virtual
133
- //restricted()
134
- onlyBundleOwner(bundleNftId)
135
- {
136
- _getPoolStorage()._poolService.closeBundle(bundleNftId);
137
- }
138
-
139
-
140
- function setBundleFee(
141
- NftId bundleNftId,
142
- Fee memory fee
143
- )
144
- public
145
- virtual
146
- restricted()
147
- onlyBundleOwner(bundleNftId)
148
- {
149
- _getPoolStorage()._bundleService.setFee(bundleNftId, fee);
150
- }
151
-
152
-
153
- function setMaxCapitalAmount(uint256 maxCapitalAmount)
154
- public
155
- virtual
156
- restricted()
157
- onlyOwner()
158
- {
159
- _getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
160
- }
161
-
162
-
163
- function setBundleOwnerRole(RoleId bundleOwnerRole)
164
- public
165
- virtual
166
- restricted()
167
- onlyOwner()
168
- {
169
- _getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
170
- }
171
-
172
-
173
- function setFees(
174
- Fee memory poolFee,
175
- Fee memory stakingFee,
176
- Fee memory performanceFee
177
- )
178
- public
179
- virtual
180
- restricted()
181
- onlyOwner()
182
- {
183
- _getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
184
- }
185
-
186
-
187
- /// @dev see {IPool.verifyApplication}
188
- function verifyApplication(
189
- NftId applicationNftId,
190
- bytes memory applicationData,
191
- NftId bundleNftId,
192
- bytes memory bundleFilter,
193
- uint256 collateralizationAmount
194
- )
195
- public
196
- virtual
197
- restricted()
198
- {
199
- if(!applicationMatchesBundle(
200
- applicationNftId,
201
- applicationData,
202
- bundleNftId,
203
- bundleFilter,
204
- collateralizationAmount)
205
- )
206
- {
207
- revert ErrorPoolApplicationBundleMismatch(applicationNftId);
208
- }
209
-
210
- emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
211
- }
212
-
213
-
214
- /// @dev see {IPoolComponent.applicationMatchesBundle}
215
- /// Override this function to implement any custom application verification
216
- /// Default implementation always returns true
217
- function applicationMatchesBundle(
218
- NftId applicationNftId,
219
- bytes memory applicationData,
220
- NftId bundleNftId,
221
- bytes memory bundleFilter,
222
- uint256 collateralizationAmount
223
- )
224
- public
225
- view
226
- virtual override
227
- returns (bool isMatching)
228
- {
229
- return true;
230
- }
231
-
232
-
233
- function getPoolInfo() external view returns (IComponents.PoolInfo memory poolInfo) {
234
- poolInfo = abi.decode(getComponentInfo().data, (IComponents.PoolInfo));
235
- }
236
-
237
- // Internals
238
-
239
- function _createBundle(
240
- address bundleOwner,
241
- Fee memory fee,
242
- Amount amount,
243
- Seconds lifetime,
244
- bytes memory filter
245
- )
246
- internal
247
- returns(NftId bundleNftId)
248
- {
249
- bundleNftId = _getPoolStorage()._poolService.createBundle(
250
- bundleOwner,
251
- fee,
252
- amount,
253
- lifetime,
254
- filter);
255
-
256
- // TODO add logging
257
- }
258
-
259
- // TODO remove function once this is no longer used to produce contract locations on the fly ...
260
- function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
261
- return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
262
- }
263
-
264
- /// @dev defines initial pool specification
265
- /// overwrite this function according to your use case
266
- function _getInitialInfo()
267
- internal
268
- view
269
- virtual override
270
- returns (IComponents.ComponentInfo memory info)
271
- {
272
- return IComponents.ComponentInfo(
273
- getName(),
274
- getToken(),
275
- TokenHandler(address(0)), // will be created by GIF service during registration
276
- address(this), // contract is its own wallet
277
- AmountLib.zero(), // balance amount
278
- AmountLib.zero(), // fee amount
279
- abi.encode(
280
- IComponents.PoolInfo(
281
- NftIdLib.zero(), // will be set when GIF registers the related product
282
- PUBLIC_ROLE(), // bundleOwnerRole
283
- type(uint256).max, // maxCapitalAmount,
284
- 0, // initial balance amount
285
- 0, // initial fee amount
286
- isNftInterceptor(), // isInterceptingBundleTransfers
287
- false, // isExternallyManaged,
288
- false, // isVerifyingApplications,
289
- UFixedLib.toUFixed(1), // collateralizationLevel,
290
- UFixedLib.toUFixed(1), // retentionLevel,
291
- FeeLib.zeroFee(), // initialPoolFee,
292
- FeeLib.zeroFee(), // initialStakingFee,
293
- FeeLib.zeroFee() // initialPerformanceFee,
294
- )));
295
- }
296
-
297
-
298
- function _getPoolStorage() private pure returns (PoolStorage storage $) {
299
- assembly {
300
- $.slot := POOL_STORAGE_LOCATION_V1
301
- }
302
- }
303
- }