@etherisc/gif-next 0.0.2-efef0ea-320 → 0.0.2-f00a368-815

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