@etherisc/gif-next 0.0.2-4b70713-571 → 0.0.2-4c19d89-776

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 (520) hide show
  1. package/README.md +46 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +203 -77
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
  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 +142 -44
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +165 -391
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +321 -369
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +129 -119
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +196 -133
  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 +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +194 -154
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +446 -143
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1004 -305
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +651 -514
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +114 -340
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +90 -308
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +112 -386
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +170 -443
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +106 -148
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +96 -143
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -219
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +313 -350
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -394
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +461 -593
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +142 -108
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +243 -400
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +67 -8
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +459 -309
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  176. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  177. package/artifacts/contracts/product/Product.sol/Product.json +241 -398
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -0
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +334 -34
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +540 -95
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +349 -167
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +420 -246
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  210. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +501 -626
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -128
  216. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  263. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
  275. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +76 -106
  277. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  278. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +122 -164
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -85
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  294. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  296. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  298. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  300. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  302. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  304. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  306. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  308. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  310. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  312. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  314. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  316. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  318. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  320. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  322. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  324. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  328. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  330. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  332. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  337. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  341. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  345. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  346. package/contracts/accounting/AccountingService.sol +262 -0
  347. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  348. package/contracts/accounting/IAccountingService.sol +45 -0
  349. package/contracts/authorization/AccessAdmin.sol +232 -134
  350. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  351. package/contracts/authorization/Authorization.sol +321 -202
  352. package/contracts/authorization/IAccess.sol +1 -0
  353. package/contracts/authorization/IAccessAdmin.sol +17 -10
  354. package/contracts/authorization/IAuthorization.sol +27 -7
  355. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  356. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  357. package/contracts/distribution/BasicDistribution.sol +15 -12
  358. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  359. package/contracts/distribution/Distribution.sol +42 -48
  360. package/contracts/distribution/DistributionService.sol +125 -104
  361. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  362. package/contracts/distribution/IDistributionComponent.sol +1 -1
  363. package/contracts/distribution/IDistributionService.sol +28 -24
  364. package/contracts/examples/fire/DamageLevel.sol +59 -0
  365. package/contracts/examples/fire/FirePool.sol +90 -0
  366. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  367. package/contracts/examples/fire/FireProduct.sol +437 -0
  368. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  369. package/contracts/examples/fire/FireUSD.sol +26 -0
  370. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  371. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  372. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  373. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  374. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  375. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  376. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  377. package/contracts/instance/BundleSet.sol +42 -38
  378. package/contracts/instance/IInstance.sol +21 -37
  379. package/contracts/instance/IInstanceService.sol +9 -29
  380. package/contracts/instance/Instance.sol +59 -66
  381. package/contracts/instance/InstanceAdmin.sol +256 -85
  382. package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
  383. package/contracts/instance/InstanceReader.sol +275 -43
  384. package/contracts/instance/InstanceService.sol +125 -164
  385. package/contracts/instance/InstanceServiceManager.sol +6 -7
  386. package/contracts/instance/InstanceStore.sol +23 -2
  387. package/contracts/instance/RiskSet.sol +118 -0
  388. package/contracts/instance/base/ObjectCounter.sol +1 -2
  389. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  390. package/contracts/instance/base/ObjectSet.sol +31 -33
  391. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  392. package/contracts/instance/module/IComponents.sol +14 -15
  393. package/contracts/instance/module/IDistribution.sol +2 -1
  394. package/contracts/instance/module/IPolicy.sol +26 -25
  395. package/contracts/instance/module/IRisk.sol +3 -0
  396. package/contracts/mock/Dip.sol +1 -1
  397. package/contracts/oracle/BasicOracle.sol +0 -1
  398. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  399. package/contracts/oracle/IOracleService.sol +2 -1
  400. package/contracts/oracle/Oracle.sol +7 -17
  401. package/contracts/oracle/OracleService.sol +113 -81
  402. package/contracts/oracle/OracleServiceManager.sol +6 -6
  403. package/contracts/pool/BasicPool.sol +35 -26
  404. package/contracts/pool/BasicPoolAuthorization.sol +29 -11
  405. package/contracts/pool/BundleService.sol +119 -162
  406. package/contracts/pool/BundleServiceManager.sol +6 -6
  407. package/contracts/pool/IBundleService.sol +20 -38
  408. package/contracts/pool/IPoolComponent.sol +19 -15
  409. package/contracts/pool/IPoolService.sol +90 -83
  410. package/contracts/pool/Pool.sol +140 -127
  411. package/contracts/pool/PoolLib.sol +216 -0
  412. package/contracts/pool/PoolService.sol +506 -311
  413. package/contracts/pool/PoolServiceManager.sol +4 -4
  414. package/contracts/product/ApplicationService.sol +72 -43
  415. package/contracts/product/ApplicationServiceManager.sol +4 -4
  416. package/contracts/product/BasicProduct.sol +13 -44
  417. package/contracts/product/BasicProductAuthorization.sol +24 -11
  418. package/contracts/product/ClaimService.sol +368 -153
  419. package/contracts/product/ClaimServiceManager.sol +4 -4
  420. package/contracts/product/IApplicationService.sol +6 -2
  421. package/contracts/product/IClaimService.sol +44 -8
  422. package/contracts/product/IPolicyService.sol +53 -36
  423. package/contracts/product/IPricingService.sol +10 -10
  424. package/contracts/product/IProductComponent.sol +27 -5
  425. package/contracts/product/{IProductService.sol → IRiskService.sol} +6 -9
  426. package/contracts/product/PolicyService.sol +476 -270
  427. package/contracts/product/PolicyServiceLib.sol +65 -0
  428. package/contracts/product/PolicyServiceManager.sol +4 -4
  429. package/contracts/product/PricingService.sol +66 -62
  430. package/contracts/product/PricingServiceManager.sol +4 -4
  431. package/contracts/product/Product.sol +169 -92
  432. package/contracts/product/RiskService.sol +144 -0
  433. package/contracts/product/RiskServiceManager.sol +39 -0
  434. package/contracts/registry/ChainNft.sol +72 -40
  435. package/contracts/registry/IRegistry.sol +60 -28
  436. package/contracts/registry/IRegistryService.sol +5 -12
  437. package/contracts/registry/IRelease.sol +26 -0
  438. package/contracts/registry/ITransferInterceptor.sol +1 -2
  439. package/contracts/registry/Registry.sol +357 -203
  440. package/contracts/registry/RegistryAdmin.sol +171 -182
  441. package/contracts/registry/RegistryService.sol +37 -48
  442. package/contracts/registry/RegistryServiceManager.sol +3 -3
  443. package/contracts/registry/ReleaseAdmin.sol +245 -0
  444. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  445. package/contracts/registry/ReleaseRegistry.sol +258 -232
  446. package/contracts/registry/ServiceAuthorizationV3.sol +99 -52
  447. package/contracts/registry/TokenRegistry.sol +6 -8
  448. package/contracts/shared/Component.sol +74 -127
  449. package/contracts/shared/ComponentService.sol +426 -385
  450. package/contracts/shared/ComponentServiceManager.sol +8 -5
  451. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  452. package/contracts/shared/ContractLib.sol +253 -0
  453. package/contracts/shared/IComponent.sol +8 -17
  454. package/contracts/shared/IComponentService.sol +41 -37
  455. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  456. package/contracts/shared/ILifecycle.sol +3 -1
  457. package/contracts/shared/INftOwnable.sol +2 -0
  458. package/contracts/shared/IPolicyHolder.sol +12 -22
  459. package/contracts/shared/IRegisterable.sol +23 -1
  460. package/contracts/shared/IService.sol +3 -5
  461. package/contracts/shared/InitializableERC165.sol +2 -2
  462. package/contracts/shared/InstanceLinkedComponent.sol +73 -48
  463. package/contracts/shared/KeyValueStore.sol +1 -1
  464. package/contracts/shared/Lifecycle.sol +15 -4
  465. package/contracts/shared/NftOwnable.sol +29 -9
  466. package/contracts/shared/PolicyHolder.sol +15 -52
  467. package/contracts/shared/Registerable.sol +55 -21
  468. package/contracts/shared/RegistryLinked.sol +9 -14
  469. package/contracts/shared/Service.sol +15 -32
  470. package/contracts/shared/TokenHandler.sol +309 -26
  471. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  472. package/contracts/staking/IStaking.sol +7 -9
  473. package/contracts/staking/IStakingService.sol +8 -3
  474. package/contracts/staking/StakeManagerLib.sol +19 -26
  475. package/contracts/staking/Staking.sol +71 -61
  476. package/contracts/staking/StakingManager.sol +8 -6
  477. package/contracts/staking/StakingReader.sol +13 -6
  478. package/contracts/staking/StakingService.sol +54 -35
  479. package/contracts/staking/StakingServiceManager.sol +6 -5
  480. package/contracts/staking/TargetManagerLib.sol +7 -3
  481. package/contracts/type/Amount.sol +15 -0
  482. package/contracts/type/Blocknumber.sol +7 -1
  483. package/contracts/type/ClaimId.sol +6 -1
  484. package/contracts/type/Key32.sol +2 -2
  485. package/contracts/type/Key32Set.sol +62 -0
  486. package/contracts/type/NftId.sol +7 -0
  487. package/contracts/type/ObjectType.sol +52 -20
  488. package/contracts/type/PayoutId.sol +10 -10
  489. package/contracts/type/RiskId.sol +38 -6
  490. package/contracts/type/RoleId.sol +23 -15
  491. package/contracts/type/Seconds.sol +8 -0
  492. package/contracts/type/Selector.sol +5 -0
  493. package/contracts/type/StateId.sol +15 -1
  494. package/contracts/type/Timestamp.sol +10 -5
  495. package/contracts/type/UFixed.sol +13 -119
  496. package/contracts/type/Version.sol +15 -5
  497. package/contracts/upgradeability/ProxyManager.sol +68 -34
  498. package/contracts/upgradeability/Versionable.sol +2 -2
  499. package/package.json +5 -4
  500. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  501. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  502. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  503. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  504. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  505. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  506. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  507. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  508. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  509. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  510. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  511. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  512. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  513. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  514. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  515. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  516. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  517. package/contracts/instance/module/IAccess.sol +0 -46
  518. package/contracts/product/ProductService.sol +0 -99
  519. package/contracts/product/ProductServiceManager.sol +0 -39
  520. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -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,13 +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
19
  import {Timestamp} from "../type/Timestamp.sol";
18
- import {TokenHandler} from "../shared/TokenHandler.sol";
19
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
20
+ import {UFixed} from "../type/UFixed.sol";
20
21
 
21
22
  abstract contract Pool is
22
23
  InstanceLinkedComponent,
@@ -26,6 +27,7 @@ abstract contract Pool is
26
27
  bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
27
28
 
28
29
  struct PoolStorage {
30
+ IComponents.PoolInfo _poolInfo;
29
31
  IComponentService _componentService;
30
32
  IPoolService _poolService;
31
33
  IBundleService _bundleService;
@@ -40,23 +42,29 @@ abstract contract Pool is
40
42
  }
41
43
 
42
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
+
43
51
  /// @dev see {IPoolComponent.verifyApplication}
44
52
  function verifyApplication(
45
53
  NftId applicationNftId,
46
- bytes memory applicationData,
47
54
  NftId bundleNftId,
48
- bytes memory bundleFilter,
49
55
  Amount collateralizationAmount
50
56
  )
51
57
  public
52
58
  virtual
53
59
  restricted()
60
+ onlyNftOfType(applicationNftId, POLICY())
54
61
  {
62
+ InstanceReader reader = _getInstanceReader();
55
63
  if(!applicationMatchesBundle(
56
64
  applicationNftId,
57
- applicationData,
65
+ reader.getPolicyInfo(applicationNftId).applicationData,
58
66
  bundleNftId,
59
- bundleFilter,
67
+ reader.getBundleInfo(bundleNftId).filter,
60
68
  collateralizationAmount)
61
69
  )
62
70
  {
@@ -67,9 +75,25 @@ abstract contract Pool is
67
75
  }
68
76
 
69
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
+
70
93
  /// @dev see {IPoolComponent.applicationMatchesBundle}
71
- /// Override this function to implement any custom application verification
72
- /// 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.
73
97
  function applicationMatchesBundle(
74
98
  NftId applicationNftId,
75
99
  bytes memory applicationData,
@@ -80,65 +104,33 @@ abstract contract Pool is
80
104
  public
81
105
  virtual
82
106
  view
107
+ onlyNftOfType(applicationNftId, POLICY())
108
+ onlyNftOfType(bundleNftId, BUNDLE())
83
109
  returns (bool isMatching)
84
110
  {
85
111
  return true;
86
112
  }
87
113
 
88
114
 
89
- function register()
90
- external
91
- virtual
92
- onlyOwner()
93
- {
94
- _getPoolStorage()._componentService.registerPool();
95
- _approveTokenHandler(type(uint256).max);
96
- }
97
-
98
- /// @inheritdoc IPoolComponent
99
- function withdrawBundleFees(NftId bundleNftId, Amount amount)
100
- external
101
- virtual
102
- restricted()
103
- onlyBundleOwner(bundleNftId)
104
- returns (Amount withdrawnAmount)
105
- {
106
- return _withdrawBundleFees(bundleNftId, amount);
107
- }
108
-
109
-
110
115
  function getInitialPoolInfo()
111
116
  public
112
117
  virtual
113
118
  view
114
119
  returns (IComponents.PoolInfo memory poolInfo)
115
120
  {
116
- return IComponents.PoolInfo(
117
- NftIdLib.zero(), // will be set when GIF registers the related product
118
- PUBLIC_ROLE(), // bundleOwnerRole
119
- AmountLib.max(), // maxCapitalAmount,
120
- isNftInterceptor(), // isInterceptingBundleTransfers
121
- false, // isExternallyManaged,
122
- false, // isVerifyingApplications,
123
- UFixedLib.toUFixed(1), // collateralizationLevel,
124
- UFixedLib.toUFixed(1), // retentionLevel,
125
- FeeLib.zero(), // initialPoolFee,
126
- FeeLib.zero(), // initialStakingFee,
127
- FeeLib.zero() // initialPerformanceFee,
128
- );
121
+ return _getPoolStorage()._poolInfo;
129
122
  }
130
123
 
131
124
  // Internals
132
125
 
133
126
  function _initializePool(
134
127
  address registry,
135
- NftId instanceNftId,
128
+ NftId productNftId,
136
129
  string memory name,
137
130
  address token,
131
+ IComponents.PoolInfo memory poolInfo,
138
132
  IAuthorization authorization,
139
- bool isInterceptingNftTransfers,
140
133
  address initialOwner,
141
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
142
134
  bytes memory componentData // component specifidc data
143
135
  )
144
136
  internal
@@ -147,24 +139,107 @@ abstract contract Pool is
147
139
  {
148
140
  _initializeInstanceLinkedComponent(
149
141
  registry,
150
- instanceNftId,
142
+ productNftId,
151
143
  name,
152
144
  token,
153
145
  POOL(),
154
146
  authorization,
155
- isInterceptingNftTransfers,
147
+ poolInfo.isInterceptingBundleTransfers,
156
148
  initialOwner,
157
- registryData,
158
149
  componentData);
159
150
 
160
151
  PoolStorage storage $ = _getPoolStorage();
152
+
153
+ $._poolInfo = poolInfo;
161
154
  $._poolService = IPoolService(_getServiceAddress(POOL()));
162
155
  $._bundleService = IBundleService(_getServiceAddress(BUNDLE()));
163
156
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
164
157
 
165
- registerInterface(type(IPoolComponent).interfaceId);
158
+ _registerInterface(type(IPoolComponent).interfaceId);
159
+ }
160
+
161
+
162
+ /// @dev Update pool fees to the specified values.
163
+ /// Pool fee: are deducted from the premium amount and goes to the pool owner.
164
+ /// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
165
+ /// Performance fee: when a bundle is closed a bundle specific profit is calculated.
166
+ /// The performance fee is deducted from this profit and goes to the pool owner.
167
+ function _setPoolFees(
168
+ Fee memory poolFee,
169
+ Fee memory stakingFee,
170
+ Fee memory performanceFee
171
+ )
172
+ internal
173
+ virtual
174
+ {
175
+ _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
176
+ }
177
+
178
+
179
+ /// @dev Sets the maximum balance amound held by this pool.
180
+ /// Function may only be called by pool owner.
181
+ function _setMaxBalanceAmount(Amount maxBalanceAmount)
182
+ internal
183
+ virtual
184
+ {
185
+ _getPoolStorage()._poolService.setMaxBalanceAmount(maxBalanceAmount);
186
+ }
187
+
188
+
189
+ /// @dev Fund the pool wallet with the specified amount.
190
+ /// Function is only available for externally managed pools.
191
+ function _fundPoolWallet(Amount amount)
192
+ internal
193
+ virtual
194
+ {
195
+ _getPoolStorage()._poolService.fundPoolWallet(amount);
196
+ }
197
+
198
+
199
+ /// @dev Withdraw the specified amount from the pool wallet.
200
+ /// Function is only available for externally managed pools.
201
+ function _defundPoolWallet(Amount amount)
202
+ internal
203
+ virtual
204
+ {
205
+ _getPoolStorage()._poolService.defundPoolWallet(amount);
206
+ }
207
+
208
+
209
+ /// @dev Creates a new empty bundle using the provided parameter values.
210
+ function _createBundle(
211
+ address bundleOwner,
212
+ Fee memory fee,
213
+ Seconds lifetime,
214
+ bytes memory filter
215
+ )
216
+ internal
217
+ returns(NftId bundleNftId)
218
+ {
219
+ bundleNftId = _getPoolStorage()._bundleService.create(
220
+ bundleOwner,
221
+ fee,
222
+ lifetime,
223
+ filter);
224
+
225
+ // TODO add logging
226
+ }
227
+
228
+
229
+ /// @dev Sets the fee for the specified bundle.
230
+ /// The fee is added on top of the poolFee and deducted from the premium amounts
231
+ /// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
232
+ function _setBundleFee(
233
+ NftId bundleNftId,
234
+ Fee memory fee
235
+ )
236
+ internal
237
+ virtual
238
+ {
239
+ _getPoolStorage()._bundleService.setFee(bundleNftId, fee);
166
240
  }
167
241
 
242
+
168
243
  /// @dev increases the staked tokens by the specified amount
169
244
  /// bundle MUST be in active or locked state
170
245
  function _stake(
@@ -173,9 +248,9 @@ abstract contract Pool is
173
248
  )
174
249
  internal
175
250
  virtual
176
- returns(Amount netAmount)
251
+ returns(Amount)
177
252
  {
178
- _getPoolStorage()._poolService.stake(bundleNftId, amount);
253
+ return _getPoolStorage()._poolService.stake(bundleNftId, amount);
179
254
  }
180
255
 
181
256
 
@@ -233,7 +308,7 @@ abstract contract Pool is
233
308
  /// To close a bundle all all linked policies MUST be in closed state as well.
234
309
  /// Closing a bundle finalizes the bundle bookkeeping including overall profit calculation.
235
310
  /// Once a bundle is closed this action cannot be reversed.
236
- function _close(NftId bundleNftId)
311
+ function _closeBundle(NftId bundleNftId)
237
312
  internal
238
313
  virtual
239
314
  {
@@ -241,88 +316,26 @@ abstract contract Pool is
241
316
  }
242
317
 
243
318
 
244
- /// @dev Sets the fee for the specified bundle.
245
- /// The fee is added on top of the poolFee and deducted from the premium amounts
246
- /// Via these fees individual bundler owner may earn income per policy in the context of peer to peer pools.
247
- function _setBundleFee(
248
- NftId bundleNftId,
249
- Fee memory fee
250
- )
251
- internal
252
- virtual
253
- {
254
- _getPoolStorage()._bundleService.setFee(bundleNftId, fee);
255
- }
256
-
257
-
258
- /// @dev Sets the maximum overall capital amound held by this pool.
259
- /// Function may only be called by pool owner.
260
- function _setMaxCapitalAmount(Amount maxCapitalAmount)
261
- internal
262
- virtual
263
- {
264
- _getPoolStorage()._poolService.setMaxCapitalAmount(maxCapitalAmount);
265
- }
266
-
267
- /// @dev Sets the required role to create/own bundles.
268
- /// May only be called once after setting up a pool.
269
- /// May only be called by pool owner.
270
- function _setBundleOwnerRole(RoleId bundleOwnerRole)
319
+ /// @dev Withdraws the specified amount of fees from the bundle.
320
+ function _withdrawBundleFees(NftId bundleNftId, Amount amount)
271
321
  internal
272
- virtual
322
+ returns (Amount withdrawnAmount)
273
323
  {
274
- _getPoolStorage()._poolService.setBundleOwnerRole(bundleOwnerRole);
324
+ return _getPoolStorage()._poolService.withdrawBundleFees(bundleNftId, amount);
275
325
  }
276
326
 
277
327
 
278
- /// @dev Update pool fees to the specified values.
279
- /// Pool fee: are deducted from the premium amount and goes to the pool owner.
280
- /// Staking fee: are deducted from the staked tokens by a bundle owner and goes to the pool owner.
281
- /// Performance fee: when a bundle is closed a bundle specific profit is calculated.
282
- /// The performance fee is deducted from this profit and goes to the pool owner.
283
- function _setPoolFees(
284
- Fee memory poolFee,
285
- Fee memory stakingFee,
286
- Fee memory performanceFee
287
- )
288
- internal
289
- virtual
290
- {
291
- _getPoolStorage()._componentService.setPoolFees(poolFee, stakingFee, performanceFee);
292
- }
293
-
294
- /// @dev Creates a new bundle using the provided parameter values.
295
- function _createBundle(
296
- address bundleOwner,
297
- Fee memory fee,
298
- Amount amount,
299
- Seconds lifetime,
300
- bytes memory filter
328
+ function _processFundedClaim(
329
+ NftId policyNftId,
330
+ ClaimId claimId,
331
+ Amount availableAmount
301
332
  )
302
333
  internal
303
- returns(NftId bundleNftId)
304
334
  {
305
- bundleNftId = _getPoolStorage()._poolService.createBundle(
306
- bundleOwner,
307
- fee,
308
- amount,
309
- lifetime,
310
- filter);
311
-
312
- // TODO add logging
335
+ _getPoolStorage()._poolService.processFundedClaim(
336
+ policyNftId, claimId, availableAmount);
313
337
  }
314
338
 
315
- // TODO remove function once this is no longer used to produce contract locations on the fly ...
316
- function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
317
- return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
318
- }
319
-
320
- function _withdrawBundleFees(NftId bundleNftId, Amount amount)
321
- internal
322
- returns (Amount withdrawnAmount)
323
- {
324
- return _getPoolStorage()._bundleService.withdrawBundleFees(bundleNftId, amount);
325
- }
326
339
 
327
340
  function _getPoolStorage() private pure returns (PoolStorage storage $) {
328
341
  assembly {
@@ -0,0 +1,216 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IComponents} from "../instance/module/IComponents.sol";
5
+ import {IInstance} from "../instance/IInstance.sol";
6
+ import {INftOwnable} from "../shared/INftOwnable.sol";
7
+ import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
8
+ import {IPoolService} from "./IPoolService.sol";
9
+ import {IRegistry} from "../registry/IRegistry.sol";
10
+
11
+ import {Amount, AmountLib} from "../type/Amount.sol";
12
+ import {ContractLib} from "../shared/ContractLib.sol";
13
+ import {Fee, FeeLib} from "../type/Fee.sol";
14
+ import {InstanceReader} from "../instance/InstanceReader.sol";
15
+ import {InstanceStore} from "../instance/InstanceStore.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {ObjectType, BUNDLE, POOL} from "../type/ObjectType.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
19
+
20
+ library PoolLib {
21
+
22
+ /// @dev Calulate required collateral for the provided parameters.
23
+ function calculateRequiredCollateral(
24
+ InstanceReader instanceReader,
25
+ NftId productNftId,
26
+ Amount sumInsuredAmount
27
+ )
28
+ public
29
+ view
30
+ returns(
31
+ NftId poolNftId,
32
+ Amount totalCollateralAmount,
33
+ Amount localCollateralAmount,
34
+ bool poolIsVerifyingApplications
35
+ )
36
+ {
37
+ poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
38
+ IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
39
+ poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
40
+
41
+ (
42
+ totalCollateralAmount,
43
+ localCollateralAmount
44
+ ) = calculateRequiredCollateral(
45
+ poolInfo.collateralizationLevel,
46
+ poolInfo.retentionLevel,
47
+ sumInsuredAmount);
48
+ }
49
+
50
+
51
+ /// @dev calulate required collateral for the provided parameters.
52
+ /// Collateralization is applied to sum insured.
53
+ /// Retention level defines the fraction of the collateral that is required locally.
54
+ function calculateRequiredCollateral(
55
+ UFixed collateralizationLevel,
56
+ UFixed retentionLevel,
57
+ Amount sumInsuredAmount
58
+ )
59
+ public
60
+ pure
61
+ returns(
62
+ Amount totalCollateralAmount,
63
+ Amount localCollateralAmount
64
+ )
65
+ {
66
+ // collateralization is applied to sum insured
67
+ UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
68
+ totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
69
+
70
+ // retention level defines how much capital is required locally
71
+ localCollateralAmount = AmountLib.toAmount(
72
+ (retentionLevel * totalUFixed).toInt());
73
+ }
74
+
75
+
76
+ function calculateStakingAmounts(
77
+ IRegistry registry,
78
+ InstanceReader instanceReader,
79
+ NftId poolNftId,
80
+ Amount stakingAmount
81
+ )
82
+ public
83
+ view
84
+ returns (
85
+ Amount feeAmount,
86
+ Amount netStakingAmount
87
+ )
88
+ {
89
+ NftId productNftId = registry.getParentNftId(poolNftId);
90
+ Fee memory stakingFee = instanceReader.getFeeInfo(productNftId).stakingFee;
91
+ (
92
+ feeAmount,
93
+ netStakingAmount
94
+ ) = FeeLib.calculateFee(
95
+ stakingFee,
96
+ stakingAmount);
97
+ }
98
+
99
+
100
+ function calculatePayoutAmounts(
101
+ IRegistry registry,
102
+ InstanceReader instanceReader,
103
+ NftId productNftId,
104
+ NftId policyNftId,
105
+ Amount payoutAmount,
106
+ address payoutBeneficiary
107
+ )
108
+ external
109
+ view
110
+ returns (
111
+ Amount netPayoutAmount,
112
+ Amount processingFeeAmount,
113
+ address beneficiary
114
+ )
115
+ {
116
+ // Amount payoutAmount = payoutInfo.amount;
117
+
118
+ if(payoutAmount.gtz()) {
119
+ netPayoutAmount = payoutAmount;
120
+
121
+ if (payoutBeneficiary == address(0)) {
122
+ beneficiary = registry.ownerOf(policyNftId);
123
+ } else {
124
+ beneficiary = payoutBeneficiary;
125
+ }
126
+
127
+ // calculate processing fees if applicable
128
+ IComponents.FeeInfo memory feeInfo = instanceReader.getFeeInfo(productNftId);
129
+ if(FeeLib.gtz(feeInfo.processingFee)) {
130
+ // TODO calculate and set net payout and processing fees
131
+ }
132
+ }
133
+ }
134
+
135
+
136
+ function getPolicyHolder(
137
+ IRegistry registry,
138
+ NftId policyNftId
139
+ )
140
+ internal
141
+ view
142
+ returns (IPolicyHolder policyHolder)
143
+ {
144
+ address policyHolderAddress = registry.ownerOf(policyNftId);
145
+ policyHolder = IPolicyHolder(policyHolderAddress);
146
+
147
+ if (!ContractLib.isPolicyHolder(policyHolderAddress)) {
148
+ policyHolder = IPolicyHolder(address(0));
149
+ }
150
+ }
151
+
152
+
153
+ function checkAndGetPoolInfo(
154
+ IRegistry registry,
155
+ address sender,
156
+ NftId bundleNftId
157
+ )
158
+ public
159
+ view
160
+ returns (
161
+ InstanceReader instanceReader,
162
+ InstanceStore instanceStore,
163
+ NftId instanceNftId,
164
+ NftId poolNftId,
165
+ IComponents.PoolInfo memory poolInfo
166
+ )
167
+ {
168
+ checkNftType(registry, bundleNftId, BUNDLE());
169
+
170
+ IInstance instance;
171
+ (poolNftId, instance) = getAndVerifyActivePool(registry, sender);
172
+ instanceReader = instance.getInstanceReader();
173
+ instanceStore = instance.getInstanceStore();
174
+ instanceNftId = instance.getNftId();
175
+ poolInfo = instanceReader.getPoolInfo(poolNftId);
176
+
177
+ if (registry.getParentNftId(bundleNftId) != poolNftId) {
178
+ revert IPoolService.ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
179
+ }
180
+ }
181
+
182
+
183
+ function getAndVerifyActivePool(
184
+ IRegistry registry,
185
+ address sender
186
+ )
187
+ public
188
+ view
189
+ returns (
190
+ NftId poolNftId,
191
+ IInstance instance
192
+ )
193
+ {
194
+ (
195
+ IRegistry.ObjectInfo memory info,
196
+ address instanceAddress
197
+ ) = ContractLib.getAndVerifyComponent(
198
+ registry,
199
+ sender,
200
+ POOL(),
201
+ true); // only active pools
202
+
203
+ poolNftId = info.nftId;
204
+ instance = IInstance(instanceAddress);
205
+ }
206
+
207
+ function checkNftType(
208
+ IRegistry registry,
209
+ NftId nftId,
210
+ ObjectType expectedObjectType
211
+ ) internal view {
212
+ if(!registry.isObjectType(nftId, expectedObjectType)) {
213
+ revert INftOwnable.ErrorNftOwnableInvalidType(nftId, expectedObjectType);
214
+ }
215
+ }
216
+ }