@etherisc/gif-next 0.0.2-a66c9a8-623 → 0.0.2-a6a9eeb-432

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 (595) hide show
  1. package/README.md +109 -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 +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +193 -473
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +122 -383
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +814 -399
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +228 -124
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +116 -187
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +582 -141
  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 +1484 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +415 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1208 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2254 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  83. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  85. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  87. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  89. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +578 -65
  91. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -60
  93. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/Instance.sol/Instance.json +616 -183
  95. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1021 -363
  97. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +328 -92
  99. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1798 -793
  101. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +409 -231
  103. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
  105. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +952 -1165
  107. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1539 -0
  109. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  111. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  113. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  122. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  127. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  128. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  129. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +138 -355
  131. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +424 -37
  133. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +114 -133
  136. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  138. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +114 -323
  140. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  142. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  144. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +181 -435
  146. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  147. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  148. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  149. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +574 -270
  150. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +216 -104
  152. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  153. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +383 -53
  154. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  155. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +139 -212
  156. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  157. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
  158. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  159. package/artifacts/contracts/pool/Pool.sol/Pool.json +129 -392
  160. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  161. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  162. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  163. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
  164. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +230 -106
  166. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  167. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
  168. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +159 -99
  170. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  171. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +272 -431
  172. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  173. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  174. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  175. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
  176. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
  178. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  179. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
  180. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  181. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
  182. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
  184. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  186. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  187. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -226
  188. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  189. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
  190. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  191. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
  192. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  193. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  194. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +196 -108
  196. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  197. package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
  198. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
  200. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  201. package/artifacts/contracts/product/Product.sol/Product.json +264 -423
  202. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  203. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  204. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  205. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  206. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  208. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  210. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  211. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  212. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  213. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  214. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  215. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  216. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  218. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -377
  220. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  221. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  222. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  224. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  226. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  227. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  228. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  230. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  232. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  234. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  235. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  236. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Component.sol/Component.json +86 -277
  238. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +497 -586
  240. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +183 -133
  242. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  246. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  250. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -93
  252. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +438 -240
  254. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -133
  256. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +79 -6
  258. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  259. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  260. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  262. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  264. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  266. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  268. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  269. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  270. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  271. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  272. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -322
  273. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  274. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +85 -7
  275. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  276. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  277. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  278. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  279. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  280. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  281. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  282. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  283. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  284. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  285. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  286. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  287. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  288. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  289. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  293. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  294. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  295. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  296. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1510 -191
  297. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  298. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  299. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  300. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  301. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  302. package/artifacts/contracts/staking/Staking.sol/Staking.json +1635 -455
  303. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  305. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +191 -105
  307. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  309. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  311. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  313. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1643 -783
  315. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  317. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +184 -76
  319. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  320. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  322. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  324. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  326. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  328. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  330. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  332. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  334. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  335. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  336. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  338. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  339. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  340. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +49 -50
  342. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  344. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  346. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  348. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  349. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  350. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  352. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  354. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +112 -2
  356. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  358. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  360. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  362. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  364. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +56 -5
  366. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
  368. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  370. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  372. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  373. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  374. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  375. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +118 -79
  376. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  377. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  378. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  379. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  380. package/contracts/accounting/AccountingService.sol +274 -0
  381. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  382. package/contracts/accounting/IAccountingService.sol +47 -0
  383. package/contracts/authorization/AccessAdmin.sol +458 -269
  384. package/contracts/authorization/AccessAdminLib.sol +396 -0
  385. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  386. package/contracts/authorization/Authorization.sol +159 -208
  387. package/contracts/authorization/IAccess.sol +25 -6
  388. package/contracts/authorization/IAccessAdmin.sol +87 -79
  389. package/contracts/authorization/IAuthorization.sol +9 -37
  390. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  391. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  392. package/contracts/distribution/BasicDistribution.sol +22 -30
  393. package/contracts/distribution/BasicDistributionAuthorization.sol +32 -11
  394. package/contracts/distribution/Distribution.sol +49 -86
  395. package/contracts/distribution/DistributionService.sol +277 -117
  396. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  397. package/contracts/distribution/IDistributionComponent.sol +10 -12
  398. package/contracts/distribution/IDistributionService.sol +56 -26
  399. package/contracts/examples/fire/DamageLevel.sol +59 -0
  400. package/contracts/examples/fire/FirePool.sol +86 -0
  401. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  402. package/contracts/examples/fire/FireProduct.sol +433 -0
  403. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  404. package/contracts/examples/fire/FireUSD.sol +26 -0
  405. package/contracts/examples/flight/FlightLib.sol +266 -0
  406. package/contracts/examples/flight/FlightOracle.sol +167 -0
  407. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  408. package/contracts/examples/flight/FlightPool.sol +89 -0
  409. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  410. package/contracts/examples/flight/FlightProduct.sol +491 -0
  411. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  412. package/contracts/examples/flight/FlightUSD.sol +26 -0
  413. package/contracts/examples/flight/originalV1.sol +396 -0
  414. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  415. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  416. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  417. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  418. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  419. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  420. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  421. package/contracts/instance/BaseStore.sol +93 -0
  422. package/contracts/instance/BundleSet.sol +42 -38
  423. package/contracts/instance/IBaseStore.sol +37 -0
  424. package/contracts/instance/IInstance.sol +113 -43
  425. package/contracts/instance/IInstanceService.sol +61 -34
  426. package/contracts/instance/Instance.sol +201 -104
  427. package/contracts/instance/InstanceAdmin.sol +275 -162
  428. package/contracts/instance/InstanceAuthorizationV3.sol +142 -71
  429. package/contracts/instance/InstanceReader.sol +502 -251
  430. package/contracts/instance/InstanceService.sol +333 -262
  431. package/contracts/instance/InstanceServiceManager.sol +6 -7
  432. package/contracts/instance/InstanceStore.sol +28 -36
  433. package/contracts/instance/ProductStore.sol +119 -0
  434. package/contracts/instance/RiskSet.sol +126 -0
  435. package/contracts/instance/TargetNames.sol +10 -0
  436. package/contracts/instance/base/BalanceStore.sol +4 -6
  437. package/contracts/instance/base/ObjectCounter.sol +1 -2
  438. package/contracts/instance/base/ObjectLifecycle.sol +13 -10
  439. package/contracts/instance/base/ObjectSet.sol +31 -33
  440. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  441. package/contracts/instance/module/IBundle.sol +6 -5
  442. package/contracts/instance/module/IComponents.sol +30 -19
  443. package/contracts/instance/module/IDistribution.sol +21 -9
  444. package/contracts/instance/module/IPolicy.sol +50 -29
  445. package/contracts/instance/module/IRisk.sol +5 -0
  446. package/contracts/mock/Dip.sol +1 -1
  447. package/contracts/oracle/BasicOracle.sol +2 -5
  448. package/contracts/oracle/BasicOracleAuthorization.sol +14 -8
  449. package/contracts/oracle/IOracle.sol +9 -4
  450. package/contracts/oracle/IOracleComponent.sol +2 -1
  451. package/contracts/oracle/IOracleService.sol +14 -13
  452. package/contracts/oracle/Oracle.sol +23 -26
  453. package/contracts/oracle/OracleService.sol +119 -87
  454. package/contracts/oracle/OracleServiceManager.sol +6 -6
  455. package/contracts/pool/BasicPool.sol +39 -41
  456. package/contracts/pool/BasicPoolAuthorization.sol +41 -12
  457. package/contracts/pool/BundleService.sol +213 -111
  458. package/contracts/pool/BundleServiceManager.sol +6 -6
  459. package/contracts/pool/IBundleService.sol +43 -33
  460. package/contracts/pool/IPoolComponent.sol +21 -10
  461. package/contracts/pool/IPoolService.sol +97 -77
  462. package/contracts/pool/Pool.sol +147 -125
  463. package/contracts/pool/PoolLib.sol +341 -0
  464. package/contracts/pool/PoolService.sol +413 -235
  465. package/contracts/pool/PoolServiceManager.sol +4 -4
  466. package/contracts/product/ApplicationService.sol +144 -47
  467. package/contracts/product/ApplicationServiceManager.sol +4 -4
  468. package/contracts/product/BasicProduct.sol +13 -46
  469. package/contracts/product/BasicProductAuthorization.sol +33 -12
  470. package/contracts/product/ClaimService.sol +393 -183
  471. package/contracts/product/ClaimServiceManager.sol +4 -4
  472. package/contracts/product/IApplicationService.sol +29 -3
  473. package/contracts/product/IClaimService.sol +48 -11
  474. package/contracts/product/IPolicyService.sol +61 -37
  475. package/contracts/product/IPricingService.sol +11 -10
  476. package/contracts/product/IProductComponent.sol +27 -5
  477. package/contracts/product/IRiskService.sol +48 -0
  478. package/contracts/product/PolicyService.sol +445 -275
  479. package/contracts/product/PolicyServiceLib.sol +139 -0
  480. package/contracts/product/PolicyServiceManager.sol +4 -4
  481. package/contracts/product/PricingService.sol +90 -84
  482. package/contracts/product/PricingServiceManager.sol +4 -4
  483. package/contracts/product/Product.sol +201 -100
  484. package/contracts/product/RiskService.sol +190 -0
  485. package/contracts/product/RiskServiceManager.sol +39 -0
  486. package/contracts/registry/ChainNft.sol +72 -40
  487. package/contracts/registry/IRegistry.sol +70 -32
  488. package/contracts/registry/IRegistryService.sol +5 -12
  489. package/contracts/registry/IRelease.sol +29 -0
  490. package/contracts/registry/ITransferInterceptor.sol +1 -2
  491. package/contracts/registry/Registry.sol +367 -207
  492. package/contracts/registry/RegistryAdmin.sol +114 -288
  493. package/contracts/registry/RegistryAuthorization.sol +336 -0
  494. package/contracts/registry/RegistryService.sol +38 -49
  495. package/contracts/registry/RegistryServiceManager.sol +3 -3
  496. package/contracts/registry/ReleaseAdmin.sol +195 -0
  497. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  498. package/contracts/registry/ReleaseRegistry.sol +279 -241
  499. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  500. package/contracts/registry/TokenRegistry.sol +61 -59
  501. package/contracts/shared/Component.sol +70 -130
  502. package/contracts/shared/ComponentService.sol +423 -358
  503. package/contracts/shared/ComponentServiceManager.sol +8 -5
  504. package/contracts/shared/ContractLib.sol +312 -0
  505. package/contracts/shared/IComponent.sol +6 -18
  506. package/contracts/shared/IComponentService.sol +41 -42
  507. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  508. package/contracts/shared/IKeyValueStore.sol +9 -1
  509. package/contracts/shared/ILifecycle.sol +3 -1
  510. package/contracts/shared/INftOwnable.sol +4 -0
  511. package/contracts/shared/IPolicyHolder.sol +12 -22
  512. package/contracts/shared/IRegisterable.sol +22 -1
  513. package/contracts/shared/IService.sol +3 -5
  514. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  515. package/contracts/shared/InstanceLinkedComponent.sol +116 -54
  516. package/contracts/shared/KeyValueStore.sol +4 -4
  517. package/contracts/shared/Lifecycle.sol +15 -4
  518. package/contracts/shared/NftOwnable.sol +33 -11
  519. package/contracts/shared/PolicyHolder.sol +20 -59
  520. package/contracts/shared/Registerable.sol +52 -21
  521. package/contracts/shared/RegistryLinked.sol +9 -14
  522. package/contracts/shared/Service.sol +20 -35
  523. package/contracts/shared/TokenHandler.sol +310 -26
  524. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  525. package/contracts/staking/IStaking.sol +271 -71
  526. package/contracts/staking/IStakingService.sol +45 -78
  527. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  528. package/contracts/staking/Staking.sol +525 -241
  529. package/contracts/staking/StakingLib.sol +195 -0
  530. package/contracts/staking/StakingManager.sol +12 -9
  531. package/contracts/staking/StakingReader.sol +70 -82
  532. package/contracts/staking/StakingService.sol +62 -152
  533. package/contracts/staking/StakingServiceManager.sol +7 -5
  534. package/contracts/staking/StakingStore.sol +1093 -330
  535. package/contracts/staking/TargetHandler.sol +132 -0
  536. package/contracts/staking/TargetManagerLib.sol +73 -46
  537. package/contracts/type/Amount.sol +31 -5
  538. package/contracts/type/Blocknumber.sol +22 -16
  539. package/contracts/type/ChainId.sol +101 -0
  540. package/contracts/type/ClaimId.sol +6 -1
  541. package/contracts/type/Fee.sol +8 -8
  542. package/contracts/type/Key32.sol +2 -2
  543. package/contracts/type/Key32Set.sol +62 -0
  544. package/contracts/type/NftId.sol +7 -0
  545. package/contracts/type/ObjectType.sol +74 -67
  546. package/contracts/type/PayoutId.sol +10 -10
  547. package/contracts/type/Referral.sol +7 -0
  548. package/contracts/type/RequestIdSet.sol +62 -0
  549. package/contracts/type/RiskId.sol +38 -6
  550. package/contracts/type/RoleId.sol +61 -55
  551. package/contracts/type/Seconds.sol +44 -1
  552. package/contracts/type/Selector.sol +5 -0
  553. package/contracts/type/StateId.sol +15 -1
  554. package/contracts/type/String.sol +42 -0
  555. package/contracts/type/Timestamp.sol +24 -8
  556. package/contracts/type/UFixed.sol +57 -126
  557. package/contracts/type/Version.sol +54 -5
  558. package/contracts/upgradeability/IVersionable.sol +3 -0
  559. package/contracts/upgradeability/ProxyManager.sol +93 -45
  560. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  561. package/contracts/upgradeability/Versionable.sol +8 -5
  562. package/package.json +5 -4
  563. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  564. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  565. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  566. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  567. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  568. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  569. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  570. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
  571. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  572. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  573. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  575. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  576. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  577. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  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/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  581. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  582. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  583. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  584. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  585. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  586. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  587. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  588. package/contracts/instance/module/IAccess.sol +0 -46
  589. package/contracts/product/IProductService.sol +0 -33
  590. package/contracts/product/ProductService.sol +0 -99
  591. package/contracts/product/ProductServiceManager.sol +0 -39
  592. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  593. package/contracts/shared/InitializableCustom.sol +0 -177
  594. package/contracts/staking/StakeManagerLib.sol +0 -231
  595. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,20 +1,21 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../../type/Amount.sol";
5
4
  import {NftId} from "../../type/NftId.sol";
6
5
  import {Fee} from "../../type/Fee.sol";
7
- import {Seconds} from "../../type/Seconds.sol";
8
6
  import {Timestamp} from "../../type/Timestamp.sol";
9
7
 
10
8
  interface IBundle {
11
9
 
12
10
  struct BundleInfo {
11
+ // slot 0
12
+ Timestamp activatedAt;
13
+ Timestamp expiredAt; // no new policies starting with this timestamp
14
+ Timestamp closedAt; // no open policies, locked amount = 0
13
15
  NftId poolNftId;
16
+ // slot 1
14
17
  Fee fee; // bundle fee on net premium amounts
18
+ // slot 2
15
19
  bytes filter; // required conditions for applications to be considered for collateralization by this bundle
16
- Seconds lifetime; // lifetime of bundle after creation
17
- Timestamp expiredAt; // no new policies starting with this timestamp
18
- Timestamp closedAt; // no open policies, locked amount = 0
19
20
  }
20
21
  }
@@ -1,51 +1,62 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
4
  import {Amount} from "../../type/Amount.sol";
7
5
  import {Fee} from "../../type/Fee.sol";
8
6
  import {NftId} from "../../type/NftId.sol";
9
- import {RoleId} from "../../type/RoleId.sol";
10
7
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
8
  import {UFixed} from "../../type/UFixed.sol";
12
9
 
13
10
  interface IComponents {
14
11
 
15
12
  struct ComponentInfo {
13
+ // slot 0
16
14
  string name; // component name (needs to be unique per instance)
17
- NftId productNftId;
18
- IERC20Metadata token;
15
+ // slot 1
19
16
  TokenHandler tokenHandler;
20
- address wallet;
17
+ // slot 2
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
+ // slot 0
23
+ bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
24
+ bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
25
+ bool hasDistribution; // flag to indicate if distribution is enabled
26
+ uint8 expectedNumberOfOracles; // expected number of oracles
27
+ uint8 numberOfOracles; // actual number of oracles
28
+ NftId poolNftId; // mandatory
29
+ NftId distributionNftId; // 0..1 (optional)
30
+ // slot 1
31
+ NftId [] oracleNftId; // 0..n (optional)
32
+ }
33
+
34
+ struct FeeInfo {
35
+ // slot 0
27
36
  Fee productFee; // product fee on net premium
37
+ // slot 1
28
38
  Fee processingFee; // product fee on payout amounts
39
+ // slot 2
29
40
  Fee distributionFee; // distribution fee for sales that do not include commissions
41
+ // slot 3
30
42
  Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
43
+ // slot 4
31
44
  Fee poolFee; // pool fee on net premium
45
+ // slot 5
32
46
  Fee stakingFee; // pool fee on staked capital from investor
47
+ // slot 6
33
48
  Fee performanceFee; // pool fee on profits from capital investors
34
49
  }
35
50
 
36
-
37
51
  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
- bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
44
- bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
52
+ // slot 0
53
+ Amount maxBalanceAmount; // max balance amount allowed for pool
45
54
  UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
55
+ // slot 1
46
56
  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
57
+ bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
58
+ bool isProcessingConfirmedClaims; // custom logic for claims confirmation
59
+ bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
60
+ bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
50
61
  }
51
62
  }
@@ -1,41 +1,53 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../../type/Amount.sol";
5
4
  import {DistributorType} from "../../type/DistributorType.sol";
6
5
  import {NftId} from "../../type/NftId.sol";
6
+ import {Seconds} from "../../type/Seconds.sol";
7
7
  import {Timestamp} from "../../type/Timestamp.sol";
8
8
  import {UFixed} from "../../type/UFixed.sol";
9
9
 
10
10
  interface IDistribution {
11
11
 
12
12
  struct DistributorTypeInfo {
13
- string name;
13
+ // slot 0
14
14
  UFixed minDiscountPercentage;
15
+ NftId distributionNftId;
16
+ // slot 1
15
17
  UFixed maxDiscountPercentage;
16
- UFixed commissionPercentage;
17
18
  uint32 maxReferralCount;
18
- uint32 maxReferralLifetime;
19
+ Seconds maxReferralLifetime;
19
20
  bool allowSelfReferrals;
20
21
  bool allowRenewals;
22
+ // slot 2
23
+ UFixed commissionPercentage;
24
+ // slot 3
25
+ string name;
26
+ // slot 4
21
27
  bytes data;
22
28
  }
23
29
 
24
30
  struct DistributorInfo {
31
+ // slot 0
25
32
  DistributorType distributorType;
26
33
  bool active;
27
- bytes data;
28
- Amount commissionAmount;
29
34
  uint32 numPoliciesSold;
35
+ // slot 1
36
+ bytes data;
30
37
  }
31
38
 
32
- struct ReferralInfo {
39
+ struct ReferralInfo {
40
+ // slot 0
41
+ NftId distributionNftId;
33
42
  NftId distributorNftId;
34
- string referralCode;
35
- UFixed discountPercentage;
36
43
  uint32 maxReferrals;
37
44
  uint32 usedReferrals;
45
+ // slot 1
46
+ UFixed discountPercentage;
38
47
  Timestamp expiryAt;
48
+ // slot 2
49
+ string referralCode;
50
+ // slot 3
39
51
  bytes data;
40
52
  }
41
53
 
@@ -11,74 +11,95 @@ import {Timestamp} from "../../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicy {
13
13
 
14
- struct Premium {
14
+ struct PremiumInfo {
15
+ // slot 0
15
16
  // premium splitting per target wallet
16
17
  Amount productFeeAmount;
17
18
  Amount distributionFeeAndCommissionAmount;
19
+ // slot 1
18
20
  Amount poolPremiumAndFeeAmount;
19
21
 
20
22
  // detailed positions
21
23
  // this is the net premium calculated by the product
22
- uint256 netPremiumAmount;
24
+ Amount netPremiumAmount;
25
+ // slot 2
23
26
  // 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;
27
+ Amount fullPremiumAmount;
28
+ // effective premium = fullPremium - discount
29
+ Amount premiumAmount;
30
+ // slot 3
31
+ Amount productFeeFixAmount;
32
+ Amount poolFeeFixAmount;
33
+ // slot 4
34
+ Amount bundleFeeFixAmount;
35
+ Amount distributionFeeFixAmount;
36
+ // slot 5
37
+ Amount productFeeVarAmount;
38
+ Amount poolFeeVarAmount;
39
+ // slot 6
40
+ Amount bundleFeeVarAmount;
41
+ Amount distributionFeeVarAmount;
42
+ // slot 7
43
+ Amount distributionOwnerFeeFixAmount;
36
44
  // 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;
45
+ Amount distributionOwnerFeeVarAmount;
46
+ // slot 8
38
47
  // this value is based on distributor type referenced in the referral
39
- uint256 commissionAmount;
48
+ Amount commissionAmount;
40
49
  // this is based on referral used
41
- uint256 discountAmount;
50
+ Amount discountAmount;
42
51
  }
43
52
 
44
53
  /// @dev policy data for the full policy lifecycle
45
54
  struct PolicyInfo {
55
+ // slot 0
46
56
  NftId productNftId;
47
57
  NftId bundleNftId;
48
- ReferralId referralId;
49
58
  RiskId riskId;
59
+ // slot 1
50
60
  Amount sumInsuredAmount;
51
61
  Amount premiumAmount; // expected premium at application time
52
- Amount premiumPaidAmount; // actual paid premium
53
- Seconds lifetime;
54
- // policy application data, no changes after applying for a policy
55
- bytes applicationData;
56
- bytes processData;
62
+ ReferralId referralId;
63
+ // slot 2
57
64
  uint16 claimsCount;
58
65
  uint16 openClaimsCount;
59
66
  Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
67
  Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
68
+ // slot 3
61
69
  Timestamp activatedAt; // time of underwriting
70
+ Seconds lifetime;
62
71
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
63
72
  Timestamp closedAt; // no locked capital (or declinedAt)
73
+ // slot 4
74
+ bytes applicationData;
75
+ // slot 5
76
+ bytes processData;
64
77
  }
65
78
 
66
79
  // claimId neeeds to be encoded policyNftId:claimId combination
67
80
  struct ClaimInfo {
81
+ // slot 0
68
82
  Amount claimAmount;
69
83
  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
74
84
  Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
85
+ uint24 payoutsCount;
86
+ // slot 1
87
+ uint24 openPayoutsCount;
88
+ // slot 2
89
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
90
+ // slot 3
91
+ bytes processData; // use case specific data that may include information supporting confirm or decline
75
92
  }
76
93
 
77
94
  // claimId neeeds to be encoded policyNftId:claimId combination
78
95
  struct PayoutInfo {
96
+ // slot 0
79
97
  ClaimId claimId;
80
98
  Amount amount;
81
- bytes data;
82
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
99
+ Timestamp paidAt; // timestamp for actual payout
100
+ // slot 1
101
+ address beneficiary; // for address(0) beneficiary is policy nft owner
102
+ // slot 2
103
+ bytes data; // use case specific supporting data
83
104
  }
84
105
  }
@@ -2,10 +2,15 @@
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 {
10
+ // slot 0
8
11
  NftId productNftId;
12
+ Timestamp createdAt;
13
+ // slot 1
9
14
  bytes data;
10
15
  }
11
16
  }
@@ -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
 
@@ -27,22 +27,19 @@ contract BasicOracle is
27
27
  NftId instanceNftId,
28
28
  IAuthorization authorization,
29
29
  address initialOwner,
30
- string memory name,
31
- address token
30
+ string memory name
32
31
  )
33
32
  internal
34
33
  virtual
35
34
  onlyInitializing()
36
35
  {
37
36
 
38
- _initializeOracle(
37
+ __Oracle_init(
39
38
  registry,
40
39
  instanceNftId,
41
40
  authorization,
42
41
  initialOwner,
43
42
  name,
44
- token,
45
- "",
46
43
  "");
47
44
  }
48
45
  }
@@ -14,19 +14,25 @@ contract BasicOracleAuthorization
14
14
  is Authorization
15
15
  {
16
16
 
17
- constructor(string memory componentName)
18
- Authorization(componentName)
17
+ constructor(
18
+ string memory componentName
19
+ )
20
+ Authorization(
21
+ componentName,
22
+ ORACLE(),
23
+ 3,
24
+ COMMIT_HASH,
25
+ true,
26
+ false)
19
27
  {}
20
28
 
21
- function _setupTargets()
29
+ function _setupServiceTargets()
22
30
  internal
23
31
  virtual override
24
32
  {
25
- // basic component target
26
- _addComponentTargetWithRole(ORACLE());
33
+ _authorizeServiceDomain(ORACLE(), address(15));
27
34
  }
28
35
 
29
-
30
36
  function _setupTargetAuthorizations()
31
37
  internal
32
38
  virtual override
@@ -34,12 +40,12 @@ contract BasicOracleAuthorization
34
40
  IAccess.FunctionInfo[] storage functions;
35
41
 
36
42
  // authorize public role (open access to any account, only allows to lock target)
37
- functions = _authorizeForTarget(getTargetName(), getServiceRole(ORACLE()));
43
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
38
44
  _authorize(functions, IOracle.request.selector, "request");
39
45
  _authorize(functions, IOracle.cancel.selector, "cancel");
40
46
 
41
47
  // authorize public role (open access to any account, only allows to lock target)
42
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
48
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
43
49
  _authorize(functions, BasicOracle.respond.selector, "respond");
44
50
  }
45
51
  }
@@ -9,14 +9,19 @@ import {Timestamp} from "../type/Timestamp.sol";
9
9
  interface IOracle {
10
10
 
11
11
  struct RequestInfo {
12
+ // slot 0
12
13
  NftId requesterNftId; // originator of the request
13
- string callbackMethodName; // callback function of the requestor to call to provide response data
14
14
  NftId oracleNftId; // responsible oracle component
15
- bytes requestData;
16
- bytes responseData;
15
+ bool isCancelled;
17
16
  Timestamp respondedAt; // response timestamp
17
+ // slot 1
18
18
  Timestamp expiredAt; // expiry timestamp
19
- bool isCancelled;
19
+ // slot 2
20
+ string callbackMethodName; // callback function of the requestor to call to provide response data
21
+ // slot 3
22
+ bytes requestData;
23
+ // slot 4
24
+ bytes responseData;
20
25
  }
21
26
 
22
27
 
@@ -11,7 +11,8 @@ import {UFixed} from "../type/UFixed.sol";
11
11
  import {Timestamp} from "../type/Timestamp.sol";
12
12
 
13
13
  interface IOracleComponent is IInstanceLinkedComponent {
14
-
14
+ error ErrorOracleNotImplemented(string methodName);
15
+
15
16
  /// @dev callback method for requesting some data from the oracle
16
17
  function request(
17
18
  RequestId requestId,
@@ -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
 
@@ -40,26 +41,26 @@ interface IOracleService is IService {
40
41
  string calldata callbackMethodName
41
42
  ) external returns (RequestId requestId);
42
43
 
43
- /// @dev respond to oracle request by oracle compnent.
44
- /// the response data is amende in the request info stored with the instance.
45
- /// the request state changes to FULFILLED (when calling the callback method of the requester is successful)
44
+ /// @dev Respond to oracle request by oracle compnent.
45
+ /// The response data is amended in the request info stored with the instance.
46
+ /// The request state changes to FULFILLED (when calling the callback method of the requester is successful)
46
47
  /// or to FAILED when calling the requester is not succesful.
47
- /// the function returns true iff the state changes to FULFILLED.
48
- /// permissioned: only the oracle component linked to the request id may call this method
48
+ /// The function returns true iff the state changes to FULFILLED.
49
+ /// Permissioned: only the receiving oracle component may call this method
49
50
  function respond(
50
51
  RequestId requestId,
51
52
  bytes calldata responseData
52
53
  ) external returns (bool success);
53
54
 
54
- /// @dev re send a failed response to the requester.
55
- /// only requests in state FAILED may be re sent.
56
- /// the request state changes to FULFILLED when calling the callback method of the requester is successful.
57
- /// permissioned: only the requester may resend a request
55
+ /// @dev Resend a failed response to the requester.
56
+ /// Only requests in state FAILED may be resent.
57
+ /// The request state changes to FULFILLED when calling the callback method of the requester is successful.
58
+ /// Permissioned: only the receiving oracle may resend a request
58
59
  function resend(RequestId requestId) external;
59
60
 
60
- /// @dev notify the oracle component that the specified request has become invalid.
61
- /// only requests in state ACTIVE may be cancelled.
62
- /// permissioned: only the requester may cancel a request
61
+ /// @dev Notify the oracle component that the specified request has become invalid.
62
+ /// Only requests in state ACTIVE may be cancelled.
63
+ /// Permissioned: only the requester may cancel a request
63
64
  function cancel(RequestId requestId) external;
64
65
 
65
66
  }
@@ -1,19 +1,17 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
5
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
6
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
9
  import {IOracleComponent} from "./IOracleComponent.sol";
8
10
  import {IOracleService} from "./IOracleService.sol";
9
- import {IRegistry} from "../registry/IRegistry.sol";
10
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
11
- import {NftId, NftIdLib} from "../type/NftId.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
12
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
- import {InstanceReader} from "../instance/InstanceReader.sol";
14
13
  import {RequestId} from "../type/RequestId.sol";
15
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
16
- import {UFixed} from "../type/UFixed.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
17
15
 
18
16
 
19
17
  abstract contract Oracle is
@@ -29,15 +27,6 @@ abstract contract Oracle is
29
27
  }
30
28
 
31
29
 
32
- function register()
33
- external
34
- virtual
35
- onlyOwner()
36
- {
37
- _getOracleStorage()._componentService.registerOracle();
38
- }
39
-
40
-
41
30
  function request(
42
31
  RequestId requestId,
43
32
  NftId requesterId,
@@ -73,38 +62,46 @@ abstract contract Oracle is
73
62
  return false;
74
63
  }
75
64
 
65
+ /// @dev Not relevant for oracle components
66
+ function withdrawFees(Amount amount)
67
+ external
68
+ virtual
69
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
70
+ onlyOwner()
71
+ restricted()
72
+ returns (Amount)
73
+ {
74
+ revert ErrorOracleNotImplemented("withdrawFees");
75
+ }
76
+
76
77
 
77
- function _initializeOracle(
78
+ function __Oracle_init(
78
79
  address registry,
79
- NftId instanceNftId,
80
+ NftId productNftId,
80
81
  IAuthorization authorization,
81
82
  address initialOwner,
82
83
  string memory name,
83
- address token,
84
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
85
84
  bytes memory componentData // component specifidc data
86
85
  )
87
86
  internal
88
87
  virtual
89
88
  onlyInitializing()
90
89
  {
91
- _initializeInstanceLinkedComponent(
90
+ __InstanceLinkedComponent_init(
92
91
  registry,
93
- instanceNftId,
92
+ productNftId,
94
93
  name,
95
- token,
96
94
  ORACLE(),
97
95
  authorization,
98
96
  true,
99
97
  initialOwner,
100
- registryData,
101
98
  componentData);
102
99
 
103
100
  OracleStorage storage $ = _getOracleStorage();
104
- $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
105
101
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
102
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
106
103
 
107
- registerInterface(type(IOracleComponent).interfaceId);
104
+ _registerInterface(type(IOracleComponent).interfaceId);
108
105
  }
109
106
 
110
107