@etherisc/gif-next 3.0.0-d6ff88d-936 → 3.0.0-dd00d66-173

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 (467) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +139 -72
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +110 -116
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +72 -33
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +89 -66
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +122 -101
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +20 -65
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +31 -55
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +20 -10
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +18 -42
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +126 -75
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -65
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +72 -57
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +198 -139
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -150
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -56
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -32
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +166 -104
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -65
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +200 -138
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -65
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +2 -2
  50. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  51. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +173 -116
  53. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +41 -65
  55. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +170 -108
  57. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +41 -65
  59. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +196 -134
  61. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +41 -65
  63. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  65. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  66. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +159 -102
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -65
  69. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  70. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +163 -106
  71. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +177 -120
  73. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -65
  75. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +171 -114
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -65
  79. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  80. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  81. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +49 -54
  82. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  84. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +77 -25
  85. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  86. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +83 -44
  87. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  88. package/artifacts/contracts/instance/Instance.sol/Instance.json +144 -50
  89. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  90. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +169 -147
  91. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  92. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +43 -67
  93. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +36 -36
  95. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +138 -75
  97. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -112
  99. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  101. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  102. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  103. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  104. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +53 -58
  105. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  107. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  108. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  109. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  110. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  111. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  113. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -8
  115. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  117. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  118. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  119. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  120. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  121. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  122. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  123. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +132 -81
  125. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
  127. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +94 -66
  130. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +80 -83
  132. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +82 -67
  134. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +149 -148
  136. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +111 -129
  138. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  139. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +88 -73
  140. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  141. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
  142. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +176 -117
  144. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +129 -139
  146. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  147. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +71 -32
  148. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  149. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +100 -72
  150. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  151. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +94 -86
  152. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  153. package/artifacts/contracts/pool/Pool.sol/Pool.json +88 -73
  154. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +24 -247
  156. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +233 -165
  158. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +140 -130
  160. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +138 -63
  162. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +110 -112
  164. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  165. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +72 -57
  166. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  167. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
  168. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  169. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +182 -115
  170. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -138
  172. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  173. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +71 -32
  174. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  175. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +71 -32
  176. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  177. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +82 -64
  178. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  179. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +82 -43
  180. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  181. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +84 -56
  182. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +75 -36
  184. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  185. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +173 -127
  186. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  187. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  188. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  189. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +122 -128
  190. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  191. package/artifacts/contracts/product/PricingService.sol/PricingService.json +161 -94
  192. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +116 -122
  194. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  195. package/artifacts/contracts/product/Product.sol/Product.json +72 -57
  196. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  197. package/artifacts/contracts/product/RiskService.sol/RiskService.json +146 -63
  198. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +109 -107
  200. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  201. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
  203. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +202 -216
  205. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
  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 +314 -96
  210. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  211. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +163 -142
  212. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  213. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
  214. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +285 -244
  216. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +115 -110
  218. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  219. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +159 -150
  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 +127 -185
  224. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
  226. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +13 -29
  228. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Component.sol/Component.json +84 -39
  230. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +164 -320
  232. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  233. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +115 -141
  234. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +421 -169
  236. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +96 -38
  239. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +96 -38
  241. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +82 -226
  243. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +84 -56
  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 -28
  248. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -12
  250. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +77 -25
  252. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +1 -12
  254. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IService.sol/IService.json +71 -32
  256. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  257. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -0
  258. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  259. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  260. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +72 -57
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -34
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -14
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +76 -24
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +3 -37
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  273. package/artifacts/contracts/shared/Service.sol/Service.json +70 -31
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  280. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  281. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
  282. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +101 -56
  284. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +75 -36
  286. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  287. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  288. package/artifacts/contracts/staking/Staking.sol/Staking.json +170 -109
  289. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +26 -31
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +112 -124
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +5 -22
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +132 -65
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +105 -111
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +212 -204
  301. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +27 -19
  303. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  305. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  306. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  331. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  332. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  333. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  335. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  337. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +19 -6
  348. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +63 -86
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  353. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
  354. package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
  355. package/contracts/accounting/AccountingService.sol +5 -6
  356. package/contracts/accounting/AccountingServiceManager.sol +4 -6
  357. package/contracts/accounting/IAccountingService.sol +1 -1
  358. package/contracts/authorization/AccessAdmin.sol +22 -19
  359. package/contracts/authorization/AccessAdminLib.sol +12 -9
  360. package/contracts/authorization/AccessManagerCloneable.sol +24 -48
  361. package/contracts/authorization/Authorization.sol +2 -2
  362. package/contracts/authorization/IAccessAdmin.sol +3 -3
  363. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  364. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  365. package/contracts/distribution/BasicDistribution.sol +0 -2
  366. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
  367. package/contracts/distribution/Distribution.sol +0 -2
  368. package/contracts/distribution/DistributionService.sol +24 -20
  369. package/contracts/distribution/DistributionServiceManager.sol +4 -6
  370. package/contracts/examples/fire/FirePool.sol +0 -4
  371. package/contracts/examples/fire/FireProduct.sol +0 -4
  372. package/contracts/examples/flight/FlightOracle.sol +0 -4
  373. package/contracts/examples/flight/FlightPool.sol +0 -4
  374. package/contracts/examples/flight/FlightProduct.sol +0 -4
  375. package/contracts/examples/unpermissioned/SimpleDistribution.sol +0 -4
  376. package/contracts/examples/unpermissioned/SimpleOracle.sol +0 -4
  377. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  378. package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
  379. package/contracts/instance/Instance.sol +7 -11
  380. package/contracts/instance/InstanceAdmin.sol +10 -17
  381. package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
  382. package/contracts/instance/InstanceReader.sol +15 -15
  383. package/contracts/instance/InstanceService.sol +18 -20
  384. package/contracts/instance/InstanceServiceManager.sol +4 -6
  385. package/contracts/instance/base/Cloneable.sol +4 -10
  386. package/contracts/instance/base/ObjectSet.sol +2 -2
  387. package/contracts/oracle/BasicOracle.sol +0 -2
  388. package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
  389. package/contracts/oracle/IOracleService.sol +0 -4
  390. package/contracts/oracle/Oracle.sol +3 -4
  391. package/contracts/oracle/OracleService.sol +37 -67
  392. package/contracts/oracle/OracleServiceManager.sol +4 -6
  393. package/contracts/pool/BasicPool.sol +2 -4
  394. package/contracts/pool/BasicPoolAuthorization.sol +5 -4
  395. package/contracts/pool/BundleService.sol +25 -19
  396. package/contracts/pool/BundleServiceManager.sol +5 -7
  397. package/contracts/pool/IPoolService.sol +5 -6
  398. package/contracts/pool/Pool.sol +1 -3
  399. package/contracts/pool/PoolLib.sol +5 -102
  400. package/contracts/pool/PoolService.sol +67 -101
  401. package/contracts/pool/PoolServiceManager.sol +4 -6
  402. package/contracts/product/ApplicationService.sol +13 -34
  403. package/contracts/product/ApplicationServiceManager.sol +4 -6
  404. package/contracts/product/BasicProduct.sol +0 -2
  405. package/contracts/product/BasicProductAuthorization.sol +5 -4
  406. package/contracts/product/ClaimService.sol +10 -34
  407. package/contracts/product/ClaimServiceManager.sol +5 -7
  408. package/contracts/product/IPolicyService.sol +0 -1
  409. package/contracts/product/PolicyService.sol +44 -57
  410. package/contracts/product/PolicyServiceManager.sol +4 -6
  411. package/contracts/product/PricingService.sol +7 -8
  412. package/contracts/product/PricingServiceManager.sol +4 -6
  413. package/contracts/product/Product.sol +0 -2
  414. package/contracts/product/RiskService.sol +8 -40
  415. package/contracts/product/RiskServiceManager.sol +4 -6
  416. package/contracts/registry/IRegistry.sol +20 -14
  417. package/contracts/registry/IRegistryService.sol +10 -14
  418. package/contracts/registry/IRelease.sol +0 -3
  419. package/contracts/registry/Registry.sol +124 -78
  420. package/contracts/registry/RegistryAdmin.sol +11 -22
  421. package/contracts/registry/RegistryAuthorization.sol +4 -3
  422. package/contracts/registry/RegistryService.sol +99 -82
  423. package/contracts/registry/RegistryServiceManager.sol +4 -11
  424. package/contracts/registry/ReleaseAdmin.sol +9 -16
  425. package/contracts/registry/ReleaseRegistry.sol +64 -74
  426. package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
  427. package/contracts/registry/TokenRegistry.sol +6 -15
  428. package/contracts/shared/Component.sol +27 -22
  429. package/contracts/shared/ComponentService.sol +45 -130
  430. package/contracts/shared/ComponentServiceManager.sol +5 -7
  431. package/contracts/shared/ContractLib.sol +359 -93
  432. package/contracts/shared/IComponent.sol +5 -3
  433. package/contracts/shared/IComponentService.sol +0 -14
  434. package/contracts/shared/IInstanceLinkedComponent.sol +3 -7
  435. package/contracts/shared/INftOwnable.sol +0 -2
  436. package/contracts/shared/IRegisterable.sol +14 -3
  437. package/contracts/shared/IRegistryLinked.sol +1 -3
  438. package/contracts/shared/IService.sol +2 -2
  439. package/contracts/shared/IVersionable.sol +19 -0
  440. package/contracts/shared/InstanceLinkedComponent.sol +29 -64
  441. package/contracts/shared/NftOwnable.sol +9 -22
  442. package/contracts/shared/PolicyHolder.sol +2 -4
  443. package/contracts/shared/Registerable.sol +37 -20
  444. package/contracts/shared/RegistryLinked.sol +4 -23
  445. package/contracts/shared/Service.sol +8 -9
  446. package/contracts/shared/TokenHandler.sol +4 -1
  447. package/contracts/shared/Versionable.sol +47 -0
  448. package/contracts/staking/IStaking.sol +2 -2
  449. package/contracts/staking/Staking.sol +28 -33
  450. package/contracts/staking/StakingLib.sol +3 -1
  451. package/contracts/staking/StakingManager.sol +3 -6
  452. package/contracts/staking/StakingReader.sol +9 -17
  453. package/contracts/staking/StakingService.sol +16 -13
  454. package/contracts/staking/StakingServiceManager.sol +4 -8
  455. package/contracts/staking/StakingStore.sol +8 -8
  456. package/contracts/staking/TargetHandler.sol +4 -5
  457. package/contracts/type/Version.sol +15 -16
  458. package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
  459. package/contracts/upgradeability/ProxyManager.sol +46 -54
  460. package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
  461. package/package.json +1 -1
  462. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +0 -4
  463. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +0 -24
  464. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +0 -4
  465. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +0 -40
  466. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
  467. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
@@ -7,19 +7,15 @@ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IInstance} from "../instance/IInstance.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
9
  import {ObjectType} from "../type/ObjectType.sol";
10
+ import {VersionPart} from "../type/Version.sol";
10
11
 
11
12
  /// @dev component base class
12
13
  /// component examples are product, distribution, pool and oracle
13
14
  interface IInstanceLinkedComponent is
14
15
  IAuthorizedComponent
15
16
  {
16
- error ErrorInstanceLinkedComponentTypeMismatch(ObjectType requiredType, ObjectType objectType);
17
- error ErrorInstanceLinkedComponentNotProduct(NftId nftId, ObjectType objectType);
18
-
19
- /// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
20
- /// @param amount the amount to withdraw
21
- /// @return withdrawnAmount the amount that was actually withdrawn
22
- function withdrawFees(Amount amount) external returns (Amount withdrawnAmount);
17
+ error ErrorInstanceLinkedComponentInstanceInvalid();
18
+ error ErrorInstanceLinkedComponentInstanceMismatch(VersionPart instanceRelease, VersionPart componentRelease);
23
19
 
24
20
  /// @dev defines the instance to which this component is linked to
25
21
  function getInstance() external view returns (IInstance instance);
@@ -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);
@@ -4,8 +4,11 @@ pragma solidity ^0.8.20;
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
6
  import {INftOwnable} from "./INftOwnable.sol";
7
- import {IRelease} from "../registry/IRelease.sol";
8
7
  import {IRegistry} from "../registry/IRegistry.sol";
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.
@@ -13,7 +16,7 @@ import {IRegistry} from "../registry/IRegistry.sol";
13
16
  interface IRegisterable is
14
17
  IAccessManaged,
15
18
  INftOwnable,
16
- IRelease
19
+ IVersionable
17
20
  {
18
21
  // __Registerable_init
19
22
  error ErrorAuthorityInvalid(address authority);
@@ -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);
@@ -32,5 +38,10 @@ interface IRegisterable is
32
38
  function getInitialInfo()
33
39
  external
34
40
  view
35
- returns (IRegistry.ObjectInfo memory);
41
+ returns (IRegistry.ObjectInfo memory info);
42
+
43
+ function getInitialData()
44
+ external
45
+ view
46
+ returns (bytes memory data);
36
47
  }
@@ -5,7 +5,5 @@ import {IRegistry} from "../registry/IRegistry.sol";
5
5
 
6
6
  interface IRegistryLinked {
7
7
 
8
- error ErrorNotRegistry(address registryAddress);
9
-
10
- function getRegistry() external view returns (IRegistry);
8
+ function getRegistry() external pure returns (IRegistry);
11
9
  }
@@ -4,14 +4,14 @@ pragma solidity ^0.8.20;
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
6
  import {IRegisterable} from "./IRegisterable.sol";
7
- import {IVersionable} from "../upgradeability/IVersionable.sol";
7
+ import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
8
8
  import {ObjectType} from "../type/ObjectType.sol";
9
9
  import {RoleId} from "../type/RoleId.sol";
10
10
 
11
11
  interface IService is
12
12
  IAccessManaged,
13
13
  IRegisterable,
14
- IVersionable
14
+ IUpgradeable
15
15
  {
16
16
  /// @dev returns the domain for this service.
17
17
  /// In any GIF release only one service for any given domain may be deployed.
@@ -0,0 +1,19 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Version, VersionPart} from "../type/Version.sol";
5
+
6
+ interface IVersionable {
7
+
8
+ error ErrorVersionableReleaseInvalid(address target, VersionPart invalidRelease);
9
+ error ErrorVersionableReleaseMismatch(address target, VersionPart expected, VersionPart actual);
10
+
11
+ /**
12
+ * @dev returns version of this contract
13
+ * implementation MUST define version in this function
14
+ * version number MUST increase
15
+ */
16
+ function getVersion() external pure returns(Version);
17
+
18
+ function getRelease() external pure returns(VersionPart);
19
+ }
@@ -33,7 +33,6 @@ abstract contract InstanceLinkedComponent is
33
33
 
34
34
  struct InstanceLinkedComponentStorage {
35
35
  IInstance _instance; // instance for this component
36
- InstanceReader _instanceReader; // instance reader for this component
37
36
  IAuthorization _initialAuthorization;
38
37
  IComponentService _componentService;
39
38
  IOracleService _oracleService;
@@ -53,16 +52,7 @@ abstract contract InstanceLinkedComponent is
53
52
  }
54
53
 
55
54
 
56
- /// @inheritdoc IInstanceLinkedComponent
57
- function withdrawFees(Amount amount)
58
- external
59
- virtual
60
- restricted()
61
- onlyOwner()
62
- returns (Amount withdrawnAmount)
63
- {
64
- return _withdrawFees(amount);
65
- }
55
+ //function setInstanceReader(address readerAddress);
66
56
 
67
57
  //--- internal functions ------------------------------------------------//
68
58
 
@@ -84,6 +74,7 @@ abstract contract InstanceLinkedComponent is
84
74
  }
85
75
 
86
76
 
77
+
87
78
  function _cancelRequest(RequestId requestId)
88
79
  internal
89
80
  virtual
@@ -108,7 +99,6 @@ abstract contract InstanceLinkedComponent is
108
99
 
109
100
 
110
101
  function __InstanceLinkedComponent_init(
111
- address registry,
112
102
  NftId parentNftId,
113
103
  string memory name,
114
104
  ObjectType componentType,
@@ -116,34 +106,25 @@ abstract contract InstanceLinkedComponent is
116
106
  bool isInterceptor,
117
107
  address initialOwner
118
108
  )
119
- internal
109
+ internal
120
110
  virtual
121
111
  onlyInitializing()
122
112
  {
123
- // validate registry, nft ids and get parent nft id
124
- NftId instanceNftId = _checkAndGetInstanceNftId(
125
- registry,
126
- parentNftId,
127
- componentType);
128
-
129
- // set and check linked instance
130
- InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
131
- $._instance = IInstance(
132
- IRegistry(registry).getObjectAddress(instanceNftId));
113
+ IInstance instance = _checkAndGetInstance(parentNftId, componentType);
133
114
 
134
115
  // set component specific parameters
135
116
  __Component_init(
136
- $._instance.authority(), // instance linked components need to point to instance admin
137
- registry,
117
+ instance.authority(),
138
118
  parentNftId,
139
119
  name,
140
- componentType,
120
+ componentType,
141
121
  isInterceptor,
142
122
  initialOwner,
143
123
  ""); // registry data
144
124
 
145
125
  // set instance linked specific parameters
146
- $._instanceReader = $._instance.getInstanceReader();
126
+ InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
127
+ $._instance = instance;
147
128
  $._initialAuthorization = authorization;
148
129
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
149
130
  $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
@@ -152,44 +133,35 @@ abstract contract InstanceLinkedComponent is
152
133
  _registerInterface(type(IInstanceLinkedComponent).interfaceId);
153
134
  }
154
135
 
155
-
156
- function _checkAndGetInstanceNftId(
157
- address registryAddress,
136
+ function _checkAndGetInstance(
158
137
  NftId parentNftId,
159
138
  ObjectType componentType
160
139
  )
161
- internal
140
+ private
162
141
  view
163
- returns (NftId instanceNftId)
142
+ returns (IInstance instance)
164
143
  {
165
- // if product, then parent is already instance
166
- if (componentType == PRODUCT()) {
167
- _checkAndGetRegistry(registryAddress, parentNftId, INSTANCE());
168
- return parentNftId;
144
+ NftId instanceNftId;
145
+ IRegistry registry = _getRegistry();
146
+
147
+ if(componentType == PRODUCT()) {
148
+ instanceNftId = parentNftId;
149
+ } else {
150
+ NftId productNftId = parentNftId;
151
+ instanceNftId = registry.getParentNftId(productNftId);
169
152
  }
170
153
 
171
- // if not product parent is product, and parent of product is instance
172
- IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
173
- return registry.getParentNftId(parentNftId);
174
- }
154
+ IRegistry.ObjectInfo memory info = registry.getObjectInfo(instanceNftId);
175
155
 
176
- /// @dev checks the and gets registry.
177
- /// validates registry using a provided nft id and expected object type.
178
- function _checkAndGetRegistry(
179
- address registryAddress,
180
- NftId objectNftId,
181
- ObjectType requiredType
182
- )
183
- internal
184
- view
185
- returns (IRegistry registry)
186
- {
187
- registry = IRegistry(registryAddress);
188
- IRegistry.ObjectInfo memory info = registry.getObjectInfo(objectNftId);
156
+ if (info.objectType != INSTANCE()) {
157
+ revert ErrorInstanceLinkedComponentInstanceInvalid();
158
+ }
189
159
 
190
- if (info.objectType != requiredType) {
191
- revert ErrorInstanceLinkedComponentTypeMismatch(requiredType, info.objectType);
160
+ if(info.release != getRelease()) {
161
+ revert ErrorInstanceLinkedComponentInstanceMismatch(info.release, getRelease());
192
162
  }
163
+
164
+ instance = IInstance(info.objectAddress);
193
165
  }
194
166
 
195
167
 
@@ -201,7 +173,7 @@ abstract contract InstanceLinkedComponent is
201
173
 
202
174
 
203
175
  function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
204
- NftId componentNftId = getRegistry().getNftIdForAddress(address(this));
176
+ NftId componentNftId = _getRegistry().getNftIdForAddress(address(this));
205
177
 
206
178
  // if registered, attempt to return component info via instance reader
207
179
  if (componentNftId.gtz()) {
@@ -221,13 +193,6 @@ abstract contract InstanceLinkedComponent is
221
193
 
222
194
  /// @dev returns reader for linked instance
223
195
  function _getInstanceReader() internal view returns (InstanceReader reader) {
224
- return _getInstanceLinkedComponentStorage()._instanceReader;
225
- }
226
-
227
- function _withdrawFees(Amount amount)
228
- internal
229
- returns (Amount withdrawnAmount)
230
- {
231
- return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
196
+ return _getInstanceLinkedComponentStorage()._instance.getInstanceReader();
232
197
  }
233
198
  }
@@ -4,7 +4,6 @@ pragma solidity ^0.8.20;
4
4
  import {InitializableERC165} from "./InitializableERC165.sol";
5
5
  import {INftOwnable} from "./INftOwnable.sol";
6
6
  import {NftId} from "../type/NftId.sol";
7
- import {ObjectType} from "../type/ObjectType.sol";
8
7
  import {RegistryLinked} from "./RegistryLinked.sol";
9
8
 
10
9
  contract NftOwnable is
@@ -29,28 +28,15 @@ contract NftOwnable is
29
28
  }
30
29
 
31
30
  modifier onlyNftOwner(NftId nftId) {
32
- if(!getRegistry().isOwnerOf(nftId, msg.sender)) {
31
+ if(!_getRegistry().isOwnerOf(nftId, msg.sender)) {
33
32
  revert ErrorNftOwnableNotOwner(msg.sender);
34
33
  }
35
34
  _;
36
35
  }
37
36
 
38
- modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
39
- _checkNftType(nftId, expectedObjectType);
40
- _;
41
- }
42
-
43
- function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
44
- if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType)) {
45
- revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
46
- }
47
- }
48
-
49
-
50
37
  /// @dev Initialization for upgradable contracts.
51
- // used in __Registerable_init, ProxyManager._preDeployChecksAndSetup
38
+ // used in __Registerable_init, ProxyManager.initialize
52
39
  function __NftOwnable_init(
53
- address registry,
54
40
  address initialOwner
55
41
  )
56
42
  internal
@@ -58,7 +44,6 @@ contract NftOwnable is
58
44
  onlyInitializing()
59
45
  {
60
46
  __ERC165_init();
61
- __RegistryLinked_init(registry);
62
47
 
63
48
  if(initialOwner == address(0)) {
64
49
  revert ErrorNftOwnableInitialOwnerZero();
@@ -88,7 +73,7 @@ contract NftOwnable is
88
73
  NftOwnableStorage storage $ = _getNftOwnableStorage();
89
74
 
90
75
  if ($._nftId.gtz()) {
91
- return getRegistry().ownerOf($._nftId);
76
+ return _getRegistry().ownerOf($._nftId);
92
77
  }
93
78
 
94
79
  return $._initialOwner;
@@ -108,15 +93,17 @@ contract NftOwnable is
108
93
  revert ErrorNftOwnableAlreadyLinked($._nftId);
109
94
  }
110
95
 
111
- if (!getRegistry().isRegistered(nftOwnableAddress)) {
96
+ NftId nftId = _getRegistry().getNftIdForAddress(nftOwnableAddress);
97
+
98
+ if (nftId.eqz()) {
112
99
  revert ErrorNftOwnableContractNotRegistered(nftOwnableAddress);
113
100
  }
114
101
 
115
- $._nftId = getRegistry().getNftIdForAddress(nftOwnableAddress);
102
+ $._nftId = nftId;
116
103
 
117
- emit LogNftOwnableNftLinkedToAddress($._nftId, getOwner());
104
+ emit LogNftOwnableNftLinkedToAddress(nftId, getOwner());
118
105
 
119
- return $._nftId;
106
+ return nftId;
120
107
  }
121
108
 
122
109
 
@@ -23,14 +23,12 @@ contract PolicyHolder is
23
23
  // callbacks must only be allowed from the policy and claim services
24
24
  // will need a release parameter to fetch the right service addresses for the modifiers
25
25
 
26
- function _initializePolicyHolder(
27
- address registryAddress
26
+ function __PolicyHolder_init(
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
  }
@@ -47,7 +45,7 @@ contract PolicyHolder is
47
45
  /// @dev empty default implementation
48
46
  function payoutExecuted(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary) external virtual {}
49
47
 
50
- //--- IERC165 functions ---------------//
48
+ //--- IERC721 functions ---------------//
51
49
  function onERC721Received(
52
50
  address, // operator
53
51
  address, // from
@@ -9,15 +9,16 @@ import {ContractLib} from "../shared/ContractLib.sol";
9
9
  import {NftId, NftIdLib} from "../type/NftId.sol";
10
10
  import {NftOwnable} from "../shared/NftOwnable.sol";
11
11
  import {ObjectType} from "../type/ObjectType.sol";
12
+ import {Versionable} from "../shared/Versionable.sol";
12
13
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
13
14
 
14
15
  import {IRegistry} from "../registry/IRegistry.sol";
15
16
  import {IRegisterable} from "./IRegisterable.sol";
16
- import {IRelease} from "../registry/IRelease.sol";
17
17
 
18
18
  abstract contract Registerable is
19
19
  AccessManagedUpgradeable,
20
20
  NftOwnable,
21
+ Versionable,
21
22
  IRegisterable
22
23
  {
23
24
  // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
@@ -37,14 +38,27 @@ abstract contract Registerable is
37
38
  _;
38
39
  }
39
40
 
41
+ modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
42
+ _checkNftType(nftId, expectedObjectType);
43
+ _;
44
+ }
45
+
46
+ // TODO move to registerables verification library
47
+ // TODO and check the owner here?
48
+ function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
49
+ VersionPart expectedRelease = getRelease();
50
+ if(expectedObjectType.eqz() || !_getRegistry().isObjectType(nftId, expectedObjectType, expectedRelease)) {
51
+ revert ErrorRegisterableInvalidType(nftId, expectedObjectType, expectedRelease);
52
+ }
53
+ }
54
+
40
55
  function __Registerable_init(
41
56
  address authority,
42
- address registry,
43
57
  NftId parentNftId,
44
58
  ObjectType objectType,
45
59
  bool isInterceptor,
46
60
  address initialOwner,
47
- bytes memory data // writeonly data that will saved in the object info record of the registry
61
+ bytes memory data
48
62
  )
49
63
  internal
50
64
  virtual
@@ -54,14 +68,19 @@ abstract contract Registerable is
54
68
  revert ErrorAuthorityInvalid(authority);
55
69
  }
56
70
 
71
+ VersionPart release = AccessManagerCloneable(authority).getRelease();
72
+
57
73
  __AccessManaged_init(authority);
58
- __NftOwnable_init(registry, initialOwner);
74
+ __NftOwnable_init(initialOwner);
75
+ __Versionable_init(release);
59
76
 
60
77
  RegisterableStorage storage $ = _getRegisterableStorage();
61
78
  $._parentNftId = parentNftId;
62
79
  $._objectType = objectType;
63
80
  $._isInterceptor = isInterceptor;
64
- $._data = data;
81
+ if(data.length > 0) {
82
+ $._data = data;
83
+ }
65
84
 
66
85
  _registerInterface(type(IAccessManaged).interfaceId);
67
86
  }
@@ -72,13 +91,6 @@ abstract contract Registerable is
72
91
  return !AccessManagerCloneable(authority()).isTargetClosed(address(this));
73
92
  }
74
93
 
75
-
76
- /// @inheritdoc IRelease
77
- function getRelease() public virtual view returns (VersionPart release) {
78
- return AccessManagerCloneable(authority()).getRelease();
79
- }
80
-
81
-
82
94
  /// @inheritdoc IRegisterable
83
95
  function getInitialInfo()
84
96
  public
@@ -87,14 +99,19 @@ abstract contract Registerable is
87
99
  returns (IRegistry.ObjectInfo memory info)
88
100
  {
89
101
  RegisterableStorage storage $ = _getRegisterableStorage();
90
- return IRegistry.ObjectInfo(
91
- NftIdLib.zero(),
92
- $._parentNftId,
93
- $._objectType,
94
- $._isInterceptor,
95
- address(this),
96
- getOwner(),
97
- $._data);
102
+ return (
103
+ IRegistry.ObjectInfo(
104
+ NftIdLib.zero(),
105
+ $._parentNftId,
106
+ $._objectType,
107
+ getRelease(),
108
+ $._isInterceptor,
109
+ address(this))
110
+ );
111
+ }
112
+
113
+ function getInitialData() public view virtual returns (bytes memory data) {
114
+ return _getRegisterableStorage()._data;
98
115
  }
99
116
 
100
117
 
@@ -1,38 +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
- IRegistry private _registry;
17
-
18
- /// @dev initialization for upgradable contracts
19
- // used in _initializeRegisterable
20
- function __RegistryLinked_init(
21
- address registry
22
- )
23
- internal
24
- virtual
25
- onlyInitializing()
26
- {
27
- if (!ContractLib.isRegistry(registry)) {
28
- revert ErrorNotRegistry(registry);
29
- }
30
-
31
- _registry = IRegistry(registry);
12
+ function getRegistry() external pure returns (IRegistry) {
13
+ return ContractLib.getRegistry();
32
14
  }
33
15
 
34
-
35
- function getRegistry() public view returns (IRegistry) {
36
- return _registry;
16
+ function _getRegistry() internal pure returns (IRegistry) {
17
+ return ContractLib.getRegistry();
37
18
  }
38
19
  }
@@ -5,25 +5,25 @@ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/ut
5
5
 
6
6
  import {IRegistry} from "../registry/IRegistry.sol";
7
7
  import {IService} from "./IService.sol";
8
- import {IVersionable} from "../upgradeability/IVersionable.sol";
8
+ import {IVersionable} from "../shared/IVersionable.sol";
9
9
  import {ObjectType, SERVICE} from "../type/ObjectType.sol";
10
10
  import {Registerable} from "./Registerable.sol";
11
11
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
12
- import {Version, VersionLib} from "../type/Version.sol";
13
- import {Versionable} from "../upgradeability/Versionable.sol";
12
+ import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
13
+ import {Versionable} from "../shared/Versionable.sol";
14
+ import {Upgradeable} from "../upgradeability/Upgradeable.sol";
14
15
 
15
16
 
16
17
  /// @dev service base contract
17
18
  abstract contract Service is
18
- Registerable,
19
- Versionable,
19
+ Registerable,
20
+ Upgradeable,
20
21
  ReentrancyGuardUpgradeable,
21
22
  IService
22
23
  {
23
24
 
24
25
  function __Service_init(
25
26
  address authority, // real authority for registry service adress(0) for other services
26
- address registry,
27
27
  address initialOwner
28
28
  )
29
29
  internal
@@ -34,8 +34,7 @@ abstract contract Service is
34
34
 
35
35
  __Registerable_init(
36
36
  authority,
37
- registry,
38
- IRegistry(registry).getNftId(),
37
+ _getRegistry().getNftId(),
39
38
  SERVICE(),
40
39
  false, // is interceptor
41
40
  initialOwner,
@@ -62,6 +61,6 @@ abstract contract Service is
62
61
 
63
62
 
64
63
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
65
- return getRegistry().getServiceAddress(domain, getRelease());
64
+ return _getRegistry().getServiceAddress(domain, getRelease());
66
65
  }
67
66
  }
@@ -10,6 +10,7 @@ import {ContractLib} from "../shared/ContractLib.sol";
10
10
  import {IRegistry} from "../registry/IRegistry.sol";
11
11
  import {NftId} from "../type/NftId.sol";
12
12
  import {SERVICE} from "../type/ObjectType.sol";
13
+ import {VersionPart} from "../type/Version.sol";
13
14
 
14
15
 
15
16
  /// @dev Token specific transfer helper base contract.
@@ -49,6 +50,7 @@ contract TokenHandlerBase {
49
50
  IERC20Metadata public immutable TOKEN;
50
51
  address public immutable COMPONENT;
51
52
  NftId public immutable NFT_ID;
53
+ VersionPart public immutable RELEASE;
52
54
 
53
55
  address internal _wallet;
54
56
 
@@ -69,6 +71,7 @@ contract TokenHandlerBase {
69
71
  REGISTRY = IRegistry(registry);
70
72
  COMPONENT = component;
71
73
  NFT_ID = REGISTRY.getNftIdForAddress(component);
74
+ RELEASE = REGISTRY.getObjectRelease(NFT_ID);
72
75
 
73
76
  if (NFT_ID.eqz()) {
74
77
  revert ErrorTokenHandlerComponentNotRegistered(component);
@@ -254,7 +257,7 @@ contract TokenHandler is
254
257
  error ErrorTokenHandlerNotService(address service);
255
258
 
256
259
  modifier onlyService() {
257
- if (!REGISTRY.isObjectType(msg.sender, SERVICE())) {
260
+ if (!REGISTRY.isObjectType(msg.sender, SERVICE(), RELEASE)) {
258
261
  revert ErrorTokenHandlerNotService(msg.sender);
259
262
  }
260
263
  _;