@etherisc/gif-next 0.0.2-7f35518-483 → 0.0.2-7fbee0d-269

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 (797) hide show
  1. package/README.md +157 -281
  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 +810 -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 +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -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 +817 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +939 -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 +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +838 -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 +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -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/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +383 -0
  54. package/artifacts/contracts/examples/flight/FlightMessageVerfier.sol/FlightMessageVerifier.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightMessageVerfier.sol/FlightMessageVerifier.json +253 -0
  56. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  58. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
  60. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  62. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  64. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2180 -0
  66. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
  68. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  70. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  86. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  88. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  90. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  92. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +957 -535
  94. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +760 -138
  96. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  97. package/artifacts/contracts/instance/Instance.sol/Instance.json +614 -2806
  98. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  100. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  101. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  102. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1919 -679
  104. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +780 -323
  106. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +404 -104
  108. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  109. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  110. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  112. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  113. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  114. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  115. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  116. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  117. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  118. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  120. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  122. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  123. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  124. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  125. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  126. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  128. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  129. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  132. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  133. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  134. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  135. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  136. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  138. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  139. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  140. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  141. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  142. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  144. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  146. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  148. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  150. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  152. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  154. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  155. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  156. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  158. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  160. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  162. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  164. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  165. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  166. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  167. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  168. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  169. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  170. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  172. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  174. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  176. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  178. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  180. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  181. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  182. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  184. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  185. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +404 -351
  186. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  188. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  190. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  192. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  194. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IRiskService.sol/IRiskService.json} +353 -249
  196. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  198. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  199. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  200. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  201. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  202. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  204. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  206. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  207. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  208. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  210. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  212. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  214. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +641 -173
  216. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +419 -200
  218. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  219. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  220. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  221. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  222. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/Registry.sol/Registry.json +969 -202
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  225. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  227. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -309
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +389 -121
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  234. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  236. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  237. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  238. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  239. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  240. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  241. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +391 -80
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  243. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  245. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  250. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  253. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  254. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  255. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  256. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  257. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +286 -176
  258. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  259. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  260. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  261. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  262. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  263. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  264. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +61 -22
  266. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  268. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +162 -15
  270. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  272. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  273. package/artifacts/contracts/shared/IService.sol/IService.json +161 -154
  274. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  275. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  276. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  277. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  278. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  279. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  280. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  281. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  282. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  283. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +98 -28
  284. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  285. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  286. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  287. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +178 -55
  288. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  289. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  290. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  291. package/artifacts/contracts/shared/Service.sol/Service.json +177 -163
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  295. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  296. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  297. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  298. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  299. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  300. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  301. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  302. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  303. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  304. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  305. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  306. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  307. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  308. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  309. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  310. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  311. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  312. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  313. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  314. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  315. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  316. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  317. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  318. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  319. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  320. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  321. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  322. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  323. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  324. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  326. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
  328. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  330. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  332. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  334. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  336. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  338. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  339. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  340. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  342. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  343. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  344. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +238 -0
  346. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  348. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  350. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  352. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  353. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  354. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  356. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  358. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  359. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  360. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  361. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  362. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  363. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  364. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  365. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  366. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  367. package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
  368. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  369. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  370. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  371. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  372. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  373. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  374. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  375. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  376. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  377. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  378. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  379. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  380. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  382. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  383. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  384. package/contracts/accounting/AccountingService.sol +274 -0
  385. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  386. package/contracts/accounting/IAccountingService.sol +47 -0
  387. package/contracts/authorization/AccessAdmin.sol +679 -0
  388. package/contracts/authorization/AccessAdminLib.sol +678 -0
  389. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  390. package/contracts/authorization/Authorization.sol +190 -0
  391. package/contracts/authorization/IAccess.sol +66 -0
  392. package/contracts/authorization/IAccessAdmin.sol +142 -0
  393. package/contracts/authorization/IAuthorization.sol +26 -0
  394. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  395. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  396. package/contracts/distribution/BasicDistribution.sol +140 -0
  397. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  398. package/contracts/distribution/Distribution.sol +245 -0
  399. package/contracts/distribution/DistributionService.sol +448 -0
  400. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  401. package/contracts/distribution/IDistributionComponent.sol +45 -0
  402. package/contracts/distribution/IDistributionService.sol +115 -0
  403. package/contracts/examples/fire/DamageLevel.sol +59 -0
  404. package/contracts/examples/fire/FirePool.sol +86 -0
  405. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  406. package/contracts/examples/fire/FireProduct.sol +433 -0
  407. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  408. package/contracts/examples/fire/FireUSD.sol +26 -0
  409. package/contracts/examples/flight/FlightLib.sol +273 -0
  410. package/contracts/examples/flight/FlightMessageVerfier.sol +129 -0
  411. package/contracts/examples/flight/FlightOracle.sol +167 -0
  412. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  413. package/contracts/examples/flight/FlightPool.sol +89 -0
  414. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  415. package/contracts/examples/flight/FlightProduct.sol +464 -0
  416. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  417. package/contracts/examples/flight/FlightUSD.sol +26 -0
  418. package/contracts/examples/flight/originalV1.sol +396 -0
  419. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  420. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  421. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  422. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  423. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  424. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  425. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  426. package/contracts/instance/BaseStore.sol +93 -0
  427. package/contracts/instance/BundleSet.sol +130 -0
  428. package/contracts/instance/IBaseStore.sol +37 -0
  429. package/contracts/instance/IInstance.sol +141 -24
  430. package/contracts/instance/IInstanceService.sol +106 -17
  431. package/contracts/instance/Instance.sol +249 -341
  432. package/contracts/instance/InstanceAdmin.sol +307 -0
  433. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  434. package/contracts/instance/InstanceReader.sol +524 -202
  435. package/contracts/instance/InstanceService.sol +462 -130
  436. package/contracts/instance/InstanceServiceManager.sol +14 -31
  437. package/contracts/instance/InstanceStore.sol +323 -0
  438. package/contracts/instance/ProductStore.sol +290 -0
  439. package/contracts/instance/RiskSet.sol +126 -0
  440. package/contracts/instance/TargetNames.sol +10 -0
  441. package/contracts/instance/base/BalanceStore.sol +121 -0
  442. package/contracts/instance/base/Cloneable.sol +28 -0
  443. package/contracts/instance/base/ObjectCounter.sol +20 -0
  444. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  445. package/contracts/instance/base/ObjectSet.sol +77 -0
  446. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  447. package/contracts/instance/module/IBundle.sol +10 -9
  448. package/contracts/instance/module/IComponents.sol +60 -0
  449. package/contracts/instance/module/IDistribution.sol +25 -10
  450. package/contracts/instance/module/IPolicy.sol +81 -21
  451. package/contracts/instance/module/IRisk.sol +6 -1
  452. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  453. package/contracts/oracle/BasicOracle.sol +44 -0
  454. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  455. package/contracts/oracle/IOracle.sol +41 -0
  456. package/contracts/oracle/IOracleComponent.sol +33 -0
  457. package/contracts/oracle/IOracleService.sol +66 -0
  458. package/contracts/oracle/Oracle.sol +152 -0
  459. package/contracts/oracle/OracleService.sol +310 -0
  460. package/contracts/oracle/OracleServiceManager.sol +39 -0
  461. package/contracts/pool/BasicPool.sol +161 -0
  462. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  463. package/contracts/pool/BundleService.sol +386 -0
  464. package/contracts/pool/BundleServiceManager.sol +39 -0
  465. package/contracts/pool/IBundleService.sol +116 -0
  466. package/contracts/pool/IPoolComponent.sol +62 -0
  467. package/contracts/pool/IPoolService.sol +170 -0
  468. package/contracts/pool/Pool.sol +331 -0
  469. package/contracts/pool/PoolLib.sol +341 -0
  470. package/contracts/pool/PoolService.sol +614 -0
  471. package/contracts/pool/PoolServiceManager.sol +39 -0
  472. package/contracts/product/ApplicationService.sol +327 -0
  473. package/contracts/product/ApplicationServiceManager.sol +38 -0
  474. package/contracts/product/BasicProduct.sol +48 -0
  475. package/contracts/product/BasicProductAuthorization.sol +64 -0
  476. package/contracts/product/ClaimService.sol +626 -0
  477. package/contracts/product/ClaimServiceManager.sol +38 -0
  478. package/contracts/product/IApplicationService.sol +88 -0
  479. package/contracts/product/IClaimService.sol +136 -0
  480. package/contracts/product/IPolicyService.sol +102 -0
  481. package/contracts/product/IPricingService.sol +40 -0
  482. package/contracts/product/IProductComponent.sol +62 -0
  483. package/contracts/product/IRiskService.sol +48 -0
  484. package/contracts/product/PolicyService.sol +645 -0
  485. package/contracts/product/PolicyServiceLib.sol +139 -0
  486. package/contracts/product/PolicyServiceManager.sol +39 -0
  487. package/contracts/product/PricingService.sol +306 -0
  488. package/contracts/product/PricingServiceManager.sol +39 -0
  489. package/contracts/product/Product.sol +491 -0
  490. package/contracts/product/RiskService.sol +189 -0
  491. package/contracts/product/RiskServiceManager.sol +39 -0
  492. package/contracts/registry/ChainNft.sol +82 -35
  493. package/contracts/registry/IRegistry.sol +128 -50
  494. package/contracts/registry/IRegistryService.sol +45 -16
  495. package/contracts/registry/IRelease.sol +29 -0
  496. package/contracts/registry/ITransferInterceptor.sol +1 -1
  497. package/contracts/registry/Registry.sol +551 -304
  498. package/contracts/registry/RegistryAdmin.sol +173 -0
  499. package/contracts/registry/RegistryAuthorization.sol +337 -0
  500. package/contracts/registry/RegistryService.sol +126 -284
  501. package/contracts/registry/RegistryServiceManager.sol +26 -53
  502. package/contracts/registry/ReleaseAdmin.sol +199 -0
  503. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  504. package/contracts/registry/ReleaseRegistry.sol +525 -0
  505. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  506. package/contracts/registry/TokenRegistry.sol +265 -59
  507. package/contracts/shared/Component.sol +210 -0
  508. package/contracts/shared/ComponentService.sol +691 -0
  509. package/contracts/shared/ComponentServiceManager.sol +38 -0
  510. package/contracts/shared/ContractLib.sol +312 -0
  511. package/contracts/shared/EcdsaChecker.sol +5 -0
  512. package/contracts/shared/IComponent.sol +58 -0
  513. package/contracts/shared/IComponentService.sol +111 -0
  514. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  515. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  516. package/contracts/shared/INftOwnable.sol +17 -12
  517. package/contracts/shared/IPolicyHolder.sol +35 -0
  518. package/contracts/shared/IRegisterable.sol +24 -5
  519. package/contracts/shared/IRegistryLinked.sol +11 -0
  520. package/contracts/shared/IService.sol +13 -5
  521. package/contracts/shared/InitializableERC165.sol +35 -0
  522. package/contracts/shared/InstanceLinkedComponent.sol +232 -0
  523. package/contracts/shared/Lifecycle.sol +88 -0
  524. package/contracts/shared/NftIdSet.sol +65 -0
  525. package/contracts/shared/NftOwnable.sol +77 -84
  526. package/contracts/shared/PolicyHolder.sol +63 -0
  527. package/contracts/shared/Registerable.sol +54 -38
  528. package/contracts/shared/RegistryLinked.sol +38 -0
  529. package/contracts/shared/Service.sol +46 -33
  530. package/contracts/shared/TokenHandler.sol +327 -12
  531. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  532. package/contracts/staking/IStaking.sol +366 -0
  533. package/contracts/staking/IStakingService.sol +127 -0
  534. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  535. package/contracts/staking/Staking.sol +797 -0
  536. package/contracts/staking/StakingLib.sol +195 -0
  537. package/contracts/staking/StakingManager.sol +53 -0
  538. package/contracts/staking/StakingReader.sol +171 -0
  539. package/contracts/staking/StakingService.sol +321 -0
  540. package/contracts/staking/StakingServiceManager.sol +46 -0
  541. package/contracts/staking/StakingStore.sol +1368 -0
  542. package/contracts/staking/TargetHandler.sol +132 -0
  543. package/contracts/staking/TargetManagerLib.sol +234 -0
  544. package/contracts/{types → type}/AddressSet.sol +1 -1
  545. package/contracts/type/Amount.sol +154 -0
  546. package/contracts/{types → type}/Blocknumber.sol +38 -19
  547. package/contracts/type/ChainId.sol +101 -0
  548. package/contracts/type/ClaimId.sol +80 -0
  549. package/contracts/{types → type}/DistributorType.sol +2 -2
  550. package/contracts/type/Fee.sol +66 -0
  551. package/contracts/{types → type}/Key32.sol +2 -2
  552. package/contracts/type/Key32Set.sol +62 -0
  553. package/contracts/{types → type}/NftId.sol +28 -15
  554. package/contracts/type/NftIdSet.sol +62 -0
  555. package/contracts/type/ObjectType.sol +278 -0
  556. package/contracts/type/PayoutId.sol +82 -0
  557. package/contracts/{types → type}/Referral.sol +12 -1
  558. package/contracts/type/RequestId.sol +75 -0
  559. package/contracts/type/RequestIdSet.sol +62 -0
  560. package/contracts/type/RiskId.sol +75 -0
  561. package/contracts/type/RoleId.sol +180 -0
  562. package/contracts/type/Seconds.sol +124 -0
  563. package/contracts/type/Selector.sol +107 -0
  564. package/contracts/{types → type}/StateId.sol +48 -4
  565. package/contracts/type/String.sol +95 -0
  566. package/contracts/{types → type}/Timestamp.sol +45 -20
  567. package/contracts/type/UFixed.sol +263 -0
  568. package/contracts/{types → type}/Version.sol +59 -7
  569. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  570. package/contracts/upgradeability/ProxyManager.sol +246 -0
  571. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  572. package/contracts/upgradeability/Versionable.sol +62 -0
  573. package/package.json +13 -8
  574. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  575. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  576. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  577. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -670
  578. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  579. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  580. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  581. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -204
  582. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  583. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  584. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  585. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  586. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  587. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -873
  588. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  589. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  590. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  591. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  592. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  593. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  594. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  595. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  596. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  597. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  598. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  599. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  600. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  601. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  602. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  603. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  604. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  605. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  606. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  607. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  608. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  609. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  610. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  611. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  612. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  613. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  614. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  615. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  616. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  617. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  618. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  619. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  620. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  621. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  622. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  623. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  624. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  625. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  626. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  627. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  628. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  629. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  630. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  631. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  632. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  633. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  634. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  635. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  636. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  637. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  638. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  639. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  640. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  641. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  642. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  643. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  644. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  645. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  646. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  647. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  648. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  649. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  650. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  651. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  652. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -681
  653. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  654. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -436
  655. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  656. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  657. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  658. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  659. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  660. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  661. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  662. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -820
  663. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  664. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  665. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  666. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  667. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  668. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  669. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  670. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  671. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  672. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  673. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  674. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  675. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  676. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  677. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  678. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  679. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  680. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  681. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  682. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  683. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  684. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  685. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  686. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  687. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  688. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  689. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  690. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  691. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  692. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  693. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  694. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  695. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  696. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  697. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  699. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  701. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  703. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  705. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  706. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  707. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  709. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  710. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  711. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  712. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  713. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  714. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  715. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  716. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  717. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  718. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  719. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  720. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  721. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  722. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  723. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  724. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  725. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  726. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  727. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  728. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  729. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  730. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  731. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  732. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  733. package/contracts/components/BaseComponent.sol +0 -91
  734. package/contracts/components/Distribution.sol +0 -166
  735. package/contracts/components/IBaseComponent.sol +0 -25
  736. package/contracts/components/IDistributionComponent.sol +0 -46
  737. package/contracts/components/IPoolComponent.sol +0 -62
  738. package/contracts/components/IProductComponent.sol +0 -35
  739. package/contracts/components/Pool.sol +0 -247
  740. package/contracts/components/Product.sol +0 -297
  741. package/contracts/experiment/cloning/Cloner.sol +0 -47
  742. package/contracts/experiment/errors/Require.sol +0 -38
  743. package/contracts/experiment/errors/Revert.sol +0 -44
  744. package/contracts/experiment/inheritance/A.sol +0 -53
  745. package/contracts/experiment/inheritance/B.sol +0 -28
  746. package/contracts/experiment/inheritance/C.sol +0 -34
  747. package/contracts/experiment/inheritance/IA.sol +0 -13
  748. package/contracts/experiment/inheritance/IB.sol +0 -10
  749. package/contracts/experiment/inheritance/IC.sol +0 -12
  750. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  751. package/contracts/experiment/statemachine/ISM.sol +0 -25
  752. package/contracts/experiment/statemachine/SM.sol +0 -57
  753. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  754. package/contracts/experiment/types/TypeA.sol +0 -47
  755. package/contracts/experiment/types/TypeB.sol +0 -29
  756. package/contracts/instance/AccessManagedSimple.sol +0 -115
  757. package/contracts/instance/AccessManagerSimple.sol +0 -692
  758. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  759. package/contracts/instance/InstanceAccessManager.sol +0 -288
  760. package/contracts/instance/base/ComponentServiceBase.sol +0 -60
  761. package/contracts/instance/base/IInstanceBase.sol +0 -23
  762. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  763. package/contracts/instance/base/KeyValueStore.sol +0 -172
  764. package/contracts/instance/base/Lifecycle.sol +0 -100
  765. package/contracts/instance/module/IAccess.sol +0 -38
  766. package/contracts/instance/module/ISetup.sol +0 -44
  767. package/contracts/instance/module/ITreasury.sol +0 -23
  768. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  769. package/contracts/instance/service/DistributionService.sol +0 -99
  770. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  771. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  772. package/contracts/instance/service/IDistributionService.sol +0 -12
  773. package/contracts/instance/service/IPoolService.sol +0 -37
  774. package/contracts/instance/service/IProductService.sol +0 -107
  775. package/contracts/instance/service/PoolService.sol +0 -205
  776. package/contracts/instance/service/PoolServiceManager.sol +0 -53
  777. package/contracts/shared/ContractDeployerLib.sol +0 -72
  778. package/contracts/shared/ERC165.sol +0 -25
  779. package/contracts/shared/ProxyManager.sol +0 -94
  780. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  781. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  782. package/contracts/shared/Versionable.sol +0 -147
  783. package/contracts/test/TestFee.sol +0 -25
  784. package/contracts/test/TestRegisterable.sol +0 -18
  785. package/contracts/test/TestRoleId.sol +0 -14
  786. package/contracts/test/TestService.sol +0 -24
  787. package/contracts/test/TestToken.sol +0 -26
  788. package/contracts/test/TestVersion.sol +0 -44
  789. package/contracts/test/TestVersionable.sol +0 -17
  790. package/contracts/types/ChainId.sol +0 -38
  791. package/contracts/types/Fee.sol +0 -56
  792. package/contracts/types/NftIdSet.sol +0 -60
  793. package/contracts/types/NumberId.sol +0 -52
  794. package/contracts/types/ObjectType.sol +0 -152
  795. package/contracts/types/RiskId.sol +0 -43
  796. package/contracts/types/RoleId.sol +0 -89
  797. package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,278 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {StrLib} from "./String.sol";
5
+ import {VersionPart} from "./Version.sol";
6
+
7
+ type ObjectType is uint8;
8
+
9
+ // type bindings
10
+ using {
11
+ eqObjectType as ==,
12
+ neObjectType as !=,
13
+ ObjectTypeLib.toInt,
14
+ ObjectTypeLib.toName,
15
+ ObjectTypeLib.eqz,
16
+ ObjectTypeLib.eq,
17
+ ObjectTypeLib.gtz
18
+ } for ObjectType global;
19
+
20
+
21
+ //--- GIF object types/domains (rage: 1 - 99) -------------------------------//
22
+
23
+ function PROTOCOL() pure returns (ObjectType) {
24
+ return ObjectType.wrap(1);
25
+ }
26
+
27
+ function REGISTRY() pure returns (ObjectType) {
28
+ return ObjectType.wrap(2);
29
+ }
30
+
31
+ function STAKING() pure returns (ObjectType) {
32
+ return ObjectType.wrap(3);
33
+ }
34
+
35
+ function RELEASE() pure returns (ObjectType) {
36
+ return ObjectType.wrap(6);
37
+ }
38
+
39
+ function ROLE() pure returns (ObjectType) {
40
+ return ObjectType.wrap(7);
41
+ }
42
+
43
+ function SERVICE() pure returns (ObjectType) {
44
+ return ObjectType.wrap(8);
45
+ }
46
+
47
+ function INSTANCE() pure returns (ObjectType) {
48
+ return ObjectType.wrap(10);
49
+ }
50
+
51
+ /// @dev Generic component object type.
52
+ /// Component role id range is 11-19.
53
+ /// Stick to this range for new component object types.
54
+ function COMPONENT() pure returns (ObjectType) {
55
+ return ObjectType.wrap(11);
56
+ }
57
+
58
+ /// @dev Product object type.
59
+ /// IMPORTANT the actual value has an influence on the corresponding role id (RoleIdLib.sol).
60
+ /// Do not change this value without updating the corresponding role id calculation.
61
+ function PRODUCT() pure returns (ObjectType) {
62
+ return ObjectType.wrap(12);
63
+ }
64
+
65
+ function ORACLE() pure returns (ObjectType) {
66
+ return ObjectType.wrap(13);
67
+ }
68
+
69
+ function DISTRIBUTION() pure returns (ObjectType) {
70
+ return ObjectType.wrap(14);
71
+ }
72
+
73
+ function POOL() pure returns (ObjectType) {
74
+ return ObjectType.wrap(15);
75
+ }
76
+
77
+ /// @dev Application object type.
78
+ /// Range for NFT objects created thorugh components is 20-29.
79
+ function APPLICATION() pure returns (ObjectType) {
80
+ return ObjectType.wrap(20);
81
+ }
82
+
83
+ function POLICY() pure returns (ObjectType) {
84
+ return ObjectType.wrap(21);
85
+ }
86
+
87
+ function BUNDLE() pure returns (ObjectType) {
88
+ return ObjectType.wrap(22);
89
+ }
90
+
91
+ function DISTRIBUTOR() pure returns (ObjectType) {
92
+ return ObjectType.wrap(23);
93
+ }
94
+
95
+ /// @dev Stake object type.
96
+ /// NFT object type is 30
97
+ function STAKE() pure returns (ObjectType) {
98
+ return ObjectType.wrap(30);
99
+ }
100
+
101
+ /// @dev Staking target object type.
102
+ function TARGET() pure returns (ObjectType) {
103
+ return ObjectType.wrap(31);
104
+ }
105
+
106
+ /// @dev Accounting object type.
107
+ /// Range for non-NFT types created through components is 40+
108
+ function ACCOUNTING() pure returns (ObjectType) {
109
+ return ObjectType.wrap(40);
110
+ }
111
+
112
+ function FEE() pure returns (ObjectType) {
113
+ return ObjectType.wrap(41);
114
+ }
115
+
116
+ function PRICE() pure returns (ObjectType) {
117
+ return ObjectType.wrap(42);
118
+ }
119
+
120
+ function PREMIUM() pure returns (ObjectType) {
121
+ return ObjectType.wrap(43);
122
+ }
123
+
124
+ function RISK() pure returns (ObjectType) {
125
+ return ObjectType.wrap(44);
126
+ }
127
+
128
+ function CLAIM() pure returns (ObjectType) {
129
+ return ObjectType.wrap(45);
130
+ }
131
+
132
+ function PAYOUT() pure returns (ObjectType) {
133
+ return ObjectType.wrap(46);
134
+ }
135
+
136
+ function REQUEST() pure returns (ObjectType) {
137
+ return ObjectType.wrap(47);
138
+ }
139
+
140
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
141
+ return ObjectType.wrap(48);
142
+ }
143
+
144
+ function REFERRAL() pure returns (ObjectType) {
145
+ return ObjectType.wrap(49);
146
+ }
147
+
148
+ /// @dev Object type for GIF core target roles.
149
+ function CORE() pure returns (ObjectType) {
150
+ return ObjectType.wrap(97);
151
+ }
152
+
153
+ /// @dev Object type for target roles of contracts outside the GIF framework.
154
+ /// Example: Custom supporting contracts for a product component.
155
+ function CUSTOM() pure returns (ObjectType) {
156
+ return ObjectType.wrap(98);
157
+ }
158
+
159
+ /// @dev Object type that includes any other object type.
160
+ /// Note that eq()/'==' does not take this property into account.
161
+ function ALL() pure returns (ObjectType) {
162
+ return ObjectType.wrap(99);
163
+ }
164
+
165
+ // other pure free functions for operators
166
+ function eqObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
167
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
168
+ }
169
+
170
+ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
171
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
172
+ }
173
+
174
+ // library functions that operate on user defined type
175
+ library ObjectTypeLib {
176
+
177
+ function zero() public pure returns (ObjectType) {
178
+ return ObjectType.wrap(0);
179
+ }
180
+
181
+ /// @dev Converts the uint256 into ObjectType.
182
+ function toObjectType(uint256 objectType) public pure returns (ObjectType) {
183
+ return ObjectType.wrap(uint8(objectType));
184
+ }
185
+
186
+ /// @dev Converts the NftId to a uint256.
187
+ function toInt(ObjectType objectType) public pure returns (uint96) {
188
+ return uint96(ObjectType.unwrap(objectType));
189
+ }
190
+
191
+ /// @dev Returns true if the value is non-zero (> 0).
192
+ function gtz(ObjectType a) public pure returns (bool) {
193
+ return ObjectType.unwrap(a) > 0;
194
+ }
195
+
196
+ /// @dev Returns true if the value is zero (== 0).
197
+ function eqz(ObjectType a) public pure returns (bool) {
198
+ return ObjectType.unwrap(a) == 0;
199
+ }
200
+
201
+ /// @dev Returns true if the values are equal (==).
202
+ function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
203
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
204
+ }
205
+
206
+ /// @dev Returns true if the values are not equal (!=).
207
+ function ne(ObjectType a, ObjectType b) public pure returns (bool isSame) {
208
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
209
+ }
210
+
211
+ /// @dev Returns the type/domain name for the provided object type
212
+ function toName(ObjectType objectType) public pure returns (string memory name) {
213
+ if (objectType == REGISTRY()) {
214
+ return "Registry";
215
+ } else if (objectType == STAKING()) {
216
+ return "Staking";
217
+ } else if (objectType == RELEASE()) {
218
+ return "Release";
219
+ } else if (objectType == INSTANCE()) {
220
+ return "Instance";
221
+ } else if (objectType == COMPONENT()) {
222
+ return "Component";
223
+ } else if (objectType == PRODUCT()) {
224
+ return "Product";
225
+ } else if (objectType == ORACLE()) {
226
+ return "Oracle";
227
+ } else if (objectType == DISTRIBUTION()) {
228
+ return "Distribution";
229
+ } else if (objectType == POOL()) {
230
+ return "Pool";
231
+ } else if (objectType == APPLICATION()) {
232
+ return "Application";
233
+ } else if (objectType == POLICY()) {
234
+ return "Policy";
235
+ } else if (objectType == CLAIM()) {
236
+ return "Claim";
237
+ } else if (objectType == PRICE()) {
238
+ return "Price";
239
+ } else if (objectType == BUNDLE()) {
240
+ return "Bundle";
241
+ } else if (objectType == RISK()) {
242
+ return "Risk";
243
+ } else if (objectType == ACCOUNTING()) {
244
+ return "Accounting";
245
+ }
246
+
247
+ // fallback: ObjectType<obect-type-int>
248
+ return string(
249
+ abi.encodePacked(
250
+ "ObjectType",
251
+ StrLib.uintToString(
252
+ toInt(objectType))));
253
+ }
254
+
255
+ // TODO move to IService
256
+ function toVersionedName(
257
+ string memory name,
258
+ string memory suffix,
259
+ VersionPart release
260
+ )
261
+ external
262
+ pure
263
+ returns (string memory versionedName)
264
+ {
265
+ string memory versionName = "V0";
266
+
267
+ if (release.toInt() >= 10) {
268
+ versionName = "V";
269
+ }
270
+
271
+ versionedName = string(
272
+ abi.encodePacked(
273
+ name,
274
+ suffix,
275
+ versionName,
276
+ release.toString()));
277
+ }
278
+ }
@@ -0,0 +1,82 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // uint40 allows for 65'535 claims with 16'777'216 payouts each per policy
5
+ type PayoutId is uint40;
6
+
7
+ import {ClaimId} from "./ClaimId.sol";
8
+ import {PAYOUT} from "./ObjectType.sol";
9
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
10
+ import {NftId} from "./NftId.sol";
11
+
12
+ // type bindings
13
+ using {
14
+ eqPayoutId as ==,
15
+ nePayoutId as !=,
16
+ PayoutIdLib.eqz,
17
+ PayoutIdLib.gtz,
18
+ PayoutIdLib.toInt,
19
+ PayoutIdLib.toClaimId,
20
+ PayoutIdLib.toPayoutNo,
21
+ PayoutIdLib.toKey32
22
+ } for PayoutId global;
23
+
24
+
25
+ // pure free functions for operators
26
+ function eqPayoutId(PayoutId a, PayoutId b) pure returns (bool isSame) {
27
+ return PayoutId.unwrap(a) == PayoutId.unwrap(b);
28
+ }
29
+
30
+ function nePayoutId(PayoutId a, PayoutId b) pure returns (bool isDifferent) {
31
+ return PayoutId.unwrap(a) != PayoutId.unwrap(b);
32
+ }
33
+
34
+ // library functions that operate on user defined type
35
+ library PayoutIdLib {
36
+ /// @dev Converts the PayoutId to a uint.
37
+ function zero() public pure returns (PayoutId) {
38
+ return PayoutId.wrap(0);
39
+ }
40
+
41
+ /// @dev Converts an uint into a PayoutId.
42
+ function toPayoutId(ClaimId claimId, uint24 payoutNo) public pure returns (PayoutId) {
43
+ return PayoutId.wrap((uint40(ClaimId.unwrap(claimId)) << 24) + payoutNo);
44
+ }
45
+
46
+ function toClaimId(PayoutId payoutId) public pure returns (ClaimId) {
47
+ return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >> 24));
48
+ }
49
+
50
+ function toPayoutNo(PayoutId payoutId) public pure returns (uint24) {
51
+ return uint24(PayoutId.unwrap(payoutId) & 16777215);
52
+ }
53
+
54
+ /// @dev Converts the PayoutId to a uint.
55
+ function toInt(PayoutId a) public pure returns (uint40) {
56
+ return PayoutId.unwrap(a);
57
+ }
58
+
59
+ /// @dev Returns true if the value is non-zero (> 0).
60
+ function gtz(PayoutId a) public pure returns (bool) {
61
+ return PayoutId.unwrap(a) > 0;
62
+ }
63
+
64
+ /// @dev Returns true if the value is zero (== 0).
65
+ function eqz(PayoutId a) public pure returns (bool) {
66
+ return PayoutId.unwrap(a) == 0;
67
+ }
68
+
69
+ /// @dev Converts the PayoutId and NftId to a Key32.
70
+ function toKey32(PayoutId payoutId, NftId policyNftId) public pure returns (Key32) {
71
+ return Key32Lib.toKey32(PAYOUT(), toKeyId(payoutId, policyNftId));
72
+ }
73
+
74
+ /// @dev Converts the PayoutId and NftId to a Key32.
75
+ function toKeyId(PayoutId payoutId, NftId policyNftId) public pure returns (KeyId) {
76
+ return KeyId.wrap(
77
+ bytes31(
78
+ bytes15(
79
+ uint120(
80
+ (NftId.unwrap(policyNftId) << 40) + PayoutId.unwrap(payoutId)))));
81
+ }
82
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {NftId} from "./NftId.sol";
@@ -12,6 +12,8 @@ type ReferralStatus is uint8;
12
12
  using {
13
13
  eqReferralId as ==,
14
14
  neReferralId as !=,
15
+ ReferralLib.eqz,
16
+ ReferralLib.toInt,
15
17
  ReferralLib.toKey32
16
18
  } for ReferralId global;
17
19
 
@@ -73,6 +75,11 @@ library ReferralLib {
73
75
  return ReferralStatus.wrap(status);
74
76
  }
75
77
 
78
+ /// @dev Converts a referral id into a uint256.
79
+ function toInt(ReferralId referralId) public pure returns (uint256) {
80
+ return uint64(ReferralId.unwrap(referralId));
81
+ }
82
+
76
83
  /// @dev Returns the key32 value for the specified nft id and object type.
77
84
  function toKey32(ReferralId id) public pure returns (Key32 key) {
78
85
  return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
@@ -82,4 +89,8 @@ library ReferralLib {
82
89
  function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
83
90
  return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
84
91
  }
92
+
93
+ function eqz(ReferralId id) public pure returns (bool) {
94
+ return eqReferralId(id, zero());
95
+ }
85
96
  }
@@ -0,0 +1,75 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {REQUEST} from "./ObjectType.sol";
6
+
7
+ type RequestId is uint64;
8
+
9
+ // type bindings
10
+ using {
11
+ eqRequestId as ==,
12
+ neRequestId as !=,
13
+ RequestIdLib.eqz,
14
+ RequestIdLib.gtz,
15
+ RequestIdLib.toInt,
16
+ RequestIdLib.toKey32
17
+ } for RequestId global;
18
+
19
+ // general pure free functions
20
+
21
+ function eqRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
22
+ return RequestIdLib.eq(a, b);
23
+ }
24
+
25
+ function neRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
26
+ return RequestIdLib.ne(a, b);
27
+ }
28
+
29
+ library RequestIdLib {
30
+
31
+ // @dev zero element to refer to a non existing/initialized request
32
+ function zero() public pure returns (RequestId) {
33
+ return RequestId.wrap(0);
34
+ }
35
+
36
+ // @dev Converts an int id into a request id.
37
+ function toRequestId(uint256 id) public pure returns (RequestId) {
38
+ return RequestId.wrap(uint64(id));
39
+ }
40
+
41
+ // @dev Converts a request id back to an int value.
42
+ function toInt(RequestId requestId) public pure returns (uint256) {
43
+ return RequestId.unwrap(requestId);
44
+ }
45
+
46
+ // @dev Returns true iff request id a == 0
47
+ function eqz(RequestId a) public pure returns (bool) {
48
+ return RequestId.unwrap(a) == 0;
49
+ }
50
+
51
+ // @dev Returns true iff request id a > 0
52
+ function gtz(RequestId a) public pure returns (bool) {
53
+ return RequestId.unwrap(a) > 0;
54
+ }
55
+
56
+ // @dev Returns true iff risk ids a and b are identical
57
+ function eq(RequestId a, RequestId b) public pure returns (bool isSame) {
58
+ return RequestId.unwrap(a) == RequestId.unwrap(b);
59
+ }
60
+
61
+ // @dev Returns true iff risk ids a and b are different
62
+ function ne(RequestId a, RequestId b) public pure returns (bool isSame) {
63
+ return RequestId.unwrap(a) != RequestId.unwrap(b);
64
+ }
65
+
66
+ /// @dev Returns the key32 value for the specified nft id and object type.
67
+ function toKey32(RequestId id) public pure returns (Key32 key) {
68
+ return Key32Lib.toKey32(REQUEST(), toKeyId(id));
69
+ }
70
+
71
+ /// @dev Returns the key id value for the specified nft id
72
+ function toKeyId(RequestId id) public pure returns (KeyId keyId) {
73
+ return KeyId.wrap(bytes31(uint248(RequestId.unwrap(id))));
74
+ }
75
+ }
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {RequestId} from "../type/RequestId.sol";
5
+
6
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
+ library LibRequestIdSet {
8
+
9
+ struct Set {
10
+ RequestId[] ids;
11
+ mapping(RequestId requestId => uint256 index) at;
12
+ }
13
+
14
+ error ErrorRequestIdSetAlreadyAdded(RequestId requestId);
15
+ error ErrorRequestIdSetNotInSet(RequestId requestId);
16
+
17
+
18
+ function add(Set storage set, RequestId requestId) external {
19
+ if (set.at[requestId] > 0) {
20
+ revert ErrorRequestIdSetAlreadyAdded(requestId);
21
+ }
22
+
23
+ set.ids.push(requestId);
24
+ set.at[requestId] = set.ids.length;
25
+ }
26
+
27
+ function remove(Set storage set, RequestId requestId) external {
28
+ uint256 requestIdIndex = set.at[requestId];
29
+
30
+ if (requestIdIndex == 0) {
31
+ revert ErrorRequestIdSetNotInSet(requestId);
32
+ }
33
+
34
+ uint256 toDeleteIndex = requestIdIndex - 1;
35
+ uint256 lastIndex = set.ids.length - 1;
36
+
37
+ if (lastIndex != toDeleteIndex) {
38
+ RequestId lastId = set.ids[lastIndex];
39
+ set.ids[toDeleteIndex] = lastId;
40
+ set.at[lastId] = requestIdIndex; // Replace lastValue's index to valueIndex
41
+ }
42
+
43
+ set.ids.pop();
44
+ delete set.at[requestId];
45
+ }
46
+
47
+ function isEmpty(Set storage set) external view returns(bool empty) {
48
+ return set.ids.length == 0;
49
+ }
50
+
51
+ function contains(Set storage set, RequestId requestId) external view returns(bool inSet) {
52
+ return set.at[requestId] > 0;
53
+ }
54
+
55
+ function size(Set storage set) external view returns(uint256 length) {
56
+ return set.ids.length;
57
+ }
58
+
59
+ function getElementAt(Set storage set, uint256 index) external view returns(RequestId requestId) {
60
+ return set.ids[index];
61
+ }
62
+ }
@@ -0,0 +1,75 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {NftId} from "./NftId.sol";
6
+ import {RISK} from "./ObjectType.sol";
7
+
8
+ type RiskId is bytes8;
9
+
10
+ // type bindings
11
+ using {
12
+ eqRiskId as ==,
13
+ neRiskId as !=,
14
+ RiskIdLib.eq,
15
+ RiskIdLib.eqz,
16
+ RiskIdLib.gtz,
17
+ RiskIdLib.toInt,
18
+ RiskIdLib.toKeyId,
19
+ RiskIdLib.toKey32
20
+ } for RiskId global;
21
+
22
+ // general pure free functions
23
+
24
+ // @dev Returns true iff risk ids a and b are identical
25
+ function eqRiskId(RiskId a, RiskId b) pure returns (bool isSame) {
26
+ return RiskId.unwrap(a) == RiskId.unwrap(b);
27
+ }
28
+
29
+ // @dev Returns true iff risk ids a and b are different
30
+ function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
31
+ return RiskId.unwrap(a) != RiskId.unwrap(b);
32
+ }
33
+
34
+ library RiskIdLib {
35
+ function zero() public pure returns (RiskId) {
36
+ return RiskId.wrap(bytes8(0));
37
+ }
38
+
39
+ // @dev Converts a risk id into a uint256.
40
+ function toInt(RiskId riskId) public pure returns (uint256) {
41
+ return uint64(RiskId.unwrap(riskId));
42
+ }
43
+
44
+ // @dev Converts a risk id string with a product NftId into a risk id.
45
+ function toRiskId(NftId productNftId, bytes32 risk) public pure returns (RiskId) {
46
+ return RiskId.wrap(bytes8(keccak256(abi.encode(productNftId, risk))));
47
+ }
48
+
49
+ /// @dev Returns the key32 value for the specified risk id.
50
+ function toKey32(RiskId riskId) public pure returns (Key32 key) {
51
+ return Key32Lib.toKey32(RISK(), toKeyId(riskId));
52
+ }
53
+
54
+ /// @dev Returns the key id value for the specified nft id
55
+ function toKeyId(RiskId id) public pure returns (KeyId keyId) {
56
+ return KeyId.wrap(bytes31(RiskId.unwrap(id)));
57
+ }
58
+
59
+ function toRiskId(KeyId keyId) public pure returns (RiskId riskId) {
60
+ riskId = RiskId.wrap(bytes8(KeyId.unwrap(keyId)));
61
+ assert(toInt(riskId) < 2**64);
62
+ }
63
+
64
+ function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
65
+ return eqRiskId(a, b);
66
+ }
67
+
68
+ function eqz(RiskId a) public pure returns (bool isZero) {
69
+ return eqRiskId(a, zero());
70
+ }
71
+
72
+ function gtz(RiskId a) public pure returns (bool isZero) {
73
+ return uint64(RiskId.unwrap(a)) > 0;
74
+ }
75
+ }