@etherisc/gif-next 0.0.2-917cede-703 → 0.0.2-91b514c-961

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 (726) hide show
  1. package/README.md +130 -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 +1494 -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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1209 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +285 -324
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1580 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +274 -275
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +310 -329
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1388 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +323 -2085
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +281 -106
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +585 -2824
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1672 -617
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +310 -396
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +163 -170
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3728 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +253 -241
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +320 -465
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +246 -75
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +574 -304
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +368 -426
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  152. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +455 -482
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  160. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +157 -145
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +297 -253
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  166. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IPricingService.sol/IPricingService.json} +248 -227
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  170. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +95 -65
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +911 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +764 -0
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  182. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  197. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +361 -250
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +174 -109
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  217. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  218. package/artifacts/contracts/shared/Component.sol/Component.json +686 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  223. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  224. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +60 -182
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  234. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +137 -131
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1127 -0
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  239. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  240. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  251. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  257. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  259. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  271. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  272. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  280. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +736 -590
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  287. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  329. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  341. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  344. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  345. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  347. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  349. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  351. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  357. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  358. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  359. package/contracts/accounting/AccountingService.sol +262 -0
  360. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  361. package/contracts/accounting/IAccountingService.sol +45 -0
  362. package/contracts/authorization/AccessAdmin.sol +704 -0
  363. package/contracts/authorization/AccessAdminLib.sol +183 -0
  364. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  365. package/contracts/authorization/Authorization.sol +365 -0
  366. package/contracts/authorization/IAccess.sol +57 -0
  367. package/contracts/authorization/IAccessAdmin.sol +170 -0
  368. package/contracts/authorization/IAuthorization.sol +80 -0
  369. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  370. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  371. package/contracts/distribution/BasicDistribution.sol +141 -0
  372. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  373. package/contracts/distribution/Distribution.sol +244 -0
  374. package/contracts/distribution/DistributionService.sol +385 -0
  375. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  376. package/contracts/distribution/IDistributionComponent.sol +43 -0
  377. package/contracts/distribution/IDistributionService.sol +103 -0
  378. package/contracts/examples/fire/DamageLevel.sol +59 -0
  379. package/contracts/examples/fire/FirePool.sol +86 -0
  380. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  381. package/contracts/examples/fire/FireProduct.sol +433 -0
  382. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  383. package/contracts/examples/fire/FireUSD.sol +26 -0
  384. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  385. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  387. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  388. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  390. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  391. package/contracts/instance/BundleSet.sol +130 -0
  392. package/contracts/instance/IInstance.sol +79 -75
  393. package/contracts/instance/IInstanceService.sol +56 -36
  394. package/contracts/instance/Instance.sol +208 -214
  395. package/contracts/instance/InstanceAdmin.sol +450 -0
  396. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  397. package/contracts/instance/InstanceReader.sol +397 -64
  398. package/contracts/instance/InstanceService.sol +326 -345
  399. package/contracts/instance/InstanceServiceManager.sol +14 -29
  400. package/contracts/instance/InstanceStore.sol +298 -0
  401. package/contracts/instance/RiskSet.sol +118 -0
  402. package/contracts/instance/base/BalanceStore.sol +123 -0
  403. package/contracts/instance/base/Cloneable.sol +28 -0
  404. package/contracts/instance/base/ObjectCounter.sol +20 -0
  405. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  406. package/contracts/instance/base/ObjectSet.sol +77 -0
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +9 -11
  409. package/contracts/instance/module/IComponents.sol +44 -23
  410. package/contracts/instance/module/IDistribution.sol +25 -12
  411. package/contracts/instance/module/IPolicy.sol +67 -39
  412. package/contracts/instance/module/IRisk.sol +6 -1
  413. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  414. package/contracts/oracle/BasicOracle.sol +45 -0
  415. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  416. package/contracts/oracle/IOracle.sol +41 -0
  417. package/contracts/oracle/IOracleComponent.sol +33 -0
  418. package/contracts/oracle/IOracleService.sol +66 -0
  419. package/contracts/oracle/Oracle.sol +154 -0
  420. package/contracts/oracle/OracleService.sol +310 -0
  421. package/contracts/oracle/OracleServiceManager.sol +39 -0
  422. package/contracts/pool/BasicPool.sol +173 -0
  423. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  424. package/contracts/pool/BundleService.sol +395 -0
  425. package/contracts/pool/BundleServiceManager.sol +39 -0
  426. package/contracts/{instance/service → pool}/IBundleService.sol +50 -37
  427. package/contracts/pool/IPoolComponent.sol +62 -0
  428. package/contracts/pool/IPoolService.sol +165 -0
  429. package/contracts/pool/Pool.sol +343 -0
  430. package/contracts/pool/PoolLib.sol +216 -0
  431. package/contracts/pool/PoolService.sol +755 -0
  432. package/contracts/pool/PoolServiceManager.sol +39 -0
  433. package/contracts/product/ApplicationService.sol +274 -0
  434. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  435. package/contracts/product/BasicProduct.sol +49 -0
  436. package/contracts/product/BasicProductAuthorization.sol +56 -0
  437. package/contracts/product/ClaimService.sol +632 -0
  438. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  439. package/contracts/{instance/service → product}/IApplicationService.sol +22 -31
  440. package/contracts/product/IClaimService.sol +135 -0
  441. package/contracts/product/IPolicyService.sol +95 -0
  442. package/contracts/product/IPricingService.sol +40 -0
  443. package/contracts/product/IProductComponent.sol +62 -0
  444. package/contracts/product/IRiskService.sol +33 -0
  445. package/contracts/product/PolicyService.sol +664 -0
  446. package/contracts/product/PolicyServiceLib.sol +65 -0
  447. package/contracts/product/PolicyServiceManager.sol +39 -0
  448. package/contracts/product/PricingService.sol +309 -0
  449. package/contracts/product/PricingServiceManager.sol +39 -0
  450. package/contracts/product/Product.sol +467 -0
  451. package/contracts/product/RiskService.sol +154 -0
  452. package/contracts/product/RiskServiceManager.sol +39 -0
  453. package/contracts/registry/ChainNft.sol +79 -40
  454. package/contracts/registry/IRegistry.sol +99 -30
  455. package/contracts/registry/IRegistryService.sol +34 -40
  456. package/contracts/registry/IRelease.sol +29 -0
  457. package/contracts/registry/ITransferInterceptor.sol +1 -2
  458. package/contracts/registry/Registry.sol +460 -197
  459. package/contracts/registry/RegistryAdmin.sol +258 -0
  460. package/contracts/registry/RegistryAuthorization.sol +267 -0
  461. package/contracts/registry/RegistryService.sol +89 -130
  462. package/contracts/registry/RegistryServiceManager.sol +23 -32
  463. package/contracts/registry/ReleaseAdmin.sol +253 -0
  464. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  465. package/contracts/registry/ReleaseRegistry.sol +517 -0
  466. package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
  467. package/contracts/registry/TokenRegistry.sol +264 -64
  468. package/contracts/shared/Component.sol +210 -0
  469. package/contracts/shared/ComponentService.sol +654 -0
  470. package/contracts/shared/ComponentServiceManager.sol +38 -0
  471. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  472. package/contracts/shared/ContractLib.sol +347 -0
  473. package/contracts/shared/IComponent.sol +58 -0
  474. package/contracts/shared/IComponentService.sol +110 -0
  475. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  476. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  477. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  478. package/contracts/shared/INftOwnable.sol +4 -2
  479. package/contracts/shared/IPolicyHolder.sol +23 -14
  480. package/contracts/shared/IRegisterable.sol +23 -1
  481. package/contracts/shared/IRegistryLinked.sol +0 -1
  482. package/contracts/shared/IService.sol +12 -5
  483. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  484. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  485. package/contracts/shared/KeyValueStore.sol +131 -0
  486. package/contracts/shared/Lifecycle.sol +88 -0
  487. package/contracts/shared/NftIdSet.sol +65 -0
  488. package/contracts/shared/NftOwnable.sol +34 -27
  489. package/contracts/shared/PolicyHolder.sol +22 -41
  490. package/contracts/shared/Registerable.sol +52 -20
  491. package/contracts/shared/RegistryLinked.sol +9 -19
  492. package/contracts/shared/Service.sol +33 -40
  493. package/contracts/shared/TokenHandler.sol +322 -13
  494. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  495. package/contracts/staking/IStaking.sol +179 -0
  496. package/contracts/staking/IStakingService.sol +172 -0
  497. package/contracts/staking/Staking.sol +546 -0
  498. package/contracts/staking/StakingLib.sol +281 -0
  499. package/contracts/staking/StakingLifecycle.sol +23 -0
  500. package/contracts/staking/StakingManager.sol +52 -0
  501. package/contracts/staking/StakingReader.sol +180 -0
  502. package/contracts/staking/StakingService.sol +464 -0
  503. package/contracts/staking/StakingServiceManager.sol +45 -0
  504. package/contracts/staking/StakingStore.sol +606 -0
  505. package/contracts/staking/TargetManagerLib.sol +211 -0
  506. package/contracts/{types → type}/AddressSet.sol +1 -1
  507. package/contracts/type/Amount.sol +150 -0
  508. package/contracts/{types → type}/Blocknumber.sol +26 -3
  509. package/contracts/{types → type}/ClaimId.sol +6 -1
  510. package/contracts/{types → type}/Fee.sol +28 -26
  511. package/contracts/{types → type}/Key32.sol +2 -2
  512. package/contracts/type/Key32Set.sol +62 -0
  513. package/contracts/{types → type}/NftId.sol +21 -16
  514. package/contracts/{types → type}/NftIdSet.sol +2 -2
  515. package/contracts/type/ObjectType.sol +294 -0
  516. package/contracts/{types → type}/PayoutId.sol +10 -10
  517. package/contracts/{types → type}/Referral.sol +2 -1
  518. package/contracts/type/RequestId.sol +75 -0
  519. package/contracts/type/RiskId.sol +75 -0
  520. package/contracts/type/RoleId.sol +182 -0
  521. package/contracts/type/Seconds.sol +101 -0
  522. package/contracts/type/Selector.sol +107 -0
  523. package/contracts/{types → type}/StateId.sol +41 -2
  524. package/contracts/type/String.sol +53 -0
  525. package/contracts/{types → type}/Timestamp.sol +16 -7
  526. package/contracts/type/UFixed.sol +262 -0
  527. package/contracts/{types → type}/Version.sol +58 -7
  528. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  529. package/contracts/{shared → upgradeability}/ProxyManager.sol +104 -39
  530. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  531. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  532. package/package.json +12 -8
  533. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  534. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  535. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  540. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  541. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  542. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  543. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  545. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  546. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  548. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  550. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  553. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  555. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  557. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  559. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  562. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  564. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  566. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
  568. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  570. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  572. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  574. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  576. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  578. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1519
  587. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -745
  589. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1433
  591. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -701
  593. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  595. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  597. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  598. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  599. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  600. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  601. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  603. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  604. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  605. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  606. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  607. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  608. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  609. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  610. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  613. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  615. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  617. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  619. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  621. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  623. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  625. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  626. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  627. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  628. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  629. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  631. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  633. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  635. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  637. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  639. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  641. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  643. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  645. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  646. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  647. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  649. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  651. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  653. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  655. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  657. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  659. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  661. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  663. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  666. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  668. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  670. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  672. package/contracts/components/Component.sol +0 -253
  673. package/contracts/components/Distribution.sol +0 -284
  674. package/contracts/components/IComponent.sol +0 -76
  675. package/contracts/components/IDistributionComponent.sol +0 -71
  676. package/contracts/components/IPoolComponent.sol +0 -113
  677. package/contracts/components/IProductComponent.sol +0 -40
  678. package/contracts/components/Pool.sol +0 -302
  679. package/contracts/components/Product.sol +0 -371
  680. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  681. package/contracts/instance/BundleManager.sol +0 -126
  682. package/contracts/instance/Cloneable.sol +0 -51
  683. package/contracts/instance/InstanceAccessManager.sol +0 -527
  684. package/contracts/instance/ObjectManager.sol +0 -82
  685. package/contracts/instance/base/ComponentService.sol +0 -121
  686. package/contracts/instance/base/KeyValueStore.sol +0 -180
  687. package/contracts/instance/base/Lifecycle.sol +0 -117
  688. package/contracts/instance/module/IAccess.sol +0 -54
  689. package/contracts/instance/module/ISetup.sol +0 -33
  690. package/contracts/instance/module/ITreasury.sol +0 -23
  691. package/contracts/instance/service/ApplicationService.sol +0 -355
  692. package/contracts/instance/service/BundleService.sol +0 -443
  693. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  694. package/contracts/instance/service/ClaimService.sol +0 -239
  695. package/contracts/instance/service/DistributionService.sol +0 -431
  696. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  697. package/contracts/instance/service/IClaimService.sol +0 -92
  698. package/contracts/instance/service/IDistributionService.sol +0 -99
  699. package/contracts/instance/service/IPolicyService.sol +0 -137
  700. package/contracts/instance/service/IPoolService.sol +0 -102
  701. package/contracts/instance/service/IProductService.sol +0 -40
  702. package/contracts/instance/service/PolicyService.sol +0 -545
  703. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  704. package/contracts/instance/service/PoolService.sol +0 -336
  705. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  706. package/contracts/instance/service/ProductService.sol +0 -210
  707. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  708. package/contracts/registry/RegistryAccessManager.sol +0 -216
  709. package/contracts/registry/ReleaseManager.sol +0 -324
  710. package/contracts/shared/ContractDeployerLib.sol +0 -72
  711. package/contracts/test/TestFee.sol +0 -25
  712. package/contracts/test/TestRegisterable.sol +0 -18
  713. package/contracts/test/TestRoleId.sol +0 -14
  714. package/contracts/test/TestService.sol +0 -25
  715. package/contracts/test/TestToken.sol +0 -26
  716. package/contracts/test/TestVersion.sol +0 -44
  717. package/contracts/test/TestVersionable.sol +0 -17
  718. package/contracts/types/Amount.sol +0 -70
  719. package/contracts/types/ChainId.sol +0 -38
  720. package/contracts/types/NumberId.sol +0 -52
  721. package/contracts/types/ObjectType.sol +0 -157
  722. package/contracts/types/RiskId.sol +0 -43
  723. package/contracts/types/RoleId.sol +0 -97
  724. package/contracts/types/Seconds.sol +0 -54
  725. package/contracts/types/UFixed.sol +0 -326
  726. /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) {
@@ -0,0 +1,262 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
5
+
6
+ /// @dev UFixed is a 160-bit fixed point number with 15 decimals precision.
7
+ type UFixed is uint160;
8
+
9
+ using {
10
+ addUFixed as +,
11
+ subUFixed as -,
12
+ mulUFixed as *,
13
+ divUFixed as /,
14
+ gtUFixed as >,
15
+ gteUFixed as >=,
16
+ ltUFixed as <,
17
+ lteUFixed as <=,
18
+ eqUFixed as ==,
19
+ neUFixed as !=,
20
+ UFixedLib.gt,
21
+ UFixedLib.gtz,
22
+ UFixedLib.toInt,
23
+ UFixedLib.toInt1000
24
+ } for UFixed global;
25
+
26
+ // TODO move to UFixedLib and rename to zero()
27
+ function zeroUFixed() pure returns (UFixed zero) {
28
+ return UFixed.wrap(0);
29
+ }
30
+
31
+ function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
32
+ return UFixed.wrap(UFixed.unwrap(a) + UFixed.unwrap(b));
33
+ }
34
+
35
+ function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
36
+ if (a < b) {
37
+ revert UFixedLib.UFixedLibNegativeResult();
38
+ }
39
+ return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
40
+ }
41
+
42
+ function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
43
+ return
44
+ UFixed.wrap(uint160(Math.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 15)));
45
+ }
46
+
47
+ function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
48
+ if (UFixed.unwrap(b) == 0) {
49
+ revert UFixedLib.UFixedLibDivisionByZero();
50
+ }
51
+
52
+ return
53
+ UFixed.wrap(uint160(Math.mulDiv(UFixed.unwrap(a), 10 ** 15, UFixed.unwrap(b))));
54
+ }
55
+
56
+ function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
57
+ return UFixed.unwrap(a) > UFixed.unwrap(b);
58
+ }
59
+
60
+ function gteUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
61
+ return UFixed.unwrap(a) >= UFixed.unwrap(b);
62
+ }
63
+
64
+ function ltUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
65
+ return UFixed.unwrap(a) < UFixed.unwrap(b);
66
+ }
67
+
68
+ function lteUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
69
+ return UFixed.unwrap(a) <= UFixed.unwrap(b);
70
+ }
71
+
72
+ function eqUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
73
+ return UFixed.unwrap(a) == UFixed.unwrap(b);
74
+ }
75
+
76
+ function neUFixed(UFixed a, UFixed b) pure returns (bool isEqual) {
77
+ return UFixed.unwrap(a) != UFixed.unwrap(b);
78
+ }
79
+
80
+ function gtzUFixed(UFixed a) pure returns (bool isZero) {
81
+ return UFixed.unwrap(a) > 0;
82
+ }
83
+
84
+ function eqzUFixed(UFixed a) pure returns (bool isZero) {
85
+ return UFixed.unwrap(a) == 0;
86
+ }
87
+
88
+ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
89
+ if (a > b) {
90
+ return a - b;
91
+ }
92
+
93
+ return b - a;
94
+ }
95
+
96
+ library UFixedLib {
97
+ error UFixedLibNegativeResult();
98
+ error UFixedLibDivisionByZero();
99
+
100
+ error UFixedLibExponentTooSmall(int8 exp);
101
+ error UFixedLibExponentTooLarge(int8 exp);
102
+
103
+ error UFixedLibNumberTooLarge(uint256 number);
104
+
105
+ int8 public constant EXP = 15;
106
+ uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
107
+ uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
108
+
109
+ /// @dev returns the rounding mode DOWN - 0.4 becomes 0, 0.5 becomes 0, 0.6 becomes 0
110
+ function ROUNDING_DOWN() public pure returns (uint8) {
111
+ return uint8(0);
112
+ }
113
+
114
+ /// @dev returns the rounding mode UP - 0.4 becomes 1, 0.5 becomes 1, 0.6 becomes 1
115
+ function ROUNDING_UP() public pure returns (uint8) {
116
+ return uint8(1);
117
+ }
118
+
119
+ /// @dev returns the rounding mode HALF_UP - 0.4 becomes 0, 0.5 becomes 1, 0.6 becomes 1
120
+ function ROUNDING_HALF_UP() public pure returns (uint8) {
121
+ return uint8(2);
122
+ }
123
+
124
+ /// @dev Converts the uint256 to a uint160 based UFixed.
125
+ /// This method reverts if the number is too large to fit in a uint160.
126
+ function toUFixed(uint256 a) public pure returns (UFixed) {
127
+ uint256 n = a * MULTIPLIER;
128
+ if (n > type(uint160).max) {
129
+ revert UFixedLibNumberTooLarge(a);
130
+ }
131
+ return UFixed.wrap(uint160(n));
132
+ }
133
+
134
+ /// @dev Converts the uint256 to a UFixed with given exponent.
135
+ function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
136
+ if (EXP + exp < 0) {
137
+ revert UFixedLibExponentTooSmall(exp);
138
+ }
139
+ if (EXP + exp > 48) {
140
+ revert UFixedLibExponentTooLarge(exp);
141
+ }
142
+
143
+ uint256 n = a * 10 ** uint8(EXP + exp);
144
+
145
+ if (n > type(uint160).max) {
146
+ revert UFixedLibNumberTooLarge(n);
147
+ }
148
+
149
+ return UFixed.wrap(uint160(n));
150
+ }
151
+
152
+ /// @dev returns the decimals precision of the UFixed type
153
+ function decimals() public pure returns (uint256) {
154
+ return uint8(EXP);
155
+ }
156
+
157
+ /// @dev Converts a UFixed to a uint256.
158
+ function toInt(UFixed a) public pure returns (uint256) {
159
+ return toIntWithRounding(a, ROUNDING_HALF_UP());
160
+ }
161
+
162
+ /// @dev Converts a UFixed to a uint256.
163
+ function toInt1000(UFixed a) public pure returns (uint256) {
164
+ return toIntWithRounding(toUFixed(1000) * a, ROUNDING_HALF_UP());
165
+ }
166
+
167
+ /// @dev Converts a UFixed to a uint256 with given rounding mode.
168
+ function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
169
+ if (rounding == ROUNDING_HALF_UP()) {
170
+ return
171
+ Math.mulDiv(
172
+ UFixed.unwrap(a) + MULTIPLIER_HALF,
173
+ 1,
174
+ MULTIPLIER,
175
+ Math.Rounding.Floor
176
+ );
177
+ } else if (rounding == ROUNDING_DOWN()) {
178
+ return
179
+ Math.mulDiv(
180
+ UFixed.unwrap(a),
181
+ 1,
182
+ MULTIPLIER,
183
+ Math.Rounding.Floor
184
+ );
185
+ } else {
186
+ return
187
+ Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Ceil);
188
+ }
189
+ }
190
+
191
+ /// @dev adds two UFixed numbers
192
+ function add(UFixed a, UFixed b) public pure returns (UFixed) {
193
+ return addUFixed(a, b);
194
+ }
195
+
196
+ /// @dev subtracts two UFixed numbers
197
+ function sub(UFixed a, UFixed b) public pure returns (UFixed) {
198
+ return subUFixed(a, b);
199
+ }
200
+
201
+ /// @dev multiplies two UFixed numbers
202
+ function mul(UFixed a, UFixed b) public pure returns (UFixed) {
203
+ return mulUFixed(a, b);
204
+ }
205
+
206
+ /// @dev divides two UFixed numbers
207
+ function div(UFixed a, UFixed b) public pure returns (UFixed) {
208
+ return divUFixed(a, b);
209
+ }
210
+
211
+ /// @dev return true if UFixed a is greater than UFixed b
212
+ function gt(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
213
+ return gtUFixed(a, b);
214
+ }
215
+
216
+ /// @dev return true if UFixed a is greater than or equal to UFixed b
217
+ function gte(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
218
+ return gteUFixed(a, b);
219
+ }
220
+
221
+ /// @dev return true if UFixed a is less than UFixed b
222
+ function lt(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
223
+ return ltUFixed(a, b);
224
+ }
225
+
226
+ /// @dev return true if UFixed a is less than or equal to UFixed b
227
+ function lte(UFixed a, UFixed b) public pure returns (bool isGreaterThan) {
228
+ return lteUFixed(a, b);
229
+ }
230
+
231
+ /// @dev return true if UFixed a is equal to UFixed b
232
+ function eq(UFixed a, UFixed b) public pure returns (bool isEqual) {
233
+ return eqUFixed(a, b);
234
+ }
235
+
236
+ /// @dev return true if UFixed a is not zero
237
+ function gtz(UFixed a) public pure returns (bool isZero) {
238
+ return gtzUFixed(a);
239
+ }
240
+
241
+ /// @dev return true if UFixed a is zero
242
+ function eqz(UFixed a) public pure returns (bool isZero) {
243
+ return eqzUFixed(a);
244
+ }
245
+
246
+ function zero() public pure returns (UFixed) {
247
+ return UFixed.wrap(0);
248
+ }
249
+
250
+ function one() public pure returns (UFixed) {
251
+ return UFixed.wrap(uint160(MULTIPLIER));
252
+ }
253
+
254
+ function max() public pure returns (UFixed) {
255
+ return UFixed.wrap(type(uint160).max);
256
+ }
257
+
258
+ /// @dev return the absolute delta between two UFixed numbers
259
+ function delta(UFixed a, UFixed b) public pure returns (UFixed) {
260
+ return deltaUFixed(a, b);
261
+ }
262
+ }