@etherisc/gif-next 0.0.2-ff1bf36-818 → 0.0.2-ff596ab-857

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 (539) hide show
  1. package/README.md +85 -8
  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/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +408 -104
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +673 -262
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +549 -209
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +196 -441
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +115 -325
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +682 -375
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +218 -130
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +102 -160
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +478 -108
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -67
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +385 -60
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +573 -165
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1034 -311
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1688 -735
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -231
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -105
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +973 -650
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +148 -317
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +116 -109
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +124 -269
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +177 -97
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +173 -326
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +352 -380
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +174 -126
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +247 -121
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +154 -158
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +500 -269
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +152 -308
  135. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +723 -515
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +218 -110
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +357 -173
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +165 -97
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +305 -389
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +458 -253
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +187 -123
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +296 -9
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +335 -19
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +300 -64
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -202
  163. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +286 -21
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +428 -287
  167. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +193 -121
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -137
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  176. package/artifacts/contracts/product/Product.sol/Product.json +278 -362
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +364 -186
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +166 -94
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -48
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +565 -109
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +791 -377
  195. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +136 -290
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +141 -89
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +483 -253
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Component.sol/Component.json +100 -227
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +496 -625
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +188 -130
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +93 -68
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -109
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +42 -6
  233. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  234. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IService.sol/IService.json +84 -2
  244. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  246. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +123 -268
  248. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +48 -7
  250. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  252. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  254. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  256. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  258. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  260. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  262. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  268. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  270. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1512 -167
  272. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
  274. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  275. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  276. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/Staking.sol/Staking.json +1646 -402
  278. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  279. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  280. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +193 -107
  282. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  284. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
  286. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -96
  288. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1645 -790
  290. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  291. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +180 -77
  294. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  299. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  335. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  346. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +118 -79
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  352. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  353. package/contracts/accounting/AccountingService.sol +274 -0
  354. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  355. package/contracts/accounting/IAccountingService.sol +47 -0
  356. package/contracts/authorization/AccessAdmin.sol +458 -269
  357. package/contracts/authorization/AccessAdminLib.sol +396 -0
  358. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  359. package/contracts/authorization/Authorization.sol +159 -207
  360. package/contracts/authorization/IAccess.sol +25 -6
  361. package/contracts/authorization/IAccessAdmin.sol +87 -79
  362. package/contracts/authorization/IAuthorization.sol +9 -37
  363. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  364. package/contracts/authorization/ServiceAuthorization.sol +255 -25
  365. package/contracts/distribution/BasicDistribution.sol +20 -17
  366. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  367. package/contracts/distribution/Distribution.sol +44 -92
  368. package/contracts/distribution/DistributionService.sol +243 -117
  369. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  370. package/contracts/distribution/IDistributionComponent.sol +4 -11
  371. package/contracts/distribution/IDistributionService.sol +46 -26
  372. package/contracts/examples/fire/DamageLevel.sol +59 -0
  373. package/contracts/examples/fire/FirePool.sol +86 -0
  374. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  375. package/contracts/examples/fire/FireProduct.sol +433 -0
  376. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  377. package/contracts/examples/fire/FireUSD.sol +26 -0
  378. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  379. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  381. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  382. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  384. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  385. package/contracts/instance/BundleSet.sol +42 -38
  386. package/contracts/instance/IInstance.sol +100 -18
  387. package/contracts/instance/IInstanceService.sol +59 -34
  388. package/contracts/instance/Instance.sol +189 -71
  389. package/contracts/instance/InstanceAdmin.sol +276 -178
  390. package/contracts/instance/InstanceAuthorizationV3.sol +120 -58
  391. package/contracts/instance/InstanceReader.sol +477 -253
  392. package/contracts/instance/InstanceService.sol +279 -246
  393. package/contracts/instance/InstanceServiceManager.sol +6 -7
  394. package/contracts/instance/InstanceStore.sol +23 -2
  395. package/contracts/instance/RiskSet.sol +126 -0
  396. package/contracts/instance/base/BalanceStore.sol +4 -6
  397. package/contracts/instance/base/ObjectCounter.sol +1 -2
  398. package/contracts/instance/base/ObjectLifecycle.sol +12 -8
  399. package/contracts/instance/base/ObjectSet.sol +31 -33
  400. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  401. package/contracts/instance/module/IBundle.sol +6 -5
  402. package/contracts/instance/module/IComponents.sol +29 -13
  403. package/contracts/instance/module/IDistribution.sol +21 -8
  404. package/contracts/instance/module/IPolicy.sol +49 -28
  405. package/contracts/instance/module/IRisk.sol +5 -0
  406. package/contracts/oracle/BasicOracle.sol +2 -5
  407. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  408. package/contracts/oracle/IOracle.sol +9 -4
  409. package/contracts/oracle/IOracleService.sol +2 -1
  410. package/contracts/oracle/Oracle.sol +9 -21
  411. package/contracts/oracle/OracleService.sol +119 -87
  412. package/contracts/oracle/OracleServiceManager.sol +6 -6
  413. package/contracts/pool/BasicPool.sol +34 -38
  414. package/contracts/pool/BasicPoolAuthorization.sol +34 -11
  415. package/contracts/pool/BundleService.sol +117 -167
  416. package/contracts/pool/BundleServiceManager.sol +6 -6
  417. package/contracts/pool/IBundleService.sol +28 -46
  418. package/contracts/pool/IPoolComponent.sol +19 -15
  419. package/contracts/pool/IPoolService.sol +80 -73
  420. package/contracts/pool/Pool.sol +142 -137
  421. package/contracts/pool/PoolLib.sol +341 -0
  422. package/contracts/pool/PoolService.sol +361 -288
  423. package/contracts/pool/PoolServiceManager.sol +4 -4
  424. package/contracts/product/ApplicationService.sol +111 -34
  425. package/contracts/product/ApplicationServiceManager.sol +4 -4
  426. package/contracts/product/BasicProduct.sol +11 -14
  427. package/contracts/product/BasicProductAuthorization.sol +32 -12
  428. package/contracts/product/ClaimService.sol +383 -169
  429. package/contracts/product/ClaimServiceManager.sol +4 -4
  430. package/contracts/product/IApplicationService.sol +28 -3
  431. package/contracts/product/IClaimService.sol +47 -11
  432. package/contracts/product/IPolicyService.sol +47 -29
  433. package/contracts/product/IPricingService.sol +11 -10
  434. package/contracts/product/IProductComponent.sol +27 -5
  435. package/contracts/product/IRiskService.sol +25 -10
  436. package/contracts/product/PolicyService.sol +375 -314
  437. package/contracts/product/PolicyServiceLib.sol +139 -0
  438. package/contracts/product/PolicyServiceManager.sol +4 -4
  439. package/contracts/product/PricingService.sol +85 -83
  440. package/contracts/product/PricingServiceManager.sol +4 -4
  441. package/contracts/product/Product.sol +177 -94
  442. package/contracts/product/RiskService.sol +130 -37
  443. package/contracts/product/RiskServiceManager.sol +4 -4
  444. package/contracts/registry/ChainNft.sol +72 -40
  445. package/contracts/registry/IRegistry.sol +70 -32
  446. package/contracts/registry/IRegistryService.sol +5 -12
  447. package/contracts/registry/IRelease.sol +29 -0
  448. package/contracts/registry/ITransferInterceptor.sol +1 -2
  449. package/contracts/registry/Registry.sol +367 -207
  450. package/contracts/registry/RegistryAdmin.sol +114 -297
  451. package/contracts/registry/RegistryAuthorization.sol +336 -0
  452. package/contracts/registry/RegistryService.sol +38 -49
  453. package/contracts/registry/RegistryServiceManager.sol +3 -3
  454. package/contracts/registry/ReleaseAdmin.sol +195 -0
  455. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  456. package/contracts/registry/ReleaseRegistry.sol +279 -239
  457. package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
  458. package/contracts/registry/TokenRegistry.sol +61 -59
  459. package/contracts/shared/Component.sol +69 -123
  460. package/contracts/shared/ComponentService.sol +424 -378
  461. package/contracts/shared/ComponentServiceManager.sol +8 -5
  462. package/contracts/shared/ContractLib.sol +312 -0
  463. package/contracts/shared/IComponent.sol +6 -18
  464. package/contracts/shared/IComponentService.sol +43 -40
  465. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  466. package/contracts/shared/IKeyValueStore.sol +1 -1
  467. package/contracts/shared/ILifecycle.sol +3 -1
  468. package/contracts/shared/INftOwnable.sol +4 -0
  469. package/contracts/shared/IPolicyHolder.sol +12 -22
  470. package/contracts/shared/IRegisterable.sol +22 -1
  471. package/contracts/shared/IService.sol +3 -5
  472. package/contracts/shared/InitializableERC165.sol +10 -2
  473. package/contracts/shared/InstanceLinkedComponent.sol +73 -51
  474. package/contracts/shared/KeyValueStore.sol +4 -4
  475. package/contracts/shared/Lifecycle.sol +15 -4
  476. package/contracts/shared/NftOwnable.sol +31 -9
  477. package/contracts/shared/PolicyHolder.sol +18 -54
  478. package/contracts/shared/Registerable.sol +52 -21
  479. package/contracts/shared/RegistryLinked.sol +9 -14
  480. package/contracts/shared/Service.sol +20 -35
  481. package/contracts/shared/TokenHandler.sol +275 -72
  482. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  483. package/contracts/staking/IStaking.sol +271 -71
  484. package/contracts/staking/IStakingService.sol +45 -78
  485. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  486. package/contracts/staking/Staking.sol +523 -222
  487. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +70 -81
  488. package/contracts/staking/StakingManager.sol +12 -9
  489. package/contracts/staking/StakingReader.sol +70 -82
  490. package/contracts/staking/StakingService.sol +63 -149
  491. package/contracts/staking/StakingServiceManager.sol +7 -5
  492. package/contracts/staking/StakingStore.sol +1093 -330
  493. package/contracts/staking/TargetHandler.sol +132 -0
  494. package/contracts/staking/TargetManagerLib.sol +73 -46
  495. package/contracts/type/Amount.sol +19 -0
  496. package/contracts/type/Blocknumber.sol +15 -15
  497. package/contracts/type/ChainId.sol +101 -0
  498. package/contracts/type/ClaimId.sol +6 -1
  499. package/contracts/type/Fee.sol +8 -8
  500. package/contracts/type/Key32.sol +2 -2
  501. package/contracts/type/Key32Set.sol +62 -0
  502. package/contracts/type/NftId.sol +7 -0
  503. package/contracts/type/ObjectType.sol +73 -37
  504. package/contracts/type/PayoutId.sol +10 -10
  505. package/contracts/type/RiskId.sol +38 -6
  506. package/contracts/type/RoleId.sol +61 -55
  507. package/contracts/type/Seconds.sol +27 -0
  508. package/contracts/type/Selector.sol +5 -0
  509. package/contracts/type/StateId.sol +15 -1
  510. package/contracts/type/String.sol +12 -0
  511. package/contracts/type/Timestamp.sol +4 -7
  512. package/contracts/type/UFixed.sol +38 -126
  513. package/contracts/type/Version.sol +54 -5
  514. package/contracts/upgradeability/IVersionable.sol +3 -0
  515. package/contracts/upgradeability/ProxyManager.sol +93 -45
  516. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  517. package/contracts/upgradeability/Versionable.sol +8 -5
  518. package/package.json +5 -4
  519. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  520. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  521. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  522. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  523. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  524. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  525. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  526. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  527. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  528. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  529. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -387
  530. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  531. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
  532. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  533. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  534. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  535. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  536. package/contracts/instance/module/IAccess.sol +0 -46
  537. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  538. package/contracts/shared/InitializableCustom.sol +0 -177
  539. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -11,74 +11,95 @@ import {Timestamp} from "../../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicy {
13
13
 
14
- struct Premium {
14
+ struct PremiumInfo {
15
+ // slot 0
15
16
  // premium splitting per target wallet
16
17
  Amount productFeeAmount;
17
18
  Amount distributionFeeAndCommissionAmount;
19
+ // slot 1
18
20
  Amount poolPremiumAndFeeAmount;
19
21
 
20
22
  // detailed positions
21
23
  // this is the net premium calculated by the product
22
- uint256 netPremiumAmount;
24
+ Amount netPremiumAmount;
25
+ // slot 2
23
26
  // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
24
- uint256 fullPremiumAmount;
27
+ Amount fullPremiumAmount;
25
28
  // effective premium = fullPremium - discount
26
- uint256 premiumAmount;
27
- uint256 productFeeFixAmount;
28
- uint256 poolFeeFixAmount;
29
- uint256 bundleFeeFixAmount;
30
- uint256 distributionFeeFixAmount;
31
- uint256 productFeeVarAmount;
32
- uint256 poolFeeVarAmount;
33
- uint256 bundleFeeVarAmount;
34
- uint256 distributionFeeVarAmount;
35
- uint256 distributionOwnerFeeFixAmount;
29
+ Amount premiumAmount;
30
+ // slot 3
31
+ Amount productFeeFixAmount;
32
+ Amount poolFeeFixAmount;
33
+ // slot 4
34
+ Amount bundleFeeFixAmount;
35
+ Amount distributionFeeFixAmount;
36
+ // slot 5
37
+ Amount productFeeVarAmount;
38
+ Amount poolFeeVarAmount;
39
+ // slot 6
40
+ Amount bundleFeeVarAmount;
41
+ Amount distributionFeeVarAmount;
42
+ // slot 7
43
+ Amount distributionOwnerFeeFixAmount;
36
44
  // this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
37
- uint256 distributionOwnerFeeVarAmount;
45
+ Amount distributionOwnerFeeVarAmount;
46
+ // slot 8
38
47
  // this value is based on distributor type referenced in the referral
39
- uint256 commissionAmount;
48
+ Amount commissionAmount;
40
49
  // this is based on referral used
41
- uint256 discountAmount;
50
+ Amount discountAmount;
42
51
  }
43
52
 
44
53
  /// @dev policy data for the full policy lifecycle
45
54
  struct PolicyInfo {
55
+ // slot 0
46
56
  NftId productNftId;
47
57
  NftId bundleNftId;
48
- ReferralId referralId;
49
58
  RiskId riskId;
59
+ // slot 1
50
60
  Amount sumInsuredAmount;
51
61
  Amount premiumAmount; // expected premium at application time
52
- Amount premiumPaidAmount; // actual paid premium
53
- Seconds lifetime;
54
- // policy application data, no changes after applying for a policy
55
- bytes applicationData;
56
- bytes processData;
62
+ ReferralId referralId;
63
+ // slot 2
57
64
  uint16 claimsCount;
58
65
  uint16 openClaimsCount;
59
66
  Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
67
  Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
68
+ // slot 3
61
69
  Timestamp activatedAt; // time of underwriting
70
+ Seconds lifetime;
62
71
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
63
72
  Timestamp closedAt; // no locked capital (or declinedAt)
73
+ // slot 4
74
+ bytes applicationData;
75
+ // slot 5
76
+ bytes processData;
64
77
  }
65
78
 
66
79
  // claimId neeeds to be encoded policyNftId:claimId combination
67
80
  struct ClaimInfo {
81
+ // slot 0
68
82
  Amount claimAmount;
69
83
  Amount paidAmount;
70
- uint8 payoutsCount;
71
- uint8 openPayoutsCount;
72
- bytes submissionData; // claim submission data, no changes after submitting the claim
73
- bytes processData; // data that may include information supporting confirm or decline
74
84
  Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
85
+ uint24 payoutsCount;
86
+ // slot 1
87
+ uint24 openPayoutsCount;
88
+ // slot 2
89
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
90
+ // slot 3
91
+ bytes processData; // use case specific data that may include information supporting confirm or decline
75
92
  }
76
93
 
77
94
  // claimId neeeds to be encoded policyNftId:claimId combination
78
95
  struct PayoutInfo {
96
+ // slot 0
79
97
  ClaimId claimId;
80
98
  Amount amount;
81
- bytes data;
82
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
99
+ Timestamp paidAt; // timestamp for actual payout
100
+ // slot 1
101
+ address beneficiary; // for address(0) beneficiary is policy nft owner
102
+ // slot 2
103
+ bytes data; // use case specific supporting data
83
104
  }
84
105
  }
@@ -2,10 +2,15 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../../type/NftId.sol";
5
+ import {Timestamp} from "../../type/Timestamp.sol";
5
6
 
6
7
  interface IRisk {
8
+
7
9
  struct RiskInfo {
10
+ // slot 0
8
11
  NftId productNftId;
12
+ Timestamp createdAt;
13
+ // slot 1
9
14
  bytes data;
10
15
  }
11
16
  }
@@ -27,22 +27,19 @@ contract BasicOracle is
27
27
  NftId instanceNftId,
28
28
  IAuthorization authorization,
29
29
  address initialOwner,
30
- string memory name,
31
- address token
30
+ string memory name
32
31
  )
33
32
  internal
34
33
  virtual
35
34
  onlyInitializing()
36
35
  {
37
36
 
38
- _initializeOracle(
37
+ __Oracle_init(
39
38
  registry,
40
39
  instanceNftId,
41
40
  authorization,
42
41
  initialOwner,
43
42
  name,
44
- token,
45
- "",
46
43
  "");
47
44
  }
48
45
  }
@@ -14,19 +14,26 @@ contract BasicOracleAuthorization
14
14
  is Authorization
15
15
  {
16
16
 
17
- constructor(string memory componentName)
18
- Authorization(componentName)
17
+ constructor(
18
+ string memory componentName,
19
+ string memory commitHash
20
+ )
21
+ Authorization(
22
+ componentName,
23
+ ORACLE(),
24
+ 3,
25
+ commitHash,
26
+ true,
27
+ false)
19
28
  {}
20
29
 
21
- function _setupTargets()
30
+ function _setupServiceTargets()
22
31
  internal
23
32
  virtual override
24
33
  {
25
- // basic component target
26
- _addComponentTargetWithRole(ORACLE());
34
+ _authorizeServiceDomain(ORACLE(), address(15));
27
35
  }
28
36
 
29
-
30
37
  function _setupTargetAuthorizations()
31
38
  internal
32
39
  virtual override
@@ -34,12 +41,12 @@ contract BasicOracleAuthorization
34
41
  IAccess.FunctionInfo[] storage functions;
35
42
 
36
43
  // authorize public role (open access to any account, only allows to lock target)
37
- functions = _authorizeForTarget(getTargetName(), getServiceRole(ORACLE()));
44
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
38
45
  _authorize(functions, IOracle.request.selector, "request");
39
46
  _authorize(functions, IOracle.cancel.selector, "cancel");
40
47
 
41
48
  // authorize public role (open access to any account, only allows to lock target)
42
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
49
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
43
50
  _authorize(functions, BasicOracle.respond.selector, "respond");
44
51
  }
45
52
  }
@@ -9,14 +9,19 @@ import {Timestamp} from "../type/Timestamp.sol";
9
9
  interface IOracle {
10
10
 
11
11
  struct RequestInfo {
12
+ // slot 0
12
13
  NftId requesterNftId; // originator of the request
13
- string callbackMethodName; // callback function of the requestor to call to provide response data
14
14
  NftId oracleNftId; // responsible oracle component
15
- bytes requestData;
16
- bytes responseData;
15
+ bool isCancelled;
17
16
  Timestamp respondedAt; // response timestamp
17
+ // slot 1
18
18
  Timestamp expiredAt; // expiry timestamp
19
- bool isCancelled;
19
+ // slot 2
20
+ string callbackMethodName; // callback function of the requestor to call to provide response data
21
+ // slot 3
22
+ bytes requestData;
23
+ // slot 4
24
+ bytes responseData;
20
25
  }
21
26
 
22
27
 
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IService} from "../shared/IService.sol";
5
5
  import {NftId} from "../type/NftId.sol";
6
+ import {ObjectType} from "../type/ObjectType.sol";
6
7
  import {RequestId} from "../type/RequestId.sol";
7
8
  import {StateId} from "../type/StateId.sol";
8
9
  import {Timestamp} from "../type/Timestamp.sol";
@@ -17,7 +18,7 @@ interface IOracleService is IService {
17
18
  event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
18
19
 
19
20
  // create request
20
- error ErrorOracleServiceInstanceMismatch(NftId expectedInstanceNftId, NftId oracleInstanceNftId);
21
+ error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
21
22
  error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
22
23
  error ErrorOracleServiceCallbackMethodNameEmpty();
23
24
 
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
5
+ import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
8
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
@@ -27,15 +27,6 @@ abstract contract Oracle is
27
27
  }
28
28
 
29
29
 
30
- function register()
31
- external
32
- virtual
33
- onlyOwner()
34
- {
35
- _getOracleStorage()._componentService.registerOracle();
36
- }
37
-
38
-
39
30
  function request(
40
31
  RequestId requestId,
41
32
  NftId requesterId,
@@ -71,49 +62,46 @@ abstract contract Oracle is
71
62
  return false;
72
63
  }
73
64
 
65
+ /// @dev Not relevant for oracle components
74
66
  function withdrawFees(Amount amount)
75
67
  external
76
68
  virtual
77
69
  override(IInstanceLinkedComponent, InstanceLinkedComponent)
78
70
  onlyOwner()
79
71
  restricted()
80
- returns (Amount withdrawnAmount)
72
+ returns (Amount)
81
73
  {
82
74
  revert ErrorOracleNotImplemented("withdrawFees");
83
75
  }
84
76
 
85
77
 
86
- function _initializeOracle(
78
+ function __Oracle_init(
87
79
  address registry,
88
- NftId instanceNftId,
80
+ NftId productNftId,
89
81
  IAuthorization authorization,
90
82
  address initialOwner,
91
83
  string memory name,
92
- address token,
93
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
94
84
  bytes memory componentData // component specifidc data
95
85
  )
96
86
  internal
97
87
  virtual
98
88
  onlyInitializing()
99
89
  {
100
- _initializeInstanceLinkedComponent(
90
+ __InstanceLinkedComponent_init(
101
91
  registry,
102
- instanceNftId,
92
+ productNftId,
103
93
  name,
104
- token,
105
94
  ORACLE(),
106
95
  authorization,
107
96
  true,
108
97
  initialOwner,
109
- registryData,
110
98
  componentData);
111
99
 
112
100
  OracleStorage storage $ = _getOracleStorage();
113
- $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
114
101
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
102
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
115
103
 
116
- registerInterface(type(IOracleComponent).interfaceId);
104
+ _registerInterface(type(IOracleComponent).interfaceId);
117
105
  }
118
106
 
119
107
 
@@ -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,14 +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);
34
+ (
35
+ address authority,
36
+ address registry
37
+ ) = abi.decode(data, (address, address));
38
+
39
+ __Service_init(authority, registry, owner);
40
+ _registerInterface(type(IOracleService).interfaceId);
38
41
  }
39
42
 
40
43
  function request(
@@ -45,63 +48,51 @@ contract OracleService is
45
48
  )
46
49
  external
47
50
  virtual
48
- // restricted() // add authz
49
- returns (
50
- RequestId requestId
51
- )
51
+ restricted()
52
+ onlyNftOfType(oracleNftId, ORACLE())
53
+ returns (RequestId requestId)
52
54
  {
55
+ // checks
56
+ // get and check active caller
53
57
  (
54
- NftId componentNftId,
55
- IRegistry.ObjectInfo memory componentInfo,
56
- IInstance instance
57
- ) = _getAndVerifyActiveComponent(COMPONENT());
58
+ IRegistry.ObjectInfo memory requesterInfo,
59
+ address instance
60
+ ) = ContractLib.getAndVerifyAnyComponent(
61
+ getRegistry(), msg.sender, true);
58
62
 
59
- // oracleNftId exists and is active oracle
60
63
  (
61
- IRegistry.ObjectInfo memory oracleInfo,
62
- ) = _getAndVerifyComponentInfo(
63
- oracleNftId,
64
- ORACLE(),
65
- true); // only active
66
-
67
- // check that requester and oracle share same instance
68
- if (componentInfo.parentNftId != oracleInfo.parentNftId) {
69
- revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
70
- }
71
-
72
- // check expiriyAt >= now
73
- if (expiryAt < TimestampLib.blockTimestamp()) {
74
- revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
75
- }
76
-
77
- // check callbackMethodName.length > 0
78
- if (bytes(callbackMethodName).length == 0) {
79
- 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);
80
85
  }
81
86
 
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);
87
+ emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
96
88
 
97
- // call oracle component
98
- IOracleComponent(oracleInfo.objectAddress).request(
89
+ // interactions
90
+ // callback to oracle component
91
+ oracle.request(
99
92
  requestId,
100
- componentNftId,
93
+ requesterNftId,
101
94
  requestData,
102
95
  expiryAt);
103
-
104
- emit LogOracleServiceRequestCreated(requestId, componentNftId, oracleNftId, expiryAt);
105
96
  }
106
97
 
107
98
 
@@ -113,19 +104,21 @@ contract OracleService is
113
104
  )
114
105
  external
115
106
  virtual
116
- // restricted() // add authz
107
+ restricted()
117
108
  returns (bool success)
118
109
  {
119
110
  (
120
- NftId oracleNftId,
121
- IRegistry.ObjectInfo memory componentInfo,
122
- IInstance instance
123
- ) = _getAndVerifyActiveComponent(ORACLE());
111
+ IRegistry.ObjectInfo memory info,
112
+ address instanceAddress
113
+ ) = ContractLib.getAndVerifyComponent(
114
+ getRegistry(), msg.sender, ORACLE(), true);
124
115
 
116
+ NftId oracleNftId = info.nftId;
117
+ IInstance instance = IInstance(instanceAddress);
125
118
  bool callerIsOracle = true;
126
119
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
127
120
  request.responseData = responseData;
128
- request.respondedAt = TimestampLib.blockTimestamp();
121
+ request.respondedAt = TimestampLib.current();
129
122
 
130
123
  instance.getInstanceStore().updateRequest(
131
124
  requestId, request, KEEP_STATE());
@@ -160,14 +153,16 @@ contract OracleService is
160
153
  function resend(RequestId requestId)
161
154
  external
162
155
  virtual
163
- // restricted() // add authz
156
+ restricted()
164
157
  {
165
158
  (
166
- NftId requesterNftId,
167
- IRegistry.ObjectInfo memory requesterInfo,
168
- IInstance instance
169
- ) = _getAndVerifyActiveComponent(COMPONENT());
159
+ IRegistry.ObjectInfo memory info,
160
+ address instanceAddress
161
+ ) = ContractLib.getAndVerifyAnyComponent(
162
+ getRegistry(), msg.sender, true);
170
163
 
164
+ NftId requesterNftId = info.nftId;
165
+ IInstance instance = IInstance(instanceAddress);
171
166
  bool callerIsOracle = false;
172
167
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
173
168
 
@@ -178,7 +173,7 @@ contract OracleService is
178
173
  "(uint64,bytes)"
179
174
  ));
180
175
 
181
- (bool success, bytes memory returnData) = requesterInfo.objectAddress.call(
176
+ (bool success, bytes memory returnData) = info.objectAddress.call(
182
177
  abi.encodeWithSignature(
183
178
  functionSignature,
184
179
  requestId,
@@ -189,7 +184,7 @@ contract OracleService is
189
184
  instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
190
185
  emit LogOracleServiceResponseResent(requestId, requesterNftId);
191
186
  } else {
192
- emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
187
+ emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
193
188
  }
194
189
  }
195
190
 
@@ -197,14 +192,16 @@ contract OracleService is
197
192
  function cancel(RequestId requestId)
198
193
  external
199
194
  virtual
200
- // restricted() // add authz
195
+ restricted()
201
196
  {
202
197
  (
203
- NftId requesterNftId,
204
- IRegistry.ObjectInfo memory componentInfo,
205
- IInstance instance
206
- ) = _getAndVerifyActiveComponent(COMPONENT());
198
+ IRegistry.ObjectInfo memory info,
199
+ address instanceAddress
200
+ ) = ContractLib.getAndVerifyAnyComponent(
201
+ getRegistry(), msg.sender, true);
207
202
 
203
+ NftId requesterNftId = info.nftId;
204
+ IInstance instance = IInstance(instanceAddress);
208
205
  bool callerIsOracle = false;
209
206
  // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
210
207
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
@@ -214,13 +211,59 @@ contract OracleService is
214
211
 
215
212
  // call oracle component
216
213
  // TODO add check that oracle is active?
217
- address oracleAddress = getRegistry().getObjectInfo(request.oracleNftId).objectAddress;
214
+ address oracleAddress = getRegistry().getObjectAddress(request.oracleNftId);
218
215
  IOracleComponent(oracleAddress).cancel(requestId);
219
216
 
220
217
  emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
221
218
  }
222
219
 
223
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
+
224
267
  function _checkAndGetRequestInfo(
225
268
  IInstance instance,
226
269
  RequestId requestId,
@@ -255,23 +298,12 @@ contract OracleService is
255
298
  }
256
299
 
257
300
  // check expiry
258
- if (info.expiredAt < TimestampLib.blockTimestamp()) {
301
+ if (info.expiredAt < TimestampLib.current()) {
259
302
  revert ErrorOracleServiceRequestExpired(requestId, info.expiredAt);
260
303
  }
261
304
  }
262
305
 
263
306
 
264
- function _getInstanceForComponent(NftId componentNftId)
265
- internal
266
- view
267
- returns(IInstance instance)
268
- {
269
- NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
270
- address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
271
- return IInstance(instanceAddress);
272
- }
273
-
274
-
275
307
  function _getDomain() internal pure override returns(ObjectType) {
276
308
  return ORACLE();
277
309
  }