@etherisc/gif-next 0.0.2-e83e4a5-207 → 0.0.2-e876b87-961

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 (490) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  13. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  15. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +206 -309
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +134 -277
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +284 -223
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +116 -104
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +121 -92
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +149 -31
  33. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  35. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  37. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  39. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  41. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  43. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  53. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +59 -37
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +34 -89
  59. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  60. package/artifacts/contracts/instance/Instance.sol/Instance.json +63 -130
  61. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +167 -140
  63. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -98
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +459 -136
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +82 -247
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
  71. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +330 -243
  73. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  75. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  76. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  78. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  80. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
  82. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  88. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  89. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  90. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +164 -280
  92. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  94. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  96. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +96 -80
  97. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
  99. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +106 -262
  101. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
  103. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
  105. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  106. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +152 -330
  107. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
  109. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  110. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +498 -167
  111. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +169 -89
  113. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  114. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +258 -1
  115. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  116. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -130
  117. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +384 -179
  119. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/Pool.sol/Pool.json +142 -313
  121. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +506 -334
  123. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -87
  125. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  126. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +76 -168
  127. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -92
  129. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  130. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +155 -281
  131. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  132. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  133. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  134. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +303 -187
  135. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -103
  137. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  138. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -0
  139. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  140. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +176 -6
  141. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +323 -118
  143. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
  145. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  146. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +143 -97
  147. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  148. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
  149. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  150. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +444 -325
  151. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +119 -103
  153. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  154. package/artifacts/contracts/product/PricingService.sol/PricingService.json +202 -307
  155. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
  157. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  158. package/artifacts/contracts/product/Product.sol/Product.json +155 -281
  159. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  160. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  161. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  162. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  163. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  164. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  165. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  166. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +322 -22
  167. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  168. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +42 -146
  169. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  170. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  171. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  172. package/artifacts/contracts/registry/Registry.sol/Registry.json +549 -80
  173. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  174. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +285 -145
  175. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  176. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
  177. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
  179. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  181. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  182. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  183. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  185. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  187. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  188. package/artifacts/contracts/shared/Component.sol/Component.json +65 -236
  189. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +546 -248
  191. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +4 -0
  192. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +206 -0
  193. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -110
  195. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  196. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
  197. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  199. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -54
  201. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +499 -19
  203. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  204. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +85 -80
  205. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  207. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  209. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  210. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  211. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  213. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  215. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  218. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  219. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  220. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -265
  222. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  223. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  224. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  225. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  226. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  227. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  228. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  230. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  231. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  232. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
  234. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  236. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
  238. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  239. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +407 -11
  240. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  241. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +132 -0
  242. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  243. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -55
  244. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  245. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
  246. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  247. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
  248. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  249. package/artifacts/contracts/staking/Staking.sol/Staking.json +174 -291
  250. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  252. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  253. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +106 -91
  254. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  255. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  256. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  257. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
  258. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
  260. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  261. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +177 -131
  262. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  263. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  264. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  265. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  267. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  269. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  271. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  273. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  275. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  277. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  279. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  280. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  281. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  283. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  285. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  287. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  289. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  291. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  293. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  295. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  299. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  302. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  304. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  306. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  308. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  310. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  311. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  312. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  314. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  315. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  316. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  317. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  318. package/contracts/authorization/AccessAdmin.sol +64 -59
  319. package/contracts/authorization/Authorization.sol +111 -40
  320. package/contracts/authorization/IAccess.sol +1 -0
  321. package/contracts/authorization/IAccessAdmin.sol +4 -3
  322. package/contracts/authorization/IAuthorization.sol +13 -7
  323. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  324. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  325. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  326. package/contracts/distribution/BasicDistribution.sol +6 -16
  327. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  328. package/contracts/distribution/Distribution.sol +28 -26
  329. package/contracts/distribution/DistributionService.sol +128 -75
  330. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  331. package/contracts/distribution/IDistributionComponent.sol +9 -5
  332. package/contracts/distribution/IDistributionService.sol +18 -2
  333. package/contracts/examples/fire/DamageLevel.sol +59 -0
  334. package/contracts/examples/fire/FirePool.sol +73 -0
  335. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  336. package/contracts/examples/fire/FireProduct.sol +415 -0
  337. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  338. package/contracts/examples/fire/FireUSD.sol +26 -0
  339. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  340. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  341. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  342. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  343. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  344. package/contracts/instance/IInstance.sol +14 -34
  345. package/contracts/instance/IInstanceService.sol +5 -25
  346. package/contracts/instance/Instance.sol +32 -54
  347. package/contracts/instance/InstanceAdmin.sol +47 -34
  348. package/contracts/instance/InstanceAuthorizationV3.sol +24 -32
  349. package/contracts/instance/InstanceReader.sol +115 -25
  350. package/contracts/instance/InstanceService.sol +75 -105
  351. package/contracts/instance/InstanceServiceManager.sol +8 -13
  352. package/contracts/instance/InstanceStore.sol +12 -1
  353. package/contracts/instance/base/ObjectLifecycle.sol +9 -4
  354. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  355. package/contracts/instance/module/IBundle.sol +1 -1
  356. package/contracts/instance/module/IComponents.sol +10 -11
  357. package/contracts/instance/module/IDistribution.sol +0 -1
  358. package/contracts/instance/module/IPolicy.sol +24 -24
  359. package/contracts/mock/Dip.sol +1 -1
  360. package/contracts/oracle/BasicOracle.sol +0 -1
  361. package/contracts/oracle/IOracleComponent.sol +2 -1
  362. package/contracts/oracle/IOracleService.sol +2 -1
  363. package/contracts/oracle/Oracle.sol +21 -22
  364. package/contracts/oracle/OracleService.sol +47 -34
  365. package/contracts/oracle/OracleServiceManager.sol +8 -11
  366. package/contracts/pool/BasicPool.sol +21 -31
  367. package/contracts/pool/BasicPoolAuthorization.sol +11 -3
  368. package/contracts/pool/BundleService.sol +267 -70
  369. package/contracts/pool/BundleServiceManager.sol +8 -11
  370. package/contracts/pool/IBundleService.sol +42 -5
  371. package/contracts/pool/IPoolComponent.sol +24 -8
  372. package/contracts/pool/IPoolService.sol +56 -39
  373. package/contracts/pool/Pool.sol +73 -49
  374. package/contracts/pool/PoolService.sol +256 -164
  375. package/contracts/pool/PoolServiceManager.sol +6 -9
  376. package/contracts/product/ApplicationService.sol +70 -65
  377. package/contracts/product/ApplicationServiceManager.sol +6 -6
  378. package/contracts/product/BasicProduct.sol +9 -38
  379. package/contracts/product/BasicProductAuthorization.sol +2 -0
  380. package/contracts/product/ClaimService.sol +316 -146
  381. package/contracts/product/ClaimServiceManager.sol +6 -6
  382. package/contracts/product/IApplicationService.sol +1 -0
  383. package/contracts/product/IClaimService.sol +31 -7
  384. package/contracts/product/IPolicyService.sol +34 -32
  385. package/contracts/product/IPricingService.sol +10 -10
  386. package/contracts/product/IProductComponent.sol +24 -4
  387. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  388. package/contracts/product/PolicyService.sol +419 -203
  389. package/contracts/product/PolicyServiceManager.sol +6 -9
  390. package/contracts/product/PricingService.sol +54 -54
  391. package/contracts/product/PricingServiceManager.sol +5 -8
  392. package/contracts/product/Product.sol +134 -71
  393. package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
  394. package/contracts/product/RiskServiceManager.sol +39 -0
  395. package/contracts/registry/ChainNft.sol +68 -38
  396. package/contracts/registry/IRegistry.sol +69 -19
  397. package/contracts/registry/IRegistryService.sol +3 -10
  398. package/contracts/registry/ITransferInterceptor.sol +1 -2
  399. package/contracts/registry/Registry.sol +354 -215
  400. package/contracts/registry/RegistryAdmin.sol +155 -72
  401. package/contracts/registry/RegistryService.sol +39 -64
  402. package/contracts/registry/RegistryServiceManager.sol +4 -4
  403. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  404. package/contracts/registry/ReleaseRegistry.sol +501 -0
  405. package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
  406. package/contracts/registry/TokenRegistry.sol +2 -2
  407. package/contracts/shared/Component.sol +52 -62
  408. package/contracts/shared/ComponentService.sol +299 -179
  409. package/contracts/shared/ComponentServiceHelperLib.sol +118 -0
  410. package/contracts/shared/ComponentServiceManager.sol +10 -7
  411. package/contracts/shared/ComponentVerifyingService.sol +23 -14
  412. package/contracts/shared/ContractLib.sol +38 -0
  413. package/contracts/shared/IComponent.sol +10 -6
  414. package/contracts/shared/IComponentService.sol +39 -20
  415. package/contracts/shared/IInstanceLinkedComponent.sol +8 -17
  416. package/contracts/shared/ILifecycle.sol +3 -1
  417. package/contracts/shared/INftOwnable.sol +2 -0
  418. package/contracts/shared/IPolicyHolder.sol +12 -22
  419. package/contracts/shared/IRegisterable.sol +11 -0
  420. package/contracts/shared/IService.sol +1 -1
  421. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  422. package/contracts/shared/InstanceLinkedComponent.sol +85 -23
  423. package/contracts/shared/KeyValueStore.sol +1 -1
  424. package/contracts/shared/Lifecycle.sol +15 -4
  425. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  426. package/contracts/shared/NftOwnable.sol +29 -9
  427. package/contracts/shared/PolicyHolder.sol +17 -57
  428. package/contracts/shared/Registerable.sol +19 -9
  429. package/contracts/shared/RegistryLinked.sol +3 -2
  430. package/contracts/shared/Service.sol +23 -22
  431. package/contracts/shared/TokenHandler.sol +144 -19
  432. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  433. package/contracts/staking/IStaking.sol +3 -3
  434. package/contracts/staking/IStakingService.sol +12 -8
  435. package/contracts/staking/StakeManagerLib.sol +18 -25
  436. package/contracts/staking/Staking.sol +29 -45
  437. package/contracts/staking/StakingManager.sol +10 -12
  438. package/contracts/staking/StakingReader.sol +23 -20
  439. package/contracts/staking/StakingService.sol +25 -29
  440. package/contracts/staking/StakingServiceManager.sol +4 -4
  441. package/contracts/staking/StakingStore.sol +12 -22
  442. package/contracts/staking/TargetManagerLib.sol +7 -3
  443. package/contracts/type/Amount.sol +27 -5
  444. package/contracts/type/Blocknumber.sol +7 -1
  445. package/contracts/type/ClaimId.sol +6 -1
  446. package/contracts/type/NftId.sol +1 -0
  447. package/contracts/type/ObjectType.sol +19 -18
  448. package/contracts/type/PayoutId.sol +10 -10
  449. package/contracts/type/Referral.sol +1 -0
  450. package/contracts/type/RiskId.sol +15 -1
  451. package/contracts/type/RoleId.sol +0 -12
  452. package/contracts/type/Seconds.sol +21 -1
  453. package/contracts/type/StateId.sol +15 -1
  454. package/contracts/type/Timestamp.sol +11 -1
  455. package/contracts/type/UFixed.sol +33 -10
  456. package/contracts/type/Version.sol +3 -1
  457. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  458. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  459. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  460. package/package.json +4 -3
  461. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  462. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  463. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  464. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  465. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  466. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  467. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  468. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  469. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  470. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  471. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  472. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  473. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  474. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  475. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  476. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  477. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  478. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  479. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  480. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  481. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  482. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  483. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  484. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  485. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  486. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  487. package/contracts/product/ProductServiceManager.sol +0 -42
  488. package/contracts/registry/ReleaseManager.sol +0 -487
  489. package/contracts/shared/InitializableCustom.sol +0 -177
  490. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -42,7 +42,6 @@ contract BasicOracle is
42
42
  initialOwner,
43
43
  name,
44
44
  token,
45
- "",
46
45
  "");
47
46
  }
48
47
  }
@@ -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
 
@@ -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,15 +62,26 @@ 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 withdrawnAmount)
73
+ {
74
+ revert ErrorOracleNotImplemented("withdrawFees");
75
+ }
76
+
76
77
 
77
78
  function _initializeOracle(
78
79
  address registry,
79
- NftId instanceNftId,
80
+ NftId productNftId,
80
81
  IAuthorization authorization,
81
82
  address initialOwner,
82
83
  string memory name,
83
84
  address token,
84
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
85
85
  bytes memory componentData // component specifidc data
86
86
  )
87
87
  internal
@@ -90,21 +90,20 @@ abstract contract Oracle is
90
90
  {
91
91
  _initializeInstanceLinkedComponent(
92
92
  registry,
93
- instanceNftId,
93
+ productNftId,
94
94
  name,
95
95
  token,
96
96
  ORACLE(),
97
97
  authorization,
98
98
  true,
99
99
  initialOwner,
100
- registryData,
101
100
  componentData);
102
101
 
103
102
  OracleStorage storage $ = _getOracleStorage();
104
- $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
105
103
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
104
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
106
105
 
107
- registerInterface(type(IOracleComponent).interfaceId);
106
+ _registerInterface(type(IOracleComponent).interfaceId);
108
107
  }
109
108
 
110
109
 
@@ -11,7 +11,7 @@ import {IOracleComponent} from "./IOracleComponent.sol";
11
11
  import {IOracleService} from "./IOracleService.sol";
12
12
  import {IRegistry} from "../registry/IRegistry.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
- import {ObjectType, COMPONENT, ORACLE, INSTANCE} from "../type/ObjectType.sol";
14
+ import {ObjectType, COMPONENT, ORACLE, PRODUCT} from "../type/ObjectType.sol";
15
15
  import {RequestId} from "../type/RequestId.sol";
16
16
  import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
17
17
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
@@ -27,14 +27,16 @@ contract OracleService is
27
27
  bytes memory data
28
28
  )
29
29
  internal
30
- initializer
31
30
  virtual override
31
+ initializer()
32
32
  {
33
- address initialOwner;
34
- address registryAddress;
35
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
36
- initializeService(registryAddress, address(0), owner);
37
- registerInterface(type(IOracleService).interfaceId);
33
+ (
34
+ address registryAddress,
35
+ address authority
36
+ ) = abi.decode(data, (address, address));
37
+
38
+ _initializeService(registryAddress, authority, owner);
39
+ _registerInterface(type(IOracleService).interfaceId);
38
40
  }
39
41
 
40
42
  function request(
@@ -46,6 +48,7 @@ contract OracleService is
46
48
  external
47
49
  virtual
48
50
  // restricted() // add authz
51
+ onlyNftOfType(oracleNftId, ORACLE())
49
52
  returns (
50
53
  RequestId requestId
51
54
  )
@@ -64,35 +67,45 @@ contract OracleService is
64
67
  ORACLE(),
65
68
  true); // only active
66
69
 
67
- // check that requester and oracle share same instance
68
- if (componentInfo.parentNftId != oracleInfo.parentNftId) {
69
- revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
70
- }
70
+ {
71
+ // check that requester and oracle share same product cluster
72
+ if (componentInfo.objectType == PRODUCT()) {
73
+ if (oracleInfo.parentNftId != componentInfo.nftId) {
74
+ revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.nftId, oracleInfo.parentNftId);
75
+ }
76
+ } else {
77
+ if (oracleInfo.parentNftId != componentInfo.parentNftId) {
78
+ revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.parentNftId, oracleInfo.parentNftId);
79
+ }
80
+ }
71
81
 
72
- // check expiriyAt >= now
73
- if (expiryAt < TimestampLib.blockTimestamp()) {
74
- revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
75
- }
82
+ // check expiriyAt >= now
83
+ if (expiryAt < TimestampLib.blockTimestamp()) {
84
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
85
+ }
76
86
 
77
- // check callbackMethodName.length > 0
78
- if (bytes(callbackMethodName).length == 0) {
79
- revert ErrorOracleServiceCallbackMethodNameEmpty();
87
+ // check callbackMethodName.length > 0
88
+ if (bytes(callbackMethodName).length == 0) {
89
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
90
+ }
80
91
  }
81
92
 
82
- // create request info
83
- IOracle.RequestInfo memory request = IOracle.RequestInfo({
84
- requesterNftId: componentNftId,
85
- callbackMethodName: callbackMethodName,
86
- oracleNftId: oracleNftId,
87
- requestData: requestData,
88
- responseData: "",
89
- respondedAt: TimestampLib.zero(),
90
- expiredAt: expiryAt,
91
- isCancelled: false
92
- });
93
-
94
- // store request with instance
95
- requestId = instance.getInstanceStore().createRequest(request);
93
+ {
94
+ // create request info
95
+ IOracle.RequestInfo memory request = IOracle.RequestInfo({
96
+ requesterNftId: componentNftId,
97
+ callbackMethodName: callbackMethodName,
98
+ oracleNftId: oracleNftId,
99
+ requestData: requestData,
100
+ responseData: "",
101
+ respondedAt: TimestampLib.zero(),
102
+ expiredAt: expiryAt,
103
+ isCancelled: false
104
+ });
105
+
106
+ // store request with instance
107
+ requestId = instance.getInstanceStore().createRequest(request);
108
+ }
96
109
 
97
110
  // call oracle component
98
111
  IOracleComponent(oracleInfo.objectAddress).request(
@@ -214,7 +227,7 @@ contract OracleService is
214
227
 
215
228
  // call oracle component
216
229
  // TODO add check that oracle is active?
217
- address oracleAddress = getRegistry().getObjectInfo(request.oracleNftId).objectAddress;
230
+ address oracleAddress = getRegistry().getObjectAddress(request.oracleNftId);
218
231
  IOracleComponent(oracleAddress).cancel(requestId);
219
232
 
220
233
  emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
@@ -267,7 +280,7 @@ contract OracleService is
267
280
  returns(IInstance instance)
268
281
  {
269
282
  NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
270
- address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
283
+ address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
271
284
  return IInstance(instanceAddress);
272
285
  }
273
286
 
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {OracleService} from "./OracleService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {REGISTRY} from "../type/ObjectType.sol";
10
7
 
11
8
  contract OracleServiceManager is ProxyManager {
12
9
 
@@ -15,15 +12,15 @@ contract OracleServiceManager is ProxyManager {
15
12
  /// @dev initializes proxy manager with service implementation and deploys instance
16
13
  constructor(
17
14
  address authority,
18
- address registryAddress,
15
+ address registry,
19
16
  bytes32 salt
20
17
  )
21
- ProxyManager(registryAddress)
22
18
  {
23
- OracleService orclSrv = new OracleService{salt: salt}();
24
- bytes memory data = abi.encode(registryAddress, address(this), authority);
25
- IVersionable versionable = deployDetermenistic(
26
- address(orclSrv),
19
+ OracleService svc = new OracleService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
27
24
  data,
28
25
  salt);
29
26
 
@@ -1,21 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount, AmountLib} from "../type/Amount.sol";
5
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
6
- import {Fee, FeeLib} from "../type/Fee.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {Fee} from "../type/Fee.sol";
7
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
8
- import {IBundleService} from "./IBundleService.sol";
9
- import {IPoolComponent} from "./IPoolComponent.sol";
10
- import {IPoolService} from "./IPoolService.sol";
11
- import {IComponents} from "../instance/module/IComponents.sol";
12
- import {IComponentService} from "../shared/IComponentService.sol";
13
- import {NftId, NftIdLib} from "../type/NftId.sol";
14
- import {BUNDLE, COMPONENT, POOL} from "../type/ObjectType.sol";
15
- import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {BUNDLE} from "../type/ObjectType.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
16
10
  import {Seconds} from "../type/Seconds.sol";
17
- import {TokenHandler} from "../shared/TokenHandler.sol";
18
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
19
12
 
20
13
  import {Pool} from "./Pool.sol";
21
14
 
@@ -25,7 +18,7 @@ abstract contract BasicPool is
25
18
 
26
19
  function _initializeBasicPool(
27
20
  address registry,
28
- NftId instanceNftId,
21
+ NftId productNftId,
29
22
  IAuthorization authorization,
30
23
  address token,
31
24
  string memory name,
@@ -37,13 +30,12 @@ abstract contract BasicPool is
37
30
  {
38
31
  _initializePool(
39
32
  registry,
40
- instanceNftId,
33
+ productNftId,
41
34
  name,
42
35
  token,
43
36
  authorization,
44
37
  false, // isInterceptingNftTransfers,
45
38
  initialOwner,
46
- "", // registryData
47
39
  ""); // componentData
48
40
  }
49
41
 
@@ -55,6 +47,7 @@ abstract contract BasicPool is
55
47
  virtual
56
48
  restricted()
57
49
  onlyBundleOwner(bundleNftId)
50
+ onlyNftOfType(bundleNftId, BUNDLE())
58
51
  {
59
52
  _stake(bundleNftId, amount);
60
53
  }
@@ -68,6 +61,7 @@ abstract contract BasicPool is
68
61
  virtual
69
62
  restricted()
70
63
  onlyBundleOwner(bundleNftId)
64
+ onlyNftOfType(bundleNftId, BUNDLE())
71
65
  {
72
66
  _unstake(bundleNftId, amount);
73
67
  }
@@ -81,8 +75,10 @@ abstract contract BasicPool is
81
75
  virtual
82
76
  restricted()
83
77
  onlyBundleOwner(bundleNftId)
78
+ onlyNftOfType(bundleNftId, BUNDLE())
79
+ returns(Timestamp newExpiredAt)
84
80
  {
85
- _extend(bundleNftId, lifetimeExtension);
81
+ return _extend(bundleNftId, lifetimeExtension);
86
82
  }
87
83
 
88
84
 
@@ -91,6 +87,7 @@ abstract contract BasicPool is
91
87
  virtual
92
88
  restricted()
93
89
  onlyBundleOwner(bundleNftId)
90
+ onlyNftOfType(bundleNftId, BUNDLE())
94
91
  {
95
92
  _lockBundle(bundleNftId);
96
93
  }
@@ -101,18 +98,20 @@ abstract contract BasicPool is
101
98
  virtual
102
99
  restricted()
103
100
  onlyBundleOwner(bundleNftId)
101
+ onlyNftOfType(bundleNftId, BUNDLE())
104
102
  {
105
103
  _unlockBundle(bundleNftId);
106
104
  }
107
105
 
108
106
 
109
- function close(NftId bundleNftId)
107
+ function closeBundle(NftId bundleNftId)
110
108
  public
111
109
  virtual
112
110
  restricted()
113
111
  onlyBundleOwner(bundleNftId)
112
+ onlyNftOfType(bundleNftId, BUNDLE())
114
113
  {
115
- _close(bundleNftId);
114
+ _closeBundle(bundleNftId);
116
115
  }
117
116
 
118
117
 
@@ -124,28 +123,19 @@ abstract contract BasicPool is
124
123
  virtual
125
124
  restricted()
126
125
  onlyBundleOwner(bundleNftId)
126
+ onlyNftOfType(bundleNftId, BUNDLE())
127
127
  {
128
128
  _setBundleFee(bundleNftId, fee);
129
129
  }
130
130
 
131
131
 
132
- function setMaxCapitalAmount(Amount maxCapitalAmount)
132
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
133
133
  public
134
134
  virtual
135
135
  restricted()
136
136
  onlyOwner()
137
137
  {
138
- _setMaxCapitalAmount(maxCapitalAmount);
139
- }
140
-
141
-
142
- function setBundleOwnerRole(RoleId bundleOwnerRole)
143
- public
144
- virtual
145
- restricted()
146
- onlyOwner()
147
- {
148
- _setBundleOwnerRole(bundleOwnerRole);
138
+ _setMaxBalanceAmount(maxBalanceAmount);
149
139
  }
150
140
 
151
141
 
@@ -4,6 +4,8 @@ pragma solidity ^0.8.20;
4
4
  import {Authorization} from "../authorization/Authorization.sol";
5
5
  import {BasicPool} from "./BasicPool.sol";
6
6
  import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IPoolComponent} from "./IPoolComponent.sol";
7
9
  import {POOL} from "../type/ObjectType.sol";
8
10
  import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
9
11
  import {RoleId} from "../type/RoleId.sol";
@@ -38,12 +40,18 @@ contract BasicPoolAuthorization
38
40
  _authorize(functions, BasicPool.extend.selector, "extend");
39
41
  _authorize(functions, BasicPool.lockBundle.selector, "lockBundle");
40
42
  _authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
41
- _authorize(functions, BasicPool.close.selector, "close");
43
+ _authorize(functions, BasicPool.closeBundle.selector, "closeBundle");
42
44
  _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
43
45
 
44
- _authorize(functions, BasicPool.setMaxCapitalAmount.selector, "setMaxCapitalAmount");
45
- _authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
46
+ _authorize(functions, BasicPool.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
46
47
  _authorize(functions, BasicPool.setFees.selector, "setFees");
48
+ _authorize(functions, BasicPool.stake.selector, "stake");
49
+ _authorize(functions, BasicPool.unstake.selector, "unstake");
50
+ _authorize(functions, BasicPool.extend.selector, "extend");
51
+
52
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
53
+
54
+ _authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
47
55
  }
48
56
  }
49
57