@etherisc/gif-next 0.0.2-7ef1483-704 → 0.0.2-7f111bb-562

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 (506) hide show
  1. package/README.md +49 -4
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -461
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +286 -235
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +77 -108
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +95 -164
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +165 -47
  36. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  44. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  45. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  46. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  49. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
  50. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/Instance.sol/Instance.json +62 -219
  52. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1218 -284
  54. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +407 -127
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +195 -192
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +52 -99
  62. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +387 -268
  64. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  66. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  67. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  68. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  70. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  72. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  76. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  80. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  81. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  82. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  84. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  86. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  88. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  90. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  92. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  94. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +922 -0
  96. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +679 -0
  98. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
  100. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  102. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +433 -168
  104. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +121 -92
  106. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +218 -1
  108. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +49 -294
  110. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +248 -100
  112. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/Pool.sol/Pool.json +56 -587
  114. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +302 -250
  116. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +46 -89
  118. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +68 -162
  120. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -95
  122. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
  124. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  126. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +222 -167
  128. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +71 -102
  130. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  131. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +18 -0
  132. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +127 -0
  134. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +197 -119
  136. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +56 -43
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +36 -83
  140. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  141. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +15 -2
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +269 -303
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +66 -101
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.json +130 -245
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +59 -118
  150. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  151. package/artifacts/contracts/product/Product.sol/Product.json +46 -389
  152. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  153. package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
  154. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +246 -42
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  164. package/artifacts/contracts/registry/Registry.sol/Registry.json +464 -99
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1607 -153
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +48 -123
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -76
  171. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  172. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  173. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  174. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  176. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  178. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  179. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  180. package/artifacts/contracts/shared/Component.sol/Component.json +11 -222
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  182. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +264 -171
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +72 -107
  185. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  186. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +10 -109
  187. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -30
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +173 -0
  191. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -41
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
  195. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  196. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  197. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +0 -42
  200. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  204. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  205. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  206. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  208. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +43 -286
  209. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  210. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
  211. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  214. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  218. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  223. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Service.sol/Service.json +10 -109
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  227. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  228. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  229. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +141 -144
  231. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
  233. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +145 -107
  235. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  236. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -390
  237. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  239. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -97
  241. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +219 -18
  243. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +254 -236
  245. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +41 -96
  247. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +776 -216
  249. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +132 -19
  251. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  253. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.json +97 -4
  255. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  257. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  259. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  261. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  263. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  265. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  267. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  269. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  271. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  273. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  275. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  277. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  279. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  281. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +74 -2
  283. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  287. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  289. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  291. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  293. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  295. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
  297. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  299. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  301. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  302. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  303. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  304. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +566 -0
  305. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  306. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  307. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  308. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  309. package/contracts/authorization/AccessAdmin.sol +589 -0
  310. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  311. package/contracts/authorization/Authorization.sol +217 -0
  312. package/contracts/authorization/IAccess.sol +48 -0
  313. package/contracts/authorization/IAccessAdmin.sol +136 -0
  314. package/contracts/authorization/IAuthorization.sol +54 -0
  315. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  316. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  317. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  318. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  319. package/contracts/distribution/BasicDistribution.sol +138 -0
  320. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  321. package/contracts/distribution/Distribution.sol +145 -111
  322. package/contracts/distribution/DistributionService.sol +83 -45
  323. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  324. package/contracts/distribution/IDistributionComponent.sol +25 -39
  325. package/contracts/distribution/IDistributionService.sol +23 -3
  326. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  327. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  328. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  329. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  330. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  331. package/contracts/instance/IInstance.sol +24 -40
  332. package/contracts/instance/IInstanceService.sol +34 -23
  333. package/contracts/instance/Instance.sol +112 -118
  334. package/contracts/instance/InstanceAdmin.sol +221 -267
  335. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  336. package/contracts/instance/InstanceReader.sol +79 -14
  337. package/contracts/instance/InstanceService.sol +192 -87
  338. package/contracts/instance/InstanceServiceManager.sol +2 -6
  339. package/contracts/instance/InstanceStore.sol +49 -22
  340. package/contracts/instance/base/BalanceStore.sol +11 -6
  341. package/contracts/instance/base/Cloneable.sol +2 -25
  342. package/contracts/instance/base/ObjectCounter.sol +21 -0
  343. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  344. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  345. package/contracts/instance/module/IBundle.sol +1 -1
  346. package/contracts/instance/module/IComponents.sol +1 -7
  347. package/contracts/instance/module/IDistribution.sol +0 -1
  348. package/contracts/instance/module/IPolicy.sol +22 -22
  349. package/contracts/mock/Dip.sol +1 -1
  350. package/contracts/oracle/BasicOracle.sol +48 -0
  351. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  352. package/contracts/oracle/IOracle.sol +36 -0
  353. package/contracts/oracle/IOracleComponent.sol +33 -0
  354. package/contracts/oracle/IOracleService.sol +65 -0
  355. package/contracts/oracle/Oracle.sol +167 -0
  356. package/contracts/oracle/OracleService.sol +279 -0
  357. package/contracts/oracle/OracleServiceManager.sol +39 -0
  358. package/contracts/pool/BasicPool.sol +166 -0
  359. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  360. package/contracts/pool/BundleService.sol +210 -68
  361. package/contracts/pool/BundleServiceManager.sol +2 -5
  362. package/contracts/pool/IBundleService.sol +33 -5
  363. package/contracts/pool/IPoolComponent.sol +6 -60
  364. package/contracts/pool/IPoolService.sol +39 -26
  365. package/contracts/pool/Pool.sol +165 -138
  366. package/contracts/pool/PoolService.sol +198 -113
  367. package/contracts/pool/PoolServiceManager.sol +2 -5
  368. package/contracts/product/ApplicationService.sol +58 -64
  369. package/contracts/product/ApplicationServiceManager.sol +2 -2
  370. package/contracts/product/BasicProduct.sol +53 -0
  371. package/contracts/product/BasicProductAuthorization.sol +43 -0
  372. package/contracts/product/ClaimService.sol +131 -81
  373. package/contracts/product/ClaimServiceManager.sol +2 -2
  374. package/contracts/product/IApplicationService.sol +1 -0
  375. package/contracts/product/IClaimService.sol +31 -2
  376. package/contracts/product/IPolicyService.sol +27 -32
  377. package/contracts/product/IPricingService.sol +7 -7
  378. package/contracts/product/IProductComponent.sol +7 -10
  379. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  380. package/contracts/product/PolicyService.sol +287 -187
  381. package/contracts/product/PolicyServiceManager.sol +2 -5
  382. package/contracts/product/PricingService.sol +49 -49
  383. package/contracts/product/PricingServiceManager.sol +2 -5
  384. package/contracts/product/Product.sol +162 -114
  385. package/contracts/product/{ProductService.sol → RiskService.sol} +16 -43
  386. package/contracts/product/RiskServiceManager.sol +39 -0
  387. package/contracts/registry/ChainNft.sol +65 -31
  388. package/contracts/registry/IRegistry.sol +63 -19
  389. package/contracts/registry/IRegistryService.sol +6 -6
  390. package/contracts/registry/Registry.sol +333 -207
  391. package/contracts/registry/RegistryAdmin.sol +376 -149
  392. package/contracts/registry/RegistryService.sol +11 -25
  393. package/contracts/registry/RegistryServiceManager.sol +2 -7
  394. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  395. package/contracts/registry/ReleaseRegistry.sol +491 -0
  396. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  397. package/contracts/registry/TokenRegistry.sol +2 -48
  398. package/contracts/shared/Component.sol +35 -53
  399. package/contracts/shared/ComponentService.sol +121 -76
  400. package/contracts/shared/ComponentServiceManager.sol +2 -2
  401. package/contracts/shared/ComponentVerifyingService.sol +14 -8
  402. package/contracts/shared/IComponent.sol +7 -11
  403. package/contracts/shared/IComponentService.sol +26 -9
  404. package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
  405. package/contracts/shared/IKeyValueStore.sol +2 -1
  406. package/contracts/shared/ILifecycle.sol +1 -2
  407. package/contracts/shared/IPolicyHolder.sol +0 -9
  408. package/contracts/shared/IService.sol +8 -1
  409. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  410. package/contracts/shared/InstanceLinkedComponent.sol +51 -23
  411. package/contracts/shared/KeyValueStore.sol +7 -6
  412. package/contracts/shared/Lifecycle.sol +16 -60
  413. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  414. package/contracts/shared/NftOwnable.sol +7 -7
  415. package/contracts/shared/PolicyHolder.sol +7 -53
  416. package/contracts/shared/Registerable.sol +4 -4
  417. package/contracts/shared/RegistryLinked.sol +3 -2
  418. package/contracts/shared/Service.sol +32 -27
  419. package/contracts/shared/TokenHandler.sol +100 -19
  420. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  421. package/contracts/staking/IStaking.sol +43 -27
  422. package/contracts/staking/IStakingService.sol +42 -44
  423. package/contracts/staking/StakeManagerLib.sol +118 -50
  424. package/contracts/staking/Staking.sol +147 -146
  425. package/contracts/staking/StakingLifecycle.sol +23 -0
  426. package/contracts/staking/StakingManager.sol +2 -6
  427. package/contracts/staking/StakingReader.sol +70 -33
  428. package/contracts/staking/StakingService.sol +122 -91
  429. package/contracts/staking/StakingServiceManager.sol +2 -3
  430. package/contracts/staking/StakingStore.sol +401 -127
  431. package/contracts/staking/TargetManagerLib.sol +35 -3
  432. package/contracts/type/Amount.sol +24 -3
  433. package/contracts/type/Blocknumber.sol +7 -1
  434. package/contracts/type/NftId.sol +8 -8
  435. package/contracts/type/ObjectType.sol +174 -68
  436. package/contracts/type/Referral.sol +1 -0
  437. package/contracts/type/RequestId.sol +75 -0
  438. package/contracts/type/RoleId.sol +103 -72
  439. package/contracts/type/Seconds.sol +31 -1
  440. package/contracts/type/Selector.sol +102 -0
  441. package/contracts/type/StateId.sol +13 -0
  442. package/contracts/type/String.sol +53 -0
  443. package/contracts/type/Timestamp.sol +17 -3
  444. package/contracts/type/UFixed.sol +34 -9
  445. package/contracts/type/Version.sol +3 -1
  446. package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
  447. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  448. package/package.json +8 -5
  449. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  450. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  451. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  452. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
  453. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  454. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  455. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  456. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  457. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
  458. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  459. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
  460. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  461. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  462. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  463. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  464. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  465. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  466. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  467. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  468. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  469. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  470. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  471. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  472. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  473. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  474. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  475. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  476. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  477. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  478. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  479. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  480. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  481. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  482. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  483. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  484. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  485. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  486. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  487. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  488. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
  489. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
  490. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
  491. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
  492. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
  493. package/contracts/product/ProductServiceManager.sol +0 -42
  494. package/contracts/registry/ReleaseManager.sol +0 -599
  495. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  496. package/contracts/shared/AccessManagerCustom.sol +0 -736
  497. package/contracts/shared/AccessManagerExtended.sol +0 -470
  498. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  499. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  500. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  501. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  502. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  503. package/contracts/staking/IStakingManager.sol +0 -15
  504. package/contracts/staking/IStakingStore.sol +0 -130
  505. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  506. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -23,14 +23,17 @@ interface IClaimService is
23
23
  event LogClaimServiceClaimSubmitted(NftId policyNftId, ClaimId claimId, Amount claimAmount);
24
24
  event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
25
25
  event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
26
+ event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
26
27
  event LogClaimServiceClaimClosed(NftId policyNftId, ClaimId claimId);
27
28
 
28
29
  event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount);
29
- event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount);
30
+ event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount, Amount processingFeeAmount);
30
31
 
31
32
  error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
32
33
  error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
33
34
  error ErrorClaimServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
35
+ error ErrorClaimServiceBeneficiaryIsZero(NftId policyNftId, ClaimId claimId);
36
+ error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
34
37
 
35
38
  error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint8 openPayouts);
36
39
  error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
@@ -45,6 +48,7 @@ interface IClaimService is
45
48
  bytes memory claimData
46
49
  ) external returns (ClaimId claimId);
47
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,15 @@ interface IClaimService is
53
57
  bytes memory data // claim processing data
54
58
  ) external;
55
59
 
60
+
61
+ /// @dev revokes the specified claim
62
+ /// function can only be called by product, policy needs to match with calling product
63
+ function revoke(
64
+ NftId policyNftId,
65
+ ClaimId claimId
66
+ ) external;
67
+
68
+
56
69
  /// @dev confirms the specified claim and specifies the payout amount
57
70
  /// function can only be called by product, policy needs to match with calling product
58
71
  function confirm(
@@ -62,6 +75,7 @@ interface IClaimService is
62
75
  bytes memory data // claim processing data
63
76
  ) external;
64
77
 
78
+
65
79
  /// @dev closes the specified claim
66
80
  /// function can only be called by product, policy needs to match with calling product
67
81
  function close(
@@ -70,7 +84,8 @@ interface IClaimService is
70
84
  ) external;
71
85
 
72
86
 
73
- /// @dev creates a new payout for the specified claim
87
+ /// @dev Creates a new payout for the specified claim.
88
+ /// The beneficiary is the holder of the policy NFT
74
89
  /// returns the id of the newly created payout, this id is unique for the specified policy
75
90
  /// function can only be called by product, policy needs to match with calling product
76
91
  function createPayout(
@@ -83,6 +98,20 @@ interface IClaimService is
83
98
  returns (PayoutId payoutId);
84
99
 
85
100
 
101
+ /// @dev Creates a new payout for the specified claim and beneficiary.
102
+ /// returns the id of the newly created payout, this id is unique for the specified policy
103
+ /// function can only be called by product, policy needs to match with calling product
104
+ function createPayoutForBeneficiary(
105
+ NftId policyNftId,
106
+ ClaimId claimId,
107
+ Amount amount,
108
+ address beneficiary,
109
+ bytes memory data
110
+ )
111
+ external
112
+ returns (PayoutId payoutId);
113
+
114
+
86
115
  /// @dev processes the specified payout
87
116
  /// this includes moving the payout token to the beneficiary (default: policy holder)
88
117
  /// function can only be called by product, policy needs to match with calling product
@@ -1,54 +1,48 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IRisk} from "../instance/module/IRisk.sol";
5
4
  import {IService} from "../shared/IService.sol";
6
5
 
7
6
  import {Amount} from "../type/Amount.sol";
8
- import {ClaimId} from "../type/ClaimId.sol";
9
7
  import {NftId} from "../type/NftId.sol";
10
- import {PayoutId} from "../type/PayoutId.sol";
11
- import {ReferralId} from "../type/Referral.sol";
12
- import {RiskId} from "../type/RiskId.sol";
13
- import {Seconds} from "../type/Seconds.sol";
14
8
  import {StateId} from "../type/StateId.sol";
15
9
  import {Timestamp} from "../type/Timestamp.sol";
16
- import {UFixed} from "../type/UFixed.sol";
17
- import {Fee} from "../type/Fee.sol";
18
10
 
19
11
  interface IPolicyService is IService {
20
12
 
21
13
  error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
22
14
  error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
23
- error ErrorPolicyServicePolicyStateNotCollateralizedOrApplied(NftId applicationNftId);
15
+ error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
16
+ error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
24
17
 
25
- error ErrorPolicyServicePremiumHigherThanExpected(Amount premiumExpectedAmount, Amount premiumToBePaidAmount);
26
18
  error ErrorPolicyServiceBalanceInsufficient(address policyOwner, uint256 premiumAmount, uint256 balance);
27
19
  error ErrorPolicyServiceAllowanceInsufficient(address policyOwner, address tokenHandler, uint256 premiumAmount, uint256 allowance);
28
20
 
29
- error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
30
- error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId, Amount premiumPaidAmount);
31
- error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
32
- error ErrorIPolicyServicePolicyAlreadyClosed(NftId policyNftId);
33
- error ErrorIPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
34
- error ErrorPolicyServicePremiumNotFullyPaid(NftId policyNftId, Amount premiumAmount, Amount premiumPaidAmount);
35
- error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
36
- error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
21
+ error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
22
+ error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId);
23
+ error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
24
+ error ErrorPolicyServicePolicyAlreadyClosed(NftId policyNftId);
25
+ error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
26
+ error ErrorPolicyServicePremiumNotPaid(NftId policyNftId, Amount premiumAmount);
27
+ error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
28
+ error ErrorPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
29
+ error ErrorPolicyServicePolicyExpirationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp expiredAt);
30
+ error ErrorPolicyServicePolicyExpirationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp expiredAt);
37
31
 
38
32
  error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
39
33
  error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
40
34
 
41
- /// @dev collateralizes the policy represented by {policyNftId}
42
- /// sets the policy state to collateralized
43
- /// may set the policy state to activated and set the activation date
44
- /// optionally collects premiums and activates the policy.
45
- /// - premium payment is only attempted if requirePremiumPayment is set to true
46
- /// - activation is only done if activateAt is a non-zero timestamp
47
- /// an application can only be collateralized in applied state
48
- /// only the related product may collateralize an application
49
- function collateralize(
50
- NftId policyNftId,
51
- bool requirePremiumPayment,
35
+ event LogPolicyServicePolicyDeclined(NftId policyNftId);
36
+ event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp expiredAt);
37
+
38
+ /// @dev creates the policy from {applicationNftId}.
39
+ /// After successful completion of the function the policy can be referenced using the application NftId.
40
+ /// Locks the sum insured amount in the pool, but does not transfer tokens. Call collectPremium to transfer tokens.
41
+ /// Sets the policy state to collateralized.
42
+ /// Optionally activates the policy if activateAt is a non-zero timestamp.
43
+ /// only the related product may create a policy from an application
44
+ function createPolicy(
45
+ NftId applicationNftId,
52
46
  Timestamp activateAt
53
47
  ) external;
54
48
 
@@ -57,18 +51,19 @@ interface IPolicyService is IService {
57
51
  /// only the related product may decline an application
58
52
  function decline(NftId policyNftId) external;
59
53
 
60
- /// @dev collects the premium token for the specified policy
54
+ /// @dev collects the premium token for the specified policy (must be in COLLATERALIZED state)
61
55
  function collectPremium(NftId policyNftId, Timestamp activateAt) external;
62
56
 
63
57
  /// @dev activates the specified policy and sets the activation date in the policy metadata
64
58
  /// to activate a policy it needs to be in underwritten state
65
59
  function activate(NftId policyNftId, Timestamp activateAt) external;
66
60
 
67
- /// @dev expires the specified policy and sets the expiry date in the policy metadata
61
+ /// @dev expires the specified policy and sets the expiry date in the policy metadata. If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
68
62
  /// to expire a policy it must be in active state, policies may be expired even when the predefined expiry date is still in the future
69
63
  /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
70
64
  /// this function can only be called by a product. the policy needs to match with the calling product
71
- function expire(NftId policyNftId) external;
65
+ /// @return expiredAt the effective expiry date
66
+ function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
72
67
 
73
68
  /// @dev closes the specified policy and sets the closed data in the policy metadata
74
69
  /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
@@ -16,12 +16,12 @@ interface IPricingService is IService
16
16
  error ErrorPricingServiceTargetWalletAmountsMismatch();
17
17
  error ErrorIPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
18
  error ErrorIPricingServiceFeeCalculationMismatch(
19
- uint256 distributionFeeFixAmount,
20
- uint256 distributionFeeVarAmount,
21
- uint256 distributionOwnerFeeFixAmount,
22
- uint256 distributionOwnerFeeVarAmount,
23
- uint256 commissionAmount,
24
- uint256 discountAmount
19
+ Amount distributionFeeFixAmount,
20
+ Amount distributionFeeVarAmount,
21
+ Amount distributionOwnerFeeFixAmount,
22
+ Amount distributionOwnerFeeVarAmount,
23
+ Amount commissionAmount,
24
+ Amount discountAmount
25
25
  );
26
26
 
27
27
  function calculatePremium(
@@ -35,5 +35,5 @@ interface IPricingService is IService
35
35
  )
36
36
  external
37
37
  view
38
- returns (IPolicy.Premium memory premium);
38
+ returns (IPolicy.PremiumInfo memory premium);
39
39
  }
@@ -2,7 +2,6 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {Fee} from "../type/Fee.sol";
6
5
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
6
  import {IComponents} from "../instance/module/IComponents.sol";
8
7
  import {NftId} from "../type/NftId.sol";
@@ -10,12 +9,9 @@ import {ReferralId} from "../type/Referral.sol";
10
9
  import {RiskId} from "../type/RiskId.sol";
11
10
  import {Seconds} from "../type/Seconds.sol";
12
11
 
13
- interface IProductComponent is IInstanceLinkedComponent {
14
-
15
- function setFees(
16
- Fee memory productFee,
17
- Fee memory processingFee
18
- ) external;
12
+ interface IProductComponent is
13
+ IInstanceLinkedComponent
14
+ {
19
15
 
20
16
  function calculatePremium(
21
17
  Amount sumInsuredAmount,
@@ -33,10 +29,11 @@ interface IProductComponent is IInstanceLinkedComponent {
33
29
  bytes memory applicationData
34
30
  ) external view returns (Amount netPremiumAmount);
35
31
 
32
+ function getPoolNftId() external view returns (NftId poolNftId);
33
+ function getDistributionNftId() external view returns (NftId distributionNftId);
34
+
36
35
 
37
36
  /// @dev returns initial pool specific infos for this pool
38
37
  function getInitialProductInfo() external view returns (IComponents.ProductInfo memory info);
39
-
40
- function getPoolNftId() external view returns (NftId poolNftId);
41
- function getDistributionNftId() external view returns (NftId distributionNftId);
38
+
42
39
  }
@@ -12,7 +12,7 @@ import {Timestamp} from "../type/Timestamp.sol";
12
12
  import {UFixed} from "../type/UFixed.sol";
13
13
  import {Fee} from "../type/Fee.sol";
14
14
 
15
- interface IProductService is IService {
15
+ interface IRiskService is IService {
16
16
 
17
17
  function createRisk(
18
18
  RiskId riskId,