@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f13d67f-541

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 (560) hide show
  1. package/README.md +90 -317
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +729 -287
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +438 -35
  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 +560 -220
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +191 -21
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +132 -300
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +427 -53
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -173
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +585 -231
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +190 -78
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -135
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +160 -224
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +426 -52
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +308 -337
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +426 -52
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
  51. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  53. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
  55. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  57. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  59. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
  61. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
  63. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  65. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +215 -257
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -165
  73. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +278 -233
  75. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +946 -466
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  81. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  82. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
  83. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  85. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  86. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  87. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  88. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +551 -50
  89. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +417 -17
  91. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  92. package/artifacts/contracts/instance/Instance.sol/Instance.json +615 -105
  93. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1121 -374
  95. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  96. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +379 -68
  97. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1127 -557
  99. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +434 -81
  101. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +119 -49
  103. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1286 -1925
  105. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  106. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  107. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  108. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  109. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  111. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  112. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  114. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  116. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  118. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  120. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  121. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  122. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  123. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  125. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  127. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -175
  128. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +425 -54
  130. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +48 -74
  133. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
  135. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -111
  137. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +157 -81
  139. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +154 -46
  141. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  142. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -173
  143. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +426 -52
  145. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +317 -344
  147. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -92
  149. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  150. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +219 -146
  151. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +63 -128
  153. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  154. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +380 -214
  155. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  156. package/artifacts/contracts/pool/Pool.sol/Pool.json +76 -159
  157. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  158. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  159. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +621 -413
  161. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +186 -66
  163. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  164. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +327 -62
  165. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +143 -43
  167. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  168. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +199 -223
  169. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  170. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +426 -52
  171. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  172. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +294 -189
  173. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +151 -83
  175. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  176. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
  177. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  178. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
  179. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +167 -56
  181. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  182. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
  183. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  184. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +175 -181
  185. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
  187. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  188. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +296 -194
  189. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  190. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  191. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -77
  193. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  194. package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -114
  195. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  196. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +131 -59
  197. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  198. package/artifacts/contracts/product/Product.sol/Product.json +193 -217
  199. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  200. package/artifacts/contracts/product/RiskService.sol/RiskService.json +338 -87
  201. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +141 -41
  203. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  205. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +78 -19
  207. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
  209. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  210. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  211. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/Registry.sol/Registry.json +116 -57
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  215. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +848 -479
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  217. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +89 -37
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +119 -39
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  223. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  225. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +398 -64
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  232. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Component.sol/Component.json +66 -96
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +308 -542
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +155 -83
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  246. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +48 -60
  248. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +171 -356
  250. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -74
  252. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  255. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
  258. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
  261. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  262. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  263. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  264. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +66 -110
  265. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  266. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  267. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  268. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  270. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  271. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  272. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  273. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
  274. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  275. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  276. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  277. package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
  280. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  281. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  282. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  283. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
  284. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  285. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1446 -164
  286. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  287. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
  288. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  289. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  290. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  291. package/artifacts/contracts/staking/Staking.sol/Staking.json +1583 -296
  292. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  294. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +160 -69
  296. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  297. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  298. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  299. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +257 -162
  300. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -46
  302. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  303. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
  304. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  305. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  306. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  307. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
  308. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  324. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  328. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +49 -50
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  337. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  338. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  339. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  341. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  343. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
  345. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  347. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  349. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/String.sol/StrLib.json +69 -2
  352. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  354. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  356. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  358. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  360. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  361. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  362. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  363. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +95 -25
  364. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  365. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  366. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  367. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  368. package/contracts/accounting/AccountingService.sol +274 -0
  369. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  370. package/contracts/accounting/IAccountingService.sol +47 -0
  371. package/contracts/authorization/AccessAdmin.sol +389 -306
  372. package/contracts/authorization/AccessAdminLib.sol +678 -0
  373. package/contracts/authorization/AccessManagerCloneable.sol +128 -4
  374. package/contracts/authorization/Authorization.sol +161 -260
  375. package/contracts/authorization/IAccess.sol +29 -12
  376. package/contracts/authorization/IAccessAdmin.sol +89 -84
  377. package/contracts/authorization/IAuthorization.sol +9 -43
  378. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  379. package/contracts/authorization/ServiceAuthorization.sol +228 -34
  380. package/contracts/distribution/BasicDistribution.sol +19 -18
  381. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  382. package/contracts/distribution/Distribution.sol +45 -85
  383. package/contracts/distribution/DistributionService.sol +192 -99
  384. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  385. package/contracts/distribution/IDistributionComponent.sol +3 -10
  386. package/contracts/distribution/IDistributionService.sol +38 -24
  387. package/contracts/examples/fire/FirePool.sol +21 -8
  388. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  389. package/contracts/examples/fire/FireProduct.sol +38 -20
  390. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  391. package/contracts/examples/flight/FlightLib.sol +279 -0
  392. package/contracts/examples/flight/FlightOracle.sol +168 -0
  393. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  394. package/contracts/examples/flight/FlightPool.sol +89 -0
  395. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  396. package/contracts/examples/flight/FlightProduct.sol +470 -0
  397. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  398. package/contracts/examples/flight/FlightUSD.sol +26 -0
  399. package/contracts/examples/flight/originalV1.sol +396 -0
  400. package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
  401. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  402. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  403. package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
  404. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  405. package/contracts/examples/unpermissioned/SimpleProduct.sol +132 -46
  406. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  407. package/contracts/instance/BaseStore.sol +93 -0
  408. package/contracts/instance/BundleSet.sol +42 -38
  409. package/contracts/instance/IBaseStore.sol +37 -0
  410. package/contracts/instance/IInstance.sol +109 -19
  411. package/contracts/instance/IInstanceService.sol +61 -14
  412. package/contracts/instance/Instance.sol +184 -65
  413. package/contracts/instance/InstanceAdmin.sol +221 -193
  414. package/contracts/instance/InstanceAuthorizationV3.sol +153 -72
  415. package/contracts/instance/InstanceReader.sol +447 -314
  416. package/contracts/instance/InstanceService.sol +315 -214
  417. package/contracts/instance/InstanceServiceManager.sol +1 -1
  418. package/contracts/instance/InstanceStore.sol +152 -116
  419. package/contracts/instance/ProductStore.sol +290 -0
  420. package/contracts/instance/RiskSet.sol +126 -0
  421. package/contracts/instance/TargetNames.sol +10 -0
  422. package/contracts/instance/base/BalanceStore.sol +4 -6
  423. package/contracts/instance/base/ObjectCounter.sol +1 -2
  424. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  425. package/contracts/instance/base/ObjectSet.sol +31 -33
  426. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  427. package/contracts/instance/module/IBundle.sol +6 -5
  428. package/contracts/instance/module/IComponents.sol +19 -10
  429. package/contracts/instance/module/IDistribution.sol +21 -8
  430. package/contracts/instance/module/IPolicy.sol +28 -7
  431. package/contracts/instance/module/IRisk.sol +5 -0
  432. package/contracts/oracle/BasicOracle.sol +3 -6
  433. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  434. package/contracts/oracle/IOracle.sol +9 -4
  435. package/contracts/oracle/IOracleService.sol +12 -12
  436. package/contracts/oracle/Oracle.sol +5 -9
  437. package/contracts/oracle/OracleService.sol +98 -79
  438. package/contracts/oracle/OracleServiceManager.sol +1 -1
  439. package/contracts/pool/BasicPool.sol +26 -19
  440. package/contracts/pool/BasicPoolAuthorization.sol +34 -10
  441. package/contracts/pool/BundleService.sol +75 -182
  442. package/contracts/pool/BundleServiceManager.sol +1 -1
  443. package/contracts/pool/IBundleService.sol +28 -55
  444. package/contracts/pool/IPoolComponent.sol +1 -7
  445. package/contracts/pool/IPoolService.sol +65 -62
  446. package/contracts/pool/Pool.sol +111 -115
  447. package/contracts/pool/PoolLib.sol +341 -0
  448. package/contracts/pool/PoolService.sol +299 -229
  449. package/contracts/pool/PoolServiceManager.sol +1 -1
  450. package/contracts/product/ApplicationService.sol +93 -25
  451. package/contracts/product/ApplicationServiceManager.sol +1 -1
  452. package/contracts/product/BasicProduct.sol +10 -15
  453. package/contracts/product/BasicProductAuthorization.sol +33 -11
  454. package/contracts/product/ClaimService.sol +221 -207
  455. package/contracts/product/ClaimServiceManager.sol +1 -1
  456. package/contracts/product/IApplicationService.sol +28 -3
  457. package/contracts/product/IClaimService.sol +18 -5
  458. package/contracts/product/IPolicyService.sol +34 -12
  459. package/contracts/product/IPricingService.sol +1 -0
  460. package/contracts/product/IProductComponent.sol +4 -1
  461. package/contracts/product/IRiskService.sol +25 -10
  462. package/contracts/product/PolicyService.sol +260 -306
  463. package/contracts/product/PolicyServiceLib.sol +139 -0
  464. package/contracts/product/PolicyServiceManager.sol +1 -1
  465. package/contracts/product/PricingService.sol +52 -46
  466. package/contracts/product/PricingServiceManager.sol +3 -3
  467. package/contracts/product/Product.sol +106 -70
  468. package/contracts/product/RiskService.sol +130 -37
  469. package/contracts/product/RiskServiceManager.sol +1 -1
  470. package/contracts/registry/ChainNft.sol +4 -2
  471. package/contracts/registry/IRegistry.sol +25 -24
  472. package/contracts/registry/IRelease.sol +29 -0
  473. package/contracts/registry/Registry.sol +31 -12
  474. package/contracts/registry/RegistryAdmin.sol +94 -369
  475. package/contracts/registry/RegistryAuthorization.sol +337 -0
  476. package/contracts/registry/RegistryService.sol +4 -4
  477. package/contracts/registry/RegistryServiceManager.sol +1 -1
  478. package/contracts/registry/ReleaseAdmin.sol +199 -0
  479. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  480. package/contracts/registry/ReleaseRegistry.sol +158 -134
  481. package/contracts/registry/ServiceAuthorizationV3.sol +200 -52
  482. package/contracts/registry/TokenRegistry.sol +61 -59
  483. package/contracts/shared/Component.sol +58 -119
  484. package/contracts/shared/ComponentService.sol +400 -395
  485. package/contracts/shared/ComponentServiceManager.sol +1 -1
  486. package/contracts/shared/ContractLib.sol +277 -3
  487. package/contracts/shared/IComponent.sol +2 -18
  488. package/contracts/shared/IComponentService.sol +28 -38
  489. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  490. package/contracts/shared/INftOwnable.sol +2 -0
  491. package/contracts/shared/IRegisterable.sol +15 -5
  492. package/contracts/shared/IService.sol +3 -5
  493. package/contracts/shared/InitializableERC165.sol +9 -1
  494. package/contracts/shared/InstanceLinkedComponent.sol +63 -44
  495. package/contracts/shared/NftOwnable.sol +8 -6
  496. package/contracts/shared/PolicyHolder.sol +4 -3
  497. package/contracts/shared/Registerable.sol +41 -20
  498. package/contracts/shared/RegistryLinked.sol +7 -13
  499. package/contracts/shared/Service.sol +13 -30
  500. package/contracts/shared/TokenHandler.sol +264 -105
  501. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  502. package/contracts/staking/IStaking.sol +270 -72
  503. package/contracts/staking/IStakingService.sol +45 -75
  504. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  505. package/contracts/staking/Staking.sol +522 -222
  506. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  507. package/contracts/staking/StakingManager.sol +4 -3
  508. package/contracts/staking/StakingReader.sol +58 -77
  509. package/contracts/staking/StakingService.sol +62 -148
  510. package/contracts/staking/StakingServiceManager.sol +6 -4
  511. package/contracts/staking/StakingStore.sol +1093 -330
  512. package/contracts/staking/TargetHandler.sol +132 -0
  513. package/contracts/staking/TargetManagerLib.sol +69 -46
  514. package/contracts/type/Amount.sol +4 -0
  515. package/contracts/type/Blocknumber.sol +17 -22
  516. package/contracts/type/ChainId.sol +101 -0
  517. package/contracts/type/Fee.sol +8 -8
  518. package/contracts/type/Key32.sol +2 -2
  519. package/contracts/type/Key32Set.sol +62 -0
  520. package/contracts/type/NftId.sol +6 -0
  521. package/contracts/type/ObjectType.sol +70 -68
  522. package/contracts/type/Referral.sol +6 -0
  523. package/contracts/type/RequestIdSet.sol +62 -0
  524. package/contracts/type/RiskId.sol +26 -8
  525. package/contracts/type/RoleId.sol +63 -45
  526. package/contracts/type/Seconds.sol +23 -0
  527. package/contracts/type/Selector.sol +5 -0
  528. package/contracts/type/String.sol +42 -0
  529. package/contracts/type/Timestamp.sol +14 -8
  530. package/contracts/type/UFixed.sol +35 -127
  531. package/contracts/type/Version.sol +54 -5
  532. package/contracts/upgradeability/IVersionable.sol +3 -0
  533. package/contracts/upgradeability/ProxyManager.sol +27 -13
  534. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  535. package/contracts/upgradeability/Versionable.sol +6 -3
  536. package/package.json +4 -4
  537. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  538. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  539. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  541. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
  542. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
  543. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  544. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
  545. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  546. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  547. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  548. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  549. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  550. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  551. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  552. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  553. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  554. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  555. package/contracts/instance/module/IAccess.sol +0 -46
  556. package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
  557. package/contracts/shared/ComponentVerifyingService.sol +0 -126
  558. package/contracts/shared/IKeyValueStore.sol +0 -54
  559. package/contracts/shared/KeyValueStore.sol +0 -131
  560. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,34 +1,45 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
6
- import {DistributorType} from "../type/DistributorType.sol";
7
- import {Key32} from "../type/Key32.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
10
- import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
11
- import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
12
- import {RequestId} from "../type/RequestId.sol";
13
- import {RiskId} from "../type/RiskId.sol";
14
- import {RoleId} from "../type/RoleId.sol";
15
- import {StateId} from "../type/StateId.sol";
16
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
17
5
 
6
+ import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IBaseStore} from "./IBaseStore.sol";
18
8
  import {IBundle} from "../instance/module/IBundle.sol";
19
9
  import {IComponents} from "../instance/module/IComponents.sol";
20
10
  import {IDistribution} from "../instance/module/IDistribution.sol";
11
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
21
12
  import {IInstance} from "./IInstance.sol";
22
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
23
13
  import {IOracle} from "../oracle/IOracle.sol";
24
14
  import {IPolicy} from "../instance/module/IPolicy.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
25
16
  import {IRisk} from "../instance/module/IRisk.sol";
26
- import {TimestampLib} from "../type/Timestamp.sol";
27
17
 
28
- import {InstanceStore} from "./InstanceStore.sol";
18
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
19
+ import {Amount} from "../type/Amount.sol";
29
20
  import {BundleSet} from "./BundleSet.sol";
21
+ import {BUNDLE, COMPONENT, DISTRIBUTION, PREMIUM, POLICY} from "../type/ObjectType.sol";
22
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
23
+ import {DistributorType} from "../type/DistributorType.sol";
24
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
25
+ import {InstanceStore} from "./InstanceStore.sol";
26
+ import {Key32} from "../type/Key32.sol";
27
+ import {NftId} from "../type/NftId.sol";
28
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
29
+ import {PolicyServiceLib} from "../product/PolicyServiceLib.sol";
30
+ import {ProductStore} from "./ProductStore.sol";
31
+ import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
32
+ import {RequestId} from "../type/RequestId.sol";
33
+ import {RiskId} from "../type/RiskId.sol";
34
+ import {RiskSet} from "./RiskSet.sol";
35
+ import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
36
+ import {StateId} from "../type/StateId.sol";
37
+ import {TokenHandler} from "../shared/TokenHandler.sol";
38
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
30
39
 
31
40
 
41
+ /// @dev Central reader contract for a specific instance.
42
+ /// Provides reading functions for all instance data and related component data.
32
43
  contract InstanceReader {
33
44
 
34
45
  error ErrorInstanceReaderAlreadyInitialized();
@@ -36,9 +47,15 @@ contract InstanceReader {
36
47
 
37
48
  bool private _initialized = false;
38
49
 
50
+ IRegistry internal _registry;
39
51
  IInstance internal _instance;
52
+ InstanceAdmin internal _instanceAdmin;
53
+
40
54
  InstanceStore internal _store;
55
+ ProductStore internal _productStore;
41
56
  BundleSet internal _bundleSet;
57
+ RiskSet internal _riskSet;
58
+ IDistributionService internal _distributionService;
42
59
 
43
60
  /// @dev This initializer needs to be called from the instance itself.
44
61
  function initialize() public {
@@ -49,348 +66,373 @@ contract InstanceReader {
49
66
  initializeWithInstance(msg.sender);
50
67
  }
51
68
 
52
- /// @dev This initializer needs to be called from the instance itself.
53
- function initializeWithInstance(address instanceAddress) public {
69
+
70
+ /// @dev Initializer to upgrade instance reader via instance service
71
+ function initializeWithInstance(address instanceAddress)
72
+ public
73
+ {
54
74
  if(_initialized) {
55
75
  revert ErrorInstanceReaderAlreadyInitialized();
56
76
  }
57
77
 
58
78
  _initialized = true;
59
79
  _instance = IInstance(instanceAddress);
80
+ _instanceAdmin = _instance.getInstanceAdmin();
81
+ _registry = _instance.getRegistry();
82
+
60
83
  _store = _instance.getInstanceStore();
84
+ _productStore = _instance.getProductStore();
61
85
  _bundleSet = _instance.getBundleSet();
86
+ _riskSet = _instance.getRiskSet();
87
+ _distributionService = IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), _instance.getRelease()));
62
88
  }
63
89
 
64
90
 
65
- // module specific functions
91
+ //--- instance functions ---------------------------------------------------------//
66
92
 
67
- function getPolicyInfo(NftId policyNftId)
68
- public
69
- view
70
- returns (IPolicy.PolicyInfo memory info)
71
- {
72
- bytes memory data = _store.getData(toPolicyKey(policyNftId));
73
- if (data.length > 0) {
74
- return abi.decode(data, (IPolicy.PolicyInfo));
75
- }
93
+ /// @dev Returns the registry this instance is registered in.
94
+ function getRegistry() public view returns (IRegistry registry) {
95
+ return _registry;
76
96
  }
77
97
 
78
- function getPolicyState(NftId policyNftId)
79
- public
80
- view
81
- returns (StateId state)
82
- {
83
- return _store.getState(toPolicyKey(policyNftId));
98
+
99
+ /// @dev Returns the instance NFT ID.
100
+ function getInstanceNftId() public view returns (NftId instanceNftid) {
101
+ return _registry.getNftIdForAddress(address(_instance));
84
102
  }
85
103
 
86
- function getPremiumInfo(NftId policyNftId)
87
- public
88
- view
89
- returns (IPolicy.PremiumInfo memory info)
90
- {
91
- bytes memory data = _store.getData(toPremiumKey(policyNftId));
92
- if (data.length > 0) {
93
- return abi.decode(data, (IPolicy.PremiumInfo));
104
+
105
+ /// @dev Returns the instance contract.
106
+ function getInstance() public view returns (IInstance instance) {
107
+ return _instance;
108
+ }
109
+
110
+
111
+ //--- component functions ------------------------------------------------------//
112
+
113
+
114
+ /// @dev Returns the component info for the given component NFT ID.
115
+ function getComponentInfo(NftId componentNftId) public view returns (IComponents.ComponentInfo memory info) {
116
+ return _store.getComponentInfo(componentNftId);
117
+ }
118
+
119
+
120
+ /// @dev Returns the registered token for the given component NFT ID.
121
+ function getToken(NftId componentNftId) public view returns (IERC20Metadata token) {
122
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
123
+ if (address(tokenHandler) != address(0)) { return tokenHandler.TOKEN(); }
124
+ }
125
+
126
+
127
+ /// @dev Returns the current wallet address for the given component NFT ID.
128
+ /// The wallet address is either the component's own address or any other wallet address specified by the component owner.
129
+ /// The wallet holds the component's funds. Tokens collected by the component are transferred to the wallet and
130
+ /// Tokens distributed from the component are transferred from this wallet.
131
+ function getWallet(NftId componentNftId) public view returns (address wallet) {
132
+ IComponents.ComponentInfo memory info = getComponentInfo(componentNftId);
133
+ if (address(info.tokenHandler) != address(0)) {
134
+ return info.tokenHandler.getWallet();
94
135
  }
95
136
  }
96
137
 
97
- function getPremiumInfoState(NftId policyNftId)
98
- public
99
- view
100
- returns (StateId state)
101
- {
102
- return _store.getState(toPremiumKey(policyNftId));
138
+
139
+ /// @dev Returns the token handler for the given component NFT ID.
140
+ /// The token handler manages all transfers from/to the component's wallet.
141
+ /// To allow a component to collect funds from an account, it has to create a corresponding allowance from the
142
+ /// account to the address of the component's token handler.
143
+ function getTokenHandler(NftId componentNftId) public view returns (TokenHandler tokenHandler) {
144
+ IComponents.ComponentInfo memory info = _store.getComponentInfo(componentNftId);
145
+ if(address(info.tokenHandler) != address(0)) {
146
+ return info.tokenHandler;
147
+ }
103
148
  }
104
149
 
105
- function activeBundles(NftId poolNftId)
106
- public
107
- view
108
- returns (uint256 bundles)
109
- {
110
- return _bundleSet.activeBundles(poolNftId);
150
+
151
+ /// @dev Returns the current token balance amount for the given component NFT ID.
152
+ /// The balance amount includes the fee amount.
153
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
154
+ return _store.getBalanceAmount(targetNftId);
111
155
  }
112
156
 
113
- function getActiveBundleNftId(NftId poolNftId, uint256 idx)
114
- public
115
- view
116
- returns (NftId bundleNftId)
117
- {
118
- return _bundleSet.getActiveBundleNftId(poolNftId, idx);
157
+
158
+ /// @dev Returns the current fee amount for the given NFT ID.
159
+ /// The target NFT ID may reference a component, a distributor or a bundle.
160
+ function getFeeAmount(NftId targetNftId) external view returns (Amount) {
161
+ return _store.getFeeAmount(targetNftId);
119
162
  }
120
163
 
121
- function getBundleState(NftId bundleNftId)
122
- public
123
- view
124
- returns (StateId state)
125
- {
126
- return _store.getState(toBundleKey(bundleNftId));
164
+
165
+ /// @dev Returns the currently locked amount for the given NFT ID.
166
+ /// The target NFT ID may reference a pool or a bundle.
167
+ function getLockedAmount(NftId targetNftId) external view returns (Amount) {
168
+ return _store.getLockedAmount(targetNftId);
127
169
  }
128
170
 
129
- /// @dev Returns true iff policy is active.
130
- function policyIsActive(NftId policyNftId)
131
- public
132
- view
133
- returns (bool isCloseable)
134
- {
135
- IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
171
+ //--- product functions ------------------------------------------------------//
136
172
 
137
- if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
138
- if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
139
- if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
140
- if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
173
+ /// @dev Returns the number of registered products.
174
+ function products() public view returns (uint256 productCount) {
175
+ return _instance.products();
176
+ }
141
177
 
142
- return true;
178
+
179
+ /// @dev Returns th product NFT ID for the given index.
180
+ function getProduct(uint256 idx) public view returns (NftId productNftId) {
181
+ return _instance.getProduct(idx);
143
182
  }
144
183
 
145
- function claims(NftId policyNftId)
146
- public
147
- view
148
- returns (uint16 claims)
149
- {
150
- return getPolicyInfo(policyNftId).claimsCount;
184
+
185
+ /// @dev Returns the product info for the given product NFT ID.
186
+ function getProductInfo(NftId productNftId) public view returns (IComponents.ProductInfo memory info) {
187
+ return _productStore.getProductInfo(productNftId);
151
188
  }
152
189
 
153
190
 
154
- function getClaimId(uint idx)
155
- public
156
- view
157
- returns (ClaimId claimId)
158
- {
159
- return ClaimIdLib.toClaimId(idx + 1);
191
+ /// @dev Returns the current fee settings for the given product NFT ID.
192
+ function getFeeInfo(NftId productNftId) public view returns (IComponents.FeeInfo memory feeInfo) {
193
+ return _productStore.getFeeInfo(productNftId);
160
194
  }
161
195
 
162
- function getClaimInfo(NftId policyNftId, ClaimId claimId)
163
- public
164
- view
165
- returns (IPolicy.ClaimInfo memory info)
166
- {
167
- bytes memory data = _store.getData(claimId.toKey32(policyNftId));
168
- if (data.length > 0) {
169
- return abi.decode(data, (IPolicy.ClaimInfo));
170
- }
196
+ //--- risk functions ---------------------------------------------------------//
197
+
198
+ /// @dev Returns the total number of registered risks for the specified product.
199
+ function risks(NftId productNftId) public view returns (uint256 riskCount) {
200
+ return _riskSet.risks(productNftId);
171
201
  }
172
202
 
173
203
 
174
- function getClaimState(NftId policyNftId, ClaimId claimId)
175
- public
176
- view
177
- returns (StateId state)
178
- {
179
- return _store.getState(claimId.toKey32(policyNftId));
204
+ /// @dev Returns the number of active risks for the specified product.
205
+ function activeRisks(NftId productNftId) public view returns (uint256 activeRiskCount) {
206
+ return _riskSet.activeRisks(productNftId);
180
207
  }
181
208
 
182
209
 
183
- function payouts(NftId policyNftId, ClaimId claimId)
184
- public
185
- view
186
- returns (uint24 payouts)
187
- {
188
- return getClaimInfo(policyNftId, claimId).payoutsCount;
210
+ /// @dev Returns the risk ID for the given product NFT ID and (registered) risk index.
211
+ function getRiskId(NftId productNftId, uint256 idx) public view returns (RiskId riskId) {
212
+ return _riskSet.getRiskId(productNftId, idx);
189
213
  }
190
214
 
191
215
 
192
- function getPayoutId(ClaimId claimId, uint24 idx)
193
- public
194
- view
195
- returns (PayoutId payoutId)
196
- {
197
- return PayoutIdLib.toPayoutId(claimId, idx + 1);
216
+ /// @dev Returns the active risk ID for the given product NFT ID and (active) risk index.
217
+ function getActiveRiskId(NftId productNftId, uint256 idx) public view returns (RiskId riskId) {
218
+ return _riskSet.getActiveRiskId(productNftId, idx);
198
219
  }
199
220
 
200
221
 
222
+ /// @dev Returns true if the specified risk exists for the given product NFT ID.
223
+ function isProductRisk(NftId productNftId, RiskId riskId) public view returns (bool exists) {
224
+ return _riskSet.hasRisk(productNftId, riskId);
225
+ }
226
+
227
+
228
+ /// @dev Returns the risk info for the given risk ID.
229
+ function getRiskInfo(RiskId riskId) public view returns (IRisk.RiskInfo memory info) {
230
+ return _productStore.getRiskInfo(riskId);
231
+ }
232
+
233
+
234
+ /// @dev Returns the risk state for the given risk ID.
235
+ function getRiskState(RiskId riskId) public view returns (StateId stateId) {
236
+ return _productStore.getState(riskId.toKey32());
237
+ }
238
+
239
+
240
+ //--- policy functions -------------------------------------------------------//
241
+
242
+ /// @dev Returns the number of linked policies for the given risk ID.
243
+ function policiesForRisk(RiskId riskId) public view returns (uint256 linkedPolicies) {
244
+ return _riskSet.linkedPolicies(riskId);
245
+ }
246
+
247
+
248
+ /// @dev Returns the linked policy NFT ID for the given risk ID and index.
249
+ function getPolicyForRisk(RiskId riskId, uint256 idx) public view returns (NftId linkedPolicyNftId) {
250
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
251
+ }
252
+
253
+ /// @dev Returns the number of linked policies for the given bundle NFT ID.
254
+ function policiesForBundle(NftId bundleNftId) public view returns (uint256 linkedPolicies) {
255
+ return _bundleSet.activePolicies(bundleNftId);
256
+ }
257
+
258
+
259
+ /// @dev Returns the linked policy NFT ID for the given risk ID and index.
260
+ function getPolicyForBundle(NftId bundleNftId, uint256 idx) public view returns (NftId linkedPolicyNftId) {
261
+ return _bundleSet.getActivePolicy(bundleNftId, idx);
262
+ }
263
+
264
+
265
+ /// @dev Returns the info for the given policy NFT ID.
266
+ function getPolicyInfo(NftId policyNftId) public view returns (IPolicy.PolicyInfo memory info) {
267
+ return _productStore.getPolicyInfo(policyNftId);
268
+ }
269
+
270
+
271
+ /// @dev Returns the state for the given policy NFT ID.
272
+ function getPolicyState(NftId policyNftId) public view returns (StateId state) {
273
+ return _productStore.getState(_toPolicyKey(policyNftId));
274
+ }
275
+
276
+
277
+ /// @dev Returns true iff policy is active.
278
+ function policyIsActive(NftId policyNftId) public view returns (bool isCloseable) {
279
+ return PolicyServiceLib.policyIsActive(this, policyNftId);
280
+ }
281
+
282
+ //--- claim functions -------------------------------------------------------//
283
+
284
+ /// @dev Returns the number of claims for the given policy NFT ID.
285
+ function claims(NftId policyNftId) public view returns (uint16 claimCount) {
286
+ return getPolicyInfo(policyNftId).claimsCount;
287
+ }
288
+
289
+
290
+ /// @dev Returns the claim ID for the given policy NFT ID and index.
291
+ function getClaimId(uint256 idx) public pure returns (ClaimId claimId) {
292
+ return ClaimIdLib.toClaimId(idx + 1);
293
+ }
294
+
295
+
296
+ /// @dev Returns the claim info for the given policy NFT ID and claim ID.
297
+ function getClaimInfo(NftId policyNftId, ClaimId claimId) public view returns (IPolicy.ClaimInfo memory info) {
298
+ return _productStore.getClaimInfo(policyNftId, claimId);
299
+ }
300
+
301
+
302
+ /// @dev Returns the current claim state for the given policy NFT ID and claim ID.
303
+ function getClaimState(NftId policyNftId, ClaimId claimId) public view returns (StateId state) {
304
+ return _productStore.getState(claimId.toKey32(policyNftId));
305
+ }
306
+
307
+
308
+ /// @dev Returns the remaining claimable amount for the given policy NFT ID.
309
+ /// The remaining claimable amount is the difference between the sum insured amount and total approved claim amounts so far.
201
310
  function getRemainingClaimableAmount(NftId policyNftId)
202
- public
203
- view
204
- returns (Amount remainingClaimableAmount)
205
- {
311
+ public view returns (Amount remainingClaimableAmount) {
206
312
  IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
207
313
  return info.sumInsuredAmount - info.claimAmount;
208
314
  }
209
315
 
210
- function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
211
- public
212
- view
213
- returns (IPolicy.PayoutInfo memory info)
214
- {
215
- bytes memory data = _store.getData(payoutId.toKey32(policyNftId));
216
- if (data.length > 0) {
217
- return abi.decode(data, (IPolicy.PayoutInfo));
218
- }
316
+ //--- payout functions -------------------------------------------------------//
317
+
318
+ /// @dev Returns the number of payouts for the given policy NFT ID and claim ID.
319
+ function payouts(NftId policyNftId, ClaimId claimId) public view returns (uint24 payoutCount) {
320
+ return getClaimInfo(policyNftId, claimId).payoutsCount;
219
321
  }
220
322
 
221
- function getPayoutState(NftId policyNftId, PayoutId payoutId)
222
- public
223
- view
224
- returns (StateId state)
225
- {
226
- return _store.getState(payoutId.toKey32(policyNftId));
323
+
324
+ /// @dev Returns the payout ID for the given claim ID and index.
325
+ function getPayoutId(ClaimId claimId, uint24 idx) public pure returns (PayoutId payoutId) {
326
+ return PayoutIdLib.toPayoutId(claimId, idx + 1);
227
327
  }
228
328
 
229
- function getRiskInfo(RiskId riskId)
230
- public
231
- view
232
- returns (IRisk.RiskInfo memory info)
233
- {
234
- bytes memory data = _store.getData(riskId.toKey32());
235
- if (data.length > 0) {
236
- return abi.decode(data, (IRisk.RiskInfo));
237
- }
329
+
330
+ /// @dev Returns the payout info for the given policy NFT ID and payout ID.
331
+ function getPayoutInfo(NftId policyNftId, PayoutId payoutId) public view returns (IPolicy.PayoutInfo memory info) {
332
+ return _productStore.getPayoutInfo(policyNftId, payoutId);
238
333
  }
239
334
 
240
- function getWallet(NftId componentNftId)
241
- public
242
- view
243
- returns (address tokenHandler)
244
- {
245
- bytes memory data = _store.getData(toComponentKey(componentNftId));
246
335
 
247
- if (data.length > 0) {
248
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
249
- return info.wallet;
250
- }
336
+ /// @dev Returns the payout state for the given policy NFT ID and payout ID.
337
+ function getPayoutState(NftId policyNftId, PayoutId payoutId) public view returns (StateId state) {
338
+ return _productStore.getState(payoutId.toKey32(policyNftId));
251
339
  }
252
340
 
253
- function getTokenHandler(NftId componentNftId)
254
- public
255
- view
256
- returns (address tokenHandler)
257
- {
258
- bytes memory data = _store.getData(toComponentKey(componentNftId));
341
+ //--- premium functions -------------------------------------------------------//
259
342
 
260
- if (data.length > 0) {
261
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
262
- return address(info.tokenHandler);
263
- }
343
+ /// @dev Returns the premium info for the given policy NFT ID.
344
+ function getPremiumInfo(NftId policyNftId) public view returns (IPolicy.PremiumInfo memory info) {
345
+ return _productStore.getPremiumInfo(policyNftId);
264
346
  }
265
347
 
266
- function getBundleInfo(NftId bundleNftId)
267
- public
268
- view
269
- returns (IBundle.BundleInfo memory info)
270
- {
271
- bytes memory data = _store.getData(toBundleKey(bundleNftId));
272
- if (data.length > 0) {
273
- return abi.decode(data, (IBundle.BundleInfo));
274
- }
348
+
349
+ /// @dev Returns the premium state for the given policy NFT ID.
350
+ function getPremiumState(NftId policyNftId) public view returns (StateId state) {
351
+ return _productStore.getState(_toPremiumKey(policyNftId));
275
352
  }
276
353
 
277
- function getDistributorTypeInfo(DistributorType distributorType)
278
- public
279
- view
280
- returns (IDistribution.DistributorTypeInfo memory info)
281
- {
282
- bytes memory data = _store.getData(distributorType.toKey32());
283
- if (data.length > 0) {
284
- return abi.decode(data, (IDistribution.DistributorTypeInfo));
285
- }
354
+ //--- oracle functions ---------------------------------------------------------//
355
+
356
+ /// @dev Returns the request info for the given oracle request ID.
357
+ function getRequestInfo(RequestId requestId) public view returns (IOracle.RequestInfo memory requestInfo) {
358
+ return _store.getRequestInfo(requestId);
286
359
  }
287
360
 
288
- function getDistributorInfo(NftId distributorNftId)
289
- public
290
- view
291
- returns (IDistribution.DistributorInfo memory info)
292
- {
293
- bytes memory data = _store.getData(toDistributorKey(distributorNftId));
294
- if (data.length > 0) {
295
- return abi.decode(data, (IDistribution.DistributorInfo));
296
- }
361
+ /// @dev Returns the request info for the given oracle request ID.
362
+ function getRequestState(RequestId requestId) public view returns (StateId state) {
363
+ return getState(requestId.toKey32());
297
364
  }
298
365
 
299
- function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
300
- return _store.getBalanceAmount(targetNftId);
366
+ //--- pool functions -----------------------------------------------------------//
367
+
368
+ /// @dev Returns the pool info for the given pool NFT ID.
369
+ function getPoolInfo(NftId poolNftId) public view returns (IComponents.PoolInfo memory info) {
370
+ return _store.getPoolInfo(poolNftId);
301
371
  }
302
372
 
303
- function getLockedAmount(NftId targetNftId) external view returns (Amount) {
304
- return _store.getLockedAmount(targetNftId);
373
+ //--- bundle functions -------------------------------------------------------//
374
+
375
+ /// @dev Returns the total number of registered bundles for the given pool.
376
+ function bundles(NftId poolNftId) public view returns (uint256 bundleCount) {
377
+ return _bundleSet.bundles(poolNftId);
305
378
  }
306
379
 
307
- function getFeeAmount(NftId targetNftId) external view returns (Amount) {
308
- return _store.getFeeAmount(targetNftId);
380
+
381
+ /// @dev Returns the number of active bundles for the given pool.
382
+ function activeBundles(NftId poolNftId) public view returns (uint256 bundleCount) {
383
+ return _bundleSet.activeBundles(poolNftId);
309
384
  }
310
385
 
311
- function getComponentInfo(NftId componentNftId)
312
- public
313
- view
314
- returns (IComponents.ComponentInfo memory info)
315
- {
316
- bytes memory data = _store.getData(toComponentKey(componentNftId));
317
- if (data.length > 0) {
318
- return abi.decode(data, (IComponents.ComponentInfo));
319
- }
386
+
387
+ /// @dev Returns the bunde NFT ID for the given pool and index.
388
+ function getBundleNftId(NftId poolNftId, uint256 idx) public view returns (NftId bundleNftId) {
389
+ return _bundleSet.getBundleNftId(poolNftId, idx);
320
390
  }
321
391
 
322
- function getProductInfo(NftId productNftId)
323
- public
324
- view
325
- returns (IComponents.ProductInfo memory info)
326
- {
327
- bytes memory data = _store.getData(toProductKey(productNftId));
328
- if (data.length > 0) {
329
- return abi.decode(data, (IComponents.ProductInfo));
330
- }
392
+
393
+ /// @dev Returns the active bunde NFT ID for the given pool and index.
394
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) public view returns (NftId bundleNftId) {
395
+ return _bundleSet.getActiveBundleNftId(poolNftId, idx);
331
396
  }
332
397
 
333
- function getPoolInfo(NftId poolNftId)
334
- public
335
- view
336
- returns (IComponents.PoolInfo memory info)
337
- {
338
- bytes memory data = _store.getData(toPoolKey(poolNftId));
339
- if (data.length > 0) {
340
- return abi.decode(data, (IComponents.PoolInfo));
341
- }
398
+
399
+ /// @dev Returns the bundle info for the given bundle NFT ID.
400
+ function getBundleInfo(NftId bundleNftId) public view returns (IBundle.BundleInfo memory info) {
401
+ return _store.getBundleInfo(bundleNftId);
342
402
  }
343
403
 
344
- function getReferralInfo(ReferralId referralId)
345
- public
346
- view
347
- returns (IDistribution.ReferralInfo memory info)
348
- {
349
- bytes memory data = _store.getData(referralId.toKey32());
350
- if (data.length > 0) {
351
- return abi.decode(data, (IDistribution.ReferralInfo));
352
- }
404
+
405
+ /// @dev Returns the bundle state for the given bundle NFT ID.
406
+ function getBundleState(NftId bundleNftId) public view returns (StateId state) {
407
+ return getState(_toBundleKey(bundleNftId));
353
408
  }
354
409
 
355
- function getRequestInfo(RequestId requestId)
356
- public
357
- view
358
- returns (IOracle.RequestInfo memory requestInfo)
359
- {
360
- bytes memory data = _store.getData(requestId.toKey32());
361
- if (data.length > 0) {
362
- return abi.decode(data, (IOracle.RequestInfo));
363
- }
410
+ //--- distribution functions -------------------------------------------------------//
411
+
412
+ function getDistributorTypeInfo(DistributorType distributorType) public view returns (IDistribution.DistributorTypeInfo memory info) {
413
+ return _store.getDistributorTypeInfo(distributorType);
364
414
  }
365
415
 
366
- function getMetadata(Key32 key)
367
- public
368
- view
369
- returns (IKeyValueStore.Metadata memory metadata)
370
- {
371
- return _store.getMetadata(key);
416
+
417
+ function getDistributorInfo(NftId distributorNftId) public view returns (IDistribution.DistributorInfo memory info) {
418
+ return _store.getDistributorInfo(distributorNftId);
372
419
  }
373
420
 
374
- function getState(Key32 key)
375
- public
376
- view
377
- returns (StateId state)
378
- {
379
- return _store.getMetadata(key).state;
421
+
422
+ //--- referral functions -------------------------------------------------------//
423
+
424
+ function toReferralId(NftId distributionNftId, string memory referralCode) public pure returns (ReferralId referralId) {
425
+ return ReferralLib.toReferralId(distributionNftId, referralCode);
380
426
  }
381
427
 
382
428
 
383
- function toReferralId(
384
- NftId distributionNftId,
385
- string memory referralCode
386
- )
387
- public
388
- pure
389
- returns (ReferralId referralId)
390
- {
391
- return ReferralLib.toReferralId(
392
- distributionNftId,
393
- referralCode);
429
+ function isReferralValid(NftId distributionNftId, ReferralId referralId) external view returns (bool isValid) {
430
+ return _distributionService.referralIsValid(distributionNftId, referralId);
431
+ }
432
+
433
+
434
+ function getReferralInfo(ReferralId referralId) public view returns (IDistribution.ReferralInfo memory info) {
435
+ return _store.getReferralInfo(referralId);
394
436
  }
395
437
 
396
438
 
@@ -402,94 +444,185 @@ contract InstanceReader {
402
444
  ReferralStatus status
403
445
  )
404
446
  {
405
- IDistribution.ReferralInfo memory info = getReferralInfo(
406
- referralId);
447
+ return IDistributionService(
448
+ _registry.getServiceAddress(
449
+ DISTRIBUTION(),
450
+ _instance.getRelease())).getDiscountPercentage(
451
+ this, // instance reader
452
+ referralId);
453
+ }
407
454
 
408
- if (info.expiryAt.eqz()) {
409
- return (
410
- UFixedLib.zero(),
411
- REFERRAL_ERROR_UNKNOWN());
412
- }
455
+ //--- authorization functions -------------------------------------------------------//
413
456
 
414
- if (info.expiryAt < TimestampLib.blockTimestamp()) {
415
- return (
416
- UFixedLib.zero(),
417
- REFERRAL_ERROR_EXPIRED());
418
- }
457
+ /// @dev Returns the number of defined roles.
458
+ function roles() public view returns (uint256) {
459
+ return _instanceAdmin.roles();
460
+ }
419
461
 
420
- if (info.usedReferrals >= info.maxReferrals) {
421
- return (
422
- UFixedLib.zero(),
423
- REFERRAL_ERROR_EXHAUSTED());
424
- }
425
462
 
426
- return (
427
- info.discountPercentage,
428
- REFERRAL_OK()
429
- );
463
+ /// @dev Returns the role ID for the given index.
464
+ function getRoleId(uint256 idx) public view returns (RoleId roleId) {
465
+ return _instanceAdmin.getRoleId(uint64(idx));
430
466
  }
431
467
 
432
468
 
433
- function hasRole(address account, RoleId roleId) public view returns (bool isMember) {
434
- return _instance.getInstanceAdmin().hasRole(account, roleId);
469
+ /// @dev Returns the role ID for the instance owner role.
470
+ /// This role may be used as a "root" admin role for other custom roles defined for this instance.
471
+ function getInstanceOwnerRole() public pure returns (RoleId roleId) {
472
+ return INSTANCE_OWNER_ROLE();
435
473
  }
436
474
 
437
475
 
438
- function hasAdminRole(address account, RoleId roleId) public view returns (bool isMember) {
439
- return _instance.getInstanceAdmin().hasAdminRole(account, roleId);
476
+ /// @dev Returns the role info for the given role ID.
477
+ function getRoleInfo(RoleId roleId) public view returns (IAccess.RoleInfo memory roleInfo) {
478
+ return _instanceAdmin.getRoleInfo(roleId);
440
479
  }
441
480
 
442
481
 
443
- function isTargetLocked(address target) public view returns (bool) {
444
- return _instance.getInstanceAdmin().isTargetLocked(target);
482
+ /// @dev Returns true iff the provided role ID is defined for this instance.
483
+ function roleExists(RoleId roleId) public view returns (bool exists) {
484
+ return _instanceAdmin.roleExists(roleId);
445
485
  }
446
486
 
447
- function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
448
- return policyNftId.toKey32(POLICY());
487
+
488
+ /// @dev Returns true iff the provided role ID represents a custom role ID.
489
+ function isRoleCustom(RoleId roleId) public view returns (bool isCustom) {
490
+ return _instanceAdmin.isRoleCustom(roleId);
449
491
  }
450
492
 
451
- function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
452
- return policyNftId.toKey32(PREMIUM());
493
+
494
+ /// @dev Returns true iff the provided role ID is active.
495
+ function isRoleActive(RoleId roleId) public view returns (bool isActive) {
496
+ return _instanceAdmin.isRoleActive(roleId);
453
497
  }
454
498
 
455
- function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
456
- return distributorNftId.toKey32(DISTRIBUTOR());
499
+
500
+ /// @dev Returns the number of members (accounts) for the given role ID.
501
+ function roleMembers(RoleId roleId) public view returns (uint256 numberOfMembers) {
502
+ return _instanceAdmin.roleMembers(roleId);
457
503
  }
458
504
 
459
- function toBundleKey(NftId poolNftId) public pure returns (Key32) {
460
- return poolNftId.toKey32(BUNDLE());
505
+
506
+ /// @dev Returns the member (account address) for the given role ID and index.
507
+ function getRoleMember(RoleId roleId, uint256 idx) public view returns (address account) {
508
+ return _instanceAdmin.getRoleMember(roleId, idx);
461
509
  }
462
510
 
463
- function toComponentKey(NftId componentNftId) public pure returns (Key32) {
464
- return componentNftId.toKey32(COMPONENT());
511
+
512
+ /// @dev Returns true iff the given account is a member of the specified role ID.
513
+ function isRoleMember(RoleId roleId, address account) public view returns (bool isMember) {
514
+ return _instanceAdmin.isRoleMember(roleId, account);
465
515
  }
466
516
 
467
- function toDistributionKey(NftId distributionNftId) public pure returns (Key32) {
468
- return distributionNftId.toKey32(DISTRIBUTION());
517
+
518
+ /// @dev Returns true iff the given account is an admin of the specified role ID.
519
+ /// Role admins may grant and revoke the role to other accounts.
520
+ function isRoleAdmin(RoleId roleId, address account) public view returns (bool isMember) {
521
+ return _instanceAdmin.isRoleAdmin(roleId, account);
469
522
  }
470
523
 
471
- function toPoolKey(NftId poolNftId) public pure returns (Key32) {
472
- return poolNftId.toKey32(POOL());
524
+
525
+ /// @dev Returns the number of targets (contracts) defined for this instance.
526
+ function targets() public view returns (uint256 targetCount) {
527
+ return _instanceAdmin.targets();
473
528
  }
474
529
 
475
- function toProductKey(NftId productNftId) public pure returns (Key32) {
476
- return productNftId.toKey32(PRODUCT());
530
+
531
+ /// @dev Returns the target address for the given index.
532
+ function getTargetAddress(uint256 idx) public view returns (address target) {
533
+ return _instanceAdmin.getTargetAddress(idx);
477
534
  }
478
535
 
479
- // low level function
480
- function getInstance() external view returns (IInstance instance) {
481
- return _instance;
536
+
537
+ /// @dev Returns the target info for the given target address.
538
+ function getTargetInfo(address target) public view returns (IAccess.TargetInfo memory targetInfo) {
539
+ return _instanceAdmin.getTargetInfo(target);
540
+ }
541
+
542
+
543
+ /// @dev Returns true iff the given target is defined for this instance.
544
+ function targetExists(address target) public view returns (bool exists) {
545
+ return _instanceAdmin.targetExists(target);
546
+ }
547
+
548
+
549
+ /// @dev Returns true iff the given target is locked.
550
+ function isLocked(address target) public view returns (bool) {
551
+ return _instanceAdmin.isTargetLocked(target);
552
+ }
553
+
554
+
555
+ /// @dev Returns the number of authorized functions for the given target.
556
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
557
+ return _instanceAdmin.authorizedFunctions(target);
482
558
  }
483
559
 
484
- function getInstanceStore() external view returns (IKeyValueStore store) {
485
- return _store;
560
+
561
+ /// @dev Returns the authorized function info for the given target and index.
562
+ function getAuthorizedFunction(address target, uint256 idx) external view returns (IAccess.FunctionInfo memory func, RoleId roleId) {
563
+ return _instanceAdmin.getAuthorizedFunction(target, idx);
564
+ }
565
+
566
+
567
+ /// @dev Returns a function info for the given function signature and function name.
568
+ /// The function signature must not be zero and the function name must not be empty.
569
+ function toFunction(bytes4 signature, string memory name) public view returns (IAccess.FunctionInfo memory) {
570
+ return AccessAdminLib.toFunction(signature, name);
571
+ }
572
+
573
+ //--- low level function ----------------------------------------------------//
574
+
575
+ function getInstanceAdmin() external view returns (InstanceAdmin instanceAdmin) {
576
+ return _instanceAdmin;
486
577
  }
487
578
 
579
+ function getBundleSet() external view returns (BundleSet bundleSet) {
580
+ return _bundleSet;
581
+ }
582
+
583
+ function getRiskSet() external view returns (RiskSet riskSet) {
584
+ return _riskSet;
585
+ }
586
+
587
+
588
+ function getMetadata(Key32 key) public view returns (IBaseStore.Metadata memory metadata) {
589
+ return _store.getMetadata(key);
590
+ }
591
+
592
+
593
+ function getState(Key32 key) public view returns (StateId state) {
594
+ return _store.getState(key);
595
+ }
596
+
597
+
488
598
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
489
599
  return UFixedLib.toUFixed(value, exp);
490
600
  }
491
601
 
602
+
492
603
  function toInt(UFixed value) public pure returns (uint256) {
493
604
  return UFixedLib.toInt(value);
494
605
  }
606
+
607
+ //--- internal functions ----------------------------------------------------//
608
+
609
+
610
+ function _toPolicyKey(NftId policyNftId) internal pure returns (Key32) {
611
+ return policyNftId.toKey32(POLICY());
612
+ }
613
+
614
+
615
+ function _toPremiumKey(NftId policyNftId) internal pure returns (Key32) {
616
+ return policyNftId.toKey32(PREMIUM());
617
+ }
618
+
619
+
620
+ function _toBundleKey(NftId poolNftId) internal pure returns (Key32) {
621
+ return poolNftId.toKey32(BUNDLE());
622
+ }
623
+
624
+
625
+ function _toComponentKey(NftId componentNftId) internal pure returns (Key32) {
626
+ return componentNftId.toKey32(COMPONENT());
627
+ }
495
628
  }