@etherisc/gif-next 3.0.0-c46a89a-335 → 3.0.0-c517f31-287

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 (516) 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 +115 -113
  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 +75 -220
  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 +57 -166
  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 +150 -140
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -178
  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 +107 -244
  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 +135 -277
  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 +1 -1
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +251 -56
  53. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
  54. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
  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 +1 -1
  58. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +260 -237
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +112 -41
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
  62. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +111 -248
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
  64. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +65 -41
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
  66. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +447 -868
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
  68. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +113 -42
  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 +1 -1
  72. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +2 -2
  73. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
  74. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -253
  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 +106 -238
  81. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +123 -255
  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 +114 -246
  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 +66 -61
  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 +45 -97
  97. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +125 -91
  99. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  100. package/artifacts/contracts/instance/Instance.sol/Instance.json +70 -164
  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 +95 -36
  107. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +174 -148
  109. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
  111. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +164 -114
  113. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  114. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +134 -84
  115. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  116. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +75 -70
  117. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  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 +8 -3
  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 +81 -207
  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 +61 -164
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +101 -92
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -157
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +166 -161
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +76 -166
  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 +151 -198
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +66 -93
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +74 -177
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  164. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +140 -136
  165. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  166. package/artifacts/contracts/pool/Pool.sol/Pool.json +76 -166
  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 +219 -275
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  174. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -147
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  178. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -147
  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 +140 -201
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +41 -80
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +57 -90
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +89 -95
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  192. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  194. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -159
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  196. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  198. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +152 -186
  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 +128 -122
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  204. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  207. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  208. package/artifacts/contracts/product/Product.sol/Product.json +57 -147
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  210. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +62 -155
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  218. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  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 +106 -314
  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 +244 -285
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +229 -238
  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 +208 -140
  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 +29 -13
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Component.sol/Component.json +39 -159
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +536 -164
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  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 +1 -1
  256. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +38 -171
  257. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -171
  259. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +442 -82
  261. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -159
  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 +28 -1
  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 +25 -77
  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 +32 -71
  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 +57 -147
  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 +34 -15
  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 +24 -76
  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 +31 -70
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -69
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -57
  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 +81 -176
  299. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  300. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +41 -280
  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 +134 -245
  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 +124 -112
  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 +70 -337
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  315. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  317. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -32
  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 +6 -6
  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 +2 -2
  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 +1 -1
  351. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
  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 +2 -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 +2 -2
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  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 +86 -63
  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 +35 -55
  386. package/contracts/authorization/AccessAdminLib.sol +27 -13
  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 +90 -75
  402. package/contracts/examples/flight/FlightNft.sol +234 -0
  403. package/contracts/examples/flight/FlightOracle.sol +72 -9
  404. package/contracts/examples/flight/FlightOracleAuthorization.sol +28 -5
  405. package/contracts/examples/flight/FlightPool.sol +5 -1
  406. package/contracts/examples/flight/FlightProduct.sol +283 -246
  407. package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
  408. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  409. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  410. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  411. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  412. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  413. package/contracts/instance/BaseStore.sol +4 -0
  414. package/contracts/instance/BundleSet.sol +6 -6
  415. package/contracts/instance/IBaseStore.sol +8 -0
  416. package/contracts/instance/IInstance.sol +7 -7
  417. package/contracts/instance/IInstanceService.sol +6 -4
  418. package/contracts/instance/Instance.sol +11 -7
  419. package/contracts/instance/InstanceAdmin.sol +17 -11
  420. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  421. package/contracts/instance/InstanceReader.sol +34 -20
  422. package/contracts/instance/InstanceService.sol +28 -18
  423. package/contracts/instance/InstanceServiceManager.sol +6 -4
  424. package/contracts/instance/InstanceStore.sol +14 -14
  425. package/contracts/instance/ProductStore.sol +14 -14
  426. package/contracts/instance/RiskSet.sol +6 -6
  427. package/contracts/instance/base/Cloneable.sol +10 -4
  428. package/contracts/instance/base/ObjectSet.sol +2 -2
  429. package/contracts/oracle/BasicOracle.sol +3 -0
  430. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  431. package/contracts/oracle/IOracleService.sol +9 -5
  432. package/contracts/oracle/Oracle.sol +6 -5
  433. package/contracts/oracle/OracleService.sol +68 -38
  434. package/contracts/oracle/OracleServiceManager.sol +6 -4
  435. package/contracts/pool/BasicPool.sol +4 -2
  436. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  437. package/contracts/pool/BundleService.sol +20 -26
  438. package/contracts/pool/BundleServiceManager.sol +7 -5
  439. package/contracts/pool/IBundleService.sol +10 -10
  440. package/contracts/pool/IPoolComponent.sol +1 -1
  441. package/contracts/pool/IPoolService.sol +14 -13
  442. package/contracts/pool/Pool.sol +3 -1
  443. package/contracts/pool/PoolLib.sol +102 -5
  444. package/contracts/pool/PoolService.sol +101 -67
  445. package/contracts/pool/PoolServiceManager.sol +6 -4
  446. package/contracts/product/ApplicationService.sol +34 -13
  447. package/contracts/product/ApplicationServiceManager.sol +6 -4
  448. package/contracts/product/BasicProduct.sol +2 -0
  449. package/contracts/product/BasicProductAuthorization.sol +4 -5
  450. package/contracts/product/ClaimService.sol +35 -11
  451. package/contracts/product/ClaimServiceManager.sol +7 -5
  452. package/contracts/product/IApplicationService.sol +8 -8
  453. package/contracts/product/IClaimService.sol +9 -9
  454. package/contracts/product/IPolicyService.sol +8 -7
  455. package/contracts/product/PolicyService.sol +58 -45
  456. package/contracts/product/PolicyServiceLib.sol +5 -3
  457. package/contracts/product/PolicyServiceManager.sol +6 -4
  458. package/contracts/product/PricingService.sol +8 -7
  459. package/contracts/product/PricingServiceManager.sol +6 -4
  460. package/contracts/product/Product.sol +2 -0
  461. package/contracts/product/RiskService.sol +40 -8
  462. package/contracts/product/RiskServiceManager.sol +6 -4
  463. package/contracts/registry/ChainNft.sol +1 -1
  464. package/contracts/registry/IRegistry.sol +14 -20
  465. package/contracts/registry/IRegistryService.sol +14 -10
  466. package/contracts/registry/IRelease.sol +3 -0
  467. package/contracts/registry/Registry.sol +82 -126
  468. package/contracts/registry/RegistryAdmin.sol +29 -12
  469. package/contracts/registry/RegistryAuthorization.sol +3 -6
  470. package/contracts/registry/RegistryService.sol +82 -99
  471. package/contracts/registry/RegistryServiceManager.sol +11 -4
  472. package/contracts/registry/ReleaseAdmin.sol +23 -9
  473. package/contracts/registry/ReleaseRegistry.sol +74 -64
  474. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  475. package/contracts/registry/TokenRegistry.sol +15 -6
  476. package/contracts/shared/Component.sol +22 -27
  477. package/contracts/shared/ComponentService.sol +166 -47
  478. package/contracts/shared/ComponentServiceManager.sol +7 -5
  479. package/contracts/shared/ContractLib.sol +93 -359
  480. package/contracts/shared/IComponent.sol +3 -9
  481. package/contracts/shared/IComponentService.sol +36 -0
  482. package/contracts/shared/IInstanceLinkedComponent.sol +7 -3
  483. package/contracts/shared/INftOwnable.sol +2 -0
  484. package/contracts/shared/IRegisterable.sol +3 -14
  485. package/contracts/shared/IRegistryLinked.sol +3 -1
  486. package/contracts/shared/IService.sol +2 -2
  487. package/contracts/shared/InstanceLinkedComponent.sol +64 -29
  488. package/contracts/shared/NftOwnable.sol +22 -9
  489. package/contracts/shared/PolicyHolder.sol +4 -2
  490. package/contracts/shared/Registerable.sol +20 -37
  491. package/contracts/shared/RegistryLinked.sol +23 -4
  492. package/contracts/shared/Service.sol +9 -8
  493. package/contracts/shared/TokenHandler.sol +1 -4
  494. package/contracts/staking/IStaking.sol +4 -2
  495. package/contracts/staking/IStakingService.sol +1 -10
  496. package/contracts/staking/Staking.sol +34 -28
  497. package/contracts/staking/StakingLib.sol +1 -3
  498. package/contracts/staking/StakingManager.sol +6 -3
  499. package/contracts/staking/StakingReader.sol +17 -9
  500. package/contracts/staking/StakingService.sol +14 -17
  501. package/contracts/staking/StakingServiceManager.sol +8 -4
  502. package/contracts/staking/StakingStore.sol +8 -8
  503. package/contracts/staking/TargetHandler.sol +5 -4
  504. package/contracts/type/Version.sol +16 -15
  505. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  506. package/contracts/upgradeability/ProxyManager.sol +54 -46
  507. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  508. package/package.json +3 -3
  509. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  510. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  511. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  512. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  513. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  514. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  515. package/contracts/shared/IVersionable.sol +0 -19
  516. package/contracts/shared/Versionable.sol +0 -47
@@ -3,19 +3,42 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccess} from "../../../contracts/authorization/IAccess.sol";
5
5
 
6
+ import {AccessAdminLib} from "../../authorization/AccessAdminLib.sol";
6
7
  import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
7
8
  import {FlightProduct} from "./FlightProduct.sol";
8
9
  import {ORACLE} from "../../../contracts/type/ObjectType.sol";
9
- import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
10
+ import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
10
11
 
11
12
 
12
13
  contract FlightProductAuthorization
13
14
  is BasicProductAuthorization
14
15
  {
15
16
 
16
- constructor(string memory poolName)
17
- BasicProductAuthorization(poolName)
18
- {}
17
+ uint64 public constant STATISTICS_PROVIDER_ROLE_IDX = 1; // 1st custom role for flight product
18
+ string public constant STATISTICS_PROVIDER_ROLE_NAME = "StatisticsProviderRole";
19
+ RoleId public STATISTICS_PROVIDER_ROLE;
20
+
21
+
22
+ constructor(string memory productName)
23
+ BasicProductAuthorization(productName)
24
+ { }
25
+
26
+
27
+ function _setupRoles()
28
+ internal
29
+ override
30
+ {
31
+ STATISTICS_PROVIDER_ROLE = AccessAdminLib.getCustomRoleId(STATISTICS_PROVIDER_ROLE_IDX);
32
+
33
+ _addRole(
34
+ STATISTICS_PROVIDER_ROLE,
35
+ AccessAdminLib.roleInfo(
36
+ ADMIN_ROLE(),
37
+ TargetType.Custom,
38
+ 1, // max member count special case: instance nft owner is sole role owner
39
+ STATISTICS_PROVIDER_ROLE_NAME));
40
+ }
41
+
19
42
 
20
43
  function _setupTargetAuthorizations()
21
44
  internal
@@ -28,14 +51,16 @@ contract FlightProductAuthorization
28
51
  functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
29
52
  _authorize(functions, FlightProduct.flightStatusCallback.selector, "flightStatusCallback");
30
53
 
31
- // authorize public role (open access to any account, only allows to lock target)
32
- functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
33
- _authorize(functions, FlightProduct.createPolicy.selector, "createPolicy");
54
+ // authorize statistics provider role
55
+ functions = _authorizeForTarget(getMainTargetName(), STATISTICS_PROVIDER_ROLE);
34
56
  _authorize(functions, FlightProduct.createPolicyWithPermit.selector, "createPolicyWithPermit");
35
57
 
36
- // TODO: only owner
37
- _authorize(functions, FlightProduct.processFlightStatus.selector, "processFlightStatus");
38
- _authorize(functions, FlightProduct.completeSetup.selector, "completeSetup");
58
+ // authorize public role (additional authz via onlyOwner)
59
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
60
+ _authorize(functions, FlightProduct.resendRequest.selector, "resendRequest");
61
+ _authorize(functions, FlightProduct.processPayoutsAndClosePolicies.selector, "processPayoutsAndClosePolicies");
62
+ _authorize(functions, FlightProduct.setConstants.selector, "setConstants");
63
+ _authorize(functions, FlightProduct.setTestMode.selector, "setTestMode");
39
64
  _authorize(functions, FlightProduct.setDefaultBundle.selector, "setDefaultBundle");
40
65
  _authorize(functions, FlightProduct.approveTokenHandler.selector, "approveTokenHandler");
41
66
  _authorize(functions, FlightProduct.setLocked.selector, "setLocked");
@@ -0,0 +1,49 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
+ import {IVersionable} from "../../upgradeability/IVersionable.sol";
6
+
7
+ import {NftId} from "../../type/NftId.sol";
8
+ import {ProxyManager} from "../../upgradeability/ProxyManager.sol";
9
+ import {FlightProduct} from "./FlightProduct.sol";
10
+
11
+
12
+ contract FlightProductManager is ProxyManager {
13
+
14
+ FlightProduct private _flightProduct;
15
+ bytes32 private _salt = "0x1234";
16
+
17
+ /// @dev initializes proxy manager with flight product implementation
18
+ constructor(
19
+ address registry,
20
+ NftId instanceNftId,
21
+ string memory componentName,
22
+ IAuthorization authorization
23
+ )
24
+ {
25
+ // FlightProduct prd = new FlightProduct{salt: _salt}();
26
+ // bytes memory data = abi.encode(
27
+ // registry,
28
+ // instanceNftId,
29
+ // componentName,
30
+ // authorization);
31
+
32
+ // IVersionable versionable = initialize(
33
+ // registry,
34
+ // address(prd),
35
+ // data,
36
+ // _salt);
37
+
38
+ // _flightProduct = FlightProduct(address(versionable));
39
+ }
40
+
41
+ //--- view functions ----------------------------------------------------//
42
+ function getFlightProduct()
43
+ external
44
+ view
45
+ returns (FlightProduct flightProduct)
46
+ {
47
+ return _flightProduct;
48
+ }
49
+ }
@@ -17,12 +17,14 @@ contract SimpleDistribution is
17
17
  {
18
18
 
19
19
  constructor(
20
+ address registry,
20
21
  NftId productNftId,
21
22
  IAuthorization authorization,
22
23
  address initialOwner
23
24
  )
24
25
  {
25
26
  initialize(
27
+ registry,
26
28
  productNftId,
27
29
  authorization,
28
30
  initialOwner,
@@ -30,6 +32,7 @@ contract SimpleDistribution is
30
32
  }
31
33
 
32
34
  function initialize(
35
+ address registry,
33
36
  NftId productNftId,
34
37
  IAuthorization authorization,
35
38
  address initialOwner,
@@ -40,6 +43,7 @@ contract SimpleDistribution is
40
43
  initializer()
41
44
  {
42
45
  _initializeBasicDistribution(
46
+ registry,
43
47
  productNftId,
44
48
  authorization,
45
49
  initialOwner,
@@ -31,12 +31,14 @@ contract SimpleOracle is
31
31
  event LogSimpleOracleSyncResponseSent(RequestId requestId, string responseText);
32
32
 
33
33
  constructor(
34
+ address registry,
34
35
  NftId productNftId,
35
36
  IAuthorization authorization,
36
37
  address initialOwner
37
38
  )
38
39
  {
39
40
  initialize(
41
+ registry,
40
42
  productNftId,
41
43
  authorization,
42
44
  initialOwner,
@@ -45,6 +47,7 @@ contract SimpleOracle is
45
47
  }
46
48
 
47
49
  function initialize(
50
+ address registry,
48
51
  NftId productNftId,
49
52
  IAuthorization authorization,
50
53
  address initialOwner,
@@ -55,6 +58,7 @@ contract SimpleOracle is
55
58
  initializer()
56
59
  {
57
60
  _initializeBasicOracle(
61
+ registry,
58
62
  productNftId,
59
63
  authorization,
60
64
  initialOwner,
@@ -17,6 +17,7 @@ contract SimplePool is
17
17
  {
18
18
 
19
19
  constructor(
20
+ address registry,
20
21
  NftId productNftId,
21
22
  IComponents.PoolInfo memory poolInfo,
22
23
  IAuthorization authorization,
@@ -24,6 +25,7 @@ contract SimplePool is
24
25
  )
25
26
  {
26
27
  initialize(
28
+ registry,
27
29
  productNftId,
28
30
  poolInfo,
29
31
  authorization,
@@ -33,6 +35,7 @@ contract SimplePool is
33
35
 
34
36
 
35
37
  function initialize(
38
+ address registry,
36
39
  NftId productNftId,
37
40
  IComponents.PoolInfo memory poolInfo,
38
41
  IAuthorization authorization,
@@ -43,6 +46,7 @@ contract SimplePool is
43
46
  initializer()
44
47
  {
45
48
  _initializeBasicPool(
49
+ registry,
46
50
  productNftId,
47
51
  "SimplePool",
48
52
  poolInfo,
@@ -34,6 +34,7 @@ contract SimpleProduct is
34
34
  IOracleService private _oracleService;
35
35
 
36
36
  constructor(
37
+ address registry,
37
38
  NftId instanceNftId,
38
39
  string memory name,
39
40
  IComponents.ProductInfo memory productInfo,
@@ -43,6 +44,7 @@ contract SimpleProduct is
43
44
  )
44
45
  {
45
46
  initialize(
47
+ registry,
46
48
  instanceNftId,
47
49
  name,
48
50
  productInfo,
@@ -53,6 +55,7 @@ contract SimpleProduct is
53
55
 
54
56
 
55
57
  function initialize(
58
+ address registry,
56
59
  NftId instanceNftid,
57
60
  string memory name,
58
61
  IComponents.ProductInfo memory productInfo,
@@ -65,6 +68,7 @@ contract SimpleProduct is
65
68
  initializer()
66
69
  {
67
70
  _initializeBasicProduct(
71
+ registry,
68
72
  instanceNftid,
69
73
  name,
70
74
  productInfo,
@@ -42,6 +42,8 @@ abstract contract BaseStore is
42
42
  metadata.objectType = objectType;
43
43
  metadata.state = initialState;
44
44
  metadata.updatedIn = blocknumber;
45
+
46
+ emit LogBaseStoreMetadataCreated(key32, objectType, initialState);
45
47
  }
46
48
 
47
49
  function _updateState(
@@ -73,6 +75,8 @@ abstract contract BaseStore is
73
75
 
74
76
  // update metadata
75
77
  metadata.updatedIn = BlocknumberLib.current();
78
+
79
+ emit LogBaseStoreMetadataUpdated(key32, oldState, state);
76
80
  }
77
81
 
78
82
  function exists(Key32 key32) public view returns (bool) {
@@ -14,13 +14,13 @@ contract BundleSet is
14
14
  {
15
15
  using LibNftIdSet for LibNftIdSet.Set;
16
16
 
17
- event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
18
- event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
17
+ event LogBundleSetPolicyLinked(NftId indexed bundleNftId, NftId indexed policyNftId);
18
+ event LogBundleSetPolicyUnlinked(NftId indexed bundleNftId, NftId indexed policyNftId);
19
19
 
20
- event LogBundleSetBundleAdded(NftId poolNftId, NftId bundleNftId);
21
- event LogBundleSetBundleUnlocked(NftId poolNftId, NftId bundleNftId);
22
- event LogBundleSetBundleLocked(NftId poolNftId, NftId bundleNftId);
23
- event LogBundleSetBundleClosed(NftId poolNftId, NftId bundleNftId);
20
+ event LogBundleSetBundleAdded(NftId indexed poolNftId, NftId indexed bundleNftId);
21
+ event LogBundleSetBundleUnlocked(NftId indexed poolNftId, NftId indexed bundleNftId);
22
+ event LogBundleSetBundleLocked(NftId indexed poolNftId, NftId indexed bundleNftId);
23
+ event LogBundleSetBundleClosed(NftId indexed poolNftId, NftId indexed bundleNftId);
24
24
 
25
25
  error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
26
26
  error ErrorBundleSetBundleLocked(NftId bundleNftId, NftId policyNftId);
@@ -17,6 +17,14 @@ interface IBaseStore is ILifecycle {
17
17
  error ErrorBaseStoreStateZero(Key32 key);
18
18
  error ErrorBaseStoreNotExisting(Key32 key);
19
19
 
20
+ event LogBaseStoreMetadataCreated(
21
+ Key32 indexed key,
22
+ ObjectType indexed objectType,
23
+ StateId indexed state);
24
+ event LogBaseStoreMetadataUpdated(
25
+ Key32 indexed key,
26
+ StateId indexed oldState,
27
+ StateId indexed newState);
20
28
 
21
29
  struct Metadata {
22
30
  // slot 0
@@ -21,15 +21,15 @@ interface IInstance is
21
21
  IRegisterable
22
22
  {
23
23
  // role handling
24
- event LogInstanceCustomRoleCreated(RoleId roleId, string roleName, RoleId adminRoleId, uint32 maxMemberCount);
25
- event LogInstanceCustomRoleActiveSet(RoleId roleId, bool active, address caller);
26
- event LogInstanceCustomRoleGranted(RoleId roleId, address account, address caller);
27
- event LogInstanceCustomRoleRevoked(RoleId roleId, address account, address caller);
24
+ event LogInstanceCustomRoleCreated(RoleId indexed roleId, string indexed roleName, RoleId indexed adminRoleId, uint32 maxMemberCount);
25
+ event LogInstanceCustomRoleActiveSet(RoleId indexed roleId, bool indexed active, address indexed caller);
26
+ event LogInstanceCustomRoleGranted(RoleId indexed roleId, address indexed account, address indexed caller);
27
+ event LogInstanceCustomRoleRevoked(RoleId indexed roleId, address indexed account, address indexed caller);
28
28
 
29
29
  // target handling
30
- event LogInstanceCustomTargetCreated(address target, RoleId targetRoleId, string name);
31
- event LogInstanceTargetLocked(address target, bool locked);
32
- event LogInstanceCustomTargetFunctionRoleSet(address target, bytes4[] selectors, RoleId roleId);
30
+ event LogInstanceCustomTargetCreated(address indexed target, RoleId indexed targetRoleId, string indexed name);
31
+ event LogInstanceTargetLocked(address indexed target, bool indexed locked);
32
+ event LogInstanceCustomTargetFunctionRoleSet(address indexed target, bytes4[] indexed selectors, RoleId indexed roleId);
33
33
 
34
34
  // modifier is onlyRoleAdmin
35
35
  error ErrorInstanceNotCustomRole(RoleId roleId);
@@ -56,10 +56,12 @@ interface IInstanceService is IService {
56
56
  error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
57
57
  error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
58
58
 
59
- event LogInstanceServiceInstanceLocked(NftId instanceNftId, bool locked);
60
- event LogInstanceServiceInstanceCreated(NftId instanceNftId, address instance);
61
- event LogInstanceServiceMasterInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
62
- event LogInstanceServiceInstanceReaderUpgraded(NftId instanceNfId, address newInstanceReader);
59
+ event LogInstanceServiceInstanceLocked(NftId indexed instanceNftId, bool indexed locked);
60
+ event LogInstanceServiceInstanceCreated(NftId indexed instanceNftId, address indexed instance);
61
+ event LogInstanceServiceMasterInstanceRegistered(NftId indexed masterInstanceNftId, address indexed masterInstance, address indexed masterInstanceAdmin, address masterAccessManager,
62
+ address masterInstanceReader, address masterInstanceBundleSet, address masterInstanceRiskSet, address masterInstanceStore, address masterProductStore);
63
+ event LogInstanceServiceMasterInstanceReaderUpgraded(NftId indexed instanceNfId, address indexed oldInstanceReader, address indexed newInstanceReader);
64
+ event LogInstanceServiceInstanceReaderUpgraded(NftId indexed instanceNfId, address indexed oldInstanceReader, address indexed newInstanceReader);
63
65
 
64
66
  /// @dev Creates a new custom role for the calling instance.
65
67
  function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
@@ -26,6 +26,8 @@ contract Instance is
26
26
  IInstance,
27
27
  Registerable
28
28
  {
29
+ bool private _initialized;
30
+
29
31
  IComponentService internal _componentService;
30
32
  IInstanceService internal _instanceService;
31
33
 
@@ -57,6 +59,8 @@ contract Instance is
57
59
 
58
60
  function initialize(
59
61
  InstanceContracts memory instanceContracts,
62
+ IRegistry registry,
63
+ VersionPart release,
60
64
  address initialOwner,
61
65
  bool tokenRegistryDisabled // only disable for testing
62
66
  )
@@ -70,9 +74,9 @@ contract Instance is
70
74
  _instanceAdmin = instanceContracts.instanceAdmin;
71
75
 
72
76
  // setup instance object info
73
- IRegistry registry = _getRegistry();
74
77
  __Registerable_init({
75
78
  authority: instanceContracts.instanceAdmin.authority(),
79
+ registry: address(registry),
76
80
  parentNftId: registry.getNftId(),
77
81
  objectType: INSTANCE(),
78
82
  isInterceptor: false,
@@ -89,19 +93,19 @@ contract Instance is
89
93
  // initialize instance supporting contracts
90
94
  _instanceStore.initialize();
91
95
  _productStore.initialize();
92
- _bundleSet.initialize(instanceContracts.instanceAdmin.authority());
93
- _riskSet.initialize(instanceContracts.instanceAdmin.authority());
96
+ _bundleSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
97
+ _riskSet.initialize(instanceContracts.instanceAdmin.authority(), address(registry));
94
98
  _instanceReader.initialize();
95
99
 
96
100
  _componentService = IComponentService(
97
- registry.getServiceAddress(
101
+ getRegistry().getServiceAddress(
98
102
  COMPONENT(),
99
- getRelease()));
103
+ release));
100
104
 
101
105
  _instanceService = IInstanceService(
102
- registry.getServiceAddress(
106
+ getRegistry().getServiceAddress(
103
107
  INSTANCE(),
104
- getRelease()));
108
+ release));
105
109
 
106
110
  _tokenRegistryDisabled = tokenRegistryDisabled;
107
111
 
@@ -11,10 +11,9 @@ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
11
11
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
12
  import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
13
13
  import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
14
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
15
14
  import {Str} from "../type/String.sol";
16
- import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
17
15
  import {VersionPart} from "../type/Version.sol";
16
+ import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
18
17
 
19
18
 
20
19
  contract InstanceAdmin is
@@ -27,12 +26,13 @@ contract InstanceAdmin is
27
26
  error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
28
27
 
29
28
  IInstance internal _instance;
29
+ IRegistry internal _registry;
30
30
 
31
31
  uint64 internal _customRoleIdNext;
32
32
 
33
33
 
34
34
  modifier onlyInstanceService() {
35
- if (msg.sender != _getRegistry().getServiceAddress(INSTANCE(), getRelease())) {
35
+ if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
36
36
  revert ErrorInstanceAdminNotInstanceService(msg.sender);
37
37
  }
38
38
  _;
@@ -43,8 +43,7 @@ contract InstanceAdmin is
43
43
  constructor(address accessManager) {
44
44
  initialize(
45
45
  accessManager,
46
- "MasterInstanceAdmin",
47
- GIF_INITIAL_RELEASE());
46
+ "MasterInstanceAdmin");
48
47
  }
49
48
 
50
49
 
@@ -52,23 +51,32 @@ contract InstanceAdmin is
52
51
  /// Important: Initialization of instance admin is only complete after calling this function.
53
52
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
54
53
  function completeSetup(
54
+ address registry,
55
55
  address authorization,
56
+ VersionPart release,
56
57
  address instance
57
58
  )
58
59
  external
60
+ reinitializer(uint64(release.toInt()))
59
61
  {
60
62
  // checks
61
- AccessAdminLib.checkIsRegistered(instance, INSTANCE(), getRelease());
63
+ AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
62
64
 
63
65
  // effects
66
+ AccessManagerCloneable(
67
+ authority()).completeSetup(
68
+ registry,
69
+ release);
70
+
64
71
  AccessAdminLib.checkAuthorization(
65
72
  address(_authorization),
66
73
  authorization,
67
74
  INSTANCE(), // expectedDomain
68
- getRelease(), // expectedRelease
75
+ release, // expectedRelease
69
76
  false, // expectServiceAuthorization
70
77
  true); // checkAlreadyInitialized
71
78
 
79
+ _registry = IRegistry(registry);
72
80
  _instance = IInstance(instance);
73
81
  _authorization = IAuthorization(authorization);
74
82
  _customRoleIdNext = 0;
@@ -97,7 +105,7 @@ contract InstanceAdmin is
97
105
  for(uint256 i = 0; i < serviceDomains.length; i++) {
98
106
  ObjectType serviceDomain = serviceDomains[i];
99
107
  RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
100
- address service = _getRegistry().getServiceAddress(serviceDomain, getRelease());
108
+ address service = _registry.getServiceAddress(serviceDomain, getRelease());
101
109
 
102
110
  _grantRoleToAccount(
103
111
  serviceRoleId,
@@ -122,13 +130,11 @@ contract InstanceAdmin is
122
130
  _createTarget(target, name, TargetType.Instance, true);
123
131
  }
124
132
 
125
-
126
133
  /// @dev Initializes the authorization for the specified component.
127
134
  /// Important: The component MUST be registered.
128
135
  function initializeComponentAuthorization(
129
136
  address componentAddress,
130
- ObjectType expectedType,
131
- VersionPart expectedRelease
137
+ ObjectType expectedType
132
138
  )
133
139
  external
134
140
  restricted()
@@ -13,9 +13,7 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
13
13
  import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
14
14
  import {ProductStore} from "../instance/ProductStore.sol";
15
15
  import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
16
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
17
- import {RiskSet} from "../instance/RiskSet.sol";
18
- import {VersionPartLib} from "../type/Version.sol";
16
+ import {RiskSet} from "../instance/RiskSet.sol";
19
17
 
20
18
 
21
19
  contract InstanceAuthorizationV3
@@ -29,7 +27,7 @@ contract InstanceAuthorizationV3
29
27
  Authorization(
30
28
  INSTANCE_TARGET_NAME,
31
29
  INSTANCE(),
32
- GIF_INITIAL_RELEASE(),
30
+ 3,
33
31
  COMMIT_HASH,
34
32
  TargetType.Instance,
35
33
  false)
@@ -28,32 +28,27 @@ import {NftId} from "../type/NftId.sol";
28
28
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
29
29
  import {PolicyServiceLib} from "../product/PolicyServiceLib.sol";
30
30
  import {ProductStore} from "./ProductStore.sol";
31
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
32
31
  import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
33
32
  import {RequestId} from "../type/RequestId.sol";
34
33
  import {RiskId} from "../type/RiskId.sol";
35
34
  import {RiskSet} from "./RiskSet.sol";
36
35
  import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
37
36
  import {StateId} from "../type/StateId.sol";
37
+ import {Str, StrLib} from "../type/String.sol";
38
38
  import {TokenHandler} from "../shared/TokenHandler.sol";
39
39
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
40
40
 
41
41
 
42
42
  /// @dev Central reader contract for a specific instance.
43
43
  /// Provides reading functions for all instance data and related component data.
44
- contract InstanceReader is
45
- RegistryLinked
46
- {
44
+ contract InstanceReader {
47
45
 
48
46
  error ErrorInstanceReaderAlreadyInitialized();
49
47
  error ErrorInstanceReaderInstanceAddressZero();
50
- // TODO make state immutable:
51
- // 1. instance receives reader through setInstanceReader()
52
- // 2. this way instance initialization is not depends on reader
53
- // 3. and reader is simple contract with constructor
54
- // 4. no _initialized in storage, the rest is immutable
48
+
55
49
  bool private _initialized = false;
56
50
 
51
+ IRegistry internal _registry;
57
52
  IInstance internal _instance;
58
53
  InstanceAdmin internal _instanceAdmin;
59
54
 
@@ -84,24 +79,27 @@ contract InstanceReader is
84
79
  _initialized = true;
85
80
  _instance = IInstance(instanceAddress);
86
81
  _instanceAdmin = _instance.getInstanceAdmin();
82
+ _registry = _instance.getRegistry();
87
83
 
88
84
  _store = _instance.getInstanceStore();
89
85
  _productStore = _instance.getProductStore();
90
86
  _bundleSet = _instance.getBundleSet();
91
87
  _riskSet = _instance.getRiskSet();
92
-
93
- _distributionService = IDistributionService(
94
- _getRegistry().getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
88
+ _distributionService = IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
95
89
  }
96
90
 
97
91
 
98
92
  //--- instance functions ---------------------------------------------------------//
99
93
 
94
+ /// @dev Returns the registry this instance is registered in.
95
+ function getRegistry() public view returns (IRegistry registry) {
96
+ return _registry;
97
+ }
100
98
 
101
99
 
102
100
  /// @dev Returns the instance NFT ID.
103
101
  function getInstanceNftId() public view returns (NftId instanceNftid) {
104
- return _getRegistry().getNftIdForAddress(address(_instance));
102
+ return _registry.getNftIdForAddress(address(_instance));
105
103
  }
106
104
 
107
105
 
@@ -166,7 +164,9 @@ contract InstanceReader is
166
164
 
167
165
 
168
166
  /// @dev Returns the currently locked amount for the given NFT ID.
169
- /// The target NFT ID may reference a pool or a bundle.
167
+ /// Locked amounts are only tracked for bundles, not for pool. To get the
168
+ /// pool locked amount, then locked amounts of the bundles contained in the
169
+ /// pool must be summed up. The target NFT ID may only a bundle.
170
170
  function getLockedAmount(NftId targetNftId) external view returns (Amount) {
171
171
  return _store.getLockedAmount(targetNftId);
172
172
  }
@@ -438,7 +438,7 @@ contract InstanceReader is
438
438
  return _store.getReferralInfo(referralId);
439
439
  }
440
440
 
441
- // TODO reader dependce on service os wrong?
441
+
442
442
  function getDiscountPercentage(ReferralId referralId)
443
443
  public
444
444
  view
@@ -447,7 +447,10 @@ contract InstanceReader is
447
447
  ReferralStatus status
448
448
  )
449
449
  {
450
- return _distributionService.getDiscountPercentage(
450
+ return IDistributionService(
451
+ _registry.getServiceAddress(
452
+ DISTRIBUTION(),
453
+ _instance.getRelease())).getDiscountPercentage(
451
454
  this, // instance reader
452
455
  referralId);
453
456
  }
@@ -466,6 +469,12 @@ contract InstanceReader is
466
469
  }
467
470
 
468
471
 
472
+ /// @dev Returns the role ID for the given index.
473
+ function getRoleForName(string memory name) public view returns (RoleId roleId, bool exists) {
474
+ return _instanceAdmin.getRoleForName(name);
475
+ }
476
+
477
+
469
478
  /// @dev Returns the role ID for the instance owner role.
470
479
  /// This role may be used as a "root" admin role for other custom roles defined for this instance.
471
480
  function getInstanceOwnerRole() public pure returns (RoleId roleId) {
@@ -595,13 +604,18 @@ contract InstanceReader is
595
604
  }
596
605
 
597
606
 
598
- function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
599
- return UFixedLib.toUFixed(value, exp);
607
+ function toInt(UFixed value) public pure returns (uint256) {
608
+ return UFixedLib.toInt(value);
600
609
  }
601
610
 
602
611
 
603
- function toInt(UFixed value) public pure returns (uint256) {
604
- return UFixedLib.toInt(value);
612
+ function toString(Str str) public pure returns (string memory) {
613
+ return StrLib.toString(str);
614
+ }
615
+
616
+
617
+ function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
618
+ return UFixedLib.toUFixed(value, exp);
605
619
  }
606
620
 
607
621
  //--- internal functions ----------------------------------------------------//