@etherisc/gif-next 0.0.2-80a82e6 → 0.0.2-8112a1f-745

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 (650) hide show
  1. package/README.md +483 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +949 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +715 -455
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1082 -0
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +793 -548
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2646 -0
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1328 -0
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +772 -0
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  110. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  111. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  116. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  118. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  120. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  122. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  124. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  126. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  128. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  130. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  132. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  134. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  136. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  138. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  140. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  142. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  144. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  146. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  148. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  150. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  152. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  154. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  156. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  158. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  160. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  162. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  164. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  166. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  168. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  170. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  172. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +665 -0
  174. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  176. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  178. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  180. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  182. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  184. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  185. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  186. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  188. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  190. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  192. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1055 -113
  194. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
  196. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  198. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  200. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.json +1543 -176
  202. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  204. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1061 -0
  206. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
  208. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +773 -0
  210. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  212. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  214. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  216. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  218. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  220. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  221. package/artifacts/contracts/shared/Component.sol/Component.json +705 -0
  222. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  224. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +630 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  245. package/artifacts/contracts/{registry/IRegistry.sol/IRegisterable.json → shared/INftOwnable.sol/INftOwnable.json} +72 -72
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  249. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +179 -158
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  253. package/artifacts/contracts/shared/IService.sol/IService.json +428 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  259. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +397 -0
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  273. package/artifacts/contracts/shared/Service.sol/Service.json +482 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2360 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +2820 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +858 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +544 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2637 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +657 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  319. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  323. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  342. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  344. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  346. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  348. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  350. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  354. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  360. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  362. package/contracts/accounting/AccountingService.sol +274 -0
  363. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  364. package/contracts/accounting/IAccountingService.sol +47 -0
  365. package/contracts/authorization/AccessAdmin.sol +780 -0
  366. package/contracts/authorization/AccessAdminLib.sol +396 -0
  367. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  368. package/contracts/authorization/Authorization.sol +169 -0
  369. package/contracts/authorization/IAccess.sol +67 -0
  370. package/contracts/authorization/IAccessAdmin.sol +144 -0
  371. package/contracts/authorization/IAuthorization.sol +26 -0
  372. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  373. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  374. package/contracts/distribution/BasicDistribution.sol +141 -0
  375. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  376. package/contracts/distribution/Distribution.sol +247 -0
  377. package/contracts/distribution/DistributionService.sol +448 -0
  378. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  379. package/contracts/distribution/IDistributionComponent.sol +45 -0
  380. package/contracts/distribution/IDistributionService.sol +115 -0
  381. package/contracts/examples/fire/DamageLevel.sol +59 -0
  382. package/contracts/examples/fire/FirePool.sol +86 -0
  383. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  384. package/contracts/examples/fire/FireProduct.sol +433 -0
  385. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  386. package/contracts/examples/fire/FireUSD.sol +26 -0
  387. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  388. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  390. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  391. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  392. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  393. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  394. package/contracts/instance/BundleSet.sol +130 -0
  395. package/contracts/instance/IInstance.sol +140 -15
  396. package/contracts/instance/IInstanceService.sol +117 -0
  397. package/contracts/instance/Instance.sol +328 -45
  398. package/contracts/instance/InstanceAdmin.sol +383 -0
  399. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  400. package/contracts/instance/InstanceReader.sol +632 -0
  401. package/contracts/instance/InstanceService.sol +500 -0
  402. package/contracts/instance/InstanceServiceManager.sol +39 -0
  403. package/contracts/instance/InstanceStore.sol +298 -0
  404. package/contracts/instance/RiskSet.sol +126 -0
  405. package/contracts/instance/base/BalanceStore.sol +121 -0
  406. package/contracts/instance/base/Cloneable.sol +28 -0
  407. package/contracts/instance/base/ObjectCounter.sol +20 -0
  408. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  409. package/contracts/instance/base/ObjectSet.sol +77 -0
  410. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  411. package/contracts/instance/module/IBundle.sol +21 -0
  412. package/contracts/instance/module/IComponents.sol +62 -0
  413. package/contracts/instance/module/IDistribution.sol +54 -0
  414. package/contracts/instance/module/IPolicy.sol +105 -0
  415. package/contracts/instance/module/IRisk.sol +16 -0
  416. package/contracts/mock/Dip.sol +26 -0
  417. package/contracts/oracle/BasicOracle.sol +45 -0
  418. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  419. package/contracts/oracle/IOracle.sol +41 -0
  420. package/contracts/oracle/IOracleComponent.sol +33 -0
  421. package/contracts/oracle/IOracleService.sol +66 -0
  422. package/contracts/oracle/Oracle.sol +154 -0
  423. package/contracts/oracle/OracleService.sol +310 -0
  424. package/contracts/oracle/OracleServiceManager.sol +39 -0
  425. package/contracts/pool/BasicPool.sol +162 -0
  426. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  427. package/contracts/pool/BundleService.sol +386 -0
  428. package/contracts/pool/BundleServiceManager.sol +39 -0
  429. package/contracts/pool/IBundleService.sol +116 -0
  430. package/contracts/pool/IPoolComponent.sol +62 -0
  431. package/contracts/pool/IPoolService.sol +170 -0
  432. package/contracts/pool/Pool.sol +333 -0
  433. package/contracts/pool/PoolLib.sol +341 -0
  434. package/contracts/pool/PoolService.sol +614 -0
  435. package/contracts/pool/PoolServiceManager.sol +39 -0
  436. package/contracts/product/ApplicationService.sol +327 -0
  437. package/contracts/product/ApplicationServiceManager.sol +38 -0
  438. package/contracts/product/BasicProduct.sol +49 -0
  439. package/contracts/product/BasicProductAuthorization.sol +63 -0
  440. package/contracts/product/ClaimService.sol +630 -0
  441. package/contracts/product/ClaimServiceManager.sol +38 -0
  442. package/contracts/product/IApplicationService.sol +88 -0
  443. package/contracts/product/IClaimService.sol +136 -0
  444. package/contracts/product/IPolicyService.sol +102 -0
  445. package/contracts/product/IPricingService.sol +40 -0
  446. package/contracts/product/IProductComponent.sol +62 -0
  447. package/contracts/product/IRiskService.sol +48 -0
  448. package/contracts/product/PolicyService.sol +645 -0
  449. package/contracts/product/PolicyServiceLib.sol +139 -0
  450. package/contracts/product/PolicyServiceManager.sol +39 -0
  451. package/contracts/product/PricingService.sol +306 -0
  452. package/contracts/product/PricingServiceManager.sol +39 -0
  453. package/contracts/product/Product.sol +493 -0
  454. package/contracts/product/RiskService.sol +190 -0
  455. package/contracts/product/RiskServiceManager.sol +39 -0
  456. package/contracts/registry/ChainNft.sol +176 -100
  457. package/contracts/registry/IRegistry.sol +149 -47
  458. package/contracts/registry/IRegistryService.sol +62 -0
  459. package/contracts/registry/IRelease.sol +29 -0
  460. package/contracts/registry/ITransferInterceptor.sol +6 -0
  461. package/contracts/registry/Registry.sol +671 -117
  462. package/contracts/registry/RegistryAdmin.sol +188 -0
  463. package/contracts/registry/RegistryAuthorization.sol +309 -0
  464. package/contracts/registry/RegistryService.sol +241 -0
  465. package/contracts/registry/RegistryServiceManager.sol +53 -0
  466. package/contracts/registry/ReleaseAdmin.sol +195 -0
  467. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  468. package/contracts/registry/ReleaseRegistry.sol +525 -0
  469. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  470. package/contracts/registry/TokenRegistry.sol +317 -0
  471. package/contracts/shared/Component.sol +214 -0
  472. package/contracts/shared/ComponentService.sol +687 -0
  473. package/contracts/shared/ComponentServiceManager.sol +38 -0
  474. package/contracts/shared/ContractLib.sol +312 -0
  475. package/contracts/shared/IComponent.sol +58 -0
  476. package/contracts/shared/IComponentService.sol +111 -0
  477. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  478. package/contracts/shared/IKeyValueStore.sol +54 -0
  479. package/contracts/shared/ILifecycle.sol +31 -0
  480. package/contracts/shared/INftOwnable.sol +27 -0
  481. package/contracts/shared/IPolicyHolder.sol +35 -0
  482. package/contracts/shared/IRegisterable.sol +36 -0
  483. package/contracts/shared/IRegistryLinked.sol +11 -0
  484. package/contracts/shared/IService.sol +23 -0
  485. package/contracts/shared/InitializableERC165.sol +35 -0
  486. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  487. package/contracts/shared/KeyValueStore.sol +131 -0
  488. package/contracts/shared/Lifecycle.sol +88 -0
  489. package/contracts/shared/NftIdSet.sol +65 -0
  490. package/contracts/shared/NftOwnable.sol +129 -0
  491. package/contracts/shared/PolicyHolder.sol +63 -0
  492. package/contracts/shared/Registerable.sol +106 -0
  493. package/contracts/shared/RegistryLinked.sol +38 -0
  494. package/contracts/shared/Service.sol +67 -0
  495. package/contracts/shared/TokenHandler.sol +342 -0
  496. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  497. package/contracts/staking/IStaking.sol +264 -0
  498. package/contracts/staking/IStakingService.sol +127 -0
  499. package/contracts/staking/Staking.sol +746 -0
  500. package/contracts/staking/StakingLib.sol +195 -0
  501. package/contracts/staking/StakingLifecycle.sol +23 -0
  502. package/contracts/staking/StakingManager.sol +51 -0
  503. package/contracts/staking/StakingReader.sol +151 -0
  504. package/contracts/staking/StakingService.sol +321 -0
  505. package/contracts/staking/StakingServiceManager.sol +46 -0
  506. package/contracts/staking/StakingStore.sol +973 -0
  507. package/contracts/staking/TargetManagerLib.sol +211 -0
  508. package/contracts/type/AddressSet.sol +58 -0
  509. package/contracts/type/Amount.sol +154 -0
  510. package/contracts/type/Blocknumber.sol +142 -0
  511. package/contracts/type/ChainId.sol +101 -0
  512. package/contracts/type/ClaimId.sol +80 -0
  513. package/contracts/type/DistributorType.sol +55 -0
  514. package/contracts/type/Fee.sol +66 -0
  515. package/contracts/type/Key32.sol +50 -0
  516. package/contracts/type/Key32Set.sol +62 -0
  517. package/contracts/type/NftId.sol +85 -0
  518. package/contracts/type/NftIdSet.sol +62 -0
  519. package/contracts/type/ObjectType.sol +307 -0
  520. package/contracts/type/PayoutId.sol +82 -0
  521. package/contracts/type/Referral.sol +90 -0
  522. package/contracts/type/RequestId.sol +75 -0
  523. package/contracts/type/RiskId.sol +75 -0
  524. package/contracts/type/RoleId.sol +180 -0
  525. package/contracts/type/Seconds.sol +115 -0
  526. package/contracts/type/Selector.sol +107 -0
  527. package/contracts/type/StateId.sol +149 -0
  528. package/contracts/type/String.sol +65 -0
  529. package/contracts/type/Timestamp.sol +143 -0
  530. package/contracts/type/UFixed.sol +263 -0
  531. package/contracts/type/Version.sol +159 -0
  532. package/contracts/upgradeability/IVersionable.sol +56 -0
  533. package/contracts/upgradeability/ProxyManager.sol +246 -0
  534. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  535. package/contracts/upgradeability/Versionable.sol +62 -0
  536. package/package.json +26 -7
  537. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  538. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  539. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  540. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  541. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  542. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  543. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  545. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  546. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  547. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  548. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  549. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  551. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  553. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  555. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  557. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  559. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  561. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  563. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  565. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  567. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  569. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  571. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  573. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  574. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  575. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  576. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  577. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  578. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  579. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  580. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  581. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  582. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  584. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  585. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  586. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  587. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  588. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  589. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  591. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  592. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  593. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  594. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  595. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  596. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  597. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  598. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  599. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  600. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  601. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  602. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  604. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  605. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  606. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  607. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  608. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  610. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  611. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  612. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  613. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  614. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  615. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  616. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  617. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  618. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  619. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  621. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  623. package/contracts/components/Component.sol +0 -62
  624. package/contracts/components/IPool.sol +0 -9
  625. package/contracts/components/IProduct.sol +0 -12
  626. package/contracts/components/Pool.sol +0 -29
  627. package/contracts/components/Product.sol +0 -66
  628. package/contracts/experiment/errors/Require.sol +0 -33
  629. package/contracts/experiment/errors/Revert.sol +0 -39
  630. package/contracts/experiment/inheritance/A.sol +0 -56
  631. package/contracts/experiment/inheritance/B.sol +0 -23
  632. package/contracts/experiment/inheritance/C.sol +0 -28
  633. package/contracts/experiment/inheritance/IA.sol +0 -18
  634. package/contracts/experiment/inheritance/IB.sol +0 -9
  635. package/contracts/experiment/inheritance/IC.sol +0 -11
  636. package/contracts/experiment/types/TypeA.sol +0 -42
  637. package/contracts/experiment/types/TypeB.sol +0 -24
  638. package/contracts/instance/access/Access.sol +0 -218
  639. package/contracts/instance/access/IAccess.sol +0 -83
  640. package/contracts/instance/component/ComponentModule.sol +0 -248
  641. package/contracts/instance/component/IComponent.sol +0 -95
  642. package/contracts/instance/policy/IPolicy.sol +0 -66
  643. package/contracts/instance/policy/PolicyModule.sol +0 -107
  644. package/contracts/instance/pool/IPoolModule.sol +0 -41
  645. package/contracts/instance/pool/PoolModule.sol +0 -86
  646. package/contracts/instance/product/IProductService.sol +0 -46
  647. package/contracts/instance/product/ProductService.sol +0 -108
  648. package/contracts/registry/IChainNft.sol +0 -18
  649. package/contracts/types/ChainId.sol +0 -24
  650. package/contracts/types/NftId.sol +0 -32
@@ -0,0 +1,211 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {Component} from "../shared/Component.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {IRegistryService} from "../registry/IRegistryService.sol";
10
+ import {IStaking} from "./IStaking.sol";
11
+ import {Key32} from "../type/Key32.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
14
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
15
+ import {StakingReader} from "./StakingReader.sol";
16
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
17
+
18
+
19
+ library TargetManagerLib {
20
+
21
+ function updateLockingPeriod(
22
+ IStaking staking,
23
+ NftId targetNftId,
24
+ Seconds lockingPeriod
25
+ )
26
+ external
27
+ view
28
+ returns (
29
+ Seconds oldLockingPeriod,
30
+ IStaking.TargetInfo memory targetInfo
31
+ )
32
+ {
33
+ StakingReader reader = staking.getStakingReader();
34
+
35
+ // check target exists
36
+ if(!reader.isTarget(targetNftId)) {
37
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
38
+ }
39
+
40
+ checkLockingPeriod(targetNftId, lockingPeriod);
41
+
42
+ targetInfo = reader.getTargetInfo(targetNftId);
43
+ oldLockingPeriod = targetInfo.lockingPeriod;
44
+
45
+ targetInfo.lockingPeriod = lockingPeriod;
46
+ }
47
+
48
+
49
+ function updateRewardRate(
50
+ IStaking staking,
51
+ NftId targetNftId,
52
+ UFixed rewardRate
53
+ )
54
+ external
55
+ view
56
+ returns (
57
+ UFixed oldRewardRate,
58
+ IStaking.TargetInfo memory targetInfo
59
+ )
60
+ {
61
+ StakingReader reader = staking.getStakingReader();
62
+
63
+ // check target exists
64
+ if(!reader.isTarget(targetNftId)) {
65
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
66
+ }
67
+
68
+ checkRewardRate(targetNftId, rewardRate);
69
+
70
+ targetInfo = reader.getTargetInfo(targetNftId);
71
+ oldRewardRate = targetInfo.rewardRate;
72
+
73
+ targetInfo.rewardRate = rewardRate;
74
+ }
75
+
76
+
77
+ function checkTargetParameters(
78
+ IRegistry registry,
79
+ StakingReader stakingReader,
80
+ NftId targetNftId,
81
+ ObjectType expectedObjectType,
82
+ Seconds initialLockingPeriod,
83
+ UFixed initialRewardRate
84
+ )
85
+ external
86
+ view
87
+ {
88
+ // target nft id must not be zero
89
+ if (targetNftId.eqz()) {
90
+ revert IStaking.ErrorStakingTargetNftIdZero();
91
+ }
92
+
93
+ // only accept "new" targets to be registered
94
+ if (stakingReader.isTarget(targetNftId)) {
95
+ revert IStaking.ErrorStakingTargetAlreadyRegistered(targetNftId);
96
+ }
97
+
98
+ // target object type must be allowed
99
+ if (!isTargetTypeSupported(expectedObjectType)) {
100
+ revert IStaking.ErrorStakingTargetTypeNotSupported(targetNftId, expectedObjectType);
101
+ }
102
+
103
+ checkLockingPeriod(targetNftId, initialLockingPeriod);
104
+ checkRewardRate(targetNftId, initialRewardRate);
105
+
106
+ // target nft id must be known and registered with the expected object type
107
+ if (!registry.isRegistered(targetNftId)) {
108
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
109
+ } else {
110
+ // check that expected object type matches with registered object type
111
+ ObjectType actualObjectType = registry.getObjectInfo(targetNftId).objectType;
112
+ if (actualObjectType != expectedObjectType) {
113
+ revert IStaking.ErrorStakingTargetUnexpectedObjectType(targetNftId, expectedObjectType, actualObjectType);
114
+ }
115
+ }
116
+ }
117
+
118
+
119
+ function isTargetTypeSupported(ObjectType objectType)
120
+ public
121
+ pure
122
+ returns (bool isSupported)
123
+ {
124
+ if(objectType == PROTOCOL()) { return true; }
125
+ if(objectType == INSTANCE()) { return true; }
126
+
127
+ return false;
128
+ }
129
+
130
+
131
+ function checkLockingPeriod(NftId targetNftId, Seconds lockingPeriod)
132
+ public
133
+ pure
134
+ {
135
+ // check locking period is >= min locking period
136
+ if (lockingPeriod.lt(getMinimumLockingPeriod())) {
137
+ revert IStaking.ErrorStakingLockingPeriodTooShort(targetNftId, getMinimumLockingPeriod(), lockingPeriod);
138
+ }
139
+
140
+ // check locking period <= max locking period
141
+ if (lockingPeriod > getMaxLockingPeriod()) {
142
+ revert IStaking.ErrorStakingLockingPeriodTooLong(targetNftId, getMaxLockingPeriod(), lockingPeriod);
143
+ }
144
+ }
145
+
146
+
147
+ function checkRewardRate(NftId targetNftId, UFixed rewardRate)
148
+ public
149
+ pure
150
+ {
151
+ // check reward rate <= max reward rate
152
+ if (rewardRate > getMaxRewardRate()) {
153
+ revert IStaking.ErrorStakingRewardRateTooHigh(targetNftId, getMaxRewardRate(), rewardRate);
154
+ }
155
+ }
156
+
157
+
158
+ function calculateRequiredDipAmount(
159
+ Amount tokenAmount,
160
+ UFixed stakingRate
161
+ )
162
+ public
163
+ pure
164
+ returns (Amount dipAmount)
165
+ {
166
+ dipAmount = tokenAmount.multiplyWith(stakingRate);
167
+ }
168
+
169
+
170
+ function calculateStakingRate(
171
+ IERC20Metadata dipToken,
172
+ IERC20Metadata token,
173
+ UFixed requiredDipPerToken
174
+ )
175
+ public
176
+ view
177
+ returns (UFixed stakingRate)
178
+ {
179
+ UFixed decimalsFactor = UFixedLib.toUFixed(1, int8(dipToken.decimals() - token.decimals()));
180
+ stakingRate = requiredDipPerToken * decimalsFactor;
181
+ }
182
+
183
+
184
+ function getMaxLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
185
+ return SecondsLib.toSeconds(5 * 365 * 24 * 3600);
186
+ }
187
+
188
+
189
+ function getDefaultLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
190
+ return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
191
+ }
192
+
193
+ /// @dev the minimum locking period is 24 hours
194
+ function getMinimumLockingPeriod() public pure returns (Seconds minLockingPeriod) {
195
+ return SecondsLib.toSeconds(24 * 3600);
196
+ }
197
+
198
+ function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
199
+ return UFixedLib.toUFixed(33, -2);
200
+ }
201
+
202
+
203
+ function getDefaultRewardRate() public pure returns (UFixed defaultRewardRate) {
204
+ return UFixedLib.toUFixed(5, -2);
205
+ }
206
+
207
+
208
+ function toTargetKey(NftId targetNftId) public pure returns (Key32 targetKey) {
209
+ return targetNftId.toKey32(TARGET());
210
+ }
211
+ }
@@ -0,0 +1,58 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
5
+ library LibAddressSet {
6
+
7
+ struct Set {
8
+ address[] elements;
9
+ mapping(address element => uint256 index) at;
10
+ }
11
+
12
+ function add(Set storage set, address element) external returns(bool added) {
13
+ if (set.at[element] == 0) {
14
+ set.elements.push(element);
15
+ set.at[element] = set.elements.length;
16
+ return true;
17
+ } else {
18
+ return false;
19
+ }
20
+ }
21
+
22
+ function remove(Set storage set, address element) external returns(bool removed) {
23
+ uint256 elementIndex = set.at[element];
24
+
25
+ if (elementIndex > 0) {
26
+ uint256 toDeleteIndex = elementIndex - 1;
27
+ uint256 lastIndex = set.elements.length - 1;
28
+
29
+ if (lastIndex != toDeleteIndex) {
30
+ address lastElement = set.elements[lastIndex];
31
+ set.elements[toDeleteIndex] = lastElement;
32
+ set.at[lastElement] = elementIndex; // Replace lastValue's index to valueIndex
33
+ }
34
+
35
+ set.elements.pop();
36
+ delete set.at[element];
37
+ return true;
38
+ }
39
+
40
+ return false;
41
+ }
42
+
43
+ function isEmpty(Set storage set) external view returns(bool empty) {
44
+ return set.elements.length == 0;
45
+ }
46
+
47
+ function contains(Set storage set, address element) external view returns(bool inSet) {
48
+ return set.at[element] > 0;
49
+ }
50
+
51
+ function getLength(Set storage set) external view returns(uint256 length) {
52
+ return set.elements.length;
53
+ }
54
+
55
+ function getElementAt(Set storage set, uint256 index) external view returns(address element) {
56
+ return set.elements[index];
57
+ }
58
+ }
@@ -0,0 +1,154 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {UFixed, UFixedLib} from "./UFixed.sol";
5
+
6
+ /// @dev Targets: 100 trillion (worlds GDP) with 6 decimal places
7
+ /// 3 trillion USD (total crypto market cap) with 12 decimal places.
8
+ /// 2023 100 trillion USD => 100e12 * 1e6 = 1e20
9
+ /// 2024 2 trillion crypto market cap => 2e12 * 1e18 = 2e30
10
+ type Amount is uint96;
11
+
12
+ using {
13
+ addAmount as +,
14
+ subAmount as -,
15
+ eqAmount as ==,
16
+ nqAmount as !=,
17
+ ltAmount as <,
18
+ ltAmount as <=,
19
+ gtAmount as >,
20
+ gteAmount as >=,
21
+ AmountLib.add,
22
+ AmountLib.eq,
23
+ AmountLib.eqz,
24
+ AmountLib.gtz,
25
+ AmountLib.gt,
26
+ AmountLib.gte,
27
+ AmountLib.multiplyWith,
28
+ AmountLib.toInt,
29
+ AmountLib.toUFixed
30
+ } for Amount global;
31
+
32
+ function addAmount(Amount a, Amount b) pure returns (Amount) {
33
+ return AmountLib.add(a, b);
34
+ }
35
+
36
+ function subAmount(Amount a, Amount b) pure returns (Amount) {
37
+ return AmountLib.sub(a, b);
38
+ }
39
+
40
+ function eqAmount(Amount a, Amount b) pure returns (bool) {
41
+ return AmountLib.eq(a, b);
42
+ }
43
+
44
+ function nqAmount(Amount a, Amount b) pure returns (bool) {
45
+ return !AmountLib.eq(a, b);
46
+ }
47
+
48
+ function ltAmount(Amount a, Amount b) pure returns (bool) {
49
+ return AmountLib.lt(a, b);
50
+ }
51
+
52
+ function lteAmount(Amount a, Amount b) pure returns (bool) {
53
+ return AmountLib.lte(a, b);
54
+ }
55
+
56
+ function gtAmount(Amount a, Amount b) pure returns (bool) {
57
+ return AmountLib.gt(a, b);
58
+ }
59
+
60
+ function gteAmount(Amount a, Amount b) pure returns (bool) {
61
+ return AmountLib.gte(a, b);
62
+ }
63
+
64
+ library AmountLib {
65
+
66
+ error ErrorAmountLibValueTooBig(uint256 amount);
67
+
68
+ function zero() public pure returns (Amount) {
69
+ return Amount.wrap(0);
70
+ }
71
+
72
+ function max() public pure returns (Amount) {
73
+ return Amount.wrap(_max());
74
+ }
75
+
76
+ /// @dev converts the uint amount into Amount
77
+ /// function reverts if value is exceeding max Amount value
78
+ function toAmount(uint256 amount) public pure returns (Amount) {
79
+ if(amount > _max()) {
80
+ revert ErrorAmountLibValueTooBig(amount);
81
+ }
82
+
83
+ return Amount.wrap(uint96(amount));
84
+ }
85
+
86
+ /// @dev return true if amount equals 0
87
+ function eqz(Amount amount) public pure returns (bool) {
88
+ return Amount.unwrap(amount) == 0;
89
+ }
90
+
91
+ /// @dev return true if amount1 equals amount2
92
+ function eq(Amount amount1, Amount amount2) public pure returns (bool) {
93
+ return Amount.unwrap(amount1) == Amount.unwrap(amount2);
94
+ }
95
+
96
+ /// @dev return true if amount a1 is less than a2
97
+ function lt(Amount a1, Amount a2) public pure returns (bool) {
98
+ return Amount.unwrap(a1) < Amount.unwrap(a2);
99
+ }
100
+
101
+ /// @dev return true if amount a1 is less or equal than a2
102
+ function lte(Amount a1, Amount a2) public pure returns (bool) {
103
+ return Amount.unwrap(a1) <= Amount.unwrap(a2);
104
+ }
105
+
106
+ /// @dev return true if amount a1 is greater than a2
107
+ function gt(Amount a1, Amount a2) public pure returns (bool) {
108
+ return Amount.unwrap(a1) > Amount.unwrap(a2);
109
+ }
110
+
111
+ /// @dev return true if amount a1 is greater or equal than a2
112
+ function gte(Amount a1, Amount a2) public pure returns (bool) {
113
+ return Amount.unwrap(a1) >= Amount.unwrap(a2);
114
+ }
115
+
116
+ /// @dev return minimum of a1 and a2.
117
+ function min(Amount a1, Amount a2) public pure returns (Amount) {
118
+ if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
119
+ return a1;
120
+ }
121
+
122
+ return a2;
123
+ }
124
+
125
+ /// @dev return true if amount is larger than 0
126
+ function gtz(Amount amount) public pure returns (bool) {
127
+ return Amount.unwrap(amount) > 0;
128
+ }
129
+
130
+ function add(Amount a1, Amount a2) public pure returns (Amount) {
131
+ return Amount.wrap(Amount.unwrap(a1) + Amount.unwrap(a2));
132
+ }
133
+
134
+ function sub(Amount a1, Amount a2) public pure returns (Amount) {
135
+ return Amount.wrap(Amount.unwrap(a1) - Amount.unwrap(a2));
136
+ }
137
+
138
+ function toInt(Amount amount) public pure returns (uint256) {
139
+ return uint256(uint96(Amount.unwrap(amount)));
140
+ }
141
+
142
+ function toUFixed(Amount amount) public pure returns (UFixed) {
143
+ return UFixedLib.toUFixed(Amount.unwrap(amount));
144
+ }
145
+
146
+ function multiplyWith(Amount amount, UFixed factor) public pure returns (Amount) {
147
+ return toAmount((factor * UFixedLib.toUFixed(Amount.unwrap(amount))).toInt());
148
+ }
149
+
150
+ function _max() internal pure returns (uint96) {
151
+ // IMPORTANT: type nees to match with actual definition for Amount
152
+ return type(uint96).max;
153
+ }
154
+ }
@@ -0,0 +1,142 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ /// @dev Target: Cover 10 years with 1 ms block times.
5
+ /// Typical block times are a few seconds.
6
+ type Blocknumber is uint40;
7
+
8
+ using {
9
+ gtBlocknumber as >,
10
+ gteBlocknumber as >=,
11
+ ltBlocknumber as <,
12
+ lteBlocknumber as <=,
13
+ eqBlocknumber as ==,
14
+ neBlocknumber as !=,
15
+ BlocknumberLib.toInt,
16
+ BlocknumberLib.eq,
17
+ BlocknumberLib.ne,
18
+ BlocknumberLib.eqz,
19
+ BlocknumberLib.gtz,
20
+ BlocknumberLib.gt,
21
+ BlocknumberLib.gte,
22
+ BlocknumberLib.lt,
23
+ BlocknumberLib.lte
24
+ } for Blocknumber global;
25
+
26
+ /// @dev return true if Blocknumber a is greater than Blocknumber b
27
+ function gtBlocknumber(Blocknumber a, Blocknumber b) pure returns (bool) {
28
+ return Blocknumber.unwrap(a) > Blocknumber.unwrap(b);
29
+ }
30
+
31
+ /// @dev return true if Blocknumber a is greater than or equal to Blocknumber b
32
+ function gteBlocknumber(Blocknumber a, Blocknumber b) pure returns (bool) {
33
+ return Blocknumber.unwrap(a) >= Blocknumber.unwrap(b);
34
+ }
35
+
36
+ /// @dev return true if Blocknumber a is less than Blocknumber b
37
+ function ltBlocknumber(Blocknumber a, Blocknumber b) pure returns (bool) {
38
+ return Blocknumber.unwrap(a) < Blocknumber.unwrap(b);
39
+ }
40
+
41
+ /// @dev return true if Blocknumber a is less than or equal to Blocknumber b
42
+ function lteBlocknumber(Blocknumber a, Blocknumber b) pure returns (bool) {
43
+ return Blocknumber.unwrap(a) <= Blocknumber.unwrap(b);
44
+ }
45
+
46
+ /// @dev return true if Blocknumber a is equal to Blocknumber b
47
+ function eqBlocknumber(Blocknumber a, Blocknumber b) pure returns (bool) {
48
+ return Blocknumber.unwrap(a) == Blocknumber.unwrap(b);
49
+ }
50
+
51
+ /// @dev return true if Blocknumber a is not equal to Blocknumber b
52
+ function neBlocknumber(Blocknumber a, Blocknumber b) pure returns (bool) {
53
+ return Blocknumber.unwrap(a) != Blocknumber.unwrap(b);
54
+ }
55
+
56
+ /// @dev Converts the uint256 to a Blocknumber.
57
+ function toBlocknumber(uint256 blocknum) pure returns (Blocknumber) {
58
+ return Blocknumber.wrap(uint32(blocknum));
59
+ }
60
+
61
+ /// @dev Return the current block number
62
+ function blockNumber() view returns (Blocknumber) {
63
+ return toBlocknumber(block.number);
64
+ }
65
+
66
+ library BlocknumberLib {
67
+
68
+ function zero() public pure returns (Blocknumber) {
69
+ return Blocknumber.wrap(0);
70
+ }
71
+
72
+ function max() public pure returns (Blocknumber) {
73
+ return Blocknumber.wrap(type(uint40).max);
74
+ }
75
+
76
+ function current() public view returns (Blocknumber) {
77
+ return Blocknumber.wrap(uint40(block.number));
78
+ }
79
+
80
+ /// @dev return true iff blocknumber is 0
81
+ function eqz(Blocknumber blocknumber) public pure returns (bool) {
82
+ return Blocknumber.unwrap(blocknumber) == 0;
83
+ }
84
+
85
+ /// @dev return true iff blocknumber is > 0
86
+ function gtz(Blocknumber blocknumber) public pure returns (bool) {
87
+ return Blocknumber.unwrap(blocknumber) > 0;
88
+ }
89
+
90
+ /// @dev return true if Blocknumber a is greater than Blocknumber b
91
+ function gt(
92
+ Blocknumber a,
93
+ Blocknumber b
94
+ ) public pure returns (bool isAfter) {
95
+ return gtBlocknumber(a, b);
96
+ }
97
+
98
+ /// @dev return true if Blocknumber a is greater than or equal to Blocknumber b
99
+ function gte(
100
+ Blocknumber a,
101
+ Blocknumber b
102
+ ) public pure returns (bool isAfterOrSame) {
103
+ return gteBlocknumber(a, b);
104
+ }
105
+
106
+ /// @dev return true if Blocknumber a is less than Blocknumber b
107
+ function lt(
108
+ Blocknumber a,
109
+ Blocknumber b
110
+ ) public pure returns (bool isBefore) {
111
+ return ltBlocknumber(a, b);
112
+ }
113
+
114
+ /// @dev return true if Blocknumber a is less than or equal to Blocknumber b
115
+ function lte(
116
+ Blocknumber a,
117
+ Blocknumber b
118
+ ) public pure returns (bool isBeforeOrSame) {
119
+ return lteBlocknumber(a, b);
120
+ }
121
+
122
+ /// @dev return true if Blocknumber a is equal to Blocknumber b
123
+ function eq(
124
+ Blocknumber a,
125
+ Blocknumber b
126
+ ) public pure returns (bool isSame) {
127
+ return eqBlocknumber(a, b);
128
+ }
129
+
130
+ /// @dev return true if Blocknumber a is not equal to Blocknumber b
131
+ function ne(
132
+ Blocknumber a,
133
+ Blocknumber b
134
+ ) public pure returns (bool isDifferent) {
135
+ return neBlocknumber(a, b);
136
+ }
137
+
138
+ /// @dev converts the Blocknumber to a uint256
139
+ function toInt(Blocknumber blocknumber) public pure returns (uint256) {
140
+ return uint256(uint32(Blocknumber.unwrap(blocknumber)));
141
+ }
142
+ }
@@ -0,0 +1,101 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "./NftId.sol";
5
+
6
+ /// @dev Target: Cover chain IDs up to 26 decimal places.
7
+ /// Current longest chain ID seems to be DCHAIN Testnet: 2713017997578000 with 16 decimal places
8
+ type ChainId is uint96;
9
+
10
+ using {
11
+ eqChainId as ==,
12
+ neChainId as !=,
13
+ ChainIdLib.toInt,
14
+ ChainIdLib.eqz,
15
+ ChainIdLib.gtz
16
+ } for ChainId global;
17
+
18
+
19
+ /// @dev return true if ChainId a is equal to ChainId b
20
+ function eqChainId(ChainId a, ChainId b) pure returns (bool) {
21
+ return ChainId.unwrap(a) == ChainId.unwrap(b);
22
+ }
23
+
24
+ /// @dev return true if ChainId a is not equal to ChainId b
25
+ function neChainId(ChainId a, ChainId b) pure returns (bool) {
26
+ return ChainId.unwrap(a) != ChainId.unwrap(b);
27
+ }
28
+
29
+
30
+ library ChainIdLib {
31
+
32
+ error ErrorChainIdLibValueTooBig(uint256 chainId);
33
+
34
+
35
+ function zero() public pure returns (ChainId) {
36
+ return ChainId.wrap(0);
37
+ }
38
+
39
+
40
+ function max() public pure returns (ChainId) {
41
+ return ChainId.wrap(_max());
42
+ }
43
+
44
+
45
+ function current() public view returns (ChainId) {
46
+ return toChainId(block.chainid);
47
+ }
48
+
49
+
50
+ /// @dev return true iff chainId is 0
51
+ function eqz(ChainId chainId) public pure returns (bool) {
52
+ return ChainId.unwrap(chainId) == 0;
53
+ }
54
+
55
+
56
+ /// @dev return true iff chainId is > 0
57
+ function gtz(ChainId chainId) public pure returns (bool) {
58
+ return ChainId.unwrap(chainId) > 0;
59
+ }
60
+
61
+
62
+ /// @dev converts the uint into ChainId
63
+ /// function reverts if value is exceeding max ChainId value
64
+ function toChainId(uint256 chainId) public pure returns (ChainId) {
65
+ if(chainId > _max()) {
66
+ revert ErrorChainIdLibValueTooBig(chainId);
67
+ }
68
+
69
+ return ChainId.wrap(uint96(chainId));
70
+ }
71
+
72
+
73
+ /// @dev returns true iff NFT ID is from the current chain.
74
+ function isCurrentChain(NftId nftId) public view returns (bool) {
75
+ return _fromNftId(nftId) == block.chainid;
76
+ }
77
+
78
+
79
+ function fromNftId(NftId nftId) public pure returns (ChainId) {
80
+ return toChainId(_fromNftId(nftId));
81
+ }
82
+
83
+
84
+ /// @dev converts the ChainId to a uint256
85
+ function toInt(ChainId chainId) public pure returns (uint256) {
86
+ return uint256(uint96(ChainId.unwrap(chainId)));
87
+ }
88
+
89
+
90
+ function _fromNftId(NftId nftId) internal pure returns (uint256 chainIdInt) {
91
+ uint256 nftIdInt = nftId.toInt();
92
+ uint256 chainIdDigits = nftIdInt % 100; // Extract the last two digits
93
+ chainIdInt = nftIdInt % 10**(chainIdDigits + 2) / 100; // Extract the chainId
94
+ }
95
+
96
+
97
+ function _max() internal pure returns (uint96) {
98
+ // IMPORTANT: type nees to match with actual definition for Amount
99
+ return type(uint96).max;
100
+ }
101
+ }