@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
@@ -5,114 +5,376 @@ import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165C
5
5
  import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
6
6
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
7
7
 
8
+ import {IInstance} from "../instance/IInstance.sol";
9
+ import {IOracleComponent} from "../oracle/IOracleComponent.sol";
8
10
  import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
9
11
  import {IRegistry} from "../registry/IRegistry.sol";
10
12
  import {IService} from "../shared/IService.sol";
11
13
 
12
14
  import {ChainId} from "../type/ChainId.sol";
13
15
  import {NftId} from "../type/NftId.sol";
14
- import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL} from "../type/ObjectType.sol";
16
+ import {ObjectType, INSTANCE, COMPONENT, PRODUCT, DISTRIBUTION, ORACLE, POOL, POLICY, BUNDLE} from "../type/ObjectType.sol";
17
+ import {TokenRegistry} from "../registry/TokenRegistry.sol";
15
18
  import {VersionPart} from "../type/Version.sol";
16
19
 
17
20
  interface ITargetHelper {
18
21
  function isTargetLocked(address target) external view returns (bool);
19
22
  }
20
23
 
21
- interface IInstanceAdminHelper {
22
- function getInstanceAdmin() external view returns (ITargetHelper);
23
- }
24
+ library ContractLib {
24
25
 
25
- interface ITokenRegistryHelper {
26
- function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool);
27
- }
26
+ error ErrorContractLibCallerNotRegistered(address caller);
27
+ error ErrorContractLibCallerNotComponent(/*address caller, */NftId callerNftId, ObjectType callerType);
28
+ error ErrorContractLibParentNotInstance(/*address component, */NftId componentNftId, NftId parentNftId/*, ObjectType parentType*/);
29
+ error ErrorContractLibParentNotProduct(/*address component, */NftId componentNftId, NftId parentNftId/*, ObjectType parentType*/);
30
+ error ErrorContractLibComponentTypeMismatch(/*address component, */NftId componentNftId, ObjectType expectedType, ObjectType actualType);
31
+ error ErrorContractLibComponentReleaseMismatch(/*address component, */NftId componentNftId, VersionPart expectedRelease, VersionPart actualRelease);
32
+ error ErrorContractLibComponentInactive(/*address component, */NftId componentNftId);
28
33
 
29
- library ContractLib {
34
+ error ErrorContractLibObjectNotRegistered(NftId objectNftId);
35
+ error ErrorContractLibObjectTypeMismatch(NftId objectNftId, ObjectType expectedType, ObjectType actualType);
36
+ error ErrorContractLibObjectReleaseMismatch(NftId objectNftId, VersionPart expectedRelease, VersionPart actualRelease);
37
+ error ErrorContractLibObjectParentMismatch(NftId objectNftId, NftId expectedParentNftId, NftId actualParentNftId);
38
+
39
+ error ErrorContractLibParentsMismatch(NftId componentNftId, NftId componentParentNftId, NftId objectNftId, NftId objectParentNftId);
30
40
 
31
- error ErrorContractLibCallerNotRegistered(address target);
32
- error ErrorContractLibCallerNotComponent(NftId componentNftId, ObjectType objectType);
33
- error ErrorContractLibParentNotInstance(NftId componentNftId, NftId parentNftId);
34
- error ErrorContractLibParentNotProduct(NftId componentNftId, NftId parentNftId);
35
- error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
36
- error ErrorContractLibComponentInactive(NftId componentNftId);
41
+
42
+
43
+ // update registry address whenever it changes
44
+ address public constant REGISTRY_ADDRESS = address(0x345cA3e014Aaf5dcA488057592ee47305D9B3e10);
45
+
46
+ function getRegistry() internal pure returns (IRegistry) {
47
+ return IRegistry(REGISTRY_ADDRESS);
48
+ }
49
+
50
+ function getAndVerifyProduct(VersionPart expectedRelease)
51
+ external
52
+ view
53
+ returns (
54
+ NftId, // productNftId
55
+ IInstance // instance,
56
+ )
57
+ {
58
+ return getAndVerifyComponent(
59
+ msg.sender,
60
+ PRODUCT(),
61
+ expectedRelease,
62
+ true); // only active product
63
+ }
64
+
65
+ function getAndVerifyPool(VersionPart expectedRelease)
66
+ external
67
+ view
68
+ returns (
69
+ NftId, // poolNftId
70
+ IInstance // instance,
71
+ )
72
+ {
73
+ return getAndVerifyComponent(
74
+ msg.sender,
75
+ POOL(),
76
+ expectedRelease,
77
+ true); // only active pool
78
+ }
79
+
80
+ function getAndVerifyProductForPolicy(NftId policyNftId, VersionPart expectedRelease)
81
+ external
82
+ view
83
+ returns (
84
+ NftId, // productNftId
85
+ IInstance // instance,
86
+ )
87
+ {
88
+ return getAndVerifyComponentWithChild(
89
+ msg.sender, // product
90
+ true, // only active product
91
+ policyNftId, // child nft id
92
+ POLICY(), // child must be policy
93
+ expectedRelease);
94
+ }
95
+
96
+ function getAndVerifyPoolForBundle(NftId bundleNftId, VersionPart expectedRelease)
97
+ external
98
+ view
99
+ returns (
100
+ NftId, // poolNftId
101
+ IInstance // instance,
102
+ )
103
+ {
104
+ return getAndVerifyComponentWithChild({
105
+ component: msg.sender, // pool
106
+ onlyActive: true, // only active pool
107
+ childNftId: bundleNftId, // child nft id
108
+ expectedChildType: BUNDLE(), // child must be bundle
109
+ expectedRelease: expectedRelease});
110
+ }
111
+
112
+ function getAndVerifyPoolForPolicy(NftId policyNftId, VersionPart expectedRelease)
113
+ external
114
+ view
115
+ returns (
116
+ NftId poolNftId,
117
+ IInstance instance
118
+ )
119
+ {
120
+ (poolNftId,, instance) = getAndVerifyComponentAndObject({
121
+ component: msg.sender, // pool
122
+ expectedComponentType: POOL(),
123
+ onlyActive: true,
124
+ objectNftId: policyNftId,
125
+ expectedObjectType: POLICY(),
126
+ expectedRelease: expectedRelease
127
+ });
128
+ }
129
+
130
+ function getAndVerifyComponentAndOracle(
131
+ NftId oracleNftId,
132
+ VersionPart expectedRelease
133
+ )
134
+ external
135
+ view
136
+ returns (
137
+ NftId requesterNftId,
138
+ IOracleComponent oracle,
139
+ IInstance instance
140
+ )
141
+ {
142
+ address oracleAddress;
143
+ (requesterNftId, oracleAddress, instance) = getAndVerifyComponentAndObject({
144
+ component: msg.sender,
145
+ expectedComponentType: COMPONENT(),
146
+ onlyActive: true,
147
+ objectNftId: oracleNftId,
148
+ expectedObjectType: ORACLE(),
149
+ expectedRelease: expectedRelease
150
+ });
151
+
152
+ oracle = IOracleComponent(oracleAddress);
153
+ }
37
154
 
38
155
 
39
156
  function getInfoAndInstance(
40
- IRegistry registry,
41
157
  NftId componentNftId,
158
+ VersionPart release,
42
159
  bool onlyActive
43
160
  )
44
- external
161
+ public
45
162
  view
46
163
  returns (
47
164
  IRegistry.ObjectInfo memory info,
48
- address instance
165
+ IInstance instance
49
166
  )
50
167
  {
168
+ IRegistry registry = getRegistry();
51
169
  info = registry.getObjectInfo(componentNftId);
52
- return _getAndVerifyComponentAndInstance(registry, info, info.objectType, onlyActive);
170
+ (, instance) = _getAndVerifyComponentAndInstance(info, info.objectType, release, onlyActive);
53
171
  }
54
172
 
55
173
 
56
- function getAndVerifyAnyComponent(
57
- IRegistry registry,
174
+ function getAndVerifyComponent(
58
175
  address caller,
176
+ ObjectType expectedType,
177
+ VersionPart expectedRelease,
59
178
  bool onlyActive
60
179
  )
61
- external
180
+ public
62
181
  view
63
182
  returns (
64
- IRegistry.ObjectInfo memory callerInfo,
65
- address instance
183
+ NftId componentNftId,
184
+ IInstance instance
66
185
  )
67
186
  {
68
- // check caller is component
69
- callerInfo = _getAndVerifyObjectInfo(registry, caller);
70
- if(!(callerInfo.objectType == PRODUCT()
71
- || callerInfo.objectType == POOL()
72
- || callerInfo.objectType == DISTRIBUTION()
73
- || callerInfo.objectType == ORACLE())
74
- ) {
75
- revert ErrorContractLibCallerNotComponent(
76
- callerInfo.nftId,
77
- callerInfo.objectType);
187
+ // check caller is registered
188
+ IRegistry.ObjectInfo memory info = _getAndVerifyObjectInfo(caller);
189
+ // check caller info
190
+ return _getAndVerifyComponentAndInstance(info, expectedType, expectedRelease, onlyActive);
191
+ }
192
+
193
+ function getAndVerifyComponentWithChild(
194
+ address component,
195
+ bool onlyActive,
196
+ NftId childNftId,
197
+ ObjectType expectedChildType, // assume valid component type
198
+ VersionPart expectedRelease
199
+ )
200
+ public
201
+ view
202
+ returns (
203
+ //IRegistry.ObjectInfo memory info, // component info
204
+ NftId componentNftId,
205
+ IInstance instance)
206
+ {
207
+ IRegistry registry = getRegistry();
208
+ IRegistry.ObjectInfo memory info = registry.getObjectInfo(childNftId);
209
+
210
+ // check child registration
211
+ if(info.nftId.eqz()) {
212
+ revert ErrorContractLibObjectNotRegistered(childNftId);
78
213
  }
79
214
 
80
- return _getAndVerifyComponentAndInstance(registry, callerInfo, callerInfo.objectType, onlyActive);
81
- }
215
+ // check child type
216
+ if(info.objectType != expectedChildType) {
217
+ revert ErrorContractLibObjectTypeMismatch(
218
+ childNftId,
219
+ expectedChildType,
220
+ info.objectType);
221
+ }
82
222
 
223
+ // check child release
224
+ if(info.release != expectedRelease) {
225
+ revert ErrorContractLibObjectReleaseMismatch(
226
+ childNftId,
227
+ expectedRelease,
228
+ info.release);
229
+ }
83
230
 
84
- function getAndVerifyComponent(
85
- IRegistry registry,
86
- address caller,
87
- ObjectType expectedType,
88
- bool onlyActive
231
+ info = registry.getObjectInfo(info.parentNftId);
232
+ componentNftId = info.nftId;
233
+
234
+ // check parent is component
235
+ if(info.objectAddress != component) {
236
+ revert ErrorContractLibObjectParentMismatch(
237
+ childNftId,
238
+ registry.getNftIdForAddress(component),
239
+ info.nftId);
240
+ }
241
+
242
+ // get instance
243
+ instance = getAndVerifyInstance(info);// _getAndVerifyInstance(info);
244
+
245
+ // check component is active
246
+ _checkComponentActive(
247
+ instance,
248
+ component,
249
+ componentNftId,
250
+ onlyActive);
251
+ }
252
+
253
+ /// @dev
254
+ // component is contract of type COMPONENT
255
+ // objectNftId is either contract of type COMPONENT or object of type POLICY, BUNDLE, etc.
256
+ // is either child of component or have same parent as component
257
+ function getAndVerifyComponentAndObject(
258
+ address component,
259
+ ObjectType expectedComponentType,
260
+ bool onlyActive,
261
+ NftId objectNftId,
262
+ ObjectType expectedObjectType,
263
+ VersionPart expectedRelease
89
264
  )
90
- external
265
+ public
91
266
  view
92
267
  returns (
93
- IRegistry.ObjectInfo memory info,
94
- address instance
95
- )
268
+ NftId componentNftId,
269
+ address objectAddress, // 0 for non contracts objects
270
+ IInstance instance)
96
271
  {
97
- info = _getAndVerifyObjectInfo(registry, caller);
98
- return _getAndVerifyComponentAndInstance(registry, info, expectedType, onlyActive);
272
+ IRegistry registry = getRegistry();
273
+
274
+ IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(component);
275
+ componentNftId = componentInfo.nftId;
276
+
277
+ // check component registered
278
+
279
+ // check component type
280
+ if(expectedComponentType != COMPONENT()) {
281
+ if(componentInfo.objectType != expectedComponentType) {
282
+ revert ErrorContractLibComponentTypeMismatch(
283
+ //component,
284
+ componentInfo.nftId,
285
+ expectedComponentType,
286
+ componentInfo.objectType);
287
+ }
288
+ } else if(
289
+ !(
290
+ componentInfo.objectType == PRODUCT() ||
291
+ componentInfo.objectType == POOL() ||
292
+ componentInfo.objectType == DISTRIBUTION() ||
293
+ componentInfo.objectType == ORACLE()
294
+ )
295
+ ) {
296
+ revert ErrorContractLibCallerNotComponent(
297
+ //component,
298
+ componentInfo.nftId,
299
+ componentInfo.objectType);
300
+ }
301
+
302
+ // check component release
303
+ if(componentInfo.release != expectedRelease) {
304
+ revert ErrorContractLibComponentReleaseMismatch(
305
+ //component,
306
+ componentInfo.nftId,
307
+ expectedRelease,
308
+ componentInfo.release);
309
+ }
310
+
311
+ IRegistry.ObjectInfo memory objectInfo = registry.getObjectInfo(objectNftId);
312
+ objectAddress = objectInfo.objectAddress;
313
+
314
+ // check object type
315
+ if(objectInfo.objectType != expectedObjectType) {
316
+ revert ErrorContractLibObjectTypeMismatch(
317
+ objectNftId,
318
+ expectedObjectType,
319
+ objectInfo.objectType);
320
+ }
321
+
322
+ if(componentInfo.objectType == PRODUCT()) {
323
+ // check object parent is product
324
+ if(componentInfo.nftId != objectInfo.parentNftId) {
325
+ revert ErrorContractLibObjectParentMismatch(
326
+ objectNftId,
327
+ objectInfo.parentNftId,
328
+ componentInfo.nftId);
329
+ }
330
+ } else {
331
+ // check component parent is product
332
+
333
+ // check object parent is same product
334
+ if(componentInfo.parentNftId != objectInfo.parentNftId) {
335
+ revert ErrorContractLibParentsMismatch(
336
+ componentInfo.nftId,
337
+ componentInfo.parentNftId,
338
+ objectNftId,
339
+ objectInfo.parentNftId);
340
+ }
341
+ }
342
+
343
+ // get instance
344
+ instance = getAndVerifyInstance(componentInfo);
345
+
346
+ // check component is active
347
+ _checkComponentActive(
348
+ instance,
349
+ component,
350
+ componentNftId,
351
+ onlyActive);
99
352
  }
100
353
 
101
354
 
102
355
  function getInstanceForComponent(
103
- IRegistry registry,
104
356
  NftId componentNftId
105
357
  )
106
358
  public
107
359
  view
108
360
  returns (address instance)
109
361
  {
362
+ IRegistry registry = getRegistry();
110
363
  NftId productNftId = registry.getParentNftId(componentNftId);
111
364
  NftId instanceNftId = registry.getParentNftId(productNftId);
112
365
  return registry.getObjectInfo(instanceNftId).objectAddress;
113
366
  }
114
367
 
368
+ // TODO check array of nfts and array of types
369
+ // need to call: checkNftType({nftId: {nftId1, nftId2, nftId3}, expectedObjectType: {.., .., ..}})
370
+ /*function checkNftType(NftId nftId, ObjectType expectedObjectType) external view {
371
+ VersionPart expectedRelease = getRelease();
372
+ if(expectedObjectType.eqz() || !_getRegistry().isObjectType(nftId, expectedObjectType, expectedRelease)) {
373
+ revert ErrorNftOwnableInvalidType(nftId, expectedObjectType, expectedRelease);
374
+ }
375
+ }*/
115
376
 
377
+ // TODO hardcoded token registry address?
116
378
  function isActiveToken(
117
379
  address tokenRegistryAddress,
118
380
  ChainId chainId,
@@ -123,7 +385,7 @@ library ContractLib {
123
385
  view
124
386
  returns (bool)
125
387
  {
126
- return ITokenRegistryHelper(
388
+ return TokenRegistry(
127
389
  tokenRegistryAddress).isActive(
128
390
  chainId, token, release);
129
391
  }
@@ -160,16 +422,6 @@ library ContractLib {
160
422
  }
161
423
 
162
424
 
163
- function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
164
- NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
165
- if (nftId.eqz()) {
166
- return false;
167
- }
168
-
169
- return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
170
- }
171
-
172
-
173
425
  function isService(address service) public view returns (bool) {
174
426
  if (!isContract(service)) {
175
427
  return false;
@@ -179,12 +431,8 @@ library ContractLib {
179
431
  }
180
432
 
181
433
 
182
- function isRegistry(address registry) public view returns (bool) {
183
- if (!isContract(registry)) {
184
- return false;
185
- }
186
-
187
- return supportsInterface(registry, type(IRegistry).interfaceId);
434
+ function isRegistry(address registry) public pure returns (bool) {
435
+ return registry == REGISTRY_ADDRESS;
188
436
  }
189
437
 
190
438
 
@@ -206,39 +454,59 @@ library ContractLib {
206
454
 
207
455
 
208
456
  function _getAndVerifyComponentAndInstance(
209
- IRegistry registry,
210
457
  IRegistry.ObjectInfo memory info,
211
458
  ObjectType expectedType,
459
+ VersionPart expectedRelease,
212
460
  bool onlyActive
213
461
  )
214
462
  internal
215
463
  view
216
464
  returns (
217
- IRegistry.ObjectInfo memory,
218
- address instance
465
+ NftId componentNftId,
466
+ IInstance instance
219
467
  )
220
468
  {
221
- if(info.objectType != expectedType) {
222
- revert ErrorContractLibComponentTypeMismatch(
469
+ if(expectedType != COMPONENT()) {
470
+ if(info.objectType != expectedType) {
471
+ revert ErrorContractLibComponentTypeMismatch(
472
+ //info.objectAddress,
473
+ info.nftId,
474
+ expectedType,
475
+ info.objectType);
476
+ }
477
+ } else if(
478
+ !(
479
+ info.objectType == PRODUCT() ||
480
+ info.objectType == POOL() ||
481
+ info.objectType == DISTRIBUTION() ||
482
+ info.objectType == ORACLE()
483
+ )
484
+ ) {
485
+ revert ErrorContractLibCallerNotComponent(
486
+ //info.objectAddress,
223
487
  info.nftId,
224
- expectedType,
225
488
  info.objectType);
226
489
  }
227
490
 
491
+ if(info.release != expectedRelease) {
492
+ revert ErrorContractLibComponentReleaseMismatch(
493
+ //info.objectAddress,
494
+ info.nftId,
495
+ expectedRelease,
496
+ info.release);
497
+ }
498
+
499
+ componentNftId = info.nftId;
500
+
228
501
  // get instance and check component is active
229
- instance = getAndVerifyInstance(registry, info);
502
+ instance = getAndVerifyInstance(info);
230
503
  _checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
231
-
232
- return (
233
- info,
234
- instance
235
- );
236
504
  }
237
505
 
238
506
 
239
507
  function _checkComponentActive(
240
- address instance,
241
- address target,
508
+ IInstance instance,
509
+ address component,
242
510
  NftId componentNftId,
243
511
  bool onlyActive
244
512
  )
@@ -246,11 +514,8 @@ library ContractLib {
246
514
  view
247
515
  {
248
516
  if (onlyActive) {
249
- if (IInstanceAdminHelper(
250
- instance).getInstanceAdmin().isTargetLocked(
251
- target)
252
- ) {
253
- revert ErrorContractLibComponentInactive(componentNftId);
517
+ if (instance.getInstanceAdmin().isTargetLocked(component)) {
518
+ revert ErrorContractLibComponentInactive(/*component, */componentNftId);
254
519
  }
255
520
  }
256
521
  }
@@ -260,13 +525,14 @@ library ContractLib {
260
525
  /// The info may represent a product or any other component.
261
526
  /// If the parent of the provided info is not registered with the correct type, the function reverts.
262
527
  function getAndVerifyInstance(
263
- IRegistry registry,
264
528
  IRegistry.ObjectInfo memory info
265
529
  )
266
530
  public
267
531
  view
268
- returns (address instance)
532
+ returns (IInstance instance)
269
533
  {
534
+ IRegistry registry = getRegistry();
535
+
270
536
  // get instance for product case
271
537
  if (info.objectType == PRODUCT()) {
272
538
  // verify that parent of product is registered instance
@@ -278,7 +544,7 @@ library ContractLib {
278
544
  }
279
545
 
280
546
  // we have verified that parent object is a registerd instance -> we return the instance address
281
- return instanceInfo.objectAddress;
547
+ return IInstance(instanceInfo.objectAddress);
282
548
  }
283
549
 
284
550
  // not product: verify parent is registered product
@@ -290,23 +556,23 @@ library ContractLib {
290
556
  }
291
557
 
292
558
  // we have verified that parent is registerd product -> we can rely on registry that its parent is an instance
293
- return registry.getObjectAddress(info.parentNftId);
559
+ return IInstance(registry.getObjectAddress(info.parentNftId));
294
560
  }
295
561
 
296
-
562
+ // check registration and return info
297
563
  function _getAndVerifyObjectInfo(
298
- IRegistry registry,
299
564
  address caller
300
565
  )
301
566
  internal
302
567
  view
303
568
  returns (IRegistry.ObjectInfo memory info)
304
569
  {
305
- NftId componentNftId = registry.getNftIdForAddress(caller);
306
- if (componentNftId.eqz()) {
570
+ IRegistry registry = getRegistry();
571
+
572
+ info = registry.getObjectInfo(caller);
573
+
574
+ if (info.nftId.eqz()) {
307
575
  revert ErrorContractLibCallerNotRegistered(caller);
308
576
  }
309
-
310
- info = registry.getObjectInfo(componentNftId);
311
577
  }
312
578
  }
@@ -0,0 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";
5
+ import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
@@ -0,0 +1,15 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IComponent} from "../shared/IComponent.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
+
7
+ /// @dev component base class
8
+ /// component examples are product, distribution, pool and oracle
9
+ interface IAuthorizedComponent is
10
+ IComponent
11
+ {
12
+ /// @dev returns the initial component authorization specification.
13
+ function getAuthorization() external view returns (IAuthorization authorization);
14
+
15
+ }
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {IComponent} from "../shared/IComponent.sol";
5
+ import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IInstance} from "../instance/IInstance.sol";
8
8
  import {NftId} from "../type/NftId.sol";
@@ -12,7 +12,7 @@ import {VersionPart} from "../type/Version.sol";
12
12
  /// @dev component base class
13
13
  /// component examples are product, distribution, pool and oracle
14
14
  interface IInstanceLinkedComponent is
15
- IComponent
15
+ IAuthorizedComponent
16
16
  {
17
17
  error ErrorInstanceLinkedComponentInstanceInvalid();
18
18
  error ErrorInstanceLinkedComponentInstanceMismatch(VersionPart instanceRelease, VersionPart componentRelease);
@@ -20,8 +20,4 @@ interface IInstanceLinkedComponent is
20
20
  /// @dev defines the instance to which this component is linked to
21
21
  function getInstance() external view returns (IInstance instance);
22
22
 
23
- // TODO consider moving to Registerable -> it works with authority
24
- /// @dev returns the initial component authorization specification.
25
- function getAuthorization() external view returns (IAuthorization authorization);
26
-
27
23
  }
@@ -5,7 +5,6 @@ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
 
6
6
  import {IRegistryLinked} from "./IRegistryLinked.sol";
7
7
  import {NftId} from "../type/NftId.sol";
8
- import {ObjectType} from "../type/ObjectType.sol";
9
8
 
10
9
  interface INftOwnable is
11
10
  IERC165,
@@ -15,7 +14,6 @@ interface INftOwnable is
15
14
 
16
15
  error ErrorNftOwnableInitialOwnerZero();
17
16
  error ErrorNftOwnableNotOwner(address account);
18
- error ErrorNftOwnableInvalidType(NftId nftId, ObjectType expectedObjectType);
19
17
 
20
18
  error ErrorNftOwnableAlreadyLinked(NftId nftId);
21
19
  error ErrorNftOwnableContractNotRegistered(address contractAddress);