@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e802d97-713

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 (378) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +19 -13
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +79 -73
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +114 -56
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -5
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +7 -1
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -6
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +12 -22
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +47 -20
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +126 -30
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +195 -64
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +77 -63
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -34
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +246 -104
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -2
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  41. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  47. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  48. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  49. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +10 -0
  50. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  51. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  52. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  54. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  56. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  58. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  60. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  61. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +55 -41
  62. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  63. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +102 -40
  64. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  65. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +7 -1
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  67. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -5
  68. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  69. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +22 -1
  70. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  71. package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -12
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  73. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +56 -35
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  75. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +95 -37
  76. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  77. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +39 -25
  78. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -34
  80. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  81. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +81 -67
  82. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +115 -53
  84. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  85. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +7 -1
  86. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  87. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +7 -1
  88. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  89. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +7 -1
  90. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  91. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +7 -1
  92. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  93. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +11 -5
  94. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  95. package/artifacts/contracts/product/IProductService.sol/IProductService.json +7 -1
  96. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  97. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +59 -45
  98. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -42
  100. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  101. package/artifacts/contracts/product/PricingService.sol/PricingService.json +69 -55
  102. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  103. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +109 -47
  104. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  105. package/artifacts/contracts/product/Product.sol/Product.json +18 -12
  106. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  107. package/artifacts/contracts/product/ProductService.sol/ProductService.json +25 -19
  108. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +87 -29
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +150 -53
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +187 -67
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  118. package/artifacts/contracts/registry/Registry.sol/Registry.json +328 -103
  119. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  120. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +197 -72
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +87 -39
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +752 -148
  127. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +1 -1
  128. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +2 -2
  129. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  130. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +185 -135
  131. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  132. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  133. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  134. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  135. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  136. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  137. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  141. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Component.sol/Component.json +18 -12
  143. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  144. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +92 -63
  145. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +102 -46
  147. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  148. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +7 -1
  149. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  150. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  151. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  152. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  153. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  154. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  155. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  156. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -5
  157. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  158. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +14 -1
  159. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -5
  161. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  162. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +0 -10
  163. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  164. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  165. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  166. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  167. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  168. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  170. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
  173. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  174. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  175. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  176. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  177. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +18 -12
  178. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  179. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +10 -20
  180. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  181. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +6 -6
  182. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  184. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
  186. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  187. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  188. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +64 -16
  190. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +15 -9
  192. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  193. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  194. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  195. package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
  196. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  197. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  198. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  199. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  200. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  201. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  202. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +424 -593
  203. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  204. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +497 -49
  205. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  206. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  207. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  208. package/artifacts/contracts/staking/Staking.sol/Staking.json +598 -627
  209. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +149 -48
  211. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  212. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  213. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +593 -74
  215. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +119 -29
  217. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  218. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  219. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  220. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  221. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  222. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  223. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  224. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  225. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  226. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -2
  227. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  228. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  229. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  230. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  231. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  233. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  234. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  235. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  237. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  238. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  239. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +15 -2
  241. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  243. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  245. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  246. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  247. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  249. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  251. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
  253. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  255. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  257. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  261. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  263. package/contracts/distribution/Distribution.sol +2 -4
  264. package/contracts/distribution/DistributionService.sol +3 -2
  265. package/contracts/distribution/DistributionServiceManager.sol +9 -18
  266. package/contracts/distribution/IDistributionComponent.sol +1 -1
  267. package/contracts/distribution/IDistributionService.sol +1 -1
  268. package/contracts/instance/IInstance.sol +11 -6
  269. package/contracts/instance/IInstanceService.sol +3 -5
  270. package/contracts/instance/Instance.sol +29 -21
  271. package/contracts/instance/InstanceAdmin.sol +331 -0
  272. package/contracts/instance/InstanceAuthorizationsLib.sol +192 -151
  273. package/contracts/instance/InstanceReader.sol +30 -6
  274. package/contracts/instance/InstanceService.sol +69 -55
  275. package/contracts/instance/InstanceServiceManager.sol +10 -20
  276. package/contracts/instance/InstanceStore.sol +64 -42
  277. package/contracts/instance/base/BalanceStore.sol +1 -1
  278. package/contracts/instance/base/ObjectCounter.sol +21 -0
  279. package/contracts/instance/module/IAccess.sol +2 -10
  280. package/contracts/mock/Dip.sol +26 -0
  281. package/contracts/oracle/IOracle.sol +20 -0
  282. package/contracts/oracle/IOracleComponent.sol +32 -0
  283. package/contracts/oracle/IOracleService.sol +65 -0
  284. package/contracts/oracle/Oracle.sol +145 -0
  285. package/contracts/oracle/OracleService.sol +277 -0
  286. package/contracts/oracle/OracleServiceManager.sol +42 -0
  287. package/contracts/pool/BundleService.sol +6 -23
  288. package/contracts/pool/BundleServiceManager.sol +9 -18
  289. package/contracts/pool/IBundleService.sol +1 -1
  290. package/contracts/pool/IPoolService.sol +4 -1
  291. package/contracts/pool/PoolService.sol +45 -13
  292. package/contracts/pool/PoolServiceManager.sol +9 -18
  293. package/contracts/product/ApplicationService.sol +6 -5
  294. package/contracts/product/ApplicationServiceManager.sol +9 -6
  295. package/contracts/product/ClaimService.sol +13 -7
  296. package/contracts/product/ClaimServiceManager.sol +9 -6
  297. package/contracts/product/IApplicationService.sol +1 -1
  298. package/contracts/product/IClaimService.sol +7 -1
  299. package/contracts/product/IPolicyService.sol +1 -1
  300. package/contracts/product/IPricingService.sol +1 -1
  301. package/contracts/product/IProductService.sol +1 -1
  302. package/contracts/product/PolicyService.sol +10 -6
  303. package/contracts/product/PolicyServiceManager.sol +9 -21
  304. package/contracts/product/PricingService.sol +10 -9
  305. package/contracts/product/PricingServiceManager.sol +9 -18
  306. package/contracts/product/Product.sol +1 -1
  307. package/contracts/product/ProductService.sol +7 -5
  308. package/contracts/product/ProductServiceManager.sol +9 -21
  309. package/contracts/registry/ChainNft.sol +1 -0
  310. package/contracts/registry/IRegistry.sol +37 -24
  311. package/contracts/registry/IRegistryService.sol +26 -36
  312. package/contracts/registry/Registry.sol +164 -117
  313. package/contracts/registry/RegistryAdmin.sol +237 -0
  314. package/contracts/registry/RegistryService.sol +22 -83
  315. package/contracts/registry/RegistryServiceManager.sol +21 -23
  316. package/contracts/registry/ReleaseManager.sol +448 -223
  317. package/contracts/registry/TokenRegistry.sol +187 -59
  318. package/contracts/shared/AccessManagerCustom.sol +736 -0
  319. package/contracts/shared/AccessManagerExtended.sol +470 -0
  320. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  321. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  322. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  323. package/contracts/shared/Component.sol +8 -13
  324. package/contracts/shared/ComponentService.sol +35 -13
  325. package/contracts/shared/ComponentVerifyingService.sol +13 -7
  326. package/contracts/shared/ERC165.sol +1 -1
  327. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  328. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  329. package/contracts/shared/IComponent.sol +3 -7
  330. package/contracts/shared/IComponentService.sol +11 -0
  331. package/contracts/shared/IKeyValueStore.sol +1 -1
  332. package/contracts/shared/INftOwnable.sol +1 -1
  333. package/contracts/shared/IPolicyHolder.sol +6 -1
  334. package/contracts/shared/IService.sol +1 -1
  335. package/contracts/shared/InitializableCustom.sol +177 -0
  336. package/contracts/shared/InstanceLinkedComponent.sol +1 -2
  337. package/contracts/shared/KeyValueStore.sol +24 -66
  338. package/contracts/shared/Lifecycle.sol +11 -2
  339. package/contracts/shared/NftIdSetManager.sol +65 -0
  340. package/contracts/shared/NftOwnable.sol +2 -13
  341. package/contracts/shared/PolicyHolder.sol +21 -13
  342. package/contracts/shared/ProxyManager.sol +31 -1
  343. package/contracts/shared/Service.sol +1 -1
  344. package/contracts/staking/IStaking.sol +127 -36
  345. package/contracts/staking/IStakingService.sol +83 -39
  346. package/contracts/staking/StakeManagerLib.sol +179 -0
  347. package/contracts/staking/Staking.sol +432 -93
  348. package/contracts/staking/StakingManager.sol +22 -14
  349. package/contracts/staking/StakingReader.sol +187 -0
  350. package/contracts/staking/StakingService.sol +245 -39
  351. package/contracts/staking/StakingServiceManager.sol +8 -4
  352. package/contracts/staking/StakingStore.sol +572 -0
  353. package/contracts/staking/TargetManagerLib.sol +207 -0
  354. package/contracts/type/AddressSet.sol +1 -1
  355. package/contracts/type/Amount.sol +15 -1
  356. package/contracts/type/Blocknumber.sol +14 -2
  357. package/contracts/type/Fee.sol +1 -1
  358. package/contracts/type/NftId.sol +9 -4
  359. package/contracts/type/NftIdSet.sol +1 -1
  360. package/contracts/type/ObjectType.sol +12 -9
  361. package/contracts/type/Referral.sol +1 -1
  362. package/contracts/type/RequestId.sol +75 -0
  363. package/contracts/type/RiskId.sol +1 -1
  364. package/contracts/type/RoleId.sol +16 -8
  365. package/contracts/type/Seconds.sol +27 -0
  366. package/contracts/type/StateId.sol +27 -2
  367. package/contracts/type/Timestamp.sol +6 -2
  368. package/contracts/type/Version.sol +1 -1
  369. package/package.json +3 -3
  370. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  371. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  372. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  373. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
  374. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  375. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  376. package/contracts/instance/InstanceAccessManager.sol +0 -543
  377. package/contracts/registry/RegistryAccessManager.sol +0 -213
  378. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IBundle} from "../instance/module/IBundle.sol";
5
5
  import {IComponents} from "../instance/module/IComponents.sol";
@@ -107,7 +107,7 @@ contract BundleService is
107
107
  )
108
108
  external
109
109
  override
110
- // TODO add restricted and add authz for pool service
110
+ restricted
111
111
  returns(NftId bundleNftId)
112
112
  {
113
113
  // register bundle with registry
@@ -159,7 +159,7 @@ contract BundleService is
159
159
  )
160
160
  external
161
161
  virtual
162
- // TODO add replace with restricted + appropriate granting
162
+ restricted()
163
163
  {
164
164
  InstanceReader instanceReader = instance.getInstanceReader();
165
165
  StateId bundleState = instanceReader.getMetadata(bundleNftId.toKey32(BUNDLE())).state;
@@ -231,7 +231,7 @@ contract BundleService is
231
231
  )
232
232
  external
233
233
  virtual
234
- // TODO add restricted and autz for pool service
234
+ restricted
235
235
  {
236
236
  // udpate bundle state
237
237
  instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
@@ -248,24 +248,6 @@ contract BundleService is
248
248
  }
249
249
 
250
250
 
251
- // function increaseBalance(
252
- // IInstance instance,
253
- // NftId bundleNftId,
254
- // Amount premiumAmount
255
- // )
256
- // external
257
- // virtual
258
- // // TODO add replace with restricted + appropriate granting
259
- // {
260
- // InstanceReader instanceReader = instance.getInstanceReader();
261
- // IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
262
-
263
- // // update capital and fees when premiums are involved
264
- // _updateBundleWithPremium(instance, bundleNftId, bundleInfo, premiumAmount);
265
-
266
- // // TODO add logging (?)
267
- // }
268
-
269
251
  function releaseCollateral(
270
252
  IInstance instance,
271
253
  NftId policyNftId,
@@ -274,7 +256,7 @@ contract BundleService is
274
256
  )
275
257
  external
276
258
  virtual
277
- // TODO add replace with restricted + appropriate granting
259
+ restricted()
278
260
  {
279
261
  instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
280
262
  }
@@ -302,6 +284,7 @@ contract BundleService is
302
284
  )
303
285
  external
304
286
  virtual
287
+ restricted
305
288
  {
306
289
  // ensure policy is closeable
307
290
  if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
@@ -14,29 +14,20 @@ contract BundleServiceManager is ProxyManager {
14
14
 
15
15
  /// @dev initializes proxy manager with pool service implementation
16
16
  constructor(
17
- address registryAddress
18
- )
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
19
21
  ProxyManager(registryAddress)
20
22
  {
21
- BundleService bundleSrv = new BundleService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
23
+ BundleService bundleSrv = new BundleService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
24
26
  address(bundleSrv),
25
- data);
27
+ data,
28
+ salt);
26
29
 
27
30
  _bundleService = BundleService(address(versionable));
28
-
29
- // TODO `this` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _bundleService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_poolService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_poolService));
40
31
  }
41
32
 
42
33
  //--- view functions ----------------------------------------------------//
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
5
  import {NftId} from "../type/NftId.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
5
  import {Fee} from "../type/Fee.sol";
@@ -48,6 +48,7 @@ interface IPoolService is IService {
48
48
  /// may only be called by the policy service for unlocked pool components
49
49
  function lockCollateral(
50
50
  IInstance instance,
51
+ address token,
51
52
  NftId productNftId,
52
53
  NftId applicationNftId,
53
54
  NftId bundleNftId,
@@ -64,6 +65,7 @@ interface IPoolService is IService {
64
65
  /// may only be called by the policy service for unlocked pool components
65
66
  function releaseCollateral(
66
67
  IInstance instance,
68
+ address token,
67
69
  NftId policyNftId,
68
70
  IPolicy.PolicyInfo memory policyInfo
69
71
  ) external;
@@ -74,6 +76,7 @@ interface IPoolService is IService {
74
76
  /// may only be called by the claim service for unlocked pool components
75
77
  function reduceCollateral(
76
78
  IInstance instance,
79
+ address token,
77
80
  NftId policyNftId,
78
81
  IPolicy.PolicyInfo memory policyInfo,
79
82
  Amount payoutAmount
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Pool} from "./Pool.sol";
5
5
  import {IRegistry} from "../registry/IRegistry.sol";
@@ -15,7 +15,7 @@ import {INftOwnable} from "../shared/INftOwnable.sol";
15
15
  import {Amount, AmountLib} from "../type/Amount.sol";
16
16
  import {Fee, FeeLib} from "../type/Fee.sol";
17
17
  import {NftId, NftIdLib} from "../type/NftId.sol";
18
- import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY} from "../type/ObjectType.sol";
18
+ import {ObjectType, POOL, BUNDLE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
19
19
  import {PUBLIC_ROLE, POOL_OWNER_ROLE, POLICY_SERVICE_ROLE, RoleId} from "../type/RoleId.sol";
20
20
  import {Fee, FeeLib} from "../type/Fee.sol";
21
21
  import {Version, VersionLib} from "../type/Version.sol";
@@ -35,6 +35,7 @@ import {IComponentService} from "../shared/IComponentService.sol";
35
35
  import {IInstanceService} from "../instance/IInstanceService.sol";
36
36
  import {IPoolService} from "./IPoolService.sol";
37
37
  import {IRegistryService} from "../registry/IRegistryService.sol";
38
+ import {IStaking} from "../staking/IStaking.sol";
38
39
  import {InstanceService} from "../instance/InstanceService.sol";
39
40
  import {InstanceReader} from "../instance/InstanceReader.sol";
40
41
  import {InstanceStore} from "../instance/InstanceStore.sol";
@@ -55,6 +56,8 @@ contract PoolService is
55
56
  IInstanceService private _instanceService;
56
57
  IRegistryService private _registryService;
57
58
 
59
+ IStaking private _staking;
60
+
58
61
  function _initialize(
59
62
  address owner,
60
63
  bytes memory data
@@ -63,18 +66,21 @@ contract PoolService is
63
66
  initializer
64
67
  virtual override
65
68
  {
66
- address registryAddress;
67
- address initialOwner;
68
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
69
- // TODO while PoolService is not deployed in PoolServiceManager constructor
70
- // owner is PoolServiceManager deployer
71
- initializeService(registryAddress, address(0), owner);
69
+ (
70
+ address registryAddress,,
71
+ //address managerAddress
72
+ address authority
73
+ ) = abi.decode(data, (address, address, address));
74
+
75
+ initializeService(registryAddress, authority, owner);
72
76
 
73
77
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
74
78
  _bundleService = IBundleService(_getServiceAddress(BUNDLE()));
75
79
  _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
76
80
  _componentService = IComponentService(_getServiceAddress(COMPONENT()));
77
81
 
82
+ _staking = IStaking(getRegistry().getStakingAddress());
83
+
78
84
  registerInterface(type(IPoolService).interfaceId);
79
85
  }
80
86
 
@@ -87,6 +93,7 @@ contract PoolService is
87
93
  external
88
94
  virtual
89
95
  {
96
+ /*
90
97
  (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
91
98
  InstanceReader instanceReader = instance.getInstanceReader();
92
99
 
@@ -98,6 +105,7 @@ contract PoolService is
98
105
  instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
99
106
 
100
107
  emit LogPoolServiceMaxCapitalAmountUpdated(poolNftId, previousMaxCapitalAmount, maxCapitalAmount);
108
+ */
101
109
  }
102
110
 
103
111
  function setBundleOwnerRole(RoleId bundleOwnerRole)
@@ -142,7 +150,6 @@ contract PoolService is
142
150
  // TODO add logging
143
151
  }
144
152
 
145
-
146
153
  function createBundle(
147
154
  address bundleOwner, // initial bundle owner
148
155
  Fee memory fee, // fees deducted from premium that go to bundle owner
@@ -216,12 +223,14 @@ contract PoolService is
216
223
  emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
217
224
  }
218
225
 
226
+
219
227
  function processSale(
220
228
  NftId bundleNftId,
221
229
  IPolicy.Premium memory premium
222
230
  )
223
231
  external
224
232
  virtual
233
+ restricted
225
234
  {
226
235
  IRegistry registry = getRegistry();
227
236
  IRegistry.ObjectInfo memory bundleObjectInfo = registry.getObjectInfo(bundleNftId);
@@ -250,6 +259,7 @@ contract PoolService is
250
259
 
251
260
  function lockCollateral(
252
261
  IInstance instance,
262
+ address token,
253
263
  NftId productNftId,
254
264
  NftId applicationNftId,
255
265
  NftId bundleNftId,
@@ -257,7 +267,7 @@ contract PoolService is
257
267
  )
258
268
  external
259
269
  virtual
260
- // TODO add restricted and granting for policy service
270
+ restricted()
261
271
  returns (
262
272
  Amount localCollateralAmount,
263
273
  Amount totalCollateralAmount
@@ -278,6 +288,12 @@ contract PoolService is
278
288
  bundleNftId,
279
289
  localCollateralAmount);
280
290
 
291
+ // update value locked with staking service
292
+ _staking.increaseTotalValueLocked(
293
+ instance.getNftId(),
294
+ token,
295
+ totalCollateralAmount);
296
+
281
297
  // hierarhical riskpool setup
282
298
  // TODO loop in with pool component to guarantee availability of external capital
283
299
  if(totalCollateralAmount > localCollateralAmount) {
@@ -288,19 +304,26 @@ contract PoolService is
288
304
 
289
305
  function reduceCollateral(
290
306
  IInstance instance,
307
+ address token,
291
308
  NftId policyNftId,
292
309
  IPolicy.PolicyInfo memory policyInfo,
293
310
  Amount payoutAmount
294
311
  )
295
312
  external
296
313
  virtual
297
- // TODO add restricted and granting for claim service
314
+ restricted
298
315
  {
299
316
  _bundleService.releaseCollateral(
300
317
  instance,
301
318
  policyNftId,
302
319
  policyInfo.bundleNftId,
303
320
  payoutAmount);
321
+
322
+ // update value locked with staking service
323
+ _staking.decreaseTotalValueLocked(
324
+ instance.getNftId(),
325
+ token,
326
+ payoutAmount);
304
327
  }
305
328
 
306
329
 
@@ -308,22 +331,31 @@ contract PoolService is
308
331
  /// may only be called by the policy service for unlocked pool components
309
332
  function releaseCollateral(
310
333
  IInstance instance,
334
+ address token,
311
335
  NftId policyNftId,
312
336
  IPolicy.PolicyInfo memory policyInfo
313
337
  )
314
338
  external
315
339
  virtual
316
- // TODO add restricted and granting for policy service
340
+ restricted
317
341
  {
342
+ Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
343
+
318
344
  _bundleService.releaseCollateral(
319
345
  instance,
320
346
  policyNftId,
321
347
  policyInfo.bundleNftId,
322
- policyInfo.sumInsuredAmount - policyInfo.claimAmount);
348
+ remainingCollateralAmount);
323
349
 
324
350
  _bundleService.unlinkPolicy(
325
351
  instance,
326
352
  policyNftId);
353
+
354
+ // update value locked with staking service
355
+ _staking.decreaseTotalValueLocked(
356
+ instance.getNftId(),
357
+ token,
358
+ remainingCollateralAmount);
327
359
  }
328
360
 
329
361
 
@@ -14,29 +14,20 @@ contract PoolServiceManager is ProxyManager {
14
14
 
15
15
  /// @dev initializes proxy manager with pool service implementation
16
16
  constructor(
17
- address registryAddress
18
- )
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
19
21
  ProxyManager(registryAddress)
20
22
  {
21
- PoolService poolSrv = new PoolService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
23
+ PoolService poolSrv = new PoolService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
24
26
  address(poolSrv),
25
- data);
27
+ data,
28
+ salt);
26
29
 
27
30
  _poolService = PoolService(address(versionable));
28
-
29
- // TODO `this` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _poolService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_poolService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_poolService));
40
31
  }
41
32
 
42
33
  //--- view functions ----------------------------------------------------//
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AmountLib} from "../type/Amount.sol";
5
5
  import {Seconds} from "../type/Seconds.sol";
@@ -64,10 +64,11 @@ contract ApplicationService is
64
64
  virtual override
65
65
  initializer()
66
66
  {
67
- // TODO check this, might no longer be the way, refactor if necessary
68
- address registryAddress;
69
- address initialOwner;
70
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
67
+ (
68
+ address registryAddress,,
69
+ //address managerAddress
70
+ address authority
71
+ ) = abi.decode(data, (address, address, address));
71
72
 
72
73
  initializeService(registryAddress, address(0), owner);
73
74
 
@@ -11,15 +11,18 @@ contract ApplicationServiceManager is ProxyManager {
11
11
 
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
- address registryAddress
15
- )
14
+ address authority,
15
+ address registryAddress,
16
+ bytes32 salt
17
+ )
16
18
  ProxyManager(registryAddress)
17
19
  {
18
- ApplicationService svc = new ApplicationService();
19
- bytes memory data = abi.encode(registryAddress, address(this));
20
- IVersionable versionable = deploy(
20
+ ApplicationService svc = new ApplicationService{salt: salt}();
21
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
22
+ IVersionable versionable = deployDetermenistic(
21
23
  address(svc),
22
- data);
24
+ data,
25
+ salt);
23
26
 
24
27
  _applicationService = ApplicationService(address(versionable));
25
28
  }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRisk} from "../instance/module/IRisk.sol";
5
5
  import {IService} from "./IApplicationService.sol";
@@ -60,12 +60,13 @@ contract ClaimService is
60
60
  virtual override
61
61
  initializer()
62
62
  {
63
- // TODO check this, might no longer be the way, refactor if necessary
64
- address registryAddress;
65
- address initialOwner;
66
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
63
+ (
64
+ address registryAddress,,
65
+ //address managerAddress
66
+ address authority
67
+ ) = abi.decode(data, (address, address, address));
67
68
 
68
- initializeService(registryAddress, address(0), owner);
69
+ initializeService(registryAddress, authority, owner);
69
70
 
70
71
  _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
71
72
 
@@ -313,7 +314,12 @@ contract ClaimService is
313
314
  instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
314
315
 
315
316
  // inform pool about payout
316
- _poolService.reduceCollateral(instance, policyNftId, policyInfo, payoutAmount);
317
+ _poolService.reduceCollateral(
318
+ instance,
319
+ address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
320
+ policyNftId,
321
+ policyInfo,
322
+ payoutAmount);
317
323
 
318
324
  // transfer payout token and fee
319
325
  (
@@ -11,15 +11,18 @@ contract ClaimServiceManager is ProxyManager {
11
11
 
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
- address registryAddress
15
- )
14
+ address authority,
15
+ address registryAddress,
16
+ bytes32 salt
17
+ )
16
18
  ProxyManager(registryAddress)
17
19
  {
18
- ClaimService svc = new ClaimService();
19
- bytes memory data = abi.encode(registryAddress, address(this));
20
- IVersionable versionable = deploy(
20
+ ClaimService svc = new ClaimService{salt: salt}();
21
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
22
+ IVersionable versionable = deployDetermenistic(
21
23
  address(svc),
22
- data);
24
+ data,
25
+ salt);
23
26
 
24
27
  _claimService = ClaimService(address(versionable));
25
28
  }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IPolicy} from "../instance/module/IPolicy.sol";
5
5
  import {IService} from "../shared/IService.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IInstance} from "../instance/IInstance.sol";
5
5
  import {InstanceReader} from "../instance/InstanceReader.sol";
@@ -45,6 +45,10 @@ interface IClaimService is
45
45
  bytes memory claimData
46
46
  ) external returns (ClaimId claimId);
47
47
 
48
+
49
+ // TODO add claim revoke functionality
50
+
51
+
48
52
  /// @dev declines the specified claim
49
53
  /// function can only be called by product, policy needs to match with calling product
50
54
  function decline(
@@ -53,6 +57,7 @@ interface IClaimService is
53
57
  bytes memory data // claim processing data
54
58
  ) external;
55
59
 
60
+
56
61
  /// @dev confirms the specified claim and specifies the payout amount
57
62
  /// function can only be called by product, policy needs to match with calling product
58
63
  function confirm(
@@ -62,6 +67,7 @@ interface IClaimService is
62
67
  bytes memory data // claim processing data
63
68
  ) external;
64
69
 
70
+
65
71
  /// @dev closes the specified claim
66
72
  /// function can only be called by product, policy needs to match with calling product
67
73
  function close(
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRisk} from "../instance/module/IRisk.sol";
5
5
  import {IService} from "../shared/IService.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Seconds} from "../type/Seconds.sol";
5
5
  import {NftId} from "../type/NftId.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRisk} from "../instance/module/IRisk.sol";
5
5
  import {IService} from "../shared/IService.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
5
  import {Product} from "./Product.sol";
@@ -64,11 +64,13 @@ contract PolicyService is
64
64
  virtual override
65
65
  initializer
66
66
  {
67
- address registryAddress;
68
- address initialOwner;
69
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
67
+ (
68
+ address registryAddress,,
69
+ //address managerAddress
70
+ address authority
71
+ ) = abi.decode(data, (address, address, address));
70
72
 
71
- initializeService(registryAddress, address(0), owner);
73
+ initializeService(registryAddress, authority, owner);
72
74
 
73
75
  VersionPart majorVersion = getVersion().toMajorPart();
74
76
  _applicationService = IApplicationService(getRegistry().getServiceAddress(APPLICATION(), majorVersion));
@@ -141,6 +143,7 @@ contract PolicyService is
141
143
  Amount totalCollateralAmount
142
144
  ) = _poolService.lockCollateral(
143
145
  instance,
146
+ address(instanceReader.getComponentInfo(productNftId).token),
144
147
  productNftId,
145
148
  applicationNftId,
146
149
  applicationInfo.bundleNftId,
@@ -183,7 +186,7 @@ contract PolicyService is
183
186
  virtual
184
187
  {
185
188
  // check caller is registered product
186
- (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
189
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
187
190
  InstanceReader instanceReader = instance.getInstanceReader();
188
191
  StateId stateId = instanceReader.getPolicyState(policyNftId);
189
192
 
@@ -280,6 +283,7 @@ contract PolicyService is
280
283
 
281
284
  _poolService.releaseCollateral(
282
285
  instance,
286
+ address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
283
287
  policyNftId,
284
288
  policyInfo);
285
289
 
@@ -14,32 +14,20 @@ contract PolicyServiceManager is ProxyManager {
14
14
 
15
15
  /// @dev initializes proxy manager with product service implementation
16
16
  constructor(
17
- address registryAddress
18
- )
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
19
21
  ProxyManager(registryAddress)
20
22
  {
21
- PolicyService svc = new PolicyService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
23
+ PolicyService svc = new PolicyService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
24
26
  address(svc),
25
- data);
27
+ data,
28
+ salt);
26
29
 
27
30
  _policyService = PolicyService(address(versionable));
28
-
29
- // Registry registry = Registry(registryAddress);
30
- // address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
31
- // RegistryService registryService = RegistryService(registryServiceAddress);
32
- // TODO this must have a role or own nft to register service
33
- //registryService.registerService(_productService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_productService));
40
-
41
- // implies that after this constructor call only upgrade functionality is available
42
- // _isDeployed = true;
43
31
  }
44
32
 
45
33
  //--- view functions ----------------------------------------------------//