@etherisc/gif-next 0.0.2-7177fd8-761 → 0.0.2-71cf987-554

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 (452) hide show
  1. package/README.md +5 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +121 -70
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +124 -5
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -37
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  13. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +157 -273
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +91 -239
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +188 -290
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +107 -123
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +78 -92
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -31
  31. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  32. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  33. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  34. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  35. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  36. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  37. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  38. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  39. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  41. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  44. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  51. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  52. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  53. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
  55. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
  57. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  58. package/artifacts/contracts/instance/Instance.sol/Instance.json +56 -123
  59. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +248 -164
  61. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
  63. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +446 -81
  65. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +85 -242
  67. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +79 -87
  69. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +335 -126
  71. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  72. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  73. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  74. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  76. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  78. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  80. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  86. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  88. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +131 -247
  89. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  90. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  91. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  92. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +66 -80
  94. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
  96. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +79 -227
  98. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
  100. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
  102. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -235
  104. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
  106. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +170 -226
  108. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +114 -110
  110. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
  112. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  113. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +91 -77
  114. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +232 -131
  116. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  117. package/artifacts/contracts/pool/Pool.sol/Pool.json +102 -222
  118. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +300 -319
  120. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -97
  122. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +71 -152
  124. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -84
  126. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  127. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +136 -243
  128. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  130. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  131. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +280 -235
  132. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +116 -112
  134. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
  136. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +161 -7
  138. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  139. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +141 -16
  140. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
  142. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  143. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -97
  144. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  145. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
  146. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -295
  148. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +107 -131
  150. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  151. package/artifacts/contracts/product/PricingService.sol/PricingService.json +199 -309
  152. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
  154. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  155. package/artifacts/contracts/product/Product.sol/Product.json +136 -243
  156. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  157. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  158. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  160. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  161. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  162. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +289 -32
  164. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  165. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
  166. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  168. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  169. package/artifacts/contracts/registry/Registry.sol/Registry.json +495 -93
  170. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +219 -166
  172. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
  174. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
  176. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  177. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1696 -0
  178. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  180. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +377 -235
  182. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  184. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  186. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  187. package/artifacts/contracts/shared/Component.sol/Component.json +68 -201
  188. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +341 -324
  190. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +122 -132
  192. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  193. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
  194. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  196. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -54
  198. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
  200. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +66 -80
  202. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  204. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  206. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  208. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  210. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  212. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  213. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  215. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  216. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  217. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  218. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +79 -227
  219. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  220. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  221. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  222. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  223. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  224. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  225. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  227. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  228. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  229. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
  231. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  232. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  233. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  234. package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
  235. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  236. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +288 -16
  237. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  238. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  239. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  240. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -55
  241. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  242. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
  243. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +63 -93
  245. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  246. package/artifacts/contracts/staking/Staking.sol/Staking.json +167 -270
  247. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  249. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  250. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +100 -97
  251. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  252. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  253. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
  255. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  256. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
  257. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  258. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +169 -128
  259. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  260. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +54 -23
  261. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  262. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
  264. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  269. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  271. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  273. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  275. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  276. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  277. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  279. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  281. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  283. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  285. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  287. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  289. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  291. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  295. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  298. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  300. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
  302. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  304. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  305. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  306. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -70
  307. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  308. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  309. package/contracts/authorization/AccessAdmin.sol +130 -120
  310. package/contracts/authorization/AccessManagerCloneable.sol +67 -3
  311. package/contracts/authorization/Authorization.sol +111 -40
  312. package/contracts/authorization/IAccess.sol +1 -0
  313. package/contracts/authorization/IAccessAdmin.sol +4 -4
  314. package/contracts/authorization/IAuthorization.sol +13 -7
  315. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  316. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  317. package/contracts/distribution/BasicDistribution.sol +2 -1
  318. package/contracts/distribution/Distribution.sol +7 -17
  319. package/contracts/distribution/DistributionService.sol +82 -50
  320. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  321. package/contracts/distribution/IDistributionComponent.sol +1 -1
  322. package/contracts/distribution/IDistributionService.sol +8 -2
  323. package/contracts/examples/fire/DamageLevel.sol +59 -0
  324. package/contracts/examples/fire/FirePool.sol +73 -0
  325. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  326. package/contracts/examples/fire/FireProduct.sol +415 -0
  327. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  328. package/contracts/examples/fire/FireUSD.sol +26 -0
  329. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  330. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  331. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  332. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  333. package/contracts/instance/IInstance.sol +10 -30
  334. package/contracts/instance/IInstanceService.sol +0 -20
  335. package/contracts/instance/Instance.sol +29 -51
  336. package/contracts/instance/InstanceAdmin.sol +102 -73
  337. package/contracts/instance/InstanceAuthorizationV3.sol +11 -21
  338. package/contracts/instance/InstanceReader.sol +106 -19
  339. package/contracts/instance/InstanceService.sol +33 -88
  340. package/contracts/instance/InstanceServiceManager.sol +6 -7
  341. package/contracts/instance/InstanceStore.sol +11 -1
  342. package/contracts/instance/base/ObjectLifecycle.sol +7 -1
  343. package/contracts/instance/module/IComponents.sol +10 -5
  344. package/contracts/instance/module/IPolicy.sol +23 -23
  345. package/contracts/oracle/BasicOracle.sol +0 -1
  346. package/contracts/oracle/IOracleService.sol +2 -1
  347. package/contracts/oracle/Oracle.sol +6 -16
  348. package/contracts/oracle/OracleService.sol +47 -34
  349. package/contracts/oracle/OracleServiceManager.sol +6 -6
  350. package/contracts/pool/BasicPool.sol +14 -26
  351. package/contracts/pool/BasicPoolAuthorization.sol +0 -1
  352. package/contracts/pool/BundleService.sol +92 -36
  353. package/contracts/pool/BundleServiceManager.sol +6 -6
  354. package/contracts/pool/IBundleService.sol +10 -0
  355. package/contracts/pool/IPoolComponent.sol +18 -8
  356. package/contracts/pool/IPoolService.sol +49 -29
  357. package/contracts/pool/Pool.sol +53 -46
  358. package/contracts/pool/PoolService.sol +156 -136
  359. package/contracts/pool/PoolServiceManager.sol +4 -4
  360. package/contracts/product/ApplicationService.sol +22 -13
  361. package/contracts/product/ApplicationServiceManager.sol +4 -4
  362. package/contracts/product/BasicProduct.sol +7 -6
  363. package/contracts/product/BasicProductAuthorization.sol +0 -1
  364. package/contracts/product/ClaimService.sol +310 -115
  365. package/contracts/product/ClaimServiceManager.sol +4 -4
  366. package/contracts/product/IClaimService.sol +30 -7
  367. package/contracts/product/IPolicyService.sol +16 -20
  368. package/contracts/product/IPricingService.sol +10 -10
  369. package/contracts/product/IProductComponent.sol +23 -4
  370. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -2
  371. package/contracts/product/PolicyService.sol +220 -129
  372. package/contracts/product/PolicyServiceManager.sol +4 -4
  373. package/contracts/product/PricingService.sol +49 -53
  374. package/contracts/product/PricingServiceManager.sol +3 -3
  375. package/contracts/product/Product.sol +108 -66
  376. package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
  377. package/contracts/product/RiskServiceManager.sol +39 -0
  378. package/contracts/registry/ChainNft.sol +68 -38
  379. package/contracts/registry/IRegistry.sol +57 -18
  380. package/contracts/registry/IRegistryService.sol +5 -12
  381. package/contracts/registry/ITransferInterceptor.sol +1 -2
  382. package/contracts/registry/Registry.sol +342 -201
  383. package/contracts/registry/RegistryAdmin.sol +147 -179
  384. package/contracts/registry/RegistryService.sol +35 -46
  385. package/contracts/registry/RegistryServiceManager.sol +2 -2
  386. package/contracts/registry/ReleaseAdmin.sol +248 -0
  387. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  388. package/contracts/registry/ReleaseRegistry.sol +223 -203
  389. package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
  390. package/contracts/shared/Component.sol +36 -52
  391. package/contracts/shared/ComponentService.sol +245 -140
  392. package/contracts/shared/ComponentServiceManager.sol +8 -5
  393. package/contracts/shared/ComponentVerifyingService.sol +23 -14
  394. package/contracts/shared/ContractLib.sol +38 -0
  395. package/contracts/shared/IComponent.sol +6 -3
  396. package/contracts/shared/IComponentService.sol +25 -13
  397. package/contracts/shared/IInstanceLinkedComponent.sol +2 -17
  398. package/contracts/shared/ILifecycle.sol +3 -1
  399. package/contracts/shared/INftOwnable.sol +2 -0
  400. package/contracts/shared/IPolicyHolder.sol +12 -22
  401. package/contracts/shared/IRegisterable.sol +11 -0
  402. package/contracts/shared/InitializableERC165.sol +2 -2
  403. package/contracts/shared/InstanceLinkedComponent.sol +72 -31
  404. package/contracts/shared/KeyValueStore.sol +1 -1
  405. package/contracts/shared/Lifecycle.sol +15 -4
  406. package/contracts/shared/NftOwnable.sol +27 -7
  407. package/contracts/shared/PolicyHolder.sol +15 -52
  408. package/contracts/shared/Registerable.sol +19 -9
  409. package/contracts/shared/RegistryLinked.sol +3 -2
  410. package/contracts/shared/Service.sol +20 -18
  411. package/contracts/shared/TokenHandler.sol +99 -22
  412. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  413. package/contracts/staking/IStaking.sol +2 -1
  414. package/contracts/staking/IStakingService.sol +0 -3
  415. package/contracts/staking/StakeManagerLib.sol +18 -25
  416. package/contracts/staking/Staking.sol +13 -32
  417. package/contracts/staking/StakingManager.sol +8 -6
  418. package/contracts/staking/StakingReader.sol +12 -5
  419. package/contracts/staking/StakingService.sol +17 -17
  420. package/contracts/staking/StakingServiceManager.sol +2 -2
  421. package/contracts/staking/TargetManagerLib.sol +7 -3
  422. package/contracts/type/Amount.sol +15 -0
  423. package/contracts/type/ClaimId.sol +6 -1
  424. package/contracts/type/NftId.sol +1 -0
  425. package/contracts/type/ObjectType.sol +16 -11
  426. package/contracts/type/PayoutId.sol +10 -10
  427. package/contracts/type/RiskId.sol +15 -1
  428. package/contracts/type/RoleId.sol +2 -11
  429. package/contracts/type/Seconds.sol +8 -0
  430. package/contracts/type/StateId.sol +15 -1
  431. package/contracts/type/UFixed.sol +4 -0
  432. package/contracts/upgradeability/ProxyManager.sol +68 -34
  433. package/contracts/upgradeability/Versionable.sol +2 -2
  434. package/package.json +2 -1
  435. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  436. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  437. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  438. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  439. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  440. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  441. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  442. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  443. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  444. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  445. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  446. package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +0 -4
  447. package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +0 -42
  448. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  449. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  450. package/contracts/product/ProductServiceManager.sol +0 -39
  451. package/contracts/shared/InitializableCustom.sol +0 -177
  452. package/contracts/shared/TokenTransferLib.sol +0 -60
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
6
 
7
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
8
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
9
  import {Amount} from "../type/Amount.sol";
9
10
  import {BundleSet} from "./BundleSet.sol";
@@ -12,7 +13,7 @@ import {NftId} from "../type/NftId.sol";
12
13
  import {RoleId} from "../type/RoleId.sol";
13
14
  import {SecondsLib} from "../type/Seconds.sol";
14
15
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
15
- import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
16
+ import {ADMIN_ROLE} from "../type/RoleId.sol";
16
17
  import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
17
18
 
18
19
  import {Service} from "../shared/Service.sol";
@@ -29,7 +30,6 @@ import {IStakingService} from "../staking/IStakingService.sol";
29
30
  import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
30
31
 
31
32
  import {Instance} from "./Instance.sol";
32
- import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
33
33
  import {IInstance} from "./IInstance.sol";
34
34
  import {InstanceAdmin} from "./InstanceAdmin.sol";
35
35
  import {IInstanceService} from "./IInstanceService.sol";
@@ -60,7 +60,7 @@ contract InstanceService is
60
60
 
61
61
  modifier onlyInstance() {
62
62
  address instanceAddress = msg.sender;
63
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
63
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
64
64
  if (instanceNftId.eqz()) {
65
65
  revert ErrorInstanceServiceNotRegistered(instanceAddress);
66
66
  }
@@ -70,7 +70,7 @@ contract InstanceService is
70
70
  revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
71
71
  }
72
72
 
73
- VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
73
+ VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
74
74
  if (instanceVersion != getVersion().toMajorPart()) {
75
75
  revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
76
76
  }
@@ -119,7 +119,11 @@ contract InstanceService is
119
119
  TargetManagerLib.getDefaultRewardRate());
120
120
 
121
121
  // MUST be set after instance is set up and registered
122
- instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
122
+ IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
123
+ instanceAdmin.completeSetup(
124
+ address(clonedInstance),
125
+ address(instanceAuthorization),
126
+ getVersion().toMajorPart());
123
127
 
124
128
  emit LogInstanceCloned(
125
129
  clonedInstanceNftId,
@@ -132,7 +136,7 @@ contract InstanceService is
132
136
  virtual
133
137
  onlyInstance()
134
138
  {
135
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
139
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
136
140
  _stakingService.setInstanceLockingPeriod(
137
141
  instanceNftId,
138
142
  stakeLockingPeriod);
@@ -144,7 +148,7 @@ contract InstanceService is
144
148
  virtual
145
149
  onlyInstance()
146
150
  {
147
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
151
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
148
152
  _stakingService.setInstanceRewardRate(
149
153
  instanceNftId,
150
154
  rewardRate);
@@ -156,7 +160,7 @@ contract InstanceService is
156
160
  virtual
157
161
  onlyInstance()
158
162
  {
159
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
163
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
160
164
  _stakingService.refillInstanceRewardReserves(
161
165
  instanceNftId,
162
166
  rewardProvider,
@@ -170,7 +174,7 @@ contract InstanceService is
170
174
  onlyInstance()
171
175
  returns (Amount newBalance)
172
176
  {
173
- NftId instanceNftId = getRegistry().getNftId(msg.sender);
177
+ NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
174
178
  _stakingService.withdrawInstanceRewardReserves(
175
179
  instanceNftId,
176
180
  dipAmount);
@@ -193,8 +197,7 @@ contract InstanceService is
193
197
  NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
194
198
 
195
199
  IInstance instance = IInstance(
196
- registry.getObjectInfo(
197
- instanceNftId).objectAddress);
200
+ registry.getObjectAddress(instanceNftId));
198
201
 
199
202
  // no revert in case already locked
200
203
  // TODO refactor/implement
@@ -268,6 +271,7 @@ contract InstanceService is
268
271
  function upgradeInstanceReader(NftId instanceNftId)
269
272
  external
270
273
  onlyInstanceOwner(instanceNftId)
274
+ onlyNftOfType(instanceNftId, INSTANCE())
271
275
  {
272
276
  IRegistry registry = getRegistry();
273
277
  IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
@@ -278,67 +282,6 @@ contract InstanceService is
278
282
  instance.setInstanceReader(upgradedInstanceReaderClone);
279
283
  }
280
284
 
281
-
282
- function createGifTarget(
283
- NftId instanceNftId,
284
- address targetAddress,
285
- string memory targetName,
286
- bytes4[][] memory selectors,
287
- RoleId[] memory roles
288
- )
289
- external
290
- virtual
291
- restricted()
292
- {
293
- _createGifTarget(
294
- instanceNftId,
295
- targetAddress,
296
- targetName,
297
- roles,
298
- selectors
299
- );
300
- }
301
-
302
-
303
- function initializeAuthorization(
304
- NftId instanceNftId,
305
- IInstanceLinkedComponent component
306
- )
307
- external
308
- virtual
309
- restricted()
310
- {
311
- (IInstance instance, ) = _validateInstanceAndComponent(
312
- instanceNftId,
313
- address(component));
314
-
315
- InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
316
- instanceAdmin.initializeComponentAuthorization(
317
- address(component),
318
- component.getAuthorization());
319
- }
320
-
321
-
322
- function createComponentTarget(
323
- NftId instanceNftId,
324
- address targetAddress,
325
- string memory targetName,
326
- bytes4[][] memory selectors,
327
- RoleId[] memory roles
328
- )
329
- external
330
- virtual
331
- restricted()
332
- {
333
- _createGifTarget(
334
- instanceNftId,
335
- targetAddress,
336
- targetName,
337
- roles,
338
- selectors
339
- );
340
- }
341
-
342
285
  /// @dev create new cloned instance admin
343
286
  /// function used to setup a new instance
344
287
  function _createInstanceAdmin()
@@ -347,17 +290,13 @@ contract InstanceService is
347
290
  returns (InstanceAdmin clonedInstanceAdmin)
348
291
  {
349
292
  // start with setting up a new OZ access manager
293
+ // TODO consider _masterInstanceAdmin.authority() instead of _masterAccessManager
350
294
  AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
351
295
  Clones.clone(_masterAccessManager));
352
296
 
353
297
  // set up the instance admin
354
298
  clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
355
- clonedAccessManager.initialize(
356
- address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
357
-
358
- clonedInstanceAdmin.initialize(
359
- clonedAccessManager,
360
- InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
299
+ clonedInstanceAdmin.initialize(clonedAccessManager);
361
300
  }
362
301
 
363
302
 
@@ -422,21 +361,20 @@ contract InstanceService is
422
361
  bytes memory data
423
362
  )
424
363
  internal
425
- initializer
426
364
  virtual override
365
+ initializer()
427
366
  {
428
367
  (
429
- address registryAddress,,
430
- //address managerAddress
368
+ address registryAddress,
431
369
  address authority
432
- ) = abi.decode(data, (address, address, address));
370
+ ) = abi.decode(data, (address, address));
433
371
 
434
- initializeService(registryAddress, authority, owner);
372
+ _initializeService(registryAddress, authority, owner);
435
373
 
436
374
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
437
375
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
438
376
 
439
- registerInterface(type(IInstanceService).interfaceId);
377
+ _registerInterface(type(IInstanceService).interfaceId);
440
378
  }
441
379
 
442
380
 
@@ -451,13 +389,20 @@ contract InstanceService is
451
389
  revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
452
390
  }
453
391
 
454
- IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
455
- if(componentInfo.parentNftId != instanceNftId) {
456
- revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
392
+ if (registry.getNftIdForAddress(componentAddress).gtz()) {
393
+ IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
394
+
395
+ if(componentInfo.parentNftId != instanceNftId) {
396
+ revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
397
+ }
398
+
399
+ componentNftId = componentInfo.nftId;
400
+ } else {
401
+
457
402
  }
458
403
 
459
404
  instance = Instance(instanceInfo.objectAddress);
460
- componentNftId = componentInfo.nftId;
405
+
461
406
  }
462
407
 
463
408
  // From IService
@@ -12,16 +12,15 @@ contract InstanceServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with instance service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
- InstanceService instSrv = new InstanceService{salt: salt}();
21
- // bytes memory initCode = type(InstanceService).creationCode;
22
- bytes memory data = abi.encode(registryAddress, address(this), authority);
23
- IVersionable versionable = deployDetermenistic(
24
- address(instSrv),
19
+ InstanceService svc = new InstanceService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
25
24
  data,
26
25
  salt);
27
26
 
@@ -7,7 +7,7 @@ import {Amount} from "../type/Amount.sol";
7
7
  import {Key32} from "../type/Key32.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
9
  import {ClaimId} from "../type/ClaimId.sol";
10
- import {ObjectType, BUNDLE, POLICY, POOL, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
10
+ import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
11
11
  import {RequestId} from "../type/RequestId.sol";
12
12
  import {RiskId} from "../type/RiskId.sol";
13
13
  import {StateId} from "../type/StateId.sol";
@@ -195,6 +195,16 @@ contract InstanceStore is
195
195
  _updateState(_toNftKey32(policyNftId, POLICY()), newState);
196
196
  }
197
197
 
198
+
199
+ //--- Premium (Policy) ----------------------------------------------//
200
+ function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
201
+ _create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
202
+ }
203
+
204
+ function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
205
+ _updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
206
+ }
207
+
198
208
  //--- Claim -------------------------------------------------------------//
199
209
  function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
200
210
  _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
- import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
6
+ import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
7
7
  import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
8
8
  import {Lifecycle} from "../../shared/Lifecycle.sol";
9
9
 
@@ -23,6 +23,7 @@ contract ObjectLifecycle is
23
23
  _setupBundleLifecycle();
24
24
  _setupComponentLifecycle();
25
25
  _setupPolicyLifecycle();
26
+ _setupPremiumLifecycle();
26
27
  _setupClaimLifecycle();
27
28
  _setupPayoutLifecycle();
28
29
  _setupRiskLifecycle();
@@ -57,6 +58,11 @@ contract ObjectLifecycle is
57
58
  setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
58
59
  }
59
60
 
61
+ function _setupPremiumLifecycle() private {
62
+ setInitialState(PREMIUM(), EXPECTED());
63
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
64
+ }
65
+
60
66
  function _setupClaimLifecycle() private {
61
67
  setInitialState(CLAIM(), SUBMITTED());
62
68
  setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
@@ -14,7 +14,6 @@ interface IComponents {
14
14
 
15
15
  struct ComponentInfo {
16
16
  string name; // component name (needs to be unique per instance)
17
- NftId productNftId;
18
17
  IERC20Metadata token;
19
18
  TokenHandler tokenHandler;
20
19
  address wallet;
@@ -22,8 +21,13 @@ interface IComponents {
22
21
  }
23
22
 
24
23
  struct ProductInfo {
25
- NftId distributionNftId;
26
- NftId poolNftId;
24
+ bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
25
+ bool hasDistribution; // flag to indicate if distribution is enabled
26
+ uint8 expectedNumberOfOracles; // expected number of oracles
27
+ uint8 numberOfOracles; // actual number of oracles
28
+ NftId poolNftId; // mandatory
29
+ NftId distributionNftId; // 0..1 (optional)
30
+ NftId [] oracleNftId; // 0..n (optional)
27
31
  Fee productFee; // product fee on net premium
28
32
  Fee processingFee; // product fee on payout amounts
29
33
  Fee distributionFee; // distribution fee for sales that do not include commissions
@@ -35,9 +39,10 @@ interface IComponents {
35
39
 
36
40
 
37
41
  struct PoolInfo {
38
- RoleId bundleOwnerRole; // the required role for bundle owners
39
42
  Amount maxBalanceAmount; // max balance amount allowed for pool
40
- bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
43
+ RoleId bundleOwnerRole; // the required role for bundle owners
44
+ bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
45
+ bool isProcessingConfirmedClaims; // custom logic for claims confirmation
41
46
  bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
42
47
  bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
43
48
  UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
@@ -11,7 +11,7 @@ import {Timestamp} from "../../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicy {
13
13
 
14
- struct Premium {
14
+ struct PremiumInfo {
15
15
  // premium splitting per target wallet
16
16
  Amount productFeeAmount;
17
17
  Amount distributionFeeAndCommissionAmount;
@@ -19,26 +19,26 @@ interface IPolicy {
19
19
 
20
20
  // detailed positions
21
21
  // this is the net premium calculated by the product
22
- uint256 netPremiumAmount;
22
+ Amount netPremiumAmount;
23
23
  // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
24
- uint256 fullPremiumAmount;
24
+ Amount fullPremiumAmount;
25
25
  // 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;
26
+ Amount premiumAmount;
27
+ Amount productFeeFixAmount;
28
+ Amount poolFeeFixAmount;
29
+ Amount bundleFeeFixAmount;
30
+ Amount distributionFeeFixAmount;
31
+ Amount productFeeVarAmount;
32
+ Amount poolFeeVarAmount;
33
+ Amount bundleFeeVarAmount;
34
+ Amount distributionFeeVarAmount;
35
+ Amount distributionOwnerFeeFixAmount;
36
36
  // this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
37
- uint256 distributionOwnerFeeVarAmount;
37
+ Amount distributionOwnerFeeVarAmount;
38
38
  // this value is based on distributor type referenced in the referral
39
- uint256 commissionAmount;
39
+ Amount commissionAmount;
40
40
  // this is based on referral used
41
- uint256 discountAmount;
41
+ Amount discountAmount;
42
42
  }
43
43
 
44
44
  /// @dev policy data for the full policy lifecycle
@@ -49,7 +49,6 @@ interface IPolicy {
49
49
  RiskId riskId;
50
50
  Amount sumInsuredAmount;
51
51
  Amount premiumAmount; // expected premium at application time
52
- Amount premiumPaidAmount; // actual paid premium
53
52
  Seconds lifetime;
54
53
  // policy application data, no changes after applying for a policy
55
54
  bytes applicationData;
@@ -67,10 +66,10 @@ interface IPolicy {
67
66
  struct ClaimInfo {
68
67
  Amount claimAmount;
69
68
  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
69
+ uint24 payoutsCount;
70
+ uint24 openPayoutsCount;
71
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
72
+ bytes processData; // use case specific data that may include information supporting confirm or decline
74
73
  Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
75
74
  }
76
75
 
@@ -78,7 +77,8 @@ interface IPolicy {
78
77
  struct PayoutInfo {
79
78
  ClaimId claimId;
80
79
  Amount amount;
81
- bytes data;
82
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
80
+ address beneficiary; // for address(0) beneficiary is policy nft owner
81
+ bytes data; // use case specific supporting data
82
+ Timestamp paidAt; // timestamp for actual payout
83
83
  }
84
84
  }
@@ -42,7 +42,6 @@ contract BasicOracle is
42
42
  initialOwner,
43
43
  name,
44
44
  token,
45
- "",
46
45
  "");
47
46
  }
48
47
  }
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IService} from "../shared/IService.sol";
5
5
  import {NftId} from "../type/NftId.sol";
6
+ import {ObjectType} from "../type/ObjectType.sol";
6
7
  import {RequestId} from "../type/RequestId.sol";
7
8
  import {StateId} from "../type/StateId.sol";
8
9
  import {Timestamp} from "../type/Timestamp.sol";
@@ -17,7 +18,7 @@ interface IOracleService is IService {
17
18
  event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
18
19
 
19
20
  // create request
20
- error ErrorOracleServiceInstanceMismatch(NftId expectedInstanceNftId, NftId oracleInstanceNftId);
21
+ error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
21
22
  error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
22
23
  error ErrorOracleServiceCallbackMethodNameEmpty();
23
24
 
@@ -2,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,6 +62,7 @@ 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
@@ -85,12 +77,11 @@ abstract contract Oracle is
85
77
 
86
78
  function _initializeOracle(
87
79
  address registry,
88
- NftId instanceNftId,
80
+ NftId productNftId,
89
81
  IAuthorization authorization,
90
82
  address initialOwner,
91
83
  string memory name,
92
84
  address token,
93
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
94
85
  bytes memory componentData // component specifidc data
95
86
  )
96
87
  internal
@@ -99,21 +90,20 @@ abstract contract Oracle is
99
90
  {
100
91
  _initializeInstanceLinkedComponent(
101
92
  registry,
102
- instanceNftId,
93
+ productNftId,
103
94
  name,
104
95
  token,
105
96
  ORACLE(),
106
97
  authorization,
107
98
  true,
108
99
  initialOwner,
109
- registryData,
110
100
  componentData);
111
101
 
112
102
  OracleStorage storage $ = _getOracleStorage();
113
- $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
114
103
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
104
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
115
105
 
116
- registerInterface(type(IOracleComponent).interfaceId);
106
+ _registerInterface(type(IOracleComponent).interfaceId);
117
107
  }
118
108
 
119
109
 
@@ -11,7 +11,7 @@ import {IOracleComponent} from "./IOracleComponent.sol";
11
11
  import {IOracleService} from "./IOracleService.sol";
12
12
  import {IRegistry} from "../registry/IRegistry.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
- import {ObjectType, COMPONENT, ORACLE, INSTANCE} from "../type/ObjectType.sol";
14
+ import {ObjectType, COMPONENT, ORACLE, PRODUCT} from "../type/ObjectType.sol";
15
15
  import {RequestId} from "../type/RequestId.sol";
16
16
  import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
17
17
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
@@ -27,14 +27,16 @@ contract OracleService is
27
27
  bytes memory data
28
28
  )
29
29
  internal
30
- initializer
31
30
  virtual override
31
+ initializer()
32
32
  {
33
- address initialOwner;
34
- address registryAddress;
35
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
36
- initializeService(registryAddress, address(0), owner);
37
- registerInterface(type(IOracleService).interfaceId);
33
+ (
34
+ address registryAddress,
35
+ address authority
36
+ ) = abi.decode(data, (address, address));
37
+
38
+ _initializeService(registryAddress, authority, owner);
39
+ _registerInterface(type(IOracleService).interfaceId);
38
40
  }
39
41
 
40
42
  function request(
@@ -46,6 +48,7 @@ contract OracleService is
46
48
  external
47
49
  virtual
48
50
  // restricted() // add authz
51
+ onlyNftOfType(oracleNftId, ORACLE())
49
52
  returns (
50
53
  RequestId requestId
51
54
  )
@@ -64,35 +67,45 @@ contract OracleService is
64
67
  ORACLE(),
65
68
  true); // only active
66
69
 
67
- // check that requester and oracle share same instance
68
- if (componentInfo.parentNftId != oracleInfo.parentNftId) {
69
- revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
70
- }
70
+ {
71
+ // check that requester and oracle share same product cluster
72
+ if (componentInfo.objectType == PRODUCT()) {
73
+ if (oracleInfo.parentNftId != componentInfo.nftId) {
74
+ revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.nftId, oracleInfo.parentNftId);
75
+ }
76
+ } else {
77
+ if (oracleInfo.parentNftId != componentInfo.parentNftId) {
78
+ revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.parentNftId, oracleInfo.parentNftId);
79
+ }
80
+ }
71
81
 
72
- // check expiriyAt >= now
73
- if (expiryAt < TimestampLib.blockTimestamp()) {
74
- revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
75
- }
82
+ // check expiriyAt >= now
83
+ if (expiryAt < TimestampLib.blockTimestamp()) {
84
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
85
+ }
76
86
 
77
- // check callbackMethodName.length > 0
78
- if (bytes(callbackMethodName).length == 0) {
79
- revert ErrorOracleServiceCallbackMethodNameEmpty();
87
+ // check callbackMethodName.length > 0
88
+ if (bytes(callbackMethodName).length == 0) {
89
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
90
+ }
80
91
  }
81
92
 
82
- // create request info
83
- IOracle.RequestInfo memory request = IOracle.RequestInfo({
84
- requesterNftId: componentNftId,
85
- callbackMethodName: callbackMethodName,
86
- oracleNftId: oracleNftId,
87
- requestData: requestData,
88
- responseData: "",
89
- respondedAt: TimestampLib.zero(),
90
- expiredAt: expiryAt,
91
- isCancelled: false
92
- });
93
-
94
- // store request with instance
95
- requestId = instance.getInstanceStore().createRequest(request);
93
+ {
94
+ // create request info
95
+ IOracle.RequestInfo memory request = IOracle.RequestInfo({
96
+ requesterNftId: componentNftId,
97
+ callbackMethodName: callbackMethodName,
98
+ oracleNftId: oracleNftId,
99
+ requestData: requestData,
100
+ responseData: "",
101
+ respondedAt: TimestampLib.zero(),
102
+ expiredAt: expiryAt,
103
+ isCancelled: false
104
+ });
105
+
106
+ // store request with instance
107
+ requestId = instance.getInstanceStore().createRequest(request);
108
+ }
96
109
 
97
110
  // call oracle component
98
111
  IOracleComponent(oracleInfo.objectAddress).request(
@@ -214,7 +227,7 @@ contract OracleService is
214
227
 
215
228
  // call oracle component
216
229
  // TODO add check that oracle is active?
217
- address oracleAddress = getRegistry().getObjectInfo(request.oracleNftId).objectAddress;
230
+ address oracleAddress = getRegistry().getObjectAddress(request.oracleNftId);
218
231
  IOracleComponent(oracleAddress).cancel(requestId);
219
232
 
220
233
  emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
@@ -267,7 +280,7 @@ contract OracleService is
267
280
  returns(IInstance instance)
268
281
  {
269
282
  NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
270
- address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
283
+ address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
271
284
  return IInstance(instanceAddress);
272
285
  }
273
286