@etherisc/gif-next 0.0.2-9620cae-586 → 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 (589) hide show
  1. package/README.md +103 -9
  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 +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  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 +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +212 -473
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -381
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +814 -399
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +228 -124
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +135 -187
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +582 -141
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1208 -0
  53. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  57. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  59. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2572 -0
  61. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  63. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  65. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  81. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  82. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  83. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  84. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -67
  85. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  86. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +385 -60
  87. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  88. package/artifacts/contracts/instance/Instance.sol/Instance.json +573 -165
  89. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  90. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1034 -311
  91. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  92. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
  93. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1798 -793
  95. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -231
  97. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
  99. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +983 -782
  101. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  102. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  103. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  104. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  105. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  106. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  107. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  108. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  109. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  110. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  111. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  112. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  114. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  115. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  116. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  117. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  118. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  119. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  120. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  121. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +152 -350
  123. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +424 -37
  125. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  127. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +129 -129
  128. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  130. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +128 -318
  132. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  134. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  136. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  137. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +198 -433
  138. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  139. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  140. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  141. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +574 -270
  142. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +216 -104
  144. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  145. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +383 -53
  146. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  147. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +158 -212
  148. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  149. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  150. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  151. package/artifacts/contracts/pool/Pool.sol/Pool.json +148 -392
  152. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  153. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  154. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  155. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  156. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  157. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +230 -106
  158. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  159. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  160. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  161. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +159 -99
  162. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  163. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +287 -427
  164. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  165. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  166. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  167. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  168. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
  170. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  171. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  172. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  173. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  174. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  175. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
  176. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  177. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  178. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  179. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +272 -222
  180. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  181. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  182. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  183. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
  184. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  185. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  186. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  187. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -108
  188. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  189. package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
  190. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
  192. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  193. package/artifacts/contracts/product/Product.sol/Product.json +279 -419
  194. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  195. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  196. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  197. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  198. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  200. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  202. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  204. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  205. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  206. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  208. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  210. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  211. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -377
  212. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  213. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  214. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  216. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  218. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  220. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  221. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  222. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  224. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  226. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  228. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Component.sol/Component.json +86 -277
  230. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +624 -560
  232. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  233. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +198 -120
  234. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  235. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  236. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  237. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  238. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  239. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  240. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  242. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -93
  244. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +535 -240
  246. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +118 -129
  248. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +42 -6
  250. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  252. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  253. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  254. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  256. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  258. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  261. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  262. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  263. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  264. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -318
  265. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  266. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +48 -7
  267. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  269. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  270. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  271. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  272. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  273. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  274. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  275. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  276. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  277. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  278. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  279. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  280. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  281. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  282. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  283. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  284. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  285. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  286. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  287. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  288. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1510 -191
  289. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  290. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  291. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  292. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  293. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  294. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -455
  295. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  296. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  297. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +191 -105
  299. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  301. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  302. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  303. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  304. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  305. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  306. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1643 -783
  307. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  308. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  309. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  310. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +184 -76
  311. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  312. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  314. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  316. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  318. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  320. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  322. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  324. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  326. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  327. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  328. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  330. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  331. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  332. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  334. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  336. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  338. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  340. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  341. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  342. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  344. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  346. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +112 -2
  348. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  350. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  352. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  354. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  356. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +56 -5
  358. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
  360. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  362. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  364. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  365. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  366. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  367. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  368. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  369. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  370. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  371. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  372. package/contracts/accounting/AccountingService.sol +274 -0
  373. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  374. package/contracts/accounting/IAccountingService.sol +47 -0
  375. package/contracts/authorization/AccessAdmin.sol +458 -269
  376. package/contracts/authorization/AccessAdminLib.sol +396 -0
  377. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  378. package/contracts/authorization/Authorization.sol +159 -208
  379. package/contracts/authorization/IAccess.sol +25 -6
  380. package/contracts/authorization/IAccessAdmin.sol +87 -79
  381. package/contracts/authorization/IAuthorization.sol +9 -37
  382. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  383. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  384. package/contracts/distribution/BasicDistribution.sol +22 -30
  385. package/contracts/distribution/BasicDistributionAuthorization.sol +34 -10
  386. package/contracts/distribution/Distribution.sol +48 -84
  387. package/contracts/distribution/DistributionService.sol +276 -130
  388. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  389. package/contracts/distribution/IDistributionComponent.sol +11 -14
  390. package/contracts/distribution/IDistributionService.sol +56 -26
  391. package/contracts/examples/fire/DamageLevel.sol +59 -0
  392. package/contracts/examples/fire/FirePool.sol +86 -0
  393. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  394. package/contracts/examples/fire/FireProduct.sol +433 -0
  395. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  396. package/contracts/examples/fire/FireUSD.sol +26 -0
  397. package/contracts/examples/flight/FlightOracle.sol +160 -0
  398. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  399. package/contracts/examples/flight/FlightPool.sol +89 -0
  400. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  401. package/contracts/examples/flight/FlightProduct.sol +661 -0
  402. package/contracts/examples/flight/FlightProductAuthorization.sol +42 -0
  403. package/contracts/examples/flight/FlightUSD.sol +26 -0
  404. package/contracts/examples/flight/originalV1.sol +396 -0
  405. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  406. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  407. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  408. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  409. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  410. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  411. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  412. package/contracts/instance/BundleSet.sol +42 -38
  413. package/contracts/instance/IInstance.sol +102 -43
  414. package/contracts/instance/IInstanceService.sol +59 -34
  415. package/contracts/instance/Instance.sol +193 -100
  416. package/contracts/instance/InstanceAdmin.sol +275 -158
  417. package/contracts/instance/InstanceAuthorizationV3.sol +120 -56
  418. package/contracts/instance/InstanceReader.sol +500 -251
  419. package/contracts/instance/InstanceService.sol +293 -236
  420. package/contracts/instance/InstanceServiceManager.sol +8 -13
  421. package/contracts/instance/InstanceStore.sol +24 -2
  422. package/contracts/instance/RiskSet.sol +126 -0
  423. package/contracts/instance/base/BalanceStore.sol +4 -6
  424. package/contracts/instance/base/ObjectCounter.sol +1 -2
  425. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  426. package/contracts/instance/base/ObjectSet.sol +31 -33
  427. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  428. package/contracts/instance/module/IBundle.sol +6 -5
  429. package/contracts/instance/module/IComponents.sol +30 -20
  430. package/contracts/instance/module/IDistribution.sol +21 -9
  431. package/contracts/instance/module/IPolicy.sol +50 -29
  432. package/contracts/instance/module/IRisk.sol +5 -0
  433. package/contracts/mock/Dip.sol +1 -1
  434. package/contracts/oracle/BasicOracle.sol +2 -5
  435. package/contracts/oracle/BasicOracleAuthorization.sol +14 -8
  436. package/contracts/oracle/IOracle.sol +9 -4
  437. package/contracts/oracle/IOracleComponent.sol +2 -1
  438. package/contracts/oracle/IOracleService.sol +14 -13
  439. package/contracts/oracle/Oracle.sol +23 -26
  440. package/contracts/oracle/OracleService.sol +119 -87
  441. package/contracts/oracle/OracleServiceManager.sol +8 -11
  442. package/contracts/pool/BasicPool.sol +39 -41
  443. package/contracts/pool/BasicPoolAuthorization.sol +43 -11
  444. package/contracts/pool/BundleService.sol +218 -128
  445. package/contracts/pool/BundleServiceManager.sol +8 -11
  446. package/contracts/pool/IBundleService.sol +43 -33
  447. package/contracts/pool/IPoolComponent.sol +20 -10
  448. package/contracts/pool/IPoolService.sol +97 -77
  449. package/contracts/pool/Pool.sol +146 -124
  450. package/contracts/pool/PoolLib.sol +341 -0
  451. package/contracts/pool/PoolService.sol +419 -256
  452. package/contracts/pool/PoolServiceManager.sol +6 -9
  453. package/contracts/product/ApplicationService.sol +153 -80
  454. package/contracts/product/ApplicationServiceManager.sol +6 -6
  455. package/contracts/product/BasicProduct.sol +13 -46
  456. package/contracts/product/BasicProductAuthorization.sol +33 -10
  457. package/contracts/product/ClaimService.sol +382 -194
  458. package/contracts/product/ClaimServiceManager.sol +6 -6
  459. package/contracts/product/IApplicationService.sol +29 -3
  460. package/contracts/product/IClaimService.sol +48 -11
  461. package/contracts/product/IPolicyService.sol +61 -37
  462. package/contracts/product/IPricingService.sol +11 -10
  463. package/contracts/product/IProductComponent.sol +28 -5
  464. package/contracts/product/IRiskService.sol +48 -0
  465. package/contracts/product/PolicyService.sol +443 -273
  466. package/contracts/product/PolicyServiceLib.sol +139 -0
  467. package/contracts/product/PolicyServiceManager.sol +6 -9
  468. package/contracts/product/PricingService.sol +90 -84
  469. package/contracts/product/PricingServiceManager.sol +6 -9
  470. package/contracts/product/Product.sol +201 -100
  471. package/contracts/product/RiskService.sol +190 -0
  472. package/contracts/product/RiskServiceManager.sol +39 -0
  473. package/contracts/registry/ChainNft.sol +72 -40
  474. package/contracts/registry/IRegistry.sol +70 -32
  475. package/contracts/registry/IRegistryService.sol +5 -12
  476. package/contracts/registry/IRelease.sol +29 -0
  477. package/contracts/registry/ITransferInterceptor.sol +1 -2
  478. package/contracts/registry/Registry.sol +367 -207
  479. package/contracts/registry/RegistryAdmin.sol +114 -288
  480. package/contracts/registry/RegistryAuthorization.sol +336 -0
  481. package/contracts/registry/RegistryService.sol +42 -67
  482. package/contracts/registry/RegistryServiceManager.sol +5 -5
  483. package/contracts/registry/ReleaseAdmin.sol +195 -0
  484. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  485. package/contracts/registry/ReleaseRegistry.sol +279 -241
  486. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  487. package/contracts/registry/TokenRegistry.sol +61 -59
  488. package/contracts/shared/Component.sol +70 -137
  489. package/contracts/shared/ComponentService.sol +452 -346
  490. package/contracts/shared/ComponentServiceManager.sol +10 -7
  491. package/contracts/shared/ContractLib.sol +312 -0
  492. package/contracts/shared/IComponent.sol +6 -18
  493. package/contracts/shared/IComponentService.sol +50 -41
  494. package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
  495. package/contracts/shared/IKeyValueStore.sol +1 -1
  496. package/contracts/shared/ILifecycle.sol +3 -1
  497. package/contracts/shared/INftOwnable.sol +4 -0
  498. package/contracts/shared/IPolicyHolder.sol +12 -22
  499. package/contracts/shared/IRegisterable.sol +22 -1
  500. package/contracts/shared/IService.sol +4 -6
  501. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  502. package/contracts/shared/InstanceLinkedComponent.sol +132 -49
  503. package/contracts/shared/KeyValueStore.sol +4 -4
  504. package/contracts/shared/Lifecycle.sol +15 -4
  505. package/contracts/shared/NftOwnable.sol +33 -11
  506. package/contracts/shared/PolicyHolder.sol +20 -59
  507. package/contracts/shared/Registerable.sol +52 -21
  508. package/contracts/shared/RegistryLinked.sol +9 -14
  509. package/contracts/shared/Service.sol +22 -38
  510. package/contracts/shared/TokenHandler.sol +310 -26
  511. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  512. package/contracts/staking/IStaking.sol +272 -72
  513. package/contracts/staking/IStakingService.sol +45 -78
  514. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  515. package/contracts/staking/Staking.sol +533 -246
  516. package/contracts/staking/StakingLib.sol +195 -0
  517. package/contracts/staking/StakingManager.sol +14 -14
  518. package/contracts/staking/StakingReader.sol +72 -87
  519. package/contracts/staking/StakingService.sol +62 -152
  520. package/contracts/staking/StakingServiceManager.sol +9 -7
  521. package/contracts/staking/StakingStore.sol +1094 -341
  522. package/contracts/staking/TargetHandler.sol +132 -0
  523. package/contracts/staking/TargetManagerLib.sol +73 -46
  524. package/contracts/type/Amount.sol +31 -5
  525. package/contracts/type/Blocknumber.sol +22 -16
  526. package/contracts/type/ChainId.sol +101 -0
  527. package/contracts/type/ClaimId.sol +6 -1
  528. package/contracts/type/Fee.sol +8 -8
  529. package/contracts/type/Key32.sol +2 -2
  530. package/contracts/type/Key32Set.sol +62 -0
  531. package/contracts/type/NftId.sol +7 -0
  532. package/contracts/type/ObjectType.sol +73 -37
  533. package/contracts/type/PayoutId.sol +10 -10
  534. package/contracts/type/Referral.sol +7 -0
  535. package/contracts/type/RequestIdSet.sol +62 -0
  536. package/contracts/type/RiskId.sol +38 -6
  537. package/contracts/type/RoleId.sol +61 -55
  538. package/contracts/type/Seconds.sol +44 -1
  539. package/contracts/type/Selector.sol +5 -0
  540. package/contracts/type/StateId.sol +15 -1
  541. package/contracts/type/String.sol +12 -0
  542. package/contracts/type/Timestamp.sol +24 -8
  543. package/contracts/type/UFixed.sol +57 -126
  544. package/contracts/type/Version.sol +54 -5
  545. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  546. package/contracts/{shared → upgradeability}/ProxyManager.sol +96 -49
  547. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  548. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  549. package/package.json +5 -4
  550. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  551. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  552. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  553. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  554. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  555. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  556. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  557. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  558. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  559. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  560. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  561. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  562. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  563. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  564. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  565. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  566. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  567. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  568. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  569. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  570. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  571. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  572. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  573. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  574. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  575. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  576. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  577. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  578. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  579. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  580. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  581. package/contracts/instance/module/IAccess.sol +0 -46
  582. package/contracts/product/IProductService.sol +0 -33
  583. package/contracts/product/ProductService.sol +0 -124
  584. package/contracts/product/ProductServiceManager.sol +0 -42
  585. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  586. package/contracts/shared/InitializableCustom.sol +0 -177
  587. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  588. package/contracts/staking/StakeManagerLib.sol +0 -231
  589. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,37 +1,51 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {NftId} from "../type/NftId.sol";
6
- import {Fee} from "../type/Fee.sol";
7
4
  import {IPolicy} from "../instance/module/IPolicy.sol";
8
5
  import {IService} from "../shared/IService.sol";
9
- import {UFixed} from "../type/UFixed.sol";
6
+
7
+ import {Amount} from "../type/Amount.sol";
10
8
  import {DistributorType} from "../type/DistributorType.sol";
11
- import {ReferralId} from "../type/Referral.sol";
9
+ import {InstanceReader} from "../instance/InstanceReader.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
12
13
  import {Timestamp} from "../type/Timestamp.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
13
15
 
14
16
 
15
17
  interface IDistributionService is IService {
16
-
17
18
  error ErrorDistributionServiceCallerNotRegistered(address caller);
18
- error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
19
- error ErrorIDistributionServiceCallerNotDistributor(address caller);
20
- error ErrorIDistributionServiceInvalidReferralId(ReferralId referralId);
21
- error ErrorIDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
22
- error ErrorIDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
23
- error ErrorIDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
24
- error ErrorIDistributionServiceExpiryTooLong(uint256 maxReferralLifetime, uint256 expiryAt);
25
- error ErrorIDistributionServiceInvalidReferral(string code);
26
- error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
27
- error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
28
- error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
19
+ error ErrorDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
20
+ error ErrorDistributionServiceCallerNotDistributor(address caller);
21
+ error ErrorDistributionServiceInvalidReferralId(ReferralId referralId);
22
+ error ErrorDistributionServiceMaxReferralsExceeded(uint256 limit, uint256 maxReferrals);
23
+ error ErrorDistributionServiceDiscountTooLow(UFixed minDiscountPercentage, UFixed discountPercentage);
24
+ error ErrorDistributionServiceDiscountTooHigh(UFixed maxDiscountPercentage, UFixed discountPercentage);
25
+ error ErrorDistributionServiceExpiryTooLong(Seconds maxReferralLifetime, Timestamp expiryAt);
26
+ error ErrorDistributionServiceInvalidReferral();
27
+ error ErrorDistributionServiceExpirationInvalid(Timestamp expiryAt);
28
+ error ErrorDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
29
+ error ErrorDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
30
+ error ErrorDistributionServiceDistributorTypeDistributionMismatch(DistributorType distributorType, NftId distributorTypeDistributionNftId, NftId distributionNftId);
31
+ error ErrorDistributionServiceDistributorDistributionMismatch(NftId distributorNftId, NftId distributorDistributionNftId, NftId distributionNftId);
29
32
 
33
+ error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
34
+
30
35
  error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
31
36
  error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
32
37
 
33
- error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
38
+ error ErrorDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
34
39
  error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
40
+ error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
41
+
42
+ event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
43
+ event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name);
44
+ event LogDistributionServiceDistributorCreated(NftId distributionNftId, NftId distributorNftId, DistributorType distributorType, address distributor);
45
+ event LogDistributionServiceDistributorTypeChanged(NftId distributorNftId, DistributorType oldDistributorType, DistributorType newDistributorType);
46
+ event LogDistributionServiceReferralCreated(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, string code);
47
+ event LogDistributionServiceReferralProcessed(NftId distributionNftId, NftId distributorNftId, ReferralId referralId, uint32 usedReferrals);
48
+ event LogDistributionServiceSaleProcessed(NftId distributionNftId, ReferralId referralId);
35
49
 
36
50
  function createDistributorType(
37
51
  string memory name,
@@ -39,7 +53,7 @@ interface IDistributionService is IService {
39
53
  UFixed maxDiscountPercentage,
40
54
  UFixed commissionPercentage,
41
55
  uint32 maxReferralCount,
42
- uint32 maxReferralLifetime,
56
+ Seconds maxReferralLifetime,
43
57
  bool allowSelfReferrals,
44
58
  bool allowRenewals,
45
59
  bytes memory data
@@ -53,12 +67,11 @@ interface IDistributionService is IService {
53
67
  bytes memory data
54
68
  ) external returns (NftId distributorNftId);
55
69
 
56
- // TODO re-enable and reorganize (service contract too large)
57
- // function updateDistributorType(
58
- // NftId distributorNftId,
59
- // DistributorType distributorType,
60
- // bytes memory data
61
- // ) external;
70
+ function changeDistributorType(
71
+ NftId distributorNftId,
72
+ DistributorType newDistributorType,
73
+ bytes memory data
74
+ ) external;
62
75
 
63
76
  function createReferral(
64
77
  NftId distributorNftId,
@@ -71,15 +84,32 @@ interface IDistributionService is IService {
71
84
  external
72
85
  returns (ReferralId referralId);
73
86
 
87
+ /// @dev callback from product service when a referral is used.
88
+ /// Calling this will increment the referral usage counter.
89
+ function processReferral(
90
+ NftId distributionNftId,
91
+ ReferralId referralId
92
+ ) external;
93
+
74
94
  /// @dev callback from product service when selling a policy for a specific referralId
75
95
  function processSale(
76
96
  NftId distributionNftId,
77
97
  ReferralId referralId,
78
- IPolicy.Premium memory premium
98
+ IPolicy.PremiumInfo memory premium
79
99
  ) external;
80
100
 
81
101
  function referralIsValid(
82
102
  NftId distributorNftId,
83
103
  ReferralId referralId
84
104
  ) external view returns (bool isValid);
105
+
106
+ /// @dev Withdraw commission for the distributor
107
+ /// @param distributorNftId the distributor Nft Id
108
+ /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
109
+ /// @return withdrawnAmount the effective withdrawn amount
110
+ function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
111
+
112
+ /// @dev Returns the discount percentage for the provided referral code.
113
+ /// The function retuns both the percentage and the status of the referral code.
114
+ function getDiscountPercentage(InstanceReader instanceReader, ReferralId referralId) external view returns (UFixed discountPercentage, ReferralStatus status);
85
115
  }
@@ -0,0 +1,59 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type DamageLevel is uint8;
5
+
6
+ // type bindings
7
+ using {
8
+ DamageLevelLib.eq,
9
+ DamageLevelLib.eqz,
10
+ DamageLevelLib.toInt
11
+ } for DamageLevel global;
12
+
13
+ // solhint-disable-next-line func-name-mixedcase
14
+ function DAMAGE_SMALL() pure returns (DamageLevel) {
15
+ return DamageLevel.wrap(1);
16
+ }
17
+
18
+ // solhint-disable-next-line func-name-mixedcase
19
+ function DAMAGE_MEDIUM() pure returns (DamageLevel) {
20
+ return DamageLevel.wrap(2);
21
+ }
22
+
23
+ // solhint-disable-next-line func-name-mixedcase
24
+ function DAMAGE_LARGE() pure returns (DamageLevel) {
25
+ return DamageLevel.wrap(3);
26
+ }
27
+
28
+ library DamageLevelLib {
29
+
30
+ error ErrorDamageLeveLibInvalidDamageLevel(uint8 damageLevel);
31
+
32
+ function zero() internal pure returns (DamageLevel) {
33
+ return DamageLevel.wrap(0);
34
+ }
35
+
36
+ function toDamageLevel(uint8 damage) internal pure returns (DamageLevel) {
37
+ if (damage == 1) {
38
+ return DAMAGE_SMALL();
39
+ } else if (damage == 2) {
40
+ return DAMAGE_MEDIUM();
41
+ } else if (damage == 3) {
42
+ return DAMAGE_LARGE();
43
+ } else {
44
+ revert ErrorDamageLeveLibInvalidDamageLevel(damage);
45
+ }
46
+ }
47
+
48
+ function toInt(DamageLevel damageLevel) internal pure returns (uint8) {
49
+ return uint8(DamageLevel.unwrap(damageLevel));
50
+ }
51
+
52
+ function eq(DamageLevel a, DamageLevel b) internal pure returns (bool) {
53
+ return DamageLevel.unwrap(a) == DamageLevel.unwrap(b);
54
+ }
55
+
56
+ function eqz(DamageLevel a) internal pure returns (bool) {
57
+ return DamageLevel.unwrap(a) == 0;
58
+ }
59
+ }
@@ -0,0 +1,86 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../../type/Amount.sol";
7
+ import {BasicPool} from "../../pool/BasicPool.sol";
8
+ import {Fee} from "../../type/Fee.sol";
9
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
10
+ import {IComponents} from "../../instance/module/IComponents.sol";
11
+ import {NftId} from "../../type/NftId.sol";
12
+ import {Seconds} from "../../type/Timestamp.sol";
13
+ import {UFixed, UFixedLib} from "../../type/UFixed.sol";
14
+
15
+ contract FirePool is
16
+ BasicPool
17
+ {
18
+ constructor(
19
+ address registry,
20
+ NftId fireProductNftId,
21
+ string memory componentName,
22
+ IAuthorization authorization
23
+ )
24
+ {
25
+ address initialOwner = msg.sender;
26
+ _intialize(
27
+ registry,
28
+ fireProductNftId,
29
+ componentName,
30
+ IComponents.PoolInfo({
31
+ maxBalanceAmount: AmountLib.max(),
32
+ isInterceptingBundleTransfers: false,
33
+ isProcessingConfirmedClaims: false,
34
+ isExternallyManaged: false,
35
+ isVerifyingApplications: false,
36
+ collateralizationLevel: UFixedLib.one(),
37
+ retentionLevel: UFixedLib.one()
38
+ }),
39
+ authorization,
40
+ initialOwner);
41
+ }
42
+
43
+ function _intialize(
44
+ address registry,
45
+ NftId fireProductNftId,
46
+ string memory componentName,
47
+ IComponents.PoolInfo memory poolInfo,
48
+ IAuthorization authorization,
49
+ address initialOwner
50
+ )
51
+ internal
52
+ initializer
53
+ {
54
+ _initializeBasicPool(
55
+ registry,
56
+ fireProductNftId,
57
+ componentName,
58
+ poolInfo,
59
+ authorization,
60
+ initialOwner);
61
+ }
62
+
63
+ function createBundle(
64
+ Fee memory fee,
65
+ Amount initialAmount,
66
+ Seconds lifetime
67
+ )
68
+ external
69
+ virtual
70
+ restricted()
71
+ returns(NftId bundleNftId, Amount netStakedAmount)
72
+ {
73
+ address owner = msg.sender;
74
+ bundleNftId = _createBundle(
75
+ owner,
76
+ fee,
77
+ lifetime,
78
+ "" // filter
79
+ );
80
+ netStakedAmount = _stake(bundleNftId, initialAmount);
81
+ }
82
+
83
+ function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
84
+ function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
85
+ function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
86
+ }
@@ -0,0 +1,35 @@
1
+
2
+
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ pragma solidity ^0.8.20;
5
+
6
+ import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
7
+ import {FirePool} from "./FirePool.sol";
8
+ import {IAccess} from "../../../contracts/authorization/IAccess.sol";
9
+ import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
10
+
11
+ contract FirePoolAuthorization
12
+ is BasicPoolAuthorization
13
+ {
14
+
15
+ constructor(string memory poolName)
16
+ BasicPoolAuthorization(poolName)
17
+ {}
18
+
19
+
20
+ function _setupTargetAuthorizations()
21
+ internal
22
+ virtual override
23
+ {
24
+ super._setupTargetAuthorizations();
25
+ IAccess.FunctionInfo[] storage functions;
26
+
27
+ // authorize public role (open access to any account, only allows to lock target)
28
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
29
+ // TODO: FirePool.createBundle must require a custom role (e.g. INVESTOR) instead of PUBLIC_ROLE
30
+ _authorize(functions, FirePool.approveTokenHandler.selector, "approveTokenHandler");
31
+ _authorize(functions, FirePool.createBundle.selector, "createBundle");
32
+ }
33
+
34
+ }
35
+