@etherisc/gif-next 0.0.2-719a8f1-103 → 0.0.2-71cf987-554

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 (764) hide show
  1. package/README.md +227 -17
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1304 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1325 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1055 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1048 -0
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1455 -0
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +929 -0
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +961 -0
  32. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  33. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  34. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  36. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  38. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  40. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  42. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  44. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  52. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  53. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +311 -1809
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +702 -0
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +466 -2208
  60. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1710 -0
  62. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2058 -0
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1003 -0
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +726 -0
  70. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -0
  72. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  74. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  76. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  78. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  80. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  82. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  83. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  84. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  86. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  87. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  90. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  92. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  93. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  94. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  95. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  96. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  98. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  100. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
  104. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  106. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
  120. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +960 -0
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
  124. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
  126. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  127. package/artifacts/contracts/pool/Pool.sol/Pool.json +1098 -0
  128. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  130. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
  132. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
  134. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
  136. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  138. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  140. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1431 -0
  142. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
  144. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  145. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +223 -351
  146. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  148. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +925 -0
  150. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  152. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1012 -0
  154. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → product/IRiskService.sol/IRiskService.json} +202 -153
  156. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
  158. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  160. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
  162. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
  164. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  165. package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
  166. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  168. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  170. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +103 -2
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +774 -165
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +539 -188
  176. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  178. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.json +967 -142
  180. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1799 -0
  182. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +580 -219
  184. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +365 -112
  186. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1696 -0
  188. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  190. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1301 -0
  192. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  194. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  196. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  197. package/artifacts/contracts/shared/Component.sol/Component.json +725 -0
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1768 -0
  200. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
  202. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +223 -205
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  206. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  208. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  209. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
  210. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
  212. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +122 -172
  214. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  216. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  217. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +82 -52
  218. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  219. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  220. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +94 -8
  222. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  223. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  224. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  225. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +168 -182
  226. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  229. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
  230. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  231. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  232. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  234. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  236. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +101 -24
  238. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  239. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  240. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +174 -12
  242. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  244. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  245. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +215 -166
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +469 -0
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  249. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  256. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  257. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  273. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  274. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  276. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  278. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  280. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  282. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  286. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  288. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  289. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  290. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  292. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  294. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  296. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  298. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  300. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  302. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  306. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  314. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  318. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  320. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  322. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  328. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  330. package/contracts/authorization/AccessAdmin.sol +601 -0
  331. package/contracts/authorization/AccessManagerCloneable.sol +80 -0
  332. package/contracts/authorization/Authorization.sol +289 -0
  333. package/contracts/authorization/IAccess.sol +49 -0
  334. package/contracts/authorization/IAccessAdmin.sol +136 -0
  335. package/contracts/authorization/IAuthorization.sol +60 -0
  336. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  337. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  338. package/contracts/distribution/BasicDistribution.sol +139 -0
  339. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  340. package/contracts/distribution/Distribution.sol +285 -0
  341. package/contracts/distribution/DistributionService.sol +355 -0
  342. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  343. package/contracts/distribution/IDistributionComponent.sol +52 -0
  344. package/contracts/distribution/IDistributionService.sol +101 -0
  345. package/contracts/examples/fire/DamageLevel.sol +59 -0
  346. package/contracts/examples/fire/FirePool.sol +73 -0
  347. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  348. package/contracts/examples/fire/FireProduct.sol +415 -0
  349. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  350. package/contracts/examples/fire/FireUSD.sol +26 -0
  351. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  352. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  353. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  354. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  355. package/contracts/instance/BundleSet.sol +126 -0
  356. package/contracts/instance/IInstance.sol +58 -46
  357. package/contracts/instance/IInstanceService.sol +72 -0
  358. package/contracts/instance/Instance.sol +217 -70
  359. package/contracts/instance/InstanceAdmin.sol +295 -0
  360. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  361. package/contracts/instance/InstanceReader.sol +495 -0
  362. package/contracts/instance/InstanceService.sol +412 -0
  363. package/contracts/instance/InstanceServiceManager.sol +39 -0
  364. package/contracts/instance/InstanceStore.sol +287 -0
  365. package/contracts/instance/base/BalanceStore.sol +123 -0
  366. package/contracts/instance/base/Cloneable.sol +28 -0
  367. package/contracts/instance/base/ObjectCounter.sol +21 -0
  368. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  369. package/contracts/instance/base/ObjectSet.sol +79 -0
  370. package/contracts/instance/module/IAccess.sol +46 -0
  371. package/contracts/instance/module/IBundle.sol +20 -0
  372. package/contracts/instance/module/IComponents.sol +51 -0
  373. package/contracts/instance/module/IDistribution.sol +41 -0
  374. package/contracts/instance/module/IPolicy.sol +84 -0
  375. package/contracts/instance/module/IRisk.sol +11 -0
  376. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  377. package/contracts/oracle/BasicOracle.sol +47 -0
  378. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  379. package/contracts/oracle/IOracle.sol +36 -0
  380. package/contracts/oracle/IOracleComponent.sol +33 -0
  381. package/contracts/oracle/IOracleService.sol +66 -0
  382. package/contracts/oracle/Oracle.sol +156 -0
  383. package/contracts/oracle/OracleService.sol +291 -0
  384. package/contracts/oracle/OracleServiceManager.sol +39 -0
  385. package/contracts/pool/BasicPool.sol +154 -0
  386. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  387. package/contracts/pool/BundleService.sol +493 -0
  388. package/contracts/pool/BundleServiceManager.sol +39 -0
  389. package/contracts/pool/IBundleService.sol +143 -0
  390. package/contracts/pool/IPoolComponent.sol +68 -0
  391. package/contracts/pool/IPoolService.sol +167 -0
  392. package/contracts/pool/Pool.sol +335 -0
  393. package/contracts/pool/PoolService.sol +544 -0
  394. package/contracts/pool/PoolServiceManager.sol +39 -0
  395. package/contracts/product/ApplicationService.sol +259 -0
  396. package/contracts/product/ApplicationServiceManager.sol +38 -0
  397. package/contracts/product/BasicProduct.sol +53 -0
  398. package/contracts/product/BasicProductAuthorization.sol +42 -0
  399. package/contracts/product/ClaimService.sol +612 -0
  400. package/contracts/product/ClaimServiceManager.sol +38 -0
  401. package/contracts/product/IApplicationService.sol +63 -0
  402. package/contracts/product/IClaimService.sol +123 -0
  403. package/contracts/product/IPolicyService.sol +80 -0
  404. package/contracts/product/IPricingService.sol +39 -0
  405. package/contracts/product/IProductComponent.sol +59 -0
  406. package/contracts/product/IRiskService.sol +33 -0
  407. package/contracts/product/PolicyService.sol +691 -0
  408. package/contracts/product/PolicyServiceManager.sol +39 -0
  409. package/contracts/product/PricingService.sol +300 -0
  410. package/contracts/product/PricingServiceManager.sol +39 -0
  411. package/contracts/product/Product.sol +455 -0
  412. package/contracts/product/RiskService.sol +96 -0
  413. package/contracts/product/RiskServiceManager.sol +39 -0
  414. package/contracts/registry/ChainNft.sol +95 -35
  415. package/contracts/registry/IRegistry.sol +139 -39
  416. package/contracts/registry/IRegistryService.sol +49 -16
  417. package/contracts/registry/ITransferInterceptor.sol +1 -1
  418. package/contracts/registry/Registry.sol +560 -333
  419. package/contracts/registry/RegistryAdmin.sol +333 -0
  420. package/contracts/registry/RegistryService.sol +144 -278
  421. package/contracts/registry/RegistryServiceManager.sol +28 -27
  422. package/contracts/registry/ReleaseAdmin.sol +248 -0
  423. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  424. package/contracts/registry/ReleaseRegistry.sol +505 -0
  425. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  426. package/contracts/registry/TokenRegistry.sol +315 -0
  427. package/contracts/shared/Component.sol +265 -0
  428. package/contracts/shared/ComponentService.sol +745 -0
  429. package/contracts/shared/ComponentServiceManager.sol +38 -0
  430. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  431. package/contracts/shared/ContractLib.sol +38 -0
  432. package/contracts/shared/IComponent.sol +74 -0
  433. package/contracts/shared/IComponentService.sol +120 -0
  434. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  435. package/contracts/shared/IKeyValueStore.sol +54 -0
  436. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  437. package/contracts/shared/INftOwnable.sol +25 -0
  438. package/contracts/shared/IPolicyHolder.sol +35 -0
  439. package/contracts/shared/IRegisterable.sol +16 -12
  440. package/contracts/shared/IRegistryLinked.sol +11 -0
  441. package/contracts/shared/IService.sol +25 -0
  442. package/contracts/shared/InitializableERC165.sol +27 -0
  443. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  444. package/contracts/shared/KeyValueStore.sol +131 -0
  445. package/contracts/shared/Lifecycle.sol +88 -0
  446. package/contracts/shared/NftIdSet.sol +65 -0
  447. package/contracts/shared/NftOwnable.sol +90 -50
  448. package/contracts/shared/PolicyHolder.sol +62 -0
  449. package/contracts/shared/Registerable.sol +38 -70
  450. package/contracts/shared/RegistryLinked.sol +44 -0
  451. package/contracts/shared/Service.sol +84 -0
  452. package/contracts/shared/TokenHandler.sol +139 -0
  453. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  454. package/contracts/staking/IStaking.sol +168 -0
  455. package/contracts/staking/IStakingService.sol +157 -0
  456. package/contracts/staking/StakeManagerLib.sol +224 -0
  457. package/contracts/staking/Staking.sol +497 -0
  458. package/contracts/staking/StakingLifecycle.sol +23 -0
  459. package/contracts/staking/StakingManager.sol +52 -0
  460. package/contracts/staking/StakingReader.sol +190 -0
  461. package/contracts/staking/StakingService.sol +407 -0
  462. package/contracts/staking/StakingServiceManager.sol +44 -0
  463. package/contracts/staking/StakingStore.sol +605 -0
  464. package/contracts/staking/TargetManagerLib.sol +211 -0
  465. package/contracts/{types → type}/AddressSet.sol +1 -1
  466. package/contracts/type/Amount.sol +150 -0
  467. package/contracts/{types → type}/Blocknumber.sol +27 -3
  468. package/contracts/type/ClaimId.sol +80 -0
  469. package/contracts/type/DistributorType.sol +55 -0
  470. package/contracts/type/Fee.sol +66 -0
  471. package/contracts/{types → type}/Key32.sol +8 -3
  472. package/contracts/{types → type}/NftId.sol +22 -15
  473. package/contracts/type/NftIdSet.sol +62 -0
  474. package/contracts/type/ObjectType.sol +276 -0
  475. package/contracts/type/PayoutId.sol +82 -0
  476. package/contracts/type/Referral.sol +90 -0
  477. package/contracts/type/RequestId.sol +75 -0
  478. package/contracts/{types → type}/RiskId.sol +16 -2
  479. package/contracts/type/RoleId.sol +165 -0
  480. package/contracts/type/Seconds.sol +101 -0
  481. package/contracts/type/Selector.sol +102 -0
  482. package/contracts/{types → type}/StateId.sol +53 -5
  483. package/contracts/type/String.sol +53 -0
  484. package/contracts/{types → type}/Timestamp.sol +38 -15
  485. package/contracts/type/UFixed.sol +355 -0
  486. package/contracts/{types → type}/Version.sol +8 -2
  487. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  488. package/contracts/upgradeability/ProxyManager.sol +232 -0
  489. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  490. package/contracts/upgradeability/Versionable.sol +59 -0
  491. package/package.json +12 -7
  492. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  494. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  495. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  496. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  497. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  498. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  499. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -177
  500. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  501. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -308
  502. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  503. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -207
  504. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  505. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  506. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  507. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  508. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  510. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  512. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  514. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  516. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  518. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  520. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  522. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  525. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  527. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  529. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  531. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  532. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  533. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  534. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  535. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  536. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  537. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  538. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  539. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  541. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  542. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  543. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  546. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -344
  550. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  553. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  555. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  557. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  559. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  562. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  563. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  564. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  565. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  567. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  568. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  570. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  572. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  573. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  574. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  575. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  576. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  577. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  578. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  579. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  580. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  581. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  582. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  583. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  584. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  585. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  586. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  587. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  588. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  589. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  590. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  591. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  592. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  593. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  594. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  595. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  596. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  597. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  598. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  599. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  600. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  601. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  602. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  603. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  604. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  605. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  608. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -484
  610. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  613. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  615. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  616. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  617. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  618. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  619. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  620. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  621. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  622. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  623. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  624. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  625. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  626. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -344
  627. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  628. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  629. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  630. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  631. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  632. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  633. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  634. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  635. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  636. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  637. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  638. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  639. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  640. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  641. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  643. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  645. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  646. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  647. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  648. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  649. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  650. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  651. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  652. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  653. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  654. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  655. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  657. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  659. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  661. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  662. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  663. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  665. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  666. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  667. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  669. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  671. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  673. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  675. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  677. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  679. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  681. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  683. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  685. package/contracts/components/BaseComponent.sol +0 -79
  686. package/contracts/components/Distribution.sol +0 -155
  687. package/contracts/components/IBaseComponent.sol +0 -19
  688. package/contracts/components/IDistributionComponent.sol +0 -46
  689. package/contracts/components/IPoolComponent.sol +0 -64
  690. package/contracts/components/IProductComponent.sol +0 -37
  691. package/contracts/components/Pool.sol +0 -246
  692. package/contracts/components/Product.sol +0 -299
  693. package/contracts/experiment/errors/Require.sol +0 -38
  694. package/contracts/experiment/errors/Revert.sol +0 -44
  695. package/contracts/experiment/inheritance/A.sol +0 -53
  696. package/contracts/experiment/inheritance/B.sol +0 -28
  697. package/contracts/experiment/inheritance/C.sol +0 -34
  698. package/contracts/experiment/inheritance/IA.sol +0 -13
  699. package/contracts/experiment/inheritance/IB.sol +0 -10
  700. package/contracts/experiment/inheritance/IC.sol +0 -12
  701. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  702. package/contracts/experiment/statemachine/ISM.sol +0 -25
  703. package/contracts/experiment/statemachine/SM.sol +0 -57
  704. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  705. package/contracts/experiment/types/TypeA.sol +0 -47
  706. package/contracts/experiment/types/TypeB.sol +0 -29
  707. package/contracts/instance/IInstanceLinked.sol +0 -8
  708. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  709. package/contracts/instance/base/IInstanceBase.sol +0 -23
  710. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  711. package/contracts/instance/base/IService.sol +0 -15
  712. package/contracts/instance/base/InstanceBase.sol +0 -89
  713. package/contracts/instance/base/KeyValueStore.sol +0 -161
  714. package/contracts/instance/base/Lifecycle.sol +0 -100
  715. package/contracts/instance/base/ModuleBase.sol +0 -57
  716. package/contracts/instance/base/ServiceBase.sol +0 -43
  717. package/contracts/instance/module/access/Access.sol +0 -149
  718. package/contracts/instance/module/access/IAccess.sol +0 -53
  719. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  720. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  721. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  722. package/contracts/instance/module/component/IComponent.sol +0 -28
  723. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  724. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  725. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  726. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  727. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  728. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  729. package/contracts/instance/module/risk/IRisk.sol +0 -26
  730. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  731. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  732. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  733. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  734. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  735. package/contracts/instance/service/DistributionService.sol +0 -54
  736. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  737. package/contracts/instance/service/IDistributionService.sol +0 -12
  738. package/contracts/instance/service/IPoolService.sol +0 -37
  739. package/contracts/instance/service/IProductService.sol +0 -107
  740. package/contracts/instance/service/PoolService.sol +0 -149
  741. package/contracts/instance/service/ProductService.sol +0 -510
  742. package/contracts/registry/IChainNft.sol +0 -22
  743. package/contracts/shared/ContractDeployerLib.sol +0 -72
  744. package/contracts/shared/ERC165.sol +0 -21
  745. package/contracts/shared/IOwnable.sol +0 -6
  746. package/contracts/shared/ProxyManager.sol +0 -103
  747. package/contracts/shared/Versionable.sol +0 -147
  748. package/contracts/test/TestDistribution.sol +0 -22
  749. package/contracts/test/TestFee.sol +0 -25
  750. package/contracts/test/TestPool.sol +0 -27
  751. package/contracts/test/TestProduct.sol +0 -74
  752. package/contracts/test/TestRegisterable.sol +0 -18
  753. package/contracts/test/TestRoleId.sol +0 -14
  754. package/contracts/test/TestService.sol +0 -26
  755. package/contracts/test/TestVersion.sol +0 -44
  756. package/contracts/test/TestVersionable.sol +0 -17
  757. package/contracts/test/Usdc.sol +0 -26
  758. package/contracts/types/ChainId.sol +0 -38
  759. package/contracts/types/Fee.sol +0 -56
  760. package/contracts/types/NftIdSet.sol +0 -60
  761. package/contracts/types/ObjectType.sol +0 -131
  762. package/contracts/types/ReferralId.sol +0 -48
  763. package/contracts/types/RoleId.sol +0 -38
  764. package/contracts/types/UFixed.sol +0 -209
@@ -0,0 +1,355 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ /// @dev UFixed is a fixed point number with 18 decimals precision.
5
+ type UFixed is uint256;
6
+
7
+ using {
8
+ addUFixed as +,
9
+ subUFixed as -,
10
+ mulUFixed as *,
11
+ divUFixed as /,
12
+ gtUFixed as >,
13
+ gteUFixed as >=,
14
+ ltUFixed as <,
15
+ lteUFixed as <=,
16
+ eqUFixed as ==,
17
+ neUFixed as !=,
18
+ UFixedLib.gt,
19
+ UFixedLib.gtz,
20
+ UFixedLib.toInt,
21
+ UFixedLib.toInt1000
22
+ } for UFixed global;
23
+
24
+ // TODO move to UFixedLib and rename to zero()
25
+ function zeroUFixed() pure returns (UFixed zero) {
26
+ return UFixed.wrap(0);
27
+ }
28
+
29
+ function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
30
+ return UFixed.wrap(UFixed.unwrap(a) + UFixed.unwrap(b));
31
+ }
32
+
33
+ function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
34
+ if (a < b) {
35
+ revert UFixedLib.UFixedLibNegativeResult();
36
+ }
37
+ return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
38
+ }
39
+
40
+ function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
41
+ return
42
+ UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 18));
43
+ }
44
+
45
+ function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
46
+ if (UFixed.unwrap(b) == 0) {
47
+ revert UFixedLib.UFixedLibDivisionByZero();
48
+ }
49
+
50
+ return
51
+ UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
52
+ }
53
+
54
+ function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
55
+ return UFixed.unwrap(a) > UFixed.unwrap(b);
56
+ }
57
+
58
+ function gteUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
59
+ return UFixed.unwrap(a) >= UFixed.unwrap(b);
60
+ }
61
+
62
+ function ltUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
63
+ return UFixed.unwrap(a) < UFixed.unwrap(b);
64
+ }
65
+
66
+ function lteUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
67
+ return UFixed.unwrap(a) <= UFixed.unwrap(b);
68
+ }
69
+
70
+ function eqUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
71
+ return UFixed.unwrap(a) == UFixed.unwrap(b);
72
+ }
73
+
74
+ function neUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
75
+ return UFixed.unwrap(a) != UFixed.unwrap(b);
76
+ }
77
+
78
+ function gtzUFixed(UFixed a) pure returns (bool isZero) {
79
+ return UFixed.unwrap(a) > 0;
80
+ }
81
+
82
+ function eqzUFixed(UFixed a) pure returns (bool isZero) {
83
+ return UFixed.unwrap(a) == 0;
84
+ }
85
+
86
+ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
87
+ if (a > b) {
88
+ return a - b;
89
+ }
90
+
91
+ return b - a;
92
+ }
93
+
94
+ /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
95
+ library MathLib {
96
+
97
+ error MathLigMulDivOverflow();
98
+
99
+ enum Rounding {
100
+ Down, // Toward negative infinity
101
+ Up, // Toward infinity
102
+ Zero // Toward zero
103
+ }
104
+
105
+ /**
106
+ * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
107
+ * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)
108
+ * with further edits by Uniswap Labs also under MIT license.
109
+ */
110
+ function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {
111
+ unchecked {
112
+ // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use
113
+ // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256
114
+ // variables such that product = prod1 * 2^256 + prod0.
115
+ uint256 prod0; // Least significant 256 bits of the product
116
+ uint256 prod1; // Most significant 256 bits of the product
117
+ assembly {
118
+ let mm := mulmod(x, y, not(0))
119
+ prod0 := mul(x, y)
120
+ prod1 := sub(sub(mm, prod0), lt(mm, prod0))
121
+ }
122
+
123
+ // Handle non-overflow cases, 256 by 256 division.
124
+ if (prod1 == 0) {
125
+ // Solidity will revert if denominator == 0, unlike the div opcode on its own.
126
+ // The surrounding unchecked block does not change this fact.
127
+ // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.
128
+ return prod0 / denominator;
129
+ }
130
+
131
+ // Make sure the result is less than 2^256. Also prevents denominator == 0.
132
+ if (denominator <= prod1) {
133
+ revert MathLigMulDivOverflow();
134
+ }
135
+
136
+ ///////////////////////////////////////////////
137
+ // 512 by 256 division.
138
+ ///////////////////////////////////////////////
139
+
140
+ // Make division exact by subtracting the remainder from [prod1 prod0].
141
+ uint256 remainder;
142
+ assembly {
143
+ // Compute remainder using mulmod.
144
+ remainder := mulmod(x, y, denominator)
145
+
146
+ // Subtract 256 bit number from 512 bit number.
147
+ prod1 := sub(prod1, gt(remainder, prod0))
148
+ prod0 := sub(prod0, remainder)
149
+ }
150
+
151
+ // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.
152
+ // See https://cs.stackexchange.com/q/138556/92363.
153
+
154
+ // Does not overflow because the denominator cannot be zero at this stage in the function.
155
+ uint256 twos = denominator & (~denominator + 1);
156
+ assembly {
157
+ // Divide denominator by twos.
158
+ denominator := div(denominator, twos)
159
+
160
+ // Divide [prod1 prod0] by twos.
161
+ prod0 := div(prod0, twos)
162
+
163
+ // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.
164
+ twos := add(div(sub(0, twos), twos), 1)
165
+ }
166
+
167
+ // Shift in bits from prod1 into prod0.
168
+ prod0 |= prod1 * twos;
169
+
170
+ // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such
171
+ // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for
172
+ // four bits. That is, denominator * inv = 1 mod 2^4.
173
+ uint256 inverse = (3 * denominator) ^ 2;
174
+
175
+ // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works
176
+ // in modular arithmetic, doubling the correct bits in each step.
177
+ inverse *= 2 - denominator * inverse; // inverse mod 2^8
178
+ inverse *= 2 - denominator * inverse; // inverse mod 2^16
179
+ inverse *= 2 - denominator * inverse; // inverse mod 2^32
180
+ inverse *= 2 - denominator * inverse; // inverse mod 2^64
181
+ inverse *= 2 - denominator * inverse; // inverse mod 2^128
182
+ inverse *= 2 - denominator * inverse; // inverse mod 2^256
183
+
184
+ // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.
185
+ // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is
186
+ // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1
187
+ // is no longer required.
188
+ result = prod0 * inverse;
189
+ return result;
190
+ }
191
+ }
192
+
193
+ /**
194
+ * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.
195
+ */
196
+ function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {
197
+ uint256 result = mulDiv(x, y, denominator);
198
+ if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {
199
+ result += 1;
200
+ }
201
+ return result;
202
+ }
203
+
204
+ }
205
+
206
+ library UFixedLib {
207
+ error UFixedLibNegativeResult();
208
+ error UFixedLibDivisionByZero();
209
+
210
+ error UFixedLibExponentTooSmall(int8 exp);
211
+ error UFixedLibExponentTooLarge(int8 exp);
212
+
213
+ int8 public constant EXP = 18;
214
+ uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
215
+ uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
216
+
217
+ /// @dev returns the rounding mode DOWN - 0.4 becomes 0, 0.5 becomes 0, 0.6 becomes 0
218
+ function ROUNDING_DOWN() public pure returns (uint8) {
219
+ return uint8(0);
220
+ }
221
+
222
+ /// @dev returns the rounding mode UP - 0.4 becomes 1, 0.5 becomes 1, 0.6 becomes 1
223
+ function ROUNDING_UP() public pure returns (uint8) {
224
+ return uint8(1);
225
+ }
226
+
227
+ /// @dev returns the rounding mode HALF_UP - 0.4 becomes 0, 0.5 becomes 1, 0.6 becomes 1
228
+ function ROUNDING_HALF_UP() public pure returns (uint8) {
229
+ return uint8(2);
230
+ }
231
+
232
+ /// @dev Converts the uint256 to a UFixed.
233
+ function toUFixed(uint256 a) public pure returns (UFixed) {
234
+ return UFixed.wrap(a * MULTIPLIER);
235
+ }
236
+
237
+ /// @dev Converts the uint256 to a UFixed with given exponent.
238
+ function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
239
+ if (EXP + exp < 0) {
240
+ revert UFixedLibExponentTooSmall(exp);
241
+ }
242
+ if (EXP + exp > 64) {
243
+ revert UFixedLibExponentTooLarge(exp);
244
+ }
245
+
246
+ return UFixed.wrap(a * 10 ** uint8(EXP + exp));
247
+ }
248
+
249
+ /// @dev returns the decimals precision of the UFixed type
250
+ function decimals() public pure returns (uint256) {
251
+ return uint8(EXP);
252
+ }
253
+
254
+ /// @dev Converts a UFixed to a uint256.
255
+ function toInt(UFixed a) public pure returns (uint256) {
256
+ return toIntWithRounding(a, ROUNDING_HALF_UP());
257
+ }
258
+
259
+ /// @dev Converts a UFixed to a uint256.
260
+ function toInt1000(UFixed a) public pure returns (uint256) {
261
+ return toIntWithRounding(toUFixed(1000) * a, ROUNDING_HALF_UP());
262
+ }
263
+
264
+ /// @dev Converts a UFixed to a uint256 with given rounding mode.
265
+ function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
266
+ if (rounding == ROUNDING_HALF_UP()) {
267
+ return
268
+ MathLib.mulDiv(
269
+ UFixed.unwrap(a) + MULTIPLIER_HALF,
270
+ 1,
271
+ MULTIPLIER,
272
+ MathLib.Rounding.Down
273
+ );
274
+ } else if (rounding == ROUNDING_DOWN()) {
275
+ return
276
+ MathLib.mulDiv(
277
+ UFixed.unwrap(a),
278
+ 1,
279
+ MULTIPLIER,
280
+ MathLib.Rounding.Down
281
+ );
282
+ } else {
283
+ return
284
+ MathLib.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, MathLib.Rounding.Up);
285
+ }
286
+ }
287
+
288
+ /// @dev adds two UFixed numbers
289
+ function add(UFixed a, UFixed b) public pure returns (UFixed) {
290
+ return addUFixed(a, b);
291
+ }
292
+
293
+ /// @dev subtracts two UFixed numbers
294
+ function sub(UFixed a, UFixed b) public pure returns (UFixed) {
295
+ return subUFixed(a, b);
296
+ }
297
+
298
+ /// @dev multiplies two UFixed numbers
299
+ function mul(UFixed a, UFixed b) public pure returns (UFixed) {
300
+ return mulUFixed(a, b);
301
+ }
302
+
303
+ /// @dev divides two UFixed numbers
304
+ function div(UFixed a, UFixed b) public pure returns (UFixed) {
305
+ return divUFixed(a, b);
306
+ }
307
+
308
+ /// @dev return true if UFixed a is greater than UFixed b
309
+ function gt(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
310
+ return gtUFixed(a, b);
311
+ }
312
+
313
+ /// @dev return true if UFixed a is greater than or equal to UFixed b
314
+ function gte(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
315
+ return gteUFixed(a, b);
316
+ }
317
+
318
+ /// @dev return true if UFixed a is less than UFixed b
319
+ function lt(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
320
+ return ltUFixed(a, b);
321
+ }
322
+
323
+ /// @dev return true if UFixed a is less than or equal to UFixed b
324
+ function lte(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
325
+ return lteUFixed(a, b);
326
+ }
327
+
328
+ /// @dev return true if UFixed a is equal to UFixed b
329
+ function eq(UFixed a, UFixed b) public pure returns (bool isEqual) {
330
+ return eqUFixed(a, b);
331
+ }
332
+
333
+ /// @dev return true if UFixed a is not zero
334
+ function gtz(UFixed a) public pure returns (bool isZero) {
335
+ return gtzUFixed(a);
336
+ }
337
+
338
+ /// @dev return true if UFixed a is zero
339
+ function eqz(UFixed a) public pure returns (bool isZero) {
340
+ return eqzUFixed(a);
341
+ }
342
+
343
+ function zero() public pure returns (UFixed) {
344
+ return UFixed.wrap(0);
345
+ }
346
+
347
+ function one() public pure returns (UFixed) {
348
+ return UFixed.wrap(MULTIPLIER);
349
+ }
350
+
351
+ /// @dev return the absolute delta between two UFixed numbers
352
+ function delta(UFixed a, UFixed b) public pure returns (UFixed) {
353
+ return deltaUFixed(a, b);
354
+ }
355
+ }
@@ -1,20 +1,25 @@
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
+ versionPartNe as !=,
10
+ VersionPartLib.eqz,
9
11
  VersionPartLib.toInt
10
12
  }
11
13
  for VersionPart global;
12
14
 
13
15
  function versionPartGt(VersionPart a, VersionPart b) pure returns(bool isGreaterThan) { return VersionPart.unwrap(a) > VersionPart.unwrap(b); }
14
16
  function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) == VersionPart.unwrap(b); }
17
+ function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
15
18
 
16
19
  library VersionPartLib {
17
- function toInt(VersionPart x) external pure returns(uint) { return VersionPart.unwrap(x); }
20
+ function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
21
+ function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
22
+ function toVersionPart(uint256 a) external pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
18
23
  }
19
24
 
20
25
  type Version is uint24; // contains major,minor,patch version parts
@@ -98,6 +103,7 @@ library VersionLib {
98
103
  return Version.wrap(uint24(versionNumber));
99
104
  }
100
105
 
106
+ // TODO rename to zero()
101
107
  function zeroVersion() external pure returns(Version) {
102
108
  return Version.wrap(0);
103
109
  }
@@ -1,10 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Blocknumber} from "../types/Blocknumber.sol";
5
- import {Timestamp} from "../types/Timestamp.sol";
6
- import {Version} from "../types/Version.sol";
7
-
4
+ import {Version} from "../type/Version.sol";
8
5
 
9
6
  /// IMPORTANT
10
7
  // Upgradeable contract MUST:
@@ -14,7 +11,7 @@ import {Version} from "../types/Version.sol";
14
11
  // 4) implement internal _upgrade() function with onlyInitializing modifier (1st version MUST revert)
15
12
  // 5) have onlyInitialising modifier for each function callable inside _initialize()/_upgrade() (MUST use different functions for initialization/upgrade and normal operations)
16
13
  // 6) use default empty constructor -> _disableInitializer() is called from Versionable contructor
17
- // 7) use namespace storage
14
+ // 7) use namespace storage (should this be needed)
18
15
  // 8) since now inheritance is used for upgradability, contract MUST BE inherited ONLY by the next version
19
16
  // Upgradeable contract SHOULD:
20
17
  // 9) define all non private methods as virtual (in order to be able to upgrade them latter)
@@ -22,48 +19,29 @@ import {Version} from "../types/Version.sol";
22
19
  // in some cases this ok but not in the others...
23
20
  //
24
21
  // IMPORTANT
25
- // Each version MUST:
22
+ // If introducting/amending storage related to Versionable version MUST:
26
23
  // 1) define namespace storage struct if accessing storage
27
24
  // - DO NOT use structs inside, except
28
25
  // - CAN use structs ONLY inside mappings
29
26
  // 2) ALWAYS define private getter if accessing storage
30
27
  // - MUST use default implementation, CAN change ONLY return type
31
- // - MUST use the same "LOCATION_V1"
32
28
 
33
29
  interface IVersionable {
34
30
 
35
- struct VersionInfo {
36
- Version version;
37
- address implementation;
38
- address activatedBy;
39
- Timestamp activatedAt;
40
- Blocknumber activatedIn;
41
- }
42
-
43
- event LogVersionableInitialized(Version version, address implementation, address activatedBy);
44
-
45
- // TODO uncomment when all implementations are ready
46
31
  /**
47
32
  * @dev IMPORTANT
48
33
  * implementation MUST be guarded by initializer modifier
49
- * implementation MUST call internal function Versionable._updateVersionHistory
50
34
  * new version MUST inherit from previous version
51
35
  */
52
- function initialize(address implementation, address activatedBy, bytes memory activationData) external;
36
+ function initializeVersionable(address activatedBy, bytes memory activationData) external;
53
37
 
54
38
  /**
55
39
  * @dev
56
40
  * implementation MUST be guarded by reinitializer(version().toUint64()) modifier
57
- * implementation MUST call internal function Versionable._updateVersionHistory
58
41
  * new version MUST inherit from previous version
59
42
  * the first verion MUST revert
60
43
  */
61
- function upgrade(address implementation, address activatedBy, bytes memory upgradeData) external;
62
-
63
- /**
64
- * @dev returns true if the specified version has been activated for the current contract
65
- */
66
- function isInitialized(Version version) external view returns(bool);
44
+ function upgradeVersionable(bytes memory upgradeData) external;
67
45
 
68
46
  /**
69
47
  * @dev returns version of this contract
@@ -72,25 +50,4 @@ interface IVersionable {
72
50
  */
73
51
  function getVersion() external pure returns(Version);
74
52
 
75
- /**
76
- * @dev returns the number of all deployed versions of this contract
77
- */
78
- function getVersionCount() external view returns(uint256 numberOfVersions);
79
-
80
- /**
81
- * @dev returns the i-th (index) version of this contract
82
- */
83
- function getVersion(uint256 index) external view returns(Version version);
84
-
85
- /**
86
- * @dev returns the i-th (index) version info of this contract
87
- */
88
- function getVersionInfo(Version version) external view returns(VersionInfo memory versionInfo);
89
-
90
- // TODO make sure it is needed here
91
- /**
92
- * @dev returns currently active version
93
- */
94
- function getInitializedVersion() external view returns(uint64);
95
-
96
53
  }