@etherisc/gif-next 0.0.2-eadf4ad-932 → 0.0.2-eae5e95-691

Sign up to get free protection for your applications and to get access to all the features.
Files changed (527) hide show
  1. package/README.md +51 -5
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -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 +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1415 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +230 -545
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +315 -432
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +120 -109
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +214 -290
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +215 -94
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1551 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2090 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1484 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1244 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2108 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +113 -97
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +171 -85
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +120 -207
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +850 -366
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +245 -229
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -79
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1212 -381
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1052 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +783 -0
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +920 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1312 -0
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +494 -317
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +186 -87
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +256 -31
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +235 -375
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -254
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/Pool.sol/Pool.json +269 -565
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -569
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +112 -93
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +117 -264
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +99 -76
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1186 -0
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +329 -284
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +141 -90
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +54 -1
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +354 -80
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +154 -86
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +355 -209
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -57
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +418 -397
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +124 -121
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +233 -330
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +128 -93
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  162. package/artifacts/contracts/product/Product.sol/Product.json +377 -431
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +391 -45
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +123 -64
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +0 -18
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +789 -60
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +179 -185
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +86 -74
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  192. package/artifacts/contracts/shared/Component.sol/Component.json +136 -271
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1335 -198
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +105 -114
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +36 -1
  217. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IService.sol/IService.json +49 -1
  220. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  221. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  222. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +842 -0
  224. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  225. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  226. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  227. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  228. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  229. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  230. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
  232. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  233. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  234. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +68 -85
  236. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  238. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Service.sol/Service.json +55 -101
  240. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  241. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
  242. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  243. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  244. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  245. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1460 -0
  246. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  247. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +573 -53
  248. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  250. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  251. package/artifacts/contracts/staking/Staking.sol/Staking.json +1901 -0
  252. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  254. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  256. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  258. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +658 -176
  260. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  261. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +109 -66
  262. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  264. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  265. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  266. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  267. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  268. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
  270. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  272. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  274. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  276. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
  278. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  280. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  282. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  283. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  284. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  286. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  288. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  290. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  292. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  294. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  296. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
  298. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  300. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  302. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  304. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  306. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  308. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  310. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  312. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  314. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  316. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  317. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  318. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  319. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  320. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  322. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  323. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  324. package/contracts/authorization/AccessAdmin.sol +596 -0
  325. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  326. package/contracts/authorization/Authorization.sol +289 -0
  327. package/contracts/authorization/IAccess.sol +49 -0
  328. package/contracts/authorization/IAccessAdmin.sol +137 -0
  329. package/contracts/authorization/IAuthorization.sol +60 -0
  330. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  331. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  332. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  333. package/contracts/distribution/BasicDistribution.sol +139 -0
  334. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  335. package/contracts/distribution/Distribution.sol +154 -154
  336. package/contracts/distribution/DistributionService.sol +175 -172
  337. package/contracts/distribution/DistributionServiceManager.sol +8 -23
  338. package/contracts/distribution/IDistributionComponent.sol +28 -47
  339. package/contracts/distribution/IDistributionService.sol +24 -10
  340. package/contracts/examples/fire/DamageLevel.sol +59 -0
  341. package/contracts/examples/fire/FirePool.sol +75 -0
  342. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  343. package/contracts/examples/fire/FireProduct.sol +412 -0
  344. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  345. package/contracts/examples/fire/FireUSD.sol +26 -0
  346. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  347. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  348. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  349. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  350. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  351. package/contracts/instance/IInstance.sol +33 -44
  352. package/contracts/instance/IInstanceService.sol +32 -33
  353. package/contracts/instance/Instance.sol +131 -122
  354. package/contracts/instance/InstanceAdmin.sol +277 -0
  355. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  356. package/contracts/instance/InstanceReader.sol +194 -67
  357. package/contracts/instance/InstanceService.sol +243 -134
  358. package/contracts/instance/InstanceServiceManager.sol +8 -13
  359. package/contracts/instance/InstanceStore.sol +142 -66
  360. package/contracts/instance/base/BalanceStore.sol +123 -0
  361. package/contracts/instance/base/Cloneable.sol +2 -25
  362. package/contracts/instance/base/ObjectCounter.sol +21 -0
  363. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  364. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  365. package/contracts/instance/module/IAccess.sol +2 -10
  366. package/contracts/instance/module/IBundle.sol +1 -4
  367. package/contracts/instance/module/IComponents.sol +21 -11
  368. package/contracts/instance/module/IDistribution.sol +0 -1
  369. package/contracts/instance/module/IPolicy.sol +31 -25
  370. package/contracts/mock/Dip.sol +26 -0
  371. package/contracts/oracle/BasicOracle.sol +47 -0
  372. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  373. package/contracts/oracle/IOracle.sol +36 -0
  374. package/contracts/oracle/IOracleComponent.sol +33 -0
  375. package/contracts/oracle/IOracleService.sol +66 -0
  376. package/contracts/oracle/Oracle.sol +156 -0
  377. package/contracts/oracle/OracleService.sol +291 -0
  378. package/contracts/oracle/OracleServiceManager.sol +39 -0
  379. package/contracts/pool/BasicPool.sol +154 -0
  380. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  381. package/contracts/pool/BundleService.sol +278 -201
  382. package/contracts/pool/BundleServiceManager.sol +8 -11
  383. package/contracts/pool/IBundleService.sol +44 -19
  384. package/contracts/pool/IPoolComponent.sol +27 -73
  385. package/contracts/pool/IPoolService.sol +93 -40
  386. package/contracts/pool/Pool.sol +186 -153
  387. package/contracts/pool/PoolService.sol +357 -236
  388. package/contracts/pool/PoolServiceManager.sol +6 -9
  389. package/contracts/product/ApplicationService.sol +148 -84
  390. package/contracts/product/ApplicationServiceManager.sol +6 -6
  391. package/contracts/product/BasicProduct.sol +53 -0
  392. package/contracts/product/BasicProductAuthorization.sol +42 -0
  393. package/contracts/product/ClaimService.sol +293 -145
  394. package/contracts/product/ClaimServiceManager.sol +6 -6
  395. package/contracts/product/IApplicationService.sol +2 -1
  396. package/contracts/product/IClaimService.sol +35 -5
  397. package/contracts/product/IPolicyService.sol +38 -38
  398. package/contracts/product/IPricingService.sol +13 -11
  399. package/contracts/product/IProductComponent.sol +28 -10
  400. package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
  401. package/contracts/product/PolicyService.sol +504 -199
  402. package/contracts/product/PolicyServiceManager.sol +6 -9
  403. package/contracts/product/PricingService.sol +103 -82
  404. package/contracts/product/PricingServiceManager.sol +5 -8
  405. package/contracts/product/Product.sol +222 -146
  406. package/contracts/product/RiskService.sol +96 -0
  407. package/contracts/product/RiskServiceManager.sol +39 -0
  408. package/contracts/registry/ChainNft.sol +72 -36
  409. package/contracts/registry/IRegistry.sol +85 -22
  410. package/contracts/registry/IRegistryService.sol +10 -6
  411. package/contracts/registry/ITransferInterceptor.sol +0 -1
  412. package/contracts/registry/Registry.sol +433 -187
  413. package/contracts/registry/RegistryAdmin.sol +448 -0
  414. package/contracts/registry/RegistryService.sol +76 -66
  415. package/contracts/registry/RegistryServiceManager.sol +6 -25
  416. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  417. package/contracts/registry/ReleaseRegistry.sol +501 -0
  418. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  419. package/contracts/registry/TokenRegistry.sol +261 -62
  420. package/contracts/shared/Component.sol +153 -148
  421. package/contracts/shared/ComponentService.sol +688 -94
  422. package/contracts/shared/ComponentServiceManager.sol +38 -0
  423. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  424. package/contracts/shared/ContractLib.sol +38 -0
  425. package/contracts/shared/IComponent.sol +25 -41
  426. package/contracts/shared/IComponentService.sol +120 -0
  427. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  428. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  429. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  430. package/contracts/shared/INftOwnable.sol +3 -1
  431. package/contracts/shared/IPolicyHolder.sol +12 -17
  432. package/contracts/shared/IRegisterable.sol +11 -0
  433. package/contracts/shared/IService.sol +9 -2
  434. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  435. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  436. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  437. package/contracts/shared/Lifecycle.sol +88 -0
  438. package/contracts/shared/NftIdSet.sol +65 -0
  439. package/contracts/shared/NftOwnable.sol +27 -22
  440. package/contracts/shared/PolicyHolder.sol +18 -50
  441. package/contracts/shared/Registerable.sol +21 -11
  442. package/contracts/shared/RegistryLinked.sol +3 -2
  443. package/contracts/shared/Service.sol +48 -36
  444. package/contracts/shared/TokenHandler.sol +112 -8
  445. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  446. package/contracts/staking/IStaking.sol +168 -0
  447. package/contracts/staking/IStakingService.sol +103 -48
  448. package/contracts/staking/StakeManagerLib.sol +224 -0
  449. package/contracts/staking/Staking.sol +497 -0
  450. package/contracts/staking/StakingLifecycle.sol +23 -0
  451. package/contracts/staking/StakingManager.sol +52 -0
  452. package/contracts/staking/StakingReader.sol +190 -0
  453. package/contracts/staking/StakingService.sol +273 -49
  454. package/contracts/staking/StakingServiceManager.sol +11 -7
  455. package/contracts/staking/StakingStore.sol +605 -0
  456. package/contracts/staking/TargetManagerLib.sol +211 -0
  457. package/contracts/type/AddressSet.sol +1 -1
  458. package/contracts/type/Amount.sol +44 -3
  459. package/contracts/type/Blocknumber.sol +26 -3
  460. package/contracts/type/ClaimId.sol +6 -1
  461. package/contracts/type/Fee.sol +17 -16
  462. package/contracts/type/NftId.sol +15 -16
  463. package/contracts/type/NftIdSet.sol +1 -1
  464. package/contracts/type/ObjectType.sol +176 -62
  465. package/contracts/type/PayoutId.sol +10 -10
  466. package/contracts/type/Referral.sol +2 -1
  467. package/contracts/type/RequestId.sol +75 -0
  468. package/contracts/type/RiskId.sol +16 -2
  469. package/contracts/type/RoleId.sol +98 -75
  470. package/contracts/type/Seconds.sol +48 -1
  471. package/contracts/type/Selector.sol +102 -0
  472. package/contracts/type/StateId.sol +41 -2
  473. package/contracts/type/String.sol +53 -0
  474. package/contracts/type/Timestamp.sol +17 -3
  475. package/contracts/type/UFixed.sol +38 -9
  476. package/contracts/type/Version.sol +4 -2
  477. package/contracts/{shared → upgradeability}/ProxyManager.sol +76 -39
  478. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  479. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  480. package/package.json +9 -5
  481. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  483. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  485. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  486. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  487. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  490. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  491. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  493. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  494. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  495. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  497. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  498. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  499. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  500. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
  501. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -679
  503. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  504. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -238
  505. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  506. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -846
  507. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  508. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  509. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  510. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  511. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  512. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  513. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -598
  514. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  515. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  516. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  517. package/contracts/instance/InstanceAccessManager.sol +0 -543
  518. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  519. package/contracts/instance/base/Lifecycle.sol +0 -121
  520. package/contracts/instance/module/ISetup.sol +0 -33
  521. package/contracts/instance/module/ITreasury.sol +0 -23
  522. package/contracts/product/ProductService.sol +0 -212
  523. package/contracts/product/ProductServiceManager.sol +0 -42
  524. package/contracts/registry/RegistryAccessManager.sol +0 -132
  525. package/contracts/registry/ReleaseManager.sol +0 -382
  526. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  527. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ClaimService} from "./ClaimService.sol";
7
7
 
8
8
  contract ClaimServiceManager is ProxyManager {
@@ -12,14 +12,14 @@ contract ClaimServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
19
  ClaimService svc = new ClaimService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
23
  address(svc),
24
24
  data,
25
25
  salt);
@@ -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";
@@ -24,6 +24,7 @@ interface IApplicationService is IService {
24
24
  address applicationOwner,
25
25
  RiskId riskId,
26
26
  Amount sumInsuredAmount,
27
+ Amount premiumAmount,
27
28
  Seconds lifetime,
28
29
  NftId bundleNftId,
29
30
  ReferralId referralId,
@@ -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";
@@ -23,16 +23,20 @@ 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
- event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount);
29
- event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount);
29
+ event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
30
+ event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount, Amount processingFeeAmount);
31
+ error ErrorClaimServiceBeneficiarySet(NftId policyNftId, PayoutId payoutId, address beneficiary);
30
32
 
31
33
  error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
32
34
  error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
33
35
  error ErrorClaimServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
36
+ error ErrorClaimServiceBeneficiaryIsZero(NftId policyNftId, ClaimId claimId);
37
+ error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
34
38
 
35
- error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint8 openPayouts);
39
+ error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint24 openPayouts);
36
40
  error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
37
41
  error ErrorClaimServiceClaimNotInExpectedState(NftId policyNftId, ClaimId claimId, StateId expectedState, StateId actualState);
38
42
 
@@ -45,6 +49,7 @@ interface IClaimService is
45
49
  bytes memory claimData
46
50
  ) external returns (ClaimId claimId);
47
51
 
52
+
48
53
  /// @dev declines the specified claim
49
54
  /// function can only be called by product, policy needs to match with calling product
50
55
  function decline(
@@ -53,6 +58,15 @@ interface IClaimService is
53
58
  bytes memory data // claim processing data
54
59
  ) external;
55
60
 
61
+
62
+ /// @dev revokes the specified claim
63
+ /// function can only be called by product, policy needs to match with calling product
64
+ function revoke(
65
+ NftId policyNftId,
66
+ ClaimId claimId
67
+ ) external;
68
+
69
+
56
70
  /// @dev confirms the specified claim and specifies the payout amount
57
71
  /// function can only be called by product, policy needs to match with calling product
58
72
  function confirm(
@@ -62,6 +76,7 @@ interface IClaimService is
62
76
  bytes memory data // claim processing data
63
77
  ) external;
64
78
 
79
+
65
80
  /// @dev closes the specified claim
66
81
  /// function can only be called by product, policy needs to match with calling product
67
82
  function close(
@@ -70,7 +85,8 @@ interface IClaimService is
70
85
  ) external;
71
86
 
72
87
 
73
- /// @dev creates a new payout for the specified claim
88
+ /// @dev Creates a new payout for the specified claim.
89
+ /// The beneficiary is the holder of the policy NFT
74
90
  /// returns the id of the newly created payout, this id is unique for the specified policy
75
91
  /// function can only be called by product, policy needs to match with calling product
76
92
  function createPayout(
@@ -83,6 +99,20 @@ interface IClaimService is
83
99
  returns (PayoutId payoutId);
84
100
 
85
101
 
102
+ /// @dev Creates a new payout for the specified claim and beneficiary.
103
+ /// returns the id of the newly created payout, this id is unique for the specified policy
104
+ /// function can only be called by product, policy needs to match with calling product
105
+ function createPayoutForBeneficiary(
106
+ NftId policyNftId,
107
+ ClaimId claimId,
108
+ Amount amount,
109
+ address beneficiary,
110
+ bytes memory data
111
+ )
112
+ external
113
+ returns (PayoutId payoutId);
114
+
115
+
86
116
  /// @dev processes the specified payout
87
117
  /// this includes moving the payout token to the beneficiary (default: policy holder)
88
118
  /// function can only be called by product, policy needs to match with calling product
@@ -1,49 +1,53 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
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";
7
+ import {IInstance} from "../instance/IInstance.sol";
9
8
  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
9
  import {StateId} from "../type/StateId.sol";
15
10
  import {Timestamp} from "../type/Timestamp.sol";
16
- import {UFixed} from "../type/UFixed.sol";
17
- import {Fee} from "../type/Fee.sol";
18
11
 
19
12
  interface IPolicyService is IService {
20
13
 
14
+ event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
15
+ event LogPolicyServicePolicyDeclined(NftId policyNftId);
16
+ event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
17
+ event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
18
+ event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp originalExpiredAt, Timestamp expiredAt);
19
+ event LogPolicyServicePolicyClosed(NftId policyNftId);
20
+
21
21
  error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
22
22
  error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
23
+ error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
24
+ error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
25
+
26
+ error ErrorPolicyServiceBalanceInsufficient(address policyOwner, uint256 premiumAmount, uint256 balance);
27
+ error ErrorPolicyServiceAllowanceInsufficient(address policyOwner, address tokenHandler, uint256 premiumAmount, uint256 allowance);
23
28
 
24
- error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
25
- error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId, Amount premiumPaidAmount);
26
- error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
27
- error ErrorIPolicyServicePolicyAlreadyClosed(NftId policyNftId);
28
- error ErrorIPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
29
- error ErrorPolicyServicePremiumNotFullyPaid(NftId policyNftId, Amount premiumAmount, Amount premiumPaidAmount);
30
- error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
31
- error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
29
+ error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
30
+ error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId);
31
+ error ErrorPolicyServicePolicyNotActivated(NftId policyNftId);
32
+ error ErrorPolicyServicePolicyAlreadyClosed(NftId policyNftId);
33
+ error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
34
+ error ErrorPolicyServicePremiumNotPaid(NftId policyNftId, Amount premiumAmount);
35
+ error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
36
+ error ErrorPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
37
+ error ErrorPolicyServicePolicyExpirationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp expiredAt);
38
+ error ErrorPolicyServicePolicyExpirationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp expiredAt);
32
39
 
33
40
  error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
34
41
  error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
35
42
 
36
- /// @dev collateralizes the policy represented by {policyNftId}
37
- /// sets the policy state to collateralized
38
- /// may set the policy state to activated and set the activation date
39
- /// optionally collects premiums and activates the policy.
40
- /// - premium payment is only attempted if requirePremiumPayment is set to true
41
- /// - activation is only done if activateAt is a non-zero timestamp
42
- /// an application can only be collateralized in applied state
43
- /// only the related product may collateralize an application
44
- function collateralize(
45
- NftId policyNftId,
46
- bool requirePremiumPayment,
43
+ /// @dev creates the policy from {applicationNftId}.
44
+ /// After successful completion of the function the policy can be referenced using the application NftId.
45
+ /// Locks the sum insured amount in the pool, but does not transfer tokens. Call collectPremium to transfer tokens.
46
+ /// Sets the policy state to collateralized.
47
+ /// Optionally activates the policy if activateAt is a non-zero timestamp.
48
+ /// only the related product may create a policy from an application
49
+ function createPolicy(
50
+ NftId applicationNftId,
47
51
  Timestamp activateAt
48
52
  ) external;
49
53
 
@@ -52,29 +56,25 @@ interface IPolicyService is IService {
52
56
  /// only the related product may decline an application
53
57
  function decline(NftId policyNftId) external;
54
58
 
55
- /// @dev collects the premium token for the specified policy
59
+ /// @dev collects the premium token for the specified policy (must be in COLLATERALIZED state)
56
60
  function collectPremium(NftId policyNftId, Timestamp activateAt) external;
57
61
 
58
62
  /// @dev activates the specified policy and sets the activation date in the policy metadata
59
63
  /// to activate a policy it needs to be in underwritten state
60
64
  function activate(NftId policyNftId, Timestamp activateAt) external;
61
65
 
62
- /// @dev expires the specified policy and sets the expiry date in the policy metadata
66
+ /// @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
63
67
  /// 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
64
68
  /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
65
69
  /// this function can only be called by a product. the policy needs to match with the calling product
66
- function expire(NftId policyNftId) external;
70
+ /// @return expiredAt the effective expiry date
71
+ function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
72
+
73
+ function expirePolicy(IInstance instance, NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
67
74
 
68
75
  /// @dev closes the specified policy and sets the closed data in the policy metadata
69
76
  /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
70
77
  /// this function can only be called by a product. the policy needs to match with the calling product
71
78
  function close(NftId policyNftId) external;
72
79
 
73
-
74
- // TODO move function to pool service
75
- function calculateRequiredCollateral(
76
- UFixed collateralizationLevel,
77
- Amount sumInsuredAmount
78
- ) external pure returns(Amount collateralAmount);
79
-
80
80
  }
@@ -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";
@@ -12,15 +12,17 @@ import {IPolicy} from "../instance/module/IPolicy.sol";
12
12
 
13
13
  interface IPricingService is IService
14
14
  {
15
- error ErrorIPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
16
- error ErrorIPricingServiceFeeCalculationMismatch(
17
- uint256 distributionFeeFixAmount,
18
- uint256 distributionFeeVarAmount,
19
- uint256 distributionOwnerFeeFixAmount,
20
- uint256 distributionOwnerFeeVarAmount,
21
- uint256 commissionAmount,
22
- uint256 discountAmount
23
- );
15
+
16
+ error ErrorPricingServiceTargetWalletAmountsMismatch();
17
+ error ErrorPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
+ error ErrorPricingServiceFeeCalculationMismatch(
19
+ Amount distributionFeeFixAmount,
20
+ Amount distributionFeeVarAmount,
21
+ Amount distributionOwnerFeeFixAmount,
22
+ Amount distributionOwnerFeeVarAmount,
23
+ Amount commissionAmount,
24
+ Amount discountAmount
25
+ );
24
26
 
25
27
  function calculatePremium(
26
28
  NftId productNftId,
@@ -33,5 +35,5 @@ interface IPricingService is IService
33
35
  )
34
36
  external
35
37
  view
36
- returns (IPolicy.Premium memory premium);
38
+ returns (IPolicy.PremiumInfo memory premium);
37
39
  }
@@ -2,23 +2,36 @@
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
- import {IComponent} from "../shared/IComponent.sol";
7
- import {ISetup} from "../instance/module/ISetup.sol";
5
+ import {ClaimId} from "../type/ClaimId.sol";
6
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
9
10
  import {ReferralId} from "../type/Referral.sol";
10
11
  import {RiskId} from "../type/RiskId.sol";
11
12
  import {Seconds} from "../type/Seconds.sol";
12
13
 
13
- interface IProductComponent is IComponent {
14
+ interface IProductComponent is
15
+ IInstanceLinkedComponent
16
+ {
14
17
 
15
- function getSetupInfo() external view returns (ISetup.ProductSetupInfo memory setupInfo);
18
+ // @dev register a new component for this product cluster.
19
+ function registerComponent(address component)
20
+ external
21
+ returns (NftId componentNftId);
16
22
 
17
- function setFees(
18
- Fee memory productFee,
19
- Fee memory processingFee
23
+ /// @dev Callback function to inform product compnent about arrival of funding for a claim.
24
+ /// The callback is called by the pool service after the corresponding pool triggers this function.
25
+ /// The callback is only called when the product's property isProcessingFundedClaims is set.
26
+ function processFundedClaim(
27
+ NftId policyNftId,
28
+ ClaimId claimId,
29
+ Amount availableAmount
20
30
  ) external;
21
31
 
32
+
33
+ /// @dev Calculates the premium amount for the provided application data.
34
+ /// The returned premium amounts takes into account potential discounts and fees.
22
35
  function calculatePremium(
23
36
  Amount sumInsuredAmount,
24
37
  RiskId riskId,
@@ -28,6 +41,10 @@ interface IProductComponent is IComponent {
28
41
  ReferralId referralId
29
42
  ) external view returns (Amount premiumAmount);
30
43
 
44
+
45
+ /// @dev Calculates the net premium amount for the provided application data.
46
+ /// The returned net premium amounts only covers the cost of collateralizing the application.
47
+ /// This amount purely depends on the use case specific risk and does not include any fees/commission.
31
48
  function calculateNetPremium(
32
49
  Amount sumInsuredAmount,
33
50
  RiskId riskId,
@@ -35,7 +52,8 @@ interface IProductComponent is IComponent {
35
52
  bytes memory applicationData
36
53
  ) external view returns (Amount netPremiumAmount);
37
54
 
55
+
56
+ /// @dev returns initial pool specific infos for this pool
57
+ function getInitialProductInfo() external view returns (IComponents.ProductInfo memory info);
38
58
 
39
- function getPoolNftId() external view returns (NftId poolNftId);
40
- function getDistributionNftId() external view returns (NftId distributionNftId);
41
59
  }
@@ -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";
@@ -12,14 +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 {
16
-
17
- function register(address productAddress) external returns(NftId);
18
-
19
- function setFees(
20
- Fee memory productFee,
21
- Fee memory processingFee
22
- ) external;
15
+ interface IRiskService is IService {
23
16
 
24
17
  function createRisk(
25
18
  RiskId riskId,