@etherisc/gif-next 0.0.2-858f0b8-208 → 0.0.2-85e1eb3-876

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 (542) hide show
  1. package/README.md +89 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +190 -464
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +109 -356
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +644 -392
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +209 -133
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +96 -191
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +476 -137
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -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 +567 -67
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +385 -60
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +573 -165
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1034 -311
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1696 -724
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -231
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +974 -651
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +135 -333
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +103 -133
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +111 -293
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +164 -354
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +386 -482
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +168 -144
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +259 -153
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +142 -183
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +524 -288
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +140 -333
  135. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +730 -549
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +206 -114
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +159 -99
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +288 -409
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +358 -127
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -226
  163. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  164. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +477 -373
  167. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -124
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  176. package/artifacts/contracts/product/Product.sol/Product.json +280 -401
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +795 -394
  195. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1061 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Component.sol/Component.json +99 -252
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +493 -638
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +183 -133
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -93
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -133
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +42 -6
  233. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  244. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  246. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +110 -292
  248. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +48 -7
  250. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  252. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  254. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  256. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  258. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  260. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  262. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  268. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  270. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1087 -160
  272. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  274. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/Staking.sol/Staking.json +1285 -387
  276. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  277. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +424 -0
  278. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  280. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +222 -105
  282. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +175 -223
  284. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  286. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  288. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +960 -732
  290. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +131 -50
  292. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  293. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  295. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  297. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +174 -0
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  333. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  339. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  343. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  344. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  346. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +118 -79
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  348. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  350. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  351. package/contracts/accounting/AccountingService.sol +274 -0
  352. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  353. package/contracts/accounting/IAccountingService.sol +47 -0
  354. package/contracts/authorization/AccessAdmin.sol +458 -269
  355. package/contracts/authorization/AccessAdminLib.sol +396 -0
  356. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  357. package/contracts/authorization/Authorization.sol +159 -208
  358. package/contracts/authorization/IAccess.sol +25 -6
  359. package/contracts/authorization/IAccessAdmin.sol +87 -79
  360. package/contracts/authorization/IAuthorization.sol +9 -36
  361. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  362. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  363. package/contracts/distribution/BasicDistribution.sol +21 -18
  364. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  365. package/contracts/distribution/Distribution.sol +44 -92
  366. package/contracts/distribution/DistributionService.sol +243 -131
  367. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  368. package/contracts/distribution/IDistributionComponent.sol +4 -11
  369. package/contracts/distribution/IDistributionService.sol +47 -29
  370. package/contracts/examples/fire/DamageLevel.sol +59 -0
  371. package/contracts/examples/fire/FirePool.sol +86 -0
  372. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  373. package/contracts/examples/fire/FireProduct.sol +433 -0
  374. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  375. package/contracts/examples/fire/FireUSD.sol +26 -0
  376. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  377. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  378. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  379. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  380. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  382. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  383. package/contracts/instance/BundleSet.sol +42 -38
  384. package/contracts/instance/IInstance.sol +102 -43
  385. package/contracts/instance/IInstanceService.sol +59 -34
  386. package/contracts/instance/Instance.sol +193 -100
  387. package/contracts/instance/InstanceAdmin.sol +275 -158
  388. package/contracts/instance/InstanceAuthorizationV3.sol +120 -58
  389. package/contracts/instance/InstanceReader.sol +478 -251
  390. package/contracts/instance/InstanceService.sol +293 -236
  391. package/contracts/instance/InstanceServiceManager.sol +6 -7
  392. package/contracts/instance/InstanceStore.sol +23 -2
  393. package/contracts/instance/RiskSet.sol +126 -0
  394. package/contracts/instance/base/BalanceStore.sol +4 -6
  395. package/contracts/instance/base/ObjectCounter.sol +1 -2
  396. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  397. package/contracts/instance/base/ObjectSet.sol +31 -33
  398. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  399. package/contracts/instance/module/IBundle.sol +6 -5
  400. package/contracts/instance/module/IComponents.sol +30 -15
  401. package/contracts/instance/module/IDistribution.sol +21 -8
  402. package/contracts/instance/module/IPolicy.sol +50 -29
  403. package/contracts/instance/module/IRisk.sol +5 -0
  404. package/contracts/oracle/BasicOracle.sol +2 -5
  405. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  406. package/contracts/oracle/IOracle.sol +9 -4
  407. package/contracts/oracle/IOracleService.sol +2 -1
  408. package/contracts/oracle/Oracle.sol +9 -21
  409. package/contracts/oracle/OracleService.sol +119 -87
  410. package/contracts/oracle/OracleServiceManager.sol +6 -6
  411. package/contracts/pool/BasicPool.sol +36 -40
  412. package/contracts/pool/BasicPoolAuthorization.sol +36 -13
  413. package/contracts/pool/BundleService.sol +140 -191
  414. package/contracts/pool/BundleServiceManager.sol +6 -6
  415. package/contracts/pool/IBundleService.sol +33 -50
  416. package/contracts/pool/IPoolComponent.sol +19 -15
  417. package/contracts/pool/IPoolService.sol +97 -76
  418. package/contracts/pool/Pool.sol +142 -137
  419. package/contracts/pool/PoolLib.sol +341 -0
  420. package/contracts/pool/PoolService.sol +390 -301
  421. package/contracts/pool/PoolServiceManager.sol +4 -4
  422. package/contracts/product/ApplicationService.sol +143 -46
  423. package/contracts/product/ApplicationServiceManager.sol +4 -4
  424. package/contracts/product/BasicProduct.sol +11 -14
  425. package/contracts/product/BasicProductAuthorization.sol +32 -12
  426. package/contracts/product/ClaimService.sol +385 -172
  427. package/contracts/product/ClaimServiceManager.sol +4 -4
  428. package/contracts/product/IApplicationService.sol +29 -3
  429. package/contracts/product/IClaimService.sol +48 -11
  430. package/contracts/product/IPolicyService.sol +61 -43
  431. package/contracts/product/IPricingService.sol +11 -10
  432. package/contracts/product/IProductComponent.sol +27 -5
  433. package/contracts/product/IRiskService.sol +48 -0
  434. package/contracts/product/PolicyService.sol +423 -307
  435. package/contracts/product/PolicyServiceLib.sol +139 -0
  436. package/contracts/product/PolicyServiceManager.sol +4 -4
  437. package/contracts/product/PricingService.sol +90 -84
  438. package/contracts/product/PricingServiceManager.sol +4 -4
  439. package/contracts/product/Product.sol +188 -106
  440. package/contracts/product/RiskService.sol +190 -0
  441. package/contracts/product/RiskServiceManager.sol +39 -0
  442. package/contracts/registry/ChainNft.sol +72 -40
  443. package/contracts/registry/IRegistry.sol +70 -32
  444. package/contracts/registry/IRegistryService.sol +5 -12
  445. package/contracts/registry/IRelease.sol +29 -0
  446. package/contracts/registry/ITransferInterceptor.sol +1 -2
  447. package/contracts/registry/Registry.sol +367 -207
  448. package/contracts/registry/RegistryAdmin.sol +110 -287
  449. package/contracts/registry/RegistryAuthorization.sol +308 -0
  450. package/contracts/registry/RegistryService.sol +38 -49
  451. package/contracts/registry/RegistryServiceManager.sol +3 -3
  452. package/contracts/registry/ReleaseAdmin.sol +195 -0
  453. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  454. package/contracts/registry/ReleaseRegistry.sol +279 -239
  455. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  456. package/contracts/registry/TokenRegistry.sol +61 -59
  457. package/contracts/shared/Component.sol +69 -135
  458. package/contracts/shared/ComponentService.sol +424 -387
  459. package/contracts/shared/ComponentServiceManager.sol +8 -5
  460. package/contracts/shared/ContractLib.sol +312 -0
  461. package/contracts/shared/IComponent.sol +6 -19
  462. package/contracts/shared/IComponentService.sol +43 -40
  463. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  464. package/contracts/shared/IKeyValueStore.sol +1 -1
  465. package/contracts/shared/ILifecycle.sol +3 -1
  466. package/contracts/shared/INftOwnable.sol +4 -0
  467. package/contracts/shared/IPolicyHolder.sol +12 -22
  468. package/contracts/shared/IRegisterable.sol +22 -1
  469. package/contracts/shared/IService.sol +3 -5
  470. package/contracts/shared/InitializableERC165.sol +10 -2
  471. package/contracts/shared/InstanceLinkedComponent.sol +73 -51
  472. package/contracts/shared/KeyValueStore.sol +4 -4
  473. package/contracts/shared/Lifecycle.sol +15 -4
  474. package/contracts/shared/NftOwnable.sol +31 -9
  475. package/contracts/shared/PolicyHolder.sol +18 -54
  476. package/contracts/shared/Registerable.sol +52 -21
  477. package/contracts/shared/RegistryLinked.sol +9 -14
  478. package/contracts/shared/Service.sol +20 -35
  479. package/contracts/shared/TokenHandler.sol +310 -26
  480. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  481. package/contracts/staking/IStaking.sol +163 -65
  482. package/contracts/staking/IStakingService.sol +45 -78
  483. package/contracts/staking/Staking.sol +629 -223
  484. package/contracts/staking/StakingLib.sol +168 -0
  485. package/contracts/staking/StakingManager.sol +9 -8
  486. package/contracts/staking/StakingReader.sol +53 -85
  487. package/contracts/staking/StakingService.sol +63 -149
  488. package/contracts/staking/StakingServiceManager.sol +7 -5
  489. package/contracts/staking/StakingStore.sol +639 -350
  490. package/contracts/staking/TargetManagerLib.sol +8 -4
  491. package/contracts/type/Amount.sol +19 -0
  492. package/contracts/type/Blocknumber.sol +15 -15
  493. package/contracts/type/ChainId.sol +92 -0
  494. package/contracts/type/ClaimId.sol +6 -1
  495. package/contracts/type/Fee.sol +8 -8
  496. package/contracts/type/Key32.sol +2 -2
  497. package/contracts/type/Key32Set.sol +62 -0
  498. package/contracts/type/NftId.sol +7 -0
  499. package/contracts/type/ObjectType.sol +73 -37
  500. package/contracts/type/PayoutId.sol +10 -10
  501. package/contracts/type/RiskId.sol +38 -6
  502. package/contracts/type/RoleId.sol +61 -55
  503. package/contracts/type/Seconds.sol +13 -0
  504. package/contracts/type/Selector.sol +5 -0
  505. package/contracts/type/StateId.sol +15 -1
  506. package/contracts/type/String.sol +12 -0
  507. package/contracts/type/Timestamp.sol +4 -7
  508. package/contracts/type/UFixed.sol +38 -126
  509. package/contracts/type/Version.sol +54 -5
  510. package/contracts/upgradeability/IVersionable.sol +3 -0
  511. package/contracts/upgradeability/ProxyManager.sol +93 -45
  512. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  513. package/contracts/upgradeability/Versionable.sol +8 -5
  514. package/package.json +5 -4
  515. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  516. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  517. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  518. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  519. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  520. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  521. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  522. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  523. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  524. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  525. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  526. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  527. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  528. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  529. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  530. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  531. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
  532. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  533. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  534. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  535. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  536. package/contracts/instance/module/IAccess.sol +0 -46
  537. package/contracts/product/IProductService.sol +0 -33
  538. package/contracts/product/ProductService.sol +0 -99
  539. package/contracts/product/ProductServiceManager.sol +0 -39
  540. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  541. package/contracts/shared/InitializableCustom.sol +0 -177
  542. package/contracts/staking/StakeManagerLib.sol +0 -231
@@ -1,33 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
4
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
6
5
  import {IBundle} from "../instance/module/IBundle.sol";
7
6
  import {IBundleService} from "./IBundleService.sol";
8
- import {IComponents} from "../instance/module/IComponents.sol";
9
7
  import {IComponentService} from "../shared/IComponentService.sol";
10
8
  import {IRegistry} from "../registry/IRegistry.sol";
11
9
  import {IRegistryService} from "../registry/IRegistryService.sol";
12
10
  import {IInstance} from "../instance/IInstance.sol";
13
11
  import {InstanceStore} from "../instance/InstanceStore.sol";
14
- import {IPolicy} from "../instance/module/IPolicy.sol";
15
12
 
16
13
  import {Amount, AmountLib} from "../type/Amount.sol";
17
14
  import {BundleSet} from "../instance/BundleSet.sol";
18
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
19
- import {Fee, FeeLib} from "../type/Fee.sol";
15
+ import {Fee} from "../type/Fee.sol";
20
16
  import {InstanceReader} from "../instance/InstanceReader.sol";
21
17
  import {NftId, NftIdLib} from "../type/NftId.sol";
22
- import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
23
- import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
18
+ import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
19
+ import {PoolLib} from "./PoolLib.sol";
24
20
  import {Seconds} from "../type/Seconds.sol";
21
+ import {Service} from "../shared/Service.sol";
22
+ import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
25
23
  import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
26
24
 
27
- string constant BUNDLE_SERVICE_NAME = "BundleService";
28
25
 
29
26
  contract BundleService is
30
- ComponentVerifyingService,
27
+ Service,
31
28
  IBundleService
32
29
  {
33
30
 
@@ -35,6 +32,7 @@ contract BundleService is
35
32
 
36
33
  address private _registryAddress;
37
34
  IRegistryService private _registryService;
35
+ IAccountingService private _accountingService;
38
36
  IComponentService private _componentService;
39
37
 
40
38
  function _initialize(
@@ -42,20 +40,21 @@ contract BundleService is
42
40
  bytes memory data
43
41
  )
44
42
  internal
45
- initializer
46
43
  virtual override
44
+ initializer()
47
45
  {
48
- address registryAddress;
49
- address initialOwner;
50
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
51
- // TODO while PoolService is not deployed in PoolServiceManager constructor
52
- // owner is PoolServiceManager deployer
53
- initializeService(registryAddress, address(0), owner);
46
+ (
47
+ address authority,
48
+ address registry
49
+ ) = abi.decode(data, (address, address));
50
+
51
+ __Service_init(authority, registry, owner);
54
52
 
55
53
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
54
+ _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
56
55
  _componentService = IComponentService(_getServiceAddress(COMPONENT()));
57
56
 
58
- registerInterface(type(IBundleService).interfaceId);
57
+ _registerInterface(type(IBundleService).interfaceId);
59
58
  }
60
59
 
61
60
 
@@ -65,8 +64,11 @@ contract BundleService is
65
64
  )
66
65
  external
67
66
  virtual
67
+ restricted()
68
68
  {
69
- (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
69
+ _checkNftType(bundleNftId, BUNDLE());
70
+
71
+ (NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
70
72
  InstanceReader instanceReader = instance.getInstanceReader();
71
73
  IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
72
74
  if(bundleInfo.poolNftId.eqz()) {
@@ -79,23 +81,24 @@ contract BundleService is
79
81
 
80
82
  bundleInfo.fee = fee;
81
83
  instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
84
+
85
+ emit LogBundleServiceBundleFeeUpdated(bundleNftId, fee.fixedFee, fee.fractionalFee);
82
86
  }
83
87
 
84
88
 
85
89
  function create(
86
- IInstance instance,
87
- NftId poolNftId,
88
90
  address owner,
89
91
  Fee memory bundleFee,
90
- Amount stakingAmount,
91
92
  Seconds lifetime,
92
93
  bytes calldata filter
93
94
  )
94
95
  external
95
- override
96
- restricted
96
+ virtual
97
+ restricted()
97
98
  returns(NftId bundleNftId)
98
99
  {
100
+ (NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
101
+
99
102
  // register bundle with registry
100
103
  bundleNftId = _registryService.registerBundle(
101
104
  IRegistry.ObjectInfo(
@@ -113,26 +116,21 @@ contract BundleService is
113
116
  InstanceStore instanceStore = instance.getInstanceStore();
114
117
  instanceStore.createBundle(
115
118
  bundleNftId,
116
- IBundle.BundleInfo(
117
- poolNftId,
118
- bundleFee,
119
- filter,
120
- TimestampLib.blockTimestamp(),
121
- TimestampLib.blockTimestamp().addSeconds(lifetime),
122
- zeroTimestamp()));
123
-
124
- // bundle book keeping
125
- _componentService.increaseBundleBalance(
126
- instanceStore,
127
- bundleNftId,
128
- stakingAmount,
129
- AmountLib.zero()); // fee amount
119
+ IBundle.BundleInfo({
120
+ poolNftId: poolNftId,
121
+ fee: bundleFee,
122
+ filter: filter,
123
+ activatedAt: TimestampLib.current(),
124
+ expiredAt: TimestampLib.current().addSeconds(lifetime),
125
+ closedAt: zeroTimestamp()
126
+ })
127
+ );
130
128
 
131
129
  // put bundle under bundle managemet
132
130
  BundleSet bundleManager = instance.getBundleSet();
133
131
  bundleManager.add(bundleNftId);
134
132
 
135
- // TODO add logging
133
+ emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime);
136
134
  }
137
135
 
138
136
 
@@ -147,69 +145,69 @@ contract BundleService is
147
145
  virtual
148
146
  restricted()
149
147
  {
148
+ // checks
149
+ _checkNftType(policyNftId, POLICY());
150
+ _checkNftType(bundleNftId, BUNDLE());
151
+
150
152
  InstanceReader instanceReader = instance.getInstanceReader();
151
- StateId bundleState = instanceReader.getMetadata(bundleNftId.toKey32(BUNDLE())).state;
152
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
153
153
 
154
- // ensure bundle is active and not yet expired
155
- if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
156
- revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
154
+ {
155
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
156
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
157
+
158
+ // ensure bundle is active and not yet expired
159
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.current()) {
160
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
161
+ }
157
162
  }
158
163
 
159
- // ensure bundle capacity is sufficent to collateralize policy
160
164
  InstanceStore instanceStore = instance.getInstanceStore();
161
- (
162
- Amount balanceAmount,
163
- Amount lockedAmount,
164
- Amount feeAmount
165
- ) = instanceStore.getAmounts(bundleNftId);
166
165
 
167
- Amount capacity = balanceAmount - (lockedAmount + feeAmount);
168
- if(capacity < collateralAmount) {
169
- revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
166
+ {
167
+ // ensure bundle capacity is sufficent to collateralize policy
168
+ (
169
+ Amount balanceAmount,
170
+ Amount lockedAmount,
171
+ Amount feeAmount
172
+ ) = instanceStore.getAmounts(bundleNftId);
173
+
174
+ Amount capacity = balanceAmount - (lockedAmount + feeAmount);
175
+ if(capacity < collateralAmount) {
176
+ revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
177
+ }
170
178
  }
171
179
 
180
+ // effects
172
181
  // updated locked amount
173
182
  instanceStore.increaseLocked(bundleNftId, collateralAmount);
174
-
175
- // link policy to bundle in bundle manger
176
- _linkPolicy(instance, policyNftId);
177
- }
178
-
179
-
180
- function lock(NftId bundleNftId)
181
- external
182
- virtual
183
- {
184
- (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
185
-
186
- // udpate bundle state
187
- instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
188
-
189
- // update set of active bundles
190
- BundleSet bundleManager = instance.getBundleSet();
191
- bundleManager.lock(bundleNftId);
192
183
 
193
- emit LogBundleServiceBundleLocked(bundleNftId);
184
+ emit LogBundleServiceCollateralLocked(bundleNftId, policyNftId, collateralAmount);
194
185
  }
195
186
 
196
187
 
197
- function unlock(NftId bundleNftId)
188
+ function setLocked(NftId bundleNftId, bool locked)
198
189
  external
199
190
  virtual
191
+ restricted()
200
192
  {
201
- (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
193
+ // checks
194
+ _checkNftType(bundleNftId, BUNDLE());
202
195
 
203
- // udpate bundle state
204
- instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
196
+ (, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
205
197
 
198
+ // effects
206
199
  // update set of active bundles
207
200
  BundleSet bundleManager = instance.getBundleSet();
208
- bundleManager.unlock(bundleNftId);
209
201
 
210
- emit LogBundleServiceBundleActivated(bundleNftId);
202
+ if (locked) {
203
+ bundleManager.lock(bundleNftId);
204
+ emit LogBundleServiceBundleLocked(bundleNftId);
205
+ } else {
206
+ bundleManager.unlock(bundleNftId);
207
+ emit LogBundleServiceBundleUnlocked(bundleNftId);
208
+ }
211
209
  }
212
-
210
+
213
211
 
214
212
  function close(
215
213
  IInstance instance,
@@ -217,10 +215,13 @@ contract BundleService is
217
215
  )
218
216
  external
219
217
  virtual
220
- restricted
218
+ restricted()
219
+ returns (Amount unstakedAmount, Amount feeAmount)
221
220
  {
222
- // udpate bundle state
223
- instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
221
+ // checks
222
+ _checkNftType(bundleNftId, BUNDLE());
223
+
224
+ InstanceReader instanceReader = instance.getInstanceReader();
224
225
 
225
226
  // ensure no open policies attached to bundle
226
227
  BundleSet bundleManager = instance.getBundleSet();
@@ -229,53 +230,77 @@ contract BundleService is
229
230
  revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
230
231
  }
231
232
 
232
- // update set of active bundles
233
- bundleManager.lock(bundleNftId);
233
+ // effects
234
+ {
235
+ // update bundle state
236
+ InstanceStore instanceStore = instance.getInstanceStore();
237
+ instanceStore.updateBundleState(bundleNftId, CLOSED());
238
+ bundleManager.lock(bundleNftId);
239
+
240
+ // decrease bundle counters
241
+ Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
242
+ feeAmount = instanceReader.getFeeAmount(bundleNftId);
243
+ unstakedAmount = balanceAmountWithFees - feeAmount;
244
+ _accountingService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
245
+ }
246
+
247
+ emit LogBundleServiceBundleClosed(bundleNftId);
234
248
  }
235
249
 
236
250
  /// @inheritdoc IBundleService
237
251
  function stake(
238
- IInstance instance,
252
+ InstanceReader instanceReader,
253
+ InstanceStore instanceStore,
239
254
  NftId bundleNftId,
240
255
  Amount amount
241
256
  )
242
257
  external
243
258
  virtual
244
- // TODO: restricted() (once #462 is done)
259
+ restricted()
245
260
  {
246
- IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
247
- StateId bundleState = instance.getInstanceReader().getMetadata(bundleNftId.toKey32(BUNDLE())).state;
261
+ // checks
262
+ _checkNftType(bundleNftId, BUNDLE());
248
263
 
249
- if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp() || bundleInfo.closedAt.gtz()) {
264
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
265
+ StateId bundleState = instanceReader.getBundleState(bundleNftId);
266
+
267
+ if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
268
+ || bundleInfo.expiredAt < TimestampLib.current()
269
+ || bundleInfo.closedAt.gtz()) {
250
270
  revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
251
271
  }
252
272
 
253
- _componentService.increaseBundleBalance(
254
- instance.getInstanceStore(),
273
+ // effects
274
+ _accountingService.increaseBundleBalance(
275
+ instanceStore,
255
276
  bundleNftId,
256
277
  amount,
257
278
  AmountLib.zero());
279
+
280
+ emit LogBundleServiceBundleStaked(bundleNftId, amount);
258
281
  }
259
282
 
260
283
  /// @inheritdoc IBundleService
261
284
  function unstake(
262
- IInstance instance,
285
+ InstanceStore instanceStore,
263
286
  NftId bundleNftId,
264
287
  Amount amount
265
288
  )
266
289
  external
267
290
  virtual
268
- // TODO: restricted() (once #462 is done)
291
+ restricted()
269
292
  returns (Amount unstakedAmount)
270
293
  {
271
- InstanceStore instanceStore = instance.getInstanceStore();
294
+ // checks
295
+ _checkNftType(bundleNftId, BUNDLE());
296
+
272
297
  (
273
298
  Amount balanceAmount,
274
299
  Amount lockedAmount,
275
300
  Amount feeAmount
276
301
  ) = instanceStore.getAmounts(bundleNftId);
277
302
 
278
- Amount unstakedAmount = amount;
303
+ unstakedAmount = amount;
279
304
  Amount availableAmount = balanceAmount - (lockedAmount + feeAmount);
280
305
 
281
306
  // if amount is max, then unstake all available
@@ -288,25 +313,29 @@ contract BundleService is
288
313
  revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
289
314
  }
290
315
 
291
- _componentService.decreaseBundleBalance(
316
+ // effects
317
+ _accountingService.decreaseBundleBalance(
292
318
  instanceStore,
293
319
  bundleNftId,
294
320
  unstakedAmount,
295
321
  AmountLib.zero());
296
-
297
- return unstakedAmount;
322
+
323
+ emit LogBundleServiceBundleUnstaked(bundleNftId, unstakedAmount);
298
324
  }
299
325
 
300
326
  /// @inheritdoc IBundleService
301
327
  function extend(NftId bundleNftId, Seconds lifetimeExtension)
302
328
  external
303
329
  virtual
304
- // TODO: restricted() (once #462 is done)
330
+ restricted()
305
331
  returns (Timestamp extendedExpiredAt)
306
332
  {
307
- (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
333
+ // checks
334
+ _checkNftType(bundleNftId, BUNDLE());
335
+
336
+ (NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
308
337
  IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
309
- StateId bundleState = instance.getInstanceReader().getMetadata(bundleNftId.toKey32(BUNDLE())).state;
338
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
310
339
 
311
340
  // ensure bundle belongs to the pool
312
341
  if (bundleInfo.poolNftId != poolNftId) {
@@ -314,7 +343,7 @@ contract BundleService is
314
343
  }
315
344
 
316
345
  // ensure bundle is active and not yet expired
317
- if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
346
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.current()) {
318
347
  revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
319
348
  }
320
349
 
@@ -322,17 +351,18 @@ contract BundleService is
322
351
  revert ErrorBundleServiceExtensionLifetimeIsZero();
323
352
  }
324
353
 
354
+ // effects
325
355
  bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
326
- instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
356
+ extendedExpiredAt = bundleInfo.expiredAt;
327
357
 
328
- emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, bundleInfo.expiredAt);
358
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
329
359
 
330
- return bundleInfo.expiredAt;
360
+ emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, extendedExpiredAt);
331
361
  }
332
362
 
333
363
 
334
364
  function releaseCollateral(
335
- IInstance instance,
365
+ InstanceStore instanceStore,
336
366
  NftId policyNftId,
337
367
  NftId bundleNftId,
338
368
  Amount collateralAmount
@@ -341,95 +371,14 @@ contract BundleService is
341
371
  virtual
342
372
  restricted()
343
373
  {
344
- instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
345
- }
346
-
347
- /// @dev unlinks policy from bundle
348
- function unlinkPolicy(
349
- IInstance instance,
350
- NftId policyNftId
351
- )
352
- external
353
- virtual
354
- restricted
355
- {
356
- // ensure policy is closeable
357
- if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
358
- revert ErrorBundleServicePolicyNotCloseable(policyNftId);
359
- }
360
-
361
- instance.getBundleSet().unlinkPolicy(policyNftId);
362
- }
363
-
364
- /// @inheritdoc IBundleService
365
- function withdrawBundleFees(NftId bundleNftId, Amount amount)
366
- public
367
- virtual
368
- // TODO: restricted() (once #462 is done)
369
- returns (Amount withdrawnAmount)
370
- {
371
- (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
372
- InstanceReader reader = instance.getInstanceReader();
373
-
374
- IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
375
- address poolWallet = poolInfo.wallet;
376
-
377
- IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
378
-
379
- // determine withdrawn amount
380
- withdrawnAmount = amount;
381
- if (withdrawnAmount.gte(AmountLib.max())) {
382
- withdrawnAmount = reader.getFeeAmount(bundleNftId);
383
- } else {
384
- if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
385
- revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
386
- }
387
- }
388
-
389
- if (withdrawnAmount.eqz()) {
390
- revert ErrorBundleServiceFeesWithdrawAmountIsZero();
391
- }
392
-
393
- // check allowance
394
- IERC20Metadata token = IERC20Metadata(poolInfo.token);
395
- uint256 tokenAllowance = token.allowance(poolWallet, address(poolInfo.tokenHandler));
396
- if (tokenAllowance < withdrawnAmount.toInt()) {
397
- revert ErrorBundleServiceWalletAllowanceTooSmall(poolWallet, address(poolInfo.tokenHandler), tokenAllowance, withdrawnAmount.toInt());
398
- }
374
+ _checkNftType(policyNftId, POLICY());
375
+ _checkNftType(bundleNftId, BUNDLE());
399
376
 
400
- // decrease fee counters by withdrawnAmount
401
- {
402
- InstanceStore store = instance.getInstanceStore();
403
- // decrease fee amount of the bundle
404
- _componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
405
- // decrease pool balance
406
- _componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
407
- }
377
+ instanceStore.decreaseLocked(bundleNftId, collateralAmount);
408
378
 
409
- // transfer amount to bundle owner
410
- {
411
- address owner = getRegistry().ownerOf(bundleNftId);
412
- emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(token), withdrawnAmount);
413
- // TODO: centralize token handling (issue #471)
414
- poolInfo.tokenHandler.transfer(poolWallet, owner, withdrawnAmount);
415
- }
379
+ emit LogBundleServiceCollateralReleased(bundleNftId, policyNftId, collateralAmount);
416
380
  }
417
381
 
418
- /// @dev links policy to bundle
419
- function _linkPolicy(IInstance instance, NftId policyNftId)
420
- internal
421
- {
422
- InstanceReader instanceReader = instance.getInstanceReader();
423
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
424
-
425
- // ensure policy has not yet been activated in a previous tx already
426
- if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
427
- revert BundleSet.ErrorBundleSetPolicyAlreadyActivated(policyNftId);
428
- }
429
-
430
- BundleSet bundleManager = instance.getBundleSet();
431
- bundleManager.linkPolicy(policyNftId);
432
- }
433
382
 
434
383
  function _getDomain() internal pure override returns(ObjectType) {
435
384
  return BUNDLE();
@@ -12,15 +12,15 @@ contract BundleServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with pool service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
- BundleService bundleSrv = new BundleService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
23
- address(bundleSrv),
19
+ BundleService svc = new BundleService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
24
  data,
25
25
  salt);
26
26