@etherisc/gif-next 0.0.2-a66c9a8-623 → 0.0.2-a6a9eeb-432

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 (595) hide show
  1. package/README.md +109 -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 +193 -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 +122 -383
  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 +116 -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/FlightLib.sol/FlightLib.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +415 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1208 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2254 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  83. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  85. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  87. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  89. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +578 -65
  91. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -60
  93. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/Instance.sol/Instance.json +616 -183
  95. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1021 -363
  97. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +328 -92
  99. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1798 -793
  101. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +409 -231
  103. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
  105. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +952 -1165
  107. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1539 -0
  109. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  111. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  113. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  122. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  127. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  128. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  129. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +138 -355
  131. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +424 -37
  133. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +114 -133
  136. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  138. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +114 -323
  140. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  142. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  144. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +181 -435
  146. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  147. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  148. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  149. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +574 -270
  150. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +216 -104
  152. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  153. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +383 -53
  154. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  155. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -212
  156. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  157. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  158. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  159. package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -392
  160. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  161. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  162. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  163. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  164. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +230 -106
  166. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  167. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  168. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +159 -99
  170. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  171. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +272 -431
  172. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  173. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  174. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  175. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  176. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
  178. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  179. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  180. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  181. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  182. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
  184. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  186. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  187. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -226
  188. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  189. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  190. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  191. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
  192. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  193. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  194. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -108
  196. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  197. package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
  198. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
  200. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  201. package/artifacts/contracts/product/Product.sol/Product.json +264 -423
  202. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  203. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  204. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  205. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  206. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  208. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  210. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  211. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  212. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  213. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  214. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  215. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  216. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  218. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -377
  220. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  221. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  222. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  224. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  226. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  227. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  228. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  230. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  232. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  234. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  235. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  236. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Component.sol/Component.json +86 -277
  238. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +497 -586
  240. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +183 -133
  242. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  246. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  250. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -93
  252. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +438 -240
  254. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -133
  256. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +79 -6
  258. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  259. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  260. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  262. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  264. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  266. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  268. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  269. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  270. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  271. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  272. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -322
  273. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  274. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +85 -7
  275. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  276. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  277. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  278. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  279. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  280. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  281. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  282. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  283. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  284. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  285. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  286. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  287. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  288. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  289. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  293. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  294. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  295. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  296. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1510 -191
  297. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  298. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  299. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  300. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  301. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  302. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -455
  303. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  305. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +191 -105
  307. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  309. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  311. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  313. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1643 -783
  315. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  317. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +184 -76
  319. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  320. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  322. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  324. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  326. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  328. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  330. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  332. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  334. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  335. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  336. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  338. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  339. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  340. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +49 -50
  342. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  344. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  346. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  348. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  349. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  350. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  352. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  354. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +112 -2
  356. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  358. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  360. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  362. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  364. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +56 -5
  366. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
  368. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  370. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  372. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  373. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  374. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  375. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +118 -79
  376. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  377. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  378. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  379. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  380. package/contracts/accounting/AccountingService.sol +274 -0
  381. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  382. package/contracts/accounting/IAccountingService.sol +47 -0
  383. package/contracts/authorization/AccessAdmin.sol +458 -269
  384. package/contracts/authorization/AccessAdminLib.sol +396 -0
  385. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  386. package/contracts/authorization/Authorization.sol +159 -208
  387. package/contracts/authorization/IAccess.sol +25 -6
  388. package/contracts/authorization/IAccessAdmin.sol +87 -79
  389. package/contracts/authorization/IAuthorization.sol +9 -37
  390. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  391. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  392. package/contracts/distribution/BasicDistribution.sol +22 -30
  393. package/contracts/distribution/BasicDistributionAuthorization.sol +32 -11
  394. package/contracts/distribution/Distribution.sol +49 -86
  395. package/contracts/distribution/DistributionService.sol +277 -117
  396. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  397. package/contracts/distribution/IDistributionComponent.sol +10 -12
  398. package/contracts/distribution/IDistributionService.sol +56 -26
  399. package/contracts/examples/fire/DamageLevel.sol +59 -0
  400. package/contracts/examples/fire/FirePool.sol +86 -0
  401. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  402. package/contracts/examples/fire/FireProduct.sol +433 -0
  403. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  404. package/contracts/examples/fire/FireUSD.sol +26 -0
  405. package/contracts/examples/flight/FlightLib.sol +266 -0
  406. package/contracts/examples/flight/FlightOracle.sol +167 -0
  407. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  408. package/contracts/examples/flight/FlightPool.sol +89 -0
  409. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  410. package/contracts/examples/flight/FlightProduct.sol +491 -0
  411. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  412. package/contracts/examples/flight/FlightUSD.sol +26 -0
  413. package/contracts/examples/flight/originalV1.sol +396 -0
  414. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  415. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  416. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  417. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  418. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  419. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  420. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  421. package/contracts/instance/BaseStore.sol +93 -0
  422. package/contracts/instance/BundleSet.sol +42 -38
  423. package/contracts/instance/IBaseStore.sol +37 -0
  424. package/contracts/instance/IInstance.sol +113 -43
  425. package/contracts/instance/IInstanceService.sol +61 -34
  426. package/contracts/instance/Instance.sol +201 -104
  427. package/contracts/instance/InstanceAdmin.sol +275 -162
  428. package/contracts/instance/InstanceAuthorizationV3.sol +142 -71
  429. package/contracts/instance/InstanceReader.sol +502 -251
  430. package/contracts/instance/InstanceService.sol +333 -262
  431. package/contracts/instance/InstanceServiceManager.sol +6 -7
  432. package/contracts/instance/InstanceStore.sol +28 -36
  433. package/contracts/instance/ProductStore.sol +119 -0
  434. package/contracts/instance/RiskSet.sol +126 -0
  435. package/contracts/instance/TargetNames.sol +10 -0
  436. package/contracts/instance/base/BalanceStore.sol +4 -6
  437. package/contracts/instance/base/ObjectCounter.sol +1 -2
  438. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  439. package/contracts/instance/base/ObjectSet.sol +31 -33
  440. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  441. package/contracts/instance/module/IBundle.sol +6 -5
  442. package/contracts/instance/module/IComponents.sol +30 -19
  443. package/contracts/instance/module/IDistribution.sol +21 -9
  444. package/contracts/instance/module/IPolicy.sol +50 -29
  445. package/contracts/instance/module/IRisk.sol +5 -0
  446. package/contracts/mock/Dip.sol +1 -1
  447. package/contracts/oracle/BasicOracle.sol +2 -5
  448. package/contracts/oracle/BasicOracleAuthorization.sol +14 -8
  449. package/contracts/oracle/IOracle.sol +9 -4
  450. package/contracts/oracle/IOracleComponent.sol +2 -1
  451. package/contracts/oracle/IOracleService.sol +14 -13
  452. package/contracts/oracle/Oracle.sol +23 -26
  453. package/contracts/oracle/OracleService.sol +119 -87
  454. package/contracts/oracle/OracleServiceManager.sol +6 -6
  455. package/contracts/pool/BasicPool.sol +39 -41
  456. package/contracts/pool/BasicPoolAuthorization.sol +41 -12
  457. package/contracts/pool/BundleService.sol +213 -111
  458. package/contracts/pool/BundleServiceManager.sol +6 -6
  459. package/contracts/pool/IBundleService.sol +43 -33
  460. package/contracts/pool/IPoolComponent.sol +21 -10
  461. package/contracts/pool/IPoolService.sol +97 -77
  462. package/contracts/pool/Pool.sol +147 -125
  463. package/contracts/pool/PoolLib.sol +341 -0
  464. package/contracts/pool/PoolService.sol +413 -235
  465. package/contracts/pool/PoolServiceManager.sol +4 -4
  466. package/contracts/product/ApplicationService.sol +144 -47
  467. package/contracts/product/ApplicationServiceManager.sol +4 -4
  468. package/contracts/product/BasicProduct.sol +13 -46
  469. package/contracts/product/BasicProductAuthorization.sol +33 -12
  470. package/contracts/product/ClaimService.sol +393 -183
  471. package/contracts/product/ClaimServiceManager.sol +4 -4
  472. package/contracts/product/IApplicationService.sol +29 -3
  473. package/contracts/product/IClaimService.sol +48 -11
  474. package/contracts/product/IPolicyService.sol +61 -37
  475. package/contracts/product/IPricingService.sol +11 -10
  476. package/contracts/product/IProductComponent.sol +27 -5
  477. package/contracts/product/IRiskService.sol +48 -0
  478. package/contracts/product/PolicyService.sol +445 -275
  479. package/contracts/product/PolicyServiceLib.sol +139 -0
  480. package/contracts/product/PolicyServiceManager.sol +4 -4
  481. package/contracts/product/PricingService.sol +90 -84
  482. package/contracts/product/PricingServiceManager.sol +4 -4
  483. package/contracts/product/Product.sol +201 -100
  484. package/contracts/product/RiskService.sol +190 -0
  485. package/contracts/product/RiskServiceManager.sol +39 -0
  486. package/contracts/registry/ChainNft.sol +72 -40
  487. package/contracts/registry/IRegistry.sol +70 -32
  488. package/contracts/registry/IRegistryService.sol +5 -12
  489. package/contracts/registry/IRelease.sol +29 -0
  490. package/contracts/registry/ITransferInterceptor.sol +1 -2
  491. package/contracts/registry/Registry.sol +367 -207
  492. package/contracts/registry/RegistryAdmin.sol +114 -288
  493. package/contracts/registry/RegistryAuthorization.sol +336 -0
  494. package/contracts/registry/RegistryService.sol +38 -49
  495. package/contracts/registry/RegistryServiceManager.sol +3 -3
  496. package/contracts/registry/ReleaseAdmin.sol +195 -0
  497. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  498. package/contracts/registry/ReleaseRegistry.sol +279 -241
  499. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  500. package/contracts/registry/TokenRegistry.sol +61 -59
  501. package/contracts/shared/Component.sol +70 -130
  502. package/contracts/shared/ComponentService.sol +423 -358
  503. package/contracts/shared/ComponentServiceManager.sol +8 -5
  504. package/contracts/shared/ContractLib.sol +312 -0
  505. package/contracts/shared/IComponent.sol +6 -18
  506. package/contracts/shared/IComponentService.sol +41 -42
  507. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  508. package/contracts/shared/IKeyValueStore.sol +9 -1
  509. package/contracts/shared/ILifecycle.sol +3 -1
  510. package/contracts/shared/INftOwnable.sol +4 -0
  511. package/contracts/shared/IPolicyHolder.sol +12 -22
  512. package/contracts/shared/IRegisterable.sol +22 -1
  513. package/contracts/shared/IService.sol +3 -5
  514. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  515. package/contracts/shared/InstanceLinkedComponent.sol +116 -54
  516. package/contracts/shared/KeyValueStore.sol +4 -4
  517. package/contracts/shared/Lifecycle.sol +15 -4
  518. package/contracts/shared/NftOwnable.sol +33 -11
  519. package/contracts/shared/PolicyHolder.sol +20 -59
  520. package/contracts/shared/Registerable.sol +52 -21
  521. package/contracts/shared/RegistryLinked.sol +9 -14
  522. package/contracts/shared/Service.sol +20 -35
  523. package/contracts/shared/TokenHandler.sol +310 -26
  524. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  525. package/contracts/staking/IStaking.sol +271 -71
  526. package/contracts/staking/IStakingService.sol +45 -78
  527. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  528. package/contracts/staking/Staking.sol +525 -241
  529. package/contracts/staking/StakingLib.sol +195 -0
  530. package/contracts/staking/StakingManager.sol +12 -9
  531. package/contracts/staking/StakingReader.sol +70 -82
  532. package/contracts/staking/StakingService.sol +62 -152
  533. package/contracts/staking/StakingServiceManager.sol +7 -5
  534. package/contracts/staking/StakingStore.sol +1093 -330
  535. package/contracts/staking/TargetHandler.sol +132 -0
  536. package/contracts/staking/TargetManagerLib.sol +73 -46
  537. package/contracts/type/Amount.sol +31 -5
  538. package/contracts/type/Blocknumber.sol +22 -16
  539. package/contracts/type/ChainId.sol +101 -0
  540. package/contracts/type/ClaimId.sol +6 -1
  541. package/contracts/type/Fee.sol +8 -8
  542. package/contracts/type/Key32.sol +2 -2
  543. package/contracts/type/Key32Set.sol +62 -0
  544. package/contracts/type/NftId.sol +7 -0
  545. package/contracts/type/ObjectType.sol +74 -67
  546. package/contracts/type/PayoutId.sol +10 -10
  547. package/contracts/type/Referral.sol +7 -0
  548. package/contracts/type/RequestIdSet.sol +62 -0
  549. package/contracts/type/RiskId.sol +38 -6
  550. package/contracts/type/RoleId.sol +61 -55
  551. package/contracts/type/Seconds.sol +44 -1
  552. package/contracts/type/Selector.sol +5 -0
  553. package/contracts/type/StateId.sol +15 -1
  554. package/contracts/type/String.sol +42 -0
  555. package/contracts/type/Timestamp.sol +24 -8
  556. package/contracts/type/UFixed.sol +57 -126
  557. package/contracts/type/Version.sol +54 -5
  558. package/contracts/upgradeability/IVersionable.sol +3 -0
  559. package/contracts/upgradeability/ProxyManager.sol +93 -45
  560. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  561. package/contracts/upgradeability/Versionable.sol +8 -5
  562. package/package.json +5 -4
  563. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  564. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  565. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  566. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  567. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  568. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  569. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  570. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  571. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  572. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  573. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  575. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  576. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  577. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  578. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  579. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  580. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  581. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  582. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  583. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  584. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  585. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  586. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  587. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  588. package/contracts/instance/module/IAccess.sol +0 -46
  589. package/contracts/product/IProductService.sol +0 -33
  590. package/contracts/product/ProductService.sol +0 -99
  591. package/contracts/product/ProductServiceManager.sol +0 -39
  592. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  593. package/contracts/shared/InitializableCustom.sol +0 -177
  594. package/contracts/staking/StakeManagerLib.sol +0 -231
  595. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -2,7 +2,8 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount, AmountLib} from "../type/Amount.sol";
5
- import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
5
+ import {BUNDLE, COMPONENT, POLICY, POOL} from "../type/ObjectType.sol";
6
+ import {ClaimId} from "../type/ClaimId.sol";
6
7
  import {IBundleService} from "./IBundleService.sol";
7
8
  import {IAuthorization} from "../authorization/IAuthorization.sol";
8
9
  import {IPoolComponent} from "./IPoolComponent.sol";
@@ -10,12 +11,13 @@ import {IPoolService} from "./IPoolService.sol";
10
11
  import {IComponents} from "../instance/module/IComponents.sol";
11
12
  import {IComponentService} from "../shared/IComponentService.sol";
12
13
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
- import {Fee, FeeLib} from "../type/Fee.sol";
14
- import {NftId, NftIdLib} from "../type/NftId.sol";
14
+ import {InstanceReader} from "../instance/InstanceReader.sol";
15
+ import {Fee} from "../type/Fee.sol";
16
+ import {NftId} from "../type/NftId.sol";
15
17
  import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
16
18
  import {Seconds} from "../type/Seconds.sol";
17
- import {TokenHandler} from "../shared/TokenHandler.sol";
18
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
19
+ import {Timestamp} from "../type/Timestamp.sol";
20
+ import {UFixed} from "../type/UFixed.sol";
19
21
 
20
22
  abstract contract Pool is
21
23
  InstanceLinkedComponent,
@@ -25,6 +27,7 @@ abstract contract Pool is
25
27
  bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
26
28
 
27
29
  struct PoolStorage {
30
+ IComponents.PoolInfo _poolInfo;
28
31
  IComponentService _componentService;
29
32
  IPoolService _poolService;
30
33
  IBundleService _bundleService;
@@ -39,23 +42,29 @@ abstract contract Pool is
39
42
  }
40
43
 
41
44
 
45
+ // TODO remove function once this is no longer used to produce contract locations on the fly ...
46
+ function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
47
+ return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
48
+ }
49
+
50
+
42
51
  /// @dev see {IPoolComponent.verifyApplication}
43
52
  function verifyApplication(
44
53
  NftId applicationNftId,
45
- bytes memory applicationData,
46
54
  NftId bundleNftId,
47
- bytes memory bundleFilter,
48
55
  Amount collateralizationAmount
49
56
  )
50
57
  public
51
58
  virtual
52
59
  restricted()
60
+ onlyNftOfType(applicationNftId, POLICY())
53
61
  {
62
+ InstanceReader reader = _getInstanceReader();
54
63
  if(!applicationMatchesBundle(
55
64
  applicationNftId,
56
- applicationData,
65
+ reader.getPolicyInfo(applicationNftId).applicationData,
57
66
  bundleNftId,
58
- bundleFilter,
67
+ reader.getBundleInfo(bundleNftId).filter,
59
68
  collateralizationAmount)
60
69
  )
61
70
  {
@@ -66,9 +75,25 @@ abstract contract Pool is
66
75
  }
67
76
 
68
77
 
78
+ /// @dev see {IPoolComponent.processConfirmedClaim}
79
+ function processConfirmedClaim(
80
+ NftId policyNftId,
81
+ ClaimId claimId,
82
+ Amount amount
83
+ )
84
+ public
85
+ virtual
86
+ restricted()
87
+ onlyNftOfType(policyNftId, POLICY())
88
+ {
89
+ // default implementation is empty
90
+ }
91
+
92
+
69
93
  /// @dev see {IPoolComponent.applicationMatchesBundle}
70
- /// Override this function to implement any custom application verification
71
- /// Default implementation always returns true
94
+ /// Default implementation always returns true.
95
+ /// Override this function to implement any custom application verification.
96
+ /// Calling super.applicationMatchesBundle will ensure validation of application and bundle nft ids.
72
97
  function applicationMatchesBundle(
73
98
  NftId applicationNftId,
74
99
  bytes memory applicationData,
@@ -79,150 +104,123 @@ abstract contract Pool is
79
104
  public
80
105
  virtual
81
106
  view
107
+ onlyNftOfType(applicationNftId, POLICY())
108
+ onlyNftOfType(bundleNftId, BUNDLE())
82
109
  returns (bool isMatching)
83
110
  {
84
111
  return true;
85
112
  }
86
113
 
87
114
 
88
- function register()
89
- external
90
- virtual
91
- onlyOwner()
92
- {
93
- _getPoolStorage()._componentService.registerPool();
94
- _approveTokenHandler(type(uint256).max);
95
- }
96
-
97
-
98
115
  function getInitialPoolInfo()
99
116
  public
100
117
  virtual
101
118
  view
102
119
  returns (IComponents.PoolInfo memory poolInfo)
103
120
  {
104
- return IComponents.PoolInfo(
105
- NftIdLib.zero(), // will be set when GIF registers the related product
106
- PUBLIC_ROLE(), // bundleOwnerRole
107
- AmountLib.max(), // maxCapitalAmount,
108
- isNftInterceptor(), // isInterceptingBundleTransfers
109
- false, // isExternallyManaged,
110
- false, // isVerifyingApplications,
111
- UFixedLib.toUFixed(1), // collateralizationLevel,
112
- UFixedLib.toUFixed(1), // retentionLevel,
113
- FeeLib.zero(), // initialPoolFee,
114
- FeeLib.zero(), // initialStakingFee,
115
- FeeLib.zero() // initialPerformanceFee,
116
- );
121
+ return _getPoolStorage()._poolInfo;
117
122
  }
118
123
 
119
124
  // Internals
120
125
 
121
- function _initializePool(
126
+ function __Pool_init(
122
127
  address registry,
123
- NftId instanceNftId,
128
+ NftId productNftId,
124
129
  string memory name,
125
- address token,
130
+ IComponents.PoolInfo memory poolInfo,
126
131
  IAuthorization authorization,
127
- bool isInterceptingNftTransfers,
128
132
  address initialOwner,
129
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
130
133
  bytes memory componentData // component specifidc data
131
134
  )
132
135
  internal
133
136
  virtual
134
137
  onlyInitializing()
135
138
  {
136
- _initializeInstanceLinkedComponent(
139
+ __InstanceLinkedComponent_init(
137
140
  registry,
138
- instanceNftId,
141
+ productNftId,
139
142
  name,
140
- token,
141
143
  POOL(),
142
144
  authorization,
143
- isInterceptingNftTransfers,
145
+ poolInfo.isInterceptingBundleTransfers,
144
146
  initialOwner,
145
- registryData,
146
147
  componentData);
147
148
 
148
149
  PoolStorage storage $ = _getPoolStorage();
150
+
151
+ $._poolInfo = poolInfo;
149
152
  $._poolService = IPoolService(_getServiceAddress(POOL()));
150
153
  $._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
151
154
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
152
155
 
153
- registerInterface(type(IPoolComponent).interfaceId);
154
- }
155
-
156
- /// @dev increases the staked tokens by the specified amount
157
- /// bundle MUST be in active or locked state
158
- function _stake(
159
- NftId bundleNftId,
160
- Amount amount
161
- )
162
- internal
163
- virtual
164
- {
165
- // TODO add implementation
156
+ _registerInterface(type(IPoolComponent).interfaceId);
166
157
  }
167
158
 
168
159
 
169
- /// @dev decreases the staked tokens by the specified amount
170
- /// bundle MUST be in active, locked or closed state
171
- function _unstake(
172
- NftId bundleNftId,
173
- Amount amount
160
+ /// @dev Update pool fees to the specified values.
161
+ /// Pool fee: are deducted from the premium amount and goes to the pool owner.
162
+ /// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
163
+ /// Performance fee: when a bundle is closed a bundle specific profit is calculated.
164
+ /// The performance fee is deducted from this profit and goes to the pool owner.
165
+ function _setPoolFees(
166
+ Fee memory poolFee,
167
+ Fee memory stakingFee,
168
+ Fee memory performanceFee
174
169
  )
175
170
  internal
176
171
  virtual
177
172
  {
178
- // TODO add implementation
173
+ _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
179
174
  }
180
175
 
181
176
 
182
- /// @dev extends the bundle lifetime of the bundle by the specified time
183
- /// bundle MUST be in active or locked state
184
- function _extend(
185
- NftId bundleNftId,
186
- Seconds lifetimeExtension
187
- )
177
+ /// @dev Sets the maximum balance amound held by this pool.
178
+ /// Function may only be called by pool owner.
179
+ function _setMaxBalanceAmount(Amount maxBalanceAmount)
188
180
  internal
189
181
  virtual
190
182
  {
191
- // TODO add implementation
183
+ _getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
192
184
  }
193
185
 
194
186
 
195
- /// @dev Locks the specified bundle.
196
- /// A bundle to be locked MUST be in active state.
197
- /// Locked bundles may not be used to collateralize any new policy.
198
- function _lockBundle(NftId bundleNftId)
187
+ /// @dev Fund the pool wallet with the specified amount.
188
+ /// Function is only available for externally managed pools.
189
+ function _fundPoolWallet(Amount amount)
199
190
  internal
200
191
  virtual
201
192
  {
202
- _getPoolStorage()._bundleService.lock(bundleNftId);
193
+ _getPoolStorage()._poolService.fundPoolWallet(amount);
203
194
  }
204
195
 
205
196
 
206
- /// @dev Unlocks the specified bundle.
207
- /// A bundle to be unlocked MUST be in locked state.
208
- function _unlockBundle(NftId bundleNftId)
197
+ /// @dev Withdraw the specified amount from the pool wallet.
198
+ /// Function is only available for externally managed pools.
199
+ function _defundPoolWallet(Amount amount)
209
200
  internal
210
201
  virtual
211
202
  {
212
- _getPoolStorage()._bundleService.unlock(bundleNftId);
203
+ _getPoolStorage()._poolService.defundPoolWallet(amount);
213
204
  }
214
205
 
215
206
 
216
- /// @dev Close the specified bundle.
217
- /// A bundle to be closed MUST be in active or locked state.
218
- /// To close a bundle all all linked policies MUST be in closed state as well.
219
- /// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
220
- /// Once a bundle is closed this action cannot be reversed.
221
- function _close(NftId bundleNftId)
207
+ /// @dev Creates a new empty bundle using the provided parameter values.
208
+ function _createBundle(
209
+ address bundleOwner,
210
+ Fee memory fee,
211
+ Seconds lifetime,
212
+ bytes memory filter
213
+ )
222
214
  internal
223
- virtual
215
+ returns(NftId bundleNftId)
224
216
  {
225
- _getPoolStorage()._poolService.closeBundle(bundleNftId);
217
+ bundleNftId = _getPoolStorage()._bundleService.create(
218
+ bundleOwner,
219
+ fee,
220
+ lifetime,
221
+ filter);
222
+
223
+ // TODO add logging
226
224
  }
227
225
 
228
226
 
@@ -240,66 +238,90 @@ abstract contract Pool is
240
238
  }
241
239
 
242
240
 
243
- /// @dev Sets the maximum overall capital amound held by this pool.
244
- /// Function may only be called by pool owner.
245
- function _setMaxCapitalAmount(Amount maxCapitalAmount)
241
+ /// @dev increases the staked tokens by the specified amount
242
+ /// bundle MUST be in active or locked state
243
+ function _stake(
244
+ NftId bundleNftId,
245
+ Amount amount
246
+ )
246
247
  internal
247
248
  virtual
249
+ returns(Amount)
248
250
  {
249
- _getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
251
+ return _getPoolStorage()._poolService.stake(bundleNftId, amount);
250
252
  }
251
253
 
252
- /// @dev Sets the required role to create/own bundles.
253
- /// May only be called once after setting up a pool.
254
- /// May only be called by pool owner.
255
- function _setBundleOwnerRole(RoleId bundleOwnerRole)
254
+
255
+ /// @dev decreases the staked tokens by the specified amount
256
+ /// bundle MUST be in active, locked or closed state
257
+ function _unstake(
258
+ NftId bundleNftId,
259
+ Amount amount
260
+ )
256
261
  internal
257
262
  virtual
263
+ returns(Amount netAmount)
258
264
  {
259
- _getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
265
+ return _getPoolStorage()._poolService.unstake(bundleNftId, amount);
260
266
  }
261
267
 
262
268
 
263
- /// @dev Update pool fees to the specified values.
264
- /// Pool fee: are deducted from the premium amount and goes to the pool owner.
265
- /// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
266
- /// Performance fee: when a bundle is closed a bundle specific profit is calculated.
267
- /// The performance fee is deducted from this profit and goes to the pool owner.
268
- function _setPoolFees(
269
- Fee memory poolFee,
270
- Fee memory stakingFee,
271
- Fee memory performanceFee
269
+ /// @dev extends the bundle lifetime of the bundle by the specified time
270
+ /// bundle MUST be in active or locked state
271
+ function _extend(
272
+ NftId bundleNftId,
273
+ Seconds lifetimeExtension
272
274
  )
273
275
  internal
274
276
  virtual
277
+ returns (Timestamp extendedExpiredAt)
275
278
  {
276
- _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
279
+ return _getPoolStorage()._bundleService.extend(bundleNftId, lifetimeExtension);
277
280
  }
278
281
 
279
- /// @dev Creates a new bundle using the provided parameter values.
280
- function _createBundle(
281
- address bundleOwner,
282
- Fee memory fee,
283
- Amount amount,
284
- Seconds lifetime,
285
- bytes memory filter
286
- )
282
+
283
+ /// @dev Locks the specified bundle.
284
+ /// A bundle to be locked MUST be in active state.
285
+ /// Locked bundles may not be used to collateralize any new policy.
286
+ function _setBundleLocked(NftId bundleNftId, bool locked)
287
287
  internal
288
- returns(NftId bundleNftId)
288
+ virtual
289
289
  {
290
- bundleNftId = _getPoolStorage()._poolService.createBundle(
291
- bundleOwner,
292
- fee,
293
- amount,
294
- lifetime,
295
- filter);
290
+ _getPoolStorage()._bundleService.setLocked(bundleNftId, locked);
291
+ }
296
292
 
297
- // TODO add logging
293
+
294
+ /// @dev Close the specified bundle.
295
+ /// A bundle to be closed MUST be in active or locked state.
296
+ /// To close a bundle all all linked policies MUST be in closed state as well.
297
+ /// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
298
+ /// Once a bundle is closed this action cannot be reversed.
299
+ function _closeBundle(NftId bundleNftId)
300
+ internal
301
+ virtual
302
+ {
303
+ _getPoolStorage()._poolService.closeBundle(bundleNftId);
298
304
  }
299
305
 
300
- // TODO remove function once this is no longer used to produce contract locations on the fly ...
301
- function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
302
- return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
306
+
307
+ /// @dev Withdraws the specified amount of fees from the bundle.
308
+ function _withdrawBundleFees(NftId bundleNftId, Amount amount)
309
+ internal
310
+ returns (Amount withdrawnAmount)
311
+ {
312
+ return _getPoolStorage()._poolService.withdrawBundleFees(bundleNftId, amount);
313
+ }
314
+
315
+
316
+ function _processFundedClaim(
317
+ NftId policyNftId,
318
+ ClaimId claimId,
319
+ Amount availableAmount
320
+ )
321
+ internal
322
+ {
323
+ _getPoolStorage()._poolService.processFundedClaim(
324
+ policyNftId, claimId, availableAmount);
303
325
  }
304
326
 
305
327