@etherisc/gif-next 0.0.2-b1fb5f9 → 0.0.2-b2070b1-995

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 (696) hide show
  1. package/README.md +477 -21
  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/access → authorization}/IAccess.sol/IAccess.json +1 -1
  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/distribution/Distribution.sol/Distribution.json +949 -0
  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/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  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 +2609 -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/BaseStore.sol/BaseStore.dbg.json +4 -0
  83. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  84. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  86. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  88. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  89. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +722 -449
  90. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  91. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1092 -0
  92. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  93. package/artifacts/contracts/instance/Instance.sol/Instance.json +800 -530
  94. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  95. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
  96. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  97. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  98. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2740 -0
  100. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  101. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1338 -0
  102. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +772 -0
  104. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  105. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3378 -0
  106. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  107. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +1539 -0
  108. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  109. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  110. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  111. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  112. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  114. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  115. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  116. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  117. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  118. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  120. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  122. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  123. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  124. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  125. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  126. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  127. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  128. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  129. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  130. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  131. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  132. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  133. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  134. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  135. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  136. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -0
  138. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  139. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  140. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  141. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  142. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  144. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  146. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  148. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  150. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  152. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  154. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  155. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  156. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  158. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  160. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  162. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  164. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  165. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  166. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  167. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  168. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  169. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  170. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  172. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  174. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  176. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  178. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  180. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  181. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  182. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  184. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  186. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  188. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  190. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  192. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  194. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +665 -0
  196. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  198. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  199. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  200. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  201. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  202. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  204. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  206. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  207. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  208. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  210. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  212. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  214. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1055 -113
  216. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
  218. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  219. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  220. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  221. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  222. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/Registry.sol/Registry.json +1543 -176
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  225. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  227. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  229. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +773 -0
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  234. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  236. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  237. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  238. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  239. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  240. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  241. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  243. package/artifacts/contracts/shared/Component.sol/Component.json +705 -0
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  250. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  251. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  253. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  254. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  255. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  256. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +630 -0
  258. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  259. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  260. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  261. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  262. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  263. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +547 -0
  264. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  265. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  266. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  267. package/artifacts/contracts/{registry/IRegistry.sol/IRegisterable.json → shared/INftOwnable.sol/INftOwnable.json} +72 -72
  268. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  269. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  270. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  271. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +179 -158
  272. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  273. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  274. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  275. package/artifacts/contracts/shared/IService.sol/IService.json +428 -0
  276. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  277. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  278. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  279. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  280. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  281. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +575 -0
  282. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  284. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  285. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  286. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  287. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
  288. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  289. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  290. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  291. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +397 -0
  292. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  293. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  294. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  295. package/artifacts/contracts/shared/Service.sol/Service.json +482 -0
  296. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  297. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  298. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  299. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  300. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  301. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  302. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  303. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2757 -0
  304. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  305. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  306. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  307. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  308. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  309. package/artifacts/contracts/staking/Staking.sol/Staking.json +3185 -0
  310. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  311. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  312. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  313. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  314. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  315. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  316. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  317. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  318. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  319. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  320. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  321. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  322. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  323. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  324. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  325. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  326. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  327. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  328. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  330. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  332. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  334. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  336. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  338. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  340. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  342. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  343. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  344. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  346. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  347. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  348. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +238 -0
  350. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  352. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  354. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  356. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  357. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  358. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  359. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  360. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  361. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  362. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  363. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  364. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  365. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  366. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  367. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  368. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  369. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  370. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  371. package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
  372. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  373. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  374. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  375. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  376. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  377. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  378. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  379. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  380. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  382. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  383. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  384. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  385. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  386. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  387. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  388. package/contracts/accounting/AccountingService.sol +274 -0
  389. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  390. package/contracts/accounting/IAccountingService.sol +47 -0
  391. package/contracts/authorization/AccessAdmin.sol +780 -0
  392. package/contracts/authorization/AccessAdminLib.sol +396 -0
  393. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  394. package/contracts/authorization/Authorization.sol +169 -0
  395. package/contracts/authorization/IAccess.sol +67 -0
  396. package/contracts/authorization/IAccessAdmin.sol +144 -0
  397. package/contracts/authorization/IAuthorization.sol +26 -0
  398. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  399. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  400. package/contracts/distribution/BasicDistribution.sol +141 -0
  401. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  402. package/contracts/distribution/Distribution.sol +247 -0
  403. package/contracts/distribution/DistributionService.sol +448 -0
  404. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  405. package/contracts/distribution/IDistributionComponent.sol +45 -0
  406. package/contracts/distribution/IDistributionService.sol +115 -0
  407. package/contracts/examples/fire/DamageLevel.sol +59 -0
  408. package/contracts/examples/fire/FirePool.sol +86 -0
  409. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  410. package/contracts/examples/fire/FireProduct.sol +433 -0
  411. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  412. package/contracts/examples/fire/FireUSD.sol +26 -0
  413. package/contracts/examples/flight/FlightOracle.sol +167 -0
  414. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  415. package/contracts/examples/flight/FlightPool.sol +89 -0
  416. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  417. package/contracts/examples/flight/FlightProduct.sol +728 -0
  418. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  419. package/contracts/examples/flight/FlightUSD.sol +26 -0
  420. package/contracts/examples/flight/originalV1.sol +396 -0
  421. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  422. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  423. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  424. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  425. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  426. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  427. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  428. package/contracts/instance/BaseStore.sol +93 -0
  429. package/contracts/instance/BundleSet.sol +130 -0
  430. package/contracts/instance/IBaseStore.sol +37 -0
  431. package/contracts/instance/IInstance.sol +155 -17
  432. package/contracts/instance/IInstanceService.sol +119 -0
  433. package/contracts/instance/Instance.sol +335 -48
  434. package/contracts/instance/InstanceAdmin.sol +379 -0
  435. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  436. package/contracts/instance/InstanceReader.sol +656 -0
  437. package/contracts/instance/InstanceService.sol +514 -0
  438. package/contracts/instance/InstanceServiceManager.sol +39 -0
  439. package/contracts/instance/InstanceStore.sol +268 -0
  440. package/contracts/instance/ProductStore.sol +119 -0
  441. package/contracts/instance/RiskSet.sol +126 -0
  442. package/contracts/instance/TargetNames.sol +10 -0
  443. package/contracts/instance/base/BalanceStore.sol +121 -0
  444. package/contracts/instance/base/Cloneable.sol +28 -0
  445. package/contracts/instance/base/ObjectCounter.sol +20 -0
  446. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  447. package/contracts/instance/base/ObjectSet.sol +77 -0
  448. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  449. package/contracts/instance/module/IBundle.sol +21 -0
  450. package/contracts/instance/module/IComponents.sol +62 -0
  451. package/contracts/instance/module/IDistribution.sol +54 -0
  452. package/contracts/instance/module/IPolicy.sol +105 -0
  453. package/contracts/instance/module/IRisk.sol +16 -0
  454. package/contracts/mock/Dip.sol +26 -0
  455. package/contracts/oracle/BasicOracle.sol +45 -0
  456. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  457. package/contracts/oracle/IOracle.sol +41 -0
  458. package/contracts/oracle/IOracleComponent.sol +33 -0
  459. package/contracts/oracle/IOracleService.sol +66 -0
  460. package/contracts/oracle/Oracle.sol +154 -0
  461. package/contracts/oracle/OracleService.sol +310 -0
  462. package/contracts/oracle/OracleServiceManager.sol +39 -0
  463. package/contracts/pool/BasicPool.sol +162 -0
  464. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  465. package/contracts/pool/BundleService.sol +386 -0
  466. package/contracts/pool/BundleServiceManager.sol +39 -0
  467. package/contracts/pool/IBundleService.sol +116 -0
  468. package/contracts/pool/IPoolComponent.sol +62 -0
  469. package/contracts/pool/IPoolService.sol +170 -0
  470. package/contracts/pool/Pool.sol +333 -0
  471. package/contracts/pool/PoolLib.sol +341 -0
  472. package/contracts/pool/PoolService.sol +614 -0
  473. package/contracts/pool/PoolServiceManager.sol +39 -0
  474. package/contracts/product/ApplicationService.sol +327 -0
  475. package/contracts/product/ApplicationServiceManager.sol +38 -0
  476. package/contracts/product/BasicProduct.sol +49 -0
  477. package/contracts/product/BasicProductAuthorization.sol +64 -0
  478. package/contracts/product/ClaimService.sol +626 -0
  479. package/contracts/product/ClaimServiceManager.sol +38 -0
  480. package/contracts/product/IApplicationService.sol +88 -0
  481. package/contracts/product/IClaimService.sol +136 -0
  482. package/contracts/product/IPolicyService.sol +102 -0
  483. package/contracts/product/IPricingService.sol +40 -0
  484. package/contracts/product/IProductComponent.sol +62 -0
  485. package/contracts/product/IRiskService.sol +48 -0
  486. package/contracts/product/PolicyService.sol +645 -0
  487. package/contracts/product/PolicyServiceLib.sol +139 -0
  488. package/contracts/product/PolicyServiceManager.sol +39 -0
  489. package/contracts/product/PricingService.sol +306 -0
  490. package/contracts/product/PricingServiceManager.sol +39 -0
  491. package/contracts/product/Product.sol +493 -0
  492. package/contracts/product/RiskService.sol +190 -0
  493. package/contracts/product/RiskServiceManager.sol +39 -0
  494. package/contracts/registry/ChainNft.sol +175 -61
  495. package/contracts/registry/IRegistry.sol +143 -51
  496. package/contracts/registry/IRegistryService.sol +62 -0
  497. package/contracts/registry/IRelease.sol +29 -0
  498. package/contracts/registry/ITransferInterceptor.sol +6 -0
  499. package/contracts/registry/Registry.sol +667 -140
  500. package/contracts/registry/RegistryAdmin.sol +191 -0
  501. package/contracts/registry/RegistryAuthorization.sol +336 -0
  502. package/contracts/registry/RegistryService.sol +241 -0
  503. package/contracts/registry/RegistryServiceManager.sol +53 -0
  504. package/contracts/registry/ReleaseAdmin.sol +195 -0
  505. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  506. package/contracts/registry/ReleaseRegistry.sol +525 -0
  507. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  508. package/contracts/registry/TokenRegistry.sol +317 -0
  509. package/contracts/shared/Component.sol +214 -0
  510. package/contracts/shared/ComponentService.sol +687 -0
  511. package/contracts/shared/ComponentServiceManager.sol +38 -0
  512. package/contracts/shared/ContractLib.sol +312 -0
  513. package/contracts/shared/IComponent.sol +58 -0
  514. package/contracts/shared/IComponentService.sol +111 -0
  515. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  516. package/contracts/shared/IKeyValueStore.sol +62 -0
  517. package/contracts/shared/ILifecycle.sol +31 -0
  518. package/contracts/shared/INftOwnable.sol +27 -0
  519. package/contracts/shared/IPolicyHolder.sol +35 -0
  520. package/contracts/shared/IRegisterable.sol +36 -0
  521. package/contracts/shared/IRegistryLinked.sol +11 -0
  522. package/contracts/shared/IService.sol +23 -0
  523. package/contracts/shared/InitializableERC165.sol +35 -0
  524. package/contracts/shared/InstanceLinkedComponent.sol +234 -0
  525. package/contracts/shared/KeyValueStore.sol +131 -0
  526. package/contracts/shared/Lifecycle.sol +88 -0
  527. package/contracts/shared/NftIdSet.sol +65 -0
  528. package/contracts/shared/NftOwnable.sol +129 -0
  529. package/contracts/shared/PolicyHolder.sol +63 -0
  530. package/contracts/shared/Registerable.sol +106 -0
  531. package/contracts/shared/RegistryLinked.sol +38 -0
  532. package/contracts/shared/Service.sol +67 -0
  533. package/contracts/shared/TokenHandler.sol +342 -0
  534. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  535. package/contracts/staking/IStaking.sol +367 -0
  536. package/contracts/staking/IStakingService.sol +127 -0
  537. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  538. package/contracts/staking/Staking.sol +798 -0
  539. package/contracts/staking/StakingLib.sol +195 -0
  540. package/contracts/staking/StakingManager.sol +53 -0
  541. package/contracts/staking/StakingReader.sol +171 -0
  542. package/contracts/staking/StakingService.sol +321 -0
  543. package/contracts/staking/StakingServiceManager.sol +46 -0
  544. package/contracts/staking/StakingStore.sol +1368 -0
  545. package/contracts/staking/TargetHandler.sol +132 -0
  546. package/contracts/staking/TargetManagerLib.sol +234 -0
  547. package/contracts/type/AddressSet.sol +58 -0
  548. package/contracts/type/Amount.sol +154 -0
  549. package/contracts/{types → type}/Blocknumber.sol +36 -12
  550. package/contracts/type/ChainId.sol +101 -0
  551. package/contracts/type/ClaimId.sol +80 -0
  552. package/contracts/type/DistributorType.sol +55 -0
  553. package/contracts/type/Fee.sol +66 -0
  554. package/contracts/type/Key32.sol +50 -0
  555. package/contracts/type/Key32Set.sol +62 -0
  556. package/contracts/type/NftId.sol +85 -0
  557. package/contracts/type/NftIdSet.sol +62 -0
  558. package/contracts/type/ObjectType.sol +278 -0
  559. package/contracts/type/PayoutId.sol +82 -0
  560. package/contracts/type/Referral.sol +96 -0
  561. package/contracts/type/RequestId.sol +75 -0
  562. package/contracts/type/RequestIdSet.sol +62 -0
  563. package/contracts/type/RiskId.sol +75 -0
  564. package/contracts/type/RoleId.sol +180 -0
  565. package/contracts/type/Seconds.sol +124 -0
  566. package/contracts/type/Selector.sol +107 -0
  567. package/contracts/type/StateId.sol +149 -0
  568. package/contracts/type/String.sol +95 -0
  569. package/contracts/{types → type}/Timestamp.sol +62 -12
  570. package/contracts/{types → type}/UFixed.sol +97 -39
  571. package/contracts/type/Version.sol +159 -0
  572. package/contracts/upgradeability/IVersionable.sol +56 -0
  573. package/contracts/upgradeability/ProxyManager.sol +246 -0
  574. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  575. package/contracts/upgradeability/Versionable.sol +62 -0
  576. package/package.json +22 -7
  577. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  578. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  579. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  580. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  581. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  582. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  583. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  584. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  585. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  586. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  587. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  588. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  589. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  590. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  591. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  592. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  593. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  594. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  595. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  596. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  597. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  598. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  599. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  600. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  601. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  602. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  603. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  604. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  605. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  606. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  607. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  608. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  609. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  610. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  611. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  612. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  613. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  614. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  615. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  616. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  617. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  618. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  619. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  620. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  621. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  622. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  623. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  624. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  625. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  626. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  627. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  628. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  629. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  630. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  631. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  632. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  633. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  634. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  635. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  636. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  637. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  638. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  639. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  640. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  641. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  642. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  643. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  644. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  645. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  646. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  647. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  648. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  649. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  650. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  651. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  652. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  653. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  654. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  655. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  656. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  657. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  658. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  659. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  661. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  663. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  665. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  667. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  669. package/contracts/components/Component.sol +0 -60
  670. package/contracts/components/IPool.sol +0 -9
  671. package/contracts/components/IProduct.sol +0 -9
  672. package/contracts/components/Pool.sol +0 -22
  673. package/contracts/components/Product.sol +0 -55
  674. package/contracts/experiment/errors/Require.sol +0 -38
  675. package/contracts/experiment/errors/Revert.sol +0 -44
  676. package/contracts/experiment/inheritance/A.sol +0 -53
  677. package/contracts/experiment/inheritance/B.sol +0 -28
  678. package/contracts/experiment/inheritance/C.sol +0 -34
  679. package/contracts/experiment/inheritance/IA.sol +0 -13
  680. package/contracts/experiment/inheritance/IB.sol +0 -10
  681. package/contracts/experiment/inheritance/IC.sol +0 -12
  682. package/contracts/experiment/types/TypeA.sol +0 -47
  683. package/contracts/experiment/types/TypeB.sol +0 -29
  684. package/contracts/instance/access/Access.sol +0 -165
  685. package/contracts/instance/access/IAccess.sol +0 -63
  686. package/contracts/instance/component/ComponentModule.sol +0 -213
  687. package/contracts/instance/component/IComponent.sol +0 -73
  688. package/contracts/instance/policy/IPolicy.sol +0 -51
  689. package/contracts/instance/policy/PolicyModule.sol +0 -91
  690. package/contracts/instance/pool/IPoolModule.sol +0 -29
  691. package/contracts/instance/pool/PoolModule.sol +0 -73
  692. package/contracts/instance/product/IProductService.sol +0 -36
  693. package/contracts/instance/product/ProductService.sol +0 -112
  694. package/contracts/registry/IChainNft.sol +0 -21
  695. package/contracts/types/ChainId.sol +0 -38
  696. package/contracts/types/NftId.sol +0 -51
@@ -1,6 +1,10 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
+ import {Seconds} from "./Seconds.sol";
5
+
6
+ /// @dev Target: Cover 10 years with 1 ms block time resolution.
7
+ /// Typical block time resolution is 1s.
4
8
  type Timestamp is uint40;
5
9
 
6
10
  using {
@@ -9,7 +13,18 @@ using {
9
13
  ltTimestamp as <,
10
14
  lteTimestamp as <=,
11
15
  eqTimestamp as ==,
12
- neTimestamp as !=
16
+ neTimestamp as !=,
17
+ TimestampLib.eq,
18
+ TimestampLib.ne,
19
+ TimestampLib.gt,
20
+ TimestampLib.gte,
21
+ TimestampLib.lt,
22
+ TimestampLib.lte,
23
+ TimestampLib.gtz,
24
+ TimestampLib.eqz,
25
+ TimestampLib.addSeconds,
26
+ TimestampLib.subtractSeconds,
27
+ TimestampLib.toInt
13
28
  } for Timestamp global;
14
29
 
15
30
  /// @dev return true if Timestamp a is after Timestamp b
@@ -42,21 +57,30 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
42
57
  return Timestamp.unwrap(a) != Timestamp.unwrap(b);
43
58
  }
44
59
 
45
- /// @dev Converts the uint256 to a Timestamp.
46
- function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
47
- return Timestamp.wrap(uint40(timestamp));
48
- }
49
-
50
- function blockTimestamp() view returns (Timestamp) {
51
- return toTimestamp(block.timestamp);
52
- }
53
-
60
+ // TODO move to TimestampLib and rename to zero()
54
61
  /// @dev Return the Timestamp zero (0)
55
62
  function zeroTimestamp() pure returns (Timestamp) {
56
- return toTimestamp(0);
63
+ return Timestamp.wrap(0);
57
64
  }
58
65
 
59
66
  library TimestampLib {
67
+
68
+ function zero() public pure returns (Timestamp) {
69
+ return Timestamp.wrap(0);
70
+ }
71
+
72
+ function max() public pure returns (Timestamp) {
73
+ return Timestamp.wrap(type(uint40).max);
74
+ }
75
+
76
+ function current() public view returns (Timestamp) {
77
+ return Timestamp.wrap(uint40(block.timestamp));
78
+ }
79
+
80
+ function toTimestamp(uint256 timestamp) public pure returns (Timestamp) {
81
+ return Timestamp.wrap(uint40(timestamp));
82
+ }
83
+
60
84
  /// @dev return true if Timestamp a is after Timestamp b
61
85
  function gt(Timestamp a, Timestamp b) public pure returns (bool isAfter) {
62
86
  return gtTimestamp(a, b);
@@ -96,6 +120,32 @@ library TimestampLib {
96
120
  return neTimestamp(a, b);
97
121
  }
98
122
 
123
+ /// @dev return true if Timestamp equals 0
124
+ function eqz(Timestamp timestamp) public pure returns (bool) {
125
+ return Timestamp.unwrap(timestamp) == 0;
126
+ }
127
+
128
+ /// @dev return true if Timestamp is larger than 0
129
+ function gtz(Timestamp timestamp) public pure returns (bool) {
130
+ return Timestamp.unwrap(timestamp) > 0;
131
+ }
132
+
133
+ /// @dev return a new timestamp that is duration seconds later than the provided timestamp.
134
+ function addSeconds(
135
+ Timestamp timestamp,
136
+ Seconds duration
137
+ ) public pure returns (Timestamp) {
138
+ return toTimestamp(Timestamp.unwrap(timestamp) + duration.toInt());
139
+ }
140
+
141
+ /// @dev return a new timestamp that is duration seconds earlier than the provided timestamp.
142
+ function subtractSeconds(
143
+ Timestamp timestamp,
144
+ Seconds duration
145
+ ) public pure returns (Timestamp) {
146
+ return toTimestamp(Timestamp.unwrap(timestamp) - duration.toInt());
147
+ }
148
+
99
149
  function toInt(Timestamp timestamp) public pure returns (uint256) {
100
150
  return uint256(uint40(Timestamp.unwrap(timestamp)));
101
151
  }
@@ -1,10 +1,10 @@
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 {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
5
5
 
6
- /// @dev UFixed is a fixed point number with 18 decimals precision.
7
- type UFixed is uint256;
6
+ /// @dev UFixed is a 160-bit fixed point number with 15 decimals precision.
7
+ type UFixed is uint160;
8
8
 
9
9
  using {
10
10
  addUFixed as +,
@@ -15,28 +15,43 @@ using {
15
15
  gteUFixed as >=,
16
16
  ltUFixed as <,
17
17
  lteUFixed as <=,
18
- eqUFixed as ==
18
+ eqUFixed as ==,
19
+ neUFixed as !=,
20
+ UFixedLib.gt,
21
+ UFixedLib.eqz,
22
+ UFixedLib.gtz,
23
+ UFixedLib.toInt,
24
+ UFixedLib.toInt1000
19
25
  } for UFixed global;
20
26
 
27
+ // TODO move to UFixedLib and rename to zero()
28
+ function zeroUFixed() pure returns (UFixed zero) {
29
+ return UFixed.wrap(0);
30
+ }
31
+
21
32
  function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
22
33
  return UFixed.wrap(UFixed.unwrap(a) + UFixed.unwrap(b));
23
34
  }
24
35
 
25
36
  function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
26
- require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
37
+ if (a < b) {
38
+ revert UFixedLib.UFixedLibNegativeResult();
39
+ }
27
40
  return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
28
41
  }
29
42
 
30
43
  function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
31
44
  return
32
- UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 18));
45
+ UFixed.wrap(uint160(Math.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 15)));
33
46
  }
34
47
 
35
48
  function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
36
- require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
37
-
49
+ if (UFixed.unwrap(b) == 0) {
50
+ revert UFixedLib.UFixedLibDivisionByZero();
51
+ }
52
+
38
53
  return
39
- UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
54
+ UFixed.wrap(uint160(Math.mulDiv(UFixed.unwrap(a), 10 ** 15, UFixed.unwrap(b))));
40
55
  }
41
56
 
42
57
  function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
@@ -59,6 +74,10 @@ function eqUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
59
74
  return UFixed.unwrap(a) == UFixed.unwrap(b);
60
75
  }
61
76
 
77
+ function neUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
78
+ return UFixed.unwrap(a) != UFixed.unwrap(b);
79
+ }
80
+
62
81
  function gtzUFixed(UFixed a) pure returns (bool isZero) {
63
82
  return UFixed.unwrap(a) > 0;
64
83
  }
@@ -75,67 +94,98 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
75
94
  return b - a;
76
95
  }
77
96
 
78
- library UFixedMathLib {
79
- enum Rounding {
80
- /// @dev Round down - floor(value)
81
- Down,
82
- /// @dev Round up - ceil(value)
83
- Up,
84
- /// @dev Round half up - round(value)
85
- HalfUp
86
- }
97
+ library UFixedLib {
98
+ error UFixedLibNegativeResult();
99
+ error UFixedLibDivisionByZero();
100
+
101
+ error UFixedLibExponentTooSmall(int8 exp);
102
+ error UFixedLibExponentTooLarge(int8 exp);
87
103
 
88
- int8 public constant EXP = 18;
104
+ error UFixedLibNumberTooLarge(uint256 number);
105
+
106
+ int8 public constant EXP = 15;
89
107
  uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
90
108
  uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
91
109
 
92
- /// @dev Default rounding mode used by ftoi is HalfUp
93
- Rounding public constant ROUNDING_DEFAULT = Rounding.HalfUp;
110
+ /// @dev returns the rounding mode DOWN - 0.4 becomes 0, 0.5 becomes 0, 0.6 becomes 0
111
+ function ROUNDING_DOWN() public pure returns (uint8) {
112
+ return uint8(0);
113
+ }
94
114
 
95
- /// @dev returns the decimals precision of the UFixed type
96
- function decimals() public pure returns (uint256) {
97
- return uint8(EXP);
115
+ /// @dev returns the rounding mode UP - 0.4 becomes 1, 0.5 becomes 1, 0.6 becomes 1
116
+ function ROUNDING_UP() public pure returns (uint8) {
117
+ return uint8(1);
118
+ }
119
+
120
+ /// @dev returns the rounding mode HALF_UP - 0.4 becomes 0, 0.5 becomes 1, 0.6 becomes 1
121
+ function ROUNDING_HALF_UP() public pure returns (uint8) {
122
+ return uint8(2);
98
123
  }
99
124
 
100
- /// @dev Converts the uint256 to a UFixed.
101
- function itof(uint256 a) public pure returns (UFixed) {
102
- return UFixed.wrap(a * MULTIPLIER);
125
+ /// @dev Converts the uint256 to a uint160 based UFixed.
126
+ /// This method reverts if the number is too large to fit in a uint160.
127
+ function toUFixed(uint256 a) public pure returns (UFixed) {
128
+ uint256 n = a * MULTIPLIER;
129
+ if (n > type(uint160).max) {
130
+ revert UFixedLibNumberTooLarge(a);
131
+ }
132
+ return UFixed.wrap(uint160(n));
103
133
  }
104
134
 
105
135
  /// @dev Converts the uint256 to a UFixed with given exponent.
106
- function itof(uint256 a, int8 exp) public pure returns (UFixed) {
107
- require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
108
- require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
136
+ function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
137
+ if (EXP + exp < 0) {
138
+ revert UFixedLibExponentTooSmall(exp);
139
+ }
140
+ if (EXP + exp > 48) {
141
+ revert UFixedLibExponentTooLarge(exp);
142
+ }
143
+
144
+ uint256 n = a * 10 ** uint8(EXP + exp);
145
+
146
+ if (n > type(uint160).max) {
147
+ revert UFixedLibNumberTooLarge(n);
148
+ }
149
+
150
+ return UFixed.wrap(uint160(n));
151
+ }
152
+
153
+ /// @dev returns the decimals precision of the UFixed type
154
+ function decimals() public pure returns (uint256) {
155
+ return uint8(EXP);
156
+ }
109
157
 
110
- return UFixed.wrap(a * 10 ** uint8(EXP + exp));
158
+ /// @dev Converts a UFixed to a uint256.
159
+ function toInt(UFixed a) public pure returns (uint256) {
160
+ return toIntWithRounding(a, ROUNDING_HALF_UP());
111
161
  }
112
162
 
113
163
  /// @dev Converts a UFixed to a uint256.
114
- function ftoi(UFixed a) public pure returns (uint256) {
115
- return ftoi(a, ROUNDING_DEFAULT);
164
+ function toInt1000(UFixed a) public pure returns (uint256) {
165
+ return toIntWithRounding(toUFixed(1000) * a, ROUNDING_HALF_UP());
116
166
  }
117
167
 
118
168
  /// @dev Converts a UFixed to a uint256 with given rounding mode.
119
- function ftoi(UFixed a, Rounding rounding) public pure returns (uint256) {
120
- if (rounding == Rounding.HalfUp) {
169
+ function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
170
+ if (rounding == ROUNDING_HALF_UP()) {
121
171
  return
122
172
  Math.mulDiv(
123
173
  UFixed.unwrap(a) + MULTIPLIER_HALF,
124
174
  1,
125
175
  MULTIPLIER,
126
- Math.Rounding.Down
176
+ Math.Rounding.Floor
127
177
  );
128
- } else if (rounding == Rounding.Down) {
178
+ } else if (rounding == ROUNDING_DOWN()) {
129
179
  return
130
180
  Math.mulDiv(
131
181
  UFixed.unwrap(a),
132
182
  1,
133
183
  MULTIPLIER,
134
- Math.Rounding.Down
184
+ Math.Rounding.Floor
135
185
  );
136
186
  } else {
137
187
  return
138
- Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Up);
188
+ Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Ceil);
139
189
  }
140
190
  }
141
191
 
@@ -198,6 +248,14 @@ library UFixedMathLib {
198
248
  return UFixed.wrap(0);
199
249
  }
200
250
 
251
+ function one() public pure returns (UFixed) {
252
+ return UFixed.wrap(uint160(MULTIPLIER));
253
+ }
254
+
255
+ function max() public pure returns (UFixed) {
256
+ return UFixed.wrap(type(uint160).max);
257
+ }
258
+
201
259
  /// @dev return the absolute delta between two UFixed numbers
202
260
  function delta(UFixed a, UFixed b) public pure returns (UFixed) {
203
261
  return deltaUFixed(a, b);
@@ -0,0 +1,159 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type VersionPart is uint8;
5
+
6
+ using {
7
+ versionPartGt as >,
8
+ versionPartEq as ==,
9
+ versionPartNe as !=,
10
+ VersionPartLib.eqz,
11
+ VersionPartLib.gtz,
12
+ VersionPartLib.toInt,
13
+ VersionPartLib.toString,
14
+ VersionPartLib.isValidRelease
15
+ }
16
+ for VersionPart global;
17
+
18
+ function versionPartGt(VersionPart a, VersionPart b) pure returns(bool isGreaterThan) { return VersionPart.unwrap(a) > VersionPart.unwrap(b); }
19
+ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) == VersionPart.unwrap(b); }
20
+ function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
21
+
22
+ library VersionPartLib {
23
+
24
+ error ErrorReleaseTooBig(VersionPart releaseMax, VersionPart release);
25
+
26
+ function releaseMin() public pure returns (VersionPart) { return toVersionPart(3); }
27
+ function releaseMax() public pure returns (VersionPart) { return toVersionPart(99); }
28
+
29
+ function isValidRelease(VersionPart release) external pure returns(bool) {
30
+ uint256 releaseInt = VersionPart.unwrap(release);
31
+ return 3 <= releaseInt && releaseInt <= 99;
32
+ }
33
+
34
+ function toString(VersionPart a) external pure returns (string memory) {
35
+ if (a > releaseMax()) {
36
+ revert ErrorReleaseTooBig(releaseMax(), a);
37
+ }
38
+
39
+ uint256 value = VersionPart.unwrap(a);
40
+ if (value == 0) {
41
+ return "0";
42
+ }
43
+
44
+ uint256 temp = value;
45
+ uint256 digits = 0;
46
+ while (temp != 0) {
47
+ digits++;
48
+ temp /= 10;
49
+ }
50
+
51
+ bytes memory buffer = new bytes(digits);
52
+ uint index = digits - 1;
53
+
54
+ temp = value;
55
+ while (temp != 0) {
56
+ buffer[index] = bytes1(uint8(48 + temp % 10));
57
+ temp /= 10;
58
+
59
+ if (index > 0) {
60
+ index--;
61
+ }
62
+ }
63
+
64
+ return string(buffer);
65
+ }
66
+
67
+ function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
68
+ function gtz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) > 0; }
69
+ function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
70
+ function toVersionPart(uint256 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
71
+ }
72
+
73
+ type Version is uint24; // contains major,minor,patch version parts
74
+
75
+ using {
76
+ versionGt as >,
77
+ versionEq as ==,
78
+ VersionLib.toInt,
79
+ VersionLib.toUint64,
80
+ VersionLib.toMajorPart,
81
+ VersionLib.toVersionParts
82
+ }
83
+ for Version global;
84
+
85
+ function versionGt(Version a, Version b) pure returns(bool isGreaterThan) { return Version.unwrap(a) > Version.unwrap(b); }
86
+ function versionEq(Version a, Version b) pure returns(bool isSame) { return Version.unwrap(a) == Version.unwrap(b); }
87
+
88
+ library VersionLib {
89
+
90
+ function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
91
+
92
+ function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
93
+
94
+ function toMajorPart(Version version)
95
+ external
96
+ pure
97
+ returns(VersionPart major)
98
+ {
99
+ uint24 versionInt = Version.unwrap(version);
100
+ uint8 majorInt = uint8(versionInt >> 16);
101
+ return VersionPart.wrap(majorInt);
102
+ }
103
+
104
+ function toVersionParts(Version version)
105
+ external
106
+ pure
107
+ returns(
108
+ VersionPart major,
109
+ VersionPart minor,
110
+ VersionPart patch
111
+ )
112
+ {
113
+ uint24 versionInt = Version.unwrap(version);
114
+ uint8 majorInt = uint8(versionInt >> 16);
115
+
116
+ versionInt -= majorInt << 16;
117
+ uint8 minorInt = uint8(versionInt >> 8);
118
+ uint8 patchInt = uint8(versionInt - (minorInt << 8));
119
+
120
+ return (
121
+ VersionPart.wrap(majorInt),
122
+ VersionPart.wrap(minorInt),
123
+ VersionPart.wrap(patchInt)
124
+ );
125
+ }
126
+
127
+ // function toVersionPart(uint256 versionPart) public pure returns(VersionPart) {
128
+ // return VersionPart.wrap(uint8(versionPart));
129
+ // }
130
+
131
+ function toVersion(
132
+ uint256 major,
133
+ uint256 minor,
134
+ uint256 patch
135
+ )
136
+ external
137
+ pure
138
+ returns(Version)
139
+ {
140
+ require(
141
+ major < 256 && minor < 256 && patch < 256,
142
+ "ERROR:VRS-010:VERSION_PART_TOO_BIG");
143
+
144
+ return Version.wrap(
145
+ uint24(
146
+ (major << 16) + (minor << 8) + patch));
147
+ }
148
+
149
+ // TODO check for overflow?
150
+ function toVersion(uint64 versionNumber) external pure returns(Version) {
151
+ //assert(versionNumber <= type(Version).max);
152
+ return Version.wrap(uint24(versionNumber));
153
+ }
154
+
155
+ // TODO rename to zero()
156
+ function zeroVersion() external pure returns(Version) {
157
+ return Version.wrap(0);
158
+ }
159
+ }
@@ -0,0 +1,56 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Version} from "../type/Version.sol";
5
+
6
+ /// IMPORTANT
7
+ // Upgradeable contract MUST:
8
+ // 1) inherit from Versionable
9
+ // 2) implement version() function
10
+ // 3) implement internal _initialize() function with onlyInitializing modifier
11
+ // 4) implement internal _upgrade() function with onlyInitializing modifier (1st version MUST revert)
12
+ // 5) have onlyInitialising modifier for each function callable inside _initialize()/_upgrade() (MUST use different functions for initialization/upgrade and normal operations)
13
+ // 6) use default empty constructor -> _disableInitializer() is called from Versionable contructor
14
+ // 7) use namespace storage (should this be needed)
15
+ // 8) since now inheritance is used for upgradability, contract MUST BE inherited ONLY by the next version
16
+ // Upgradeable contract SHOULD:
17
+ // 9) define all non private methods as virtual (in order to be able to upgrade them latter)
18
+ // otherwise, it is still possible to upgrade contract, but everyone who is using it will have to switch to a new fucntions
19
+ // in some cases this ok but not in the others...
20
+ //
21
+ // IMPORTANT
22
+ // If introducting/amending storage related to Versionable version MUST:
23
+ // 1) define namespace storage struct if accessing storage
24
+ // - DO NOT use structs inside, except
25
+ // - CAN use structs ONLY inside mappings
26
+ // 2) ALWAYS define private getter if accessing storage
27
+ // - MUST use default implementation, CAN change ONLY return type
28
+
29
+ interface IVersionable {
30
+
31
+ error ErrorVersionableInitializeNotImplemented();
32
+ error ErrorVersionableUpgradeNotImplemented();
33
+
34
+ /**
35
+ * @dev IMPORTANT
36
+ * implementation MUST be guarded by initializer modifier
37
+ * new version MUST inherit from previous version
38
+ */
39
+ function initializeVersionable(address activatedBy, bytes memory activationData) external;
40
+
41
+ /**
42
+ * @dev
43
+ * implementation MUST be guarded by reinitializer(version().toUint64()) modifier
44
+ * new version MUST inherit from previous version
45
+ * the first verion MUST revert
46
+ */
47
+ function upgradeVersionable(bytes memory upgradeData) external;
48
+
49
+ /**
50
+ * @dev returns version of this contract
51
+ * each new implementation MUST implement this function
52
+ * version number MUST increase
53
+ */
54
+ function getVersion() external pure returns(Version);
55
+
56
+ }