@etherisc/gif-next 3.0.0-cf1abe2-268 → 3.0.0-cf20ffd-765

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 (530) hide show
  1. package/README.md +10 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +119 -117
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +48 -93
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +145 -168
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +101 -43
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
  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 +85 -83
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -222
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +59 -168
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +252 -238
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -144
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +58 -180
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +145 -111
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -246
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +137 -279
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  51. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  53. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  55. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  57. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -0
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -0
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2214 -0
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  69. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  70. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  71. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  73. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  74. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -255
  77. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  79. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +108 -240
  81. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +125 -257
  83. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +116 -248
  87. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  88. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  89. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  91. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  92. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +69 -77
  93. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  95. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +47 -99
  97. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +126 -92
  99. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  100. package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -166
  101. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +225 -247
  103. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  105. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
  107. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -149
  109. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
  111. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +183 -133
  113. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  114. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +153 -103
  115. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  116. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +80 -88
  117. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +21 -21
  119. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  123. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  124. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  125. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  126. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +9 -4
  127. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  128. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  129. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  132. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  133. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  134. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  135. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  136. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -209
  138. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  140. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +63 -166
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +103 -94
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +69 -159
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +168 -163
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +78 -168
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  154. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  155. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  156. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -212
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +73 -107
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -179
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  164. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +142 -138
  165. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  166. package/artifacts/contracts/pool/Pool.sol/Pool.json +78 -168
  167. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  168. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
  169. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  170. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +221 -277
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  174. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +74 -149
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  178. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +59 -149
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  180. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  181. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  182. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -203
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +43 -82
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +59 -92
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +91 -97
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  192. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +45 -84
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  194. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +58 -161
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  196. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +51 -103
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  198. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -188
  199. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  200. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  201. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +132 -126
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  204. package/artifacts/contracts/product/PricingService.sol/PricingService.json +96 -163
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
  207. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  208. package/artifacts/contracts/product/Product.sol/Product.json +59 -149
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  210. package/artifacts/contracts/product/RiskService.sol/RiskService.json +78 -174
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +111 -113
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +70 -163
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  218. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
  219. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  220. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  221. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  222. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/Registry.sol/Registry.json +114 -322
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
  234. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  236. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  237. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +217 -156
  238. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  239. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  240. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  241. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +39 -23
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +554 -182
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
  248. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  249. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  250. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  253. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  254. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  255. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
  257. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
  259. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +457 -97
  261. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
  263. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  264. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +30 -3
  266. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  268. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
  270. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  271. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  272. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  273. package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
  274. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  275. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  276. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  277. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +59 -149
  278. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  279. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  280. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  281. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  282. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +36 -17
  283. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  284. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  285. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  286. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
  287. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  288. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  289. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  290. package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
  295. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  296. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  297. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  298. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +182 -283
  299. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  300. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -300
  301. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  302. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  303. package/artifacts/contracts/staking/Staking.sol/Staking.json +235 -352
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +84 -357
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  315. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -281
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  317. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +22 -35
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  319. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
  320. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  321. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  322. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  324. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  326. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  328. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  330. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  332. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  334. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  336. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  337. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  338. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  340. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  341. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  342. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  344. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  346. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  348. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  350. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  352. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  354. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  356. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  358. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  360. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  362. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  364. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  368. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  370. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  372. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  374. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  375. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  376. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  377. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
  378. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  379. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  380. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  382. package/contracts/accounting/AccountingService.sol +22 -33
  383. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  384. package/contracts/accounting/IAccountingService.sol +7 -8
  385. package/contracts/authorization/AccessAdmin.sol +34 -55
  386. package/contracts/authorization/AccessAdminLib.sol +29 -15
  387. package/contracts/authorization/AccessManagerCloneable.sol +52 -24
  388. package/contracts/authorization/Authorization.sol +2 -2
  389. package/contracts/authorization/IAccessAdmin.sol +11 -10
  390. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  391. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  392. package/contracts/distribution/BasicDistribution.sol +2 -0
  393. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  394. package/contracts/distribution/Distribution.sol +2 -0
  395. package/contracts/distribution/DistributionService.sol +44 -43
  396. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  397. package/contracts/distribution/IDistributionComponent.sol +0 -2
  398. package/contracts/distribution/IDistributionService.sol +8 -7
  399. package/contracts/examples/fire/FirePool.sol +4 -0
  400. package/contracts/examples/fire/FireProduct.sol +4 -0
  401. package/contracts/examples/flight/FlightLib.sol +337 -0
  402. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  403. package/contracts/examples/flight/FlightNft.sol +234 -0
  404. package/contracts/examples/flight/FlightOracle.sol +226 -0
  405. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  406. package/contracts/examples/flight/FlightPool.sol +89 -0
  407. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  408. package/contracts/examples/flight/FlightProduct.sol +687 -0
  409. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  410. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  411. package/contracts/examples/flight/FlightUSD.sol +28 -0
  412. package/contracts/examples/flight/originalV1.sol +396 -0
  413. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  414. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  415. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  416. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  417. package/contracts/instance/BaseStore.sol +4 -0
  418. package/contracts/instance/BundleSet.sol +7 -8
  419. package/contracts/instance/IBaseStore.sol +8 -0
  420. package/contracts/instance/IInstance.sol +8 -8
  421. package/contracts/instance/IInstanceService.sol +6 -4
  422. package/contracts/instance/Instance.sol +12 -8
  423. package/contracts/instance/InstanceAdmin.sol +17 -11
  424. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  425. package/contracts/instance/InstanceReader.sol +59 -23
  426. package/contracts/instance/InstanceService.sol +28 -18
  427. package/contracts/instance/InstanceServiceManager.sol +6 -4
  428. package/contracts/instance/InstanceStore.sol +14 -14
  429. package/contracts/instance/ProductStore.sol +14 -14
  430. package/contracts/instance/RiskSet.sol +6 -7
  431. package/contracts/instance/base/BalanceStore.sol +7 -7
  432. package/contracts/instance/base/Cloneable.sol +10 -4
  433. package/contracts/instance/base/ObjectSet.sol +3 -3
  434. package/contracts/oracle/BasicOracle.sol +3 -0
  435. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  436. package/contracts/oracle/IOracleService.sol +21 -17
  437. package/contracts/oracle/Oracle.sol +6 -5
  438. package/contracts/oracle/OracleService.sol +68 -38
  439. package/contracts/oracle/OracleServiceManager.sol +6 -4
  440. package/contracts/pool/BasicPool.sol +4 -2
  441. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  442. package/contracts/pool/BundleService.sol +22 -28
  443. package/contracts/pool/BundleServiceManager.sol +7 -5
  444. package/contracts/pool/IBundleService.sol +9 -10
  445. package/contracts/pool/IPoolComponent.sol +1 -1
  446. package/contracts/pool/IPoolService.sol +14 -13
  447. package/contracts/pool/Pool.sol +3 -1
  448. package/contracts/pool/PoolLib.sol +102 -5
  449. package/contracts/pool/PoolService.sol +101 -67
  450. package/contracts/pool/PoolServiceManager.sol +6 -4
  451. package/contracts/product/ApplicationService.sol +34 -13
  452. package/contracts/product/ApplicationServiceManager.sol +6 -4
  453. package/contracts/product/BasicProduct.sol +2 -0
  454. package/contracts/product/BasicProductAuthorization.sol +7 -7
  455. package/contracts/product/ClaimService.sol +35 -11
  456. package/contracts/product/ClaimServiceManager.sol +7 -5
  457. package/contracts/product/IApplicationService.sol +8 -8
  458. package/contracts/product/IClaimService.sol +9 -9
  459. package/contracts/product/IPolicyService.sol +8 -7
  460. package/contracts/product/IRiskService.sol +4 -5
  461. package/contracts/product/PolicyService.sol +58 -45
  462. package/contracts/product/PolicyServiceLib.sol +5 -3
  463. package/contracts/product/PolicyServiceManager.sol +6 -4
  464. package/contracts/product/PricingService.sol +8 -7
  465. package/contracts/product/PricingServiceManager.sol +6 -4
  466. package/contracts/product/Product.sol +2 -0
  467. package/contracts/product/RiskService.sol +42 -10
  468. package/contracts/product/RiskServiceManager.sol +6 -4
  469. package/contracts/registry/ChainNft.sol +2 -2
  470. package/contracts/registry/IRegistry.sol +15 -21
  471. package/contracts/registry/IRegistryService.sol +14 -10
  472. package/contracts/registry/IRelease.sol +3 -0
  473. package/contracts/registry/Registry.sol +82 -126
  474. package/contracts/registry/RegistryAdmin.sol +29 -12
  475. package/contracts/registry/RegistryAuthorization.sol +3 -6
  476. package/contracts/registry/RegistryService.sol +82 -99
  477. package/contracts/registry/RegistryServiceManager.sol +11 -4
  478. package/contracts/registry/ReleaseAdmin.sol +27 -13
  479. package/contracts/registry/ReleaseRegistry.sol +81 -72
  480. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  481. package/contracts/registry/TokenRegistry.sol +18 -9
  482. package/contracts/shared/Component.sol +22 -27
  483. package/contracts/shared/ComponentService.sol +168 -49
  484. package/contracts/shared/ComponentServiceManager.sol +7 -5
  485. package/contracts/shared/ContractLib.sol +93 -359
  486. package/contracts/shared/EcdsaChecker.sol +5 -0
  487. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  488. package/contracts/shared/IComponent.sol +3 -9
  489. package/contracts/shared/IComponentService.sol +46 -10
  490. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  491. package/contracts/shared/INftOwnable.sol +3 -1
  492. package/contracts/shared/IRegisterable.sol +3 -14
  493. package/contracts/shared/IRegistryLinked.sol +3 -1
  494. package/contracts/shared/IService.sol +2 -2
  495. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  496. package/contracts/shared/NftOwnable.sol +22 -9
  497. package/contracts/shared/PolicyHolder.sol +4 -2
  498. package/contracts/shared/Registerable.sol +20 -37
  499. package/contracts/shared/RegistryLinked.sol +23 -4
  500. package/contracts/shared/Service.sol +9 -8
  501. package/contracts/shared/TokenHandler.sol +6 -9
  502. package/contracts/staking/IStaking.sol +35 -33
  503. package/contracts/staking/IStakingService.sol +7 -16
  504. package/contracts/staking/Staking.sol +38 -32
  505. package/contracts/staking/StakingLib.sol +1 -3
  506. package/contracts/staking/StakingManager.sol +6 -3
  507. package/contracts/staking/StakingReader.sol +17 -9
  508. package/contracts/staking/StakingService.sol +15 -18
  509. package/contracts/staking/StakingServiceManager.sol +8 -4
  510. package/contracts/staking/StakingStore.sol +11 -11
  511. package/contracts/staking/TargetHandler.sol +6 -5
  512. package/contracts/type/ObjectType.sol +2 -31
  513. package/contracts/type/Referral.sol +6 -0
  514. package/contracts/type/RequestIdSet.sol +62 -0
  515. package/contracts/type/Seconds.sol +4 -0
  516. package/contracts/type/String.sol +30 -0
  517. package/contracts/type/Timestamp.sol +10 -1
  518. package/contracts/type/Version.sol +16 -15
  519. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  520. package/contracts/upgradeability/ProxyManager.sol +54 -46
  521. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  522. package/package.json +4 -3
  523. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  524. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  525. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  526. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  527. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  528. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  529. package/contracts/shared/IVersionable.sol +0 -19
  530. package/contracts/shared/Versionable.sol +0 -47
@@ -5,9 +5,10 @@ import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
6
6
 
7
7
  import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
8
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
9
  import {IRegistry} from "./IRegistry.sol";
9
10
  import {IRelease} from "./IRelease.sol";
10
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
11
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
11
12
  import {IService} from "../shared/IService.sol";
12
13
  import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
13
14
 
@@ -15,7 +16,7 @@ import {ContractLib} from "../shared/ContractLib.sol";
15
16
  import {NftId} from "../type/NftId.sol";
16
17
  import {ObjectType, ObjectTypeLib, COMPONENT, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
17
18
  import {RegistryAdmin} from "./RegistryAdmin.sol";
18
- import {Registry, GIF_INITIAL_RELEASE} from "./Registry.sol";
19
+ import {Registry} from "./Registry.sol";
19
20
  import {ReleaseAdmin} from "./ReleaseAdmin.sol";
20
21
  import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
21
22
  import {Seconds} from "../type/Seconds.sol";
@@ -33,12 +34,16 @@ import {VersionPart, VersionPartLib} from "../type/Version.sol";
33
34
  contract ReleaseRegistry is
34
35
  AccessManaged,
35
36
  ReleaseLifecycle,
36
- RegistryLinked
37
+ IRegistryLinked
37
38
  {
38
- event LogReleaseCreation(IAccessAdmin admin, VersionPart release, bytes32 salt);
39
- event LogReleaseActivation(VersionPart release);
40
- event LogReleaseDisabled(VersionPart release);
41
- event LogReleaseEnabled(VersionPart release);
39
+ uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version
40
+
41
+ event LogReleaseCreated(IAccessAdmin indexed admin, VersionPart indexed release, bytes32 indexed salt);
42
+ event LogReleaseActivated(VersionPart indexed release);
43
+ event LogReleaseEnabled(VersionPart indexed release, bool indexed active);
44
+
45
+ // constructor
46
+ error ErrorReleaseRegistryNotRegistry(Registry registry);
42
47
 
43
48
  // _verifyServiceAuthorization
44
49
  error ErrorReleaseRegistryNotServiceAuth(address notAuth);
@@ -53,19 +58,20 @@ contract ReleaseRegistry is
53
58
 
54
59
  // _verifyService
55
60
  error ErrorReleaseRegistryNotService(address notService);
56
- error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address expectedAuthority, address actualAuthority);
61
+ error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
62
+ error ErrorReleaseRegistryServiceVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
57
63
  error ErrorReleaseRegistryServiceDomainMismatch(IService service, ObjectType expectedDomain, ObjectType actualDomain);
58
64
 
59
- // _getAndVerifyServiceInfo
65
+ // _verifyServiceInfo
60
66
  error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
61
67
  error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
62
68
  error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
63
- error ErrorReleaseRegistryServiceInfoReleaseMismatch(IService service, VersionPart expected, VersionPart actual);
64
69
  error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
65
70
  error ErrorReleaseRegistryServiceSelfRegistration(IService service);
66
71
  error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
67
72
 
68
73
  RegistryAdmin public immutable _registryAdmin;
74
+ Registry public immutable _registry;
69
75
 
70
76
  mapping(VersionPart release => IRelease.ReleaseInfo info) internal _releaseInfo;
71
77
  VersionPart [] internal _release; // array of all created releases
@@ -79,18 +85,21 @@ contract ReleaseRegistry is
79
85
  uint256 internal _servicesToRegister = 0;
80
86
 
81
87
  // TODO move master relase admin outside constructor (same construction as for registry admin)
82
- constructor()
88
+ constructor(Registry registry)
83
89
  AccessManaged(msg.sender)
84
90
  {
85
- IRegistry registry = _getRegistry();
91
+ if (!ContractLib.isRegistry(address(registry))) {
92
+ revert ErrorReleaseRegistryNotRegistry(registry);
93
+ }
86
94
 
87
95
  setAuthority(registry.getAuthority());
88
96
 
89
- _registryAdmin = RegistryAdmin(registry.getRegistryAdminAddress());
97
+ _registry = registry;
98
+ _registryAdmin = RegistryAdmin(_registry.getRegistryAdminAddress());
90
99
  _masterReleaseAdmin = new ReleaseAdmin(
91
100
  _cloneNewAccessManager());
92
101
 
93
- _next = VersionPartLib.toVersionPart(GIF_INITIAL_RELEASE().toInt() - 1);
102
+ _next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
94
103
  }
95
104
 
96
105
  /// @dev Initiates the creation of a new GIF release by the GIF admin.
@@ -108,7 +117,7 @@ contract ReleaseRegistry is
108
117
  }
109
118
 
110
119
  release = VersionPartLib.toVersionPart(release.toInt() + 1);
111
- _release.push(release); // TODO push only activated releases, _next keeps total release count
120
+ _release.push(release);
112
121
 
113
122
  _next = release;
114
123
  _releaseInfo[release].version = release;
@@ -158,7 +167,7 @@ contract ReleaseRegistry is
158
167
  _releaseInfo[releaseVersion].auth = serviceAuthorization;
159
168
  _releaseInfo[releaseVersion].releaseAdmin = address(releaseAdmin);
160
169
 
161
- emit LogReleaseCreation(releaseAdmin, releaseVersion, releaseSalt);
170
+ emit LogReleaseCreated(releaseAdmin, releaseVersion, releaseSalt);
162
171
  }
163
172
 
164
173
  function registerService(IService service)
@@ -174,21 +183,24 @@ contract ReleaseRegistry is
174
183
  address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
175
184
  IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
176
185
  ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
177
- address expectedOwner = msg.sender;
178
186
 
179
187
  // service can work with release registry and release version
180
188
  (
181
189
  IRegistry.ObjectInfo memory info,
182
- bytes memory data,
183
- ObjectType serviceDomain
190
+ ObjectType serviceDomain,
191
+ VersionPart serviceVersion
192
+ //,string memory serviceName
184
193
  ) = _verifyService(
185
194
  service,
186
- expectedOwner,
187
195
  releaseAuthority,
188
196
  releaseVersion,
189
197
  expectedDomain
190
198
  );
191
199
 
200
+ //_releaseInfo[releaseVersion].addresses.push(address(service)); // TODO get this info from auth contract?
201
+ //_releaseInfo[releaseVersion].domains.push(serviceDomain);
202
+ //_releaseInfo[releaseVersion].names.push(serviceName); // TODO if needed read in _verifyService()
203
+
192
204
  _registeredServices++; // TODO use releaseInfo.someArray.length instead of _registeredServices
193
205
 
194
206
  // release fully deployed
@@ -209,7 +221,7 @@ contract ReleaseRegistry is
209
221
  releaseAdmin.setReleaseLocked(true);
210
222
 
211
223
  // register service with registry
212
- nftId = _getRegistry().registerService(info, expectedOwner, serviceDomain, data);
224
+ nftId = _registry.registerService(info, serviceVersion, serviceDomain);
213
225
  service.linkToRegisteredNftId();
214
226
  }
215
227
 
@@ -232,34 +244,32 @@ contract ReleaseRegistry is
232
244
  // grant special roles for registry/staking/pool services
233
245
  // this will enable access to core contracts functions
234
246
 
235
- IRegistry registry = _getRegistry();
236
-
237
247
  // registry service MUST be registered for each release
238
- address service = registry.getServiceAddress(REGISTRY(), release);
248
+ address service = _registry.getServiceAddress(REGISTRY(), release);
239
249
  if(service == address(0)) {
240
250
  revert ErrorReleaseRegistryRegistryServiceMissing(release);
241
251
  }
242
252
 
243
253
  _registryAdmin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
244
254
 
245
- service = registry.getServiceAddress(STAKING(), release);
255
+ service = _registry.getServiceAddress(STAKING(), release);
246
256
  if(service != address(0)) {
247
257
  _registryAdmin.grantServiceRoleForAllVersions(IService(service), STAKING());
248
258
  }
249
259
 
250
- service = registry.getServiceAddress(COMPONENT(), release);
260
+ service = _registry.getServiceAddress(COMPONENT(), release);
251
261
  if(service != address(0)) {
252
262
  _registryAdmin.grantServiceRoleForAllVersions(IService(service), COMPONENT());
253
263
  }
254
264
 
255
- service = registry.getServiceAddress(POOL(), release);
265
+ service = _registry.getServiceAddress(POOL(), release);
256
266
  if(service != address(0)) {
257
267
  _registryAdmin.grantServiceRoleForAllVersions(IService(service), POOL());
258
268
  }
259
269
 
260
270
  _setReleaseLocked(release, false);
261
271
 
262
- emit LogReleaseActivation(release);
272
+ emit LogReleaseActivated(release);
263
273
  }
264
274
 
265
275
  /// @dev stop/resume operations with restricted functions
@@ -273,12 +283,12 @@ contract ReleaseRegistry is
273
283
  checkTransition(state, RELEASE(), PAUSED(), ACTIVE());
274
284
  _releaseInfo[release].state = ACTIVE();
275
285
  _releaseInfo[release].disabledAt = TimestampLib.max();
276
- emit LogReleaseEnabled(release);
286
+ emit LogReleaseEnabled(release, true);
277
287
  } else {
278
288
  checkTransition(state, RELEASE(), ACTIVE(), PAUSED());
279
289
  _releaseInfo[release].state = PAUSED();
280
290
  _releaseInfo[release].disabledAt = TimestampLib.current();
281
- emit LogReleaseDisabled(release);
291
+ emit LogReleaseEnabled(release, false);
282
292
  }
283
293
 
284
294
  _setReleaseLocked(release, !active);
@@ -345,6 +355,12 @@ contract ReleaseRegistry is
345
355
  return address(_registryAdmin);
346
356
  }
347
357
 
358
+ //--- IRegistryLinked ------------------------------------------------------//
359
+
360
+ function getRegistry() external view returns (IRegistry) {
361
+ return _registry;
362
+ }
363
+
348
364
  //--- private functions ----------------------------------------------------//
349
365
 
350
366
  function _setReleaseLocked(VersionPart release, bool locked)
@@ -372,11 +388,12 @@ contract ReleaseRegistry is
372
388
 
373
389
  clonedAdmin.initialize(
374
390
  address(_cloneNewAccessManager()),
375
- releaseAdminName,
376
- release);
391
+ releaseAdminName);
377
392
 
378
393
  clonedAdmin.completeSetup(
394
+ address(_registry),
379
395
  address(serviceAuthorization),
396
+ release,
380
397
  address(this)); // release registry (this contract)
381
398
 
382
399
  // lock release (remains locked until activation)
@@ -421,65 +438,62 @@ contract ReleaseRegistry is
421
438
 
422
439
  // TODO get service names
423
440
  function _verifyService(
424
- IService service,
425
- address expectedOwner,
441
+ IService service,
426
442
  address expectedAuthority,
427
- VersionPart expectedRelease,
443
+ VersionPart expectedVersion,
428
444
  ObjectType expectedDomain
429
445
  )
430
446
  internal
431
447
  view
432
448
  returns(
433
- IRegistry.ObjectInfo memory info,
434
- bytes memory data,
435
- ObjectType domain
449
+ IRegistry.ObjectInfo memory serviceInfo,
450
+ ObjectType serviceDomain,
451
+ VersionPart serviceVersion
436
452
  )
437
453
  {
438
454
  if(!service.supportsInterface(type(IService).interfaceId)) {
439
455
  revert ErrorReleaseRegistryNotService(address(service));
440
456
  }
441
457
 
442
- address authority = service.authority();
443
- domain = service.getDomain();// checked in registry
458
+ address owner = msg.sender;
459
+ address serviceAuthority = service.authority();
460
+ serviceVersion = service.getVersion().toMajorPart();
461
+ serviceDomain = service.getDomain();// checked in registry
462
+ serviceInfo = service.getInitialInfo();
444
463
 
445
- (info,, data) = _getAndVerifyServiceInfo(
446
- service,
447
- expectedOwner,
448
- expectedRelease);
464
+ _verifyServiceInfo(service, serviceInfo, owner);
449
465
 
450
- if(authority != expectedAuthority) {
466
+ if(serviceAuthority != expectedAuthority) {
451
467
  revert ErrorReleaseRegistryServiceAuthorityMismatch(
452
468
  service,
453
- expectedAuthority,
454
- authority);
469
+ serviceAuthority,
470
+ expectedAuthority);
455
471
  }
456
472
 
457
- if(domain != expectedDomain) {
473
+ if(serviceVersion != expectedVersion) {
474
+ revert ErrorReleaseRegistryServiceVersionMismatch(
475
+ service,
476
+ serviceVersion,
477
+ expectedVersion);
478
+ }
479
+
480
+ if(serviceDomain != expectedDomain) {
458
481
  revert ErrorReleaseRegistryServiceDomainMismatch(
459
482
  service,
460
483
  expectedDomain,
461
- domain);
484
+ serviceDomain);
462
485
  }
463
486
  }
464
487
 
465
488
 
466
- function _getAndVerifyServiceInfo(
489
+ function _verifyServiceInfo(
467
490
  IService service,
468
- address expectedOwner, // assume always valid, can not be 0
469
- VersionPart expectedRelease
491
+ IRegistry.ObjectInfo memory info,
492
+ address expectedOwner // assume always valid, can not be 0
470
493
  )
471
494
  internal
472
495
  view
473
- returns (
474
- IRegistry.ObjectInfo memory info,
475
- address initialOwner,
476
- bytes memory data
477
- )
478
496
  {
479
- info = service.getInitialInfo();
480
- initialOwner = service.getOwner();
481
- data = service.getInitialData();
482
-
483
497
  if(info.objectAddress != address(service)) {
484
498
  revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
485
499
  }
@@ -492,23 +506,18 @@ contract ReleaseRegistry is
492
506
  revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
493
507
  }
494
508
 
495
- if(info.release != expectedRelease) {
496
- revert ErrorReleaseRegistryServiceInfoReleaseMismatch(
497
- service,
498
- expectedRelease,
499
- info.release);
500
- }
509
+ address owner = info.initialOwner;
501
510
 
502
- if(initialOwner != expectedOwner) { // registerable owner protection
503
- revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, initialOwner);
511
+ if(owner != expectedOwner) { // registerable owner protection
512
+ revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, owner);
504
513
  }
505
514
 
506
- if(initialOwner == address(service)) {
515
+ if(owner == address(service)) {
507
516
  revert ErrorReleaseRegistryServiceSelfRegistration(service);
508
517
  }
509
518
 
510
- if(_getRegistry().isRegistered(initialOwner)) {
511
- revert ErrorReleaseRegistryServiceOwnerRegistered(service, initialOwner);
519
+ if(_registry.isRegistered(owner)) {
520
+ revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
512
521
  }
513
522
  }
514
523
  }
@@ -21,8 +21,6 @@ import {IRegistryService} from "./IRegistryService.sol";
21
21
  import {IRiskService} from "../product/IRiskService.sol";
22
22
 
23
23
  import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
24
- import {VersionPartLib} from "../../contracts/type/Version.sol";
25
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
26
24
 
27
25
 
28
26
  contract ServiceAuthorizationV3
@@ -33,7 +31,7 @@ contract ServiceAuthorizationV3
33
31
  ServiceAuthorization(
34
32
  "ReleaseAdmin",
35
33
  RELEASE(),
36
- GIF_INITIAL_RELEASE(),
34
+ 3,
37
35
  commitHash)
38
36
  {}
39
37
 
@@ -92,7 +90,8 @@ contract ServiceAuthorizationV3
92
90
  _authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
93
91
 
94
92
  functions = _authorizeForService(REGISTRY(), COMPONENT());
95
- _authorize(functions, IRegistryService.registerComponent.selector, "registerComponent");
93
+ _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
94
+ _authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
96
95
 
97
96
  functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
98
97
  _authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
@@ -5,7 +5,7 @@ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManage
5
5
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
6
 
7
7
  import {IRegistry} from "./IRegistry.sol";
8
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
8
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
9
9
  import {IStaking} from "../staking/IStaking.sol";
10
10
 
11
11
  import {ChainId, ChainIdLib} from "../type/ChainId.sol";
@@ -16,11 +16,11 @@ import {VersionPart} from "../type/Version.sol";
16
16
  /// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
17
17
  contract TokenRegistry is
18
18
  AccessManaged,
19
- RegistryLinked
19
+ IRegistryLinked
20
20
  {
21
- event LogTokenRegistryTokenRegistered(ChainId chainId, address token, uint256 decimals, string symbol);
22
- event LogTokenRegistryTokenGlobalStateSet(ChainId chainId, address token, bool active);
23
- event LogTokenRegistryTokenStateSet(ChainId chainId, address token, VersionPart release, bool active);
21
+ event LogTokenRegistryTokenRegistered(ChainId indexed chainId, address indexed token, uint256 indexed decimals, string symbol);
22
+ event LogTokenRegistryTokenGlobalStateSet(ChainId indexed chainId, address indexed token, bool indexed active);
23
+ event LogTokenRegistryTokenStateSet(ChainId indexed chainId, address indexed token, VersionPart indexed release, bool active);
24
24
 
25
25
  error ErrorTokenRegistryChainIdZero();
26
26
  error ErrorTokenRegistryTokenAddressZero();
@@ -47,6 +47,7 @@ contract TokenRegistry is
47
47
  mapping(ChainId chainId => mapping(address token => mapping(VersionPart release => bool isActive))) internal _active;
48
48
  TokenInfo [] internal _token;
49
49
 
50
+ IRegistry internal _registry;
50
51
  ChainId internal _chainId = ChainIdLib.current();
51
52
  IERC20Metadata internal _dipToken;
52
53
 
@@ -58,13 +59,14 @@ contract TokenRegistry is
58
59
  _;
59
60
  }
60
61
 
61
- constructor(IERC20Metadata dipToken)
62
+ constructor(IRegistry registry, IERC20Metadata dipToken)
62
63
  AccessManaged(msg.sender)
63
64
  {
64
65
  // set authority
65
- address authority = RegistryAdmin(
66
- _getRegistry().getRegistryAdminAddress()).authority();
66
+ address authority = RegistryAdmin(registry.getRegistryAdminAddress()).authority();
67
67
  setAuthority(authority);
68
+
69
+ _registry = registry;
68
70
 
69
71
  // TODO deal with chains without a dip token
70
72
  _dipToken = _verifyOnchainToken(address(dipToken));
@@ -178,7 +180,7 @@ contract TokenRegistry is
178
180
  // verify valid major version
179
181
  if(enforceVersionCheck) {
180
182
  uint256 version = release.toInt();
181
- if (!_getRegistry().isActiveRelease(release)) {
183
+ if (!getRegistry().isActiveRelease(release)) {
182
184
  revert ErrorTokenRegistryMajorVersionInvalid(release);
183
185
  }
184
186
  }
@@ -226,6 +228,13 @@ contract TokenRegistry is
226
228
  return address(_dipToken);
227
229
  }
228
230
 
231
+ //--- IRegistryLinked --------------------------------------------------//
232
+
233
+ /// @dev returns the dip token for this chain
234
+ function getRegistry() public view returns (IRegistry) {
235
+ return _registry;
236
+ }
237
+
229
238
  //--- internal functions ------------------------------------------------//
230
239
 
231
240
 
@@ -12,7 +12,7 @@ import {NftId} from "../type/NftId.sol";
12
12
  import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
13
13
  import {Registerable} from "../shared/Registerable.sol";
14
14
  import {TokenHandler} from "../shared/TokenHandler.sol";
15
- import {Version, VersionPart, VersionLib} from "../type/Version.sol";
15
+ import {Version, VersionLib} from "../type/Version.sol";
16
16
 
17
17
 
18
18
  abstract contract Component is
@@ -23,17 +23,14 @@ abstract contract Component is
23
23
  bytes32 public constant COMPONENT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
24
24
 
25
25
  struct ComponentStorage {
26
- // slot 0
26
+ string _name; // unique (per instance) component name
27
+ bool _isInterceptor;
27
28
  IComponentService _componentService;
28
- // slot 1
29
- string _name; // unique (per instance) component name -> make pure to save gas?
30
- // slot 2
31
- bytes _data;
32
29
  }
33
30
 
34
31
 
35
32
  modifier onlyChainNft() {
36
- if(msg.sender != _getRegistry().getChainNftAddress()) {
33
+ if(msg.sender != getRegistry().getChainNftAddress()) {
37
34
  revert ErrorComponentNotChainNft(msg.sender);
38
35
  }
39
36
  _;
@@ -47,9 +44,10 @@ abstract contract Component is
47
44
  }
48
45
  }
49
46
 
50
- /// @dev requires component parent to be registered
47
+
51
48
  function __Component_init(
52
49
  address authority,
50
+ address registry,
53
51
  NftId parentNftId,
54
52
  string memory name,
55
53
  ObjectType componentType,
@@ -67,6 +65,7 @@ abstract contract Component is
67
65
 
68
66
  __Registerable_init(
69
67
  authority,
68
+ registry,
70
69
  parentNftId,
71
70
  componentType,
72
71
  isInterceptor,
@@ -76,6 +75,7 @@ abstract contract Component is
76
75
  // set component state
77
76
  ComponentStorage storage $ = _getComponentStorage();
78
77
  $._name = name;
78
+ $._isInterceptor = isInterceptor;
79
79
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
80
80
 
81
81
  _registerInterface(type(IAccessManaged).interfaceId);
@@ -93,17 +93,6 @@ abstract contract Component is
93
93
  _nftTransferFrom(from, to, tokenId, operator);
94
94
  }
95
95
 
96
- /// @inheritdoc IComponent
97
- function withdrawFees(Amount amount)
98
- external
99
- virtual
100
- restricted()
101
- onlyOwner()
102
- returns (Amount withdrawnAmount)
103
- {
104
- return _withdrawFees(amount);
105
- }
106
-
107
96
 
108
97
  function getWallet() public view virtual returns (address walletAddress) {
109
98
  return getTokenHandler().getWallet();
@@ -121,6 +110,10 @@ abstract contract Component is
121
110
  return getComponentInfo().name;
122
111
  }
123
112
 
113
+ function getVersion() public view virtual returns (Version version) {
114
+ return VersionLib.toVersion(1, 0, 0);
115
+ }
116
+
124
117
  function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
125
118
  if (isRegistered()) {
126
119
  return _getComponentInfo();
@@ -136,9 +129,17 @@ abstract contract Component is
136
129
  }
137
130
 
138
131
 
132
+ function isNftInterceptor() public virtual view returns(bool isInterceptor) {
133
+ if (isRegistered()) {
134
+ return getRegistry().getObjectInfo(address(this)).isInterceptor;
135
+ } else {
136
+ return _getComponentStorage()._isInterceptor;
137
+ }
138
+ }
139
+
139
140
 
140
141
  function isRegistered() public virtual view returns (bool) {
141
- return _getRegistry().getNftIdForAddress(address(this)).gtz();
142
+ return getRegistry().getNftIdForAddress(address(this)).gtz();
142
143
  }
143
144
 
144
145
 
@@ -169,12 +170,6 @@ abstract contract Component is
169
170
  // empty default implementation
170
171
  }
171
172
 
172
- function _withdrawFees(Amount amount)
173
- internal
174
- returns (Amount withdrawnAmount)
175
- {
176
- return _getComponentStorage()._componentService.withdrawFees(amount);
177
- }
178
173
 
179
174
  /// @dev Sets the components wallet to the specified address.
180
175
  /// Depending on the source of the component information this function needs to be overwritten.
@@ -210,6 +205,6 @@ abstract contract Component is
210
205
  /// @dev returns the service address for the specified domain
211
206
  /// gets address via lookup from registry using the major version form the linked instance
212
207
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
213
- return _getRegistry().getServiceAddress(domain, getRelease());
208
+ return getRegistry().getServiceAddress(domain, getRelease());
214
209
  }
215
210
  }