@etherisc/gif-next 0.0.2-95f8cce-959 → 0.0.2-9628b30-648

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 (760) hide show
  1. package/README.md +133 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +304 -324
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +293 -275
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +534 -340
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1208 -0
  54. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  58. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  60. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2572 -0
  62. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  64. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  66. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  68. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  69. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  82. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  84. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  85. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +569 -1784
  86. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +523 -74
  88. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  89. package/artifacts/contracts/instance/Instance.sol/Instance.json +644 -2621
  90. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  91. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  92. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  93. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  94. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  95. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2068 -617
  96. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +530 -381
  98. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +202 -171
  100. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  101. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
  102. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  104. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  106. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  108. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  109. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  110. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  111. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  112. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  114. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  115. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  116. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  117. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  118. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  119. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  120. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  121. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  122. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  123. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  125. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -0
  127. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  128. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  129. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  130. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  131. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  132. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +328 -225
  133. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  134. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +272 -241
  135. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  136. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  137. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  139. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +339 -473
  141. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  142. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  143. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  144. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  145. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  147. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  148. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  149. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  150. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  151. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  152. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  153. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  154. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +384 -423
  155. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  156. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  157. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  158. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  159. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  161. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  162. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  163. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  164. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  165. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  166. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +475 -483
  167. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  168. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  169. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  170. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  171. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  173. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  174. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +334 -374
  175. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  176. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  177. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  178. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  179. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  180. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +185 -155
  181. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  182. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  183. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  184. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +223 -164
  185. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  186. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  187. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  188. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  189. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  190. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  191. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  192. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  193. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  194. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  195. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  196. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  197. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  198. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  199. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  200. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  201. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  203. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +499 -34
  205. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  206. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +315 -109
  207. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  208. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  209. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  211. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/Registry.sol/Registry.json +987 -131
  213. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  214. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  215. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  216. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  217. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  218. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +390 -250
  219. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  220. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +213 -110
  221. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  222. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  223. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  224. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  225. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  226. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  227. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  228. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  229. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  230. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -137
  231. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  232. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +284 -186
  233. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  234. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  235. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  236. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  237. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  238. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  239. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  240. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  241. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  242. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  243. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  244. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  245. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  246. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +156 -131
  247. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  248. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +584 -738
  249. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  251. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  252. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +101 -20
  253. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  254. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  255. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +38 -10
  257. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  259. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +163 -3
  261. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  263. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IService.sol/IService.json +98 -5
  265. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  266. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  267. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  268. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  269. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  270. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  271. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  272. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  273. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  274. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  275. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  276. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -70
  277. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  278. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  279. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  280. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +145 -100
  281. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  282. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  283. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  284. package/artifacts/contracts/shared/Service.sol/Service.json +95 -109
  285. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  286. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  289. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  290. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  291. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  292. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
  293. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  294. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  295. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  296. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  297. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  298. package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
  299. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  301. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  302. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  303. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  304. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  305. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  306. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  307. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  308. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  309. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  310. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  311. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  312. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  313. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  314. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  315. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  316. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  317. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  319. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  321. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  323. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  325. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  327. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  329. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  331. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  332. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  333. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  335. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  336. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  337. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  339. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  341. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  343. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  345. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  346. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  347. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  349. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  351. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  352. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  353. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  354. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  355. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  356. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  357. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  358. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  359. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  360. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  361. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  362. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  363. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  364. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  365. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  366. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  367. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  368. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  369. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  370. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  371. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  372. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  373. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  374. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  375. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  376. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  377. package/contracts/accounting/AccountingService.sol +274 -0
  378. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  379. package/contracts/accounting/IAccountingService.sol +47 -0
  380. package/contracts/authorization/AccessAdmin.sol +780 -0
  381. package/contracts/authorization/AccessAdminLib.sol +396 -0
  382. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  383. package/contracts/authorization/Authorization.sol +169 -0
  384. package/contracts/authorization/IAccess.sol +67 -0
  385. package/contracts/authorization/IAccessAdmin.sol +144 -0
  386. package/contracts/authorization/IAuthorization.sol +26 -0
  387. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  388. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  389. package/contracts/distribution/BasicDistribution.sol +141 -0
  390. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  391. package/contracts/distribution/Distribution.sol +247 -0
  392. package/contracts/distribution/DistributionService.sol +448 -0
  393. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  394. package/contracts/distribution/IDistributionComponent.sol +45 -0
  395. package/contracts/distribution/IDistributionService.sol +115 -0
  396. package/contracts/examples/fire/DamageLevel.sol +59 -0
  397. package/contracts/examples/fire/FirePool.sol +86 -0
  398. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  399. package/contracts/examples/fire/FireProduct.sol +433 -0
  400. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  401. package/contracts/examples/fire/FireUSD.sol +26 -0
  402. package/contracts/examples/flight/FlightOracle.sol +160 -0
  403. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  404. package/contracts/examples/flight/FlightPool.sol +89 -0
  405. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  406. package/contracts/examples/flight/FlightProduct.sol +661 -0
  407. package/contracts/examples/flight/FlightProductAuthorization.sol +42 -0
  408. package/contracts/examples/flight/FlightUSD.sol +26 -0
  409. package/contracts/examples/flight/originalV1.sol +396 -0
  410. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  411. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  412. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  413. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  414. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  415. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  416. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  417. package/contracts/instance/BundleSet.sol +130 -0
  418. package/contracts/instance/IInstance.sol +120 -73
  419. package/contracts/instance/IInstanceService.sol +84 -39
  420. package/contracts/instance/Instance.sol +248 -230
  421. package/contracts/instance/InstanceAdmin.sol +383 -0
  422. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  423. package/contracts/instance/InstanceReader.sol +554 -191
  424. package/contracts/instance/InstanceService.sol +384 -379
  425. package/contracts/instance/InstanceServiceManager.sol +14 -29
  426. package/contracts/instance/InstanceStore.sol +298 -0
  427. package/contracts/instance/RiskSet.sol +126 -0
  428. package/contracts/instance/base/BalanceStore.sol +121 -0
  429. package/contracts/instance/base/Cloneable.sol +28 -0
  430. package/contracts/instance/base/ObjectCounter.sol +20 -0
  431. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  432. package/contracts/instance/base/ObjectSet.sol +77 -0
  433. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  434. package/contracts/instance/module/IBundle.sol +9 -11
  435. package/contracts/instance/module/IComponents.sol +44 -23
  436. package/contracts/instance/module/IDistribution.sol +25 -12
  437. package/contracts/instance/module/IPolicy.sol +71 -38
  438. package/contracts/instance/module/IRisk.sol +6 -1
  439. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  440. package/contracts/oracle/BasicOracle.sol +45 -0
  441. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  442. package/contracts/oracle/IOracle.sol +41 -0
  443. package/contracts/oracle/IOracleComponent.sol +33 -0
  444. package/contracts/oracle/IOracleService.sol +66 -0
  445. package/contracts/oracle/Oracle.sol +154 -0
  446. package/contracts/oracle/OracleService.sol +310 -0
  447. package/contracts/oracle/OracleServiceManager.sol +39 -0
  448. package/contracts/pool/BasicPool.sol +162 -0
  449. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  450. package/contracts/pool/BundleService.sol +386 -0
  451. package/contracts/pool/BundleServiceManager.sol +39 -0
  452. package/contracts/pool/IBundleService.sol +116 -0
  453. package/contracts/pool/IPoolComponent.sol +62 -0
  454. package/contracts/pool/IPoolService.sol +170 -0
  455. package/contracts/pool/Pool.sol +333 -0
  456. package/contracts/pool/PoolLib.sol +341 -0
  457. package/contracts/pool/PoolService.sol +614 -0
  458. package/contracts/pool/PoolServiceManager.sol +39 -0
  459. package/contracts/product/ApplicationService.sol +327 -0
  460. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  461. package/contracts/product/BasicProduct.sol +49 -0
  462. package/contracts/product/BasicProductAuthorization.sol +63 -0
  463. package/contracts/product/ClaimService.sol +630 -0
  464. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  465. package/contracts/{instance/service → product}/IApplicationService.sol +41 -35
  466. package/contracts/product/IClaimService.sol +136 -0
  467. package/contracts/product/IPolicyService.sol +102 -0
  468. package/contracts/product/IPricingService.sol +40 -0
  469. package/contracts/product/IProductComponent.sol +62 -0
  470. package/contracts/product/IRiskService.sol +48 -0
  471. package/contracts/product/PolicyService.sol +645 -0
  472. package/contracts/product/PolicyServiceLib.sol +139 -0
  473. package/contracts/product/PolicyServiceManager.sol +39 -0
  474. package/contracts/product/PricingService.sol +306 -0
  475. package/contracts/product/PricingServiceManager.sol +39 -0
  476. package/contracts/product/Product.sol +493 -0
  477. package/contracts/product/RiskService.sol +190 -0
  478. package/contracts/product/RiskServiceManager.sol +39 -0
  479. package/contracts/registry/ChainNft.sol +79 -40
  480. package/contracts/registry/IRegistry.sol +104 -33
  481. package/contracts/registry/IRegistryService.sol +34 -40
  482. package/contracts/registry/IRelease.sol +29 -0
  483. package/contracts/registry/ITransferInterceptor.sol +1 -2
  484. package/contracts/registry/Registry.sol +469 -200
  485. package/contracts/registry/RegistryAdmin.sol +191 -0
  486. package/contracts/registry/RegistryAuthorization.sol +336 -0
  487. package/contracts/registry/RegistryService.sol +90 -131
  488. package/contracts/registry/RegistryServiceManager.sol +23 -32
  489. package/contracts/registry/ReleaseAdmin.sol +195 -0
  490. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  491. package/contracts/registry/ReleaseRegistry.sol +525 -0
  492. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  493. package/contracts/registry/TokenRegistry.sol +265 -64
  494. package/contracts/shared/Component.sol +214 -0
  495. package/contracts/shared/ComponentService.sol +687 -0
  496. package/contracts/shared/ComponentServiceManager.sol +38 -0
  497. package/contracts/shared/ContractLib.sol +312 -0
  498. package/contracts/shared/IComponent.sol +58 -0
  499. package/contracts/shared/IComponentService.sol +111 -0
  500. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  501. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  502. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  503. package/contracts/shared/INftOwnable.sol +6 -2
  504. package/contracts/shared/IPolicyHolder.sol +23 -14
  505. package/contracts/shared/IRegisterable.sol +22 -1
  506. package/contracts/shared/IRegistryLinked.sol +0 -1
  507. package/contracts/shared/IService.sol +12 -5
  508. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  509. package/contracts/shared/InstanceLinkedComponent.sol +234 -0
  510. package/contracts/shared/KeyValueStore.sol +131 -0
  511. package/contracts/shared/Lifecycle.sol +88 -0
  512. package/contracts/shared/NftIdSet.sol +65 -0
  513. package/contracts/shared/NftOwnable.sol +36 -27
  514. package/contracts/shared/PolicyHolder.sol +23 -41
  515. package/contracts/shared/Registerable.sol +52 -20
  516. package/contracts/shared/RegistryLinked.sol +9 -19
  517. package/contracts/shared/Service.sol +36 -41
  518. package/contracts/shared/TokenHandler.sol +322 -13
  519. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  520. package/contracts/staking/IStaking.sol +367 -0
  521. package/contracts/staking/IStakingService.sol +127 -0
  522. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  523. package/contracts/staking/Staking.sol +798 -0
  524. package/contracts/staking/StakingLib.sol +195 -0
  525. package/contracts/staking/StakingManager.sol +53 -0
  526. package/contracts/staking/StakingReader.sol +171 -0
  527. package/contracts/staking/StakingService.sol +321 -0
  528. package/contracts/staking/StakingServiceManager.sol +46 -0
  529. package/contracts/staking/StakingStore.sol +1368 -0
  530. package/contracts/staking/TargetHandler.sol +132 -0
  531. package/contracts/staking/TargetManagerLib.sol +234 -0
  532. package/contracts/{types → type}/AddressSet.sol +1 -1
  533. package/contracts/type/Amount.sol +154 -0
  534. package/contracts/{types → type}/Blocknumber.sol +36 -13
  535. package/contracts/type/ChainId.sol +101 -0
  536. package/contracts/{types → type}/ClaimId.sol +31 -3
  537. package/contracts/{types → type}/Fee.sol +28 -26
  538. package/contracts/{types → type}/Key32.sol +2 -2
  539. package/contracts/type/Key32Set.sol +62 -0
  540. package/contracts/{types → type}/NftId.sol +21 -16
  541. package/contracts/{types → type}/NftIdSet.sol +2 -2
  542. package/contracts/type/ObjectType.sol +307 -0
  543. package/contracts/type/PayoutId.sol +82 -0
  544. package/contracts/{types → type}/Referral.sol +8 -1
  545. package/contracts/type/RequestId.sol +75 -0
  546. package/contracts/type/RequestIdSet.sol +62 -0
  547. package/contracts/type/RiskId.sol +75 -0
  548. package/contracts/type/RoleId.sol +180 -0
  549. package/contracts/type/Seconds.sol +124 -0
  550. package/contracts/type/Selector.sol +107 -0
  551. package/contracts/{types → type}/StateId.sol +47 -4
  552. package/contracts/type/String.sol +65 -0
  553. package/contracts/{types → type}/Timestamp.sol +33 -8
  554. package/contracts/type/UFixed.sol +263 -0
  555. package/contracts/{types → type}/Version.sol +58 -7
  556. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  557. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  558. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  559. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  560. package/package.json +12 -8
  561. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  562. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  563. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  564. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  565. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  566. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  567. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  568. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  569. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  570. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  571. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  572. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  573. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  574. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  575. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  576. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  578. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  580. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  581. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  582. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  583. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  584. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  585. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  587. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  588. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  589. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  590. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  592. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  594. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  596. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  598. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  599. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  600. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  601. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  602. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  603. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  604. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  605. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  606. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -475
  610. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -450
  615. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  617. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  619. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  621. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  623. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  625. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  626. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  627. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  628. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  629. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  630. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  631. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  632. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  633. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  634. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  635. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  636. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  637. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  638. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  639. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  640. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  641. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  643. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  645. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  646. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  647. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  648. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  649. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  650. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  651. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  652. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  653. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  654. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  655. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  656. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  657. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  658. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  659. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  661. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  663. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  665. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  667. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  669. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  671. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  673. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  675. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  676. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  677. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  679. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  681. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  683. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  685. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  687. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  689. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  691. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  693. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  695. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  697. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  699. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  701. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  703. package/contracts/components/Component.sol +0 -253
  704. package/contracts/components/Distribution.sol +0 -280
  705. package/contracts/components/IComponent.sol +0 -76
  706. package/contracts/components/IDistributionComponent.sol +0 -71
  707. package/contracts/components/IPoolComponent.sol +0 -113
  708. package/contracts/components/IProductComponent.sol +0 -40
  709. package/contracts/components/Pool.sol +0 -303
  710. package/contracts/components/Product.sol +0 -293
  711. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  712. package/contracts/instance/BundleManager.sol +0 -127
  713. package/contracts/instance/Cloneable.sol +0 -51
  714. package/contracts/instance/InstanceAccessManager.sol +0 -527
  715. package/contracts/instance/ObjectManager.sol +0 -82
  716. package/contracts/instance/base/ComponentService.sol +0 -121
  717. package/contracts/instance/base/KeyValueStore.sol +0 -180
  718. package/contracts/instance/base/Lifecycle.sol +0 -109
  719. package/contracts/instance/module/IAccess.sol +0 -54
  720. package/contracts/instance/module/ISetup.sol +0 -33
  721. package/contracts/instance/module/ITreasury.sol +0 -23
  722. package/contracts/instance/service/ApplicationService.sol +0 -350
  723. package/contracts/instance/service/BundleService.sol +0 -431
  724. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  725. package/contracts/instance/service/ClaimService.sol +0 -151
  726. package/contracts/instance/service/DistributionService.sol +0 -435
  727. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  728. package/contracts/instance/service/IBundleService.sol +0 -93
  729. package/contracts/instance/service/IClaimService.sol +0 -61
  730. package/contracts/instance/service/IDistributionService.sol +0 -99
  731. package/contracts/instance/service/IPolicyService.sol +0 -72
  732. package/contracts/instance/service/IPoolService.sol +0 -99
  733. package/contracts/instance/service/IProductService.sol +0 -40
  734. package/contracts/instance/service/PolicyService.sol +0 -362
  735. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  736. package/contracts/instance/service/PoolService.sol +0 -303
  737. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  738. package/contracts/instance/service/ProductService.sol +0 -210
  739. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  740. package/contracts/registry/RegistryAccessManager.sol +0 -216
  741. package/contracts/registry/ReleaseManager.sol +0 -324
  742. package/contracts/shared/ContractDeployerLib.sol +0 -72
  743. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  744. package/contracts/test/TestFee.sol +0 -25
  745. package/contracts/test/TestRegisterable.sol +0 -18
  746. package/contracts/test/TestRoleId.sol +0 -14
  747. package/contracts/test/TestService.sol +0 -25
  748. package/contracts/test/TestToken.sol +0 -26
  749. package/contracts/test/TestVersion.sol +0 -44
  750. package/contracts/test/TestVersionable.sol +0 -17
  751. package/contracts/types/Amount.sol +0 -60
  752. package/contracts/types/ChainId.sol +0 -38
  753. package/contracts/types/NumberId.sol +0 -52
  754. package/contracts/types/ObjectType.sol +0 -157
  755. package/contracts/types/PayoutId.sol +0 -54
  756. package/contracts/types/RiskId.sol +0 -43
  757. package/contracts/types/RoleId.sol +0 -97
  758. package/contracts/types/Seconds.sol +0 -54
  759. package/contracts/types/UFixed.sol +0 -326
  760. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,82 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // uint40 allows for 65'535 claims with 16'777'216 payouts each per policy
5
+ type PayoutId is uint40;
6
+
7
+ import {ClaimId} from "./ClaimId.sol";
8
+ import {PAYOUT} from "./ObjectType.sol";
9
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
10
+ import {NftId} from "./NftId.sol";
11
+
12
+ // type bindings
13
+ using {
14
+ eqPayoutId as ==,
15
+ nePayoutId as !=,
16
+ PayoutIdLib.eqz,
17
+ PayoutIdLib.gtz,
18
+ PayoutIdLib.toInt,
19
+ PayoutIdLib.toClaimId,
20
+ PayoutIdLib.toPayoutNo,
21
+ PayoutIdLib.toKey32
22
+ } for PayoutId global;
23
+
24
+
25
+ // pure free functions for operators
26
+ function eqPayoutId(PayoutId a, PayoutId b) pure returns (bool isSame) {
27
+ return PayoutId.unwrap(a) == PayoutId.unwrap(b);
28
+ }
29
+
30
+ function nePayoutId(PayoutId a, PayoutId b) pure returns (bool isDifferent) {
31
+ return PayoutId.unwrap(a) != PayoutId.unwrap(b);
32
+ }
33
+
34
+ // library functions that operate on user defined type
35
+ library PayoutIdLib {
36
+ /// @dev Converts the PayoutId to a uint.
37
+ function zero() public pure returns (PayoutId) {
38
+ return PayoutId.wrap(0);
39
+ }
40
+
41
+ /// @dev Converts an uint into a PayoutId.
42
+ function toPayoutId(ClaimId claimId, uint24 payoutNo) public pure returns (PayoutId) {
43
+ return PayoutId.wrap((uint40(ClaimId.unwrap(claimId)) << 24) + payoutNo);
44
+ }
45
+
46
+ function toClaimId(PayoutId payoutId) public pure returns (ClaimId) {
47
+ return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >> 24));
48
+ }
49
+
50
+ function toPayoutNo(PayoutId payoutId) public pure returns (uint24) {
51
+ return uint24(PayoutId.unwrap(payoutId) & 16777215);
52
+ }
53
+
54
+ /// @dev Converts the PayoutId to a uint.
55
+ function toInt(PayoutId a) public pure returns (uint40) {
56
+ return PayoutId.unwrap(a);
57
+ }
58
+
59
+ /// @dev Returns true if the value is non-zero (> 0).
60
+ function gtz(PayoutId a) public pure returns (bool) {
61
+ return PayoutId.unwrap(a) > 0;
62
+ }
63
+
64
+ /// @dev Returns true if the value is zero (== 0).
65
+ function eqz(PayoutId a) public pure returns (bool) {
66
+ return PayoutId.unwrap(a) == 0;
67
+ }
68
+
69
+ /// @dev Converts the PayoutId and NftId to a Key32.
70
+ function toKey32(PayoutId payoutId, NftId policyNftId) public pure returns (Key32) {
71
+ return Key32Lib.toKey32(PAYOUT(), toKeyId(payoutId, policyNftId));
72
+ }
73
+
74
+ /// @dev Converts the PayoutId and NftId to a Key32.
75
+ function toKeyId(PayoutId payoutId, NftId policyNftId) public pure returns (KeyId) {
76
+ return KeyId.wrap(
77
+ bytes31(
78
+ bytes15(
79
+ uint120(
80
+ (NftId.unwrap(policyNftId) << 40) + PayoutId.unwrap(payoutId)))));
81
+ }
82
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {NftId} from "./NftId.sol";
@@ -12,6 +12,8 @@ type ReferralStatus is uint8;
12
12
  using {
13
13
  eqReferralId as ==,
14
14
  neReferralId as !=,
15
+ ReferralLib.eqz,
16
+ ReferralLib.toInt,
15
17
  ReferralLib.toKey32
16
18
  } for ReferralId global;
17
19
 
@@ -73,6 +75,11 @@ library ReferralLib {
73
75
  return ReferralStatus.wrap(status);
74
76
  }
75
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
+
76
83
  /// @dev Returns the key32 value for the specified nft id and object type.
77
84
  function toKey32(ReferralId id) public pure returns (Key32 key) {
78
85
  return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
@@ -0,0 +1,75 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {REQUEST} from "./ObjectType.sol";
6
+
7
+ type RequestId is uint64;
8
+
9
+ // type bindings
10
+ using {
11
+ eqRequestId as ==,
12
+ neRequestId as !=,
13
+ RequestIdLib.eqz,
14
+ RequestIdLib.gtz,
15
+ RequestIdLib.toInt,
16
+ RequestIdLib.toKey32
17
+ } for RequestId global;
18
+
19
+ // general pure free functions
20
+
21
+ function eqRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
22
+ return RequestIdLib.eq(a, b);
23
+ }
24
+
25
+ function neRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
26
+ return RequestIdLib.ne(a, b);
27
+ }
28
+
29
+ library RequestIdLib {
30
+
31
+ // @dev zero element to refer to a non existing/initialized request
32
+ function zero() public pure returns (RequestId) {
33
+ return RequestId.wrap(0);
34
+ }
35
+
36
+ // @dev Converts an int id into a request id.
37
+ function toRequestId(uint256 id) public pure returns (RequestId) {
38
+ return RequestId.wrap(uint64(id));
39
+ }
40
+
41
+ // @dev Converts a request id back to an int value.
42
+ function toInt(RequestId requestId) public pure returns (uint256) {
43
+ return RequestId.unwrap(requestId);
44
+ }
45
+
46
+ // @dev Returns true iff request id a == 0
47
+ function eqz(RequestId a) public pure returns (bool) {
48
+ return RequestId.unwrap(a) == 0;
49
+ }
50
+
51
+ // @dev Returns true iff request id a > 0
52
+ function gtz(RequestId a) public pure returns (bool) {
53
+ return RequestId.unwrap(a) > 0;
54
+ }
55
+
56
+ // @dev Returns true iff risk ids a and b are identical
57
+ function eq(RequestId a, RequestId b) public pure returns (bool isSame) {
58
+ return RequestId.unwrap(a) == RequestId.unwrap(b);
59
+ }
60
+
61
+ // @dev Returns true iff risk ids a and b are different
62
+ function ne(RequestId a, RequestId b) public pure returns (bool isSame) {
63
+ return RequestId.unwrap(a) != RequestId.unwrap(b);
64
+ }
65
+
66
+ /// @dev Returns the key32 value for the specified nft id and object type.
67
+ function toKey32(RequestId id) public pure returns (Key32 key) {
68
+ return Key32Lib.toKey32(REQUEST(), toKeyId(id));
69
+ }
70
+
71
+ /// @dev Returns the key id value for the specified nft id
72
+ function toKeyId(RequestId id) public pure returns (KeyId keyId) {
73
+ return KeyId.wrap(bytes31(uint248(RequestId.unwrap(id))));
74
+ }
75
+ }
@@ -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 RequestIdSet {
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
+ }
@@ -0,0 +1,75 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {NftId} from "./NftId.sol";
6
+ import {RISK} from "./ObjectType.sol";
7
+
8
+ type RiskId is bytes8;
9
+
10
+ // type bindings
11
+ using {
12
+ eqRiskId as ==,
13
+ neRiskId as !=,
14
+ RiskIdLib.eq,
15
+ RiskIdLib.eqz,
16
+ RiskIdLib.gtz,
17
+ RiskIdLib.toInt,
18
+ RiskIdLib.toKeyId,
19
+ RiskIdLib.toKey32
20
+ } for RiskId global;
21
+
22
+ // general pure free functions
23
+
24
+ // @dev Returns true iff risk ids a and b are identical
25
+ function eqRiskId(RiskId a, RiskId b) pure returns (bool isSame) {
26
+ return RiskId.unwrap(a) == RiskId.unwrap(b);
27
+ }
28
+
29
+ // @dev Returns true iff risk ids a and b are different
30
+ function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
31
+ return RiskId.unwrap(a) != RiskId.unwrap(b);
32
+ }
33
+
34
+ library RiskIdLib {
35
+ function zero() public pure returns (RiskId) {
36
+ return RiskId.wrap(bytes8(0));
37
+ }
38
+
39
+ // @dev Converts a risk id into a uint256.
40
+ function toInt(RiskId riskId) public pure returns (uint256) {
41
+ return uint64(RiskId.unwrap(riskId));
42
+ }
43
+
44
+ // @dev Converts a risk id string with a product NftId into a risk id.
45
+ function toRiskId(NftId productNftId, bytes32 risk) public pure returns (RiskId) {
46
+ return RiskId.wrap(bytes8(keccak256(abi.encode(productNftId, risk))));
47
+ }
48
+
49
+ /// @dev Returns the key32 value for the specified risk id.
50
+ function toKey32(RiskId riskId) public pure returns (Key32 key) {
51
+ return Key32Lib.toKey32(RISK(), toKeyId(riskId));
52
+ }
53
+
54
+ /// @dev Returns the key id value for the specified nft id
55
+ function toKeyId(RiskId id) public pure returns (KeyId keyId) {
56
+ return KeyId.wrap(bytes31(RiskId.unwrap(id)));
57
+ }
58
+
59
+ function toRiskId(KeyId keyId) public pure returns (RiskId riskId) {
60
+ riskId = RiskId.wrap(bytes8(KeyId.unwrap(keyId)));
61
+ assert(toInt(riskId) < 2**64);
62
+ }
63
+
64
+ function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
65
+ return eqRiskId(a, b);
66
+ }
67
+
68
+ function eqz(RiskId a) public pure returns (bool isZero) {
69
+ return eqRiskId(a, zero());
70
+ }
71
+
72
+ function gtz(RiskId a) public pure returns (bool isZero) {
73
+ return uint64(RiskId.unwrap(a)) > 0;
74
+ }
75
+ }
@@ -0,0 +1,180 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {ObjectType, ROLE} from "./ObjectType.sol";
6
+ import {VersionPart, VersionPartLib} from "./Version.sol";
7
+
8
+ type RoleId is uint64;
9
+
10
+ // type bindings
11
+ using {
12
+ eqRoleId as ==,
13
+ neRoleId as !=,
14
+ RoleIdLib.toInt,
15
+ RoleIdLib.isServiceRole,
16
+ RoleIdLib.eqz,
17
+ RoleIdLib.gtz
18
+ } for RoleId global;
19
+
20
+ // general pure free functions
21
+
22
+ // @dev Returns true iff role ids a and b are identical
23
+ function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
24
+ return RoleId.unwrap(a) == RoleId.unwrap(b);
25
+ }
26
+
27
+ // @dev Returns true iff role ids a and b are different
28
+ function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
29
+ return RoleId.unwrap(a) != RoleId.unwrap(b);
30
+ }
31
+
32
+ //--- OpenZeppelin provided roles -------------------------------------------//
33
+
34
+ /// @dev Role ID needs to match with oz AccessManager.ADMIN_ROLE
35
+ function ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).min); }
36
+
37
+ /// @dev Role ID needs to match with oz AccessManager.PUBLIC_ROLE
38
+ function PUBLIC_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).max); }
39
+
40
+ //--- GIF roles (range: 1-99) ----------------------------------------------//
41
+
42
+ /// @dev cental role for gif release management.
43
+ /// this role is necessary to call ReleaseManager.createNextRelease/activateNextRelease
44
+ /// the actual deployment of a release requires the GIF_MANAGER_ROLE.
45
+ /// GIF_ADMIN_ROLE is the admin of the GIF_MANAGER_ROLE.
46
+ /// only a single holder may hold this role at any time
47
+ function GIF_ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1); }
48
+
49
+ /// @dev role for token whith/blacklisting, deploying and registering the services for a new major release
50
+ /// registering services for a new major release is only possible after a new initial release has been created by the GIF_ADMIN_ROLE
51
+ /// token white/blacklisting is possible for any active release
52
+ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2); }
53
+
54
+ /// @dev role for registering remote staking targets and reporting remote total value locked amounts.
55
+ function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
56
+
57
+ // TODO check if/where this is really needed
58
+ /// @dev role assigned to release registry, release specfic to lock/unlock a release
59
+ function RELEASE_REGISTRY_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
60
+
61
+ /// @dev role assigned to every instance owner
62
+ function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(5); }
63
+
64
+ // TODO upate role id ranges
65
+ //--- GIF core contract roles (range: 200 - 9'900) --------------------------//
66
+ // created and assigned during initial deployment for registry and staking
67
+ // granting for instances and components in instance service
68
+ // object type * 100 + 0, examples:
69
+ // - registry contract role: 200
70
+ // - staking contract role: 300
71
+ // - instance contract role: 1000
72
+
73
+ //--- GIF service roles (range 201 - 9'9xx) ---------------------------------//
74
+ // created and assigned by release manager contract
75
+ // object type * 100 + 1/major version, examples:
76
+ // - registry service role (any version): 299
77
+ // - registry service role (version 3): 203
78
+ // - registry service role (any version): 399
79
+ // - staking service role: (version 3): 303
80
+ // - application service role (version 3): 2003
81
+
82
+ //--- GIF component contract roles (range 12'001 - 19'099) ------------------//
83
+ // the min value of 12'001 is based on the following calculation:
84
+ // object type * 1000 + 1 where the lowest object type is 12 (product)
85
+ // assigned at component registration time
86
+ // object type * 1000 + instane specific component counter
87
+ // on any instance a maximum number of 999 components may be deployed
88
+ // examples:
89
+ // - 1st pool on instance: 15001
90
+ // - 1st distribution on instance: 14002
91
+ // - 1st product on instance: 12003
92
+ // - 2nd pool on instance: 15004
93
+ // - 2nd distribution on instance: 14005
94
+ // - 2nd product on instance: 12006
95
+
96
+
97
+ //--- Custom roles (range >= 1'000'000) -------------------------------------//
98
+
99
+ function CUSTOM_ROLE_MIN() pure returns (RoleId) { return RoleIdLib.toRoleId(1000000); }
100
+
101
+ library RoleIdLib {
102
+
103
+ error ErrorRoleIdTooBig(uint256 roleId);
104
+
105
+ // constant values need to match with AccessAdminLib.SERVICE_ROLE_*
106
+ uint64 public constant SERVICE_ROLE_MIN = 1000;
107
+ uint64 public constant SERVICE_ROLE_MAX = 99099; // 99 (max object type) * 1000 + 99
108
+
109
+ uint64 public constant SERVICE_ROLE_FACTOR = 1000;
110
+
111
+ /// @dev Converts the RoleId to a uint.
112
+ function zero() public pure returns (RoleId) {
113
+ return RoleId.wrap(0);
114
+ }
115
+
116
+
117
+ /// @dev Converts an uint into a role id.
118
+ function toRoleId(uint256 a) public pure returns (RoleId) {
119
+ if (a > type(uint64).max) {
120
+ revert ErrorRoleIdTooBig(a);
121
+ }
122
+
123
+ return RoleId.wrap(uint64(a));
124
+ }
125
+
126
+
127
+ function isServiceRole(RoleId roleId)
128
+ public
129
+ pure
130
+ returns (bool)
131
+ {
132
+ uint256 roleIdInt = RoleId.unwrap(roleId);
133
+ return roleIdInt >= SERVICE_ROLE_MIN && roleIdInt <= SERVICE_ROLE_MAX;
134
+ }
135
+
136
+
137
+ function toGenericServiceRoleId(
138
+ ObjectType objectType
139
+ )
140
+ public
141
+ pure
142
+ returns (RoleId)
143
+ {
144
+ return toServiceRoleId(
145
+ objectType,
146
+ VersionPartLib.releaseMax());
147
+ }
148
+
149
+
150
+ function toServiceRoleId(
151
+ ObjectType serviceDomain,
152
+ VersionPart release
153
+ )
154
+ public
155
+ pure
156
+ returns (RoleId serviceRoleId)
157
+ {
158
+ uint256 serviceRoleIdInt =
159
+ SERVICE_ROLE_MIN
160
+ + SERVICE_ROLE_FACTOR * (serviceDomain.toInt() - 1)
161
+ + release.toInt();
162
+
163
+ return toRoleId(serviceRoleIdInt);
164
+ }
165
+
166
+ /// @dev Converts the role id to a uint.
167
+ function toInt(RoleId a) public pure returns (uint64) {
168
+ return uint64(RoleId.unwrap(a));
169
+ }
170
+
171
+ /// @dev Returns true if the value is non-zero (> 0).
172
+ function gtz(RoleId a) public pure returns (bool) {
173
+ return RoleId.unwrap(a) > 0;
174
+ }
175
+
176
+ /// @dev Returns true if the value is zero (== 0).
177
+ function eqz(RoleId a) public pure returns (bool) {
178
+ return RoleId.unwrap(a) == 0;
179
+ }
180
+ }
@@ -0,0 +1,124 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ /// @dev Target: Cover durations of 1000 years.
5
+ type Seconds is uint40;
6
+
7
+ using {
8
+ SecondsEq as ==,
9
+ SecondsLt as <,
10
+ SecondsGt as >,
11
+ SecondsAdd as +,
12
+ SecondsLib.eqz,
13
+ SecondsLib.gtz,
14
+ SecondsLib.eq,
15
+ SecondsLib.gt,
16
+ SecondsLib.lt,
17
+ SecondsLib.toInt,
18
+ SecondsLib.add
19
+ } for Seconds global;
20
+
21
+ function SecondsEq(Seconds duration1, Seconds duration2) pure returns (bool) {
22
+ return SecondsLib.eq(duration1, duration2);
23
+ }
24
+
25
+ function SecondsLt(Seconds duration1, Seconds duration2) pure returns (bool) {
26
+ return SecondsLib.lt(duration1, duration2);
27
+ }
28
+
29
+ function SecondsGt(Seconds duration1, Seconds duration2) pure returns (bool) {
30
+ return SecondsLib.gt(duration1, duration2);
31
+ }
32
+
33
+ function SecondsAdd(Seconds duration1, Seconds duration2) pure returns (Seconds) {
34
+ return SecondsLib.add(duration1, duration2);
35
+ }
36
+
37
+
38
+ library SecondsLib {
39
+
40
+ error ErrorSecondsLibDurationTooBig(uint256 duration);
41
+
42
+ function zero() public pure returns (Seconds) {
43
+ return Seconds.wrap(0);
44
+ }
45
+
46
+ function max() public pure returns (Seconds) {
47
+ return Seconds.wrap(_max());
48
+ }
49
+
50
+ function fromHours(uint32 numberOfHours) public pure returns (Seconds duration) {
51
+ return Seconds.wrap(numberOfHours * 3600);
52
+ }
53
+
54
+ function oneDay() public pure returns (Seconds duration) {
55
+ return Seconds.wrap(24 * 3600);
56
+ }
57
+
58
+ function fromDays(uint32 numberOfDays) public pure returns (Seconds duration) {
59
+ return Seconds.wrap(numberOfDays * 24 * 3600);
60
+ }
61
+
62
+ function oneYear() public pure returns (Seconds duration) {
63
+ return Seconds.wrap(365 * 24 * 3600);
64
+ }
65
+
66
+ /// @dev converts the uint duration into Seconds
67
+ /// function reverts if duration is exceeding max Seconds value
68
+ function toSeconds(uint256 duration) public pure returns (Seconds) {
69
+ // if(duration > type(uint40).max) {
70
+ if(duration > _max()) {
71
+ revert ErrorSecondsLibDurationTooBig(duration);
72
+ }
73
+
74
+ return Seconds.wrap(uint40(duration));
75
+ }
76
+
77
+ /// @dev return true if duration equals 0
78
+ function eqz(Seconds duration) public pure returns (bool) {
79
+ return Seconds.unwrap(duration) == 0;
80
+ }
81
+
82
+ /// @dev return true if duration is larger than 0
83
+ function gtz(Seconds duration) public pure returns (bool) {
84
+ return Seconds.unwrap(duration) > 0;
85
+ }
86
+
87
+ /// @dev return true iff duration1 and duration2 are the same
88
+ function eq(Seconds duration1, Seconds duration2) public pure returns (bool) {
89
+ return Seconds.unwrap(duration1) == Seconds.unwrap(duration2);
90
+ }
91
+
92
+ /// @dev return true if duration1 is larger than duration2
93
+ function gt(Seconds duration1, Seconds duration2) public pure returns (bool) {
94
+ return Seconds.unwrap(duration1) > Seconds.unwrap(duration2);
95
+ }
96
+
97
+ /// @dev return true if duration1 is smaller than duration2
98
+ function lt(Seconds duration1, Seconds duration2) public pure returns (bool) {
99
+ return Seconds.unwrap(duration1) < Seconds.unwrap(duration2);
100
+ }
101
+
102
+ /// @dev returns the smaller of the duration
103
+ function min(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
104
+ if (Seconds.unwrap(duration1) < Seconds.unwrap(duration2)) {
105
+ return duration1;
106
+ }
107
+
108
+ return duration2;
109
+ }
110
+
111
+ /// @dev return add duration1 and duration2
112
+ function add(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
113
+ return Seconds.wrap(Seconds.unwrap(duration1) + Seconds.unwrap(duration2));
114
+ }
115
+
116
+ function toInt(Seconds duration) public pure returns (uint256) {
117
+ return uint256(uint40(Seconds.unwrap(duration)));
118
+ }
119
+
120
+ function _max() internal pure returns (uint40) {
121
+ // IMPORTANT: type nees to match with actual definition for Seconds
122
+ return type(uint40).max;
123
+ }
124
+ }