@etherisc/gif-next 3.0.0-2e16ebd-614 → 3.0.0-303db9f-884

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 (528) hide show
  1. package/README.md +10 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +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 +70 -105
  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 +10 -20
  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 +224 -198
  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 +117 -71
  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 +104 -241
  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 +4 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  53. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  55. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  57. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1233 -0
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -0
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2214 -0
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  69. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  70. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  71. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  73. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  74. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +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 +175 -224
  81. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -252
  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 +54 -49
  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 +32 -71
  97. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +131 -83
  99. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  100. package/artifacts/contracts/instance/Instance.sol/Instance.json +62 -138
  101. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
  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 +305 -77
  107. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +180 -140
  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 +82 -32
  113. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  114. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
  115. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.dbg.json +4 -0
  116. package/artifacts/contracts/instance/RequestSet.sol/RequestSet.json +466 -0
  117. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  118. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
  119. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  121. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  123. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  124. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  125. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  126. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  127. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  128. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +8 -3
  129. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  130. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +38 -2
  131. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  132. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  133. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  134. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  135. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  136. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  137. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  138. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +150 -193
  140. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  142. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +130 -150
  145. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
  147. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +136 -143
  149. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  150. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
  151. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  153. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  154. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -163
  155. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  156. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  157. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  158. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +129 -176
  159. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  161. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +44 -71
  163. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  164. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +71 -174
  165. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  166. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +98 -94
  167. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  168. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -163
  169. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  170. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
  171. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  172. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +177 -233
  173. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  175. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  176. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
  177. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  179. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  180. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -147
  181. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  182. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  183. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  184. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
  185. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  187. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
  189. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
  191. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  192. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +76 -82
  193. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  194. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  195. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  196. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -159
  197. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  198. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  199. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  200. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +139 -173
  201. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  202. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  203. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
  205. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  206. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  207. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  208. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  209. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  210. package/artifacts/contracts/product/Product.sol/Product.json +57 -147
  211. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  212. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  213. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  214. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  215. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  216. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  217. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  218. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +62 -155
  219. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  220. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  221. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  222. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  223. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  224. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  225. package/artifacts/contracts/registry/Registry.sol/Registry.json +106 -314
  226. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
  228. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
  230. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  231. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
  232. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  233. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  234. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
  236. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  237. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  238. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  239. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +208 -140
  240. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  241. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  242. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  243. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
  244. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  245. package/artifacts/contracts/shared/Component.sol/Component.json +39 -159
  246. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +536 -164
  248. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  249. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  250. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  251. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  252. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  253. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  254. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  255. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  256. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  257. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  258. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
  259. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -171
  261. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +442 -82
  263. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -159
  265. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  266. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +28 -1
  268. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  269. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  270. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  271. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
  272. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  273. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  274. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  275. package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
  276. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  277. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  278. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  279. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -147
  280. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  281. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  282. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  283. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  284. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +34 -15
  285. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  286. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  287. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  288. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
  289. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  290. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  291. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  292. package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -69
  295. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  296. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -57
  297. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  298. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  299. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  300. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +81 -176
  301. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  302. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +41 -280
  303. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  304. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  305. package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -245
  306. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
  308. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
  310. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  312. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +70 -337
  314. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  315. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  316. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  317. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  318. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  319. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -32
  320. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  321. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
  322. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  323. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  324. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  326. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  328. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  330. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  332. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  334. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  336. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  338. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  339. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  340. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  342. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  343. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  344. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  346. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  348. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  350. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +23 -4
  352. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  353. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  354. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  356. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  358. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  360. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  362. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  364. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  366. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  368. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  370. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  372. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  374. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  375. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  376. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  377. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  378. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  379. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
  380. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  381. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  382. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  383. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  384. package/contracts/accounting/AccountingService.sol +22 -33
  385. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  386. package/contracts/accounting/IAccountingService.sol +7 -8
  387. package/contracts/authorization/AccessAdmin.sol +24 -47
  388. package/contracts/authorization/AccessAdminLib.sol +29 -15
  389. package/contracts/authorization/AccessManagerCloneable.sol +52 -24
  390. package/contracts/authorization/Authorization.sol +2 -2
  391. package/contracts/authorization/IAccessAdmin.sol +3 -3
  392. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  393. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  394. package/contracts/distribution/BasicDistribution.sol +2 -0
  395. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  396. package/contracts/distribution/Distribution.sol +2 -0
  397. package/contracts/distribution/DistributionService.sol +25 -27
  398. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  399. package/contracts/distribution/IDistributionComponent.sol +0 -2
  400. package/contracts/distribution/IDistributionService.sol +4 -3
  401. package/contracts/examples/fire/FirePool.sol +4 -0
  402. package/contracts/examples/fire/FireProduct.sol +4 -0
  403. package/contracts/examples/flight/FlightLib.sol +337 -0
  404. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  405. package/contracts/examples/flight/FlightNft.sol +234 -0
  406. package/contracts/examples/flight/FlightOracle.sol +129 -0
  407. package/contracts/examples/flight/FlightOracleAuthorization.sol +56 -0
  408. package/contracts/examples/flight/FlightPool.sol +89 -0
  409. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  410. package/contracts/examples/flight/FlightProduct.sol +687 -0
  411. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  412. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  413. package/contracts/examples/flight/FlightUSD.sol +28 -0
  414. package/contracts/examples/flight/originalV1.sol +396 -0
  415. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  416. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  417. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  418. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  419. package/contracts/instance/BaseStore.sol +4 -0
  420. package/contracts/instance/IBaseStore.sol +8 -0
  421. package/contracts/instance/IInstance.sol +4 -1
  422. package/contracts/instance/IInstanceService.sol +6 -0
  423. package/contracts/instance/Instance.sol +20 -8
  424. package/contracts/instance/InstanceAdmin.sol +18 -11
  425. package/contracts/instance/InstanceAuthorizationV3.sol +17 -5
  426. package/contracts/instance/InstanceReader.sol +74 -23
  427. package/contracts/instance/InstanceService.sol +84 -54
  428. package/contracts/instance/InstanceServiceManager.sol +6 -4
  429. package/contracts/instance/RequestSet.sol +63 -0
  430. package/contracts/instance/TargetNames.sol +1 -0
  431. package/contracts/instance/base/Cloneable.sol +10 -4
  432. package/contracts/instance/base/ObjectSet.sol +10 -2
  433. package/contracts/instance/base/ObjectSetHelperLib.sol +5 -1
  434. package/contracts/oracle/BasicOracle.sol +3 -0
  435. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  436. package/contracts/oracle/IOracleComponent.sol +10 -0
  437. package/contracts/oracle/IOracleService.sol +16 -12
  438. package/contracts/oracle/Oracle.sol +54 -29
  439. package/contracts/oracle/OracleService.sol +88 -55
  440. package/contracts/oracle/OracleServiceManager.sol +6 -4
  441. package/contracts/pool/BasicPool.sol +4 -2
  442. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  443. package/contracts/pool/BundleService.sol +20 -26
  444. package/contracts/pool/BundleServiceManager.sol +7 -5
  445. package/contracts/pool/IBundleService.sol +1 -1
  446. package/contracts/pool/IPoolService.sol +6 -5
  447. package/contracts/pool/Pool.sol +3 -1
  448. package/contracts/pool/PoolLib.sol +102 -5
  449. package/contracts/pool/PoolService.sol +101 -67
  450. package/contracts/pool/PoolServiceManager.sol +6 -4
  451. package/contracts/product/ApplicationService.sol +34 -13
  452. package/contracts/product/ApplicationServiceManager.sol +6 -4
  453. package/contracts/product/BasicProduct.sol +2 -0
  454. package/contracts/product/BasicProductAuthorization.sol +7 -7
  455. package/contracts/product/ClaimService.sol +34 -10
  456. package/contracts/product/ClaimServiceManager.sol +7 -5
  457. package/contracts/product/IPolicyService.sol +2 -1
  458. package/contracts/product/PolicyService.sol +58 -45
  459. package/contracts/product/PolicyServiceLib.sol +5 -3
  460. package/contracts/product/PolicyServiceManager.sol +6 -4
  461. package/contracts/product/PricingService.sol +8 -7
  462. package/contracts/product/PricingServiceManager.sol +6 -4
  463. package/contracts/product/Product.sol +2 -0
  464. package/contracts/product/RiskService.sol +40 -8
  465. package/contracts/product/RiskServiceManager.sol +6 -4
  466. package/contracts/registry/ChainNft.sol +1 -1
  467. package/contracts/registry/IRegistry.sol +14 -20
  468. package/contracts/registry/IRegistryService.sol +14 -10
  469. package/contracts/registry/IRelease.sol +3 -0
  470. package/contracts/registry/Registry.sol +82 -126
  471. package/contracts/registry/RegistryAdmin.sol +29 -12
  472. package/contracts/registry/RegistryAuthorization.sol +3 -6
  473. package/contracts/registry/RegistryService.sol +82 -99
  474. package/contracts/registry/RegistryServiceManager.sol +11 -4
  475. package/contracts/registry/ReleaseAdmin.sol +23 -9
  476. package/contracts/registry/ReleaseRegistry.sol +74 -64
  477. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  478. package/contracts/registry/TokenRegistry.sol +15 -6
  479. package/contracts/shared/Component.sol +22 -27
  480. package/contracts/shared/ComponentService.sol +166 -47
  481. package/contracts/shared/ComponentServiceManager.sol +7 -5
  482. package/contracts/shared/ContractLib.sol +93 -359
  483. package/contracts/shared/EcdsaChecker.sol +5 -0
  484. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  485. package/contracts/shared/IComponent.sol +3 -9
  486. package/contracts/shared/IComponentService.sol +36 -0
  487. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  488. package/contracts/shared/INftOwnable.sol +2 -0
  489. package/contracts/shared/IRegisterable.sol +3 -14
  490. package/contracts/shared/IRegistryLinked.sol +3 -1
  491. package/contracts/shared/IService.sol +2 -2
  492. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  493. package/contracts/shared/NftOwnable.sol +22 -9
  494. package/contracts/shared/PolicyHolder.sol +4 -2
  495. package/contracts/shared/Registerable.sol +20 -37
  496. package/contracts/shared/RegistryLinked.sol +23 -4
  497. package/contracts/shared/Service.sol +9 -8
  498. package/contracts/shared/TokenHandler.sol +1 -4
  499. package/contracts/staking/IStaking.sol +4 -2
  500. package/contracts/staking/IStakingService.sol +1 -10
  501. package/contracts/staking/Staking.sol +34 -28
  502. package/contracts/staking/StakingLib.sol +1 -3
  503. package/contracts/staking/StakingManager.sol +6 -3
  504. package/contracts/staking/StakingReader.sol +17 -9
  505. package/contracts/staking/StakingService.sol +14 -17
  506. package/contracts/staking/StakingServiceManager.sol +8 -4
  507. package/contracts/staking/StakingStore.sol +8 -8
  508. package/contracts/staking/TargetHandler.sol +5 -4
  509. package/contracts/type/ObjectType.sol +2 -31
  510. package/contracts/type/Referral.sol +6 -0
  511. package/contracts/type/RequestId.sol +6 -0
  512. package/contracts/type/RequestIdSet.sol +62 -0
  513. package/contracts/type/Seconds.sol +4 -0
  514. package/contracts/type/String.sol +30 -0
  515. package/contracts/type/Timestamp.sol +10 -1
  516. package/contracts/type/Version.sol +16 -15
  517. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  518. package/contracts/upgradeability/ProxyManager.sol +54 -46
  519. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  520. package/package.json +4 -3
  521. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  522. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  523. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  524. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  525. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  526. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  527. package/contracts/shared/IVersionable.sol +0 -19
  528. package/contracts/shared/Versionable.sol +0 -47
@@ -2,14 +2,13 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
5
+ import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
- import {IComponent} from "../shared/IComponent.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
9
  import {IOracleComponent} from "./IOracleComponent.sol";
10
10
  import {IOracleService} from "./IOracleService.sol";
11
11
  import {NftId} from "../type/NftId.sol";
12
- import {Component} from "../shared/Component.sol";
13
12
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
14
13
  import {RequestId} from "../type/RequestId.sol";
15
14
  import {Timestamp} from "../type/Timestamp.sol";
@@ -64,10 +63,10 @@ abstract contract Oracle is
64
63
  }
65
64
 
66
65
  /// @dev Not relevant for oracle components
67
- function withdrawFees(Amount amount)
66
+ function withdrawFees(Amount)
68
67
  external
69
68
  virtual
70
- override(IComponent, Component)
69
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
71
70
  onlyOwner()
72
71
  restricted()
73
72
  returns (Amount)
@@ -75,8 +74,34 @@ abstract contract Oracle is
75
74
  revert ErrorOracleNotImplemented("withdrawFees");
76
75
  }
77
76
 
77
+ function activeRequests()
78
+ external
79
+ view
80
+ returns(uint256 numberOfRequests)
81
+ {
82
+ return _getInstanceReader().getActiveRequests(getNftId());
83
+ }
78
84
 
85
+
86
+ function getActiveRequest(uint256 idx)
87
+ external
88
+ view
89
+ returns(RequestId requestId)
90
+ {
91
+ return _getInstanceReader().getActiveRequestAt(getNftId(), idx);
92
+ }
93
+
94
+ function isActiveRequest(RequestId requestId)
95
+ external
96
+ view
97
+ returns(bool isActive)
98
+ {
99
+ return _getInstanceReader().isRequestActive(getNftId(), requestId);
100
+ }
101
+
102
+ // solhint-disable-next-line func-name-mixedcase
79
103
  function __Oracle_init(
104
+ address registry,
80
105
  NftId productNftId,
81
106
  IAuthorization authorization,
82
107
  address initialOwner,
@@ -87,6 +112,7 @@ abstract contract Oracle is
87
112
  onlyInitializing()
88
113
  {
89
114
  __InstanceLinkedComponent_init(
115
+ registry,
90
116
  productNftId,
91
117
  name,
92
118
  ORACLE(),
@@ -101,49 +127,48 @@ abstract contract Oracle is
101
127
  _registerInterface(type(IOracleComponent).interfaceId);
102
128
  }
103
129
 
104
-
105
- /// @dev Internal function for handling requests.
106
- /// Empty implementation.
107
- /// Overwrite this function to implement use case specific handling for oracle calls.
108
- function _request(
130
+ /// @dev Internal function for handling oracle responses.
131
+ /// Default implementation sends response back to oracle service.
132
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
133
+ function _respond(
109
134
  RequestId requestId,
110
- NftId requesterId,
111
- bytes calldata requestData,
112
- Timestamp expiryAt
135
+ bytes memory responseData
113
136
  )
114
137
  internal
115
138
  virtual
116
139
  {
140
+ _getOracleStorage()._oracleService.respond(requestId, responseData);
117
141
  }
118
142
 
119
-
120
- /// @dev Internal function for cancelling requests.
121
- /// Empty implementation.
122
- /// Overwrite this function to implement use case specific cancelling.
123
- function _cancel(
124
- RequestId requestId
143
+ /// @dev use case specific handling of oracle requests
144
+ /// for now only log is emitted to verify that request has been received by oracle component
145
+ function _request(
146
+ RequestId requestId,
147
+ NftId requesterId,
148
+ bytes calldata,
149
+ Timestamp
125
150
  )
126
151
  internal
127
- virtual
152
+ virtual
128
153
  {
154
+ emit LogOracleRequestReceived(requestId, requesterId);
129
155
  }
130
156
 
131
157
 
132
- /// @dev Internal function for handling oracle responses.
133
- /// Default implementation sends response back to oracle service.
134
- /// Use this function in use case specific external/public functions to handle use case specific response handling.
135
- function _respond(
136
- RequestId requestId,
137
- bytes memory responseData
158
+ /// @dev use case specific handling of oracle requests
159
+ /// for now only log is emitted to verify that cancelling has been received by oracle component
160
+ function _cancel(
161
+ RequestId requestId
138
162
  )
139
163
  internal
140
- virtual
164
+ virtual
141
165
  {
142
- _getOracleStorage()._oracleService.respond(
143
- requestId, responseData);
166
+ emit LogOracleRequestCancelled(requestId);
144
167
  }
145
168
 
169
+
146
170
  function _getOracleStorage() private pure returns (OracleStorage storage $) {
171
+ // solhint-disable-next-line no-inline-assembly
147
172
  assembly {
148
173
  $.slot := ORACLE_STORAGE_LOCATION_V1
149
174
  }
@@ -2,16 +2,14 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {ContractLib} from "../shared/ContractLib.sol";
5
- import {IComponent} from "../shared/IComponent.sol";
6
5
  import {IInstance} from "../instance/IInstance.sol";
7
- import {IInstanceService} from "../instance/IInstanceService.sol";
8
6
  import {InstanceReader} from "../instance/InstanceReader.sol";
9
7
  import {IOracle} from "./IOracle.sol";
10
8
  import {IOracleComponent} from "./IOracleComponent.sol";
11
9
  import {IOracleService} from "./IOracleService.sol";
12
10
  import {IRegistry} from "../registry/IRegistry.sol";
13
11
  import {NftId} from "../type/NftId.sol";
14
- import {ObjectType, COMPONENT, ORACLE, PRODUCT} from "../type/ObjectType.sol";
12
+ import {ObjectType, ORACLE, PRODUCT} from "../type/ObjectType.sol";
15
13
  import {RequestId} from "../type/RequestId.sol";
16
14
  import {Service} from "../shared/Service.sol";
17
15
  import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
@@ -29,13 +27,14 @@ contract OracleService is
29
27
  )
30
28
  internal
31
29
  virtual override
32
- onlyInitializing()
30
+ initializer()
33
31
  {
34
32
  (
35
- address authority
36
- ) = abi.decode(data, (address));
33
+ address authority,
34
+ address registry
35
+ ) = abi.decode(data, (address, address));
37
36
 
38
- __Service_init(authority, owner);
37
+ __Service_init(authority, registry, owner);
39
38
  _registerInterface(type(IOracleService).interfaceId);
40
39
  }
41
40
 
@@ -48,26 +47,27 @@ contract OracleService is
48
47
  external
49
48
  virtual
50
49
  restricted()
50
+ onlyNftOfType(oracleNftId, ORACLE())
51
51
  returns (RequestId requestId)
52
52
  {
53
53
  // checks
54
- NftId requesterNftId; // component
55
- IOracleComponent oracle;
54
+ // get and check active caller
55
+ (
56
+ IRegistry.ObjectInfo memory requesterInfo,
57
+ address instanceAddress
58
+ ) = ContractLib.getAndVerifyAnyComponent(
59
+ getRegistry(), msg.sender, true);
60
+
61
+ (
62
+ NftId requesterNftId,
63
+ IOracleComponent oracle
64
+ ) = _checkRequestParams(
65
+ getRegistry(), oracleNftId, requesterInfo, expiryAt, callbackMethodName);
56
66
 
67
+ // effects
57
68
  {
58
- IInstance instance;
59
- (
60
- requesterNftId,
61
- oracle,
62
- instance
63
- ) = ContractLib.getAndVerifyComponentAndOracle(
64
- oracleNftId, getRelease());
65
-
66
- _checkRequestParams(expiryAt, callbackMethodName);
67
-
68
- // effects
69
69
  // create request info
70
- IOracle.RequestInfo memory request = IOracle.RequestInfo({
70
+ IOracle.RequestInfo memory requestInfo = IOracle.RequestInfo({
71
71
  requesterNftId: requesterNftId,
72
72
  callbackMethodName: callbackMethodName,
73
73
  oracleNftId: oracleNftId,
@@ -78,8 +78,9 @@ contract OracleService is
78
78
  isCancelled: false
79
79
  });
80
80
 
81
- // store request with instance
82
- requestId = instance.getInstanceStore().createRequest(request);
81
+ // store request with instance
82
+ requestId = IInstance(instanceAddress).getInstanceStore().createRequest(requestInfo);
83
+ IInstance(instanceAddress).getRequestSet().add(oracleNftId, requestId);
83
84
  }
84
85
 
85
86
  emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
@@ -106,28 +107,31 @@ contract OracleService is
106
107
  returns (bool success)
107
108
  {
108
109
  (
109
- NftId oracleNftId,
110
- IInstance instance
110
+ IRegistry.ObjectInfo memory info,
111
+ address instanceAddress
111
112
  ) = ContractLib.getAndVerifyComponent(
112
- msg.sender, ORACLE(), getRelease(), true);
113
+ getRegistry(), msg.sender, ORACLE(), true);
113
114
 
115
+ NftId oracleNftId = info.nftId;
116
+ IInstance instance = IInstance(instanceAddress);
114
117
  bool callerIsOracle = true;
115
- IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
116
- request.responseData = responseData;
117
- request.respondedAt = TimestampLib.current();
118
+ IOracle.RequestInfo memory requestInfo = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
119
+ requestInfo.responseData = responseData;
120
+ requestInfo.respondedAt = TimestampLib.current();
118
121
 
119
122
  instance.getInstanceStore().updateRequest(
120
- requestId, request, KEEP_STATE());
123
+ requestId, requestInfo, KEEP_STATE());
121
124
 
122
- IRegistry.ObjectInfo memory requesterInfo = _getRegistry().getObjectInfo(
123
- request.requesterNftId);
125
+ IRegistry.ObjectInfo memory requesterInfo = getRegistry().getObjectInfo(
126
+ requestInfo.requesterNftId);
124
127
 
125
128
  string memory functionSignature = string(
126
129
  abi.encodePacked(
127
- request.callbackMethodName,
130
+ requestInfo.callbackMethodName,
128
131
  "(uint64,bytes)"
129
132
  ));
130
133
 
134
+ // solhint-disable-next-line avoid-low-level-calls
131
135
  (success, ) = requesterInfo.objectAddress.call(
132
136
  abi.encodeWithSignature(
133
137
  functionSignature,
@@ -137,6 +141,7 @@ contract OracleService is
137
141
  // check that calling requestor was successful
138
142
  if (success) {
139
143
  instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
144
+ instance.getRequestSet().remove(oracleNftId, requestId);
140
145
  } else {
141
146
  instance.getInstanceStore().updateRequestState(requestId, FAILED());
142
147
  emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
@@ -152,37 +157,37 @@ contract OracleService is
152
157
  restricted()
153
158
  {
154
159
  (
155
- // !!! TODO requesterNftId is in request.requesterNftId
156
- // here is responder nft id?
157
- NftId requesterNftId, // component
158
- IInstance instance
159
- ) = ContractLib.getAndVerifyComponent(
160
- msg.sender, COMPONENT(), getRelease(), true);
160
+ IRegistry.ObjectInfo memory info,
161
+ address instanceAddress
162
+ ) = ContractLib.getAndVerifyAnyComponent(
163
+ getRegistry(), msg.sender, true);
161
164
 
165
+ NftId requesterNftId = info.nftId;
166
+ IInstance instance = IInstance(instanceAddress);
162
167
  bool callerIsOracle = false;
163
- IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
168
+ IOracle.RequestInfo memory requestInfo = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
164
169
 
165
170
  // attempt to deliver response to requester
166
- address requester = msg.sender;
167
171
  string memory functionSignature = string(
168
172
  abi.encodePacked(
169
- request.callbackMethodName,
173
+ requestInfo.callbackMethodName,
170
174
  "(uint64,bytes)"
171
175
  ));
172
176
 
173
- (bool success, bytes memory returnData) = requester.call(
177
+ // solhint-disable-next-line avoid-low-level-calls
178
+ (bool success, ) = info.objectAddress.call(
174
179
  abi.encodeWithSignature(
175
180
  functionSignature,
176
181
  requestId,
177
- request.responseData));
182
+ requestInfo.responseData));
178
183
 
179
184
  // check that calling requestor was successful
180
185
  if (success) {
181
186
  instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
187
+ instance.getRequestSet().remove(requestInfo.oracleNftId, requestId);
182
188
  emit LogOracleServiceResponseResent(requestId, requesterNftId);
183
189
  } else {
184
- // TODO why requester address instead of nftId?
185
- emit LogOracleServiceDeliveryFailed(requestId, requester, functionSignature);
190
+ emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
186
191
  }
187
192
  }
188
193
 
@@ -193,35 +198,63 @@ contract OracleService is
193
198
  restricted()
194
199
  {
195
200
  (
196
- NftId requesterNftId, // component
197
- IInstance instance
198
- ) = ContractLib.getAndVerifyComponent(
199
- msg.sender, COMPONENT(), getRelease(), true);
201
+ IRegistry.ObjectInfo memory info,
202
+ address instanceAddress
203
+ ) = ContractLib.getAndVerifyAnyComponent(
204
+ getRegistry(), msg.sender, true);
200
205
 
206
+ NftId requesterNftId = info.nftId;
207
+ IInstance instance = IInstance(instanceAddress);
201
208
  bool callerIsOracle = false;
202
209
  // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
203
- IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
204
- request.isCancelled = true;
210
+ IOracle.RequestInfo memory requestInfo = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
211
+ requestInfo.isCancelled = true;
205
212
 
206
- instance.getInstanceStore().updateRequest(requestId, request, CANCELLED());
213
+ instance.getInstanceStore().updateRequest(requestId, requestInfo, CANCELLED());
214
+ instance.getRequestSet().remove(requestInfo.oracleNftId, requestId);
207
215
 
208
216
  // call oracle component
209
217
  // TODO add check that oracle is active?
210
- address oracleAddress = _getRegistry().getObjectAddress(request.oracleNftId);
218
+ address oracleAddress = getRegistry().getObjectAddress(requestInfo.oracleNftId);
211
219
  IOracleComponent(oracleAddress).cancel(requestId);
212
220
 
213
221
  emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
214
222
  }
215
223
 
216
-
217
224
  function _checkRequestParams(
225
+ IRegistry registry,
226
+ NftId oracleNftId,
227
+ IRegistry.ObjectInfo memory requesterInfo,
218
228
  Timestamp expiryAt,
219
229
  string memory callbackMethodName
220
230
  )
221
231
  internal
222
232
  virtual
223
233
  view
234
+ returns (
235
+ NftId requesterNftId,
236
+ IOracleComponent oracle
237
+ )
224
238
  {
239
+ // get oracle info
240
+ (IRegistry.ObjectInfo memory oracleInfo,) = ContractLib.getInfoAndInstance(
241
+ registry, oracleNftId, true);
242
+
243
+ // obtain return values
244
+ requesterNftId = requesterInfo.nftId;
245
+ oracle = IOracleComponent(oracleInfo.objectAddress);
246
+
247
+ // check that requester and oracle share same product cluster
248
+ if (requesterInfo.objectType == PRODUCT()) {
249
+ if (oracleInfo.parentNftId != requesterNftId) {
250
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterNftId, oracleInfo.parentNftId);
251
+ }
252
+ } else {
253
+ if (oracleInfo.parentNftId != requesterInfo.parentNftId) {
254
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterInfo.parentNftId, oracleInfo.parentNftId);
255
+ }
256
+ }
257
+
225
258
  // check expiriyAt >= now
226
259
  if (expiryAt < TimestampLib.current()) {
227
260
  revert ErrorOracleServiceExpiryInThePast(TimestampLib.current(), expiryAt);
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {OracleService} from "./OracleService.sol";
7
7
 
@@ -12,17 +12,19 @@ contract OracleServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with service implementation and deploys instance
13
13
  constructor(
14
14
  address authority,
15
+ address registry,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  OracleService svc = new OracleService{salt: salt}();
19
- bytes memory data = abi.encode(authority);
20
- IUpgradeable upgradeable = initialize(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(svc),
22
24
  data,
23
25
  salt);
24
26
 
25
- _oracleService = OracleService(address(upgradeable));
27
+ _oracleService = OracleService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//
@@ -18,6 +18,7 @@ abstract contract BasicPool is
18
18
  {
19
19
 
20
20
  function _initializeBasicPool(
21
+ address registry,
21
22
  NftId productNftId,
22
23
  string memory name,
23
24
  IComponents.PoolInfo memory poolInfo,
@@ -29,6 +30,7 @@ abstract contract BasicPool is
29
30
  onlyInitializing()
30
31
  {
31
32
  __Pool_init(
33
+ registry,
32
34
  productNftId,
33
35
  name,
34
36
  poolInfo,
@@ -43,8 +45,8 @@ abstract contract BasicPool is
43
45
  public
44
46
  virtual
45
47
  restricted()
46
- onlyBundleOwner(bundleNftId) // TODO single modifier to check everything about given arbitrary nftId
47
- onlyNftOfType(bundleNftId, BUNDLE()) // TODO service will check this
48
+ onlyBundleOwner(bundleNftId)
49
+ onlyNftOfType(bundleNftId, BUNDLE())
48
50
  {
49
51
  _stake(bundleNftId, amount);
50
52
  }
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccess} from "../authorization/IAccess.sol";
5
- import {IComponent} from "../shared/IInstanceLinkedComponent.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
6
  import {IPoolComponent} from "./IPoolComponent.sol";
7
7
 
8
8
  import {Authorization} from "../authorization/Authorization.sol";
@@ -10,9 +10,8 @@ import {BasicPool} from "./BasicPool.sol";
10
10
  import {COMPONENT, POOL} from "../type/ObjectType.sol";
11
11
  import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
12
12
  import {RoleId} from "../type/RoleId.sol";
13
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
14
13
  import {TokenHandler} from "../shared/TokenHandler.sol";
15
- import {VersionPartLib} from "../type/Version.sol";
14
+
16
15
 
17
16
  contract BasicPoolAuthorization
18
17
  is Authorization
@@ -22,7 +21,7 @@ contract BasicPoolAuthorization
22
21
  Authorization(
23
22
  poolName,
24
23
  POOL(),
25
- GIF_INITIAL_RELEASE(),
24
+ 3,
26
25
  COMMIT_HASH,
27
26
  TargetType.Component,
28
27
  true)
@@ -71,7 +70,7 @@ contract BasicPoolAuthorization
71
70
  _authorize(functions, BasicPool.unstake.selector, "unstake");
72
71
  _authorize(functions, BasicPool.extend.selector, "extend");
73
72
 
74
- _authorize(functions, IComponent.withdrawFees.selector, "withdrawFees");
73
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
75
74
  _authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
76
75
 
77
76
  // authorize pool service
@@ -12,11 +12,11 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
12
12
 
13
13
  import {Amount, AmountLib} from "../type/Amount.sol";
14
14
  import {BundleSet} from "../instance/BundleSet.sol";
15
- import {ContractLib} from "../shared/ContractLib.sol";
16
15
  import {Fee} from "../type/Fee.sol";
17
16
  import {InstanceReader} from "../instance/InstanceReader.sol";
18
17
  import {NftId, NftIdLib} from "../type/NftId.sol";
19
18
  import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
19
+ import {PoolLib} from "./PoolLib.sol";
20
20
  import {Seconds} from "../type/Seconds.sol";
21
21
  import {Service} from "../shared/Service.sol";
22
22
  import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
@@ -41,13 +41,14 @@ contract BundleService is
41
41
  )
42
42
  internal
43
43
  virtual override
44
- onlyInitializing()
44
+ initializer()
45
45
  {
46
46
  (
47
- address authority
48
- ) = abi.decode(data, (address));
47
+ address authority,
48
+ address registry
49
+ ) = abi.decode(data, (address, address));
49
50
 
50
- __Service_init(authority, owner);
51
+ __Service_init(authority, registry, owner);
51
52
 
52
53
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
53
54
  _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
@@ -65,12 +66,9 @@ contract BundleService is
65
66
  virtual
66
67
  restricted()
67
68
  {
68
- (
69
- NftId poolNftId,
70
- IInstance instance
71
- ) = ContractLib.getAndVerifyPoolForBundle(
72
- bundleNftId, getRelease());
69
+ _checkNftType(bundleNftId, BUNDLE());
73
70
 
71
+ (NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
74
72
  InstanceReader instanceReader = instance.getInstanceReader();
75
73
  IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
76
74
  if(bundleInfo.poolNftId.eqz()) {
@@ -99,10 +97,7 @@ contract BundleService is
99
97
  restricted()
100
98
  returns(NftId bundleNftId)
101
99
  {
102
- (
103
- NftId poolNftId,
104
- IInstance instance
105
- ) = ContractLib.getAndVerifyPool(getRelease());
100
+ (NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
106
101
 
107
102
  // register bundle with registry
108
103
  bundleNftId = _registryService.registerBundle(
@@ -110,11 +105,11 @@ contract BundleService is
110
105
  NftIdLib.zero(),
111
106
  poolNftId,
112
107
  BUNDLE(),
113
- getRelease(),
114
108
  false, // intercepting property for bundles is defined on pool
115
- address(0)),
116
- owner,
117
- "" // bundle data to be stored in registry
109
+ address(0),
110
+ owner,
111
+ "" // bundle data to be stored in registry
112
+ )
118
113
  );
119
114
 
120
115
  // create bundle info in instance
@@ -135,7 +130,7 @@ contract BundleService is
135
130
  BundleSet bundleManager = instance.getBundleSet();
136
131
  bundleManager.add(bundleNftId);
137
132
 
138
- emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime);
133
+ emit LogBundleServiceBundleCreated(bundleNftId, poolNftId, lifetime, bundleFee.fixedFee, bundleFee.fractionalFee);
139
134
  }
140
135
 
141
136
 
@@ -196,8 +191,9 @@ contract BundleService is
196
191
  restricted()
197
192
  {
198
193
  // checks
199
- (, IInstance instance) = ContractLib.getAndVerifyPoolForBundle(
200
- bundleNftId, getRelease());
194
+ _checkNftType(bundleNftId, BUNDLE());
195
+
196
+ (, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
201
197
 
202
198
  // effects
203
199
  // update set of active bundles
@@ -335,12 +331,9 @@ contract BundleService is
335
331
  returns (Timestamp extendedExpiredAt)
336
332
  {
337
333
  // checks
338
- (
339
- NftId poolNftId,
340
- IInstance instance
341
- ) = ContractLib.getAndVerifyPoolForBundle(
342
- bundleNftId, getRelease());
334
+ _checkNftType(bundleNftId, BUNDLE());
343
335
 
336
+ (NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
344
337
  IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
345
338
  StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
346
339
 
@@ -386,6 +379,7 @@ contract BundleService is
386
379
  emit LogBundleServiceCollateralReleased(bundleNftId, policyNftId, collateralAmount);
387
380
  }
388
381
 
382
+
389
383
  function _getDomain() internal pure override returns(ObjectType) {
390
384
  return BUNDLE();
391
385
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {BundleService} from "./BundleService.sol";
7
7
 
@@ -11,18 +11,20 @@ contract BundleServiceManager is ProxyManager {
11
11
 
12
12
  /// @dev initializes proxy manager with pool service implementation
13
13
  constructor(
14
- address authority,
14
+ address authority,
15
+ address registry,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  BundleService svc = new BundleService{salt: salt}();
19
- bytes memory data = abi.encode(authority);
20
- IUpgradeable upgradeable = initialize(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(svc),
22
24
  data,
23
25
  salt);
24
26
 
25
- _bundleService = BundleService(address(upgradeable));
27
+ _bundleService = BundleService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//
@@ -30,7 +30,7 @@ interface IBundleService is IService {
30
30
 
31
31
  error ErrorBundleServiceExtensionLifetimeIsZero();
32
32
 
33
- event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime);
33
+ event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId, Seconds lifetime, Amount fixedFee, UFixed fractionalFee);
34
34
  event LogBundleServiceBundleClosed(NftId bundleNftId);
35
35
  event LogBundleServiceBundleLocked(NftId bundleNftId);
36
36
  event LogBundleServiceBundleUnlocked(NftId bundleNftId);