@etherisc/gif-next 0.0.2-7a0dfe9-847 → 0.0.2-7aa572b-366

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 (536) hide show
  1. package/README.md +100 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +365 -113
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +164 -487
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +83 -387
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +629 -365
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +186 -128
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -198
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +437 -126
  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 +1461 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +540 -65
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +290 -57
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +549 -166
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1034 -311
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1689 -773
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +303 -227
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -106
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +921 -718
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +108 -355
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +91 -140
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +84 -323
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +169 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +140 -98
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +132 -421
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +295 -350
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +161 -115
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +148 -121
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +120 -236
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +428 -324
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +110 -416
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +654 -549
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +189 -107
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +188 -180
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +122 -100
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +261 -439
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +431 -234
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +158 -124
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +245 -233
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +465 -307
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +155 -109
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.json +224 -338
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +128 -138
  176. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  177. package/artifacts/contracts/product/Product.sol/Product.json +253 -431
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +342 -42
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +548 -103
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +795 -394
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +104 -90
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +438 -647
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +140 -136
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +394 -300
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +91 -140
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +83 -322
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  263. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +312 -133
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
  275. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  276. package/artifacts/contracts/staking/Staking.sol/Staking.json +410 -390
  277. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +144 -101
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +91 -67
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +224 -171
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +121 -95
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +205 -150
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +91 -50
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  294. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  296. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  298. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  300. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  302. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  304. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  306. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  308. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  310. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  312. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  314. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  316. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  318. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  320. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  322. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  324. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  328. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  330. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  332. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  338. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  342. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  344. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -80
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  346. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  347. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  348. package/contracts/accounting/AccountingService.sol +261 -0
  349. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  350. package/contracts/accounting/IAccountingService.sol +45 -0
  351. package/contracts/authorization/AccessAdmin.sol +456 -267
  352. package/contracts/authorization/AccessAdminLib.sol +396 -0
  353. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  354. package/contracts/authorization/Authorization.sol +159 -203
  355. package/contracts/authorization/IAccess.sol +25 -6
  356. package/contracts/authorization/IAccessAdmin.sol +87 -79
  357. package/contracts/authorization/IAuthorization.sol +9 -36
  358. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  359. package/contracts/authorization/ServiceAuthorization.sol +254 -24
  360. package/contracts/distribution/BasicDistribution.sol +20 -28
  361. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  362. package/contracts/distribution/Distribution.sol +42 -96
  363. package/contracts/distribution/DistributionService.sol +242 -131
  364. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  365. package/contracts/distribution/IDistributionComponent.sol +4 -11
  366. package/contracts/distribution/IDistributionService.sol +47 -29
  367. package/contracts/examples/fire/DamageLevel.sol +59 -0
  368. package/contracts/examples/fire/FirePool.sol +86 -0
  369. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  370. package/contracts/examples/fire/FireProduct.sol +433 -0
  371. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  372. package/contracts/examples/fire/FireUSD.sol +26 -0
  373. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  374. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  375. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  376. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  377. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  378. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  379. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  380. package/contracts/instance/BundleSet.sol +42 -38
  381. package/contracts/instance/IInstance.sol +101 -42
  382. package/contracts/instance/IInstanceService.sol +52 -31
  383. package/contracts/instance/Instance.sol +189 -97
  384. package/contracts/instance/InstanceAdmin.sol +275 -158
  385. package/contracts/instance/InstanceAuthorizationV3.sol +120 -58
  386. package/contracts/instance/InstanceReader.sol +478 -251
  387. package/contracts/instance/InstanceService.sol +298 -229
  388. package/contracts/instance/InstanceServiceManager.sol +6 -7
  389. package/contracts/instance/InstanceStore.sol +23 -2
  390. package/contracts/instance/RiskSet.sol +118 -0
  391. package/contracts/instance/base/BalanceStore.sol +3 -5
  392. package/contracts/instance/base/ObjectCounter.sol +1 -2
  393. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  394. package/contracts/instance/base/ObjectSet.sol +31 -33
  395. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  396. package/contracts/instance/module/IBundle.sol +6 -5
  397. package/contracts/instance/module/IComponents.sol +30 -19
  398. package/contracts/instance/module/IDistribution.sol +21 -8
  399. package/contracts/instance/module/IPolicy.sol +50 -29
  400. package/contracts/instance/module/IRisk.sol +5 -0
  401. package/contracts/mock/Dip.sol +1 -1
  402. package/contracts/oracle/BasicOracle.sol +1 -4
  403. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  404. package/contracts/oracle/IOracle.sol +9 -4
  405. package/contracts/oracle/IOracleService.sol +2 -1
  406. package/contracts/oracle/Oracle.sol +9 -25
  407. package/contracts/oracle/OracleService.sol +117 -85
  408. package/contracts/oracle/OracleServiceManager.sol +6 -6
  409. package/contracts/pool/BasicPool.sol +37 -28
  410. package/contracts/pool/BasicPoolAuthorization.sol +38 -11
  411. package/contracts/pool/BundleService.sol +184 -151
  412. package/contracts/pool/BundleServiceManager.sol +6 -6
  413. package/contracts/pool/IBundleService.sol +28 -34
  414. package/contracts/pool/IPoolComponent.sol +19 -15
  415. package/contracts/pool/IPoolService.sol +90 -75
  416. package/contracts/pool/Pool.sol +143 -130
  417. package/contracts/pool/PoolLib.sol +353 -0
  418. package/contracts/pool/PoolService.sol +377 -248
  419. package/contracts/pool/PoolServiceManager.sol +4 -4
  420. package/contracts/product/ApplicationService.sol +117 -48
  421. package/contracts/product/ApplicationServiceManager.sol +4 -4
  422. package/contracts/product/BasicProduct.sol +12 -45
  423. package/contracts/product/BasicProductAuthorization.sol +32 -12
  424. package/contracts/product/ClaimService.sol +371 -157
  425. package/contracts/product/ClaimServiceManager.sol +4 -4
  426. package/contracts/product/IApplicationService.sol +9 -2
  427. package/contracts/product/IClaimService.sol +44 -8
  428. package/contracts/product/IPolicyService.sol +52 -36
  429. package/contracts/product/IPricingService.sol +11 -10
  430. package/contracts/product/IProductComponent.sol +27 -5
  431. package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
  432. package/contracts/product/PolicyService.sol +434 -273
  433. package/contracts/product/PolicyServiceLib.sol +139 -0
  434. package/contracts/product/PolicyServiceManager.sol +4 -4
  435. package/contracts/product/PricingService.sol +90 -84
  436. package/contracts/product/PricingServiceManager.sol +4 -4
  437. package/contracts/product/Product.sol +170 -93
  438. package/contracts/product/RiskService.sol +157 -0
  439. package/contracts/product/RiskServiceManager.sol +39 -0
  440. package/contracts/registry/ChainNft.sol +72 -40
  441. package/contracts/registry/IRegistry.sol +64 -28
  442. package/contracts/registry/IRegistryService.sol +5 -12
  443. package/contracts/registry/IRelease.sol +29 -0
  444. package/contracts/registry/ITransferInterceptor.sol +1 -2
  445. package/contracts/registry/Registry.sol +357 -203
  446. package/contracts/registry/RegistryAdmin.sol +110 -287
  447. package/contracts/registry/RegistryAuthorization.sol +284 -0
  448. package/contracts/registry/RegistryService.sol +37 -48
  449. package/contracts/registry/RegistryServiceManager.sol +3 -3
  450. package/contracts/registry/ReleaseAdmin.sol +195 -0
  451. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  452. package/contracts/registry/ReleaseRegistry.sol +275 -242
  453. package/contracts/registry/ServiceAuthorizationV3.sol +201 -57
  454. package/contracts/registry/TokenRegistry.sol +12 -13
  455. package/contracts/shared/Component.sol +65 -135
  456. package/contracts/shared/ComponentService.sol +411 -384
  457. package/contracts/shared/ComponentServiceManager.sol +8 -5
  458. package/contracts/shared/ContractLib.sol +311 -0
  459. package/contracts/shared/IComponent.sol +6 -18
  460. package/contracts/shared/IComponentService.sol +42 -40
  461. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  462. package/contracts/shared/ILifecycle.sol +3 -1
  463. package/contracts/shared/INftOwnable.sol +2 -0
  464. package/contracts/shared/IPolicyHolder.sol +12 -22
  465. package/contracts/shared/IRegisterable.sol +22 -1
  466. package/contracts/shared/IService.sol +3 -5
  467. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  468. package/contracts/shared/InstanceLinkedComponent.sol +72 -50
  469. package/contracts/shared/KeyValueStore.sol +1 -1
  470. package/contracts/shared/Lifecycle.sol +15 -4
  471. package/contracts/shared/NftOwnable.sol +31 -11
  472. package/contracts/shared/PolicyHolder.sol +20 -59
  473. package/contracts/shared/Registerable.sol +52 -21
  474. package/contracts/shared/RegistryLinked.sol +9 -14
  475. package/contracts/shared/Service.sol +20 -35
  476. package/contracts/shared/TokenHandler.sol +310 -26
  477. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  478. package/contracts/staking/IStaking.sol +48 -20
  479. package/contracts/staking/IStakingService.sol +21 -11
  480. package/contracts/staking/Staking.sol +198 -109
  481. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
  482. package/contracts/staking/StakingManager.sol +8 -6
  483. package/contracts/staking/StakingReader.sol +40 -24
  484. package/contracts/staking/StakingService.sol +96 -39
  485. package/contracts/staking/StakingServiceManager.sol +6 -5
  486. package/contracts/staking/StakingStore.sol +3 -2
  487. package/contracts/staking/TargetManagerLib.sol +8 -4
  488. package/contracts/type/Amount.sol +15 -0
  489. package/contracts/type/Blocknumber.sol +7 -1
  490. package/contracts/type/ClaimId.sol +6 -1
  491. package/contracts/type/Fee.sol +8 -8
  492. package/contracts/type/Key32.sol +2 -2
  493. package/contracts/type/Key32Set.sol +62 -0
  494. package/contracts/type/NftId.sol +7 -0
  495. package/contracts/type/ObjectType.sol +73 -37
  496. package/contracts/type/PayoutId.sol +10 -10
  497. package/contracts/type/RiskId.sol +38 -6
  498. package/contracts/type/RoleId.sol +61 -55
  499. package/contracts/type/Seconds.sol +25 -1
  500. package/contracts/type/Selector.sol +5 -0
  501. package/contracts/type/StateId.sol +15 -1
  502. package/contracts/type/String.sol +12 -0
  503. package/contracts/type/Timestamp.sol +10 -5
  504. package/contracts/type/UFixed.sol +37 -126
  505. package/contracts/type/Version.sol +54 -5
  506. package/contracts/upgradeability/ProxyManager.sol +81 -45
  507. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
  508. package/contracts/upgradeability/Versionable.sol +6 -3
  509. package/package.json +5 -4
  510. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  511. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  512. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  513. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  514. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  515. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  516. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  517. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  518. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  519. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  520. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  521. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  522. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  523. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  524. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  525. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  526. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  527. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -470
  528. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  529. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  530. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  531. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  532. package/contracts/instance/module/IAccess.sol +0 -46
  533. package/contracts/product/ProductService.sol +0 -99
  534. package/contracts/product/ProductServiceManager.sol +0 -39
  535. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  536. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -12,14 +12,14 @@ contract PoolServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with pool service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
19
  PoolService poolSrv = new PoolService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
23
  address(poolSrv),
24
24
  data,
25
25
  salt);
@@ -11,21 +11,21 @@ import {IPricingService} from "./IPricingService.sol";
11
11
  import {IRegistryService} from "../registry/IRegistryService.sol";
12
12
 
13
13
  import {AmountLib} from "../type/Amount.sol";
14
+ import {ContractLib} from "../shared/ContractLib.sol";
14
15
  import {Seconds} from "../type/Seconds.sol";
15
16
  import {zeroTimestamp} from "../type/Timestamp.sol";
16
- import {ObjectType, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
17
+ import {ObjectType, BUNDLE, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
17
18
  import {REVOKED} from "../type/StateId.sol";
18
19
  import {NftId, NftIdLib} from "../type/NftId.sol";
19
20
  import {ReferralId} from "../type/Referral.sol";
20
21
  import {RiskId} from "../type/RiskId.sol";
21
22
  import {Amount, AmountLib} from "../type/Amount.sol";
22
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
23
+ import {Service} from "../shared/Service.sol";
23
24
  import {InstanceReader} from "../instance/InstanceReader.sol";
24
25
 
25
26
 
26
-
27
27
  contract ApplicationService is
28
- ComponentVerifyingService,
28
+ Service,
29
29
  IApplicationService
30
30
  {
31
31
  IDistributionService private _distributionService;
@@ -41,25 +41,24 @@ contract ApplicationService is
41
41
  initializer()
42
42
  {
43
43
  (
44
- address registryAddress,,
45
- //address managerAddress
46
- address authority
47
- ) = abi.decode(data, (address, address, address));
44
+ address authority,
45
+ address registry
46
+ ) = abi.decode(data, (address, address));
48
47
 
49
- initializeService(registryAddress, address(0), owner);
48
+ __Service_init(authority, registry, owner);
50
49
 
51
50
  _distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
52
51
  _pricingService = IPricingService(_getServiceAddress(PRICE()));
53
52
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
54
53
 
55
- registerInterface(type(IApplicationService).interfaceId);
54
+ _registerInterface(type(IApplicationService).interfaceId);
56
55
  }
57
56
 
58
57
 
59
- function _checkLinkedpplicationParameters(
58
+ function _checkLinkedApplicationParameters(
60
59
  InstanceReader instanceReader,
61
60
  NftId productNftId,
62
- RiskId rirskId,
61
+ RiskId riskId,
63
62
  ReferralId referralId,
64
63
  NftId bundleNftId
65
64
  )
@@ -67,17 +66,32 @@ contract ApplicationService is
67
66
  virtual
68
67
  view
69
68
  {
70
- IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
71
-
72
- // TODO check riskId with product
73
-
74
- // TODO check referral with distribution
69
+ // check risk with product
70
+ (bool exists, bool active) = instanceReader.getRiskSet().checkRisk(productNftId, riskId);
71
+ if (!exists) { revert ErrorApplicationServiceRiskUnknown(riskId, productNftId); }
72
+ if (!active) { revert ErrorApplicationServiceRiskPaused(riskId, productNftId); }
73
+
74
+ NftId riskProductNftId = instanceReader.getRiskInfo(riskId).productNftId;
75
+ if (productNftId != riskProductNftId) {
76
+ revert ErrorApplicationServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
77
+ }
75
78
 
76
79
  // check bundle with pool
77
- NftId productPoolNftId = productInfo.poolNftId;
78
- NftId bundlePoolNftId = instanceReader.getBundleInfo(bundleNftId).poolNftId;
79
- if(bundlePoolNftId != productPoolNftId) {
80
- revert ErrorApplicationServiceBundlePoolMismatch(bundleNftId, productPoolNftId, bundlePoolNftId);
80
+ IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
81
+ {
82
+ NftId poolNftId = productInfo.poolNftId;
83
+ (exists, active) = instanceReader.getBundleSet().checkBundle(poolNftId, bundleNftId);
84
+ if (!exists) { revert ErrorApplicationServiceBundleUnknown(bundleNftId, poolNftId); }
85
+ if (!active) { revert ErrorApplicationServiceBundleLocked(bundleNftId, poolNftId); }
86
+ }
87
+
88
+ // check referral with distribution
89
+ {
90
+ if (productInfo.hasDistribution && ! referralId.eqz()) {
91
+ if (!_distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
92
+ revert ErrorApplicationServiceReferralInvalid(productNftId, productInfo.distributionNftId, referralId);
93
+ }
94
+ }
81
95
  }
82
96
  }
83
97
 
@@ -111,8 +125,7 @@ contract ApplicationService is
111
125
  view
112
126
  returns (Amount premiumAmount)
113
127
  {
114
- return AmountLib.toAmount(
115
- _pricingService.calculatePremium(
128
+ return _pricingService.calculatePremium(
116
129
  info.productNftId,
117
130
  info.riskId,
118
131
  info.sumInsuredAmount,
@@ -120,7 +133,7 @@ contract ApplicationService is
120
133
  info.applicationData,
121
134
  info.bundleNftId,
122
135
  info.referralId
123
- ).premiumAmount);
136
+ ).premiumAmount;
124
137
  }
125
138
 
126
139
 
@@ -128,6 +141,7 @@ contract ApplicationService is
128
141
  address applicationOwner,
129
142
  RiskId riskId,
130
143
  Amount sumInsuredAmount,
144
+ Amount premiumAmount,
131
145
  Seconds lifetime,
132
146
  NftId bundleNftId,
133
147
  ReferralId referralId,
@@ -135,13 +149,17 @@ contract ApplicationService is
135
149
  )
136
150
  external
137
151
  virtual
152
+ restricted()
153
+ nonReentrant()
138
154
  returns (NftId applicationNftId)
139
155
  {
140
- (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
156
+ _checkNftType(bundleNftId, BUNDLE());
157
+
158
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveProduct();
141
159
 
142
160
  // check if provided references are valid and linked to calling product contract
143
161
  InstanceReader instanceReader = instance.getInstanceReader();
144
- _checkLinkedpplicationParameters(
162
+ _checkLinkedApplicationParameters(
145
163
  instanceReader,
146
164
  productNftId,
147
165
  riskId,
@@ -152,14 +170,45 @@ contract ApplicationService is
152
170
  applicationNftId = _registerApplication(productNftId, applicationOwner);
153
171
 
154
172
  // create policy info for application
155
- IPolicy.PolicyInfo memory applicationInfo = IPolicy.PolicyInfo({
173
+ IPolicy.PolicyInfo memory applicationInfo = _createApplicationInfo(
174
+ productNftId,
175
+ riskId,
176
+ sumInsuredAmount,
177
+ premiumAmount,
178
+ lifetime,
179
+ bundleNftId,
180
+ referralId,
181
+ applicationData);
182
+
183
+ // register application with instance
184
+ instance.getInstanceStore().createApplication(
185
+ applicationNftId,
186
+ applicationInfo);
187
+
188
+ // TODO: add logging
189
+ }
190
+
191
+ function _createApplicationInfo(
192
+ NftId productNftId,
193
+ RiskId riskId,
194
+ Amount sumInsuredAmount,
195
+ Amount premiumAmount,
196
+ Seconds lifetime,
197
+ NftId bundleNftId,
198
+ ReferralId referralId,
199
+ bytes memory applicationData
200
+ )
201
+ internal
202
+ virtual
203
+ returns (IPolicy.PolicyInfo memory applicationInfo)
204
+ {
205
+ return IPolicy.PolicyInfo({
156
206
  productNftId: productNftId,
157
207
  bundleNftId: bundleNftId,
158
208
  referralId: referralId,
159
209
  riskId: riskId,
160
210
  sumInsuredAmount: sumInsuredAmount,
161
- premiumAmount: AmountLib.zero(),
162
- premiumPaidAmount: AmountLib.zero(),
211
+ premiumAmount: premiumAmount,
163
212
  lifetime: lifetime,
164
213
  applicationData: applicationData,
165
214
  processData: "",
@@ -171,30 +220,21 @@ contract ApplicationService is
171
220
  expiredAt: zeroTimestamp(),
172
221
  closedAt: zeroTimestamp()
173
222
  });
174
-
175
- // TODO consider to provide this amount externally
176
- // actual calculation is done 2nd time anyway for premium collection
177
- // calculate premium amount
178
- applicationInfo.premiumAmount = _calculatePremiumAmount(applicationInfo);
179
-
180
- // register application with instance
181
- instance.getInstanceStore().createApplication(
182
- applicationNftId,
183
- applicationInfo);
184
-
185
- // TODO: add logging
186
223
  }
187
224
 
188
-
189
225
  function renew(
190
226
  NftId policyNftId, // policy to be renewd (renewal inherits policy attributes)
191
227
  NftId bundleNftId // will likely need a newer bundle for underwriting
192
228
  )
193
229
  external
194
- virtual override
230
+ virtual
231
+ restricted()
232
+ nonReentrant()
195
233
  returns (NftId applicationNftId)
196
234
  {
197
-
235
+ _checkNftType(policyNftId, POLICY());
236
+ _checkNftType(bundleNftId, BUNDLE());
237
+ // TODO implement
198
238
  }
199
239
 
200
240
 
@@ -208,21 +248,50 @@ contract ApplicationService is
208
248
  bytes memory applicationData
209
249
  )
210
250
  external
211
- virtual override
251
+ virtual
252
+ restricted()
253
+ nonReentrant()
212
254
  {
213
-
255
+ _checkNftType(applicationNftId, POLICY());
256
+ _checkNftType(bundleNftId, BUNDLE());
257
+ // TODO implement
214
258
  }
215
259
 
216
260
  function revoke(NftId applicationNftId)
217
261
  external
218
- virtual override
262
+ virtual
263
+ restricted()
264
+ nonReentrant()
219
265
  {
220
- (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
266
+ _checkNftType(applicationNftId, POLICY());
267
+
268
+ (, IInstance instance) = _getAndVerifyActiveProduct();
221
269
  instance.getInstanceStore().updateApplicationState(applicationNftId, REVOKED());
222
270
  }
223
271
 
224
272
  // internal functions
225
273
 
274
+ function _getAndVerifyActiveProduct()
275
+ internal
276
+ view
277
+ returns (
278
+ NftId productNftId,
279
+ IInstance instance
280
+ )
281
+ {
282
+ (
283
+ IRegistry.ObjectInfo memory info,
284
+ address instanceAddress
285
+ ) = ContractLib.getAndVerifyComponent(
286
+ getRegistry(),
287
+ msg.sender,
288
+ PRODUCT(),
289
+ true); // only active pools
290
+
291
+ productNftId = info.nftId;
292
+ instance = IInstance(instanceAddress);
293
+ }
294
+
226
295
 
227
296
  function _getDomain() internal pure override returns(ObjectType) {
228
297
  return APPLICATION();
@@ -12,14 +12,14 @@ contract ApplicationServiceManager 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
  ApplicationService svc = new ApplicationService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
23
  address(svc),
24
24
  data,
25
25
  salt);
@@ -1,43 +1,16 @@
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
- import {Amount, AmountLib} from "../type/Amount.sol";
7
- 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";
11
- import {IApplicationService} from "./IApplicationService.sol";
4
+ import {Fee} from "../type/Fee.sol";
12
5
  import {IAuthorization} from "../authorization/IAuthorization.sol";
13
- import {IComponentService} from "../shared/IComponentService.sol";
14
- import {IPolicyService} from "./IPolicyService.sol";
15
- import {IProductService} from "./IProductService.sol";
16
- import {IClaimService} from "./IClaimService.sol";
17
- import {IPricingService} from "./IPricingService.sol";
18
- import {IProductComponent} from "./IProductComponent.sol";
19
- import {NftId, NftIdLib} from "../type/NftId.sol";
20
- import {Product} from "../product/Product.sol";
21
- import {PayoutId} from "../type/PayoutId.sol";
22
- import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
23
- import {ReferralId} from "../type/Referral.sol";
24
- import {RiskId, RiskIdLib} from "../type/RiskId.sol";
25
- import {Seconds} from "../type/Seconds.sol";
26
- import {StateId} from "../type/StateId.sol";
27
- import {Timestamp} from "../type/Timestamp.sol";
28
-
29
- import {TokenHandler} from "../shared/TokenHandler.sol";
30
-
31
- import {InstanceReader} from "../instance/InstanceReader.sol";
32
- import {IPolicy} from "../instance/module/IPolicy.sol";
33
6
  import {IComponents} from "../instance/module/IComponents.sol";
34
- import {Pool} from "../pool/Pool.sol";
35
- import {Distribution} from "../distribution/Distribution.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {Product} from "../product/Product.sol";
36
9
 
37
10
  abstract contract BasicProduct is
38
11
  Product
39
12
  {
40
-
13
+
41
14
  function setFees(
42
15
  Fee memory productFee,
43
16
  Fee memory processingFee
@@ -50,17 +23,14 @@ abstract contract BasicProduct is
50
23
  _setFees(productFee, processingFee);
51
24
  }
52
25
 
53
-
54
26
  function _initializeBasicProduct(
55
27
  address registry,
56
28
  NftId instanceNftId,
57
- IAuthorization authorization,
58
- address initialOwner,
59
29
  string memory name,
60
- address token,
61
- bool isInterceptor,
62
- address pool,
63
- address distribution
30
+ IComponents.ProductInfo memory productInfo,
31
+ IComponents.FeeInfo memory feeInfo,
32
+ IAuthorization authorization,
33
+ address initialOwner
64
34
  )
65
35
  internal
66
36
  virtual
@@ -69,14 +39,11 @@ abstract contract BasicProduct is
69
39
  _initializeProduct(
70
40
  registry,
71
41
  instanceNftId,
42
+ name,
43
+ productInfo,
44
+ feeInfo,
72
45
  authorization,
73
46
  initialOwner,
74
- name,
75
- token,
76
- isInterceptor,
77
- pool,
78
- distribution,
79
- "", //registryData,
80
- ""); // componentData
47
+ ""); // component data
81
48
  }
82
49
  }
@@ -1,31 +1,51 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Authorization} from "../authorization/Authorization.sol";
5
- import {BasicProduct} from "./BasicProduct.sol";
6
- import {PRODUCT} from "../type/ObjectType.sol";
7
4
  import {IAccess} from "../authorization/IAccess.sol";
8
5
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
- import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
- import {RoleId} from "../type/RoleId.sol";
6
+ import {IProductComponent} from "./IProductComponent.sol";
7
+
8
+ import {Authorization} from "../authorization/Authorization.sol";
9
+ import {BasicProduct} from "./BasicProduct.sol";
10
+ import {COMPONENT, PRODUCT, POLICY} from "../type/ObjectType.sol";
11
+ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
12
+ import {TokenHandler} from "../shared/TokenHandler.sol";
11
13
 
12
14
 
13
15
  contract BasicProductAuthorization
14
16
  is Authorization
15
17
  {
16
-
17
18
  constructor(string memory componentName)
18
- Authorization(componentName)
19
+ Authorization(
20
+ componentName,
21
+ PRODUCT(),
22
+ 3,
23
+ COMMIT_HASH,
24
+ true,
25
+ true)
19
26
  {}
20
27
 
21
- function _setupTargets()
28
+ function _setupServiceTargets()
22
29
  internal
23
30
  virtual override
24
31
  {
25
- // basic component target
26
- _addComponentTargetWithRole(PRODUCT());
32
+ _authorizeServiceDomain(COMPONENT(), address(10));
33
+ _authorizeServiceDomain(POLICY(), address(11));
27
34
  }
28
35
 
36
+ function _setupTokenHandlerAuthorizations() internal virtual override {
37
+ // authorize token handler functions for component service role
38
+ IAccess.FunctionInfo[] storage functions;
39
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
40
+ _authorize(functions, TokenHandler.approve.selector, "approve");
41
+ _authorize(functions, TokenHandler.setWallet.selector, "setWallet");
42
+ _authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
43
+
44
+ // authorize token handler functions for pool service role
45
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(POLICY()));
46
+ _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
47
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
48
+ }
29
49
 
30
50
  function _setupTargetAuthorizations()
31
51
  internal
@@ -34,9 +54,9 @@ contract BasicProductAuthorization
34
54
  IAccess.FunctionInfo[] storage functions;
35
55
 
36
56
  // authorize public role (open access to any account, only allows to lock target)
37
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
57
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
38
58
  _authorize(functions, BasicProduct.setFees.selector, "setFees");
39
-
59
+ _authorize(functions, IProductComponent.registerComponent.selector, "registerComponent");
40
60
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
41
61
  }
42
62
  }