@etherisc/gif-next 0.0.2-b20ce14-335 → 0.0.2-b214449-558

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 (711) hide show
  1. package/README.md +77 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1130 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +250 -579
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +258 -312
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +243 -325
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +315 -2173
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +238 -112
  70. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -2820
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1916 -0
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1417 -436
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +272 -387
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -153
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  88. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  89. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  112. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +228 -284
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -229
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  122. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +318 -442
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +240 -69
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +543 -273
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  136. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +377 -414
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  148. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +451 -457
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  156. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +115 -145
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +301 -206
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +921 -0
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IPricingService.sol/IPricingService.json} +230 -230
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  166. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +64 -61
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +812 -0
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  176. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -249
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  209. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  210. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  215. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +60 -182
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  226. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +152 -125
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  232. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  233. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  234. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  243. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  263. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  275. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  276. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  277. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  294. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  333. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  336. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  339. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  343. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  344. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  346. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  350. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  351. package/contracts/accounting/AccountingService.sol +262 -0
  352. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  353. package/contracts/accounting/IAccountingService.sol +45 -0
  354. package/contracts/authorization/AccessAdmin.sol +689 -0
  355. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  356. package/contracts/authorization/Authorization.sol +337 -0
  357. package/contracts/authorization/IAccess.sol +49 -0
  358. package/contracts/authorization/IAccessAdmin.sol +143 -0
  359. package/contracts/authorization/IAuthorization.sol +74 -0
  360. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  361. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  362. package/contracts/distribution/BasicDistribution.sol +139 -0
  363. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  364. package/contracts/{components → distribution}/Distribution.sol +165 -162
  365. package/contracts/distribution/DistributionService.sol +357 -0
  366. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  367. package/contracts/distribution/IDistributionComponent.sol +52 -0
  368. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  369. package/contracts/examples/fire/DamageLevel.sol +59 -0
  370. package/contracts/examples/fire/FirePool.sol +90 -0
  371. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  372. package/contracts/examples/fire/FireProduct.sol +438 -0
  373. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  374. package/contracts/examples/fire/FireUSD.sol +26 -0
  375. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  376. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  378. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  379. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  381. package/contracts/instance/BundleSet.sol +130 -0
  382. package/contracts/instance/IInstance.sol +48 -80
  383. package/contracts/instance/IInstanceService.sol +40 -36
  384. package/contracts/instance/Instance.sol +164 -227
  385. package/contracts/instance/InstanceAdmin.sol +442 -0
  386. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  387. package/contracts/instance/InstanceReader.sol +372 -64
  388. package/contracts/instance/InstanceService.sol +275 -349
  389. package/contracts/instance/InstanceServiceManager.sol +14 -29
  390. package/contracts/instance/InstanceStore.sol +298 -0
  391. package/contracts/instance/RiskSet.sol +118 -0
  392. package/contracts/instance/base/BalanceStore.sol +123 -0
  393. package/contracts/instance/base/Cloneable.sol +28 -0
  394. package/contracts/instance/base/ObjectCounter.sol +20 -0
  395. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  396. package/contracts/instance/base/ObjectSet.sol +77 -0
  397. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  398. package/contracts/instance/module/IBundle.sol +6 -9
  399. package/contracts/instance/module/IComponents.sol +28 -18
  400. package/contracts/instance/module/IDistribution.sol +6 -6
  401. package/contracts/instance/module/IPolicy.sol +44 -36
  402. package/contracts/instance/module/IRisk.sol +4 -1
  403. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  404. package/contracts/oracle/BasicOracle.sol +47 -0
  405. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  406. package/contracts/oracle/IOracle.sol +36 -0
  407. package/contracts/oracle/IOracleComponent.sol +33 -0
  408. package/contracts/oracle/IOracleService.sol +66 -0
  409. package/contracts/oracle/Oracle.sol +156 -0
  410. package/contracts/oracle/OracleService.sol +310 -0
  411. package/contracts/oracle/OracleServiceManager.sol +39 -0
  412. package/contracts/pool/BasicPool.sol +175 -0
  413. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  414. package/contracts/pool/BundleService.sol +395 -0
  415. package/contracts/pool/BundleServiceManager.sol +39 -0
  416. package/contracts/{instance/service → pool}/IBundleService.sol +50 -37
  417. package/contracts/pool/IPoolComponent.sol +62 -0
  418. package/contracts/pool/IPoolService.sol +165 -0
  419. package/contracts/pool/Pool.sol +345 -0
  420. package/contracts/pool/PoolLib.sol +216 -0
  421. package/contracts/pool/PoolService.sol +757 -0
  422. package/contracts/pool/PoolServiceManager.sol +39 -0
  423. package/contracts/product/ApplicationService.sol +259 -0
  424. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  425. package/contracts/product/BasicProduct.sol +51 -0
  426. package/contracts/product/BasicProductAuthorization.sol +56 -0
  427. package/contracts/product/ClaimService.sol +632 -0
  428. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  429. package/contracts/{instance/service → product}/IApplicationService.sol +19 -31
  430. package/contracts/product/IClaimService.sol +135 -0
  431. package/contracts/product/IPolicyService.sol +91 -0
  432. package/contracts/product/IPricingService.sol +39 -0
  433. package/contracts/product/IProductComponent.sol +62 -0
  434. package/contracts/product/IRiskService.sol +33 -0
  435. package/contracts/product/PolicyService.sol +725 -0
  436. package/contracts/product/PolicyServiceManager.sol +39 -0
  437. package/contracts/product/PricingService.sol +304 -0
  438. package/contracts/product/PricingServiceManager.sol +39 -0
  439. package/contracts/product/Product.sol +463 -0
  440. package/contracts/product/RiskService.sol +145 -0
  441. package/contracts/product/RiskServiceManager.sol +39 -0
  442. package/contracts/registry/ChainNft.sol +79 -40
  443. package/contracts/registry/IRegistry.sol +95 -30
  444. package/contracts/registry/IRegistryService.sol +34 -40
  445. package/contracts/registry/IRelease.sol +26 -0
  446. package/contracts/registry/ITransferInterceptor.sol +1 -2
  447. package/contracts/registry/Registry.sol +460 -197
  448. package/contracts/registry/RegistryAdmin.sol +354 -0
  449. package/contracts/registry/RegistryService.sol +89 -130
  450. package/contracts/registry/RegistryServiceManager.sol +23 -32
  451. package/contracts/registry/ReleaseAdmin.sol +245 -0
  452. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  453. package/contracts/registry/ReleaseRegistry.sol +511 -0
  454. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  455. package/contracts/registry/TokenRegistry.sol +261 -64
  456. package/contracts/shared/Component.sol +227 -0
  457. package/contracts/shared/ComponentService.sol +692 -0
  458. package/contracts/shared/ComponentServiceManager.sol +38 -0
  459. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  460. package/contracts/shared/ContractLib.sol +253 -0
  461. package/contracts/shared/IComponent.sol +61 -0
  462. package/contracts/shared/IComponentService.sol +112 -0
  463. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  464. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  465. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  466. package/contracts/shared/INftOwnable.sol +4 -2
  467. package/contracts/shared/IPolicyHolder.sol +23 -14
  468. package/contracts/shared/IRegisterable.sol +23 -1
  469. package/contracts/shared/IRegistryLinked.sol +0 -1
  470. package/contracts/shared/IService.sol +12 -5
  471. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  472. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  473. package/contracts/shared/KeyValueStore.sol +131 -0
  474. package/contracts/shared/Lifecycle.sol +88 -0
  475. package/contracts/shared/NftIdSet.sol +65 -0
  476. package/contracts/shared/NftOwnable.sol +34 -27
  477. package/contracts/shared/PolicyHolder.sol +22 -41
  478. package/contracts/shared/Registerable.sol +55 -20
  479. package/contracts/shared/RegistryLinked.sol +9 -19
  480. package/contracts/shared/Service.sol +33 -40
  481. package/contracts/shared/TokenHandler.sol +321 -13
  482. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  483. package/contracts/staking/IStaking.sol +165 -0
  484. package/contracts/staking/IStakingService.sol +165 -0
  485. package/contracts/staking/StakeManagerLib.sol +224 -0
  486. package/contracts/staking/Staking.sol +526 -0
  487. package/contracts/staking/StakingLifecycle.sol +23 -0
  488. package/contracts/staking/StakingManager.sol +52 -0
  489. package/contracts/staking/StakingReader.sol +190 -0
  490. package/contracts/staking/StakingService.sol +430 -0
  491. package/contracts/staking/StakingServiceManager.sol +45 -0
  492. package/contracts/staking/StakingStore.sol +605 -0
  493. package/contracts/staking/TargetManagerLib.sol +211 -0
  494. package/contracts/{types → type}/AddressSet.sol +1 -1
  495. package/contracts/type/Amount.sol +150 -0
  496. package/contracts/{types → type}/Blocknumber.sol +26 -3
  497. package/contracts/{types → type}/ClaimId.sol +6 -1
  498. package/contracts/{types → type}/Fee.sol +24 -22
  499. package/contracts/{types → type}/Key32.sol +2 -2
  500. package/contracts/type/Key32Set.sol +62 -0
  501. package/contracts/{types → type}/NftId.sol +21 -16
  502. package/contracts/{types → type}/NftIdSet.sol +2 -2
  503. package/contracts/type/ObjectType.sol +303 -0
  504. package/contracts/{types → type}/PayoutId.sol +10 -10
  505. package/contracts/{types → type}/Referral.sol +2 -1
  506. package/contracts/type/RequestId.sol +75 -0
  507. package/contracts/type/RiskId.sol +74 -0
  508. package/contracts/type/RoleId.sol +182 -0
  509. package/contracts/type/Seconds.sol +101 -0
  510. package/contracts/type/Selector.sol +107 -0
  511. package/contracts/{types → type}/StateId.sol +41 -2
  512. package/contracts/type/String.sol +53 -0
  513. package/contracts/{types → type}/Timestamp.sol +16 -7
  514. package/contracts/{types → type}/UFixed.sol +40 -121
  515. package/contracts/{types → type}/Version.sol +19 -7
  516. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  517. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  518. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  519. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  520. package/package.json +11 -7
  521. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  522. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  523. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  524. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  525. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  526. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  528. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  529. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  530. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  531. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  533. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  534. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  536. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  537. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  538. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  540. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  543. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  545. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  547. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  550. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  552. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  554. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
  556. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  558. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  560. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  562. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  564. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  566. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1543
  575. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  577. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1449
  579. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -709
  581. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  583. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  585. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  586. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  587. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  588. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  589. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  590. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  591. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  593. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  594. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  596. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  597. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  598. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  601. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  603. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  605. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  607. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  609. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  611. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  613. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  614. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  615. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  616. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  617. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  619. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  621. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  623. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  625. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  627. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  629. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  633. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  635. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  637. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  639. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  641. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  643. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  645. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  647. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  649. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  651. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  654. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  656. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  658. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  660. package/contracts/components/Component.sol +0 -253
  661. package/contracts/components/IComponent.sol +0 -76
  662. package/contracts/components/IDistributionComponent.sol +0 -71
  663. package/contracts/components/IPoolComponent.sol +0 -113
  664. package/contracts/components/IProductComponent.sol +0 -40
  665. package/contracts/components/Pool.sol +0 -302
  666. package/contracts/components/Product.sol +0 -371
  667. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  668. package/contracts/instance/BundleManager.sol +0 -126
  669. package/contracts/instance/Cloneable.sol +0 -51
  670. package/contracts/instance/InstanceAccessManager.sol +0 -527
  671. package/contracts/instance/ObjectManager.sol +0 -82
  672. package/contracts/instance/base/ComponentService.sol +0 -121
  673. package/contracts/instance/base/KeyValueStore.sol +0 -180
  674. package/contracts/instance/base/Lifecycle.sol +0 -117
  675. package/contracts/instance/module/IAccess.sol +0 -54
  676. package/contracts/instance/module/ISetup.sol +0 -33
  677. package/contracts/instance/module/ITreasury.sol +0 -23
  678. package/contracts/instance/service/ApplicationService.sol +0 -355
  679. package/contracts/instance/service/BundleService.sol +0 -443
  680. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  681. package/contracts/instance/service/ClaimService.sol +0 -239
  682. package/contracts/instance/service/DistributionService.sol +0 -431
  683. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  684. package/contracts/instance/service/IClaimService.sol +0 -92
  685. package/contracts/instance/service/IPolicyService.sol +0 -139
  686. package/contracts/instance/service/IPoolService.sol +0 -102
  687. package/contracts/instance/service/IProductService.sol +0 -40
  688. package/contracts/instance/service/PolicyService.sol +0 -571
  689. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  690. package/contracts/instance/service/PoolService.sol +0 -336
  691. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  692. package/contracts/instance/service/ProductService.sol +0 -210
  693. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  694. package/contracts/registry/RegistryAccessManager.sol +0 -216
  695. package/contracts/registry/ReleaseManager.sol +0 -324
  696. package/contracts/shared/ContractDeployerLib.sol +0 -72
  697. package/contracts/test/TestFee.sol +0 -25
  698. package/contracts/test/TestRegisterable.sol +0 -18
  699. package/contracts/test/TestRoleId.sol +0 -14
  700. package/contracts/test/TestService.sol +0 -25
  701. package/contracts/test/TestToken.sol +0 -26
  702. package/contracts/test/TestVersion.sol +0 -44
  703. package/contracts/test/TestVersionable.sol +0 -17
  704. package/contracts/types/Amount.sol +0 -70
  705. package/contracts/types/ChainId.sol +0 -38
  706. package/contracts/types/NumberId.sol +0 -52
  707. package/contracts/types/ObjectType.sol +0 -157
  708. package/contracts/types/RiskId.sol +0 -43
  709. package/contracts/types/RoleId.sol +0 -97
  710. package/contracts/types/Seconds.sol +0 -54
  711. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,101 @@
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.eq,
13
+ SecondsLib.gt,
14
+ SecondsLib.lt,
15
+ SecondsLib.toInt,
16
+ SecondsLib.add
17
+ } for Seconds global;
18
+
19
+ function SecondsEq(Seconds duration1, Seconds duration2) pure returns (bool) {
20
+ return SecondsLib.eq(duration1, duration2);
21
+ }
22
+
23
+ function SecondsGt(Seconds duration1, Seconds duration2) pure returns (bool) {
24
+ return SecondsLib.gt(duration1, duration2);
25
+ }
26
+
27
+ function SecondsAdd(Seconds duration1, Seconds duration2) pure returns (Seconds) {
28
+ return SecondsLib.add(duration1, duration2);
29
+ }
30
+
31
+
32
+ library SecondsLib {
33
+
34
+ error ErrorSecondsLibDurationTooBig(uint256 duration);
35
+
36
+ function zero() public pure returns (Seconds) {
37
+ return Seconds.wrap(0);
38
+ }
39
+
40
+ function max() public pure returns (Seconds) {
41
+ return Seconds.wrap(_max());
42
+ }
43
+
44
+ function oneDay() public pure returns (Seconds duration) {
45
+ return Seconds.wrap(24 * 3600);
46
+ }
47
+
48
+ function oneYear() public pure returns (Seconds duration) {
49
+ return Seconds.wrap(365 * 24 * 3600);
50
+ }
51
+
52
+ /// @dev converts the uint duration into Seconds
53
+ /// function reverts if duration is exceeding max Seconds value
54
+ function toSeconds(uint256 duration) public pure returns (Seconds) {
55
+ // if(duration > type(uint40).max) {
56
+ if(duration > _max()) {
57
+ revert ErrorSecondsLibDurationTooBig(duration);
58
+ }
59
+
60
+ return Seconds.wrap(uint40(duration));
61
+ }
62
+
63
+ /// @dev return true if duration equals 0
64
+ function eqz(Seconds duration) public pure returns (bool) {
65
+ return Seconds.unwrap(duration) == 0;
66
+ }
67
+
68
+ /// @dev return true if duration is larger than 0
69
+ function gtz(Seconds duration) public pure returns (bool) {
70
+ return Seconds.unwrap(duration) > 0;
71
+ }
72
+
73
+ /// @dev return true iff duration1 and duration2 are the same
74
+ function eq(Seconds duration1, Seconds duration2) public pure returns (bool) {
75
+ return Seconds.unwrap(duration1) == Seconds.unwrap(duration2);
76
+ }
77
+
78
+ /// @dev return true if duration1 is larger than duration2
79
+ function gt(Seconds duration1, Seconds duration2) public pure returns (bool) {
80
+ return Seconds.unwrap(duration1) > Seconds.unwrap(duration2);
81
+ }
82
+
83
+ /// @dev return true if duration1 is smaller than duration2
84
+ function lt(Seconds duration1, Seconds duration2) public pure returns (bool) {
85
+ return Seconds.unwrap(duration1) < Seconds.unwrap(duration2);
86
+ }
87
+
88
+ /// @dev return add duration1 and duration2
89
+ function add(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
90
+ return Seconds.wrap(Seconds.unwrap(duration1) + Seconds.unwrap(duration2));
91
+ }
92
+
93
+ function toInt(Seconds duration) public pure returns (uint256) {
94
+ return uint256(uint40(Seconds.unwrap(duration)));
95
+ }
96
+
97
+ function _max() internal pure returns (uint40) {
98
+ // IMPORTANT: type nees to match with actual definition for Seconds
99
+ return type(uint40).max;
100
+ }
101
+ }
@@ -0,0 +1,107 @@
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.toString,
12
+ SelectorLib.eqz
13
+ } for Selector global;
14
+
15
+ // pure free functions for operators
16
+ function eqSelector(Selector s1, Selector s2) pure returns (bool isSame) {
17
+ return SelectorLib.eq(s1, s2);
18
+ }
19
+
20
+ function neSelector(Selector s1, Selector s2) pure returns (bool isDifferent) {
21
+ return SelectorLib.ne(s1, s2);
22
+ }
23
+
24
+ // library functions that operate on user defined type
25
+ library SelectorLib {
26
+
27
+ function zero() public pure returns (Selector) {
28
+ return Selector.wrap("");
29
+ }
30
+
31
+ function eqz(Selector s) public pure returns (bool) {
32
+ return Selector.unwrap(s) == "";
33
+ }
34
+
35
+ function eq(Selector s1, Selector s2) public pure returns (bool isSame) {
36
+ return Selector.unwrap(s1) == Selector.unwrap(s2);
37
+ }
38
+
39
+ function ne(Selector s1, Selector s2) public pure returns (bool isDifferent) {
40
+ return Selector.unwrap(s1) != Selector.unwrap(s2);
41
+ }
42
+
43
+ function toSelector(bytes4 selector) public pure returns (Selector) {
44
+ return Selector.wrap(selector);
45
+ }
46
+
47
+ function toBytes4(Selector s) public pure returns (bytes4) {
48
+ return Selector.unwrap(s);
49
+ }
50
+
51
+ function toString(Selector s) public pure returns (string memory) {
52
+ return string(abi.encode(Selector.unwrap(s)));
53
+ }
54
+ }
55
+
56
+ // selector specific set library
57
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
58
+ library SelectorSetLib {
59
+
60
+ struct Set {
61
+ Selector[] selectors;
62
+ mapping(Selector selector => uint256 index) at;
63
+ }
64
+
65
+ function add(Set storage set, Selector selector) external {
66
+ // selector already in set
67
+ if (set.at[selector] > 0) { return; }
68
+
69
+ set.selectors.push(selector);
70
+ set.at[selector] = set.selectors.length;
71
+ }
72
+
73
+ function remove(Set storage set, Selector selector) external {
74
+ uint256 selectorIndex = set.at[selector];
75
+
76
+ // selector not in set
77
+ if (selectorIndex == 0) {return; }
78
+
79
+ uint256 toDeleteIndex = selectorIndex - 1;
80
+ uint256 lastIndex = set.selectors.length - 1;
81
+
82
+ if (lastIndex != toDeleteIndex) {
83
+ Selector lastSelector = set.selectors[lastIndex];
84
+ set.selectors[toDeleteIndex] = lastSelector;
85
+ set.at[lastSelector] = selectorIndex; // Replace lastValue's index to valueIndex
86
+ }
87
+
88
+ set.selectors.pop();
89
+ delete set.at[selector];
90
+ }
91
+
92
+ function isEmpty(Set storage set) external view returns(bool empty) {
93
+ return set.selectors.length == 0;
94
+ }
95
+
96
+ function contains(Set storage set, Selector selector) external view returns(bool inSet) {
97
+ return set.at[selector] > 0;
98
+ }
99
+
100
+ function size(Set storage set) external view returns(uint256 length) {
101
+ return set.selectors.length;
102
+ }
103
+
104
+ function at(Set storage set, uint256 index) external view returns(Selector selector) {
105
+ return set.selectors[index];
106
+ }
107
+ }
@@ -9,11 +9,37 @@ using {
9
9
  eqStateId as ==,
10
10
  neStateId as !=,
11
11
  StateIdLib.eqz,
12
+ StateIdLib.eq,
12
13
  StateIdLib.gtz,
13
14
  StateIdLib.toInt
14
15
  } for StateId global;
15
16
 
16
17
  // general pure free functions
18
+
19
+ function INITIAL() pure returns (StateId) {
20
+ return toStateId(1);
21
+ }
22
+
23
+ function SCHEDULED() pure returns (StateId) {
24
+ return toStateId(2);
25
+ }
26
+
27
+ function DEPLOYING() pure returns (StateId) {
28
+ return toStateId(3);
29
+ }
30
+
31
+ function DEPLOYED() pure returns (StateId) {
32
+ return toStateId(4);
33
+ }
34
+
35
+ function ACTIVE() pure returns (StateId) {
36
+ return toStateId(5);
37
+ }
38
+
39
+ function SKIPPED() pure returns (StateId) {
40
+ return toStateId(6);
41
+ }
42
+
17
43
  function APPLIED() pure returns (StateId) {
18
44
  return toStateId(10);
19
45
  }
@@ -42,8 +68,16 @@ function EXPECTED() pure returns (StateId) {
42
68
  return toStateId(60);
43
69
  }
44
70
 
45
- function ACTIVE() pure returns (StateId) {
46
- return toStateId(100);
71
+ function FULFILLED() pure returns (StateId) {
72
+ return toStateId(70);
73
+ }
74
+
75
+ function FAILED() pure returns (StateId) {
76
+ return toStateId(7);
77
+ }
78
+
79
+ function CANCELLED() pure returns (StateId) {
80
+ return toStateId(72);
47
81
  }
48
82
 
49
83
  function PAUSED() pure returns (StateId) {
@@ -88,6 +122,11 @@ function neStateId(StateId a, StateId b) pure returns (bool isDifferent) {
88
122
 
89
123
  // library functions that operate on user defined type
90
124
  library StateIdLib {
125
+
126
+ function zero() public pure returns (StateId) {
127
+ return StateId.wrap(0);
128
+ }
129
+
91
130
  /// @dev Converts the NftId to a uint256.
92
131
  function toInt(StateId stateId) public pure returns (uint96) {
93
132
  return uint96(StateId.unwrap(stateId));
@@ -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
+ }
@@ -12,6 +12,12 @@ using {
12
12
  lteTimestamp as <=,
13
13
  eqTimestamp as ==,
14
14
  neTimestamp as !=,
15
+ TimestampLib.eq,
16
+ TimestampLib.ne,
17
+ TimestampLib.gt,
18
+ TimestampLib.gte,
19
+ TimestampLib.lt,
20
+ TimestampLib.lte,
15
21
  TimestampLib.gtz,
16
22
  TimestampLib.eqz,
17
23
  TimestampLib.addSeconds,
@@ -48,26 +54,29 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
48
54
  return Timestamp.unwrap(a) != Timestamp.unwrap(b);
49
55
  }
50
56
 
51
- /// @dev Converts the uint256 to a Timestamp.
52
- function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
53
- return Timestamp.wrap(uint40(timestamp));
54
- }
55
-
56
57
  // TODO move to TimestampLib and rename to zero()
57
58
  /// @dev Return the Timestamp zero (0)
58
59
  function zeroTimestamp() pure returns (Timestamp) {
59
- return toTimestamp(0);
60
+ return Timestamp.wrap(0);
60
61
  }
61
62
 
62
63
  library TimestampLib {
63
64
 
64
65
  function zero() public pure returns (Timestamp) {
65
- return toTimestamp(0);
66
+ return Timestamp.wrap(0);
67
+ }
68
+
69
+ function max() public pure returns (Timestamp) {
70
+ return Timestamp.wrap(type(uint40).max);
66
71
  }
67
72
 
68
73
  function blockTimestamp() public view returns (Timestamp) {
69
74
  return Timestamp.wrap(uint40(block.timestamp));
70
75
  }
76
+
77
+ function toTimestamp(uint256 timestamp) public pure returns (Timestamp) {
78
+ return Timestamp.wrap(uint40(timestamp));
79
+ }
71
80
 
72
81
  /// @dev return true if Timestamp a is after Timestamp b
73
82
  function gt(Timestamp a, Timestamp b) public pure returns (bool isAfter) {
@@ -1,6 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
5
+
4
6
  /// @dev UFixed is a fixed point number with 18 decimals precision.
5
7
  type UFixed is uint256;
6
8
 
@@ -15,8 +17,10 @@ using {
15
17
  lteUFixed as <=,
16
18
  eqUFixed as ==,
17
19
  neUFixed as !=,
20
+ UFixedLib.gt,
21
+ UFixedLib.gtz,
18
22
  UFixedLib.toInt,
19
- UFixedLib.gtz
23
+ UFixedLib.toInt1000
20
24
  } for UFixed global;
21
25
 
22
26
  // TODO move to UFixedLib and rename to zero()
@@ -29,20 +33,24 @@ function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
29
33
  }
30
34
 
31
35
  function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
32
- require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
36
+ if (a < b) {
37
+ revert UFixedLib.UFixedLibNegativeResult();
38
+ }
33
39
  return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
34
40
  }
35
41
 
36
42
  function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
37
43
  return
38
- UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 18));
44
+ UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 18));
39
45
  }
40
46
 
41
47
  function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
42
- require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
43
-
48
+ if (UFixed.unwrap(b) == 0) {
49
+ revert UFixedLib.UFixedLibDivisionByZero();
50
+ }
51
+
44
52
  return
45
- UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
53
+ UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
46
54
  }
47
55
 
48
56
  function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
@@ -85,115 +93,13 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
85
93
  return b - a;
86
94
  }
87
95
 
88
- /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
89
- library MathLib {
90
-
91
- enum Rounding {
92
- Down, // Toward negative infinity
93
- Up, // Toward infinity
94
- Zero // Toward zero
95
- }
96
-
97
- /**
98
- * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
99
- * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)
100
- * with further edits by Uniswap Labs also under MIT license.
101
- */
102
- function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {
103
- unchecked {
104
- // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use
105
- // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256
106
- // variables such that product = prod1 * 2^256 + prod0.
107
- uint256 prod0; // Least significant 256 bits of the product
108
- uint256 prod1; // Most significant 256 bits of the product
109
- assembly {
110
- let mm := mulmod(x, y, not(0))
111
- prod0 := mul(x, y)
112
- prod1 := sub(sub(mm, prod0), lt(mm, prod0))
113
- }
114
-
115
- // Handle non-overflow cases, 256 by 256 division.
116
- if (prod1 == 0) {
117
- // Solidity will revert if denominator == 0, unlike the div opcode on its own.
118
- // The surrounding unchecked block does not change this fact.
119
- // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.
120
- return prod0 / denominator;
121
- }
122
-
123
- // Make sure the result is less than 2^256. Also prevents denominator == 0.
124
- require(denominator > prod1, "Math: mulDiv overflow");
125
-
126
- ///////////////////////////////////////////////
127
- // 512 by 256 division.
128
- ///////////////////////////////////////////////
129
-
130
- // Make division exact by subtracting the remainder from [prod1 prod0].
131
- uint256 remainder;
132
- assembly {
133
- // Compute remainder using mulmod.
134
- remainder := mulmod(x, y, denominator)
135
-
136
- // Subtract 256 bit number from 512 bit number.
137
- prod1 := sub(prod1, gt(remainder, prod0))
138
- prod0 := sub(prod0, remainder)
139
- }
140
-
141
- // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.
142
- // See https://cs.stackexchange.com/q/138556/92363.
143
-
144
- // Does not overflow because the denominator cannot be zero at this stage in the function.
145
- uint256 twos = denominator & (~denominator + 1);
146
- assembly {
147
- // Divide denominator by twos.
148
- denominator := div(denominator, twos)
149
-
150
- // Divide [prod1 prod0] by twos.
151
- prod0 := div(prod0, twos)
152
-
153
- // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.
154
- twos := add(div(sub(0, twos), twos), 1)
155
- }
156
-
157
- // Shift in bits from prod1 into prod0.
158
- prod0 |= prod1 * twos;
159
-
160
- // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such
161
- // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for
162
- // four bits. That is, denominator * inv = 1 mod 2^4.
163
- uint256 inverse = (3 * denominator) ^ 2;
164
-
165
- // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works
166
- // in modular arithmetic, doubling the correct bits in each step.
167
- inverse *= 2 - denominator * inverse; // inverse mod 2^8
168
- inverse *= 2 - denominator * inverse; // inverse mod 2^16
169
- inverse *= 2 - denominator * inverse; // inverse mod 2^32
170
- inverse *= 2 - denominator * inverse; // inverse mod 2^64
171
- inverse *= 2 - denominator * inverse; // inverse mod 2^128
172
- inverse *= 2 - denominator * inverse; // inverse mod 2^256
173
-
174
- // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.
175
- // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is
176
- // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1
177
- // is no longer required.
178
- result = prod0 * inverse;
179
- return result;
180
- }
181
- }
182
-
183
- /**
184
- * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.
185
- */
186
- function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {
187
- uint256 result = mulDiv(x, y, denominator);
188
- if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {
189
- result += 1;
190
- }
191
- return result;
192
- }
96
+ library UFixedLib {
97
+ error UFixedLibNegativeResult();
98
+ error UFixedLibDivisionByZero();
193
99
 
194
- }
100
+ error UFixedLibExponentTooSmall(int8 exp);
101
+ error UFixedLibExponentTooLarge(int8 exp);
195
102
 
196
- library UFixedLib {
197
103
  int8 public constant EXP = 18;
198
104
  uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
199
105
  uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
@@ -220,9 +126,13 @@ library UFixedLib {
220
126
 
221
127
  /// @dev Converts the uint256 to a UFixed with given exponent.
222
128
  function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
223
- require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
224
- require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
225
-
129
+ if (EXP + exp < 0) {
130
+ revert UFixedLibExponentTooSmall(exp);
131
+ }
132
+ if (EXP + exp > 64) {
133
+ revert UFixedLibExponentTooLarge(exp);
134
+ }
135
+
226
136
  return UFixed.wrap(a * 10 ** uint8(EXP + exp));
227
137
  }
228
138
 
@@ -236,27 +146,32 @@ library UFixedLib {
236
146
  return toIntWithRounding(a, ROUNDING_HALF_UP());
237
147
  }
238
148
 
149
+ /// @dev Converts a UFixed to a uint256.
150
+ function toInt1000(UFixed a) public pure returns (uint256) {
151
+ return toIntWithRounding(toUFixed(1000) * a, ROUNDING_HALF_UP());
152
+ }
153
+
239
154
  /// @dev Converts a UFixed to a uint256 with given rounding mode.
240
155
  function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
241
156
  if (rounding == ROUNDING_HALF_UP()) {
242
157
  return
243
- MathLib.mulDiv(
158
+ Math.mulDiv(
244
159
  UFixed.unwrap(a) + MULTIPLIER_HALF,
245
160
  1,
246
161
  MULTIPLIER,
247
- MathLib.Rounding.Down
162
+ Math.Rounding.Floor
248
163
  );
249
164
  } else if (rounding == ROUNDING_DOWN()) {
250
165
  return
251
- MathLib.mulDiv(
166
+ Math.mulDiv(
252
167
  UFixed.unwrap(a),
253
168
  1,
254
169
  MULTIPLIER,
255
- MathLib.Rounding.Down
170
+ Math.Rounding.Floor
256
171
  );
257
172
  } else {
258
173
  return
259
- MathLib.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, MathLib.Rounding.Up);
174
+ Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Ceil);
260
175
  }
261
176
  }
262
177
 
@@ -319,6 +234,10 @@ library UFixedLib {
319
234
  return UFixed.wrap(0);
320
235
  }
321
236
 
237
+ function one() public pure returns (UFixed) {
238
+ return UFixed.wrap(MULTIPLIER);
239
+ }
240
+
322
241
  /// @dev return the absolute delta between two UFixed numbers
323
242
  function delta(UFixed a, UFixed b) public pure returns (UFixed) {
324
243
  return deltaUFixed(a, b);
@@ -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,7 +7,9 @@ using {
7
7
  versionPartGt as >,
8
8
  versionPartEq as ==,
9
9
  versionPartNe as !=,
10
- VersionPartLib.toInt
10
+ VersionPartLib.eqz,
11
+ VersionPartLib.toInt,
12
+ VersionPartLib.isValidRelease
11
13
  }
12
14
  for VersionPart global;
13
15
 
@@ -16,8 +18,17 @@ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) {
16
18
  function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
17
19
 
18
20
  library VersionPartLib {
19
- function toInt(VersionPart a) external pure returns(uint) { return VersionPart.unwrap(a); }
20
- function toVersionPart(uint256 a) external pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
21
+ function releaseMin() public pure returns (VersionPart) { return toVersionPart(3); }
22
+ function releaseMax() public pure returns (VersionPart) { return toVersionPart(99); }
23
+
24
+ function isValidRelease(VersionPart release) external pure returns(bool) {
25
+ uint256 releaseInt = VersionPart.unwrap(release);
26
+ return 3 <= releaseInt && releaseInt <= 99;
27
+ }
28
+
29
+ function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
30
+ function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
31
+ function toVersionPart(uint256 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
21
32
  }
22
33
 
23
34
  type Version is uint24; // contains major,minor,patch version parts
@@ -36,6 +47,7 @@ function versionGt(Version a, Version b) pure returns(bool isGreaterThan) { retu
36
47
  function versionEq(Version a, Version b) pure returns(bool isSame) { return Version.unwrap(a) == Version.unwrap(b); }
37
48
 
38
49
  library VersionLib {
50
+
39
51
  function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
40
52
 
41
53
  function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
@@ -73,9 +85,9 @@ library VersionLib {
73
85
  );
74
86
  }
75
87
 
76
- function toVersionPart(uint256 versionPart) external pure returns(VersionPart) {
77
- return VersionPart.wrap(uint8(versionPart));
78
- }
88
+ // function toVersionPart(uint256 versionPart) public pure returns(VersionPart) {
89
+ // return VersionPart.wrap(uint8(versionPart));
90
+ // }
79
91
 
80
92
  function toVersion(
81
93
  uint256 major,
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Version} from "../types/Version.sol";
4
+ import {Version} from "../type/Version.sol";
5
5
 
6
6
  /// IMPORTANT
7
7
  // Upgradeable contract MUST: