@etherisc/gif-next 3.0.0-beta.1 → 3.0.0-c2748c1-102

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 (405) hide show
  1. package/README.md +16 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +32 -36
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +44 -56
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +42 -29
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
  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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +2 -2
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +157 -72
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +63 -63
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +85 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +12 -12
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +47 -52
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +20 -20
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  46. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  47. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  48. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  49. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  50. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  51. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  64. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +17 -17
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  75. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +14 -14
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  77. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +18 -18
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  79. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +20 -20
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +20 -20
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  87. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1 -1
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +61 -0
  94. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  95. package/artifacts/contracts/instance/Instance.sol/Instance.json +5 -5
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  97. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +119 -131
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  99. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +236 -75
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +102 -25
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +29 -29
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  107. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  109. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  111. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  113. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  114. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  123. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  124. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  128. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  129. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  130. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +2 -2
  132. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  134. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  140. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +38 -38
  142. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  143. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  144. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
  145. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +32 -20
  147. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -50
  149. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  150. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +12 -0
  151. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  152. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  153. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +12 -0
  154. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  156. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  158. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -24
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -51
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  162. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -32
  165. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  166. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  167. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +20 -20
  168. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  169. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  170. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -55
  172. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  173. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  174. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  175. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +12 -0
  176. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  177. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  178. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  179. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  180. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +56 -44
  181. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  182. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  183. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +48 -48
  185. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  186. package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
  187. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  188. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +39 -39
  189. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  190. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  191. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  192. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  193. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +30 -30
  194. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  196. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +6 -0
  198. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/Registry.sol/Registry.json +47 -37
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +113 -125
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -25
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +123 -135
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +106 -96
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  221. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +328 -56
  224. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -49
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +272 -0
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  243. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  245. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  246. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  249. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  251. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  253. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  254. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  255. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  256. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +23 -50
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +9 -36
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
  263. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +25 -0
  265. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +12 -0
  267. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  268. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  269. package/artifacts/contracts/staking/Staking.sol/Staking.json +73 -48
  270. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +41 -41
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -14
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +28 -28
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  282. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  283. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -7
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
  286. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  287. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  290. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  292. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  316. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  322. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  324. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  328. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  330. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  332. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  334. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  336. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  338. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  340. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  343. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  345. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  346. package/contracts/accounting/AccountingService.sol +17 -29
  347. package/contracts/accounting/IAccountingService.sol +7 -8
  348. package/contracts/authorization/AccessAdmin.sol +6 -25
  349. package/contracts/authorization/AccessAdminLib.sol +20 -3
  350. package/contracts/authorization/AccessManagerCloneable.sol +4 -0
  351. package/contracts/distribution/DistributionService.sol +5 -3
  352. package/contracts/distribution/IDistributionService.sol +4 -3
  353. package/contracts/examples/flight/FlightLib.sol +337 -0
  354. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  355. package/contracts/examples/flight/FlightNft.sol +234 -0
  356. package/contracts/examples/flight/FlightOracle.sol +226 -0
  357. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  358. package/contracts/examples/flight/FlightPool.sol +89 -0
  359. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  360. package/contracts/examples/flight/FlightProduct.sol +687 -0
  361. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  362. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  363. package/contracts/examples/flight/FlightUSD.sol +28 -0
  364. package/contracts/examples/flight/originalV1.sol +396 -0
  365. package/contracts/instance/BaseStore.sol +4 -0
  366. package/contracts/instance/IBaseStore.sol +8 -0
  367. package/contracts/instance/IInstance.sol +1 -1
  368. package/contracts/instance/IInstanceService.sol +2 -0
  369. package/contracts/instance/Instance.sol +1 -1
  370. package/contracts/instance/InstanceAdmin.sol +0 -1
  371. package/contracts/instance/InstanceReader.sol +44 -8
  372. package/contracts/instance/InstanceService.sol +4 -0
  373. package/contracts/oracle/BasicOracle.sol +1 -0
  374. package/contracts/oracle/IOracleService.sol +12 -12
  375. package/contracts/oracle/Oracle.sol +2 -2
  376. package/contracts/pool/BundleService.sol +1 -1
  377. package/contracts/pool/IBundleService.sol +1 -1
  378. package/contracts/pool/IPoolService.sol +1 -1
  379. package/contracts/pool/PoolService.sol +1 -1
  380. package/contracts/product/BasicProductAuthorization.sol +3 -2
  381. package/contracts/product/IPolicyService.sol +1 -1
  382. package/contracts/product/PolicyService.sol +1 -1
  383. package/contracts/product/PolicyServiceLib.sol +5 -3
  384. package/contracts/registry/ChainNft.sol +1 -1
  385. package/contracts/registry/IRegistry.sol +1 -1
  386. package/contracts/registry/Registry.sol +5 -3
  387. package/contracts/registry/RegistryAdmin.sol +7 -1
  388. package/contracts/registry/ReleaseAdmin.sol +8 -1
  389. package/contracts/shared/ComponentService.sol +36 -2
  390. package/contracts/shared/EcdsaChecker.sol +5 -0
  391. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  392. package/contracts/shared/IComponentService.sol +24 -0
  393. package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
  394. package/contracts/shared/InstanceLinkedComponent.sol +60 -19
  395. package/contracts/staking/IStaking.sol +2 -0
  396. package/contracts/staking/IStakingService.sol +1 -1
  397. package/contracts/staking/Staking.sol +1 -0
  398. package/contracts/staking/StakingService.sol +1 -1
  399. package/contracts/type/ObjectType.sol +2 -31
  400. package/contracts/type/Referral.sol +6 -0
  401. package/contracts/type/RequestIdSet.sol +62 -0
  402. package/contracts/type/Seconds.sol +4 -0
  403. package/contracts/type/String.sol +30 -0
  404. package/contracts/type/Timestamp.sol +10 -1
  405. package/package.json +4 -3
@@ -1,27 +1,25 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
- import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
-
9
- import {Amount} from "../type/Amount.sol";
10
- import {Component} from "./Component.sol";
11
- import {IComponentService} from "./IComponentService.sol";
12
- import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
13
4
  import {IAuthorization} from "../authorization/IAuthorization.sol";
5
+ import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
14
6
  import {IComponents} from "../instance/module/IComponents.sol";
15
- import {IInstanceService} from "../instance/IInstanceService.sol";
7
+ import {IComponentService} from "./IComponentService.sol";
16
8
  import {IInstance} from "../instance/IInstance.sol";
9
+ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
10
+ import {IInstanceService} from "../instance/IInstanceService.sol";
11
+ import {IOracleService} from "../oracle/IOracleService.sol";
12
+
13
+ import {Amount} from "../type/Amount.sol";
14
+ import {Component} from "./Component.sol";
17
15
  import {InstanceReader} from "../instance/InstanceReader.sol";
18
16
  import {IRegistry} from "../registry/IRegistry.sol";
19
17
  import {NftId} from "../type/NftId.sol";
20
- import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
21
- import {VersionPart} from "../type/Version.sol";
18
+ import {ObjectType, COMPONENT, INSTANCE, ORACLE, PRODUCT} from "../type/ObjectType.sol";
19
+ import {RequestId} from "../type/RequestId.sol";
22
20
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
23
- import {IAccess} from "../authorization/IAccess.sol";
24
21
  import {TokenHandler} from "../shared/TokenHandler.sol";
22
+ import {Timestamp} from "../type/Timestamp.sol";
25
23
  import {VersionPart} from "../type/Version.sol";
26
24
 
27
25
  // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
@@ -38,8 +36,23 @@ abstract contract InstanceLinkedComponent is
38
36
  InstanceReader _instanceReader; // instance reader for this component
39
37
  IAuthorization _initialAuthorization;
40
38
  IComponentService _componentService;
39
+ IOracleService _oracleService;
40
+ }
41
+
42
+ //--- view functions ----------------------------------------------------//
43
+
44
+ /// @inheritdoc IInstanceLinkedComponent
45
+ function getInstance() public view virtual override returns (IInstance instance) {
46
+ return _getInstanceLinkedComponentStorage()._instance;
47
+ }
48
+
49
+
50
+ /// @inheritdoc IAuthorizedComponent
51
+ function getAuthorization() external view virtual returns (IAuthorization authorization) {
52
+ return _getInstanceLinkedComponentStorage()._initialAuthorization;
41
53
  }
42
54
 
55
+
43
56
  /// @inheritdoc IInstanceLinkedComponent
44
57
  function withdrawFees(Amount amount)
45
58
  external
@@ -51,22 +64,49 @@ abstract contract InstanceLinkedComponent is
51
64
  return _withdrawFees(amount);
52
65
  }
53
66
 
54
- /// @inheritdoc IInstanceLinkedComponent
55
- function getInstance() public view virtual override returns (IInstance instance) {
56
- return _getInstanceLinkedComponentStorage()._instance;
67
+ //--- internal functions ------------------------------------------------//
68
+
69
+ function _sendRequest(
70
+ NftId oracleNftId,
71
+ bytes memory requestData,
72
+ Timestamp expiryAt,
73
+ string memory callbackMethod
74
+ )
75
+ internal
76
+ virtual
77
+ returns (RequestId requestId)
78
+ {
79
+ return _getInstanceLinkedComponentStorage()._oracleService.request(
80
+ oracleNftId,
81
+ requestData,
82
+ expiryAt,
83
+ callbackMethod);
57
84
  }
58
85
 
59
- /// @inheritdoc IInstanceLinkedComponent
60
- function getAuthorization() external view virtual returns (IAuthorization authorization) {
61
- return _getInstanceLinkedComponentStorage()._initialAuthorization;
86
+
87
+ function _cancelRequest(RequestId requestId)
88
+ internal
89
+ virtual
90
+ {
91
+ _getInstanceLinkedComponentStorage()._oracleService.cancel(requestId);
92
+ }
93
+
94
+
95
+ function _resendRequest(RequestId requestId)
96
+ internal
97
+ virtual
98
+ {
99
+ _getInstanceLinkedComponentStorage()._oracleService.resend(requestId);
62
100
  }
63
101
 
102
+
64
103
  function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
65
104
  assembly {
66
105
  $.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
67
106
  }
68
107
  }
69
108
 
109
+
70
110
  function __InstanceLinkedComponent_init(
71
111
  address registry,
72
112
  NftId parentNftId,
@@ -106,6 +146,7 @@ abstract contract InstanceLinkedComponent is
106
146
  $._instanceReader = $._instance.getInstanceReader();
107
147
  $._initialAuthorization = authorization;
108
148
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
149
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
109
150
 
110
151
  // register interfaces
111
152
  _registerInterface(type(IInstanceLinkedComponent).interfaceId);
@@ -25,6 +25,8 @@ interface IStaking is
25
25
  IVersionable
26
26
  {
27
27
 
28
+ event LogStakingTokenHandlerDeployed(NftId componentNftId, address tokenHandler, address token);
29
+
28
30
  // owner functions
29
31
  event LogStakingStakingRateSet(ChainId chainId, address token, UFixed newStakingRate, UFixed oldStakingRate, Blocknumber lastUpdateIn);
30
32
  event LogStakingStakingServiceSet(address stakingService, VersionPart release, address oldStakingService);
@@ -17,7 +17,7 @@ interface IStakingService is IService
17
17
  {
18
18
 
19
19
  event LogStakingServiceProtocolTargetRegistered(NftId protocolNftId);
20
- event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId);
20
+ event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId, Seconds initialLockingPeriod, UFixed initialRewardRate);
21
21
  event LogStakingServiceLockingPeriodSet(NftId targetNftId, Seconds oldLockingDuration, Seconds lockingDuration);
22
22
  event LogStakingServiceRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
23
23
 
@@ -86,6 +86,7 @@ contract Staking is
86
86
  address(this),
87
87
  dipToken,
88
88
  getRegistry().getAuthority());
89
+ emit LogStakingTokenHandlerDeployed(getNftId(), address($._tokenHandler), dipToken);
89
90
  }
90
91
 
91
92
 
@@ -59,7 +59,7 @@ contract StakingService is
59
59
  initialLockingPeriod,
60
60
  initialRewardRate);
61
61
 
62
- emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
62
+ emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId, initialLockingPeriod, initialRewardRate);
63
63
  }
64
64
 
65
65
 
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {StrLib} from "./String.sol";
4
5
  import {VersionPart} from "./Version.sol";
5
6
 
6
7
  type ObjectType is uint8;
@@ -247,7 +248,7 @@ library ObjectTypeLib {
247
248
  return string(
248
249
  abi.encodePacked(
249
250
  "ObjectType",
250
- toString(
251
+ StrLib.uintToString(
251
252
  toInt(objectType))));
252
253
  }
253
254
 
@@ -274,34 +275,4 @@ library ObjectTypeLib {
274
275
  versionName,
275
276
  release.toString()));
276
277
  }
277
-
278
- /// @dev returns the provied int as a string
279
- function toString(uint256 value) public pure returns (string memory name) {
280
-
281
- if (value == 0) {
282
- return "0";
283
- }
284
-
285
- uint256 temp = value;
286
- uint256 digits = 0;
287
- while (temp != 0) {
288
- digits++;
289
- temp /= 10;
290
- }
291
-
292
- bytes memory buffer = new bytes(digits);
293
- uint256 index = digits - 1;
294
-
295
- temp = value;
296
- while (temp != 0) {
297
- buffer[index] = bytes1(uint8(48 + temp % 10));
298
- temp /= 10;
299
-
300
- if (index > 0) {
301
- index--;
302
- }
303
- }
304
-
305
- return string(buffer);
306
- }
307
278
  }
@@ -13,6 +13,7 @@ using {
13
13
  eqReferralId as ==,
14
14
  neReferralId as !=,
15
15
  ReferralLib.eqz,
16
+ ReferralLib.toInt,
16
17
  ReferralLib.toKey32
17
18
  } for ReferralId global;
18
19
 
@@ -74,6 +75,11 @@ library ReferralLib {
74
75
  return ReferralStatus.wrap(status);
75
76
  }
76
77
 
78
+ /// @dev Converts a referral id into a uint256.
79
+ function toInt(ReferralId referralId) public pure returns (uint256) {
80
+ return uint64(ReferralId.unwrap(referralId));
81
+ }
82
+
77
83
  /// @dev Returns the key32 value for the specified nft id and object type.
78
84
  function toKey32(ReferralId id) public pure returns (Key32 key) {
79
85
  return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {RequestId} from "../type/RequestId.sol";
5
+
6
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
+ library LibRequestIdSet {
8
+
9
+ struct Set {
10
+ RequestId[] ids;
11
+ mapping(RequestId requestId => uint256 index) at;
12
+ }
13
+
14
+ error ErrorRequestIdSetAlreadyAdded(RequestId requestId);
15
+ error ErrorRequestIdSetNotInSet(RequestId requestId);
16
+
17
+
18
+ function add(Set storage set, RequestId requestId) external {
19
+ if (set.at[requestId] > 0) {
20
+ revert ErrorRequestIdSetAlreadyAdded(requestId);
21
+ }
22
+
23
+ set.ids.push(requestId);
24
+ set.at[requestId] = set.ids.length;
25
+ }
26
+
27
+ function remove(Set storage set, RequestId requestId) external {
28
+ uint256 requestIdIndex = set.at[requestId];
29
+
30
+ if (requestIdIndex == 0) {
31
+ revert ErrorRequestIdSetNotInSet(requestId);
32
+ }
33
+
34
+ uint256 toDeleteIndex = requestIdIndex - 1;
35
+ uint256 lastIndex = set.ids.length - 1;
36
+
37
+ if (lastIndex != toDeleteIndex) {
38
+ RequestId lastId = set.ids[lastIndex];
39
+ set.ids[toDeleteIndex] = lastId;
40
+ set.at[lastId] = requestIdIndex; // Replace lastValue's index to valueIndex
41
+ }
42
+
43
+ set.ids.pop();
44
+ delete set.at[requestId];
45
+ }
46
+
47
+ function isEmpty(Set storage set) external view returns(bool empty) {
48
+ return set.ids.length == 0;
49
+ }
50
+
51
+ function contains(Set storage set, RequestId requestId) external view returns(bool inSet) {
52
+ return set.at[requestId] > 0;
53
+ }
54
+
55
+ function size(Set storage set) external view returns(uint256 length) {
56
+ return set.ids.length;
57
+ }
58
+
59
+ function getElementAt(Set storage set, uint256 index) external view returns(RequestId requestId) {
60
+ return set.ids[index];
61
+ }
62
+ }
@@ -47,6 +47,10 @@ library SecondsLib {
47
47
  return Seconds.wrap(_max());
48
48
  }
49
49
 
50
+ function fromHours(uint32 numberOfHours) public pure returns (Seconds duration) {
51
+ return Seconds.wrap(numberOfHours * 3600);
52
+ }
53
+
50
54
  function oneDay() public pure returns (Seconds duration) {
51
55
  return Seconds.wrap(24 * 3600);
52
56
  }
@@ -62,4 +62,34 @@ library StrLib {
62
62
  function length(Str str) public pure returns (uint256 byteLength) {
63
63
  return ShortStrings.byteLength(ShortString.wrap(Str.unwrap(str)));
64
64
  }
65
+
66
+ /// @dev Returns the provied int as a string
67
+ function uintToString(uint256 value) public pure returns (string memory name) {
68
+
69
+ if (value == 0) {
70
+ return "0";
71
+ }
72
+
73
+ uint256 temp = value;
74
+ uint256 digits = 0;
75
+ while (temp != 0) {
76
+ digits++;
77
+ temp /= 10;
78
+ }
79
+
80
+ bytes memory buffer = new bytes(digits);
81
+ uint256 index = digits - 1;
82
+
83
+ temp = value;
84
+ while (temp != 0) {
85
+ buffer[index] = bytes1(uint8(48 + temp % 10));
86
+ temp /= 10;
87
+
88
+ if (index > 0) {
89
+ index--;
90
+ }
91
+ }
92
+
93
+ return string(buffer);
94
+ }
65
95
  }
@@ -23,6 +23,7 @@ using {
23
23
  TimestampLib.gtz,
24
24
  TimestampLib.eqz,
25
25
  TimestampLib.addSeconds,
26
+ TimestampLib.subtractSeconds,
26
27
  TimestampLib.toInt
27
28
  } for Timestamp global;
28
29
 
@@ -129,7 +130,7 @@ library TimestampLib {
129
130
  return Timestamp.unwrap(timestamp) > 0;
130
131
  }
131
132
 
132
- /// @dev return true if Timestamp a is not equal to Timestamp b
133
+ /// @dev return a new timestamp that is duration seconds later than the provided timestamp.
133
134
  function addSeconds(
134
135
  Timestamp timestamp,
135
136
  Seconds duration
@@ -137,6 +138,14 @@ library TimestampLib {
137
138
  return toTimestamp(Timestamp.unwrap(timestamp) + duration.toInt());
138
139
  }
139
140
 
141
+ /// @dev return a new timestamp that is duration seconds earlier than the provided timestamp.
142
+ function subtractSeconds(
143
+ Timestamp timestamp,
144
+ Seconds duration
145
+ ) public pure returns (Timestamp) {
146
+ return toTimestamp(Timestamp.unwrap(timestamp) - duration.toInt());
147
+ }
148
+
140
149
  function toInt(Timestamp timestamp) public pure returns (uint256) {
141
150
  return uint256(uint40(Timestamp.unwrap(timestamp)));
142
151
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "3.0.0-beta.1",
3
+ "version": "3.0.0-c2748c1-102",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -43,13 +43,14 @@
43
43
  "typescript": "^5"
44
44
  },
45
45
  "dependencies": {
46
- "@openzeppelin/contracts": "5.0.2",
47
- "@openzeppelin/contracts-upgradeable": "5.0.2",
46
+ "@openzeppelin/contracts": "5.1.0",
47
+ "@openzeppelin/contracts-upgradeable": "5.1.0",
48
48
  "@openzeppelin/upgrades-core": "^1.34.1",
49
49
  "abi-coder": "^5.0.0",
50
50
  "antlr4ng": "^3.0.4",
51
51
  "ethers": "^6.7.1",
52
52
  "ethers-decode-error": "^2.1.3",
53
+ "simple-git": "^3.27.0",
53
54
  "solidity-docgen": "^0.6.0-beta.36",
54
55
  "winston": "^3.10.0"
55
56
  }