@etherisc/gif-next 0.0.2-f1e0c66-773 → 0.0.2-f1e6957-384

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 (559) hide show
  1. package/README.md +137 -333
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +760 -278
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +485 -26
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +588 -220
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +227 -20
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +275 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +479 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +183 -497
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +475 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -397
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +644 -392
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +227 -131
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +96 -201
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +476 -137
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  65. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +55 -197
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  69. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  70. package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +34 -227
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +587 -64
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +405 -60
  75. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  76. package/artifacts/contracts/instance/Instance.sol/Instance.json +625 -182
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1154 -380
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +363 -92
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1645 -849
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +419 -231
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +160 -102
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1300 -1842
  89. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  91. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  93. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  95. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  100. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  102. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  104. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  109. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  110. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -365
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +473 -42
  115. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +103 -143
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -333
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  123. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +195 -95
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +160 -448
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +474 -40
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +502 -364
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +212 -112
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +340 -112
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  137. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -246
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  140. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  141. package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -426
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  145. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +246 -102
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  149. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +177 -97
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  153. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +266 -435
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  155. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +474 -40
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -120
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  165. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +405 -102
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  169. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -236
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  171. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +511 -303
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +213 -105
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  179. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +177 -129
  182. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  183. package/artifacts/contracts/product/Product.sol/Product.json +258 -427
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  189. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  198. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +913 -404
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -87
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +495 -253
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +511 -20
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +493 -638
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +198 -128
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -143
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -332
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  277. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  278. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -465
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +211 -105
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +162 -94
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  293. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +93 -2
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +24 -5
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +134 -79
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +401 -313
  360. package/contracts/authorization/AccessAdminLib.sol +678 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +128 -4
  362. package/contracts/authorization/Authorization.sol +179 -207
  363. package/contracts/authorization/IAccess.sol +29 -11
  364. package/contracts/authorization/IAccessAdmin.sol +89 -83
  365. package/contracts/authorization/IAuthorization.sol +9 -37
  366. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  367. package/contracts/authorization/ServiceAuthorization.sol +235 -25
  368. package/contracts/distribution/BasicDistribution.sol +21 -19
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  370. package/contracts/distribution/Distribution.sol +46 -96
  371. package/contracts/distribution/DistributionService.sol +243 -132
  372. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  373. package/contracts/distribution/IDistributionComponent.sol +4 -11
  374. package/contracts/distribution/IDistributionService.sol +47 -29
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BaseStore.sol +93 -0
  389. package/contracts/instance/BundleSet.sol +42 -38
  390. package/contracts/instance/IBaseStore.sol +37 -0
  391. package/contracts/instance/IInstance.sol +113 -43
  392. package/contracts/instance/IInstanceService.sol +61 -34
  393. package/contracts/instance/Instance.sol +201 -104
  394. package/contracts/instance/InstanceAdmin.sol +218 -177
  395. package/contracts/instance/InstanceAuthorizationV3.sol +154 -83
  396. package/contracts/instance/InstanceReader.sol +456 -255
  397. package/contracts/instance/InstanceService.sol +333 -262
  398. package/contracts/instance/InstanceServiceManager.sol +6 -7
  399. package/contracts/instance/InstanceStore.sol +153 -107
  400. package/contracts/instance/ProductStore.sol +290 -0
  401. package/contracts/instance/RiskSet.sol +126 -0
  402. package/contracts/instance/TargetNames.sol +10 -0
  403. package/contracts/instance/base/BalanceStore.sol +4 -6
  404. package/contracts/instance/base/ObjectCounter.sol +1 -2
  405. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  406. package/contracts/instance/base/ObjectSet.sol +31 -33
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +6 -5
  409. package/contracts/instance/module/IComponents.sol +29 -20
  410. package/contracts/instance/module/IDistribution.sol +21 -8
  411. package/contracts/instance/module/IPolicy.sol +50 -29
  412. package/contracts/instance/module/IRisk.sol +5 -0
  413. package/contracts/mock/Dip.sol +1 -1
  414. package/contracts/oracle/BasicOracle.sol +3 -7
  415. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  416. package/contracts/oracle/IOracle.sol +9 -4
  417. package/contracts/oracle/IOracleService.sol +2 -1
  418. package/contracts/oracle/Oracle.sol +11 -25
  419. package/contracts/oracle/OracleService.sol +119 -87
  420. package/contracts/oracle/OracleServiceManager.sol +6 -6
  421. package/contracts/pool/BasicPool.sol +40 -43
  422. package/contracts/pool/BasicPoolAuthorization.sol +39 -13
  423. package/contracts/pool/BundleService.sol +200 -155
  424. package/contracts/pool/BundleServiceManager.sol +6 -6
  425. package/contracts/pool/IBundleService.sol +42 -46
  426. package/contracts/pool/IPoolComponent.sol +19 -15
  427. package/contracts/pool/IPoolService.sol +97 -77
  428. package/contracts/pool/Pool.sol +145 -142
  429. package/contracts/pool/PoolLib.sol +341 -0
  430. package/contracts/pool/PoolService.sol +413 -233
  431. package/contracts/pool/PoolServiceManager.sol +4 -4
  432. package/contracts/product/ApplicationService.sol +144 -47
  433. package/contracts/product/ApplicationServiceManager.sol +4 -4
  434. package/contracts/product/BasicProduct.sol +11 -15
  435. package/contracts/product/BasicProductAuthorization.sol +32 -12
  436. package/contracts/product/ClaimService.sol +394 -185
  437. package/contracts/product/ClaimServiceManager.sol +4 -4
  438. package/contracts/product/IApplicationService.sol +29 -3
  439. package/contracts/product/IClaimService.sol +48 -11
  440. package/contracts/product/IPolicyService.sol +61 -39
  441. package/contracts/product/IPricingService.sol +11 -10
  442. package/contracts/product/IProductComponent.sol +27 -5
  443. package/contracts/product/IRiskService.sol +48 -0
  444. package/contracts/product/PolicyService.sol +434 -288
  445. package/contracts/product/PolicyServiceLib.sol +139 -0
  446. package/contracts/product/PolicyServiceManager.sol +4 -4
  447. package/contracts/product/PricingService.sol +90 -84
  448. package/contracts/product/PricingServiceManager.sol +4 -4
  449. package/contracts/product/Product.sol +198 -108
  450. package/contracts/product/RiskService.sol +189 -0
  451. package/contracts/product/RiskServiceManager.sol +39 -0
  452. package/contracts/registry/ChainNft.sol +72 -40
  453. package/contracts/registry/IRegistry.sol +70 -32
  454. package/contracts/registry/IRegistryService.sol +5 -12
  455. package/contracts/registry/IRelease.sol +29 -0
  456. package/contracts/registry/ITransferInterceptor.sol +1 -2
  457. package/contracts/registry/Registry.sol +367 -207
  458. package/contracts/registry/RegistryAdmin.sol +99 -291
  459. package/contracts/registry/RegistryAuthorization.sol +337 -0
  460. package/contracts/registry/RegistryService.sol +38 -49
  461. package/contracts/registry/RegistryServiceManager.sol +3 -3
  462. package/contracts/registry/ReleaseAdmin.sol +199 -0
  463. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  464. package/contracts/registry/ReleaseRegistry.sol +279 -239
  465. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  466. package/contracts/registry/TokenRegistry.sol +61 -59
  467. package/contracts/shared/Component.sol +72 -142
  468. package/contracts/shared/ComponentService.sol +428 -388
  469. package/contracts/shared/ComponentServiceManager.sol +8 -5
  470. package/contracts/shared/ContractLib.sol +312 -0
  471. package/contracts/shared/IComponent.sol +6 -18
  472. package/contracts/shared/IComponentService.sol +43 -40
  473. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  474. package/contracts/shared/ILifecycle.sol +3 -1
  475. package/contracts/shared/INftOwnable.sol +4 -0
  476. package/contracts/shared/IPolicyHolder.sol +12 -22
  477. package/contracts/shared/IRegisterable.sol +22 -1
  478. package/contracts/shared/IService.sol +3 -5
  479. package/contracts/shared/InitializableERC165.sol +10 -2
  480. package/contracts/shared/InstanceLinkedComponent.sol +74 -54
  481. package/contracts/shared/Lifecycle.sol +15 -4
  482. package/contracts/shared/NftOwnable.sol +31 -9
  483. package/contracts/shared/PolicyHolder.sol +18 -54
  484. package/contracts/shared/Registerable.sol +52 -21
  485. package/contracts/shared/RegistryLinked.sol +9 -14
  486. package/contracts/shared/Service.sol +20 -35
  487. package/contracts/shared/TokenHandler.sol +310 -26
  488. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  489. package/contracts/staking/IStaking.sol +270 -71
  490. package/contracts/staking/IStakingService.sol +45 -78
  491. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  492. package/contracts/staking/Staking.sol +526 -245
  493. package/contracts/staking/StakingLib.sol +195 -0
  494. package/contracts/staking/StakingManager.sol +12 -9
  495. package/contracts/staking/StakingReader.sol +70 -82
  496. package/contracts/staking/StakingService.sol +62 -152
  497. package/contracts/staking/StakingServiceManager.sol +7 -5
  498. package/contracts/staking/StakingStore.sol +1093 -330
  499. package/contracts/staking/TargetHandler.sol +132 -0
  500. package/contracts/staking/TargetManagerLib.sol +73 -46
  501. package/contracts/type/Amount.sol +19 -0
  502. package/contracts/type/Blocknumber.sol +24 -23
  503. package/contracts/type/ChainId.sol +101 -0
  504. package/contracts/type/ClaimId.sol +6 -1
  505. package/contracts/type/Fee.sol +8 -8
  506. package/contracts/type/Key32.sol +2 -2
  507. package/contracts/type/Key32Set.sol +62 -0
  508. package/contracts/type/NftId.sol +7 -0
  509. package/contracts/type/ObjectType.sol +73 -37
  510. package/contracts/type/PayoutId.sol +10 -10
  511. package/contracts/type/RiskId.sol +38 -6
  512. package/contracts/type/RoleId.sol +61 -55
  513. package/contracts/type/Seconds.sol +40 -1
  514. package/contracts/type/Selector.sol +5 -0
  515. package/contracts/type/StateId.sol +15 -1
  516. package/contracts/type/String.sol +12 -0
  517. package/contracts/type/Timestamp.sol +14 -7
  518. package/contracts/type/UFixed.sol +38 -126
  519. package/contracts/type/Version.sol +54 -5
  520. package/contracts/upgradeability/IVersionable.sol +3 -0
  521. package/contracts/upgradeability/ProxyManager.sol +94 -46
  522. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  523. package/contracts/upgradeability/Versionable.sol +8 -5
  524. package/package.json +5 -4
  525. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  526. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  527. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  528. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  529. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  531. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  532. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  533. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  534. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  535. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  536. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  537. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  538. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  539. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  540. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  541. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  542. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  543. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
  544. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  545. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  546. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  547. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  548. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  549. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  550. package/contracts/instance/module/IAccess.sol +0 -46
  551. package/contracts/product/IProductService.sol +0 -33
  552. package/contracts/product/ProductService.sol +0 -99
  553. package/contracts/product/ProductServiceManager.sol +0 -39
  554. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  555. package/contracts/shared/IKeyValueStore.sol +0 -54
  556. package/contracts/shared/InitializableCustom.sol +0 -177
  557. package/contracts/shared/KeyValueStore.sol +0 -131
  558. package/contracts/staking/StakeManagerLib.sol +0 -231
  559. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,37 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
4
  import {Amount, AmountLib} from "../type/Amount.sol";
7
5
  import {ClaimId} from "../type/ClaimId.sol";
8
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
- import {Fee, FeeLib} from "../type/Fee.sol";
10
- import {IRisk} from "../instance/module/IRisk.sol";
6
+ import {Fee} from "../type/Fee.sol";
11
7
  import {IApplicationService} from "./IApplicationService.sol";
12
8
  import {IAuthorization} from "../authorization/IAuthorization.sol";
13
9
  import {IComponentService} from "../shared/IComponentService.sol";
10
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
14
11
  import {IPolicyService} from "./IPolicyService.sol";
15
- import {IProductService} from "./IProductService.sol";
12
+ import {IRiskService} from "./IRiskService.sol";
16
13
  import {IClaimService} from "./IClaimService.sol";
17
14
  import {IPricingService} from "./IPricingService.sol";
18
15
  import {IProductComponent} from "./IProductComponent.sol";
19
- import {NftId, NftIdLib} from "../type/NftId.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {COMPONENT, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
20
18
  import {PayoutId} from "../type/PayoutId.sol";
21
- import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
19
+ import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
22
20
  import {ReferralId} from "../type/Referral.sol";
23
- import {RiskId, RiskIdLib} from "../type/RiskId.sol";
21
+ import {RiskId} from "../type/RiskId.sol";
24
22
  import {Seconds} from "../type/Seconds.sol";
25
23
  import {StateId} from "../type/StateId.sol";
26
24
  import {Timestamp} from "../type/Timestamp.sol";
27
25
 
28
- import {TokenHandler} from "../shared/TokenHandler.sol";
29
-
30
- import {InstanceReader} from "../instance/InstanceReader.sol";
31
26
  import {IPolicy} from "../instance/module/IPolicy.sol";
32
27
  import {IComponents} from "../instance/module/IComponents.sol";
33
- import {Pool} from "../pool/Pool.sol";
34
- import {Distribution} from "../distribution/Distribution.sol";
35
28
 
36
29
  abstract contract Product is
37
30
  InstanceLinkedComponent,
@@ -41,16 +34,39 @@ abstract contract Product is
41
34
  bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
42
35
 
43
36
  struct ProductStorage {
44
- IProductService _productService;
37
+ IComponents.ProductInfo _productInfo;
38
+ IComponents.FeeInfo _feeInfo;
39
+ IComponentService _componentService;
40
+ IRiskService _riskService;
45
41
  IApplicationService _applicationService;
46
42
  IPolicyService _policyService;
47
43
  IClaimService _claimService;
48
44
  IPricingService _pricingService;
49
- IComponentService _componentService;
50
- NftId _poolNftId;
51
- NftId _distributionNftId;
52
- Pool _pool;
53
- Distribution _distribution;
45
+ }
46
+
47
+
48
+ function registerComponent(address component)
49
+ external
50
+ virtual
51
+ restricted()
52
+ onlyOwner()
53
+ returns (NftId componentNftId)
54
+ {
55
+ return _getProductStorage()._componentService.registerComponent(component);
56
+ }
57
+
58
+
59
+ function processFundedClaim(
60
+ NftId policyNftId,
61
+ ClaimId claimId,
62
+ Amount availableAmount
63
+ )
64
+ external
65
+ virtual
66
+ restricted() // pool service role
67
+ onlyNftOfType(policyNftId, POLICY())
68
+ {
69
+ // default implementation does nothing
54
70
  }
55
71
 
56
72
 
@@ -62,12 +78,14 @@ abstract contract Product is
62
78
  NftId bundleNftId,
63
79
  ReferralId referralId
64
80
  )
65
- external
81
+ public
66
82
  view
83
+ virtual
67
84
  override
85
+ onlyNftOfType(bundleNftId, BUNDLE())
68
86
  returns (Amount premiumAmount)
69
87
  {
70
- IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
88
+ IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
71
89
  getNftId(),
72
90
  riskId,
73
91
  sumInsuredAmount,
@@ -77,14 +95,14 @@ abstract contract Product is
77
95
  referralId
78
96
  );
79
97
 
80
- return AmountLib.toAmount(premium.premiumAmount);
98
+ return premium.premiumAmount;
81
99
  }
82
100
 
83
101
  function calculateNetPremium(
84
102
  Amount sumInsuredAmount,
85
- RiskId riskId,
86
- Seconds lifetime,
87
- bytes memory applicationData
103
+ RiskId,
104
+ Seconds,
105
+ bytes memory
88
106
  )
89
107
  external
90
108
  view
@@ -96,89 +114,58 @@ abstract contract Product is
96
114
  }
97
115
 
98
116
 
99
- function register()
100
- external
101
- virtual
102
- onlyOwner()
103
- {
104
- _getProductStorage()._componentService.registerProduct();
105
- _approveTokenHandler(type(uint256).max);
106
- }
107
-
108
-
109
117
  function getInitialProductInfo()
110
118
  public
111
119
  virtual
112
120
  view
113
121
  returns (IComponents.ProductInfo memory poolInfo)
114
122
  {
115
- ProductStorage storage $ = _getProductStorage();
116
-
117
- return IComponents.ProductInfo({
118
- distributionNftId: $._distributionNftId,
119
- poolNftId: $._poolNftId,
120
- productFee: FeeLib.zero(),
121
- processingFee: FeeLib.zero(),
122
- distributionFee: FeeLib.zero(),
123
- minDistributionOwnerFee: FeeLib.zero(),
124
- poolFee: FeeLib.zero(),
125
- stakingFee: FeeLib.zero(),
126
- performanceFee: FeeLib.zero()
127
- });
123
+ return _getProductStorage()._productInfo;
128
124
  }
129
125
 
130
- function getPoolNftId() external view override returns (NftId poolNftId) {
131
- return getRegistry().getNftId(address(_getProductStorage()._pool));
126
+ function getInitialFeeInfo()
127
+ public
128
+ virtual
129
+ view
130
+ returns (IComponents.FeeInfo memory feeInfo)
131
+ {
132
+ return _getProductStorage()._feeInfo;
132
133
  }
133
134
 
134
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
135
- return getRegistry().getNftId(address(_getProductStorage()._distribution));
136
- }
137
135
 
138
- function _initializeProduct(
136
+ function __Product_init(
139
137
  address registry,
140
138
  NftId instanceNftId,
141
- IAuthorization authorization,
142
- address initialOwner,
143
139
  string memory name,
144
- address token,
145
- bool isInterceptor,
146
- address pool,
147
- address distribution,
148
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
149
- bytes memory componentData // writeonly data that will saved in the object info record of the registry
140
+ IComponents.ProductInfo memory productInfo,
141
+ IComponents.FeeInfo memory feeInfo,
142
+ IAuthorization authorization,
143
+ address initialOwner
150
144
  )
151
145
  internal
152
146
  virtual
153
147
  onlyInitializing()
154
148
  {
155
- _initializeInstanceLinkedComponent(
149
+ __InstanceLinkedComponent_init(
156
150
  registry,
157
151
  instanceNftId,
158
152
  name,
159
- token,
160
153
  PRODUCT(),
161
154
  authorization,
162
- isInterceptor,
163
- initialOwner,
164
- registryData,
165
- componentData);
155
+ productInfo.isInterceptingPolicyTransfers,
156
+ initialOwner);
166
157
 
167
158
  ProductStorage storage $ = _getProductStorage();
168
- // TODO add validation
169
- // TODO refactor to go via registry ?
170
- $._productService = IProductService(_getServiceAddress(PRODUCT()));
159
+ $._productInfo = productInfo;
160
+ $._feeInfo = feeInfo;
161
+ $._riskService = IRiskService(_getServiceAddress(RISK()));
171
162
  $._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
172
163
  $._policyService = IPolicyService(_getServiceAddress(POLICY()));
173
164
  $._claimService = IClaimService(_getServiceAddress(CLAIM()));
174
165
  $._pricingService = IPricingService(_getServiceAddress(PRICE()));
175
166
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
176
- $._pool = Pool(pool);
177
- $._distribution = Distribution(distribution);
178
- $._poolNftId = getRegistry().getNftId(pool);
179
- $._distributionNftId = getRegistry().getNftId(distribution);
180
167
 
181
- registerInterface(type(IProductComponent).interfaceId);
168
+ _registerInterface(type(IProductComponent).interfaceId);
182
169
  }
183
170
 
184
171
 
@@ -194,10 +181,14 @@ abstract contract Product is
194
181
 
195
182
 
196
183
  function _createRisk(
197
- RiskId id,
184
+ bytes32 id,
198
185
  bytes memory data
199
- ) internal {
200
- _getProductService().createRisk(
186
+ )
187
+ internal
188
+ virtual
189
+ returns (RiskId riskId)
190
+ {
191
+ return _getProductStorage()._riskService.createRisk(
201
192
  id,
202
193
  data
203
194
  );
@@ -206,26 +197,38 @@ abstract contract Product is
206
197
  function _updateRisk(
207
198
  RiskId id,
208
199
  bytes memory data
209
- ) internal {
210
- _getProductService().updateRisk(
200
+ )
201
+ internal
202
+ virtual
203
+ {
204
+ _getProductStorage()._riskService.updateRisk(
211
205
  id,
212
206
  data
213
207
  );
214
208
  }
215
209
 
216
- function _updateRiskState(
210
+ function _setRiskLocked(
217
211
  RiskId id,
218
- StateId state
219
- ) internal {
220
- _getProductService().updateRiskState(
212
+ bool locked
213
+ )
214
+ internal
215
+ virtual
216
+ {
217
+ _getProductStorage()._riskService.setRiskLocked(
221
218
  id,
222
- state
219
+ locked
223
220
  );
224
221
  }
225
222
 
226
-
227
- function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
228
- return getInstance().getInstanceReader().getRiskInfo(id);
223
+ function _closeRisk(
224
+ RiskId id
225
+ )
226
+ internal
227
+ virtual
228
+ {
229
+ _getProductStorage()._riskService.closeRisk(
230
+ id
231
+ );
229
232
  }
230
233
 
231
234
 
@@ -233,18 +236,21 @@ abstract contract Product is
233
236
  address applicationOwner,
234
237
  RiskId riskId,
235
238
  Amount sumInsuredAmount,
239
+ Amount premiumAmount,
236
240
  Seconds lifetime,
237
241
  NftId bundleNftId,
238
242
  ReferralId referralId,
239
243
  bytes memory applicationData
240
244
  )
241
245
  internal
246
+ virtual
242
247
  returns (NftId applicationNftId)
243
248
  {
244
249
  return _getProductStorage()._applicationService.create(
245
250
  applicationOwner,
246
251
  riskId,
247
252
  sumInsuredAmount,
253
+ premiumAmount,
248
254
  lifetime,
249
255
  bundleNftId,
250
256
  referralId,
@@ -252,33 +258,73 @@ abstract contract Product is
252
258
  );
253
259
  }
254
260
 
255
- function _collateralize(
256
- NftId policyNftId,
257
- bool requirePremiumPayment,
258
- Timestamp activateAt
261
+ function _revoke(
262
+ NftId applicationNftId
259
263
  )
260
264
  internal
265
+ virtual
261
266
  {
262
- _getProductStorage()._policyService.collateralize(
263
- policyNftId,
264
- requirePremiumPayment,
265
- activateAt);
267
+ _getProductStorage()._applicationService.revoke(
268
+ applicationNftId);
269
+ }
270
+
271
+ function _createPolicy(
272
+ NftId applicationNftId,
273
+ Timestamp activateAt,
274
+ Amount maxPremiumAmount
275
+ )
276
+ internal
277
+ virtual
278
+ returns (Amount premiumAmount)
279
+ {
280
+ premiumAmount = _getProductStorage()._policyService.createPolicy(
281
+ applicationNftId,
282
+ activateAt,
283
+ maxPremiumAmount);
266
284
  }
267
285
 
268
286
  function _decline(
269
287
  NftId policyNftId
270
288
  )
271
289
  internal
290
+ virtual
272
291
  {
273
292
  _getProductStorage()._policyService.decline(
274
293
  policyNftId);
275
294
  }
276
295
 
296
+ function _expire(
297
+ NftId policyNftId,
298
+ Timestamp expireAt
299
+ )
300
+ internal
301
+ virtual
302
+ returns (Timestamp expiredAt)
303
+ {
304
+ expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
305
+ }
306
+
307
+ /// @dev adjust the activation date of the policy.
308
+ /// The policy must already have an activation date set.
309
+ /// Allowed values are from the current blocktime to the expiration date of the policy.
310
+ function _adjustActivation(
311
+ NftId policyNftId,
312
+ Timestamp activateAt
313
+ )
314
+ internal
315
+ virtual
316
+ {
317
+ _getProductStorage()._policyService.adjustActivation(
318
+ policyNftId,
319
+ activateAt);
320
+ }
321
+
277
322
  function _collectPremium(
278
323
  NftId policyNftId,
279
324
  Timestamp activateAt
280
325
  )
281
326
  internal
327
+ virtual
282
328
  {
283
329
  _getProductStorage()._policyService.collectPremium(
284
330
  policyNftId,
@@ -290,6 +336,7 @@ abstract contract Product is
290
336
  Timestamp activateAt
291
337
  )
292
338
  internal
339
+ virtual
293
340
  {
294
341
  _getProductStorage()._policyService.activate(
295
342
  policyNftId,
@@ -300,6 +347,7 @@ abstract contract Product is
300
347
  NftId policyNftId
301
348
  )
302
349
  internal
350
+ virtual
303
351
  {
304
352
  _getProductStorage()._policyService.close(
305
353
  policyNftId);
@@ -311,6 +359,7 @@ abstract contract Product is
311
359
  bytes memory claimData
312
360
  )
313
361
  internal
362
+ virtual
314
363
  returns(ClaimId)
315
364
  {
316
365
  return _getProductStorage()._claimService.submit(
@@ -319,6 +368,18 @@ abstract contract Product is
319
368
  claimData);
320
369
  }
321
370
 
371
+ function _revokeClaim(
372
+ NftId policyNftId,
373
+ ClaimId claimId
374
+ )
375
+ internal
376
+ virtual
377
+ {
378
+ _getProductStorage()._claimService.revoke(
379
+ policyNftId,
380
+ claimId);
381
+ }
382
+
322
383
  function _confirmClaim(
323
384
  NftId policyNftId,
324
385
  ClaimId claimId,
@@ -326,6 +387,7 @@ abstract contract Product is
326
387
  bytes memory data
327
388
  )
328
389
  internal
390
+ virtual
329
391
  {
330
392
  _getProductStorage()._claimService.confirm(
331
393
  policyNftId,
@@ -340,6 +402,7 @@ abstract contract Product is
340
402
  bytes memory data
341
403
  )
342
404
  internal
405
+ virtual
343
406
  {
344
407
  _getProductStorage()._claimService.decline(
345
408
  policyNftId,
@@ -347,13 +410,14 @@ abstract contract Product is
347
410
  data);
348
411
  }
349
412
 
350
- function _closeClaim(
413
+ function _cancelConfirmedClaim(
351
414
  NftId policyNftId,
352
415
  ClaimId claimId
353
416
  )
354
417
  internal
418
+ virtual
355
419
  {
356
- _getProductStorage()._claimService.close(
420
+ _getProductStorage()._claimService.cancelConfirmedClaim(
357
421
  policyNftId,
358
422
  claimId);
359
423
  }
@@ -365,6 +429,7 @@ abstract contract Product is
365
429
  bytes memory data
366
430
  )
367
431
  internal
432
+ virtual
368
433
  returns (PayoutId)
369
434
  {
370
435
  return _getProductStorage()._claimService.createPayout(
@@ -374,28 +439,53 @@ abstract contract Product is
374
439
  data);
375
440
  }
376
441
 
442
+ function _createPayoutForBeneficiary(
443
+ NftId policyNftId,
444
+ ClaimId claimId,
445
+ Amount amount,
446
+ address beneficiary,
447
+ bytes memory data
448
+ )
449
+ internal
450
+ virtual
451
+ returns (PayoutId)
452
+ {
453
+ return _getProductStorage()._claimService.createPayoutForBeneficiary(
454
+ policyNftId,
455
+ claimId,
456
+ amount,
457
+ beneficiary,
458
+ data);
459
+ }
460
+
377
461
  function _processPayout(
378
462
  NftId policyNftId,
379
463
  PayoutId payoutId
380
464
  )
381
465
  internal
466
+ virtual
467
+ returns (Amount netPayoutAmount, Amount processingFeeAmount)
382
468
  {
383
- _getProductStorage()._claimService.processPayout(
469
+ (netPayoutAmount, processingFeeAmount) = _getProductStorage()._claimService.processPayout(
384
470
  policyNftId,
385
471
  payoutId);
386
472
  }
387
473
 
388
- function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
389
- return RiskIdLib.toRiskId(riskName);
474
+ function _cancelPayout(
475
+ NftId policyNftId,
476
+ PayoutId payoutId
477
+ )
478
+ internal
479
+ virtual
480
+ {
481
+ _getProductStorage()._claimService.cancelPayout(
482
+ policyNftId,
483
+ payoutId);
390
484
  }
391
485
 
392
- function _getProductStorage() private pure returns (ProductStorage storage $) {
486
+ function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
393
487
  assembly {
394
488
  $.slot := PRODUCT_STORAGE_LOCATION_V1
395
489
  }
396
490
  }
397
-
398
- function _getProductService() internal view returns (IProductService) {
399
- return _getProductStorage()._productService;
400
- }
401
491
  }