@etherisc/gif-next 0.0.2-c336201-668 → 0.0.2-c37b622-555

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 (826) hide show
  1. package/README.md +384 -20
  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/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 +1234 -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 +939 -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 +838 -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 +1474 -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 +2043 -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/FlightLib.sol/FlightLib.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +584 -1285
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  93. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1092 -0
  94. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  95. package/artifacts/contracts/instance/Instance.sol/Instance.json +675 -1534
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  97. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  101. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2621 -0
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  103. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1338 -0
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +772 -0
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  107. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  109. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  111. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  114. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  115. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  116. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  117. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  118. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  120. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  122. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  123. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  124. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  125. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  126. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  127. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  128. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  129. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  130. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  131. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  132. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  133. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  134. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  135. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  136. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  137. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  138. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  139. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -0
  140. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  141. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  142. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  143. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  144. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  145. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  146. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  147. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  148. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  149. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  150. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  152. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  153. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  154. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  155. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  156. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  157. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  158. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  160. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  161. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  162. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  163. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  164. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  165. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  166. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  167. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  168. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  169. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  170. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  171. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  172. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  173. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  174. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  175. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  176. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  178. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  179. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  180. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  181. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  182. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  183. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  184. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  186. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  187. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  188. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  189. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  190. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  191. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  192. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  193. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  194. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  195. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  196. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  197. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +665 -0
  198. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  199. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  200. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  201. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  202. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  203. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  204. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  205. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  206. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  207. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  208. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  209. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  210. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  211. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  212. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  213. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  214. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  215. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +242 -12
  216. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1035 -119
  218. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  219. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
  220. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/IInstanceLinked.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  222. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  223. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  224. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  225. package/artifacts/contracts/registry/Registry.sol/Registry.json +1473 -231
  226. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  227. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  228. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  229. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  230. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  231. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
  232. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  233. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +773 -0
  234. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  235. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  236. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  237. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  238. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  239. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  240. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  241. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  242. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  243. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  244. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  245. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  246. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  248. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  249. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  250. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  253. package/artifacts/contracts/shared/{IOwnable.sol/IOwnable.json → ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  254. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  255. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  256. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  257. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  258. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  259. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +620 -0
  260. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  261. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  262. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  263. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  264. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  265. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  266. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  267. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +62 -70
  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 +1 -1
  271. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +248 -21
  272. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  273. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  274. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  275. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +224 -160
  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 +785 -0
  280. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  281. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  282. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  283. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  284. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  285. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
  286. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  287. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  288. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  289. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +294 -18
  290. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  291. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  292. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  293. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → shared/Service.sol/Service.json} +239 -234
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  295. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  296. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  297. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  298. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  299. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  300. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  301. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  302. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  303. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  304. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  305. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  306. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  307. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  308. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  309. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  310. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  311. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  312. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  313. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  314. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  315. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  316. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  317. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  318. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  319. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  320. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  321. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  322. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  323. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  324. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  325. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  326. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  328. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  330. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  332. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  334. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  336. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  338. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  340. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  341. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  342. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  344. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  345. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  346. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +238 -0
  348. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  350. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  352. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  354. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  355. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  356. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  358. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  359. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  360. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  361. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  362. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  363. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  364. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  365. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  366. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  367. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  368. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  369. package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
  370. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  371. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  372. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  373. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  374. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  375. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  376. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  377. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  378. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  379. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  380. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  382. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  383. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  384. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  385. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  386. package/contracts/accounting/AccountingService.sol +274 -0
  387. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  388. package/contracts/accounting/IAccountingService.sol +47 -0
  389. package/contracts/authorization/AccessAdmin.sol +780 -0
  390. package/contracts/authorization/AccessAdminLib.sol +396 -0
  391. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  392. package/contracts/authorization/Authorization.sol +169 -0
  393. package/contracts/authorization/IAccess.sol +67 -0
  394. package/contracts/authorization/IAccessAdmin.sol +144 -0
  395. package/contracts/authorization/IAuthorization.sol +26 -0
  396. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  397. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  398. package/contracts/distribution/BasicDistribution.sol +140 -0
  399. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  400. package/contracts/distribution/Distribution.sol +245 -0
  401. package/contracts/distribution/DistributionService.sol +448 -0
  402. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  403. package/contracts/distribution/IDistributionComponent.sol +45 -0
  404. package/contracts/distribution/IDistributionService.sol +115 -0
  405. package/contracts/examples/fire/DamageLevel.sol +59 -0
  406. package/contracts/examples/fire/FirePool.sol +86 -0
  407. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  408. package/contracts/examples/fire/FireProduct.sol +433 -0
  409. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  410. package/contracts/examples/fire/FireUSD.sol +26 -0
  411. package/contracts/examples/flight/FlightLib.sol +279 -0
  412. package/contracts/examples/flight/FlightOracle.sol +167 -0
  413. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  414. package/contracts/examples/flight/FlightPool.sol +89 -0
  415. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  416. package/contracts/examples/flight/FlightProduct.sol +470 -0
  417. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  418. package/contracts/examples/flight/FlightUSD.sol +26 -0
  419. package/contracts/examples/flight/originalV1.sol +396 -0
  420. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  421. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  422. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  423. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  424. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  425. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  426. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  427. package/contracts/instance/BaseStore.sol +93 -0
  428. package/contracts/instance/BundleSet.sol +130 -0
  429. package/contracts/instance/IBaseStore.sol +37 -0
  430. package/contracts/instance/IInstance.sol +149 -45
  431. package/contracts/instance/IInstanceService.sol +119 -0
  432. package/contracts/instance/Instance.sol +337 -54
  433. package/contracts/instance/InstanceAdmin.sol +379 -0
  434. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  435. package/contracts/instance/InstanceReader.sol +634 -0
  436. package/contracts/instance/InstanceService.sol +514 -0
  437. package/contracts/instance/InstanceServiceManager.sol +39 -0
  438. package/contracts/instance/InstanceStore.sol +323 -0
  439. package/contracts/instance/ProductStore.sol +290 -0
  440. package/contracts/instance/RiskSet.sol +126 -0
  441. package/contracts/instance/TargetNames.sol +10 -0
  442. package/contracts/instance/base/BalanceStore.sol +121 -0
  443. package/contracts/instance/base/Cloneable.sol +28 -0
  444. package/contracts/instance/base/ObjectCounter.sol +20 -0
  445. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  446. package/contracts/instance/base/ObjectSet.sol +77 -0
  447. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  448. package/contracts/instance/module/IBundle.sol +21 -0
  449. package/contracts/instance/module/IComponents.sol +60 -0
  450. package/contracts/instance/module/IDistribution.sol +54 -0
  451. package/contracts/instance/module/IPolicy.sol +105 -0
  452. package/contracts/instance/module/IRisk.sol +16 -0
  453. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  454. package/contracts/oracle/BasicOracle.sol +44 -0
  455. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  456. package/contracts/oracle/IOracle.sol +41 -0
  457. package/contracts/oracle/IOracleComponent.sol +33 -0
  458. package/contracts/oracle/IOracleService.sol +66 -0
  459. package/contracts/oracle/Oracle.sol +152 -0
  460. package/contracts/oracle/OracleService.sol +310 -0
  461. package/contracts/oracle/OracleServiceManager.sol +39 -0
  462. package/contracts/pool/BasicPool.sol +161 -0
  463. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  464. package/contracts/pool/BundleService.sol +386 -0
  465. package/contracts/pool/BundleServiceManager.sol +39 -0
  466. package/contracts/pool/IBundleService.sol +116 -0
  467. package/contracts/pool/IPoolComponent.sol +62 -0
  468. package/contracts/pool/IPoolService.sol +170 -0
  469. package/contracts/pool/Pool.sol +331 -0
  470. package/contracts/pool/PoolLib.sol +341 -0
  471. package/contracts/pool/PoolService.sol +614 -0
  472. package/contracts/pool/PoolServiceManager.sol +39 -0
  473. package/contracts/product/ApplicationService.sol +327 -0
  474. package/contracts/product/ApplicationServiceManager.sol +38 -0
  475. package/contracts/product/BasicProduct.sol +48 -0
  476. package/contracts/product/BasicProductAuthorization.sol +64 -0
  477. package/contracts/product/ClaimService.sol +626 -0
  478. package/contracts/product/ClaimServiceManager.sol +38 -0
  479. package/contracts/product/IApplicationService.sol +88 -0
  480. package/contracts/product/IClaimService.sol +136 -0
  481. package/contracts/product/IPolicyService.sol +102 -0
  482. package/contracts/product/IPricingService.sol +40 -0
  483. package/contracts/product/IProductComponent.sol +62 -0
  484. package/contracts/product/IRiskService.sol +48 -0
  485. package/contracts/product/PolicyService.sol +645 -0
  486. package/contracts/product/PolicyServiceLib.sol +139 -0
  487. package/contracts/product/PolicyServiceManager.sol +39 -0
  488. package/contracts/product/PricingService.sol +306 -0
  489. package/contracts/product/PricingServiceManager.sol +39 -0
  490. package/contracts/product/Product.sol +491 -0
  491. package/contracts/product/RiskService.sol +189 -0
  492. package/contracts/product/RiskServiceManager.sol +39 -0
  493. package/contracts/registry/ChainNft.sol +130 -40
  494. package/contracts/registry/IRegistry.sol +144 -29
  495. package/contracts/registry/IRegistryService.sol +62 -0
  496. package/contracts/registry/IRelease.sol +29 -0
  497. package/contracts/registry/ITransferInterceptor.sol +6 -0
  498. package/contracts/registry/Registry.sol +637 -282
  499. package/contracts/registry/RegistryAdmin.sol +191 -0
  500. package/contracts/registry/RegistryAuthorization.sol +336 -0
  501. package/contracts/registry/RegistryService.sol +241 -0
  502. package/contracts/registry/RegistryServiceManager.sol +53 -0
  503. package/contracts/registry/ReleaseAdmin.sol +195 -0
  504. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  505. package/contracts/registry/ReleaseRegistry.sol +525 -0
  506. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  507. package/contracts/registry/TokenRegistry.sol +317 -0
  508. package/contracts/shared/Component.sol +210 -0
  509. package/contracts/shared/ComponentService.sol +691 -0
  510. package/contracts/shared/ComponentServiceManager.sol +38 -0
  511. package/contracts/shared/ContractLib.sol +312 -0
  512. package/contracts/shared/IComponent.sol +58 -0
  513. package/contracts/shared/IComponentService.sol +111 -0
  514. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  515. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  516. package/contracts/shared/INftOwnable.sol +27 -0
  517. package/contracts/shared/IPolicyHolder.sol +35 -0
  518. package/contracts/shared/IRegisterable.sol +31 -19
  519. package/contracts/shared/IRegistryLinked.sol +11 -0
  520. package/contracts/shared/IService.sol +23 -0
  521. package/contracts/shared/InitializableERC165.sol +35 -0
  522. package/contracts/shared/InstanceLinkedComponent.sol +232 -0
  523. package/contracts/shared/Lifecycle.sol +88 -0
  524. package/contracts/shared/NftIdSet.sol +65 -0
  525. package/contracts/shared/NftOwnable.sol +129 -0
  526. package/contracts/shared/PolicyHolder.sol +63 -0
  527. package/contracts/shared/Registerable.sol +80 -60
  528. package/contracts/shared/RegistryLinked.sol +38 -0
  529. package/contracts/shared/Service.sol +67 -0
  530. package/contracts/shared/TokenHandler.sol +342 -0
  531. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  532. package/contracts/staking/IStaking.sol +367 -0
  533. package/contracts/staking/IStakingService.sol +127 -0
  534. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  535. package/contracts/staking/Staking.sol +797 -0
  536. package/contracts/staking/StakingLib.sol +195 -0
  537. package/contracts/staking/StakingManager.sol +53 -0
  538. package/contracts/staking/StakingReader.sol +171 -0
  539. package/contracts/staking/StakingService.sol +321 -0
  540. package/contracts/staking/StakingServiceManager.sol +46 -0
  541. package/contracts/staking/StakingStore.sol +1368 -0
  542. package/contracts/staking/TargetHandler.sol +132 -0
  543. package/contracts/staking/TargetManagerLib.sol +234 -0
  544. package/contracts/{types → type}/AddressSet.sol +1 -1
  545. package/contracts/type/Amount.sol +154 -0
  546. package/contracts/{types → type}/Blocknumber.sol +36 -12
  547. package/contracts/type/ChainId.sol +101 -0
  548. package/contracts/type/ClaimId.sol +80 -0
  549. package/contracts/type/DistributorType.sol +55 -0
  550. package/contracts/type/Fee.sol +66 -0
  551. package/contracts/{types → type}/Key32.sol +10 -5
  552. package/contracts/type/Key32Set.sol +62 -0
  553. package/contracts/{types → type}/NftId.sol +28 -15
  554. package/contracts/type/NftIdSet.sol +62 -0
  555. package/contracts/type/ObjectType.sol +278 -0
  556. package/contracts/type/PayoutId.sol +82 -0
  557. package/contracts/type/Referral.sol +96 -0
  558. package/contracts/type/RequestId.sol +75 -0
  559. package/contracts/type/RequestIdSet.sol +62 -0
  560. package/contracts/type/RiskId.sol +75 -0
  561. package/contracts/type/RoleId.sol +180 -0
  562. package/contracts/type/Seconds.sol +124 -0
  563. package/contracts/type/Selector.sol +107 -0
  564. package/contracts/{types → type}/StateId.sol +53 -5
  565. package/contracts/type/String.sol +95 -0
  566. package/contracts/{types → type}/Timestamp.sol +48 -19
  567. package/contracts/{types → type}/UFixed.sol +73 -19
  568. package/contracts/type/Version.sol +159 -0
  569. package/contracts/upgradeability/IVersionable.sol +56 -0
  570. package/contracts/upgradeability/ProxyManager.sol +246 -0
  571. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  572. package/contracts/upgradeability/Versionable.sol +62 -0
  573. package/package.json +13 -8
  574. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  575. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  576. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  577. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  578. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  579. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  580. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  581. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  582. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
  583. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  584. package/artifacts/contracts/components/Product.sol/Product.json +0 -305
  585. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  586. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  587. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  588. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  589. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  590. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  591. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  592. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  593. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  594. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  595. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  596. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  597. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  598. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  599. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  600. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  601. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  602. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  603. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  604. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  605. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  606. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  607. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  608. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  609. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  610. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  611. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  612. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  613. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  614. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  615. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  616. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  617. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  618. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  619. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  620. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  621. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  622. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  623. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
  624. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  625. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +0 -511
  626. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  627. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  628. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  629. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  630. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +0 -326
  631. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  632. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -692
  633. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  634. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  635. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  636. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  637. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  638. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  639. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  640. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  641. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  642. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  643. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  644. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  645. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  646. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  647. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  648. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  649. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  650. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  651. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  652. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  653. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  654. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  655. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  656. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  657. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  658. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  659. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  660. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  661. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  662. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  663. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  664. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  665. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  666. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  667. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  668. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  669. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  670. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  671. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  672. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  673. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  674. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  675. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  676. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  677. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  678. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  679. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  680. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  681. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  682. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  683. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  684. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  685. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  686. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  687. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  688. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  689. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  690. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  691. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  692. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  693. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  694. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  695. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  696. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  697. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  698. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  699. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  700. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  701. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -164
  702. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  703. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -164
  704. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  705. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  706. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  707. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  708. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  709. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  710. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  711. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  712. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  713. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  714. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  715. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  716. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  717. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  718. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  719. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  720. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  721. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  722. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  723. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  724. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  725. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  726. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  727. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  728. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  729. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  730. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  731. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  732. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  733. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  734. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  735. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  736. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  737. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  738. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  739. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  740. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  741. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  742. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  743. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  744. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  745. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  746. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  747. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  748. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  749. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  750. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  751. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  752. package/contracts/components/BaseComponent.sol +0 -88
  753. package/contracts/components/IBaseComponent.sol +0 -19
  754. package/contracts/components/IPoolComponent.sol +0 -57
  755. package/contracts/components/IProductComponent.sol +0 -19
  756. package/contracts/components/Pool.sol +0 -174
  757. package/contracts/components/Product.sol +0 -117
  758. package/contracts/experiment/errors/Require.sol +0 -38
  759. package/contracts/experiment/errors/Revert.sol +0 -44
  760. package/contracts/experiment/inheritance/A.sol +0 -53
  761. package/contracts/experiment/inheritance/B.sol +0 -28
  762. package/contracts/experiment/inheritance/C.sol +0 -34
  763. package/contracts/experiment/inheritance/IA.sol +0 -13
  764. package/contracts/experiment/inheritance/IB.sol +0 -10
  765. package/contracts/experiment/inheritance/IC.sol +0 -12
  766. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  767. package/contracts/experiment/statemachine/ISM.sol +0 -25
  768. package/contracts/experiment/statemachine/README.md +0 -112
  769. package/contracts/experiment/statemachine/SM.sol +0 -57
  770. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  771. package/contracts/experiment/types/TypeA.sol +0 -47
  772. package/contracts/experiment/types/TypeB.sol +0 -29
  773. package/contracts/instance/IInstanceLinked.sol +0 -8
  774. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  775. package/contracts/instance/base/IInstanceBase.sol +0 -14
  776. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  777. package/contracts/instance/base/IService.sol +0 -15
  778. package/contracts/instance/base/InstanceBase.sol +0 -80
  779. package/contracts/instance/base/KeyValueStore.sol +0 -156
  780. package/contracts/instance/base/Lifecycle.sol +0 -95
  781. package/contracts/instance/base/ModuleBase.sol +0 -52
  782. package/contracts/instance/base/ServiceBase.sol +0 -37
  783. package/contracts/instance/module/access/Access.sol +0 -149
  784. package/contracts/instance/module/access/IAccess.sol +0 -53
  785. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  786. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  787. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  788. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  789. package/contracts/instance/module/component/ComponentModule.sol +0 -95
  790. package/contracts/instance/module/component/IComponent.sol +0 -53
  791. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  792. package/contracts/instance/module/policy/PolicyModule.sol +0 -76
  793. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  794. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  795. package/contracts/instance/module/risk/IRisk.sol +0 -10
  796. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  797. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  798. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  799. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  800. package/contracts/instance/service/ComponentOwnerService.sol +0 -170
  801. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  802. package/contracts/instance/service/IPoolService.sol +0 -30
  803. package/contracts/instance/service/IProductService.sol +0 -58
  804. package/contracts/instance/service/PoolService.sol +0 -123
  805. package/contracts/instance/service/ProductService.sol +0 -354
  806. package/contracts/registry/IChainNft.sol +0 -21
  807. package/contracts/registry/IRegistryLinked.sol +0 -8
  808. package/contracts/shared/ERC165.sol +0 -21
  809. package/contracts/shared/IOwnable.sol +0 -6
  810. package/contracts/shared/IVersionable.sol +0 -52
  811. package/contracts/shared/Versionable.sol +0 -89
  812. package/contracts/test/TestFee.sol +0 -25
  813. package/contracts/test/TestPool.sol +0 -22
  814. package/contracts/test/TestProduct.sol +0 -44
  815. package/contracts/test/TestRegisterable.sol +0 -19
  816. package/contracts/test/TestRoleId.sol +0 -14
  817. package/contracts/test/TestService.sol +0 -32
  818. package/contracts/test/TestToken.sol +0 -26
  819. package/contracts/test/TestVersion.sol +0 -44
  820. package/contracts/test/TestVersionable.sol +0 -17
  821. package/contracts/types/ChainId.sol +0 -38
  822. package/contracts/types/Fee.sol +0 -51
  823. package/contracts/types/NftIdSet.sol +0 -60
  824. package/contracts/types/ObjectType.sol +0 -115
  825. package/contracts/types/RoleId.sol +0 -38
  826. package/contracts/types/Version.sol +0 -95
@@ -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 {
@@ -10,9 +14,17 @@ using {
10
14
  lteTimestamp as <=,
11
15
  eqTimestamp as ==,
12
16
  neTimestamp as !=,
17
+ TimestampLib.eq,
18
+ TimestampLib.ne,
19
+ TimestampLib.gt,
20
+ TimestampLib.gte,
21
+ TimestampLib.lt,
22
+ TimestampLib.lte,
13
23
  TimestampLib.gtz,
14
24
  TimestampLib.eqz,
15
- TimestampLib.addSeconds
25
+ TimestampLib.addSeconds,
26
+ TimestampLib.subtractSeconds,
27
+ TimestampLib.toInt
16
28
  } for Timestamp global;
17
29
 
18
30
  /// @dev return true if Timestamp a is after Timestamp b
@@ -45,21 +57,30 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
45
57
  return Timestamp.unwrap(a) != Timestamp.unwrap(b);
46
58
  }
47
59
 
48
- /// @dev Converts the uint256 to a Timestamp.
49
- function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
50
- return Timestamp.wrap(uint40(timestamp));
51
- }
52
-
53
- function blockTimestamp() view returns (Timestamp) {
54
- return toTimestamp(block.timestamp);
55
- }
56
-
60
+ // TODO move to TimestampLib and rename to zero()
57
61
  /// @dev Return the Timestamp zero (0)
58
62
  function zeroTimestamp() pure returns (Timestamp) {
59
- return toTimestamp(0);
63
+ return Timestamp.wrap(0);
60
64
  }
61
65
 
62
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
+
63
84
  /// @dev return true if Timestamp a is after Timestamp b
64
85
  function gt(Timestamp a, Timestamp b) public pure returns (bool isAfter) {
65
86
  return gtTimestamp(a, b);
@@ -99,22 +120,30 @@ library TimestampLib {
99
120
  return neTimestamp(a, b);
100
121
  }
101
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
+
102
128
  /// @dev return true if Timestamp is larger than 0
103
129
  function gtz(Timestamp timestamp) public pure returns (bool) {
104
130
  return Timestamp.unwrap(timestamp) > 0;
105
131
  }
106
132
 
107
- /// @dev return true if Timestamp equals 0
108
- function eqz(Timestamp timestamp) public pure returns (bool) {
109
- return Timestamp.unwrap(timestamp) == 0;
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());
110
139
  }
111
140
 
112
- /// @dev return true if Timestamp a is not equal to Timestamp b
113
- function addSeconds(
141
+ /// @dev return a new timestamp that is duration seconds earlier than the provided timestamp.
142
+ function subtractSeconds(
114
143
  Timestamp timestamp,
115
- uint256 timeDelta
144
+ Seconds duration
116
145
  ) public pure returns (Timestamp) {
117
- return toTimestamp(Timestamp.unwrap(timestamp) + uint40(timeDelta));
146
+ return toTimestamp(Timestamp.unwrap(timestamp) - duration.toInt());
118
147
  }
119
148
 
120
149
  function toInt(Timestamp timestamp) public pure returns (uint256) {
@@ -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 +,
@@ -16,28 +16,42 @@ using {
16
16
  ltUFixed as <,
17
17
  lteUFixed as <=,
18
18
  eqUFixed as ==,
19
- UFixedMathLib.toInt
19
+ neUFixed as !=,
20
+ UFixedLib.gt,
21
+ UFixedLib.eqz,
22
+ UFixedLib.gtz,
23
+ UFixedLib.toInt,
24
+ UFixedLib.toInt1000
20
25
  } for UFixed global;
21
26
 
27
+ // TODO move to UFixedLib and rename to zero()
28
+ function zeroUFixed() pure returns (UFixed zero) {
29
+ return UFixed.wrap(0);
30
+ }
31
+
22
32
  function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
23
33
  return UFixed.wrap(UFixed.unwrap(a) + UFixed.unwrap(b));
24
34
  }
25
35
 
26
36
  function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
27
- require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
37
+ if (a < b) {
38
+ revert UFixedLib.UFixedLibNegativeResult();
39
+ }
28
40
  return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
29
41
  }
30
42
 
31
43
  function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
32
44
  return
33
- 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)));
34
46
  }
35
47
 
36
48
  function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
37
- require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
38
-
49
+ if (UFixed.unwrap(b) == 0) {
50
+ revert UFixedLib.UFixedLibDivisionByZero();
51
+ }
52
+
39
53
  return
40
- 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))));
41
55
  }
42
56
 
43
57
  function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
@@ -60,6 +74,10 @@ function eqUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
60
74
  return UFixed.unwrap(a) == UFixed.unwrap(b);
61
75
  }
62
76
 
77
+ function neUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
78
+ return UFixed.unwrap(a) != UFixed.unwrap(b);
79
+ }
80
+
63
81
  function gtzUFixed(UFixed a) pure returns (bool isZero) {
64
82
  return UFixed.unwrap(a) > 0;
65
83
  }
@@ -76,8 +94,16 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
76
94
  return b - a;
77
95
  }
78
96
 
79
- library UFixedMathLib {
80
- int8 public constant EXP = 18;
97
+ library UFixedLib {
98
+ error UFixedLibNegativeResult();
99
+ error UFixedLibDivisionByZero();
100
+
101
+ error UFixedLibExponentTooSmall(int8 exp);
102
+ error UFixedLibExponentTooLarge(int8 exp);
103
+
104
+ error UFixedLibNumberTooLarge(uint256 number);
105
+
106
+ int8 public constant EXP = 15;
81
107
  uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
82
108
  uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
83
109
 
@@ -96,17 +122,32 @@ library UFixedMathLib {
96
122
  return uint8(2);
97
123
  }
98
124
 
99
- /// @dev Converts the uint256 to a UFixed.
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.
100
127
  function toUFixed(uint256 a) public pure returns (UFixed) {
101
- return UFixed.wrap(a * MULTIPLIER);
128
+ uint256 n = a * MULTIPLIER;
129
+ if (n > type(uint160).max) {
130
+ revert UFixedLibNumberTooLarge(a);
131
+ }
132
+ return UFixed.wrap(uint160(n));
102
133
  }
103
134
 
104
135
  /// @dev Converts the uint256 to a UFixed with given exponent.
105
136
  function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
106
- require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
107
- require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
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
+ }
108
149
 
109
- return UFixed.wrap(a * 10 ** uint8(EXP + exp));
150
+ return UFixed.wrap(uint160(n));
110
151
  }
111
152
 
112
153
  /// @dev returns the decimals precision of the UFixed type
@@ -119,6 +160,11 @@ library UFixedMathLib {
119
160
  return toIntWithRounding(a, ROUNDING_HALF_UP());
120
161
  }
121
162
 
163
+ /// @dev Converts a UFixed to a uint256.
164
+ function toInt1000(UFixed a) public pure returns (uint256) {
165
+ return toIntWithRounding(toUFixed(1000) * a, ROUNDING_HALF_UP());
166
+ }
167
+
122
168
  /// @dev Converts a UFixed to a uint256 with given rounding mode.
123
169
  function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
124
170
  if (rounding == ROUNDING_HALF_UP()) {
@@ -127,7 +173,7 @@ library UFixedMathLib {
127
173
  UFixed.unwrap(a) + MULTIPLIER_HALF,
128
174
  1,
129
175
  MULTIPLIER,
130
- Math.Rounding.Down
176
+ Math.Rounding.Floor
131
177
  );
132
178
  } else if (rounding == ROUNDING_DOWN()) {
133
179
  return
@@ -135,11 +181,11 @@ library UFixedMathLib {
135
181
  UFixed.unwrap(a),
136
182
  1,
137
183
  MULTIPLIER,
138
- Math.Rounding.Down
184
+ Math.Rounding.Floor
139
185
  );
140
186
  } else {
141
187
  return
142
- Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Up);
188
+ Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Ceil);
143
189
  }
144
190
  }
145
191
 
@@ -202,6 +248,14 @@ library UFixedMathLib {
202
248
  return UFixed.wrap(0);
203
249
  }
204
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
+
205
259
  /// @dev return the absolute delta between two UFixed numbers
206
260
  function delta(UFixed a, UFixed b) public pure returns (UFixed) {
207
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
+ }