@etherisc/gif-next 0.0.2-7d58318-324 → 0.0.2-7d7c399-947

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 (509) hide show
  1. package/README.md +46 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +158 -70
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  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 +97 -37
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +163 -389
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +245 -315
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -123
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +128 -76
  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 +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -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 +1479 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +165 -157
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +317 -143
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +919 -315
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +619 -492
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -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 +2 -2
  96. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  102. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +114 -340
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +90 -308
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +143 -387
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +434 -201
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -195
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -370
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +243 -400
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  162. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +455 -318
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  171. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  172. package/artifacts/contracts/product/Product.sol/Product.json +241 -398
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +315 -34
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  187. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.json +521 -95
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
  191. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  193. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  195. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  197. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  199. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
  201. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  203. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  205. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  207. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +508 -551
  209. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -125
  211. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +454 -210
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  237. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
  244. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  246. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  254. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  256. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  258. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  264. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  270. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
  272. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  274. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  276. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  278. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  280. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  282. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
  284. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +153 -107
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  288. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  291. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  321. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  325. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  330. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  332. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  334. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  339. package/contracts/accounting/AccountingService.sol +262 -0
  340. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  341. package/contracts/accounting/IAccountingService.sol +45 -0
  342. package/contracts/authorization/AccessAdmin.sol +192 -124
  343. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  344. package/contracts/authorization/Authorization.sol +111 -40
  345. package/contracts/authorization/IAccess.sol +1 -0
  346. package/contracts/authorization/IAccessAdmin.sol +10 -6
  347. package/contracts/authorization/IAuthorization.sol +13 -7
  348. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  349. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  350. package/contracts/distribution/BasicDistribution.sol +12 -22
  351. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  352. package/contracts/distribution/Distribution.sol +36 -50
  353. package/contracts/distribution/DistributionService.sol +121 -116
  354. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  355. package/contracts/distribution/IDistributionComponent.sol +2 -2
  356. package/contracts/distribution/IDistributionService.sol +16 -14
  357. package/contracts/examples/fire/DamageLevel.sol +59 -0
  358. package/contracts/examples/fire/FirePool.sol +90 -0
  359. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  360. package/contracts/examples/fire/FireProduct.sol +438 -0
  361. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  362. package/contracts/examples/fire/FireUSD.sol +26 -0
  363. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  364. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  365. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  366. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  367. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  368. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  369. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  370. package/contracts/instance/BundleSet.sol +38 -34
  371. package/contracts/instance/IInstance.sol +16 -36
  372. package/contracts/instance/IInstanceService.sol +9 -29
  373. package/contracts/instance/Instance.sol +47 -66
  374. package/contracts/instance/InstanceAdmin.sol +133 -73
  375. package/contracts/instance/InstanceAuthorizationV3.sol +55 -34
  376. package/contracts/instance/InstanceReader.sol +218 -27
  377. package/contracts/instance/InstanceService.sol +125 -164
  378. package/contracts/instance/InstanceServiceManager.sol +6 -7
  379. package/contracts/instance/InstanceStore.sol +24 -2
  380. package/contracts/instance/RiskSet.sol +117 -0
  381. package/contracts/instance/base/ObjectCounter.sol +1 -2
  382. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  383. package/contracts/instance/base/ObjectSet.sol +24 -25
  384. package/contracts/instance/module/IBundle.sol +1 -1
  385. package/contracts/instance/module/IComponents.sol +14 -14
  386. package/contracts/instance/module/IDistribution.sol +0 -1
  387. package/contracts/instance/module/IPolicy.sol +26 -25
  388. package/contracts/instance/module/IRisk.sol +3 -0
  389. package/contracts/mock/Dip.sol +1 -1
  390. package/contracts/oracle/BasicOracle.sol +0 -1
  391. package/contracts/oracle/IOracleService.sol +2 -1
  392. package/contracts/oracle/Oracle.sol +9 -23
  393. package/contracts/oracle/OracleService.sol +113 -81
  394. package/contracts/oracle/OracleServiceManager.sol +6 -6
  395. package/contracts/pool/BasicPool.sol +38 -27
  396. package/contracts/pool/BasicPoolAuthorization.sol +19 -3
  397. package/contracts/pool/BundleService.sol +221 -80
  398. package/contracts/pool/BundleServiceManager.sol +6 -6
  399. package/contracts/pool/IBundleService.sol +33 -18
  400. package/contracts/pool/IPoolComponent.sol +21 -10
  401. package/contracts/pool/IPoolService.sol +53 -50
  402. package/contracts/pool/Pool.sol +150 -116
  403. package/contracts/pool/PoolService.sol +338 -159
  404. package/contracts/pool/PoolServiceManager.sol +4 -4
  405. package/contracts/product/ApplicationService.sol +72 -43
  406. package/contracts/product/ApplicationServiceManager.sol +4 -4
  407. package/contracts/product/BasicProduct.sol +13 -44
  408. package/contracts/product/BasicProductAuthorization.sol +1 -3
  409. package/contracts/product/ClaimService.sol +427 -135
  410. package/contracts/product/ClaimServiceManager.sol +4 -4
  411. package/contracts/product/IApplicationService.sol +6 -2
  412. package/contracts/product/IClaimService.sol +44 -7
  413. package/contracts/product/IPolicyService.sol +46 -34
  414. package/contracts/product/IPricingService.sol +10 -10
  415. package/contracts/product/IProductComponent.sol +27 -5
  416. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  417. package/contracts/product/PolicyService.sol +520 -259
  418. package/contracts/product/PolicyServiceManager.sol +4 -4
  419. package/contracts/product/PricingService.sol +66 -62
  420. package/contracts/product/PricingServiceManager.sol +4 -4
  421. package/contracts/product/Product.sol +160 -89
  422. package/contracts/product/RiskService.sol +151 -0
  423. package/contracts/product/RiskServiceManager.sol +39 -0
  424. package/contracts/registry/ChainNft.sol +72 -40
  425. package/contracts/registry/IRegistry.sol +58 -28
  426. package/contracts/registry/IRegistryService.sol +5 -12
  427. package/contracts/registry/IRelease.sol +26 -0
  428. package/contracts/registry/ITransferInterceptor.sol +1 -2
  429. package/contracts/registry/Registry.sol +353 -203
  430. package/contracts/registry/RegistryAdmin.sol +161 -182
  431. package/contracts/registry/RegistryService.sol +37 -48
  432. package/contracts/registry/RegistryServiceManager.sol +3 -3
  433. package/contracts/registry/ReleaseAdmin.sol +245 -0
  434. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  435. package/contracts/registry/ReleaseRegistry.sol +258 -234
  436. package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
  437. package/contracts/registry/TokenRegistry.sol +6 -8
  438. package/contracts/shared/Component.sol +71 -125
  439. package/contracts/shared/ComponentService.sol +428 -350
  440. package/contracts/shared/ComponentServiceManager.sol +8 -5
  441. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  442. package/contracts/shared/ContractLib.sol +252 -0
  443. package/contracts/shared/IComponent.sol +8 -17
  444. package/contracts/shared/IComponentService.sol +43 -39
  445. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  446. package/contracts/shared/ILifecycle.sol +3 -1
  447. package/contracts/shared/INftOwnable.sol +2 -0
  448. package/contracts/shared/IPolicyHolder.sol +12 -22
  449. package/contracts/shared/IRegisterable.sol +23 -1
  450. package/contracts/shared/IService.sol +3 -5
  451. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  452. package/contracts/shared/InstanceLinkedComponent.sol +72 -47
  453. package/contracts/shared/KeyValueStore.sol +1 -1
  454. package/contracts/shared/Lifecycle.sol +15 -4
  455. package/contracts/shared/NftOwnable.sol +31 -11
  456. package/contracts/shared/PolicyHolder.sol +17 -57
  457. package/contracts/shared/Registerable.sol +55 -21
  458. package/contracts/shared/RegistryLinked.sol +9 -14
  459. package/contracts/shared/Service.sol +15 -32
  460. package/contracts/shared/TokenHandler.sol +357 -26
  461. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  462. package/contracts/staking/IStaking.sol +11 -5
  463. package/contracts/staking/IStakingService.sol +0 -3
  464. package/contracts/staking/StakeManagerLib.sol +18 -25
  465. package/contracts/staking/Staking.sol +71 -59
  466. package/contracts/staking/StakingManager.sol +8 -6
  467. package/contracts/staking/StakingReader.sol +12 -5
  468. package/contracts/staking/StakingService.sol +64 -36
  469. package/contracts/staking/StakingServiceManager.sol +2 -2
  470. package/contracts/staking/TargetManagerLib.sol +7 -3
  471. package/contracts/type/Amount.sol +27 -5
  472. package/contracts/type/Blocknumber.sol +7 -1
  473. package/contracts/type/ClaimId.sol +6 -1
  474. package/contracts/type/Key32.sol +2 -2
  475. package/contracts/type/Key32Set.sol +62 -0
  476. package/contracts/type/NftId.sol +7 -0
  477. package/contracts/type/ObjectType.sol +36 -17
  478. package/contracts/type/PayoutId.sol +10 -10
  479. package/contracts/type/Referral.sol +1 -0
  480. package/contracts/type/RiskId.sol +35 -4
  481. package/contracts/type/RoleId.sol +4 -13
  482. package/contracts/type/Seconds.sol +21 -1
  483. package/contracts/type/StateId.sol +15 -1
  484. package/contracts/type/Timestamp.sol +10 -5
  485. package/contracts/type/UFixed.sol +35 -122
  486. package/contracts/type/Version.sol +15 -5
  487. package/contracts/upgradeability/ProxyManager.sol +68 -34
  488. package/contracts/upgradeability/Versionable.sol +2 -2
  489. package/package.json +4 -3
  490. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  491. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  492. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  493. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  494. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  495. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  496. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  497. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  498. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  499. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  500. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  501. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  502. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  503. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  504. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  505. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  506. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  507. package/contracts/product/ProductService.sol +0 -99
  508. package/contracts/product/ProductServiceManager.sol +0 -39
  509. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -0,0 +1,117 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32} from "../type/Key32.sol";
5
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectSet} from "./base/ObjectSet.sol";
8
+ import {RiskIdLib, RiskId} from "../type/RiskId.sol";
9
+
10
+ /// @dev RiskSet manages the risks and its active policies per product.
11
+ contract RiskSet is
12
+ ObjectSet
13
+ {
14
+
15
+ event LogRiskSetPolicyLinked(RiskId riskId, NftId policyNftId);
16
+ event LogRiskSetPolicyUnlinked(RiskId riskId, NftId policyNftId);
17
+
18
+ event LogRiskSetRiskAdded(NftId productNftId, RiskId riskId);
19
+ event LogRiskSetRiskActive(NftId poolNftId, RiskId riskId);
20
+ event LogRiskSetRiskPaused(NftId poolNftId, RiskId riskId);
21
+ event LogRiskSetRiskArchived(NftId poolNftId, RiskId riskId);
22
+
23
+ error ErrorRiskSetRiskLocked(RiskId riskId, NftId policyNftId);
24
+ error ErrorRiskSetRiskUnknown(RiskId riskId);
25
+ error ErrorRiskSetRiskNotRegistered(RiskId riskId);
26
+
27
+ mapping(RiskId riskId => LibNftIdSet.Set policies) internal _activePolicies;
28
+
29
+ /// @dev links a policy to its bundle
30
+ function linkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
31
+
32
+ // ensure risk is active (in active set) and registered with this instance
33
+ if (!_isActive(productNftId, riskId.toKey32())) {
34
+ revert ErrorRiskSetRiskLocked(riskId, policyNftId);
35
+ }
36
+
37
+ LibNftIdSet.add(_activePolicies[riskId], policyNftId);
38
+ emit LogRiskSetPolicyLinked(riskId, policyNftId);
39
+ }
40
+
41
+ /// @dev Unlinks a policy from its risk.
42
+ function unlinkPolicy(NftId productNftId, RiskId riskId, NftId policyNftId) external restricted() {
43
+
44
+ // ensure risk is registered with this instance
45
+ if (!_contains(productNftId, riskId.toKey32())) {
46
+ revert ErrorRiskSetRiskUnknown(riskId);
47
+ }
48
+
49
+ LibNftIdSet.remove(_activePolicies[riskId], policyNftId);
50
+ emit LogRiskSetPolicyUnlinked(riskId, policyNftId);
51
+ }
52
+
53
+ /// @dev add a new risk to a product registered with this instance
54
+ // the corresponding product is fetched via instance reader
55
+ function add(RiskId riskId) external restricted() {
56
+ NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
57
+
58
+ // ensure product is registered with instance
59
+ if(productNftId.eqz()) {
60
+ revert ErrorRiskSetRiskNotRegistered(riskId);
61
+ }
62
+
63
+ _add(productNftId, riskId.toKey32());
64
+ emit LogRiskSetRiskAdded(productNftId, riskId);
65
+ }
66
+
67
+ /// @dev Applications linked to active risks may be underwritten
68
+ function activate(RiskId riskId) external restricted() {
69
+ NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
70
+ _activate(productNftId, riskId.toKey32());
71
+ emit LogRiskSetRiskActive(productNftId, riskId);
72
+ }
73
+
74
+ /// @dev Applications linked to paused/archived risks may not be underwritten
75
+ function pause(RiskId riskId) external restricted() {
76
+ NftId productNftId = _instance.getInstanceReader().getRiskInfo(riskId).productNftId;
77
+ _deactivate(productNftId, riskId.toKey32());
78
+ emit LogRiskSetRiskPaused(productNftId, riskId);
79
+ }
80
+
81
+ function checkRisk(NftId productNftId, RiskId riskId)
82
+ public
83
+ view
84
+ returns (bool exists, bool active)
85
+ {
86
+ Key32 riskKey32 = riskId.toKey32();
87
+ exists = _contains(productNftId, riskKey32);
88
+
89
+ if (exists) {
90
+ active = _isActive(productNftId, riskKey32);
91
+ }
92
+ }
93
+
94
+ function risks(NftId productNftId) external view returns(uint256) {
95
+ return _objects(productNftId);
96
+ }
97
+
98
+ function getRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
99
+ return RiskIdLib.toRiskId(_getObject(productNftId, idx).toKeyId());
100
+ }
101
+
102
+ function activeRisks(NftId productNftId) external view returns(uint256) {
103
+ return _activeObjs(productNftId);
104
+ }
105
+
106
+ function getActiveRiskId(NftId productNftId, uint256 idx) external view returns(RiskId riskId) {
107
+ return RiskIdLib.toRiskId(_getActiveObject(productNftId, idx).toKeyId());
108
+ }
109
+
110
+ function linkedPolicies(RiskId riskId) external view returns(uint256) {
111
+ return LibNftIdSet.size(_activePolicies[riskId]);
112
+ }
113
+
114
+ function getLinkedPolicyNftId(RiskId riskId, uint256 idx) external view returns(NftId policyNftId) {
115
+ return LibNftIdSet.getElementAt(_activePolicies[riskId], idx);
116
+ }
117
+ }
@@ -11,9 +11,8 @@ contract ObjectCounter {
11
11
  // TODO refactor risk id
12
12
  // mapping(NftId productNftId => uint64 risks) private _riskCounter;
13
13
 
14
- uint256 private _requestCounter;
14
+ uint256 private _requestCounter = 0;
15
15
 
16
- // TODO introduce RequestId (uint64)
17
16
  function _createNextRequestId() internal returns (RequestId requestId) {
18
17
  _requestCounter++;
19
18
  requestId = RequestIdLib.toRequestId(_requestCounter);
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
- import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
6
+ import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL, FEE} from "../../type/ObjectType.sol";
7
7
  import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
8
8
  import {Lifecycle} from "../../shared/Lifecycle.sol";
9
9
 
@@ -23,6 +23,7 @@ contract ObjectLifecycle is
23
23
  _setupBundleLifecycle();
24
24
  _setupComponentLifecycle();
25
25
  _setupPolicyLifecycle();
26
+ _setupPremiumLifecycle();
26
27
  _setupClaimLifecycle();
27
28
  _setupPayoutLifecycle();
28
29
  _setupRiskLifecycle();
@@ -54,13 +55,17 @@ contract ObjectLifecycle is
54
55
  setStateTransition(POLICY(), APPLIED(), REVOKED());
55
56
  setStateTransition(POLICY(), APPLIED(), DECLINED());
56
57
  setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
57
- setStateTransition(POLICY(), APPLIED(), ACTIVE());
58
- setStateTransition(POLICY(), COLLATERALIZED(), ACTIVE());
59
- setStateTransition(POLICY(), ACTIVE(), CLOSED());
58
+ setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
59
+ }
60
+
61
+ function _setupPremiumLifecycle() private {
62
+ setInitialState(PREMIUM(), EXPECTED());
63
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
60
64
  }
61
65
 
62
66
  function _setupClaimLifecycle() private {
63
67
  setInitialState(CLAIM(), SUBMITTED());
68
+ setStateTransition(CLAIM(), SUBMITTED(), REVOKED());
64
69
  setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
65
70
  setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
66
71
  setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
@@ -69,6 +74,7 @@ contract ObjectLifecycle is
69
74
  function _setupPayoutLifecycle() private {
70
75
  setInitialState(PAYOUT(), EXPECTED());
71
76
  setStateTransition(PAYOUT(), EXPECTED(), PAID());
77
+ setStateTransition(PAYOUT(), EXPECTED(), CANCELLED());
72
78
  }
73
79
 
74
80
  function _setupRiskLifecycle() private {
@@ -94,6 +100,7 @@ contract ObjectLifecycle is
94
100
  // dummy lifecycle only
95
101
  function _setUpProductLifecycle() private {
96
102
  setInitialState(PRODUCT(), ACTIVE());
103
+ setInitialState(FEE(), ACTIVE());
97
104
  }
98
105
 
99
106
  // dummy lifecycles only
@@ -4,22 +4,21 @@ pragma solidity ^0.8.20;
4
4
  import {Cloneable} from "./Cloneable.sol";
5
5
 
6
6
  import {IInstance} from "../IInstance.sol";
7
- import {INSTANCE} from "../../type/ObjectType.sol";
8
- import {InstanceReader} from "../InstanceReader.sol";
9
- import {IRegistry} from "../../registry/IRegistry.sol";
10
- import {LibNftIdSet} from "../../type/NftIdSet.sol";
7
+ import {LibKey32Set} from "../../type/Key32Set.sol";
11
8
  import {NftId} from "../../type/NftId.sol";
9
+ import {Key32} from "../../type/Key32.sol";
12
10
 
13
11
  contract ObjectSet is
14
12
  Cloneable
15
13
  {
14
+ using LibKey32Set for LibKey32Set.Set;
16
15
 
17
16
  event LogObjectSetInitialized(address instance);
18
17
 
19
18
  error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
20
19
 
21
- mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
22
- mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
20
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
21
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
23
22
  IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
24
23
 
25
24
  /// @dev This initializer needs to be called from the instance itself.
@@ -37,43 +36,43 @@ contract ObjectSet is
37
36
  return _instance;
38
37
  }
39
38
 
40
- function _add(NftId componentNftId, NftId objectNftId) internal {
41
- LibNftIdSet.Set storage allSet = _allObjects[componentNftId];
42
- LibNftIdSet.Set storage activeSet = _activeObjects[componentNftId];
39
+ function _add(NftId componentNftId, Key32 key) internal {
40
+ LibKey32Set.Set storage allSet = _allObjects[componentNftId];
41
+ LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
43
42
 
44
- LibNftIdSet.add(allSet, objectNftId);
45
- LibNftIdSet.add(activeSet, objectNftId);
43
+ allSet.add(key);
44
+ activeSet.add(key);
46
45
  }
47
46
 
48
- function _activate(NftId componentNftId, NftId objectNftId) internal {
49
- LibNftIdSet.add(_activeObjects[componentNftId], objectNftId);
47
+ function _activate(NftId componentNftId, Key32 key) internal {
48
+ _activeObjects[componentNftId].add(key);
50
49
  }
51
50
 
52
- function _deactivate(NftId componentNftId, NftId objectNftId) internal {
53
- LibNftIdSet.remove(_activeObjects[componentNftId], objectNftId);
51
+ function _deactivate(NftId componentNftId, Key32 key) internal {
52
+ _activeObjects[componentNftId].remove(key);
54
53
  }
55
54
 
56
55
  function _objects(NftId componentNftId) internal view returns (uint256) {
57
- return LibNftIdSet.size(_allObjects[componentNftId]);
56
+ return _allObjects[componentNftId].size();
58
57
  }
59
58
 
60
- function _contains(NftId componentNftId, NftId objectNftId) internal view returns (bool) {
61
- return LibNftIdSet.contains(_allObjects[componentNftId], objectNftId);
59
+ function _contains(NftId componentNftId, Key32 key) internal view returns (bool) {
60
+ return _allObjects[componentNftId].contains(key);
62
61
  }
63
62
 
64
- function _getObject(NftId componentNftId, uint256 idx) internal view returns (NftId) {
65
- return LibNftIdSet.getElementAt(_allObjects[componentNftId], idx);
63
+ function _getObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
64
+ return _allObjects[componentNftId].getElementAt(idx);
66
65
  }
67
66
 
68
67
  function _activeObjs(NftId componentNftId) internal view returns (uint256) {
69
- return LibNftIdSet.size(_activeObjects[componentNftId]);
68
+ return _activeObjects[componentNftId].size();
70
69
  }
71
70
 
72
- function _isActive(NftId componentNftId, NftId objectNftId) internal view returns (bool) {
73
- return LibNftIdSet.contains(_activeObjects[componentNftId], objectNftId);
71
+ function _isActive(NftId componentNftId, Key32 key) internal view returns (bool) {
72
+ return _activeObjects[componentNftId].contains(key);
74
73
  }
75
74
 
76
- function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (NftId) {
77
- return LibNftIdSet.getElementAt(_activeObjects[componentNftId], idx);
75
+ function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
76
+ return _activeObjects[componentNftId].getElementAt(idx);
78
77
  }
79
78
  }
@@ -13,7 +13,7 @@ interface IBundle {
13
13
  NftId poolNftId;
14
14
  Fee fee; // bundle fee on net premium amounts
15
15
  bytes filter; // required conditions for applications to be considered for collateralization by this bundle
16
- Seconds lifetime; // lifetime of bundle after creation
16
+ Timestamp activatedAt;
17
17
  Timestamp expiredAt; // no new policies starting with this timestamp
18
18
  Timestamp closedAt; // no open policies, locked amount = 0
19
19
  }
@@ -6,7 +6,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
6
6
  import {Amount} from "../../type/Amount.sol";
7
7
  import {Fee} from "../../type/Fee.sol";
8
8
  import {NftId} from "../../type/NftId.sol";
9
- import {RoleId} from "../../type/RoleId.sol";
10
9
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
10
  import {UFixed} from "../../type/UFixed.sol";
12
11
 
@@ -14,16 +13,23 @@ interface IComponents {
14
13
 
15
14
  struct ComponentInfo {
16
15
  string name; // component name (needs to be unique per instance)
17
- NftId productNftId;
18
16
  IERC20Metadata token;
19
17
  TokenHandler tokenHandler;
20
- address wallet;
21
18
  bytes data; // will hold component type specific additional info (eg encoded pool info)
22
19
  }
23
20
 
24
21
  struct ProductInfo {
25
- NftId distributionNftId;
26
- NftId poolNftId;
22
+ bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
23
+ bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
24
+ bool hasDistribution; // flag to indicate if distribution is enabled
25
+ uint8 expectedNumberOfOracles; // expected number of oracles
26
+ uint8 numberOfOracles; // actual number of oracles
27
+ NftId poolNftId; // mandatory
28
+ NftId distributionNftId; // 0..1 (optional)
29
+ NftId [] oracleNftId; // 0..n (optional)
30
+ }
31
+
32
+ struct FeeInfo {
27
33
  Fee productFee; // product fee on net premium
28
34
  Fee processingFee; // product fee on payout amounts
29
35
  Fee distributionFee; // distribution fee for sales that do not include commissions
@@ -33,19 +39,13 @@ interface IComponents {
33
39
  Fee performanceFee; // pool fee on profits from capital investors
34
40
  }
35
41
 
36
-
37
42
  struct PoolInfo {
38
- NftId productNftId; // the nft of the product this pool is linked to
39
- RoleId bundleOwnerRole; // the required role for bundle owners
40
- // TODO maxCapitalAmount -> maxBalanceAmount
41
- Amount maxCapitalAmount; // max capital amount allowed for pool
42
- bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
43
+ Amount maxBalanceAmount; // max balance amount allowed for pool
44
+ bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
45
+ bool isProcessingConfirmedClaims; // custom logic for claims confirmation
43
46
  bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
44
47
  bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
45
48
  UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
46
49
  UFixed retentionLevel; // amount of collateral held in pool (default 100%)
47
- Fee poolFee; // pool fee on net premium
48
- Fee stakingFee; // pool fee on staked capital from investor
49
- Fee performanceFee; // pool fee on profits from capital investors
50
50
  }
51
51
  }
@@ -25,7 +25,6 @@ interface IDistribution {
25
25
  DistributorType distributorType;
26
26
  bool active;
27
27
  bytes data;
28
- Amount commissionAmount;
29
28
  uint32 numPoliciesSold;
30
29
  }
31
30
 
@@ -11,7 +11,7 @@ import {Timestamp} from "../../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicy {
13
13
 
14
- struct Premium {
14
+ struct PremiumInfo {
15
15
  // premium splitting per target wallet
16
16
  Amount productFeeAmount;
17
17
  Amount distributionFeeAndCommissionAmount;
@@ -19,40 +19,40 @@ interface IPolicy {
19
19
 
20
20
  // detailed positions
21
21
  // this is the net premium calculated by the product
22
- uint256 netPremiumAmount;
22
+ Amount netPremiumAmount;
23
23
  // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
24
- uint256 fullPremiumAmount;
25
- // premium = fullPremium - discount
26
- uint256 premiumAmount;
27
- uint256 productFeeFixAmount;
28
- uint256 poolFeeFixAmount;
29
- uint256 bundleFeeFixAmount;
30
- uint256 distributionFeeFixAmount;
31
- uint256 productFeeVarAmount;
32
- uint256 poolFeeVarAmount;
33
- uint256 bundleFeeVarAmount;
34
- uint256 distributionFeeVarAmount;
35
- uint256 distributionOwnerFeeFixAmount;
24
+ Amount fullPremiumAmount;
25
+ // effective premium = fullPremium - discount
26
+ Amount premiumAmount;
27
+ Amount productFeeFixAmount;
28
+ Amount poolFeeFixAmount;
29
+ Amount bundleFeeFixAmount;
30
+ Amount distributionFeeFixAmount;
31
+ Amount productFeeVarAmount;
32
+ Amount poolFeeVarAmount;
33
+ Amount bundleFeeVarAmount;
34
+ Amount distributionFeeVarAmount;
35
+ Amount distributionOwnerFeeFixAmount;
36
36
  // this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
37
- uint256 distributionOwnerFeeVarAmount;
37
+ Amount distributionOwnerFeeVarAmount;
38
38
  // this value is based on distributor type referenced in the referral
39
- uint256 commissionAmount;
39
+ Amount commissionAmount;
40
40
  // this is based on referral used
41
- uint256 discountAmount;
41
+ Amount discountAmount;
42
42
  }
43
43
 
44
44
  /// @dev policy data for the full policy lifecycle
45
45
  struct PolicyInfo {
46
+ // application data, no changes after applying for a policy
46
47
  NftId productNftId;
47
48
  NftId bundleNftId;
48
49
  ReferralId referralId;
49
50
  RiskId riskId;
50
51
  Amount sumInsuredAmount;
51
52
  Amount premiumAmount; // expected premium at application time
52
- Amount premiumPaidAmount; // actual paid premium
53
53
  Seconds lifetime;
54
- // policy application data, no changes after applying for a policy
55
54
  bytes applicationData;
55
+ // policy data that may change during the lifecycle
56
56
  bytes processData;
57
57
  uint16 claimsCount;
58
58
  uint16 openClaimsCount;
@@ -67,10 +67,10 @@ interface IPolicy {
67
67
  struct ClaimInfo {
68
68
  Amount claimAmount;
69
69
  Amount paidAmount;
70
- uint8 payoutsCount;
71
- uint8 openPayoutsCount;
72
- bytes submissionData; // claim submission data, no changes after submitting the claim
73
- bytes processData; // data that may include information supporting confirm or decline
70
+ uint24 payoutsCount;
71
+ uint24 openPayoutsCount;
72
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
73
+ bytes processData; // use case specific data that may include information supporting confirm or decline
74
74
  Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
75
75
  }
76
76
 
@@ -78,7 +78,8 @@ interface IPolicy {
78
78
  struct PayoutInfo {
79
79
  ClaimId claimId;
80
80
  Amount amount;
81
- bytes data;
82
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
81
+ address beneficiary; // for address(0) beneficiary is policy nft owner
82
+ bytes data; // use case specific supporting data
83
+ Timestamp paidAt; // timestamp for actual payout
83
84
  }
84
85
  }
@@ -2,10 +2,13 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../../type/NftId.sol";
5
+ import {Timestamp} from "../../type/Timestamp.sol";
5
6
 
6
7
  interface IRisk {
8
+
7
9
  struct RiskInfo {
8
10
  NftId productNftId;
11
+ Timestamp createdAt;
9
12
  bytes data;
10
13
  }
11
14
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
4
+ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
5
 
6
6
  contract Dip is ERC20 {
7
7
 
@@ -42,7 +42,6 @@ contract BasicOracle is
42
42
  initialOwner,
43
43
  name,
44
44
  token,
45
- "",
46
45
  "");
47
46
  }
48
47
  }
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IService} from "../shared/IService.sol";
5
5
  import {NftId} from "../type/NftId.sol";
6
+ import {ObjectType} from "../type/ObjectType.sol";
6
7
  import {RequestId} from "../type/RequestId.sol";
7
8
  import {StateId} from "../type/StateId.sol";
8
9
  import {Timestamp} from "../type/Timestamp.sol";
@@ -17,7 +18,7 @@ interface IOracleService is IService {
17
18
  event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
18
19
 
19
20
  // create request
20
- error ErrorOracleServiceInstanceMismatch(NftId expectedInstanceNftId, NftId oracleInstanceNftId);
21
+ error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
21
22
  error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
22
23
  error ErrorOracleServiceCallbackMethodNameEmpty();
23
24
 
@@ -2,20 +2,16 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
5
+ import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
8
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
9
  import {IOracleComponent} from "./IOracleComponent.sol";
10
10
  import {IOracleService} from "./IOracleService.sol";
11
- import {IRegistry} from "../registry/IRegistry.sol";
12
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
13
- import {NftId, NftIdLib} from "../type/NftId.sol";
11
+ import {NftId} from "../type/NftId.sol";
14
12
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
15
- import {InstanceReader} from "../instance/InstanceReader.sol";
16
13
  import {RequestId} from "../type/RequestId.sol";
17
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
18
- import {UFixed} from "../type/UFixed.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
19
15
 
20
16
 
21
17
  abstract contract Oracle is
@@ -31,15 +27,6 @@ abstract contract Oracle is
31
27
  }
32
28
 
33
29
 
34
- function register()
35
- external
36
- virtual
37
- onlyOwner()
38
- {
39
- _getOracleStorage()._componentService.registerOracle();
40
- }
41
-
42
-
43
30
  function request(
44
31
  RequestId requestId,
45
32
  NftId requesterId,
@@ -75,13 +62,14 @@ abstract contract Oracle is
75
62
  return false;
76
63
  }
77
64
 
65
+ /// @dev Not relevant for oracle components
78
66
  function withdrawFees(Amount amount)
79
67
  external
80
68
  virtual
81
69
  override(IInstanceLinkedComponent, InstanceLinkedComponent)
82
70
  onlyOwner()
83
71
  restricted()
84
- returns (Amount withdrawnAmount)
72
+ returns (Amount)
85
73
  {
86
74
  revert ErrorOracleNotImplemented("withdrawFees");
87
75
  }
@@ -89,12 +77,11 @@ abstract contract Oracle is
89
77
 
90
78
  function _initializeOracle(
91
79
  address registry,
92
- NftId instanceNftId,
80
+ NftId productNftId,
93
81
  IAuthorization authorization,
94
82
  address initialOwner,
95
83
  string memory name,
96
84
  address token,
97
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
98
85
  bytes memory componentData // component specifidc data
99
86
  )
100
87
  internal
@@ -103,21 +90,20 @@ abstract contract Oracle is
103
90
  {
104
91
  _initializeInstanceLinkedComponent(
105
92
  registry,
106
- instanceNftId,
93
+ productNftId,
107
94
  name,
108
95
  token,
109
96
  ORACLE(),
110
97
  authorization,
111
98
  true,
112
99
  initialOwner,
113
- registryData,
114
100
  componentData);
115
101
 
116
102
  OracleStorage storage $ = _getOracleStorage();
117
- $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
118
103
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
104
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
119
105
 
120
- registerInterface(type(IOracleComponent).interfaceId);
106
+ _registerInterface(type(IOracleComponent).interfaceId);
121
107
  }
122
108
 
123
109