@etherisc/gif-next 3.0.0-1b49bd6-565 → 3.0.0-1c2086e-623

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 (545) hide show
  1. package/README.md +9 -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 +46 -91
  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/crop/AccountingToken.sol/AccountingToken.dbg.json +4 -0
  40. package/artifacts/contracts/examples/crop/AccountingToken.sol/AccountingToken.json +376 -0
  41. package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/crop/CropPool.sol/CropPool.json +1391 -0
  43. package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/crop/CropPoolAuthorization.sol/CropPoolAuthorization.json +844 -0
  45. package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/crop/CropProduct.sol/CropProduct.json +2433 -0
  47. package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/crop/CropProductAuthorization.sol/CropProductAuthorization.json +891 -0
  49. package/artifacts/contracts/examples/crop/Location.sol/LocationLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/crop/Location.sol/LocationLib.json +199 -0
  51. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  52. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  53. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +108 -245
  55. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  56. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  57. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +141 -283
  59. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  61. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  62. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  63. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +221 -86
  65. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  66. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  67. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  69. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
  70. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +253 -275
  71. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  72. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +112 -41
  73. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  74. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +112 -249
  75. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  76. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
  77. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  78. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +461 -866
  79. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  80. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +113 -42
  81. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  82. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  83. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
  84. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  85. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  86. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  87. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  88. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -255
  89. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  90. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  91. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  92. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +177 -226
  93. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  94. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +124 -256
  95. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  96. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  97. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  98. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +124 -261
  99. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  100. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  101. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  102. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  103. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  104. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +69 -77
  105. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  106. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  107. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  108. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +52 -91
  109. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  110. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -92
  111. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  112. package/artifacts/contracts/instance/Instance.sol/Instance.json +82 -158
  113. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  114. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +226 -248
  115. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  116. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  117. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  118. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +186 -44
  119. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  120. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +201 -149
  121. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
  123. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  124. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +171 -121
  125. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  126. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +166 -107
  127. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
  128. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
  129. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  130. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +98 -106
  131. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  132. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +9 -9
  133. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  134. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  135. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  136. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  137. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  138. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  139. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  140. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +9 -4
  141. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  142. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +40 -4
  143. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  144. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  145. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  146. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  147. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  148. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  149. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  150. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  151. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +152 -195
  152. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  153. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  154. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  155. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  156. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +132 -152
  157. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  158. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +102 -93
  159. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  160. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +138 -145
  161. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  162. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +167 -162
  163. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
  165. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  166. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +77 -167
  167. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  168. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  169. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  170. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +149 -203
  171. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
  173. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  174. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +64 -98
  175. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  176. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +75 -178
  177. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  178. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +136 -132
  179. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  180. package/artifacts/contracts/pool/Pool.sol/Pool.json +77 -167
  181. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  182. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
  183. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  184. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +215 -271
  185. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
  187. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  188. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +81 -156
  189. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  190. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
  191. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  192. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +61 -151
  193. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  194. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  195. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  196. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +139 -200
  197. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
  199. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  200. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +50 -89
  201. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  202. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +56 -89
  203. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  204. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +85 -91
  205. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  206. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +47 -86
  207. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  208. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +60 -163
  209. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  210. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +63 -120
  211. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  212. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +148 -182
  213. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  214. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +25 -17
  215. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +132 -126
  217. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  218. package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -165
  219. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  220. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
  221. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  222. package/artifacts/contracts/product/Product.sol/Product.json +61 -151
  223. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  224. package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -205
  225. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +110 -120
  227. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  228. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +58 -8
  229. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  230. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +86 -179
  231. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  232. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
  233. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  234. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  235. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  236. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  237. package/artifacts/contracts/registry/Registry.sol/Registry.json +176 -328
  238. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  239. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
  240. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  241. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
  242. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  243. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
  244. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  245. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
  246. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  247. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
  248. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  249. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  250. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  251. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +219 -158
  252. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  253. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  254. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  255. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +38 -22
  256. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
  258. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  259. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +552 -180
  260. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  261. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
  262. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  263. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  264. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  265. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  266. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  267. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  268. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  269. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +1 -1
  270. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +40 -173
  271. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  272. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
  273. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  274. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +455 -95
  275. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  276. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
  277. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  278. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  279. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +30 -3
  280. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  281. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  282. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  283. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
  284. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  285. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  286. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  287. package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
  288. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  289. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  290. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  291. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +59 -149
  292. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  293. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  294. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  295. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  296. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +36 -17
  297. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  298. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  299. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  300. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
  301. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  302. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  303. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  304. package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
  305. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  306. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
  307. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  308. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
  309. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  310. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  311. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  312. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +147 -248
  313. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  314. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +51 -296
  315. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  316. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  317. package/artifacts/contracts/staking/Staking.sol/Staking.json +200 -317
  318. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  319. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
  320. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  321. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
  322. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  323. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  324. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  325. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +80 -353
  326. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  327. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
  328. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  329. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +234 -242
  330. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  331. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +20 -33
  332. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  333. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
  334. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  335. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  336. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  338. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  340. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  342. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  344. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  346. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  348. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  350. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  351. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  352. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  354. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  355. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  356. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  358. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  360. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  362. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
  364. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
  365. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  366. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +17 -22
  368. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  370. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  372. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  374. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  375. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  376. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  377. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  378. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  379. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  380. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  381. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  382. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  383. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  384. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  385. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  386. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  387. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  388. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  389. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  390. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  391. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
  392. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  393. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  394. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  395. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  396. package/contracts/accounting/AccountingService.sol +22 -33
  397. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  398. package/contracts/accounting/IAccountingService.sol +7 -8
  399. package/contracts/authorization/AccessAdmin.sol +35 -55
  400. package/contracts/authorization/AccessAdminLib.sol +27 -13
  401. package/contracts/authorization/AccessManagerCloneable.sol +52 -24
  402. package/contracts/authorization/Authorization.sol +2 -2
  403. package/contracts/authorization/IAccessAdmin.sol +11 -10
  404. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  405. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  406. package/contracts/distribution/BasicDistribution.sol +2 -0
  407. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  408. package/contracts/distribution/Distribution.sol +2 -0
  409. package/contracts/distribution/DistributionService.sol +44 -43
  410. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  411. package/contracts/distribution/IDistributionComponent.sol +0 -2
  412. package/contracts/distribution/IDistributionService.sol +8 -7
  413. package/contracts/examples/crop/AccountingToken.sol +26 -0
  414. package/contracts/examples/crop/CropPool.sol +89 -0
  415. package/contracts/examples/crop/CropPoolAuthorization.sol +37 -0
  416. package/contracts/examples/crop/CropProduct.sol +512 -0
  417. package/contracts/examples/crop/CropProductAuthorization.sol +69 -0
  418. package/contracts/examples/crop/Location.sol +50 -0
  419. package/contracts/examples/fire/FirePool.sol +4 -0
  420. package/contracts/examples/fire/FireProduct.sol +5 -1
  421. package/contracts/examples/flight/FlightLib.sol +95 -108
  422. package/contracts/examples/flight/FlightNft.sol +234 -0
  423. package/contracts/examples/flight/FlightOracle.sol +26 -60
  424. package/contracts/examples/flight/FlightOracleAuthorization.sol +27 -5
  425. package/contracts/examples/flight/FlightPool.sol +5 -1
  426. package/contracts/examples/flight/FlightProduct.sol +292 -252
  427. package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
  428. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  429. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  430. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  431. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  432. package/contracts/examples/unpermissioned/SimpleProduct.sol +5 -5
  433. package/contracts/instance/BaseStore.sol +4 -0
  434. package/contracts/instance/BundleSet.sol +7 -8
  435. package/contracts/instance/IBaseStore.sol +8 -0
  436. package/contracts/instance/IInstance.sol +10 -7
  437. package/contracts/instance/IInstanceService.sol +11 -4
  438. package/contracts/instance/Instance.sol +19 -7
  439. package/contracts/instance/InstanceAdmin.sol +18 -11
  440. package/contracts/instance/InstanceAuthorizationV3.sol +17 -5
  441. package/contracts/instance/InstanceReader.sol +70 -23
  442. package/contracts/instance/InstanceService.sol +88 -54
  443. package/contracts/instance/InstanceServiceManager.sol +6 -4
  444. package/contracts/instance/InstanceStore.sol +14 -14
  445. package/contracts/instance/ProductStore.sol +16 -15
  446. package/contracts/instance/RequestSet.sol +63 -0
  447. package/contracts/instance/RiskSet.sol +6 -7
  448. package/contracts/instance/TargetNames.sol +1 -0
  449. package/contracts/instance/base/BalanceStore.sol +7 -7
  450. package/contracts/instance/base/Cloneable.sol +10 -4
  451. package/contracts/instance/base/ObjectCounter.sol +7 -5
  452. package/contracts/instance/base/ObjectSet.sol +11 -3
  453. package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
  454. package/contracts/oracle/BasicOracle.sol +3 -0
  455. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  456. package/contracts/oracle/IOracleComponent.sol +10 -0
  457. package/contracts/oracle/IOracleService.sol +9 -5
  458. package/contracts/oracle/Oracle.sol +54 -29
  459. package/contracts/oracle/OracleService.sol +89 -56
  460. package/contracts/oracle/OracleServiceManager.sol +6 -4
  461. package/contracts/pool/BasicPool.sol +4 -2
  462. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  463. package/contracts/pool/BundleService.sol +22 -28
  464. package/contracts/pool/BundleServiceManager.sol +7 -5
  465. package/contracts/pool/IBundleService.sol +9 -10
  466. package/contracts/pool/IPoolComponent.sol +1 -1
  467. package/contracts/pool/IPoolService.sol +14 -13
  468. package/contracts/pool/Pool.sol +3 -1
  469. package/contracts/pool/PoolLib.sol +102 -5
  470. package/contracts/pool/PoolService.sol +101 -67
  471. package/contracts/pool/PoolServiceManager.sol +6 -4
  472. package/contracts/product/ApplicationService.sol +34 -13
  473. package/contracts/product/ApplicationServiceManager.sol +6 -4
  474. package/contracts/product/BasicProduct.sol +2 -0
  475. package/contracts/product/BasicProductAuthorization.sol +4 -5
  476. package/contracts/product/ClaimService.sol +35 -11
  477. package/contracts/product/ClaimServiceManager.sol +7 -5
  478. package/contracts/product/IApplicationService.sol +8 -8
  479. package/contracts/product/IClaimService.sol +9 -9
  480. package/contracts/product/IPolicyService.sol +8 -7
  481. package/contracts/product/IRiskService.sol +4 -6
  482. package/contracts/product/PolicyService.sol +58 -45
  483. package/contracts/product/PolicyServiceLib.sol +5 -3
  484. package/contracts/product/PolicyServiceManager.sol +6 -4
  485. package/contracts/product/PricingService.sol +8 -7
  486. package/contracts/product/PricingServiceManager.sol +6 -4
  487. package/contracts/product/Product.sol +3 -5
  488. package/contracts/product/RiskService.sol +43 -16
  489. package/contracts/product/RiskServiceManager.sol +6 -4
  490. package/contracts/registry/ChainNft.sol +10 -9
  491. package/contracts/registry/IRegistry.sol +23 -28
  492. package/contracts/registry/IRegistryService.sol +14 -10
  493. package/contracts/registry/IRelease.sol +3 -0
  494. package/contracts/registry/Registry.sol +93 -136
  495. package/contracts/registry/RegistryAdmin.sol +29 -12
  496. package/contracts/registry/RegistryAuthorization.sol +3 -6
  497. package/contracts/registry/RegistryService.sol +82 -99
  498. package/contracts/registry/RegistryServiceManager.sol +11 -4
  499. package/contracts/registry/ReleaseAdmin.sol +27 -13
  500. package/contracts/registry/ReleaseRegistry.sol +81 -72
  501. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  502. package/contracts/registry/TokenRegistry.sol +18 -9
  503. package/contracts/shared/Component.sol +22 -27
  504. package/contracts/shared/ComponentService.sol +168 -49
  505. package/contracts/shared/ComponentServiceManager.sol +7 -5
  506. package/contracts/shared/ContractLib.sol +93 -359
  507. package/contracts/shared/IComponent.sol +3 -9
  508. package/contracts/shared/IComponentService.sol +44 -8
  509. package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
  510. package/contracts/shared/INftOwnable.sol +3 -1
  511. package/contracts/shared/IRegisterable.sol +3 -14
  512. package/contracts/shared/IRegistryLinked.sol +3 -1
  513. package/contracts/shared/IService.sol +2 -2
  514. package/contracts/shared/InstanceLinkedComponent.sol +65 -30
  515. package/contracts/shared/NftOwnable.sol +22 -9
  516. package/contracts/shared/PolicyHolder.sol +4 -2
  517. package/contracts/shared/Registerable.sol +20 -37
  518. package/contracts/shared/RegistryLinked.sol +23 -4
  519. package/contracts/shared/Service.sol +9 -8
  520. package/contracts/shared/TokenHandler.sol +6 -9
  521. package/contracts/staking/IStaking.sol +35 -33
  522. package/contracts/staking/IStakingService.sol +7 -16
  523. package/contracts/staking/Staking.sol +38 -32
  524. package/contracts/staking/StakingLib.sol +1 -3
  525. package/contracts/staking/StakingManager.sol +6 -3
  526. package/contracts/staking/StakingReader.sol +17 -9
  527. package/contracts/staking/StakingService.sol +15 -19
  528. package/contracts/staking/StakingServiceManager.sol +8 -4
  529. package/contracts/staking/StakingStore.sol +11 -11
  530. package/contracts/staking/TargetHandler.sol +7 -6
  531. package/contracts/type/RequestId.sol +6 -0
  532. package/contracts/type/RiskId.sol +8 -8
  533. package/contracts/type/Version.sol +16 -15
  534. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  535. package/contracts/upgradeability/ProxyManager.sol +54 -46
  536. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  537. package/package.json +3 -3
  538. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  539. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  540. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  541. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  542. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  543. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  544. package/contracts/shared/IVersionable.sol +0 -19
  545. 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(address indexed releaseAdmin, 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(address(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 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
  }