@etherisc/gif-next 3.0.0-a511887-523 → 3.0.0-ab0fcb2-112

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 (456) hide show
  1. package/README.md +1 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +59 -107
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +59 -156
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +13 -61
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +58 -90
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +80 -59
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  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 +14 -46
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +45 -85
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +13 -61
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +119 -175
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +89 -190
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +13 -61
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +13 -61
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +54 -103
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +104 -153
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +18 -18
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  48. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +604 -0
  49. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  51. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1255 -0
  53. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +825 -0
  55. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1528 -0
  57. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +820 -0
  59. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2635 -0
  61. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +820 -0
  63. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  65. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +57 -119
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  71. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +51 -113
  73. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +59 -121
  75. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +63 -125
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +18 -18
  81. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  83. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +49 -54
  84. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  86. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +14 -62
  87. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  88. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +13 -61
  89. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  90. package/artifacts/contracts/instance/Instance.sol/Instance.json +42 -95
  91. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  92. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +158 -182
  93. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
  95. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +179 -77
  97. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +51 -99
  99. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +55 -152
  101. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  103. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  104. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  105. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  106. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +53 -58
  107. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  108. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  109. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  110. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  111. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  113. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  115. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -8
  117. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  119. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  120. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  121. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  122. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  124. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  125. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +41 -81
  127. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  129. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -61
  132. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -103
  134. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -61
  136. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +61 -175
  138. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -169
  140. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  141. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +13 -61
  142. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  144. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -151
  146. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +78 -179
  148. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  149. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -61
  150. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  151. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +13 -61
  152. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  153. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +25 -104
  154. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  155. package/artifacts/contracts/pool/Pool.sol/Pool.json +13 -61
  156. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  157. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +24 -252
  158. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  159. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +143 -190
  160. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  161. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +89 -170
  162. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  163. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +59 -99
  164. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +59 -152
  166. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  167. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +13 -61
  168. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  169. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +18 -18
  170. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  171. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +103 -151
  172. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +81 -178
  174. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  175. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -61
  176. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  177. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -61
  178. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  179. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -82
  180. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  181. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -61
  182. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  183. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -61
  184. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +13 -61
  186. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  187. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +83 -152
  188. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  189. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  190. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +71 -168
  192. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  193. package/artifacts/contracts/product/PricingService.sol/PricingService.json +71 -119
  194. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +65 -162
  196. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  197. package/artifacts/contracts/product/Product.sol/Product.json +13 -61
  198. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  199. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -95
  200. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +58 -147
  202. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  203. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -61
  206. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  208. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  210. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  211. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +140 -169
  212. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  213. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
  214. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -99
  216. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +55 -157
  218. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  219. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +146 -183
  220. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  221. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  222. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +98 -185
  224. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
  226. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +13 -71
  228. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Component.sol/Component.json +13 -61
  230. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +81 -137
  232. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  233. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +70 -171
  234. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +411 -139
  236. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  238. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +691 -0
  239. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +13 -61
  241. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +13 -61
  243. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -61
  245. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  246. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +1 -70
  248. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -54
  250. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +13 -61
  252. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +1 -54
  254. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IService.sol/IService.json +13 -61
  256. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  258. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  259. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -61
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -76
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -56
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +13 -61
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +3 -79
  271. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  272. package/artifacts/contracts/shared/Service.sol/Service.json +13 -61
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  279. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +13 -61
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +13 -61
  284. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  285. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  286. package/artifacts/contracts/staking/Staking.sol/Staking.json +73 -121
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +26 -31
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +66 -163
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +5 -64
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +49 -97
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +54 -151
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +200 -266
  299. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  300. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +27 -19
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  302. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  329. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  330. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  342. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  344. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  347. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +1 -1
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +29 -121
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  351. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +1 -1
  352. package/contracts/accounting/AccountingService.sol +3 -4
  353. package/contracts/accounting/AccountingServiceManager.sol +1 -3
  354. package/contracts/authorization/AccessAdmin.sol +3 -3
  355. package/contracts/authorization/AccessAdminLib.sol +14 -11
  356. package/contracts/authorization/IAccessAdmin.sol +1 -0
  357. package/contracts/distribution/BasicDistribution.sol +0 -2
  358. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  359. package/contracts/distribution/Distribution.sol +0 -2
  360. package/contracts/distribution/DistributionService.sol +14 -13
  361. package/contracts/distribution/DistributionServiceManager.sol +1 -3
  362. package/contracts/examples/fire/FirePool.sol +0 -4
  363. package/contracts/examples/fire/FireProduct.sol +0 -4
  364. package/contracts/examples/flight/FlightLib.sol +322 -0
  365. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  366. package/contracts/examples/flight/FlightOracle.sol +163 -0
  367. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  368. package/contracts/examples/flight/FlightPool.sol +85 -0
  369. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  370. package/contracts/examples/flight/FlightProduct.sol +650 -0
  371. package/contracts/examples/flight/FlightProductAuthorization.sol +45 -0
  372. package/contracts/examples/flight/FlightUSD.sol +28 -0
  373. package/contracts/examples/flight/originalV1.sol +396 -0
  374. package/contracts/examples/unpermissioned/SimpleDistribution.sol +0 -4
  375. package/contracts/examples/unpermissioned/SimpleOracle.sol +0 -4
  376. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
  378. package/contracts/instance/IInstance.sol +1 -1
  379. package/contracts/instance/Instance.sol +6 -7
  380. package/contracts/instance/InstanceAdmin.sol +6 -8
  381. package/contracts/instance/InstanceReader.sol +40 -18
  382. package/contracts/instance/InstanceService.sol +14 -16
  383. package/contracts/instance/InstanceServiceManager.sol +1 -3
  384. package/contracts/instance/base/Cloneable.sol +4 -10
  385. package/contracts/instance/base/ObjectSet.sol +2 -2
  386. package/contracts/oracle/BasicOracle.sol +0 -2
  387. package/contracts/oracle/IOracleService.sol +12 -16
  388. package/contracts/oracle/Oracle.sol +0 -2
  389. package/contracts/oracle/OracleService.sol +36 -66
  390. package/contracts/oracle/OracleServiceManager.sol +1 -3
  391. package/contracts/pool/BasicPool.sol +2 -4
  392. package/contracts/pool/BasicPoolAuthorization.sol +1 -1
  393. package/contracts/pool/BundleService.sol +20 -14
  394. package/contracts/pool/BundleServiceManager.sol +2 -4
  395. package/contracts/pool/IPoolService.sol +5 -6
  396. package/contracts/pool/Pool.sol +1 -3
  397. package/contracts/pool/PoolLib.sol +4 -104
  398. package/contracts/pool/PoolService.sol +66 -100
  399. package/contracts/pool/PoolServiceManager.sol +1 -3
  400. package/contracts/product/ApplicationService.sol +9 -29
  401. package/contracts/product/ApplicationServiceManager.sol +1 -3
  402. package/contracts/product/BasicProduct.sol +0 -2
  403. package/contracts/product/BasicProductAuthorization.sol +4 -3
  404. package/contracts/product/ClaimService.sol +9 -33
  405. package/contracts/product/ClaimServiceManager.sol +2 -4
  406. package/contracts/product/IPolicyService.sol +0 -1
  407. package/contracts/product/PolicyService.sol +43 -56
  408. package/contracts/product/PolicyServiceManager.sol +1 -3
  409. package/contracts/product/PricingService.sol +6 -7
  410. package/contracts/product/PricingServiceManager.sol +1 -3
  411. package/contracts/product/Product.sol +0 -2
  412. package/contracts/product/RiskService.sol +7 -39
  413. package/contracts/product/RiskServiceManager.sol +1 -3
  414. package/contracts/registry/RegistryAdmin.sol +6 -11
  415. package/contracts/registry/RegistryAuthorization.sol +2 -2
  416. package/contracts/registry/RegistryService.sol +14 -15
  417. package/contracts/registry/RegistryServiceManager.sol +1 -8
  418. package/contracts/registry/ReleaseAdmin.sol +2 -11
  419. package/contracts/registry/ReleaseRegistry.sol +14 -26
  420. package/contracts/registry/TokenRegistry.sol +6 -15
  421. package/contracts/shared/Component.sol +3 -5
  422. package/contracts/shared/ComponentService.sol +18 -30
  423. package/contracts/shared/ComponentServiceManager.sol +2 -4
  424. package/contracts/shared/ContractLib.sol +359 -93
  425. package/contracts/shared/EcdsaChecker.sol +5 -0
  426. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  427. package/contracts/shared/IInstanceLinkedComponent.sol +2 -6
  428. package/contracts/shared/INftOwnable.sol +0 -2
  429. package/contracts/shared/IRegisterable.sol +6 -0
  430. package/contracts/shared/IRegistryLinked.sol +1 -5
  431. package/contracts/shared/InstanceLinkedComponent.sol +73 -22
  432. package/contracts/shared/NftOwnable.sol +8 -8
  433. package/contracts/shared/PolicyHolder.sol +0 -2
  434. package/contracts/shared/Registerable.sol +5 -6
  435. package/contracts/shared/RegistryLinked.sol +4 -30
  436. package/contracts/shared/Service.sol +2 -4
  437. package/contracts/staking/Staking.sol +22 -17
  438. package/contracts/staking/StakingLib.sol +3 -1
  439. package/contracts/staking/StakingManager.sol +0 -3
  440. package/contracts/staking/StakingReader.sol +9 -17
  441. package/contracts/staking/StakingService.sol +6 -6
  442. package/contracts/staking/StakingServiceManager.sol +1 -4
  443. package/contracts/staking/StakingStore.sol +4 -6
  444. package/contracts/staking/TargetHandler.sol +4 -5
  445. package/contracts/type/ObjectType.sol +2 -31
  446. package/contracts/type/Referral.sol +6 -0
  447. package/contracts/type/RequestIdSet.sol +62 -0
  448. package/contracts/type/Seconds.sol +4 -0
  449. package/contracts/type/String.sol +30 -0
  450. package/contracts/type/Timestamp.sol +10 -1
  451. package/contracts/upgradeability/ProxyManager.sol +1 -5
  452. package/package.json +2 -1
  453. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +0 -4
  454. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +0 -24
  455. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +0 -4
  456. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +0 -40
@@ -6,6 +6,9 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
6
6
  import {INftOwnable} from "./INftOwnable.sol";
7
7
  import {IRegistry} from "../registry/IRegistry.sol";
8
8
  import {IVersionable} from "./IVersionable.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {VersionPart} from "../type/Version.sol";
9
12
 
10
13
  /// @title IRegisterable
11
14
  /// @dev Marks contracts that are intended to be registered in the registry.
@@ -21,6 +24,9 @@ interface IRegisterable is
21
24
  // onlyActive()
22
25
  error ErrorRegisterableNotActive();
23
26
 
27
+ //_checkNftType()
28
+ error ErrorRegisterableInvalidType(NftId nftId, ObjectType expectedType, VersionPart expectedRelease);
29
+
24
30
  /// @dev Returns true iff this contract managed by its authority is active.
25
31
  /// Queries the IAccessManaged.authority().
26
32
  function isActive() external view returns (bool active);
@@ -5,9 +5,5 @@ import {IRegistry} from "../registry/IRegistry.sol";
5
5
 
6
6
  interface IRegistryLinked {
7
7
 
8
- error ErrorRegistryLinkedRegistryAlreadyInitialized(address target, address registry);
9
- error ErrorRegistryLinkedNotRegistry(address target, address notRegistry);
10
- error ErrorRegistryLinkedRegistryMismatch(address target, address givenRegistry, address pureRegistry);
11
-
12
- function getRegistry() external view returns (IRegistry);
8
+ function getRegistry() external pure returns (IRegistry);
13
9
  }
@@ -1,18 +1,26 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
-
5
- import {Amount} from "../type/Amount.sol";
6
- import {Component} from "./Component.sol";
7
- import {IComponentService} from "./IComponentService.sol";
8
- import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
9
4
  import {IAuthorization} from "../authorization/IAuthorization.sol";
5
+ import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
10
6
  import {IComponents} from "../instance/module/IComponents.sol";
7
+ import {IComponentService} from "./IComponentService.sol";
11
8
  import {IInstance} from "../instance/IInstance.sol";
9
+ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
10
+ import {IInstanceService} from "../instance/IInstanceService.sol";
11
+ import {IOracleService} from "../oracle/IOracleService.sol";
12
+
13
+ import {Amount} from "../type/Amount.sol";
14
+ import {Component} from "./Component.sol";
12
15
  import {InstanceReader} from "../instance/InstanceReader.sol";
13
16
  import {IRegistry} from "../registry/IRegistry.sol";
14
17
  import {NftId} from "../type/NftId.sol";
15
- import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
18
+ import {ObjectType, COMPONENT, INSTANCE, ORACLE, PRODUCT} from "../type/ObjectType.sol";
19
+ import {RequestId} from "../type/RequestId.sol";
20
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
21
+ import {TokenHandler} from "../shared/TokenHandler.sol";
22
+ import {Timestamp} from "../type/Timestamp.sol";
23
+ import {VersionPart} from "../type/Version.sol";
16
24
 
17
25
  // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
18
26
  // same pattern as for Service which is also upgradeable
@@ -26,20 +34,71 @@ abstract contract InstanceLinkedComponent is
26
34
  struct InstanceLinkedComponentStorage {
27
35
  IInstance _instance; // instance for this component
28
36
  IAuthorization _initialAuthorization;
37
+ IComponentService _componentService;
38
+ IOracleService _oracleService;
29
39
  }
30
40
 
41
+ //--- view functions ----------------------------------------------------//
42
+
31
43
  /// @inheritdoc IInstanceLinkedComponent
32
- function getInstance() public view virtual returns (IInstance instance) {
44
+ function getInstance() public view virtual override returns (IInstance instance) {
33
45
  return _getInstanceLinkedComponentStorage()._instance;
34
46
  }
35
47
 
36
- /// @inheritdoc IInstanceLinkedComponent
48
+
49
+ /// @inheritdoc IAuthorizedComponent
37
50
  function getAuthorization() external view virtual returns (IAuthorization authorization) {
38
51
  return _getInstanceLinkedComponentStorage()._initialAuthorization;
39
52
  }
40
53
 
54
+
55
+ //function setInstanceReader(address readerAddress);
56
+
57
+ //--- internal functions ------------------------------------------------//
58
+
59
+ function _sendRequest(
60
+ NftId oracleNftId,
61
+ bytes memory requestData,
62
+ Timestamp expiryAt,
63
+ string memory callbackMethod
64
+ )
65
+ internal
66
+ virtual
67
+ returns (RequestId requestId)
68
+ {
69
+ return _getInstanceLinkedComponentStorage()._oracleService.request(
70
+ oracleNftId,
71
+ requestData,
72
+ expiryAt,
73
+ callbackMethod);
74
+ }
75
+
76
+
77
+
78
+ function _cancelRequest(RequestId requestId)
79
+ internal
80
+ virtual
81
+ {
82
+ _getInstanceLinkedComponentStorage()._oracleService.cancel(requestId);
83
+ }
84
+
85
+
86
+ function _resendRequest(RequestId requestId)
87
+ internal
88
+ virtual
89
+ {
90
+ _getInstanceLinkedComponentStorage()._oracleService.resend(requestId);
91
+ }
92
+
93
+
94
+ function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
95
+ assembly {
96
+ $.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
97
+ }
98
+ }
99
+
100
+
41
101
  function __InstanceLinkedComponent_init(
42
- address registry,
43
102
  NftId parentNftId,
44
103
  string memory name,
45
104
  ObjectType componentType,
@@ -51,14 +110,11 @@ abstract contract InstanceLinkedComponent is
51
110
  virtual
52
111
  onlyInitializing()
53
112
  {
54
- // TODO calling registry and checking release before component is initialized
55
- // at least breaks order of checks -> e.g. if registry is not contract no meaningfull error will be given
56
- IInstance instance = _checkAndGetInstance(registry, parentNftId, componentType);
113
+ IInstance instance = _checkAndGetInstance(parentNftId, componentType);
57
114
 
58
115
  // set component specific parameters
59
116
  __Component_init(
60
117
  instance.authority(),
61
- registry,
62
118
  parentNftId,
63
119
  name,
64
120
  componentType,
@@ -70,13 +126,14 @@ abstract contract InstanceLinkedComponent is
70
126
  InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
71
127
  $._instance = instance;
72
128
  $._initialAuthorization = authorization;
129
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
130
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
73
131
 
74
132
  // register interfaces
75
133
  _registerInterface(type(IInstanceLinkedComponent).interfaceId);
76
134
  }
77
135
 
78
136
  function _checkAndGetInstance(
79
- address registryAddress,
80
137
  NftId parentNftId,
81
138
  ObjectType componentType
82
139
  )
@@ -85,7 +142,7 @@ abstract contract InstanceLinkedComponent is
85
142
  returns (IInstance instance)
86
143
  {
87
144
  NftId instanceNftId;
88
- IRegistry registry = IRegistry(registryAddress);
145
+ IRegistry registry = _getRegistry();
89
146
 
90
147
  if(componentType == PRODUCT()) {
91
148
  instanceNftId = parentNftId;
@@ -116,7 +173,7 @@ abstract contract InstanceLinkedComponent is
116
173
 
117
174
 
118
175
  function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
119
- NftId componentNftId = getRegistry().getNftIdForAddress(address(this));
176
+ NftId componentNftId = _getRegistry().getNftIdForAddress(address(this));
120
177
 
121
178
  // if registered, attempt to return component info via instance reader
122
179
  if (componentNftId.gtz()) {
@@ -138,10 +195,4 @@ abstract contract InstanceLinkedComponent is
138
195
  function _getInstanceReader() internal view returns (InstanceReader reader) {
139
196
  return _getInstanceLinkedComponentStorage()._instance.getInstanceReader();
140
197
  }
141
-
142
- function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
143
- assembly {
144
- $.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
145
- }
146
- }
147
198
  }
@@ -28,7 +28,7 @@ contract NftOwnable is
28
28
  }
29
29
 
30
30
  modifier onlyNftOwner(NftId nftId) {
31
- if(!getRegistry().isOwnerOf(nftId, msg.sender)) {
31
+ if(!_getRegistry().isOwnerOf(nftId, msg.sender)) {
32
32
  revert ErrorNftOwnableNotOwner(msg.sender);
33
33
  }
34
34
  _;
@@ -37,7 +37,6 @@ contract NftOwnable is
37
37
  /// @dev Initialization for upgradable contracts.
38
38
  // used in __Registerable_init, ProxyManager.initialize
39
39
  function __NftOwnable_init(
40
- address registry,
41
40
  address initialOwner
42
41
  )
43
42
  internal
@@ -45,7 +44,6 @@ contract NftOwnable is
45
44
  onlyInitializing()
46
45
  {
47
46
  __ERC165_init();
48
- __RegistryLinked_init(registry);
49
47
 
50
48
  if(initialOwner == address(0)) {
51
49
  revert ErrorNftOwnableInitialOwnerZero();
@@ -75,7 +73,7 @@ contract NftOwnable is
75
73
  NftOwnableStorage storage $ = _getNftOwnableStorage();
76
74
 
77
75
  if ($._nftId.gtz()) {
78
- return getRegistry().ownerOf($._nftId);
76
+ return _getRegistry().ownerOf($._nftId);
79
77
  }
80
78
 
81
79
  return $._initialOwner;
@@ -95,15 +93,17 @@ contract NftOwnable is
95
93
  revert ErrorNftOwnableAlreadyLinked($._nftId);
96
94
  }
97
95
 
98
- if (!getRegistry().isRegistered(nftOwnableAddress)) {
96
+ NftId nftId = _getRegistry().getNftIdForAddress(nftOwnableAddress);
97
+
98
+ if (nftId.eqz()) {
99
99
  revert ErrorNftOwnableContractNotRegistered(nftOwnableAddress);
100
100
  }
101
101
 
102
- $._nftId = getRegistry().getNftIdForAddress(nftOwnableAddress);
102
+ $._nftId = nftId;
103
103
 
104
- emit LogNftOwnableNftLinkedToAddress($._nftId, getOwner());
104
+ emit LogNftOwnableNftLinkedToAddress(nftId, getOwner());
105
105
 
106
- return $._nftId;
106
+ return nftId;
107
107
  }
108
108
 
109
109
 
@@ -24,13 +24,11 @@ contract PolicyHolder is
24
24
  // will need a release parameter to fetch the right service addresses for the modifiers
25
25
 
26
26
  function __PolicyHolder_init(
27
- address registryAddress
28
27
  )
29
28
  internal
30
29
  virtual
31
30
  onlyInitializing()
32
31
  {
33
- __RegistryLinked_init(registryAddress);
34
32
  _initializeERC165();
35
33
  _registerInterface(type(IPolicyHolder).interfaceId);
36
34
  }
@@ -38,22 +38,22 @@ abstract contract Registerable is
38
38
  _;
39
39
  }
40
40
 
41
- // TODO move to registerables verification library
42
41
  modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
43
42
  _checkNftType(nftId, expectedObjectType);
44
43
  _;
45
44
  }
46
45
 
47
46
  // TODO move to registerables verification library
47
+ // TODO and check the owner here?
48
48
  function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
49
- if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType, getRelease())) {
50
- revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
49
+ VersionPart expectedRelease = getRelease();
50
+ if(expectedObjectType.eqz() || !_getRegistry().isObjectType(nftId, expectedObjectType, expectedRelease)) {
51
+ revert ErrorRegisterableInvalidType(nftId, expectedObjectType, expectedRelease);
51
52
  }
52
53
  }
53
54
 
54
55
  function __Registerable_init(
55
56
  address authority,
56
- address registry,
57
57
  NftId parentNftId,
58
58
  ObjectType objectType,
59
59
  bool isInterceptor,
@@ -68,11 +68,10 @@ abstract contract Registerable is
68
68
  revert ErrorAuthorityInvalid(authority);
69
69
  }
70
70
 
71
- // release must allign with authority -> not a release check of third contract...
72
71
  VersionPart release = AccessManagerCloneable(authority).getRelease();
73
72
 
74
73
  __AccessManaged_init(authority);
75
- __NftOwnable_init(registry, initialOwner);
74
+ __NftOwnable_init(initialOwner);
76
75
  __Versionable_init(release);
77
76
 
78
77
  RegisterableStorage storage $ = _getRegisterableStorage();
@@ -1,45 +1,19 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
4
 
6
5
  import {ContractLib} from "../shared/ContractLib.sol";
7
6
  import {IRegistry} from "../registry/IRegistry.sol";
8
7
  import {IRegistryLinked} from "./IRegistryLinked.sol";
9
8
 
10
9
  contract RegistryLinked is
11
- Initializable,
12
10
  IRegistryLinked
13
11
  {
14
-
15
- // priorize simplicity and size over using standard upgradeability structs
16
- // registry address MUST NOT be upgraded
17
- IRegistry private _registry;
18
-
19
- /// @dev initialization for upgradable contracts
20
- // used in RegistryAdmin / InstanceAdmin / ReleaseAdmin.completeSetup()
21
- function __RegistryLinked_init(
22
- address registry
23
- )
24
- internal
25
- virtual
26
- {
27
- if(address(_registry) != address(0) ) {
28
- if(_registry != IRegistry(registry)) {
29
- revert ErrorRegistryLinkedRegistryAlreadyInitialized(address(this), address(_registry));
30
- }
31
- return;
32
- }
33
-
34
- if (!ContractLib.isRegistry(registry)) {
35
- revert ErrorRegistryLinkedNotRegistry(address(this), registry);
36
- }
37
-
38
- _registry = IRegistry(registry);
12
+ function getRegistry() external pure returns (IRegistry) {
13
+ return ContractLib.getRegistry();
39
14
  }
40
15
 
41
-
42
- function getRegistry() public view returns (IRegistry) {
43
- return _registry;
16
+ function _getRegistry() internal pure returns (IRegistry) {
17
+ return ContractLib.getRegistry();
44
18
  }
45
19
  }
@@ -24,7 +24,6 @@ abstract contract Service is
24
24
 
25
25
  function __Service_init(
26
26
  address authority, // real authority for registry service adress(0) for other services
27
- address registry,
28
27
  address initialOwner
29
28
  )
30
29
  internal
@@ -35,8 +34,7 @@ abstract contract Service is
35
34
 
36
35
  __Registerable_init(
37
36
  authority,
38
- registry,
39
- IRegistry(registry).getNftId(),
37
+ _getRegistry().getNftId(),
40
38
  SERVICE(),
41
39
  false, // is interceptor
42
40
  initialOwner,
@@ -63,6 +61,6 @@ abstract contract Service is
63
61
 
64
62
 
65
63
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
66
- return getRegistry().getServiceAddress(domain, getRelease());
64
+ return _getRegistry().getServiceAddress(domain, getRelease());
67
65
  }
68
66
  }
@@ -75,17 +75,18 @@ contract Staking is
75
75
  external
76
76
  virtual
77
77
  {
78
- if (msg.sender != address(getRegistry())) {
78
+ IRegistry registry = _getRegistry();
79
+ if (msg.sender != address(registry)) {
79
80
  revert ErrorStakingNotRegistry(msg.sender);
80
81
  }
81
82
 
82
83
  StakingStorage storage $ = _getStakingStorage();
83
84
  address dipToken = _getStakingStorage()._tokenRegistry.getDipTokenAddress();
84
85
  $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
85
- address(getRegistry()),
86
+ address(registry),
86
87
  address(this),
87
88
  dipToken,
88
- getRegistry().getAuthority());
89
+ registry.getAuthority());
89
90
  }
90
91
 
91
92
 
@@ -190,7 +191,7 @@ contract Staking is
190
191
  // effects
191
192
  StakingStorage storage $ = _getStakingStorage();
192
193
  address oldStakingService = address($._stakingService);
193
- $._stakingService = StakingLib.checkAndGetStakingService(getRegistry(), release);
194
+ $._stakingService = StakingLib.checkAndGetStakingService(release);
194
195
 
195
196
  emit LogStakingStakingServiceSet(address($._stakingService), release, oldStakingService);
196
197
  }
@@ -277,9 +278,10 @@ contract Staking is
277
278
  returns (Amount newBalance)
278
279
  {
279
280
  address transferTo;
281
+ IRegistry registry = _getRegistry();
280
282
 
281
283
  // case 1: protocol target: staking owner is recipient
282
- if (targetNftId == getRegistry().getProtocolNftId()) {
284
+ if (targetNftId == registry.getProtocolNftId()) {
283
285
  // verify that the caller is the staking owner
284
286
  transferTo = getOwner();
285
287
  if (msg.sender != transferTo) {
@@ -289,7 +291,7 @@ contract Staking is
289
291
  // case 2: same chain target: target owner is recipient
290
292
  } else if (ChainIdLib.isCurrentChain(targetNftId)) {
291
293
  // verify that the caller is the target owner
292
- transferTo = getRegistry().ownerOf(targetNftId);
294
+ transferTo = registry.ownerOf(targetNftId);
293
295
  if (msg.sender != transferTo) {
294
296
  revert ErrorStakingNotNftOwner(targetNftId);
295
297
  }
@@ -323,13 +325,15 @@ contract Staking is
323
325
  onlyTarget(targetNftId)
324
326
  returns (Amount newBalance)
325
327
  {
328
+ IRegistry registry = _getRegistry();
329
+
326
330
  // check that service does not withdraw from protocol target
327
- if (targetNftId == getRegistry().getProtocolNftId()) {
331
+ if (targetNftId == registry.getProtocolNftId()) {
328
332
  revert ErrorStakingTargetTypeNotSupported(targetNftId, PROTOCOL());
329
333
  }
330
334
 
331
335
  // default: on-chain target owner is recipient
332
- address targetOwner = getRegistry().ownerOf(targetNftId);
336
+ address targetOwner = registry.ownerOf(targetNftId);
333
337
  return _withdrawRewardReserves(targetNftId, dipAmount, targetOwner);
334
338
  }
335
339
 
@@ -431,7 +435,9 @@ contract Staking is
431
435
  virtual
432
436
  restricted() // only pool service
433
437
  {
438
+ // !!! TODO amount can be 0
434
439
  StakingStorage storage $ = _getStakingStorage();
440
+ // why not StakingBalanceStore instead of StakingStore?
435
441
  $._store.increaseTotalValueLocked(targetNftId, token, amount);
436
442
  }
437
443
 
@@ -528,7 +534,7 @@ contract Staking is
528
534
 
529
535
  // collect staked DIP token via staking service
530
536
  if (stakeAmount.gtz()) {
531
- address stakeOwner = getRegistry().ownerOf(stakeNftId);
537
+ address stakeOwner = _getRegistry().ownerOf(stakeNftId);
532
538
  $._stakingService.pullDipToken(stakeAmount, stakeOwner);
533
539
  }
534
540
  }
@@ -551,7 +557,7 @@ contract Staking is
551
557
 
552
558
  // transfer unstaked DIP token via staking service
553
559
  if (unstakedAmount.gtz()) {
554
- address stakeOwner = getRegistry().ownerOf(stakeNftId);
560
+ address stakeOwner = _getRegistry().ownerOf(stakeNftId);
555
561
  $._stakingService.pushDipToken(unstakedAmount, stakeOwner);
556
562
  }
557
563
  }
@@ -582,7 +588,7 @@ contract Staking is
582
588
  AmountLib.max()); // unstake up to this amount
583
589
 
584
590
  // step 2: create new stake with full unstaked amount
585
- address stakeOwner = getRegistry().ownerOf(stakeNftId);
591
+ address stakeOwner = _getRegistry().ownerOf(stakeNftId);
586
592
  newStakeNftId = $._stakingService.createStakeObject(newTargetNftId, stakeOwner);
587
593
  $._store.createStake(newStakeNftId, newTargetNftId, stakeOwner, newStakedAmount);
588
594
 
@@ -621,7 +627,7 @@ contract Staking is
621
627
  // collect staked DIP token by staking service
622
628
  if (claimedAmount.gtz()) {
623
629
  // interactions
624
- address stakeOwner = getRegistry().ownerOf(stakeNftId);
630
+ address stakeOwner = _getRegistry().ownerOf(stakeNftId);
625
631
  $._stakingService.pushDipToken(claimedAmount, stakeOwner);
626
632
  }
627
633
  }
@@ -718,14 +724,13 @@ contract Staking is
718
724
  onlyInitializing()
719
725
  {
720
726
  (
721
- address registryAddress,
722
727
  address targetHandlerAddress,
723
728
  address stakingStoreAddress,
724
729
  address tokenRegistryAddress
725
- ) = abi.decode(data, (address, address, address, address));
730
+ ) = abi.decode(data, (address, address, address));
726
731
 
727
732
  // wiring to external contracts
728
- IRegistry registry = IRegistry(registryAddress);
733
+ IRegistry registry = _getRegistry();
729
734
  StakingStorage storage $ = _getStakingStorage();
730
735
  $._protocolNftId = registry.getProtocolNftId();
731
736
  $._targetHandler = TargetHandler(targetHandlerAddress);
@@ -735,9 +740,9 @@ contract Staking is
735
740
  // staking service has to be set via setStakingService after deploying the first GIF release
736
741
 
737
742
  // initialize component
743
+ // TODO Will read 0 component service address from registry
738
744
  __Component_init(
739
745
  registry.getAuthority(),
740
- registryAddress,
741
746
  registry.getNftId(), // parent nft id
742
747
  CONTRACT_NAME,
743
748
  STAKING(),
@@ -771,7 +776,7 @@ contract Staking is
771
776
  }
772
777
 
773
778
  if (checkOwner) {
774
- address nftOwner = getRegistry().ownerOf(nftId);
779
+ address nftOwner = _getRegistry().ownerOf(nftId);
775
780
  if (msg.sender != nftOwner) {
776
781
  revert ErrorStakingNotOwner(nftId, nftOwner, msg.sender);
777
782
  }
@@ -6,6 +6,7 @@ import {IStaking} from "./IStaking.sol";
6
6
  import {IStakingService} from "./IStakingService.sol";
7
7
 
8
8
  import {Amount} from "../type/Amount.sol";
9
+ import {ContractLib} from "../shared/ContractLib.sol";
9
10
  import {NftId} from "../type/NftId.sol";
10
11
  import {ReleaseRegistry} from "../registry/ReleaseRegistry.sol";
11
12
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
@@ -111,13 +112,14 @@ library StakingLib {
111
112
 
112
113
 
113
114
  function checkAndGetStakingService(
114
- IRegistry registry,
115
115
  VersionPart release
116
116
  )
117
117
  public
118
118
  view
119
119
  returns (IStakingService stakingService)
120
120
  {
121
+ IRegistry registry = ContractLib.getRegistry();
122
+
121
123
  if (!ReleaseRegistry(registry.getReleaseRegistryAddress()).isActiveRelease(release)) {
122
124
  revert IStaking.ErrorStakingReleaseNotActive(release);
123
125
  }
@@ -15,7 +15,6 @@ contract StakingManager is
15
15
 
16
16
  /// @dev initializes proxy manager with service implementation
17
17
  constructor(
18
- address registry,
19
18
  address targetHandler,
20
19
  address stakingStore,
21
20
  address tokenRegistry,
@@ -27,13 +26,11 @@ contract StakingManager is
27
26
 
28
27
  _initialImplementation = address(stakingImplementation);
29
28
  _initializationData = abi.encode(
30
- registry,
31
29
  targetHandler,
32
30
  stakingStore,
33
31
  tokenRegistry);
34
32
 
35
33
  IUpgradeable upgradeable = initialize(
36
- registry,
37
34
  _initialImplementation,
38
35
  _initializationData,
39
36
  salt);
@@ -4,36 +4,32 @@ pragma solidity ^0.8.20;
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
6
  import {IRegistry} from "../registry/IRegistry.sol";
7
- import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
7
+ import {RegistryLinked} from "../shared/RegistryLinked.sol";
8
8
  import {IStaking} from "../staking/IStaking.sol";
9
9
 
10
- import {Amount, AmountLib} from "../type/Amount.sol";
11
- import {Blocknumber} from "../type/Blocknumber.sol";
10
+ import {Amount} from "../type/Amount.sol";
12
11
  import {ChainId} from "../type/ChainId.sol";
13
12
  import {NftId} from "../type/NftId.sol";
14
13
  import {ObjectType} from "../type/ObjectType.sol";
14
+ import {RegistryLinked} from "../shared/RegistryLinked.sol";
15
15
  import {Seconds} from "../type/Seconds.sol";
16
16
  import {StakingStore} from "./StakingStore.sol";
17
- import {STAKE, TARGET} from "../type/ObjectType.sol";
18
- import {Timestamp} from "../type/Timestamp.sol";
19
17
  import {UFixed} from "../type/UFixed.sol";
20
18
 
21
19
 
22
20
  contract StakingReader is
23
- IRegistryLinked,
24
- Initializable
21
+ Initializable,
22
+ RegistryLinked
25
23
  {
26
24
 
27
25
  error ErrorStakingReaderUnauthorizedCaler();
28
26
 
29
27
  address private _initializeOwner;
30
- IRegistry private _registry;
31
28
  IStaking private _staking;
32
29
  StakingStore private _store;
33
30
 
34
- constructor(IRegistry registry) {
31
+ constructor() {
35
32
  _initializeOwner = msg.sender;
36
- _registry = registry;
37
33
  }
38
34
 
39
35
  function initialize(
@@ -51,18 +47,14 @@ contract StakingReader is
51
47
  _store = StakingStore(stakingStoreAddress);
52
48
  }
53
49
 
54
- // view and pure functions
55
-
56
- function getRegistry() external view returns (IRegistry registry) {
57
- return _registry;
58
- }
50
+ // view functions
59
51
 
60
52
  function getStaking() external view returns (IStaking staking) {
61
53
  return _staking;
62
54
  }
63
55
 
64
56
  function getProtocolNftId() external view returns (NftId protocolNftId) {
65
- return _registry.getProtocolNftId();
57
+ return _getRegistry().getProtocolNftId();
66
58
  }
67
59
 
68
60
 
@@ -82,7 +74,7 @@ contract StakingReader is
82
74
 
83
75
 
84
76
  function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
85
- return _registry.getParentNftId(stakeNftId);
77
+ return _getRegistry().getParentNftId(stakeNftId);
86
78
  }
87
79
 
88
80