@etherisc/gif-next 0.0.2-9e6b423-414 → 0.0.2-9f1b659-471

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 (416) hide show
  1. package/README.md +3 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +86 -34
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +73 -35
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +52 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2 -2
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  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 +37 -18
  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/Distribution.sol/Distribution.json +19 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +311 -151
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +112 -86
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +19 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +199 -15
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +65 -42
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +16 -16
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +79 -44
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +16 -16
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +57 -22
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +27 -8
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +69 -50
  54. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +16 -16
  56. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +248 -68
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +16 -16
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +26 -1
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +96 -4
  66. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/Instance.sol/Instance.json +37 -12
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2 -2
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +16 -16
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +56 -56
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -26
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +69 -31
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +106 -98
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  84. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  91. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  93. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  98. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +23 -4
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -0
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -0
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +49 -20
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +78 -40
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +37 -26
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +280 -119
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +106 -48
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +180 -27
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +19 -0
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -1
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +19 -0
  130. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  131. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +36 -52
  132. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +292 -65
  134. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +94 -52
  136. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +202 -61
  138. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +75 -33
  140. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  141. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -0
  142. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
  144. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +128 -104
  146. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +95 -65
  148. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  149. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
  150. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  152. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  157. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -0
  158. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
  160. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +109 -46
  162. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +91 -49
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +79 -74
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +82 -40
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  171. package/artifacts/contracts/product/Product.sol/Product.json +19 -0
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +70 -32
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +18 -7
  179. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  181. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  183. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/Registry.sol/Registry.json +56 -45
  185. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
  187. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +29 -21
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +65 -27
  193. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2 -2
  195. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +81 -81
  198. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +17 -17
  200. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  202. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Component.sol/Component.json +19 -0
  204. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +120 -56
  206. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +96 -50
  208. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +9 -9
  210. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  214. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  215. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -0
  216. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +48 -0
  218. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -0
  220. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
  222. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  223. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  224. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  225. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  228. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  231. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  232. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -0
  234. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  235. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
  236. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  237. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  238. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  239. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  241. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  243. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  245. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  247. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  249. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  252. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  253. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  254. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  255. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  256. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1146 -53
  257. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  258. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +91 -111
  259. package/artifacts/contracts/staking/ITargetManager.sol/ITargetManager.dbg.json +4 -0
  260. package/artifacts/contracts/staking/ITargetManager.sol/ITargetManager.json +69 -0
  261. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  262. package/artifacts/contracts/staking/Staking.sol/Staking.json +1392 -181
  263. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  264. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +73 -72
  265. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  266. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  267. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +138 -56
  268. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +174 -180
  270. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +115 -167
  272. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +68 -46
  274. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1290 -599
  276. package/artifacts/contracts/staking/TargetManager.sol/TargetManager.dbg.json +4 -0
  277. package/artifacts/contracts/staking/TargetManager.sol/TargetManager.json +134 -0
  278. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  279. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +72 -32
  280. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  281. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
  283. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  285. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  287. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  289. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  291. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  293. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  295. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  297. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  298. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  299. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  302. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  304. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  310. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -2
  318. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  320. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  321. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  323. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +55 -17
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  325. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  326. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  327. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  328. package/contracts/accounting/AccountingService.sol +13 -0
  329. package/contracts/accounting/IAccountingService.sol +2 -0
  330. package/contracts/authorization/AccessAdmin.sol +5 -5
  331. package/contracts/authorization/AccessAdminLib.sol +2 -2
  332. package/contracts/authorization/Authorization.sol +2 -7
  333. package/contracts/authorization/IAuthorization.sol +0 -1
  334. package/contracts/authorization/ServiceAuthorization.sol +2 -2
  335. package/contracts/distribution/BasicDistribution.sol +2 -2
  336. package/contracts/distribution/Distribution.sol +5 -3
  337. package/contracts/distribution/DistributionService.sol +27 -21
  338. package/contracts/distribution/IDistributionService.sol +10 -4
  339. package/contracts/examples/fire/FireProduct.sol +6 -6
  340. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
  341. package/contracts/instance/IInstance.sol +1 -1
  342. package/contracts/instance/IInstanceService.sol +7 -3
  343. package/contracts/instance/Instance.sol +6 -4
  344. package/contracts/instance/InstanceAuthorizationV3.sol +2 -1
  345. package/contracts/instance/InstanceService.sol +21 -32
  346. package/contracts/instance/RiskSet.sol +10 -2
  347. package/contracts/instance/base/BalanceStore.sol +1 -1
  348. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  349. package/contracts/oracle/BasicOracle.sol +1 -1
  350. package/contracts/oracle/Oracle.sol +2 -2
  351. package/contracts/oracle/OracleService.sol +4 -4
  352. package/contracts/pool/BasicPool.sol +3 -14
  353. package/contracts/pool/BasicPoolAuthorization.sol +1 -2
  354. package/contracts/pool/BundleService.sol +34 -43
  355. package/contracts/pool/IBundleService.sol +14 -13
  356. package/contracts/pool/IPoolService.sol +7 -2
  357. package/contracts/pool/Pool.sol +4 -14
  358. package/contracts/pool/PoolLib.sol +10 -22
  359. package/contracts/pool/PoolService.sol +35 -8
  360. package/contracts/product/ApplicationService.sol +58 -9
  361. package/contracts/product/BasicProduct.sol +1 -1
  362. package/contracts/product/BasicProductAuthorization.sol +2 -0
  363. package/contracts/product/ClaimService.sol +39 -40
  364. package/contracts/product/IApplicationService.sol +21 -2
  365. package/contracts/product/IClaimService.sol +5 -4
  366. package/contracts/product/IPolicyService.sol +9 -2
  367. package/contracts/product/IRiskService.sol +18 -3
  368. package/contracts/product/PolicyService.sol +13 -8
  369. package/contracts/product/PolicyServiceLib.sol +7 -7
  370. package/contracts/product/PricingService.sol +22 -25
  371. package/contracts/product/Product.sol +38 -12
  372. package/contracts/product/RiskService.sol +48 -12
  373. package/contracts/registry/IRegistry.sol +11 -9
  374. package/contracts/registry/Registry.sol +15 -9
  375. package/contracts/registry/RegistryAuthorization.sol +55 -20
  376. package/contracts/registry/RegistryService.sol +1 -1
  377. package/contracts/registry/ReleaseRegistry.sol +8 -3
  378. package/contracts/registry/ServiceAuthorizationV3.sol +10 -12
  379. package/contracts/registry/TokenRegistry.sol +52 -49
  380. package/contracts/shared/Component.sol +6 -2
  381. package/contracts/shared/ComponentService.sol +15 -6
  382. package/contracts/shared/ContractLib.sol +3 -2
  383. package/contracts/shared/IComponent.sol +1 -1
  384. package/contracts/shared/IComponentService.sol +1 -0
  385. package/contracts/shared/IKeyValueStore.sol +1 -1
  386. package/contracts/shared/INftOwnable.sol +2 -0
  387. package/contracts/shared/InstanceLinkedComponent.sol +4 -4
  388. package/contracts/shared/KeyValueStore.sol +3 -3
  389. package/contracts/shared/NftOwnable.sol +2 -0
  390. package/contracts/shared/PolicyHolder.sol +3 -2
  391. package/contracts/staking/IStaking.sol +187 -65
  392. package/contracts/staking/IStakingService.sol +36 -84
  393. package/contracts/staking/ITargetManager.sol +28 -0
  394. package/contracts/staking/Staking.sol +458 -210
  395. package/contracts/staking/StakingLib.sol +38 -124
  396. package/contracts/staking/StakingManager.sol +1 -2
  397. package/contracts/staking/StakingReader.sol +45 -74
  398. package/contracts/staking/StakingService.sol +39 -185
  399. package/contracts/staking/StakingServiceManager.sol +1 -0
  400. package/contracts/staking/StakingStore.sol +866 -327
  401. package/contracts/staking/TargetManager.sol +103 -0
  402. package/contracts/type/Amount.sol +4 -0
  403. package/contracts/type/Blocknumber.sol +15 -15
  404. package/contracts/type/ChainId.sol +101 -0
  405. package/contracts/type/NftId.sol +3 -3
  406. package/contracts/type/Seconds.sol +14 -0
  407. package/contracts/type/Timestamp.sol +4 -2
  408. package/contracts/type/UFixed.sol +1 -0
  409. package/contracts/upgradeability/IVersionable.sol +3 -0
  410. package/contracts/upgradeability/ProxyManager.sol +13 -1
  411. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +6 -2
  412. package/contracts/upgradeability/Versionable.sol +2 -2
  413. package/package.json +1 -1
  414. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  415. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  416. package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -0,0 +1,103 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ITargetManager} from "./ITargetManager.sol";
5
+
6
+ import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {StakingStore} from "./StakingStore.sol";
9
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
10
+
11
+ contract TargetManager is ITargetManager {
12
+
13
+ // TODO - update to the correct location
14
+ bytes32 public constant TARGET_MANAGER_LOCATION_V1 = 0xafe8d746212ed26a47154f4b8f6d1a97d2f772496775791d25bd456e342b7f00;
15
+
16
+ struct TargetManagerStorage {
17
+ StakingStore _store;
18
+ uint16 _tvlUpdatesTrigger; // number of TVL updates below which limit updates are suppressed
19
+ UFixed _maxTvlRatio; // any ratio above this value will trigger a limit update
20
+ }
21
+
22
+
23
+ function __TargetManager_init(
24
+ StakingStore stakingStore,
25
+ uint16 tvlUpdatesTrigger,
26
+ UFixed maxTvlRatio
27
+ )
28
+ internal
29
+ virtual
30
+ // TODO add onlyInitializing()
31
+ {
32
+ TargetManagerStorage storage $ = _getTargetManagerStorage();
33
+ $._store = stakingStore;
34
+ $._tvlUpdatesTrigger = tvlUpdatesTrigger;
35
+ $._maxTvlRatio = maxTvlRatio;
36
+ }
37
+
38
+
39
+ //--- target limit manager interface ------------------------------------//
40
+
41
+
42
+ /// @inheritdoc ITargetManager
43
+ function updateLimit(NftId targetNftId)
44
+ external
45
+ virtual
46
+ // TODO add restricted()
47
+ returns (Amount stakeLimitAmount)
48
+ {
49
+ TargetManagerStorage storage $ = _getTargetManagerStorage();
50
+ $._store.updateTargetLimit(targetNftId);
51
+ }
52
+
53
+
54
+ /// @dev Returns true iff the target limit update is required.
55
+ /// Current implementation only considers the TVL amounts.
56
+ /// Future implementations may also consider target or token specific factors.
57
+ function isLimitUpdateRequired(
58
+ NftId, // targetNftId
59
+ address , // token
60
+ uint16 tvlUpdatesCount,
61
+ Amount baselineTvlAmount,
62
+ Amount currentTvlAmount
63
+ )
64
+ external
65
+ virtual
66
+ view
67
+ returns (bool updateIsRequired)
68
+ {
69
+ // no update required if below the TVL updates trigger
70
+ TargetManagerStorage storage $ = _getTargetManagerStorage();
71
+ if (tvlUpdatesCount < $._tvlUpdatesTrigger) {
72
+ return false;
73
+ }
74
+
75
+ // no update required if both amounts are zero
76
+ Amount zero = AmountLib.zero();
77
+ if (baselineTvlAmount == zero && currentTvlAmount == zero) {
78
+ return false;
79
+
80
+ // update required if one amount is zero
81
+ } else if (baselineTvlAmount == zero || currentTvlAmount == zero) {
82
+ return true;
83
+ }
84
+
85
+ // calculate the ratio of the current TVL amount to the baseline TVL amount
86
+ UFixed baseline = baselineTvlAmount.toUFixed();
87
+ UFixed current = currentTvlAmount.toUFixed();
88
+ UFixed ratio;
89
+
90
+ if (baseline > current) { ratio = baseline / current; }
91
+ else { ratio = current / baseline; }
92
+
93
+ // update required if the ratio is above the maximum TVL ratio
94
+ return ratio > $._maxTvlRatio;
95
+ }
96
+
97
+
98
+ function _getTargetManagerStorage() private pure returns (TargetManagerStorage storage $) {
99
+ assembly {
100
+ $.slot := TARGET_MANAGER_LOCATION_V1
101
+ }
102
+ }
103
+ }
@@ -3,6 +3,10 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {UFixed, UFixedLib} from "./UFixed.sol";
5
5
 
6
+ /// @dev Targets: 100 trillion (worlds GDP) with 6 decimal places
7
+ /// 3 trillion USD (total crypto market cap) with 12 decimal places.
8
+ /// 2023 100 trillion USD => 100e12 * 1e6 = 1e20
9
+ /// 2024 2 trillion crypto market cap => 2e12 * 1e18 = 2e30
6
10
  type Amount is uint96;
7
11
 
8
12
  using {
@@ -1,7 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- type Blocknumber is uint32;
4
+ /// @dev Target: Cover 10 years with 1 ms block times.
5
+ /// Typical block times are a few seconds.
6
+ type Blocknumber is uint40;
5
7
 
6
8
  using {
7
9
  gtBlocknumber as >,
@@ -56,25 +58,23 @@ function toBlocknumber(uint256 blocknum) pure returns (Blocknumber) {
56
58
  return Blocknumber.wrap(uint32(blocknum));
57
59
  }
58
60
 
59
- function blockBlocknumber() view returns (Blocknumber) {
60
- return BlocknumberLib.currentBlocknumber();
61
- }
62
-
63
- // TODO move to BlocknumberLib and rename to zero()
64
- /// @dev Return the Blocknumber zero (0)
65
- function zeroBlocknumber() pure returns (Blocknumber) {
66
- return toBlocknumber(0);
67
- }
68
-
69
61
  /// @dev Return the current block number
70
62
  function blockNumber() view returns (Blocknumber) {
71
63
  return toBlocknumber(block.number);
72
64
  }
73
65
 
74
66
  library BlocknumberLib {
75
- /// @dev returns the current Blocknumber
76
- function currentBlocknumber() public view returns (Blocknumber) {
77
- return Blocknumber.wrap(uint32(block.number));
67
+
68
+ function zero() public pure returns (Blocknumber) {
69
+ return Blocknumber.wrap(0);
70
+ }
71
+
72
+ function max() public pure returns (Blocknumber) {
73
+ return Blocknumber.wrap(type(uint40).max);
74
+ }
75
+
76
+ function current() public view returns (Blocknumber) {
77
+ return Blocknumber.wrap(uint40(block.number));
78
78
  }
79
79
 
80
80
  /// @dev return true iff blocknumber is 0
@@ -82,7 +82,7 @@ library BlocknumberLib {
82
82
  return Blocknumber.unwrap(blocknumber) == 0;
83
83
  }
84
84
 
85
- /// @dev return true iff blocknumber is 0
85
+ /// @dev return true iff blocknumber is > 0
86
86
  function gtz(Blocknumber blocknumber) public pure returns (bool) {
87
87
  return Blocknumber.unwrap(blocknumber) > 0;
88
88
  }
@@ -0,0 +1,101 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "./NftId.sol";
5
+
6
+ /// @dev Target: Cover chain IDs up to 26 decimal places.
7
+ /// Current longest chain ID seems to be DCHAIN Testnet: 2713017997578000 with 16 decimal places
8
+ type ChainId is uint96;
9
+
10
+ using {
11
+ eqChainId as ==,
12
+ neChainId as !=,
13
+ ChainIdLib.toInt,
14
+ ChainIdLib.eqz,
15
+ ChainIdLib.gtz
16
+ } for ChainId global;
17
+
18
+
19
+ /// @dev return true if ChainId a is equal to ChainId b
20
+ function eqChainId(ChainId a, ChainId b) pure returns (bool) {
21
+ return ChainId.unwrap(a) == ChainId.unwrap(b);
22
+ }
23
+
24
+ /// @dev return true if ChainId a is not equal to ChainId b
25
+ function neChainId(ChainId a, ChainId b) pure returns (bool) {
26
+ return ChainId.unwrap(a) != ChainId.unwrap(b);
27
+ }
28
+
29
+
30
+ library ChainIdLib {
31
+
32
+ error ErrorChainIdLibValueTooBig(uint256 chainId);
33
+
34
+
35
+ function zero() public pure returns (ChainId) {
36
+ return ChainId.wrap(0);
37
+ }
38
+
39
+
40
+ function max() public pure returns (ChainId) {
41
+ return ChainId.wrap(_max());
42
+ }
43
+
44
+
45
+ function current() public view returns (ChainId) {
46
+ return toChainId(block.chainid);
47
+ }
48
+
49
+
50
+ /// @dev return true iff chainId is 0
51
+ function eqz(ChainId chainId) public pure returns (bool) {
52
+ return ChainId.unwrap(chainId) == 0;
53
+ }
54
+
55
+
56
+ /// @dev return true iff chainId is > 0
57
+ function gtz(ChainId chainId) public pure returns (bool) {
58
+ return ChainId.unwrap(chainId) > 0;
59
+ }
60
+
61
+
62
+ /// @dev converts the uint into ChainId
63
+ /// function reverts if value is exceeding max ChainId value
64
+ function toChainId(uint256 chainId) public pure returns (ChainId) {
65
+ if(chainId > _max()) {
66
+ revert ErrorChainIdLibValueTooBig(chainId);
67
+ }
68
+
69
+ return ChainId.wrap(uint96(chainId));
70
+ }
71
+
72
+
73
+ /// @dev returns true iff NFT ID is from the current chain.
74
+ function isCurrentChain(NftId nftId) public view returns (bool) {
75
+ return _fromNftId(nftId) == block.chainid;
76
+ }
77
+
78
+
79
+ function fromNftId(NftId nftId) public pure returns (ChainId) {
80
+ return toChainId(_fromNftId(nftId));
81
+ }
82
+
83
+
84
+ /// @dev converts the ChainId to a uint256
85
+ function toInt(ChainId chainId) public pure returns (uint256) {
86
+ return uint256(uint96(ChainId.unwrap(chainId)));
87
+ }
88
+
89
+
90
+ function _fromNftId(NftId nftId) internal pure returns (uint256 chainIdInt) {
91
+ uint256 nftIdInt = nftId.toInt();
92
+ uint256 chainIdDigits = nftIdInt % 100; // Extract the last two digits
93
+ chainIdInt = nftIdInt % 10**(chainIdDigits + 2) / 100; // Extract the chainId
94
+ }
95
+
96
+
97
+ function _max() internal pure returns (uint96) {
98
+ // IMPORTANT: type nees to match with actual definition for Amount
99
+ return type(uint96).max;
100
+ }
101
+ }
@@ -78,8 +78,8 @@ library NftIdLib {
78
78
  }
79
79
 
80
80
  function toNftId(KeyId keyId) public pure returns (NftId nftId) {
81
- uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
82
- assert(keyIdInt < type(uint96).max);
83
- return NftId.wrap(uint96(keyIdInt));
81
+ uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
82
+ assert(keyIdInt < type(uint96).max);
83
+ return NftId.wrap(uint96(keyIdInt));
84
84
  }
85
85
  }
@@ -1,6 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ /// @dev Target: Cover durations of 1000 years.
4
5
  type Seconds is uint40;
5
6
 
6
7
  using {
@@ -45,6 +46,10 @@ library SecondsLib {
45
46
  return Seconds.wrap(24 * 3600);
46
47
  }
47
48
 
49
+ function fromDays(uint32 numberOfDays) public pure returns (Seconds duration) {
50
+ return Seconds.wrap(numberOfDays * 24 * 3600);
51
+ }
52
+
48
53
  function oneYear() public pure returns (Seconds duration) {
49
54
  return Seconds.wrap(365 * 24 * 3600);
50
55
  }
@@ -85,6 +90,15 @@ library SecondsLib {
85
90
  return Seconds.unwrap(duration1) < Seconds.unwrap(duration2);
86
91
  }
87
92
 
93
+ /// @dev returns the smaller of the duration
94
+ function min(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
95
+ if (Seconds.unwrap(duration1) < Seconds.unwrap(duration2)) {
96
+ return duration1;
97
+ }
98
+
99
+ return duration2;
100
+ }
101
+
88
102
  /// @dev return add duration1 and duration2
89
103
  function add(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
90
104
  return Seconds.wrap(Seconds.unwrap(duration1) + Seconds.unwrap(duration2));
@@ -3,6 +3,8 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Seconds} from "./Seconds.sol";
5
5
 
6
+ /// @dev Target: Cover 10 years with 1 ms block time resolution.
7
+ /// Typical block time resolution is 1s.
6
8
  type Timestamp is uint40;
7
9
 
8
10
  using {
@@ -69,8 +71,8 @@ library TimestampLib {
69
71
  function max() public pure returns (Timestamp) {
70
72
  return Timestamp.wrap(type(uint40).max);
71
73
  }
72
-
73
- function blockTimestamp() public view returns (Timestamp) {
74
+
75
+ function current() public view returns (Timestamp) {
74
76
  return Timestamp.wrap(uint40(block.timestamp));
75
77
  }
76
78
 
@@ -18,6 +18,7 @@ using {
18
18
  eqUFixed as ==,
19
19
  neUFixed as !=,
20
20
  UFixedLib.gt,
21
+ UFixedLib.eqz,
21
22
  UFixedLib.gtz,
22
23
  UFixedLib.toInt,
23
24
  UFixedLib.toInt1000
@@ -28,6 +28,9 @@ import {Version} from "../type/Version.sol";
28
28
 
29
29
  interface IVersionable {
30
30
 
31
+ error ErrorVersionableInitializeNotImplemented();
32
+ error ErrorVersionableUpgradeNotImplemented();
33
+
31
34
  /**
32
35
  * @dev IMPORTANT
33
36
  * implementation MUST be guarded by initializer modifier
@@ -118,6 +118,18 @@ contract ProxyManager is
118
118
  emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
119
119
  }
120
120
 
121
+ /// @dev upgrade existing contract.
122
+ /// convenience method using empty data
123
+ function upgrade(address newImplementation)
124
+ public
125
+ virtual
126
+ onlyOwner()
127
+ returns (IVersionable versionable)
128
+ {
129
+ bytes memory emptyUpgradeData;
130
+ return upgrade(newImplementation, emptyUpgradeData);
131
+ }
132
+
121
133
  /// @dev upgrade existing contract
122
134
  function upgrade(address newImplementation, bytes memory upgradeData)
123
135
  public
@@ -227,7 +239,7 @@ contract ProxyManager is
227
239
  version: newVersion,
228
240
  implementation: implementation,
229
241
  activatedBy: activatedBy,
230
- activatedAt: TimestampLib.blockTimestamp(),
242
+ activatedAt: TimestampLib.current(),
231
243
  activatedIn: blockNumber()
232
244
  });
233
245
  }
@@ -14,7 +14,11 @@ contract UpgradableProxyWithAdmin is TransparentUpgradeableProxy {
14
14
  _initializationData = data;
15
15
  }
16
16
 
17
- function getProxyAdmin() external returns (ProxyAdmin) { return ProxyAdmin(_proxyAdmin()); }
17
+ function getProxyAdmin() external returns (ProxyAdmin) {
18
+ return ProxyAdmin(_proxyAdmin());
19
+ }
18
20
 
19
- function getInitializationData() external view returns (bytes memory) { return _initializationData; }
21
+ function getInitializationData() external view returns (bytes memory) {
22
+ return _initializationData;
23
+ }
20
24
  }
@@ -47,7 +47,7 @@ abstract contract Versionable is
47
47
  onlyInitializing()
48
48
  virtual
49
49
  {
50
- revert();
50
+ revert ErrorVersionableInitializeNotImplemented();
51
51
  }
52
52
 
53
53
  // IMPORTANT each version except version "1" must implement this function
@@ -57,6 +57,6 @@ abstract contract Versionable is
57
57
  onlyInitializing
58
58
  virtual
59
59
  {
60
- revert();
60
+ revert ErrorVersionableUpgradeNotImplemented();
61
61
  }
62
62
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-9e6b423-414",
3
+ "version": "0.0.2-9f1b659-471",
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": {
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/5df0bb604666a4d2453a364d90e105b9.json"
4
- }