@etherisc/gif-next 0.0.2-d7cec72-860 → 0.0.2-d81839a-779

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