@etherisc/gif-next 0.0.2-b2e620f-736 → 0.0.2-b37fa8b-169

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 (482) hide show
  1. package/README.md +63 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +573 -288
  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 +8 -39
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +295 -47
  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 +452 -210
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +119 -14
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +66 -144
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +275 -59
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -88
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +512 -204
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +147 -77
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -87
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +358 -82
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -100
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +274 -58
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -132
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +274 -58
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +128 -168
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +274 -58
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -63
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -138
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +274 -58
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +342 -183
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  64. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  67. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  68. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +429 -35
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +345 -12
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +473 -98
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +805 -448
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +246 -70
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +656 -418
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +377 -64
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +524 -1520
  87. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2835 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -35
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +294 -53
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -21
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -21
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -69
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +274 -58
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -31
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -31
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -48
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +274 -58
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -42
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +231 -19
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +40 -42
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +279 -43
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +91 -41
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +704 -472
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +710 -407
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +184 -128
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +19 -21
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +224 -210
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -63
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -21
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -141
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -21
  230. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +43 -6
  232. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -21
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +43 -6
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  254. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  256. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  258. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  264. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1450 -140
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
  270. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  271. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  272. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -229
  274. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  275. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  276. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +129 -70
  278. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  280. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
  282. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +86 -52
  284. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
  286. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  287. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  289. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
  290. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  293. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  295. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  297. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  299. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  301. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  303. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  305. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  306. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  307. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  309. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  310. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  311. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  313. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  315. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  317. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  319. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +9 -4
  321. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  323. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  325. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  330. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  332. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  334. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  336. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
  338. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  340. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  342. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  344. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  345. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  346. package/contracts/accounting/AccountingService.sol +15 -3
  347. package/contracts/accounting/IAccountingService.sol +4 -2
  348. package/contracts/authorization/AccessAdmin.sol +389 -298
  349. package/contracts/authorization/AccessAdminLib.sol +396 -0
  350. package/contracts/authorization/AccessManagerCloneable.sol +40 -31
  351. package/contracts/authorization/Authorization.sol +60 -228
  352. package/contracts/authorization/IAccess.sol +25 -7
  353. package/contracts/authorization/IAccessAdmin.sol +81 -80
  354. package/contracts/authorization/IAuthorization.sol +3 -51
  355. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  356. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  357. package/contracts/distribution/BasicDistribution.sol +13 -11
  358. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  359. package/contracts/distribution/Distribution.sol +20 -60
  360. package/contracts/distribution/DistributionService.sol +165 -74
  361. package/contracts/distribution/IDistributionComponent.sol +3 -10
  362. package/contracts/distribution/IDistributionService.sol +34 -19
  363. package/contracts/examples/fire/FirePool.sol +0 -4
  364. package/contracts/examples/fire/FireProduct.sol +7 -12
  365. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  366. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  367. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  368. package/contracts/examples/unpermissioned/SimpleProduct.sol +87 -27
  369. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  370. package/contracts/instance/BaseStore.sol +93 -0
  371. package/contracts/instance/IBaseStore.sol +37 -0
  372. package/contracts/instance/IInstance.sol +99 -14
  373. package/contracts/instance/IInstanceService.sol +54 -7
  374. package/contracts/instance/Instance.sol +166 -70
  375. package/contracts/instance/InstanceAdmin.sol +227 -296
  376. package/contracts/instance/InstanceAuthorizationV3.sol +121 -60
  377. package/contracts/instance/InstanceReader.sol +378 -373
  378. package/contracts/instance/InstanceService.sol +283 -173
  379. package/contracts/instance/InstanceStore.sol +9 -82
  380. package/contracts/instance/ProductStore.sol +235 -0
  381. package/contracts/instance/RiskSet.sol +10 -2
  382. package/contracts/instance/TargetNames.sol +10 -0
  383. package/contracts/instance/base/BalanceStore.sol +4 -6
  384. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  385. package/contracts/instance/module/IBundle.sol +6 -5
  386. package/contracts/instance/module/IComponents.sol +16 -5
  387. package/contracts/instance/module/IDistribution.sol +21 -8
  388. package/contracts/instance/module/IPolicy.sol +28 -8
  389. package/contracts/instance/module/IRisk.sol +2 -0
  390. package/contracts/oracle/BasicOracle.sol +2 -4
  391. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  392. package/contracts/oracle/IOracle.sol +9 -4
  393. package/contracts/oracle/Oracle.sol +2 -4
  394. package/contracts/oracle/OracleService.sol +8 -8
  395. package/contracts/pool/BasicPool.sol +3 -16
  396. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  397. package/contracts/pool/BundleService.sol +34 -43
  398. package/contracts/pool/IBundleService.sol +14 -13
  399. package/contracts/pool/IPoolService.sol +7 -2
  400. package/contracts/pool/Pool.sol +4 -16
  401. package/contracts/pool/PoolLib.sol +127 -2
  402. package/contracts/pool/PoolService.sol +41 -184
  403. package/contracts/product/ApplicationService.sol +85 -17
  404. package/contracts/product/BasicProduct.sol +1 -3
  405. package/contracts/product/BasicProductAuthorization.sol +11 -4
  406. package/contracts/product/ClaimService.sol +99 -105
  407. package/contracts/product/IApplicationService.sol +24 -2
  408. package/contracts/product/IClaimService.sol +5 -4
  409. package/contracts/product/IPolicyService.sol +9 -2
  410. package/contracts/product/IPricingService.sol +1 -0
  411. package/contracts/product/IRiskService.sol +25 -10
  412. package/contracts/product/PolicyService.sol +41 -103
  413. package/contracts/product/PolicyServiceLib.sol +79 -5
  414. package/contracts/product/PricingService.sol +33 -31
  415. package/contracts/product/Product.sol +44 -29
  416. package/contracts/product/RiskService.sol +63 -18
  417. package/contracts/registry/IRegistry.sol +15 -9
  418. package/contracts/registry/IRelease.sol +6 -3
  419. package/contracts/registry/Registry.sol +15 -9
  420. package/contracts/registry/RegistryAdmin.sol +100 -263
  421. package/contracts/registry/RegistryAuthorization.sol +336 -0
  422. package/contracts/registry/RegistryService.sol +1 -1
  423. package/contracts/registry/ReleaseAdmin.sol +62 -112
  424. package/contracts/registry/ReleaseRegistry.sol +57 -43
  425. package/contracts/registry/ServiceAuthorizationV3.sol +48 -32
  426. package/contracts/registry/TokenRegistry.sol +56 -52
  427. package/contracts/shared/Component.sol +17 -29
  428. package/contracts/shared/ComponentService.sol +249 -238
  429. package/contracts/shared/ContractLib.sol +134 -75
  430. package/contracts/shared/IComponent.sol +1 -4
  431. package/contracts/shared/IComponentService.sol +21 -19
  432. package/contracts/shared/IKeyValueStore.sol +9 -1
  433. package/contracts/shared/INftOwnable.sol +2 -0
  434. package/contracts/shared/IRegisterable.sol +0 -1
  435. package/contracts/shared/InitializableERC165.sol +9 -1
  436. package/contracts/shared/InstanceLinkedComponent.sol +4 -7
  437. package/contracts/shared/KeyValueStore.sol +3 -3
  438. package/contracts/shared/NftOwnable.sol +4 -2
  439. package/contracts/shared/PolicyHolder.sol +3 -2
  440. package/contracts/shared/Registerable.sol +1 -4
  441. package/contracts/shared/Service.sol +6 -4
  442. package/contracts/shared/TokenHandler.sol +5 -4
  443. package/contracts/staking/IStaking.sol +266 -64
  444. package/contracts/staking/IStakingService.sol +44 -82
  445. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  446. package/contracts/staking/Staking.sol +474 -202
  447. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  448. package/contracts/staking/StakingManager.sol +4 -3
  449. package/contracts/staking/StakingReader.sol +58 -77
  450. package/contracts/staking/StakingService.sol +49 -158
  451. package/contracts/staking/StakingServiceManager.sol +1 -0
  452. package/contracts/staking/StakingStore.sol +1093 -330
  453. package/contracts/staking/TargetHandler.sol +132 -0
  454. package/contracts/staking/TargetManagerLib.sol +69 -46
  455. package/contracts/type/Amount.sol +4 -0
  456. package/contracts/type/Blocknumber.sol +15 -15
  457. package/contracts/type/ChainId.sol +101 -0
  458. package/contracts/type/Fee.sol +8 -8
  459. package/contracts/type/NftId.sol +3 -3
  460. package/contracts/type/ObjectType.sol +21 -17
  461. package/contracts/type/RiskId.sol +4 -3
  462. package/contracts/type/RoleId.sol +57 -59
  463. package/contracts/type/Seconds.sol +19 -0
  464. package/contracts/type/String.sol +12 -0
  465. package/contracts/type/Timestamp.sol +4 -2
  466. package/contracts/type/UFixed.sol +28 -10
  467. package/contracts/type/Version.sol +39 -0
  468. package/contracts/upgradeability/IVersionable.sol +3 -0
  469. package/contracts/upgradeability/ProxyManager.sol +25 -11
  470. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  471. package/contracts/upgradeability/Versionable.sol +6 -3
  472. package/package.json +2 -2
  473. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  474. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  475. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  476. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  477. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  478. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  479. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  480. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  481. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  482. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -123,11 +123,10 @@ abstract contract Pool is
123
123
 
124
124
  // Internals
125
125
 
126
- function _initializePool(
126
+ function __Pool_init(
127
127
  address registry,
128
128
  NftId productNftId,
129
129
  string memory name,
130
- address token,
131
130
  IComponents.PoolInfo memory poolInfo,
132
131
  IAuthorization authorization,
133
132
  address initialOwner,
@@ -137,11 +136,10 @@ abstract contract Pool is
137
136
  virtual
138
137
  onlyInitializing()
139
138
  {
140
- _initializeInstanceLinkedComponent(
139
+ __InstanceLinkedComponent_init(
141
140
  registry,
142
141
  productNftId,
143
142
  name,
144
- token,
145
143
  POOL(),
146
144
  authorization,
147
145
  poolInfo.isInterceptingBundleTransfers,
@@ -285,21 +283,11 @@ abstract contract Pool is
285
283
  /// @dev Locks the specified bundle.
286
284
  /// A bundle to be locked MUST be in active state.
287
285
  /// Locked bundles may not be used to collateralize any new policy.
288
- function _lockBundle(NftId bundleNftId)
286
+ function _setBundleLocked(NftId bundleNftId, bool locked)
289
287
  internal
290
288
  virtual
291
289
  {
292
- _getPoolStorage()._bundleService.lock(bundleNftId);
293
- }
294
-
295
-
296
- /// @dev Unlocks the specified bundle.
297
- /// A bundle to be unlocked MUST be in locked state.
298
- function _unlockBundle(NftId bundleNftId)
299
- internal
300
- virtual
301
- {
302
- _getPoolStorage()._bundleService.unlock(bundleNftId);
290
+ _getPoolStorage()._bundleService.setLocked(bundleNftId, locked);
303
291
  }
304
292
 
305
293
 
@@ -15,6 +15,8 @@ import {InstanceReader} from "../instance/InstanceReader.sol";
15
15
  import {InstanceStore} from "../instance/InstanceStore.sol";
16
16
  import {NftId} from "../type/NftId.sol";
17
17
  import {ObjectType, BUNDLE, POOL} from "../type/ObjectType.sol";
18
+ import {PayoutId} from "../type/PayoutId.sol";
19
+ import {TokenHandler} from "../shared/TokenHandler.sol";
18
20
  import {UFixed} from "../type/UFixed.sol";
19
21
 
20
22
  library PoolLib {
@@ -105,7 +107,7 @@ library PoolLib {
105
107
  Amount payoutAmount,
106
108
  address payoutBeneficiary
107
109
  )
108
- external
110
+ public
109
111
  view
110
112
  returns (
111
113
  Amount netPayoutAmount,
@@ -127,7 +129,7 @@ library PoolLib {
127
129
  // calculate processing fees if applicable
128
130
  IComponents.FeeInfo memory feeInfo = instanceReader.getFeeInfo(productNftId);
129
131
  if(FeeLib.gtz(feeInfo.processingFee)) {
130
- // TODO calculate and set net payout and processing fees
132
+ (processingFeeAmount, netPayoutAmount) = FeeLib.calculateFee(feeInfo.processingFee, payoutAmount);
131
133
  }
132
134
  }
133
135
  }
@@ -204,6 +206,32 @@ library PoolLib {
204
206
  instance = IInstance(instanceAddress);
205
207
  }
206
208
 
209
+
210
+ function getAndVerifyActiveComponent(
211
+ IRegistry registry,
212
+ address sender,
213
+ ObjectType expectedComponentType
214
+ )
215
+ public
216
+ view
217
+ returns (
218
+ NftId componentNftId,
219
+ IInstance instance
220
+ )
221
+ {
222
+ (
223
+ IRegistry.ObjectInfo memory info,
224
+ address instanceAddress
225
+ ) = ContractLib.getAndVerifyComponent(
226
+ registry,
227
+ sender,
228
+ expectedComponentType,
229
+ true); // only active components
230
+
231
+ componentNftId = info.nftId;
232
+ instance = IInstance(instanceAddress);
233
+ }
234
+
207
235
  function checkNftType(
208
236
  IRegistry registry,
209
237
  NftId nftId,
@@ -213,4 +241,101 @@ library PoolLib {
213
241
  revert INftOwnable.ErrorNftOwnableInvalidType(nftId, expectedObjectType);
214
242
  }
215
243
  }
244
+
245
+ function transferTokenAndNotifyPolicyHolder(
246
+ IRegistry registry,
247
+ InstanceReader instanceReader,
248
+ TokenHandler poolTokenHandler,
249
+ NftId productNftId,
250
+ NftId policyNftId,
251
+ PayoutId payoutId,
252
+ Amount payoutAmount,
253
+ address payoutBeneficiary
254
+ )
255
+ external
256
+ returns (
257
+ Amount netPayoutAmount,
258
+ Amount processingFeeAmount
259
+ )
260
+ {
261
+ address beneficiary;
262
+
263
+ (
264
+ netPayoutAmount,
265
+ processingFeeAmount,
266
+ beneficiary
267
+ ) = calculatePayoutAmounts(
268
+ registry,
269
+ instanceReader,
270
+ productNftId,
271
+ policyNftId,
272
+ payoutAmount,
273
+ payoutBeneficiary);
274
+
275
+ // 1st token tx to payout to beneficiary
276
+ poolTokenHandler.pushToken(
277
+ beneficiary,
278
+ netPayoutAmount);
279
+
280
+ // 2nd token tx to transfer processing fees to product wallet
281
+ // if processingFeeAmount > 0
282
+ if (processingFeeAmount.gtz()) {
283
+ poolTokenHandler.pushToken(
284
+ instanceReader.getWallet(productNftId),
285
+ processingFeeAmount);
286
+ }
287
+
288
+ // callback to policy holder if applicable
289
+ policyHolderPayoutExecuted(
290
+ registry,
291
+ policyNftId,
292
+ payoutId,
293
+ beneficiary,
294
+ netPayoutAmount);
295
+ }
296
+
297
+ function policyHolderPayoutExecuted(
298
+ IRegistry registry,
299
+ NftId policyNftId,
300
+ PayoutId payoutId,
301
+ address beneficiary,
302
+ Amount payoutAmount
303
+ )
304
+ private
305
+ {
306
+ IPolicyHolder policyHolder = getPolicyHolder(registry, policyNftId);
307
+ if(address(policyHolder) != address(0)) {
308
+ policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
309
+ }
310
+ }
311
+
312
+ /// @dev Transfers the specified amount from the "from account" to the pool's wallet
313
+ function pullStakingAmount(
314
+ InstanceReader reader,
315
+ NftId poolNftId,
316
+ address from,
317
+ Amount amount
318
+ )
319
+ external
320
+ {
321
+ IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
322
+ info.tokenHandler.pullToken(
323
+ from,
324
+ amount);
325
+ }
326
+
327
+ /// @dev Transfers the specified amount from the pool's wallet to the "to account"
328
+ function pushUnstakingAmount(
329
+ InstanceReader reader,
330
+ NftId poolNftId,
331
+ address to,
332
+ Amount amount
333
+ )
334
+ external
335
+ {
336
+ IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
337
+ info.tokenHandler.pushToken(
338
+ to,
339
+ amount);
340
+ }
216
341
  }
@@ -2,13 +2,11 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccountingService} from "../accounting/IAccountingService.sol";
5
- import {IBundle} from "../instance/module/IBundle.sol";
6
5
  import {IBundleService} from "./IBundleService.sol";
7
6
  import {IComponents} from "../instance/module/IComponents.sol";
8
7
  import {IComponentService} from "../shared/IComponentService.sol";
9
8
  import {IInstance} from "../instance/IInstance.sol";
10
9
  import {IPolicy} from "../instance/module/IPolicy.sol";
11
- import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
12
10
  import {IPoolComponent} from "../pool/IPoolComponent.sol";
13
11
  import {IPoolService} from "./IPoolService.sol";
14
12
  import {IProductComponent} from "../product/IProductComponent.sol";
@@ -27,9 +25,6 @@ import {PayoutId} from "../type/PayoutId.sol";
27
25
  import {PoolLib} from "./PoolLib.sol";
28
26
  import {Service} from "../shared/Service.sol";
29
27
  import {TokenHandler} from "../shared/TokenHandler.sol";
30
- import {UFixed} from "../type/UFixed.sol";
31
-
32
- string constant POOL_SERVICE_NAME = "PoolService";
33
28
 
34
29
 
35
30
  contract PoolService is
@@ -69,6 +64,7 @@ contract PoolService is
69
64
  function setMaxBalanceAmount(Amount maxBalanceAmount)
70
65
  external
71
66
  virtual
67
+ restricted()
72
68
  {
73
69
  (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
74
70
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -84,6 +80,7 @@ contract PoolService is
84
80
 
85
81
  function closeBundle(NftId bundleNftId)
86
82
  external
83
+ restricted()
87
84
  virtual
88
85
  {
89
86
  _checkNftType(bundleNftId, BUNDLE());
@@ -119,6 +116,7 @@ contract PoolService is
119
116
  Amount availableAmount
120
117
  )
121
118
  external
119
+ restricted()
122
120
  virtual
123
121
  {
124
122
  _checkNftType(policyNftId, POLICY());
@@ -175,7 +173,7 @@ contract PoolService is
175
173
  function stake(NftId bundleNftId, Amount amount)
176
174
  external
177
175
  virtual
178
- // TODO: restricted() (once #462 is done)
176
+ restricted()
179
177
  returns(
180
178
  Amount netAmount
181
179
  )
@@ -222,7 +220,7 @@ contract PoolService is
222
220
 
223
221
  // collect tokens from bundle owner
224
222
  address bundleOwner = getRegistry().ownerOf(bundleNftId);
225
- _pullStakingAmount(
223
+ PoolLib.pullStakingAmount(
226
224
  instanceReader,
227
225
  poolNftId,
228
226
  bundleOwner,
@@ -235,7 +233,7 @@ contract PoolService is
235
233
  function unstake(NftId bundleNftId, Amount amount)
236
234
  external
237
235
  virtual
238
- // TODO: restricted() (once #462 is done)
236
+ restricted()
239
237
  returns(Amount netAmount)
240
238
  {
241
239
  (
@@ -269,7 +267,7 @@ contract PoolService is
269
267
 
270
268
  // transfer amount to bundle owner
271
269
  address bundleOwner = getRegistry().ownerOf(bundleNftId);
272
- _pushUnstakingAmount(
270
+ PoolLib.pushUnstakingAmount(
273
271
  instanceReader,
274
272
  poolNftId,
275
273
  bundleOwner,
@@ -281,7 +279,7 @@ contract PoolService is
281
279
  function fundPoolWallet(Amount amount)
282
280
  external
283
281
  virtual
284
- // restricted()
282
+ restricted()
285
283
  {
286
284
  (
287
285
  NftId poolNftId,
@@ -297,7 +295,7 @@ contract PoolService is
297
295
  address poolOwner = getRegistry().ownerOf(poolNftId);
298
296
  emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
299
297
 
300
- _pullStakingAmount(
298
+ PoolLib.pullStakingAmount(
301
299
  reader,
302
300
  poolNftId,
303
301
  poolOwner,
@@ -308,7 +306,7 @@ contract PoolService is
308
306
  function defundPoolWallet(Amount amount)
309
307
  external
310
308
  virtual
311
- // restricted()
309
+ restricted()
312
310
  {
313
311
  (
314
312
  NftId poolNftId,
@@ -324,7 +322,7 @@ contract PoolService is
324
322
  address poolOwner = getRegistry().ownerOf(poolNftId);
325
323
  emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
326
324
 
327
- _pushUnstakingAmount(
325
+ PoolLib.pushUnstakingAmount(
328
326
  reader,
329
327
  poolNftId,
330
328
  poolOwner,
@@ -363,6 +361,8 @@ contract PoolService is
363
361
  bundleNftId,
364
362
  bundleNetAmount,
365
363
  bundleFeeAmount);
364
+
365
+ emit LogPoolServiceSaleProcessed(poolNftId, bundleNftId, bundleNetAmount, bundleFeeAmount, poolFeeAmount);
366
366
  }
367
367
 
368
368
 
@@ -421,10 +421,15 @@ contract PoolService is
421
421
  bundleNftId,
422
422
  totalCollateralAmount);
423
423
 
424
- // TODO add logging
424
+ emit LogPoolServiceApplicationVerified(poolNftId, bundleNftId, applicationNftId, totalCollateralAmount);
425
425
  }
426
426
 
427
- // TODO add logging
427
+ emit LogPoolServiceCollateralLocked(
428
+ poolNftId,
429
+ bundleNftId,
430
+ applicationNftId,
431
+ totalCollateralAmount,
432
+ localCollateralAmount);
428
433
  }
429
434
 
430
435
  function processPayout(
@@ -440,6 +445,10 @@ contract PoolService is
440
445
  external
441
446
  virtual
442
447
  restricted()
448
+ returns (
449
+ Amount netPayoutAmount,
450
+ Amount processingFeeAmount
451
+ )
443
452
  {
444
453
  // checks
445
454
  _checkNftType(policyNftId, POLICY());
@@ -466,9 +475,7 @@ contract PoolService is
466
475
  payoutAmount);
467
476
 
468
477
  // update value locked with staking service
469
- TokenHandler poolTokenHandler = TokenHandler(
470
- instanceReader.getTokenHandler(
471
- poolNftId));
478
+ TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
472
479
 
473
480
  _staking.decreaseTotalValueLocked(
474
481
  instanceReader.getInstanceNftId(),
@@ -476,7 +483,8 @@ contract PoolService is
476
483
  payoutAmount);
477
484
 
478
485
  // interactions
479
- _transferTokenAndNotifyPolicyHolder(
486
+ (netPayoutAmount, processingFeeAmount) = PoolLib.transferTokenAndNotifyPolicyHolder(
487
+ getRegistry(),
480
488
  instanceReader,
481
489
  poolTokenHandler,
482
490
  productNftId,
@@ -484,50 +492,22 @@ contract PoolService is
484
492
  payoutId,
485
493
  payoutAmount,
486
494
  payoutBeneficiary);
487
- }
488
-
489
- function _transferTokenAndNotifyPolicyHolder(
490
- InstanceReader instanceReader,
491
- TokenHandler poolTokenHandler,
492
- NftId productNftId,
493
- NftId policyNftId,
494
- PayoutId payoutId,
495
- Amount payoutAmount,
496
- address payoutBeneficiary
497
- )
498
- internal
499
- {
500
- (
501
- Amount netPayoutAmount,
502
- Amount processingFeeAmount,
503
- address beneficiary
504
- ) = PoolLib.calculatePayoutAmounts(
505
- getRegistry(),
506
- instanceReader,
507
- productNftId,
508
- policyNftId,
509
- payoutAmount,
510
- payoutBeneficiary);
511
-
512
- // 1st token tx to payout to beneficiary
513
- poolTokenHandler.pushToken(
514
- beneficiary,
515
- netPayoutAmount);
516
-
517
- // 2nd token tx to transfer processing fees to product wallet
518
- // if processingFeeAmount > 0
495
+
519
496
  if (processingFeeAmount.gtz()) {
520
- poolTokenHandler.pushToken(
521
- instanceReader.getWallet(productNftId),
497
+ _accountingService.increaseProductFeesForPool(
498
+ instanceStore,
499
+ productNftId,
522
500
  processingFeeAmount);
523
501
  }
524
502
 
525
- // callback to policy holder if applicable
526
- _policyHolderPayoutExecuted(
503
+ emit LogPoolServicePayoutProcessed(
504
+ poolNftId,
505
+ bundleNftId,
527
506
  policyNftId,
528
507
  payoutId,
529
- beneficiary,
530
- netPayoutAmount);
508
+ netPayoutAmount,
509
+ processingFeeAmount,
510
+ payoutBeneficiary);
531
511
  }
532
512
 
533
513
 
@@ -607,112 +587,11 @@ contract PoolService is
607
587
  instanceReader.getInstanceNftId(),
608
588
  address(instanceReader.getToken(policyInfo.productNftId)),
609
589
  remainingCollateralAmount);
610
- }
611
-
612
-
613
- // function calculateRequiredCollateral(
614
- // InstanceReader instanceReader,
615
- // NftId productNftId,
616
- // Amount sumInsuredAmount
617
- // )
618
- // public
619
- // view
620
- // returns(
621
- // NftId poolNftId,
622
- // Amount totalCollateralAmount,
623
- // Amount localCollateralAmount,
624
- // bool poolIsVerifyingApplications
625
- // )
626
- // {
627
- // return CollateralLib.calculateRequiredCollateral(
628
- // instanceReader,
629
- // productNftId,
630
- // sumInsuredAmount);
631
- // }
632
590
 
633
- // _checkNftType(productNftId, PRODUCT());
634
-
635
- // poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
636
- // IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
637
- // poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
638
-
639
- // (
640
- // totalCollateralAmount,
641
- // localCollateralAmount
642
- // ) = calculateRequiredCollateral(
643
- // poolInfo.collateralizationLevel,
644
- // poolInfo.retentionLevel,
645
- // sumInsuredAmount);
646
- // }
647
-
648
-
649
- // function calculateRequiredCollateral(
650
- // UFixed collateralizationLevel,
651
- // UFixed retentionLevel,
652
- // Amount sumInsuredAmount
653
- // )
654
- // public
655
- // pure
656
- // returns(
657
- // Amount totalCollateralAmount,
658
- // Amount localCollateralAmount
659
- // )
660
- // {
661
- // // collateralization is applied to sum insured
662
- // UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
663
- // totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
664
-
665
- // // retention level defines how much capital is required locally
666
- // localCollateralAmount = AmountLib.toAmount(
667
- // (retentionLevel * totalUFixed).toInt());
668
- // }
669
-
670
-
671
-
672
-
673
- function _policyHolderPayoutExecuted(
674
- NftId policyNftId,
675
- PayoutId payoutId,
676
- address beneficiary,
677
- Amount payoutAmount
678
- )
679
- internal
680
- {
681
- IPolicyHolder policyHolder = PoolLib.getPolicyHolder(getRegistry(), policyNftId);
682
- if(address(policyHolder) != address(0)) {
683
- policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
684
- }
685
- }
686
-
687
-
688
- /// @dev Transfers the specified amount from the "from account" to the pool's wallet
689
- function _pullStakingAmount(
690
- InstanceReader reader,
691
- NftId poolNftId,
692
- address from,
693
- Amount amount
694
- )
695
- internal
696
- {
697
- IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
698
- info.tokenHandler.pullToken(
699
- from,
700
- amount);
701
- }
702
-
703
- /// @dev Transfers the specified amount from the pool's wallet to the "to account"
704
- function _pushUnstakingAmount(
705
- InstanceReader reader,
706
- NftId poolNftId,
707
- address to,
708
- Amount amount
709
- )
710
- internal
711
- {
712
- IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
713
- info.tokenHandler.pushToken(
714
- to,
715
- amount);
591
+ emit LogPoolServiceCollateralReleased(
592
+ policyInfo.bundleNftId,
593
+ policyNftId,
594
+ remainingCollateralAmount);
716
595
  }
717
596
 
718
597
 
@@ -728,28 +607,6 @@ contract PoolService is
728
607
  return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
729
608
  }
730
609
 
731
- // function _getAndVerifyActivePool()
732
- // internal
733
- // virtual
734
- // view
735
- // returns (
736
- // NftId poolNftId,
737
- // IInstance instance
738
- // )
739
- // {
740
- // (
741
- // IRegistry.ObjectInfo memory info,
742
- // address instanceAddress
743
- // ) = ContractLib.getAndVerifyComponent(
744
- // getRegistry(),
745
- // msg.sender,
746
- // POOL(),
747
- // true); // only active pools
748
-
749
- // poolNftId = info.nftId;
750
- // instance = IInstance(instanceAddress);
751
- // }
752
-
753
610
 
754
611
  function _getDomain() internal pure override returns(ObjectType) {
755
612
  return POOL();