@etherisc/gif-next 0.0.2-83889c4-030 → 0.0.2-839c4b8-393

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 (604) hide show
  1. package/README.md +137 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared/IAccessManagerExtended.sol/IAccessManagerExtended.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +605 -795
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -616
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +763 -303
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +235 -123
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +145 -282
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +547 -77
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +59 -195
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +594 -101
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +510 -68
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +600 -235
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1889 -313
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1663 -845
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +498 -213
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +141 -103
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1500 -2103
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  109. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  111. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  112. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +142 -139
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +110 -10
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +140 -423
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +222 -177
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +184 -92
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +576 -243
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +223 -103
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +395 -52
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +147 -406
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +756 -372
  143. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  144. package/artifacts/contracts/pool/Pool.sol/Pool.json +144 -694
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +934 -533
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +230 -102
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +372 -170
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +166 -98
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +489 -231
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +195 -119
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +313 -8
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +362 -17
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +429 -100
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -79
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +282 -271
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  174. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +289 -150
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +567 -309
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +203 -103
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.json +258 -309
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -129
  185. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  186. package/artifacts/contracts/product/Product.sol/Product.json +316 -606
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +384 -69
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +109 -147
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  201. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/Registry.sol/Registry.json +617 -133
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1908 -155
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +159 -276
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +148 -84
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  221. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  222. package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +620 -559
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +197 -127
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +545 -237
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +131 -139
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IService.sol/IService.json +96 -1
  252. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  254. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +125 -376
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +92 -104
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +261 -107
  280. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +1653 -523
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +186 -116
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +315 -295
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -104
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1725 -817
  296. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +184 -76
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  306. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +140 -4
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +93 -2
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +24 -5
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  360. package/contracts/accounting/AccountingService.sol +274 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +47 -0
  363. package/contracts/authorization/AccessAdmin.sol +780 -0
  364. package/contracts/authorization/AccessAdminLib.sol +396 -0
  365. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  366. package/contracts/authorization/Authorization.sol +169 -0
  367. package/contracts/authorization/IAccess.sol +67 -0
  368. package/contracts/authorization/IAccessAdmin.sol +144 -0
  369. package/contracts/authorization/IAuthorization.sol +26 -0
  370. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  371. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  372. package/contracts/distribution/BasicDistribution.sol +140 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  374. package/contracts/distribution/Distribution.sol +125 -141
  375. package/contracts/distribution/DistributionService.sol +287 -137
  376. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  377. package/contracts/distribution/IDistributionComponent.sol +21 -42
  378. package/contracts/distribution/IDistributionService.sol +60 -26
  379. package/contracts/examples/fire/DamageLevel.sol +59 -0
  380. package/contracts/examples/fire/FirePool.sol +86 -0
  381. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  382. package/contracts/examples/fire/FireProduct.sol +433 -0
  383. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  384. package/contracts/examples/fire/FireUSD.sol +26 -0
  385. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  386. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  388. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  389. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  390. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BaseStore.sol +93 -0
  393. package/contracts/instance/BundleSet.sol +130 -0
  394. package/contracts/instance/IBaseStore.sol +37 -0
  395. package/contracts/instance/IInstance.sol +121 -47
  396. package/contracts/instance/IInstanceService.sol +80 -42
  397. package/contracts/instance/Instance.sol +251 -136
  398. package/contracts/instance/InstanceAdmin.sol +297 -249
  399. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  400. package/contracts/instance/InstanceReader.sol +478 -256
  401. package/contracts/instance/InstanceService.sol +389 -237
  402. package/contracts/instance/InstanceServiceManager.sol +8 -13
  403. package/contracts/instance/InstanceStore.sol +163 -121
  404. package/contracts/instance/ProductStore.sol +290 -0
  405. package/contracts/instance/RiskSet.sol +126 -0
  406. package/contracts/instance/TargetNames.sol +10 -0
  407. package/contracts/instance/base/BalanceStore.sol +15 -12
  408. package/contracts/instance/base/Cloneable.sol +2 -25
  409. package/contracts/instance/base/ObjectCounter.sol +1 -2
  410. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  411. package/contracts/instance/base/ObjectSet.sol +77 -0
  412. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  413. package/contracts/instance/module/IBundle.sol +6 -5
  414. package/contracts/instance/module/IComponents.sol +29 -21
  415. package/contracts/instance/module/IDistribution.sol +21 -9
  416. package/contracts/instance/module/IPolicy.sol +50 -29
  417. package/contracts/instance/module/IRisk.sol +5 -0
  418. package/contracts/mock/Dip.sol +1 -1
  419. package/contracts/oracle/BasicOracle.sol +44 -0
  420. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  421. package/contracts/oracle/IOracle.sol +25 -4
  422. package/contracts/oracle/IOracleComponent.sol +2 -1
  423. package/contracts/oracle/IOracleService.sol +2 -1
  424. package/contracts/oracle/Oracle.sol +60 -53
  425. package/contracts/oracle/OracleService.sol +120 -87
  426. package/contracts/oracle/OracleServiceManager.sol +8 -11
  427. package/contracts/pool/BasicPool.sol +161 -0
  428. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  429. package/contracts/pool/BundleService.sol +225 -135
  430. package/contracts/pool/BundleServiceManager.sol +8 -11
  431. package/contracts/pool/IBundleService.sol +43 -33
  432. package/contracts/pool/IPoolComponent.sol +20 -70
  433. package/contracts/pool/IPoolService.sol +97 -77
  434. package/contracts/pool/Pool.sol +196 -164
  435. package/contracts/pool/PoolLib.sol +341 -0
  436. package/contracts/pool/PoolService.sol +424 -263
  437. package/contracts/pool/PoolServiceManager.sol +6 -9
  438. package/contracts/product/ApplicationService.sol +159 -86
  439. package/contracts/product/ApplicationServiceManager.sol +6 -6
  440. package/contracts/product/BasicProduct.sol +48 -0
  441. package/contracts/product/BasicProductAuthorization.sol +63 -0
  442. package/contracts/product/ClaimService.sol +396 -212
  443. package/contracts/product/ClaimServiceManager.sol +6 -6
  444. package/contracts/product/IApplicationService.sol +29 -3
  445. package/contracts/product/IClaimService.sol +48 -11
  446. package/contracts/product/IPolicyService.sol +61 -37
  447. package/contracts/product/IPricingService.sol +11 -10
  448. package/contracts/product/IProductComponent.sol +29 -9
  449. package/contracts/product/IRiskService.sol +48 -0
  450. package/contracts/product/PolicyService.sol +450 -280
  451. package/contracts/product/PolicyServiceLib.sol +139 -0
  452. package/contracts/product/PolicyServiceManager.sol +6 -9
  453. package/contracts/product/PricingService.sol +93 -88
  454. package/contracts/product/PricingServiceManager.sol +6 -9
  455. package/contracts/product/Product.sol +261 -147
  456. package/contracts/product/RiskService.sol +189 -0
  457. package/contracts/product/RiskServiceManager.sol +39 -0
  458. package/contracts/registry/ChainNft.sol +72 -40
  459. package/contracts/registry/IRegistry.sol +84 -36
  460. package/contracts/registry/IRegistryService.sol +3 -10
  461. package/contracts/registry/IRelease.sol +29 -0
  462. package/contracts/registry/ITransferInterceptor.sol +1 -2
  463. package/contracts/registry/Registry.sol +378 -218
  464. package/contracts/registry/RegistryAdmin.sol +125 -171
  465. package/contracts/registry/RegistryAuthorization.sol +336 -0
  466. package/contracts/registry/RegistryService.sol +47 -72
  467. package/contracts/registry/RegistryServiceManager.sol +5 -10
  468. package/contracts/registry/ReleaseAdmin.sol +195 -0
  469. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  470. package/contracts/registry/ReleaseRegistry.sol +525 -0
  471. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  472. package/contracts/registry/TokenRegistry.sol +61 -59
  473. package/contracts/shared/Component.sol +71 -142
  474. package/contracts/shared/ComponentService.sol +462 -389
  475. package/contracts/shared/ComponentServiceManager.sol +10 -7
  476. package/contracts/shared/ContractLib.sol +312 -0
  477. package/contracts/shared/IComponent.sol +6 -18
  478. package/contracts/shared/IComponentService.sol +50 -41
  479. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  480. package/contracts/shared/ILifecycle.sol +3 -2
  481. package/contracts/shared/INftOwnable.sol +4 -0
  482. package/contracts/shared/IPolicyHolder.sol +12 -22
  483. package/contracts/shared/IRegisterable.sol +22 -1
  484. package/contracts/shared/IService.sol +10 -5
  485. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  486. package/contracts/shared/InstanceLinkedComponent.sol +96 -48
  487. package/contracts/shared/Lifecycle.sol +30 -72
  488. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  489. package/contracts/shared/NftOwnable.sol +33 -11
  490. package/contracts/shared/PolicyHolder.sol +20 -59
  491. package/contracts/shared/Registerable.sol +52 -21
  492. package/contracts/shared/RegistryLinked.sol +9 -14
  493. package/contracts/shared/Service.sol +31 -41
  494. package/contracts/shared/TokenHandler.sol +310 -26
  495. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  496. package/contracts/staking/IStaking.sol +272 -73
  497. package/contracts/staking/IStakingService.sol +54 -76
  498. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  499. package/contracts/staking/Staking.sol +540 -294
  500. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +72 -56
  501. package/contracts/staking/StakingManager.sol +14 -15
  502. package/contracts/staking/StakingReader.sol +72 -88
  503. package/contracts/staking/StakingService.sol +90 -175
  504. package/contracts/staking/StakingServiceManager.sol +9 -8
  505. package/contracts/staking/StakingStore.sol +1131 -335
  506. package/contracts/staking/TargetHandler.sol +132 -0
  507. package/contracts/staking/TargetManagerLib.sol +73 -46
  508. package/contracts/type/Amount.sol +31 -5
  509. package/contracts/type/Blocknumber.sol +22 -16
  510. package/contracts/type/ChainId.sol +101 -0
  511. package/contracts/type/ClaimId.sol +6 -1
  512. package/contracts/type/Fee.sol +8 -8
  513. package/contracts/type/Key32.sol +2 -2
  514. package/contracts/type/Key32Set.sol +62 -0
  515. package/contracts/type/NftId.sol +7 -0
  516. package/contracts/type/ObjectType.sol +200 -61
  517. package/contracts/type/PayoutId.sol +10 -10
  518. package/contracts/type/Referral.sol +1 -0
  519. package/contracts/type/RiskId.sol +38 -6
  520. package/contracts/type/RoleId.sol +121 -87
  521. package/contracts/type/Seconds.sol +40 -1
  522. package/contracts/type/Selector.sol +107 -0
  523. package/contracts/type/StateId.sol +15 -1
  524. package/contracts/type/String.sol +65 -0
  525. package/contracts/type/Timestamp.sol +14 -7
  526. package/contracts/type/UFixed.sol +62 -125
  527. package/contracts/type/Version.sol +57 -6
  528. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  529. package/contracts/{shared → upgradeability}/ProxyManager.sol +96 -49
  530. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  531. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  532. package/package.json +10 -7
  533. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  535. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  536. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  537. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  539. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  541. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  542. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -387
  543. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  544. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
  545. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  546. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
  547. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  548. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  549. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  550. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  551. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  552. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  553. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  554. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  555. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  556. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  557. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  558. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  559. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  560. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  561. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  562. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  563. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  564. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  565. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  566. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  567. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  568. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  569. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  570. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  571. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  572. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -571
  573. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  574. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  575. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  576. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  577. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  578. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  579. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  580. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  581. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -444
  582. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  583. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  584. package/contracts/instance/BundleManager.sol +0 -126
  585. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  586. package/contracts/instance/base/ObjectManager.sol +0 -82
  587. package/contracts/instance/module/IAccess.sol +0 -46
  588. package/contracts/product/IProductService.sol +0 -33
  589. package/contracts/product/ProductService.sol +0 -124
  590. package/contracts/product/ProductServiceManager.sol +0 -42
  591. package/contracts/registry/ReleaseManager.sol +0 -600
  592. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  593. package/contracts/shared/AccessManagerCustom.sol +0 -736
  594. package/contracts/shared/AccessManagerExtended.sol +0 -470
  595. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  596. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  597. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  598. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  599. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  600. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  601. package/contracts/shared/IKeyValueStore.sol +0 -53
  602. package/contracts/shared/InitializableCustom.sol +0 -177
  603. package/contracts/shared/KeyValueStore.sol +0 -127
  604. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
@@ -2,19 +2,40 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../type/NftId.sol";
5
+ import {RequestId} from "../type/RequestId.sol";
5
6
  import {Timestamp} from "../type/Timestamp.sol";
6
7
 
7
8
 
8
9
  interface IOracle {
9
10
 
10
11
  struct RequestInfo {
12
+ // slot 0
11
13
  NftId requesterNftId; // originator of the request
12
- string callbackMethodName; // callback function of the requestor to call to provide response data
13
14
  NftId oracleNftId; // responsible oracle component
14
- bytes requestData;
15
- bytes responseData;
15
+ bool isCancelled;
16
16
  Timestamp respondedAt; // response timestamp
17
+ // slot 1
17
18
  Timestamp expiredAt; // expiry timestamp
18
- 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;
19
25
  }
26
+
27
+
28
+ /// @dev Callback function for oracle service to notify this oracle component to retreive some oracle data.
29
+ function request(
30
+ RequestId requestId,
31
+ NftId requesterId,
32
+ bytes calldata requestData,
33
+ Timestamp expiryAt
34
+ ) external;
35
+
36
+
37
+ /// @dev Callback function for oracle service to notify this oracle component that the specified oracle request has ben cancelled by the requestor.
38
+ function cancel(
39
+ RequestId requestId
40
+ ) external;
20
41
  }
@@ -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,18 +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";
5
- import {IOracleService} from "./IOracleService.sol";
6
- import {NftId, NftIdLib} from "../type/NftId.sol";
7
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
8
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
9
  import {IOracleComponent} from "./IOracleComponent.sol";
10
- import {IRegistry} from "../registry/IRegistry.sol";
11
- import {InstanceReader} from "../instance/InstanceReader.sol";
10
+ import {IOracleService} from "./IOracleService.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
12
13
  import {RequestId} from "../type/RequestId.sol";
13
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
14
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
15
- import {UFixed} from "../type/UFixed.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
16
15
 
17
16
 
18
17
  abstract contract Oracle is
@@ -28,38 +27,32 @@ abstract contract Oracle is
28
27
  }
29
28
 
30
29
 
31
- function initializeOracle(
32
- address registry,
33
- NftId instanceNftId,
34
- address initialOwner,
35
- string memory name,
36
- address token,
37
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
38
- bytes memory componentData // component specifidc data
30
+ function request(
31
+ RequestId requestId,
32
+ NftId requesterId,
33
+ bytes calldata requestData,
34
+ Timestamp expiryAt
39
35
  )
40
- public
36
+ external
41
37
  virtual
42
- onlyInitializing()
38
+ restricted()
43
39
  {
44
- initializeInstanceLinkedComponent(registry, instanceNftId, name, token, ORACLE(), true, initialOwner, registryData, componentData);
45
-
46
- OracleStorage storage $ = _getOracleStorage();
47
- $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
48
- $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
49
-
50
- registerInterface(type(IOracleComponent).interfaceId);
40
+ _request(requestId, requesterId, requestData, expiryAt);
51
41
  }
52
42
 
53
43
 
54
- function register()
44
+ function cancel(
45
+ RequestId requestId
46
+ )
55
47
  external
56
48
  virtual
57
- onlyOwner()
49
+ restricted()
58
50
  {
59
- _getOracleStorage()._componentService.registerOracle();
51
+ _cancel(requestId);
60
52
  }
61
53
 
62
54
 
55
+ /// @dev Not relevant for oracle components, always returns false.
63
56
  function isVerifying()
64
57
  external
65
58
  virtual
@@ -69,36 +62,50 @@ abstract contract Oracle is
69
62
  return false;
70
63
  }
71
64
 
72
-
73
- function request(
74
- RequestId requestId,
75
- NftId requesterId,
76
- bytes calldata requestData,
77
- Timestamp expiryAt
78
- )
65
+ /// @dev Not relevant for oracle components
66
+ function withdrawFees(Amount amount)
79
67
  external
80
68
  virtual
81
- // restricted() // TODO enable: only oracle service
69
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
70
+ onlyOwner()
71
+ restricted()
72
+ returns (Amount)
82
73
  {
83
- _request(requestId, requesterId, requestData, expiryAt);
74
+ revert ErrorOracleNotImplemented("withdrawFees");
84
75
  }
85
76
 
86
77
 
87
- function cancel(
88
- RequestId requestId
78
+ function __Oracle_init(
79
+ address registry,
80
+ NftId productNftId,
81
+ IAuthorization authorization,
82
+ address initialOwner,
83
+ string memory name
89
84
  )
90
- external
85
+ internal
91
86
  virtual
92
- // restricted() // TODO enable: only oracle service
87
+ onlyInitializing()
93
88
  {
94
- _cancel(requestId);
89
+ __InstanceLinkedComponent_init(
90
+ registry,
91
+ productNftId,
92
+ name,
93
+ ORACLE(),
94
+ authorization,
95
+ true,
96
+ initialOwner);
97
+
98
+ OracleStorage storage $ = _getOracleStorage();
99
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
100
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
101
+
102
+ _registerInterface(type(IOracleComponent).interfaceId);
95
103
  }
96
104
 
97
105
 
98
- /// @dev internal function for handling requests.
99
- /// empty implementation.
100
- /// overwrite this function to implement use case specific handling
101
- /// for oracle calls.
106
+ /// @dev Internal function for handling requests.
107
+ /// Empty implementation.
108
+ /// Overwrite this function to implement use case specific handling for oracle calls.
102
109
  function _request(
103
110
  RequestId requestId,
104
111
  NftId requesterId,
@@ -111,9 +118,9 @@ abstract contract Oracle is
111
118
  }
112
119
 
113
120
 
114
- /// @dev internal function for cancelling requests.
115
- /// empty implementation.
116
- /// overwrite this function to implement use case specific cancelling
121
+ /// @dev Internal function for cancelling requests.
122
+ /// Empty implementation.
123
+ /// Overwrite this function to implement use case specific cancelling.
117
124
  function _cancel(
118
125
  RequestId requestId
119
126
  )
@@ -123,9 +130,9 @@ abstract contract Oracle is
123
130
  }
124
131
 
125
132
 
126
- /// @dev internal function for handling oracle responses.
127
- /// use this function in use case specific external/public functions
128
- /// to handle use case specific response handling.
133
+ /// @dev Internal function for handling oracle responses.
134
+ /// Default implementation sends response back to oracle service.
135
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
129
136
  function _respond(
130
137
  RequestId requestId,
131
138
  bytes memory responseData
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
4
+ import {ContractLib} from "../shared/ContractLib.sol";
5
5
  import {IComponent} from "../shared/IComponent.sol";
6
6
  import {IInstance} from "../instance/IInstance.sol";
7
7
  import {IInstanceService} from "../instance/IInstanceService.sol";
@@ -11,14 +11,15 @@ 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
+ import {Service} from "../shared/Service.sol";
16
17
  import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
17
18
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
18
19
 
19
20
 
20
21
  contract OracleService is
21
- ComponentVerifyingService,
22
+ Service,
22
23
  IOracleService
23
24
  {
24
25
 
@@ -27,18 +28,16 @@ contract OracleService is
27
28
  bytes memory data
28
29
  )
29
30
  internal
30
- initializer
31
31
  virtual override
32
+ initializer()
32
33
  {
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);
38
- }
34
+ (
35
+ address authority,
36
+ address registry
37
+ ) = abi.decode(data, (address, address));
39
38
 
40
- function getDomain() public pure override returns(ObjectType) {
41
- return ORACLE();
39
+ __Service_init(authority, registry, owner);
40
+ _registerInterface(type(IOracleService).interfaceId);
42
41
  }
43
42
 
44
43
  function request(
@@ -49,63 +48,51 @@ contract OracleService is
49
48
  )
50
49
  external
51
50
  virtual
52
- // restricted() // add authz
53
- returns (
54
- RequestId requestId
55
- )
51
+ restricted()
52
+ onlyNftOfType(oracleNftId, ORACLE())
53
+ returns (RequestId requestId)
56
54
  {
55
+ // checks
56
+ // get and check active caller
57
57
  (
58
- NftId componentNftId,
59
- IRegistry.ObjectInfo memory componentInfo,
60
- IInstance instance
61
- ) = _getAndVerifyActiveComponent(COMPONENT());
58
+ IRegistry.ObjectInfo memory requesterInfo,
59
+ address instance
60
+ ) = ContractLib.getAndVerifyAnyComponent(
61
+ getRegistry(), msg.sender, true);
62
62
 
63
- // oracleNftId exists and is active oracle
64
63
  (
65
- IRegistry.ObjectInfo memory oracleInfo,
66
- ) = _getAndVerifyComponentInfo(
67
- oracleNftId,
68
- ORACLE(),
69
- true); // only active
70
-
71
- // check that requester and oracle share same instance
72
- if (componentInfo.parentNftId != oracleInfo.parentNftId) {
73
- revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
74
- }
75
-
76
- // check expiriyAt >= now
77
- if (expiryAt < TimestampLib.blockTimestamp()) {
78
- revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
79
- }
80
-
81
- // check callbackMethodName.length > 0
82
- if (bytes(callbackMethodName).length == 0) {
83
- revert ErrorOracleServiceCallbackMethodNameEmpty();
64
+ NftId requesterNftId,
65
+ IOracleComponent oracle
66
+ ) = _checkRequestParams(
67
+ getRegistry(), oracleNftId, requesterInfo, expiryAt, callbackMethodName);
68
+
69
+ // effects
70
+ {
71
+ // create request info
72
+ IOracle.RequestInfo memory request = IOracle.RequestInfo({
73
+ requesterNftId: requesterNftId,
74
+ callbackMethodName: callbackMethodName,
75
+ oracleNftId: oracleNftId,
76
+ requestData: requestData,
77
+ responseData: "",
78
+ respondedAt: TimestampLib.zero(),
79
+ expiredAt: expiryAt,
80
+ isCancelled: false
81
+ });
82
+
83
+ // store request with instance
84
+ requestId = IInstance(instance).getInstanceStore().createRequest(request);
84
85
  }
85
86
 
86
- // create request info
87
- IOracle.RequestInfo memory request = IOracle.RequestInfo({
88
- requesterNftId: componentNftId,
89
- callbackMethodName: callbackMethodName,
90
- oracleNftId: oracleNftId,
91
- requestData: requestData,
92
- responseData: "",
93
- respondedAt: TimestampLib.zero(),
94
- expiredAt: expiryAt,
95
- isCancelled: false
96
- });
97
-
98
- // store request with instance
99
- requestId = instance.getInstanceStore().createRequest(request);
87
+ emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
100
88
 
101
- // call oracle component
102
- IOracleComponent(oracleInfo.objectAddress).request(
89
+ // interactions
90
+ // callback to oracle component
91
+ oracle.request(
103
92
  requestId,
104
- componentNftId,
93
+ requesterNftId,
105
94
  requestData,
106
95
  expiryAt);
107
-
108
- emit LogOracleServiceRequestCreated(requestId, componentNftId, oracleNftId, expiryAt);
109
96
  }
110
97
 
111
98
 
@@ -117,19 +104,21 @@ contract OracleService is
117
104
  )
118
105
  external
119
106
  virtual
120
- // restricted() // add authz
107
+ restricted()
121
108
  returns (bool success)
122
109
  {
123
110
  (
124
- NftId oracleNftId,
125
- IRegistry.ObjectInfo memory componentInfo,
126
- IInstance instance
127
- ) = _getAndVerifyActiveComponent(ORACLE());
111
+ IRegistry.ObjectInfo memory info,
112
+ address instanceAddress
113
+ ) = ContractLib.getAndVerifyComponent(
114
+ getRegistry(), msg.sender, ORACLE(), true);
128
115
 
116
+ NftId oracleNftId = info.nftId;
117
+ IInstance instance = IInstance(instanceAddress);
129
118
  bool callerIsOracle = true;
130
119
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
131
120
  request.responseData = responseData;
132
- request.respondedAt = TimestampLib.blockTimestamp();
121
+ request.respondedAt = TimestampLib.current();
133
122
 
134
123
  instance.getInstanceStore().updateRequest(
135
124
  requestId, request, KEEP_STATE());
@@ -164,14 +153,16 @@ contract OracleService is
164
153
  function resend(RequestId requestId)
165
154
  external
166
155
  virtual
167
- // restricted() // add authz
156
+ restricted()
168
157
  {
169
158
  (
170
- NftId requesterNftId,
171
- IRegistry.ObjectInfo memory requesterInfo,
172
- IInstance instance
173
- ) = _getAndVerifyActiveComponent(COMPONENT());
159
+ IRegistry.ObjectInfo memory info,
160
+ address instanceAddress
161
+ ) = ContractLib.getAndVerifyAnyComponent(
162
+ getRegistry(), msg.sender, true);
174
163
 
164
+ NftId requesterNftId = info.nftId;
165
+ IInstance instance = IInstance(instanceAddress);
175
166
  bool callerIsOracle = false;
176
167
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
177
168
 
@@ -182,7 +173,7 @@ contract OracleService is
182
173
  "(uint64,bytes)"
183
174
  ));
184
175
 
185
- (bool success, bytes memory returnData) = requesterInfo.objectAddress.call(
176
+ (bool success, bytes memory returnData) = info.objectAddress.call(
186
177
  abi.encodeWithSignature(
187
178
  functionSignature,
188
179
  requestId,
@@ -193,7 +184,7 @@ contract OracleService is
193
184
  instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
194
185
  emit LogOracleServiceResponseResent(requestId, requesterNftId);
195
186
  } else {
196
- emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
187
+ emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
197
188
  }
198
189
  }
199
190
 
@@ -201,14 +192,16 @@ contract OracleService is
201
192
  function cancel(RequestId requestId)
202
193
  external
203
194
  virtual
204
- // restricted() // add authz
195
+ restricted()
205
196
  {
206
197
  (
207
- NftId requesterNftId,
208
- IRegistry.ObjectInfo memory componentInfo,
209
- IInstance instance
210
- ) = _getAndVerifyActiveComponent(COMPONENT());
198
+ IRegistry.ObjectInfo memory info,
199
+ address instanceAddress
200
+ ) = ContractLib.getAndVerifyAnyComponent(
201
+ getRegistry(), msg.sender, true);
211
202
 
203
+ NftId requesterNftId = info.nftId;
204
+ IInstance instance = IInstance(instanceAddress);
212
205
  bool callerIsOracle = false;
213
206
  // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
214
207
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
@@ -218,13 +211,59 @@ contract OracleService is
218
211
 
219
212
  // call oracle component
220
213
  // TODO add check that oracle is active?
221
- address oracleAddress = getRegistry().getObjectInfo(request.oracleNftId).objectAddress;
214
+ address oracleAddress = getRegistry().getObjectAddress(request.oracleNftId);
222
215
  IOracleComponent(oracleAddress).cancel(requestId);
223
216
 
224
217
  emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
225
218
  }
226
219
 
227
220
 
221
+ function _checkRequestParams(
222
+ IRegistry registry,
223
+ NftId oracleNftId,
224
+ IRegistry.ObjectInfo memory requesterInfo,
225
+ Timestamp expiryAt,
226
+ string memory callbackMethodName
227
+ )
228
+ internal
229
+ virtual
230
+ view
231
+ returns (
232
+ NftId requesterNftId,
233
+ IOracleComponent oracle
234
+ )
235
+ {
236
+ // get oracle info
237
+ (IRegistry.ObjectInfo memory oracleInfo,) = ContractLib.getInfoAndInstance(
238
+ registry, oracleNftId, true);
239
+
240
+ // obtain return values
241
+ requesterNftId = requesterInfo.nftId;
242
+ oracle = IOracleComponent(oracleInfo.objectAddress);
243
+
244
+ // check that requester and oracle share same product cluster
245
+ if (requesterInfo.objectType == PRODUCT()) {
246
+ if (oracleInfo.parentNftId != requesterNftId) {
247
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterNftId, oracleInfo.parentNftId);
248
+ }
249
+ } else {
250
+ if (oracleInfo.parentNftId != requesterInfo.parentNftId) {
251
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterInfo.parentNftId, oracleInfo.parentNftId);
252
+ }
253
+ }
254
+
255
+ // check expiriyAt >= now
256
+ if (expiryAt < TimestampLib.current()) {
257
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.current(), expiryAt);
258
+ }
259
+
260
+ // check callbackMethodName.length > 0
261
+ if (bytes(callbackMethodName).length == 0) {
262
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
263
+ }
264
+ }
265
+
266
+
228
267
  function _checkAndGetRequestInfo(
229
268
  IInstance instance,
230
269
  RequestId requestId,
@@ -259,19 +298,13 @@ contract OracleService is
259
298
  }
260
299
 
261
300
  // check expiry
262
- if (info.expiredAt < TimestampLib.blockTimestamp()) {
301
+ if (info.expiredAt < TimestampLib.current()) {
263
302
  revert ErrorOracleServiceRequestExpired(requestId, info.expiredAt);
264
303
  }
265
304
  }
266
305
 
267
306
 
268
- function _getInstanceForComponent(NftId componentNftId)
269
- internal
270
- view
271
- returns(IInstance instance)
272
- {
273
- NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
274
- address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
275
- return IInstance(instanceAddress);
307
+ function _getDomain() internal pure override returns(ObjectType) {
308
+ return ORACLE();
276
309
  }
277
310
  }
@@ -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(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
27
24
  data,
28
25
  salt);
29
26