@etherisc/gif-next 0.0.2-86f4673-518 → 0.0.2-8773a53-517

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 (676) hide show
  1. package/README.md +54 -88
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1518 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +390 -334
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +945 -0
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +235 -1591
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +291 -208
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +431 -2729
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +676 -369
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +375 -475
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +254 -130
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → oracle/IOracleService.sol/IOracleService.json} +274 -353
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +501 -422
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1510 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +499 -370
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +418 -366
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1213 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1652 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +774 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +405 -402
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1339 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +121 -247
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +319 -298
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +262 -225
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +422 -250
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +116 -175
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1324 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +794 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/product/Product.sol/Product.json +1238 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +191 -18
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -277
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  158. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/Registry.sol/Registry.json +453 -34
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +407 -306
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +246 -126
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +307 -177
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +219 -245
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +222 -232
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +224 -113
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +246 -217
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -40
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -40
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -34
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +76 -164
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  204. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +19 -78
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -47
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +28 -90
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -36
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +88 -208
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +107 -6
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  306. package/contracts/authorization/AccessAdmin.sol +591 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +218 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +138 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  318. package/contracts/distribution/Distribution.sol +295 -0
  319. package/contracts/distribution/DistributionService.sol +336 -0
  320. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  321. package/contracts/distribution/IDistributionComponent.sol +52 -0
  322. package/contracts/distribution/IDistributionService.sol +97 -0
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
  324. package/contracts/instance/IInstance.sol +61 -47
  325. package/contracts/instance/IInstanceService.sol +57 -24
  326. package/contracts/instance/Instance.sol +177 -191
  327. package/contracts/instance/InstanceAdmin.sol +266 -0
  328. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  329. package/contracts/instance/InstanceReader.sol +181 -61
  330. package/contracts/instance/InstanceService.sol +316 -306
  331. package/contracts/instance/InstanceServiceManager.sol +13 -27
  332. package/contracts/instance/InstanceStore.sol +277 -0
  333. package/contracts/instance/base/BalanceStore.sol +123 -0
  334. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  337. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  338. package/contracts/instance/module/IAccess.sol +19 -20
  339. package/contracts/instance/module/IBundle.sol +8 -8
  340. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +22 -22
  341. package/contracts/instance/module/IDistribution.sol +6 -4
  342. package/contracts/instance/module/IPolicy.sol +56 -17
  343. package/contracts/instance/module/IRisk.sol +1 -1
  344. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  345. package/contracts/oracle/BasicOracle.sol +48 -0
  346. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  347. package/contracts/oracle/IOracle.sol +36 -0
  348. package/contracts/oracle/IOracleComponent.sol +33 -0
  349. package/contracts/oracle/IOracleService.sol +65 -0
  350. package/contracts/oracle/Oracle.sol +166 -0
  351. package/contracts/oracle/OracleService.sol +278 -0
  352. package/contracts/oracle/OracleServiceManager.sol +39 -0
  353. package/contracts/pool/BasicPool.sol +166 -0
  354. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  355. package/contracts/pool/BundleService.sol +441 -0
  356. package/contracts/pool/BundleServiceManager.sol +39 -0
  357. package/contracts/pool/IBundleService.sol +133 -0
  358. package/contracts/pool/IPoolComponent.sol +58 -0
  359. package/contracts/pool/IPoolService.sol +149 -0
  360. package/contracts/pool/Pool.sol +328 -0
  361. package/contracts/pool/PoolService.sol +525 -0
  362. package/contracts/pool/PoolServiceManager.sol +39 -0
  363. package/contracts/product/ApplicationService.sol +230 -0
  364. package/contracts/product/ApplicationServiceManager.sol +38 -0
  365. package/contracts/product/BasicProduct.sol +52 -0
  366. package/contracts/product/BasicProductAuthorization.sol +43 -0
  367. package/contracts/product/ClaimService.sol +424 -0
  368. package/contracts/product/ClaimServiceManager.sol +38 -0
  369. package/contracts/{instance/service → product}/IApplicationService.sol +17 -37
  370. package/contracts/product/IClaimService.sol +100 -0
  371. package/contracts/product/IPolicyService.sol +84 -0
  372. package/contracts/product/IPricingService.sol +39 -0
  373. package/contracts/product/IProductComponent.sol +40 -0
  374. package/contracts/product/IProductService.sol +33 -0
  375. package/contracts/product/PolicyService.sol +542 -0
  376. package/contracts/product/PolicyServiceManager.sol +39 -0
  377. package/contracts/product/PricingService.sol +300 -0
  378. package/contracts/product/PricingServiceManager.sol +39 -0
  379. package/contracts/product/Product.sol +411 -0
  380. package/contracts/product/ProductService.sol +99 -0
  381. package/contracts/product/ProductServiceManager.sol +39 -0
  382. package/contracts/registry/ChainNft.sol +16 -1
  383. package/contracts/registry/IRegistry.sol +61 -26
  384. package/contracts/registry/IRegistryService.sol +47 -43
  385. package/contracts/registry/ITransferInterceptor.sol +1 -0
  386. package/contracts/registry/Registry.sol +252 -138
  387. package/contracts/registry/RegistryAdmin.sol +365 -0
  388. package/contracts/registry/RegistryService.sol +98 -107
  389. package/contracts/registry/RegistryServiceManager.sol +24 -33
  390. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  391. package/contracts/registry/ReleaseRegistry.sol +485 -0
  392. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  393. package/contracts/registry/TokenRegistry.sol +262 -60
  394. package/contracts/shared/Component.sol +281 -0
  395. package/contracts/shared/ComponentService.sol +650 -0
  396. package/contracts/shared/ComponentServiceManager.sol +35 -0
  397. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  398. package/contracts/shared/IComponent.sol +71 -0
  399. package/contracts/shared/IComponentService.sol +108 -0
  400. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  401. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  402. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  403. package/contracts/shared/INftOwnable.sol +6 -11
  404. package/contracts/shared/IPolicyHolder.sol +29 -10
  405. package/contracts/shared/IRegistryLinked.sol +0 -4
  406. package/contracts/shared/IService.sol +15 -6
  407. package/contracts/shared/InitializableCustom.sol +177 -0
  408. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -3
  409. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  410. package/contracts/shared/KeyValueStore.sol +131 -0
  411. package/contracts/shared/Lifecycle.sol +77 -0
  412. package/contracts/shared/NftIdSet.sol +65 -0
  413. package/contracts/shared/NftOwnable.sol +12 -95
  414. package/contracts/shared/PolicyHolder.sol +41 -23
  415. package/contracts/shared/Registerable.sol +15 -21
  416. package/contracts/shared/RegistryLinked.sol +5 -26
  417. package/contracts/shared/Service.sol +52 -30
  418. package/contracts/shared/TokenHandler.sol +41 -6
  419. package/contracts/staking/IStaking.sol +167 -0
  420. package/contracts/staking/IStakingService.sol +160 -0
  421. package/contracts/staking/StakeManagerLib.sol +231 -0
  422. package/contracts/staking/Staking.sol +516 -0
  423. package/contracts/staking/StakingLifecycle.sol +23 -0
  424. package/contracts/staking/StakingManager.sol +50 -0
  425. package/contracts/staking/StakingReader.sol +183 -0
  426. package/contracts/staking/StakingService.sol +407 -0
  427. package/contracts/staking/StakingServiceManager.sol +44 -0
  428. package/contracts/staking/StakingStore.sol +605 -0
  429. package/contracts/staking/TargetManagerLib.sol +207 -0
  430. package/contracts/{types → type}/AddressSet.sol +1 -1
  431. package/contracts/type/Amount.sol +135 -0
  432. package/contracts/{types → type}/Blocknumber.sol +27 -3
  433. package/contracts/type/ClaimId.sol +75 -0
  434. package/contracts/{types → type}/DistributorType.sol +2 -2
  435. package/contracts/{types → type}/Fee.sol +33 -23
  436. package/contracts/{types → type}/NftId.sol +21 -15
  437. package/contracts/{types → type}/NftIdSet.sol +2 -2
  438. package/contracts/type/ObjectType.sol +271 -0
  439. package/contracts/type/PayoutId.sol +82 -0
  440. package/contracts/{types → type}/Referral.sol +6 -1
  441. package/contracts/type/RequestId.sol +75 -0
  442. package/contracts/{types → type}/RiskId.sol +1 -1
  443. package/contracts/type/RoleId.sol +174 -0
  444. package/contracts/type/Seconds.sol +93 -0
  445. package/contracts/type/Selector.sol +102 -0
  446. package/contracts/{types → type}/StateId.sol +34 -4
  447. package/contracts/type/String.sol +53 -0
  448. package/contracts/{types → type}/Timestamp.sol +34 -15
  449. package/contracts/{types → type}/UFixed.sol +35 -9
  450. package/contracts/{types → type}/Version.sol +5 -2
  451. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  452. package/contracts/upgradeability/ProxyManager.sol +198 -0
  453. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  454. package/contracts/upgradeability/Versionable.sol +59 -0
  455. package/package.json +8 -5
  456. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  457. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  458. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  459. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  460. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  462. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  463. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  466. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  467. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  468. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  469. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  470. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  471. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  472. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  474. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  476. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  478. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  480. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  482. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  484. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  485. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  486. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  488. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  490. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  492. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  495. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  497. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  499. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  501. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  503. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  505. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  506. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  507. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  508. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  509. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  510. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  511. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  513. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  514. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  515. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  516. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  517. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  520. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1117
  521. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  522. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1318
  523. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  524. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -586
  525. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -923
  527. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -574
  529. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1378
  537. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -642
  539. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -957
  541. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -574
  543. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1007
  545. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -574
  547. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  548. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  549. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  550. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  551. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  552. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  553. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  555. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  556. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  557. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -499
  559. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  561. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  562. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  563. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  564. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  565. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  566. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -446
  567. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  568. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  569. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  570. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -759
  571. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  572. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  573. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  574. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  575. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  576. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  577. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  578. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  579. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  580. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  581. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  583. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  584. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  585. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  587. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  588. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  589. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  590. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  591. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  592. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  593. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  594. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  595. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  596. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  597. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  598. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  599. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  600. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  601. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  603. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  605. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  608. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  610. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  612. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  614. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  616. package/contracts/components/Component.sol +0 -230
  617. package/contracts/components/Distribution.sol +0 -156
  618. package/contracts/components/IComponent.sol +0 -50
  619. package/contracts/components/IDistributionComponent.sol +0 -47
  620. package/contracts/components/IPoolComponent.sol +0 -87
  621. package/contracts/components/IProductComponent.sol +0 -39
  622. package/contracts/components/Pool.sol +0 -254
  623. package/contracts/components/Product.sol +0 -278
  624. package/contracts/experiment/cloning/Cloner.sol +0 -47
  625. package/contracts/experiment/errors/Require.sol +0 -38
  626. package/contracts/experiment/errors/Revert.sol +0 -44
  627. package/contracts/experiment/inheritance/A.sol +0 -53
  628. package/contracts/experiment/inheritance/B.sol +0 -28
  629. package/contracts/experiment/inheritance/C.sol +0 -34
  630. package/contracts/experiment/inheritance/IA.sol +0 -13
  631. package/contracts/experiment/inheritance/IB.sol +0 -10
  632. package/contracts/experiment/inheritance/IC.sol +0 -12
  633. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  634. package/contracts/experiment/statemachine/ISM.sol +0 -25
  635. package/contracts/experiment/statemachine/SM.sol +0 -57
  636. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  637. package/contracts/experiment/types/TypeA.sol +0 -47
  638. package/contracts/experiment/types/TypeB.sol +0 -29
  639. package/contracts/instance/InstanceAccessManager.sol +0 -297
  640. package/contracts/instance/base/ComponentService.sol +0 -134
  641. package/contracts/instance/base/KeyValueStore.sol +0 -172
  642. package/contracts/instance/base/Lifecycle.sol +0 -100
  643. package/contracts/instance/module/ITreasury.sol +0 -23
  644. package/contracts/instance/service/ApplicationService.sol +0 -268
  645. package/contracts/instance/service/BundleService.sol +0 -298
  646. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  647. package/contracts/instance/service/DistributionService.sol +0 -105
  648. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  649. package/contracts/instance/service/IBundleService.sol +0 -54
  650. package/contracts/instance/service/IDistributionService.sol +0 -12
  651. package/contracts/instance/service/IPolicyService.sol +0 -88
  652. package/contracts/instance/service/IPoolService.sol +0 -20
  653. package/contracts/instance/service/IProductService.sol +0 -40
  654. package/contracts/instance/service/PolicyService.sol +0 -524
  655. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  656. package/contracts/instance/service/PoolService.sol +0 -109
  657. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  658. package/contracts/instance/service/ProductService.sol +0 -233
  659. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  660. package/contracts/registry/RegistryAccessManager.sol +0 -216
  661. package/contracts/registry/ReleaseManager.sol +0 -332
  662. package/contracts/shared/ContractDeployerLib.sol +0 -72
  663. package/contracts/shared/ProxyManager.sol +0 -95
  664. package/contracts/shared/Versionable.sol +0 -148
  665. package/contracts/test/TestFee.sol +0 -25
  666. package/contracts/test/TestRegisterable.sol +0 -18
  667. package/contracts/test/TestRoleId.sol +0 -14
  668. package/contracts/test/TestService.sol +0 -25
  669. package/contracts/test/TestVersion.sol +0 -44
  670. package/contracts/test/TestVersionable.sol +0 -17
  671. package/contracts/test/Usdc.sol +0 -26
  672. package/contracts/types/ChainId.sol +0 -38
  673. package/contracts/types/NumberId.sol +0 -52
  674. package/contracts/types/ObjectType.sol +0 -156
  675. package/contracts/types/RoleId.sol +0 -90
  676. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,93 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type Seconds is uint40;
5
+
6
+ using {
7
+ SecondsEq as ==,
8
+ SecondsGt as >,
9
+ SecondsAdd as +,
10
+ SecondsLib.eqz,
11
+ SecondsLib.gtz,
12
+ SecondsLib.toInt,
13
+ SecondsLib.add
14
+ } for Seconds global;
15
+
16
+ function SecondsEq(Seconds duration1, Seconds duration2) pure returns (bool) {
17
+ return SecondsLib.eq(duration1, duration2);
18
+ }
19
+
20
+ function SecondsGt(Seconds duration1, Seconds duration2) pure returns (bool) {
21
+ return SecondsLib.gt(duration1, duration2);
22
+ }
23
+
24
+ function SecondsAdd(Seconds duration1, Seconds duration2) pure returns (Seconds) {
25
+ return SecondsLib.add(duration1, duration2);
26
+ }
27
+
28
+
29
+ library SecondsLib {
30
+
31
+ error ErrorSecondsLibDurationTooBig(uint256 duration);
32
+
33
+ function zero() public pure returns (Seconds) {
34
+ return Seconds.wrap(0);
35
+ }
36
+
37
+ function max() public pure returns (Seconds) {
38
+ return Seconds.wrap(_max());
39
+ }
40
+
41
+ function oneDay() public pure returns (Seconds duration) {
42
+ return Seconds.wrap(24 * 3600);
43
+ }
44
+
45
+ function oneYear() public pure returns (Seconds duration) {
46
+ return Seconds.wrap(365 * 24 * 3600);
47
+ }
48
+
49
+ /// @dev converts the uint duration into Seconds
50
+ /// function reverts if duration is exceeding max Seconds value
51
+ function toSeconds(uint256 duration) public pure returns (Seconds) {
52
+ // if(duration > type(uint40).max) {
53
+ if(duration > _max()) {
54
+ revert ErrorSecondsLibDurationTooBig(duration);
55
+ }
56
+
57
+ return Seconds.wrap(uint40(duration));
58
+ }
59
+
60
+ /// @dev return true if duration equals 0
61
+ function eqz(Seconds duration) public pure returns (bool) {
62
+ return Seconds.unwrap(duration) == 0;
63
+ }
64
+
65
+ /// @dev return true if duration is larger than 0
66
+ function gtz(Seconds duration) public pure returns (bool) {
67
+ return Seconds.unwrap(duration) > 0;
68
+ }
69
+
70
+ /// @dev return true iff duration1 and duration2 are the same
71
+ function eq(Seconds duration1, Seconds duration2) public pure returns (bool) {
72
+ return Seconds.unwrap(duration1) == Seconds.unwrap(duration2);
73
+ }
74
+
75
+ /// @dev return true if duration1 is larger than duration2
76
+ function gt(Seconds duration1, Seconds duration2) public pure returns (bool) {
77
+ return Seconds.unwrap(duration1) > Seconds.unwrap(duration2);
78
+ }
79
+
80
+ /// @dev return add duration1 and duration2
81
+ function add(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
82
+ return Seconds.wrap(Seconds.unwrap(duration1) + Seconds.unwrap(duration2));
83
+ }
84
+
85
+ function toInt(Seconds duration) public pure returns (uint256) {
86
+ return uint256(uint40(Seconds.unwrap(duration)));
87
+ }
88
+
89
+ function _max() internal pure returns (uint40) {
90
+ // IMPORTANT: type nees to match with actual definition for Seconds
91
+ return type(uint40).max;
92
+ }
93
+ }
@@ -0,0 +1,102 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type Selector is bytes4;
5
+
6
+ // type bindings
7
+ using {
8
+ eqSelector as ==,
9
+ neSelector as !=,
10
+ SelectorLib.toBytes4,
11
+ SelectorLib.eqz
12
+ } for Selector global;
13
+
14
+ // pure free functions for operators
15
+ function eqSelector(Selector s1, Selector s2) pure returns (bool isSame) {
16
+ return SelectorLib.eq(s1, s2);
17
+ }
18
+
19
+ function neSelector(Selector s1, Selector s2) pure returns (bool isDifferent) {
20
+ return SelectorLib.ne(s1, s2);
21
+ }
22
+
23
+ // library functions that operate on user defined type
24
+ library SelectorLib {
25
+
26
+ function zero() public pure returns (Selector) {
27
+ return Selector.wrap("");
28
+ }
29
+
30
+ function eqz(Selector s) public pure returns (bool) {
31
+ return Selector.unwrap(s) == "";
32
+ }
33
+
34
+ function eq(Selector s1, Selector s2) public pure returns (bool isSame) {
35
+ return Selector.unwrap(s1) == Selector.unwrap(s2);
36
+ }
37
+
38
+ function ne(Selector s1, Selector s2) public pure returns (bool isDifferent) {
39
+ return Selector.unwrap(s1) != Selector.unwrap(s2);
40
+ }
41
+
42
+ function toSelector(bytes4 selector) public pure returns (Selector) {
43
+ return Selector.wrap(selector);
44
+ }
45
+
46
+ function toBytes4(Selector s) public pure returns (bytes4) {
47
+ return Selector.unwrap(s);
48
+ }
49
+ }
50
+
51
+ // selector specific set library
52
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
53
+ library SelectorSetLib {
54
+
55
+ struct Set {
56
+ Selector[] selectors;
57
+ mapping(Selector selector => uint256 index) at;
58
+ }
59
+
60
+ function add(Set storage set, Selector selector) external {
61
+ // selector already in set
62
+ if (set.at[selector] > 0) { return; }
63
+
64
+ set.selectors.push(selector);
65
+ set.at[selector] = set.selectors.length;
66
+ }
67
+
68
+ function remove(Set storage set, Selector selector) external {
69
+ uint256 selectorIndex = set.at[selector];
70
+
71
+ // selector not in set
72
+ if (selectorIndex == 0) {return; }
73
+
74
+ uint256 toDeleteIndex = selectorIndex - 1;
75
+ uint256 lastIndex = set.selectors.length - 1;
76
+
77
+ if (lastIndex != toDeleteIndex) {
78
+ Selector lastSelector = set.selectors[lastIndex];
79
+ set.selectors[toDeleteIndex] = lastSelector;
80
+ set.at[lastSelector] = selectorIndex; // Replace lastValue's index to valueIndex
81
+ }
82
+
83
+ set.selectors.pop();
84
+ delete set.at[selector];
85
+ }
86
+
87
+ function isEmpty(Set storage set) external view returns(bool empty) {
88
+ return set.selectors.length == 0;
89
+ }
90
+
91
+ function contains(Set storage set, Selector selector) external view returns(bool inSet) {
92
+ return set.at[selector] > 0;
93
+ }
94
+
95
+ function size(Set storage set) external view returns(uint256 length) {
96
+ return set.selectors.length;
97
+ }
98
+
99
+ function at(Set storage set, uint256 index) external view returns(Selector selector) {
100
+ return set.selectors[index];
101
+ }
102
+ }
@@ -14,6 +14,23 @@ using {
14
14
  } for StateId global;
15
15
 
16
16
  // general pure free functions
17
+
18
+ function INITIAL() pure returns (StateId) {
19
+ return toStateId(1);
20
+ }
21
+
22
+ function SCHEDULED() pure returns (StateId) {
23
+ return toStateId(2);
24
+ }
25
+
26
+ function DEPLOYING() pure returns (StateId) {
27
+ return toStateId(3);
28
+ }
29
+
30
+ function ACTIVE() pure returns (StateId) {
31
+ return toStateId(4);
32
+ }
33
+
17
34
  function APPLIED() pure returns (StateId) {
18
35
  return toStateId(10);
19
36
  }
@@ -26,20 +43,32 @@ function DECLINED() pure returns (StateId) {
26
43
  return toStateId(30);
27
44
  }
28
45
 
29
- function UNDERWRITTEN() pure returns (StateId) {
46
+ function COLLATERALIZED() pure returns (StateId) {
30
47
  return toStateId(40);
31
48
  }
32
49
 
33
- function CONFIRMED() pure returns (StateId) {
50
+ function SUBMITTED() pure returns (StateId) {
34
51
  return toStateId(50);
35
52
  }
36
53
 
54
+ function CONFIRMED() pure returns (StateId) {
55
+ return toStateId(51);
56
+ }
57
+
37
58
  function EXPECTED() pure returns (StateId) {
38
59
  return toStateId(60);
39
60
  }
40
61
 
41
- function ACTIVE() pure returns (StateId) {
42
- return toStateId(100);
62
+ function FULFILLED() pure returns (StateId) {
63
+ return toStateId(70);
64
+ }
65
+
66
+ function FAILED() pure returns (StateId) {
67
+ return toStateId(7);
68
+ }
69
+
70
+ function CANCELLED() pure returns (StateId) {
71
+ return toStateId(72);
43
72
  }
44
73
 
45
74
  function PAUSED() pure returns (StateId) {
@@ -67,6 +96,7 @@ function toStateId(uint256 id) pure returns (StateId) {
67
96
  return StateId.wrap(uint8(id));
68
97
  }
69
98
 
99
+ // TODO move to StateIdLib and rename to zero()
70
100
  /// @dev Return the StateId zero (0)
71
101
  function zeroStateId() pure returns (StateId) {
72
102
  return StateId.wrap(0);
@@ -0,0 +1,53 @@
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
+ function StrEq(Str s1, Str s2) pure returns (bool) {
16
+ return StrLib.eq(s1, s2);
17
+ }
18
+
19
+ function StrNe(Str s1, Str s2) pure returns (bool) {
20
+ return StrLib.ne(s1, s2);
21
+ }
22
+
23
+ library StrLib {
24
+
25
+
26
+ /// @dev converts the provided string into a short string.
27
+ /// uses ShortStrings.toShortString
28
+ function toStr(string memory str) public pure returns (Str) {
29
+ return Str.wrap(ShortString.unwrap(ShortStrings.toShortString(str)));
30
+ }
31
+
32
+ /// @dev return true iff s1 equals s2
33
+ function eq(Str s1, Str s2) public pure returns (bool) {
34
+ return Str.unwrap(s1) == Str.unwrap(s2);
35
+ }
36
+
37
+ /// @dev return true iff s1 differs from s2
38
+ function ne(Str s1, Str s2) public pure returns (bool) {
39
+ return Str.unwrap(s1) != Str.unwrap(s2);
40
+ }
41
+
42
+ /// @dev converts the provided short string into a string.
43
+ /// uses ShortStrings.toString
44
+ function toString(Str str) public pure returns (string memory) {
45
+ return ShortStrings.toString(ShortString.wrap(Str.unwrap(str)));
46
+ }
47
+
48
+ /// @dev converts the provided short string into a string.
49
+ /// uses ShortStrings.byteLength
50
+ function length(Str str) public pure returns (uint256 byteLength) {
51
+ return ShortStrings.byteLength(ShortString.wrap(Str.unwrap(str)));
52
+ }
53
+ }
@@ -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
@@ -47,22 +56,32 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
47
56
 
48
57
  /// @dev Converts the uint256 to a Timestamp.
49
58
  function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
50
- return Timestamp.wrap(uint40(timestamp));
59
+ return TimestampLib.toTimestamp(timestamp);
51
60
  }
52
61
 
53
- // function blockTimestamp() view returns (Timestamp) {
54
- // return toTimestamp(block.timestamp);
55
- // }
56
-
62
+ // TODO move to TimestampLib and rename to zero()
57
63
  /// @dev Return the Timestamp zero (0)
58
64
  function zeroTimestamp() pure returns (Timestamp) {
59
- return toTimestamp(0);
65
+ return Timestamp.wrap(0);
60
66
  }
61
67
 
62
68
  library TimestampLib {
69
+
70
+ function zero() public pure returns (Timestamp) {
71
+ return Timestamp.wrap(0);
72
+ }
73
+
74
+ function max() public pure returns (Timestamp) {
75
+ return Timestamp.wrap(type(uint40).max);
76
+ }
77
+
63
78
  function blockTimestamp() public view returns (Timestamp) {
64
79
  return Timestamp.wrap(uint40(block.timestamp));
65
80
  }
81
+
82
+ function toTimestamp(uint256 timestamp) public pure returns (Timestamp) {
83
+ return Timestamp.wrap(uint40(timestamp));
84
+ }
66
85
 
67
86
  /// @dev return true if Timestamp a is after Timestamp b
68
87
  function gt(Timestamp a, Timestamp b) public pure returns (bool isAfter) {
@@ -103,22 +122,22 @@ library TimestampLib {
103
122
  return neTimestamp(a, b);
104
123
  }
105
124
 
106
- /// @dev return true if Timestamp is larger than 0
107
- function gtz(Timestamp timestamp) public pure returns (bool) {
108
- return Timestamp.unwrap(timestamp) > 0;
109
- }
110
-
111
125
  /// @dev return true if Timestamp equals 0
112
126
  function eqz(Timestamp timestamp) public pure returns (bool) {
113
127
  return Timestamp.unwrap(timestamp) == 0;
114
128
  }
115
129
 
130
+ /// @dev return true if Timestamp is larger than 0
131
+ function gtz(Timestamp timestamp) public pure returns (bool) {
132
+ return Timestamp.unwrap(timestamp) > 0;
133
+ }
134
+
116
135
  /// @dev return true if Timestamp a is not equal to Timestamp b
117
136
  function addSeconds(
118
137
  Timestamp timestamp,
119
- uint256 timeDelta
138
+ Seconds duration
120
139
  ) public pure returns (Timestamp) {
121
- return toTimestamp(Timestamp.unwrap(timestamp) + uint40(timeDelta));
140
+ return toTimestamp(Timestamp.unwrap(timestamp) + duration.toInt());
122
141
  }
123
142
 
124
143
  function toInt(Timestamp timestamp) public pure returns (uint256) {
@@ -15,10 +15,13 @@ using {
15
15
  lteUFixed as <=,
16
16
  eqUFixed as ==,
17
17
  neUFixed as !=,
18
+ UFixedLib.gt,
19
+ UFixedLib.gtz,
18
20
  UFixedLib.toInt,
19
- UFixedLib.gtz
21
+ UFixedLib.toInt1000
20
22
  } for UFixed global;
21
23
 
24
+ // TODO move to UFixedLib and rename to zero()
22
25
  function zeroUFixed() pure returns (UFixed zero) {
23
26
  return UFixed.wrap(0);
24
27
  }
@@ -28,7 +31,9 @@ function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
28
31
  }
29
32
 
30
33
  function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
31
- require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
34
+ if (a < b) {
35
+ revert UFixedLib.UFixedLibNegativeResult();
36
+ }
32
37
  return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
33
38
  }
34
39
 
@@ -38,8 +43,10 @@ function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
38
43
  }
39
44
 
40
45
  function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
41
- require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
42
-
46
+ if (UFixed.unwrap(b) == 0) {
47
+ revert UFixedLib.UFixedLibDivisionByZero();
48
+ }
49
+
43
50
  return
44
51
  UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
45
52
  }
@@ -87,6 +94,8 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
87
94
  /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
88
95
  library MathLib {
89
96
 
97
+ error MathLigMulDivOverflow();
98
+
90
99
  enum Rounding {
91
100
  Down, // Toward negative infinity
92
101
  Up, // Toward infinity
@@ -120,8 +129,10 @@ library MathLib {
120
129
  }
121
130
 
122
131
  // Make sure the result is less than 2^256. Also prevents denominator == 0.
123
- require(denominator > prod1, "Math: mulDiv overflow");
124
-
132
+ if (denominator <= prod1) {
133
+ revert MathLigMulDivOverflow();
134
+ }
135
+
125
136
  ///////////////////////////////////////////////
126
137
  // 512 by 256 division.
127
138
  ///////////////////////////////////////////////
@@ -193,6 +204,12 @@ library MathLib {
193
204
  }
194
205
 
195
206
  library UFixedLib {
207
+ error UFixedLibNegativeResult();
208
+ error UFixedLibDivisionByZero();
209
+
210
+ error UFixedLibExponentTooSmall(int8 exp);
211
+ error UFixedLibExponentTooLarge(int8 exp);
212
+
196
213
  int8 public constant EXP = 18;
197
214
  uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
198
215
  uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
@@ -219,9 +236,13 @@ library UFixedLib {
219
236
 
220
237
  /// @dev Converts the uint256 to a UFixed with given exponent.
221
238
  function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
222
- require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
223
- require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
224
-
239
+ if (EXP + exp < 0) {
240
+ revert UFixedLibExponentTooSmall(exp);
241
+ }
242
+ if (EXP + exp > 64) {
243
+ revert UFixedLibExponentTooLarge(exp);
244
+ }
245
+
225
246
  return UFixed.wrap(a * 10 ** uint8(EXP + exp));
226
247
  }
227
248
 
@@ -235,6 +256,11 @@ library UFixedLib {
235
256
  return toIntWithRounding(a, ROUNDING_HALF_UP());
236
257
  }
237
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
+
238
264
  /// @dev Converts a UFixed to a uint256 with given rounding mode.
239
265
  function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
240
266
  if (rounding == ROUNDING_HALF_UP()) {
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  type VersionPart is uint8;
5
5
 
@@ -7,6 +7,7 @@ using {
7
7
  versionPartGt as >,
8
8
  versionPartEq as ==,
9
9
  versionPartNe as !=,
10
+ VersionPartLib.eqz,
10
11
  VersionPartLib.toInt
11
12
  }
12
13
  for VersionPart global;
@@ -16,7 +17,8 @@ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) {
16
17
  function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
17
18
 
18
19
  library VersionPartLib {
19
- function toInt(VersionPart a) external pure returns(uint) { return VersionPart.unwrap(a); }
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); }
20
22
  function toVersionPart(uint256 a) external pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
21
23
  }
22
24
 
@@ -101,6 +103,7 @@ library VersionLib {
101
103
  return Version.wrap(uint24(versionNumber));
102
104
  }
103
105
 
106
+ // TODO rename to zero()
104
107
  function zeroVersion() external pure returns(Version) {
105
108
  return Version.wrap(0);
106
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 initializeVersionable(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 upgradeVersionable(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
  }