@etherisc/gif-next 0.0.2-7d65090-351 → 0.0.2-7d7c399-947

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 (568) hide show
  1. package/README.md +75 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1341 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +181 -278
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +48 -10
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +144 -544
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +368 -245
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -109
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +201 -261
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +230 -49
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +134 -78
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +116 -126
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +162 -215
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1354 -262
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +966 -328
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +135 -330
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +97 -111
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +651 -531
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  97. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +141 -126
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -398
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +435 -202
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  136. package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
  163. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +455 -318
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +258 -536
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +340 -55
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  189. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/Registry.sol/Registry.json +566 -112
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +396 -436
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1325 -0
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +101 -16
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
  207. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  208. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +578 -492
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -113
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +550 -209
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
  229. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  239. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  243. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  245. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -351
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  247. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  251. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  253. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  255. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  259. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  260. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  267. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  271. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  274. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  277. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +186 -164
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  289. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  290. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  291. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  292. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  294. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  296. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  298. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  300. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  302. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  304. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  305. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  306. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  308. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  310. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  312. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  314. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  316. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  322. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  324. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  328. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  330. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  332. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  334. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  336. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  338. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +66 -2
  340. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  341. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  346. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  347. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  348. package/contracts/accounting/AccountingService.sol +262 -0
  349. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  350. package/contracts/accounting/IAccountingService.sol +45 -0
  351. package/contracts/{shared → authorization}/AccessAdmin.sol +271 -371
  352. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  353. package/contracts/authorization/Authorization.sol +289 -0
  354. package/contracts/authorization/IAccess.sol +49 -0
  355. package/contracts/{shared → authorization}/IAccessAdmin.sol +31 -59
  356. package/contracts/authorization/IAuthorization.sol +60 -0
  357. package/contracts/{registry → authorization}/IServiceAuthorization.sol +11 -6
  358. package/contracts/{registry → authorization}/ServiceAuthorization.sol +45 -25
  359. package/contracts/distribution/BasicDistribution.sol +139 -0
  360. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  361. package/contracts/distribution/Distribution.sol +147 -121
  362. package/contracts/distribution/DistributionService.sol +160 -100
  363. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  364. package/contracts/distribution/IDistributionComponent.sol +26 -40
  365. package/contracts/distribution/IDistributionService.sol +28 -9
  366. package/contracts/examples/fire/DamageLevel.sol +59 -0
  367. package/contracts/examples/fire/FirePool.sol +90 -0
  368. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  369. package/contracts/examples/fire/FireProduct.sol +438 -0
  370. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  371. package/contracts/examples/fire/FireUSD.sol +26 -0
  372. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  373. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  374. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  375. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  376. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  378. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  379. package/contracts/instance/BundleSet.sol +130 -0
  380. package/contracts/instance/IInstance.sol +23 -44
  381. package/contracts/instance/IInstanceService.sol +16 -41
  382. package/contracts/instance/Instance.sol +92 -120
  383. package/contracts/instance/InstanceAdmin.sol +250 -255
  384. package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
  385. package/contracts/instance/InstanceReader.sol +238 -34
  386. package/contracts/instance/InstanceService.sol +145 -180
  387. package/contracts/instance/InstanceServiceManager.sol +8 -13
  388. package/contracts/instance/InstanceStore.sol +35 -6
  389. package/contracts/instance/RiskSet.sol +117 -0
  390. package/contracts/instance/base/ObjectCounter.sol +1 -2
  391. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  392. package/contracts/instance/base/ObjectSet.sol +78 -0
  393. package/contracts/instance/module/IBundle.sol +1 -1
  394. package/contracts/instance/module/IComponents.sol +14 -15
  395. package/contracts/instance/module/IDistribution.sol +0 -1
  396. package/contracts/instance/module/IPolicy.sol +26 -25
  397. package/contracts/instance/module/IRisk.sol +3 -0
  398. package/contracts/mock/Dip.sol +1 -1
  399. package/contracts/oracle/BasicOracle.sol +47 -0
  400. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  401. package/contracts/oracle/IOracle.sol +16 -0
  402. package/contracts/oracle/IOracleComponent.sol +2 -1
  403. package/contracts/oracle/IOracleService.sol +2 -1
  404. package/contracts/oracle/Oracle.sol +64 -53
  405. package/contracts/oracle/OracleService.sol +113 -81
  406. package/contracts/oracle/OracleServiceManager.sol +8 -11
  407. package/contracts/pool/BasicPool.sol +175 -0
  408. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  409. package/contracts/pool/BundleService.sol +231 -102
  410. package/contracts/pool/BundleServiceManager.sol +8 -11
  411. package/contracts/pool/IBundleService.sol +33 -18
  412. package/contracts/pool/IPoolComponent.sol +20 -70
  413. package/contracts/pool/IPoolService.sol +53 -50
  414. package/contracts/pool/Pool.sol +208 -162
  415. package/contracts/pool/PoolService.sol +343 -180
  416. package/contracts/pool/PoolServiceManager.sol +6 -9
  417. package/contracts/product/ApplicationService.sol +83 -78
  418. package/contracts/product/ApplicationServiceManager.sol +6 -6
  419. package/contracts/product/BasicProduct.sol +51 -0
  420. package/contracts/product/BasicProductAuthorization.sol +41 -0
  421. package/contracts/product/ClaimService.sol +425 -159
  422. package/contracts/product/ClaimServiceManager.sol +6 -6
  423. package/contracts/product/IApplicationService.sol +6 -2
  424. package/contracts/product/IClaimService.sol +44 -7
  425. package/contracts/product/IPolicyService.sol +46 -34
  426. package/contracts/product/IPricingService.sol +10 -10
  427. package/contracts/product/IProductComponent.sol +29 -9
  428. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  429. package/contracts/product/PolicyService.sol +520 -259
  430. package/contracts/product/PolicyServiceManager.sol +6 -9
  431. package/contracts/product/PricingService.sol +66 -62
  432. package/contracts/product/PricingServiceManager.sol +6 -9
  433. package/contracts/product/Product.sol +220 -134
  434. package/contracts/product/RiskService.sol +151 -0
  435. package/contracts/product/RiskServiceManager.sol +39 -0
  436. package/contracts/registry/ChainNft.sol +72 -40
  437. package/contracts/registry/IRegistry.sol +72 -32
  438. package/contracts/registry/IRegistryService.sol +3 -10
  439. package/contracts/registry/IRelease.sol +26 -0
  440. package/contracts/registry/ITransferInterceptor.sol +1 -2
  441. package/contracts/registry/Registry.sol +364 -220
  442. package/contracts/registry/RegistryAdmin.sol +228 -217
  443. package/contracts/registry/RegistryService.sol +41 -66
  444. package/contracts/registry/RegistryServiceManager.sol +5 -5
  445. package/contracts/registry/ReleaseAdmin.sol +245 -0
  446. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  447. package/contracts/registry/ReleaseRegistry.sol +511 -0
  448. package/contracts/registry/ServiceAuthorizationV3.sol +102 -60
  449. package/contracts/registry/TokenRegistry.sol +8 -10
  450. package/contracts/shared/Component.sol +71 -126
  451. package/contracts/shared/ComponentService.sol +463 -380
  452. package/contracts/shared/ComponentServiceManager.sol +10 -7
  453. package/contracts/shared/ComponentVerifyingService.sol +29 -18
  454. package/contracts/shared/ContractLib.sol +252 -0
  455. package/contracts/shared/IComponent.sol +8 -17
  456. package/contracts/shared/IComponentService.sol +53 -39
  457. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  458. package/contracts/shared/IKeyValueStore.sol +1 -0
  459. package/contracts/shared/ILifecycle.sol +3 -2
  460. package/contracts/shared/INftOwnable.sol +2 -0
  461. package/contracts/shared/IPolicyHolder.sol +12 -22
  462. package/contracts/shared/IRegisterable.sol +23 -1
  463. package/contracts/shared/IService.sol +4 -6
  464. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  465. package/contracts/shared/InstanceLinkedComponent.sol +95 -42
  466. package/contracts/shared/KeyValueStore.sol +7 -3
  467. package/contracts/shared/Lifecycle.sol +30 -72
  468. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  469. package/contracts/shared/NftOwnable.sol +31 -11
  470. package/contracts/shared/PolicyHolder.sol +17 -57
  471. package/contracts/shared/Registerable.sol +55 -21
  472. package/contracts/shared/RegistryLinked.sol +9 -14
  473. package/contracts/shared/Service.sol +18 -36
  474. package/contracts/shared/TokenHandler.sol +357 -26
  475. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  476. package/contracts/staking/IStaking.sol +12 -7
  477. package/contracts/staking/IStakingService.sol +12 -8
  478. package/contracts/staking/StakeManagerLib.sol +18 -25
  479. package/contracts/staking/Staking.sol +86 -73
  480. package/contracts/staking/StakingLifecycle.sol +23 -0
  481. package/contracts/staking/StakingManager.sol +10 -12
  482. package/contracts/staking/StakingReader.sol +23 -20
  483. package/contracts/staking/StakingService.sol +64 -36
  484. package/contracts/staking/StakingServiceManager.sol +4 -4
  485. package/contracts/staking/StakingStore.sol +15 -23
  486. package/contracts/staking/TargetManagerLib.sol +7 -3
  487. package/contracts/type/Amount.sol +27 -5
  488. package/contracts/type/Blocknumber.sol +7 -1
  489. package/contracts/type/ClaimId.sol +6 -1
  490. package/contracts/type/Key32.sol +2 -2
  491. package/contracts/type/Key32Set.sol +62 -0
  492. package/contracts/type/NftId.sol +7 -0
  493. package/contracts/type/ObjectType.sol +73 -24
  494. package/contracts/type/PayoutId.sol +10 -10
  495. package/contracts/type/Referral.sol +1 -0
  496. package/contracts/type/RiskId.sol +35 -4
  497. package/contracts/type/RoleId.sol +57 -93
  498. package/contracts/type/Seconds.sol +21 -1
  499. package/contracts/type/StateId.sol +15 -1
  500. package/contracts/type/Timestamp.sol +10 -5
  501. package/contracts/type/UFixed.sol +40 -121
  502. package/contracts/type/Version.sol +18 -6
  503. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  504. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  505. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  506. package/package.json +9 -5
  507. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  509. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  510. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  511. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  513. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  514. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  515. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  516. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  517. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  518. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  519. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  520. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
  521. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  522. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  523. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  524. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  525. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  526. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  527. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  528. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  529. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  530. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  531. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  532. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  533. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  534. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  535. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  536. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  537. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  538. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  539. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  540. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  541. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  542. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  543. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  544. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  545. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  546. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  547. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  548. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  549. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  550. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  551. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  552. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  553. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  554. package/contracts/instance/BundleManager.sol +0 -126
  555. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  556. package/contracts/instance/base/ObjectManager.sol +0 -80
  557. package/contracts/product/ProductService.sol +0 -124
  558. package/contracts/product/ProductServiceManager.sol +0 -42
  559. package/contracts/registry/ReleaseManager.sol +0 -527
  560. package/contracts/shared/AccessManagerCustom.sol +0 -741
  561. package/contracts/shared/AccessManagerExtended.sol +0 -481
  562. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  563. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  564. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  565. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  566. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  567. package/contracts/shared/InitializableCustom.sol +0 -177
  568. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -2,8 +2,8 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IVersionable} from "../shared/IVersionable.sol";
6
- import {ProxyManager} from "../shared/ProxyManager.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
7
  import {StakingService} from "./StakingService.sol";
8
8
 
9
9
  contract StakingServiceManager is
@@ -18,14 +18,14 @@ contract StakingServiceManager is
18
18
  address registryAddress,
19
19
  bytes32 salt
20
20
  )
21
- ProxyManager(registryAddress)
22
21
  {
23
22
  StakingService svc = new StakingService();
24
23
  bytes memory data = abi.encode(
25
24
  authority,
26
25
  registryAddress,
27
26
  IRegistry(registryAddress).getStakingAddress());
28
- IVersionable versionable = deployDetermenistic(
27
+ IVersionable versionable = initialize(
28
+ registryAddress,
29
29
  address(svc),
30
30
  data,
31
31
  salt);
@@ -3,36 +3,27 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
5
 
6
- import {Amount, AmountLib} from "../type/Amount.sol";
7
- import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
8
- import {ChainNft} from "../registry/ChainNft.sol";
9
- import {Component} from "../shared/Component.sol";
10
6
  import {IRegistry} from "../registry/IRegistry.sol";
11
- import {IRegistryService} from "../registry/IRegistryService.sol";
12
7
  import {IStaking} from "./IStaking.sol";
13
- import {IVersionable} from "../shared/IVersionable.sol";
14
- import {Key32} from "../type/Key32.sol";
8
+
9
+ import {Amount, AmountLib} from "../type/Amount.sol";
10
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
15
11
  import {KeyValueStore} from "../shared/KeyValueStore.sol";
16
12
  import {KEEP_STATE} from "../type/StateId.sol";
17
- import {LibNftIdSet} from "../type/NftIdSet.sol";
18
13
  import {NftId, NftIdLib} from "../type/NftId.sol";
19
- import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
20
- import {ObjectType, INSTANCE, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
21
- import {Seconds, SecondsLib} from "../type/Seconds.sol";
14
+ import {NftIdSet} from "../shared/NftIdSet.sol";
15
+ import {PROTOCOL, STAKE, TARGET} from "../type/ObjectType.sol";
22
16
  import {StakingReader} from "./StakingReader.sol";
23
17
  import {TargetManagerLib} from "./TargetManagerLib.sol";
24
18
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
25
- import {TokenRegistry} from "../registry/TokenRegistry.sol";
26
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
27
- import {Version, VersionLib} from "../type/Version.sol";
28
- import {Versionable} from "../shared/Versionable.sol";
29
-
30
- import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
19
+ import {StakingLifecycle} from "./StakingLifecycle.sol";
20
+ import {UFixed} from "../type/UFixed.sol";
31
21
 
32
22
 
33
23
  contract StakingStore is
34
24
  AccessManaged,
35
- KeyValueStore
25
+ KeyValueStore,
26
+ StakingLifecycle
36
27
  {
37
28
 
38
29
  event LogStakingStoreReserveBalanceIncreased(NftId targetNftId, Amount dipAmount, Amount reserveBalance, Blocknumber lastUpdatedIn);
@@ -61,7 +52,7 @@ contract StakingStore is
61
52
  error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId);
62
53
 
63
54
  IRegistry private _registry;
64
- NftIdSetManager private _targetManager;
55
+ NftIdSet private _targetNftIdSet;
65
56
  StakingReader private _reader;
66
57
 
67
58
  // staking rate
@@ -91,7 +82,7 @@ contract StakingStore is
91
82
  // set internal variables
92
83
  _registry = registry; //TODO if keeps registry -> RegistryLinked and checks registry address
93
84
  _reader = reader;
94
- _targetManager = new NftIdSetManager();
85
+ _targetNftIdSet = new NftIdSet();
95
86
 
96
87
  // register protocol target
97
88
  _createTarget(
@@ -426,8 +417,9 @@ contract StakingStore is
426
417
  return _reader;
427
418
  }
428
419
 
429
- function getTargetManager() external view returns (NftIdSetManager targetManager){
430
- return _targetManager;
420
+ // TODO rename
421
+ function getTargetNftIdSet() external view returns (NftIdSet targetNftIdSet){
422
+ return _targetNftIdSet;
431
423
  }
432
424
 
433
425
  function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) { return _stakingRate[chainId][token]; }
@@ -491,7 +483,7 @@ contract StakingStore is
491
483
  _tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
492
484
  _createTargetBalance(targetNftId);
493
485
 
494
- _targetManager.add(targetNftId);
486
+ _targetNftIdSet.add(targetNftId);
495
487
  }
496
488
 
497
489
  function _updateReserves(
@@ -132,9 +132,9 @@ library TargetManagerLib {
132
132
  public
133
133
  pure
134
134
  {
135
- // check locking period is > 0
136
- if (lockingPeriod.eqz()) {
137
- revert IStaking.ErrorStakingLockingPeriodZero(targetNftId);
135
+ // check locking period is >= min locking period
136
+ if (lockingPeriod.lt(getMinimumLockingPeriod())) {
137
+ revert IStaking.ErrorStakingLockingPeriodTooShort(targetNftId, getMinimumLockingPeriod(), lockingPeriod);
138
138
  }
139
139
 
140
140
  // check locking period <= max locking period
@@ -190,6 +190,10 @@ library TargetManagerLib {
190
190
  return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
191
191
  }
192
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
+ }
193
197
 
194
198
  function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
195
199
  return UFixedLib.toUFixed(33, -2);
@@ -11,14 +11,18 @@ using {
11
11
  eqAmount as ==,
12
12
  nqAmount as !=,
13
13
  ltAmount as <,
14
+ ltAmount as <=,
14
15
  gtAmount as >,
16
+ gteAmount as >=,
17
+ AmountLib.add,
15
18
  AmountLib.eq,
16
19
  AmountLib.eqz,
17
20
  AmountLib.gtz,
21
+ AmountLib.gt,
22
+ AmountLib.gte,
23
+ AmountLib.multiplyWith,
18
24
  AmountLib.toInt,
19
- AmountLib.add,
20
- AmountLib.toUFixed,
21
- AmountLib.multiplyWith
25
+ AmountLib.toUFixed
22
26
  } for Amount global;
23
27
 
24
28
  function addAmount(Amount a, Amount b) pure returns (Amount) {
@@ -41,10 +45,18 @@ function ltAmount(Amount a, Amount b) pure returns (bool) {
41
45
  return AmountLib.lt(a, b);
42
46
  }
43
47
 
48
+ function lteAmount(Amount a, Amount b) pure returns (bool) {
49
+ return AmountLib.lte(a, b);
50
+ }
51
+
44
52
  function gtAmount(Amount a, Amount b) pure returns (bool) {
45
53
  return AmountLib.gt(a, b);
46
54
  }
47
55
 
56
+ function gteAmount(Amount a, Amount b) pure returns (bool) {
57
+ return AmountLib.gte(a, b);
58
+ }
59
+
48
60
  library AmountLib {
49
61
 
50
62
  error ErrorAmountLibValueTooBig(uint256 amount);
@@ -77,16 +89,26 @@ library AmountLib {
77
89
  return Amount.unwrap(amount1) == Amount.unwrap(amount2);
78
90
  }
79
91
 
80
- /// @dev return true if amount a1 is smaller than a2
92
+ /// @dev return true if amount a1 is less than a2
81
93
  function lt(Amount a1, Amount a2) public pure returns (bool) {
82
94
  return Amount.unwrap(a1) < Amount.unwrap(a2);
83
95
  }
84
96
 
85
- /// @dev return true if amount a1 is larger than a2
97
+ /// @dev return true if amount a1 is less or equal than a2
98
+ function lte(Amount a1, Amount a2) public pure returns (bool) {
99
+ return Amount.unwrap(a1) <= Amount.unwrap(a2);
100
+ }
101
+
102
+ /// @dev return true if amount a1 is greater than a2
86
103
  function gt(Amount a1, Amount a2) public pure returns (bool) {
87
104
  return Amount.unwrap(a1) > Amount.unwrap(a2);
88
105
  }
89
106
 
107
+ /// @dev return true if amount a1 is greater or equal than a2
108
+ function gte(Amount a1, Amount a2) public pure returns (bool) {
109
+ return Amount.unwrap(a1) >= Amount.unwrap(a2);
110
+ }
111
+
90
112
  /// @dev return minimum of a1 and a2.
91
113
  function min(Amount a1, Amount a2) public pure returns (Amount) {
92
114
  if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
@@ -11,8 +11,14 @@ using {
11
11
  eqBlocknumber as ==,
12
12
  neBlocknumber as !=,
13
13
  BlocknumberLib.toInt,
14
+ BlocknumberLib.eq,
15
+ BlocknumberLib.ne,
14
16
  BlocknumberLib.eqz,
15
- BlocknumberLib.gtz
17
+ BlocknumberLib.gtz,
18
+ BlocknumberLib.gt,
19
+ BlocknumberLib.gte,
20
+ BlocknumberLib.lt,
21
+ BlocknumberLib.lte
16
22
  } for Blocknumber global;
17
23
 
18
24
  /// @dev return true if Blocknumber a is greater than Blocknumber b
@@ -12,6 +12,7 @@ import {NftId} from "./NftId.sol";
12
12
  using {
13
13
  eqClaimId as ==,
14
14
  neClaimId as !=,
15
+ ClaimIdLib.eq,
15
16
  ClaimIdLib.eqz,
16
17
  ClaimIdLib.gtz,
17
18
  ClaimIdLib.toInt,
@@ -21,7 +22,7 @@ using {
21
22
 
22
23
  // pure free functions for operators
23
24
  function eqClaimId(ClaimId a, ClaimId b) pure returns (bool isSame) {
24
- return ClaimId.unwrap(a) == ClaimId.unwrap(b);
25
+ return ClaimIdLib.eq(a, b);
25
26
  }
26
27
 
27
28
  function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
@@ -68,6 +69,10 @@ library ClaimIdLib {
68
69
  return ClaimId.unwrap(a) > 0;
69
70
  }
70
71
 
72
+ function eq(ClaimId a, ClaimId b) public pure returns (bool) {
73
+ return ClaimId.unwrap(a) == ClaimId.unwrap(b);
74
+ }
75
+
71
76
  /// @dev Returns true if the value is zero (== 0).
72
77
  function eqz(ClaimId a) public pure returns (bool) {
73
78
  return ClaimId.unwrap(a) == 0;
@@ -28,8 +28,8 @@ library Key32Lib {
28
28
 
29
29
  uint8 public constant TYPE_SHIFT = 31 * 8;
30
30
  uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
31
- bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // first byte in bytes32
32
- bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // remaining bytes in bytes32
31
+ bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // [32] byte in bytes32
32
+ bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // [0..31] bytes in bytes32
33
33
 
34
34
  function toKey32(ObjectType objectType, KeyId id) public pure returns (Key32) {
35
35
  uint256 uintObjectType = ObjectType.unwrap(objectType);
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32} from "../type/Key32.sol";
5
+
6
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
+ library LibKey32Set {
8
+
9
+ struct Set {
10
+ Key32[] keys;
11
+ mapping(Key32 key => uint256 index) at;
12
+ }
13
+
14
+ error ErrorKey32SetAlreadyAdded(Key32 key);
15
+ error ErrorKey32SetNotInSet(Key32 key);
16
+
17
+
18
+ function add(Set storage set, Key32 key) external {
19
+ if (set.at[key] > 0) {
20
+ revert ErrorKey32SetAlreadyAdded(key);
21
+ }
22
+
23
+ set.keys.push(key);
24
+ set.at[key] = set.keys.length;
25
+ }
26
+
27
+ function remove(Set storage set, Key32 key) external {
28
+ uint256 nftIdIndex = set.at[key];
29
+
30
+ if (nftIdIndex == 0) {
31
+ revert ErrorKey32SetNotInSet(key);
32
+ }
33
+
34
+ uint256 toDeleteIndex = nftIdIndex - 1;
35
+ uint256 lastIndex = set.keys.length - 1;
36
+
37
+ if (lastIndex != toDeleteIndex) {
38
+ Key32 lastId = set.keys[lastIndex];
39
+ set.keys[toDeleteIndex] = lastId;
40
+ set.at[lastId] = nftIdIndex; // Replace lastValue's index to valueIndex
41
+ }
42
+
43
+ set.keys.pop();
44
+ delete set.at[key];
45
+ }
46
+
47
+ function isEmpty(Set storage set) external view returns(bool empty) {
48
+ return set.keys.length == 0;
49
+ }
50
+
51
+ function contains(Set storage set, Key32 key) external view returns(bool inSet) {
52
+ return set.at[key] > 0;
53
+ }
54
+
55
+ function size(Set storage set) external view returns(uint256 length) {
56
+ return set.keys.length;
57
+ }
58
+
59
+ function getElementAt(Set storage set, uint256 index) external view returns(Key32 key) {
60
+ return set.keys[index];
61
+ }
62
+ }
@@ -14,6 +14,7 @@ using {
14
14
  NftIdLib.toInt,
15
15
  NftIdLib.gtz,
16
16
  NftIdLib.eqz,
17
+ NftIdLib.eq,
17
18
  NftIdLib.toKeyId,
18
19
  NftIdLib.toKey32
19
20
  } for NftId global;
@@ -75,4 +76,10 @@ library NftIdLib {
75
76
  function toKeyId(NftId id) public pure returns (KeyId keyId) {
76
77
  return KeyId.wrap(bytes31(uint248(NftId.unwrap(id))));
77
78
  }
79
+
80
+ function toNftId(KeyId keyId) public pure returns (NftId nftId) {
81
+ uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
82
+ assert(keyIdInt < type(uint96).max);
83
+ return NftId.wrap(uint96(keyIdInt));
84
+ }
78
85
  }
@@ -9,6 +9,7 @@ using {
9
9
  neObjectType as !=,
10
10
  ObjectTypeLib.toInt,
11
11
  ObjectTypeLib.eqz,
12
+ ObjectTypeLib.eq,
12
13
  ObjectTypeLib.gtz
13
14
  } for ObjectType global;
14
15
 
@@ -27,20 +28,16 @@ function STAKING() pure returns (ObjectType) {
27
28
  return ObjectType.wrap(3);
28
29
  }
29
30
 
30
- function TOKEN() pure returns (ObjectType) {
31
- return ObjectType.wrap(6);
32
- }
33
-
34
31
  function RELEASE() pure returns (ObjectType) {
35
- return ObjectType.wrap(7);
32
+ return ObjectType.wrap(6);
36
33
  }
37
34
 
38
35
  function ROLE() pure returns (ObjectType) {
39
- return ObjectType.wrap(8);
36
+ return ObjectType.wrap(7);
40
37
  }
41
38
 
42
39
  function SERVICE() pure returns (ObjectType) {
43
- return ObjectType.wrap(9);
40
+ return ObjectType.wrap(8);
44
41
  }
45
42
 
46
43
  function INSTANCE() pure returns (ObjectType) {
@@ -51,74 +48,88 @@ function COMPONENT() pure returns (ObjectType) {
51
48
  return ObjectType.wrap(11);
52
49
  }
53
50
 
54
- function PRODUCT() pure returns (ObjectType) {
51
+ function ACCOUNTING() pure returns (ObjectType) {
55
52
  return ObjectType.wrap(12);
56
53
  }
57
54
 
58
- function ORACLE() pure returns (ObjectType) {
55
+ function PRODUCT() pure returns (ObjectType) {
59
56
  return ObjectType.wrap(13);
60
57
  }
61
58
 
62
- function DISTRIBUTION() pure returns (ObjectType) {
59
+ function FEE() pure returns (ObjectType) {
63
60
  return ObjectType.wrap(14);
64
61
  }
65
62
 
66
- function POOL() pure returns (ObjectType) {
63
+ function ORACLE() pure returns (ObjectType) {
67
64
  return ObjectType.wrap(15);
68
65
  }
69
66
 
67
+ function DISTRIBUTION() pure returns (ObjectType) {
68
+ return ObjectType.wrap(16);
69
+ }
70
+
71
+ function POOL() pure returns (ObjectType) {
72
+ return ObjectType.wrap(17);
73
+ }
74
+
70
75
  function APPLICATION() pure returns (ObjectType) {
71
- return ObjectType.wrap(20);
76
+ return ObjectType.wrap(18);
72
77
  }
73
78
 
74
79
  function POLICY() pure returns (ObjectType) {
75
- return ObjectType.wrap(21);
80
+ return ObjectType.wrap(19);
81
+ }
82
+
83
+ function PREMIUM() pure returns (ObjectType) {
84
+ return ObjectType.wrap(20);
76
85
  }
77
86
 
78
87
  function CLAIM() pure returns (ObjectType) {
79
- return ObjectType.wrap(22);
88
+ return ObjectType.wrap(21);
80
89
  }
81
90
 
82
91
  function PAYOUT() pure returns (ObjectType) {
83
- return ObjectType.wrap(23);
92
+ return ObjectType.wrap(22);
84
93
  }
85
94
 
86
95
  function RISK() pure returns (ObjectType) {
87
- return ObjectType.wrap(24);
96
+ return ObjectType.wrap(23);
88
97
  }
89
98
 
90
99
  function PRICE() pure returns (ObjectType) {
91
- return ObjectType.wrap(25);
100
+ return ObjectType.wrap(24);
92
101
  }
93
102
 
94
103
  function REQUEST() pure returns (ObjectType) {
95
- return ObjectType.wrap(26);
104
+ return ObjectType.wrap(25);
96
105
  }
97
106
 
98
107
  function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
99
- return ObjectType.wrap(27);
108
+ return ObjectType.wrap(26);
100
109
  }
101
110
 
102
111
  function DISTRIBUTOR() pure returns (ObjectType) {
103
- return ObjectType.wrap(28);
112
+ return ObjectType.wrap(27);
104
113
  }
105
114
 
106
115
  function REFERRAL() pure returns (ObjectType) {
107
- return ObjectType.wrap(29);
116
+ return ObjectType.wrap(28);
108
117
  }
109
118
 
110
119
  function BUNDLE() pure returns (ObjectType) {
111
- return ObjectType.wrap(30);
120
+ return ObjectType.wrap(29);
112
121
  }
113
122
 
114
123
  function TARGET() pure returns (ObjectType) {
115
- return ObjectType.wrap(31);
124
+ return ObjectType.wrap(30);
116
125
  }
117
126
 
118
127
  function STAKE() pure returns (ObjectType) {
119
- return ObjectType.wrap(32);
128
+ return ObjectType.wrap(31);
120
129
  }
121
130
 
131
+
132
+
122
133
  /// @dev Object type that includes any other object type.
123
134
  /// Note that eq()/'==' does not take this property into account.
124
135
  function ALL() pure returns (ObjectType) {
@@ -137,6 +148,8 @@ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
137
148
  // library functions that operate on user defined type
138
149
  library ObjectTypeLib {
139
150
 
151
+ error ErrorVersionTooBig(uint256 version);
152
+
140
153
  function zero() public pure returns (ObjectType) {
141
154
  return ObjectType.wrap(0);
142
155
  }
@@ -199,6 +212,10 @@ library ObjectTypeLib {
199
212
  return "Price";
200
213
  } else if (objectType == BUNDLE()) {
201
214
  return "Bundle";
215
+ } else if (objectType == RISK()) {
216
+ return "Risk";
217
+ } else if (objectType == ACCOUNTING()) {
218
+ return "Accounting";
202
219
  }
203
220
 
204
221
  // fallback: ObjectType<obect-type-int>
@@ -209,6 +226,38 @@ library ObjectTypeLib {
209
226
  toInt(objectType))));
210
227
  }
211
228
 
229
+ function toVersionedName(
230
+ string memory name,
231
+ string memory suffix,
232
+ uint256 version
233
+ )
234
+ external
235
+ pure
236
+ returns (string memory versionedName)
237
+ {
238
+ if (version > maxNumReleases()) {
239
+ revert ErrorVersionTooBig(version);
240
+ }
241
+
242
+ string memory versionName = "_v0";
243
+
244
+ if (version >= 10) {
245
+ versionName = "_v";
246
+ }
247
+
248
+ versionedName = string(
249
+ abi.encodePacked(
250
+ name,
251
+ suffix,
252
+ versionName,
253
+ toString(version)));
254
+ }
255
+
256
+ /// @dev returns the max number of releases (major versions) this gif setup can handle.
257
+ function maxNumReleases() public pure returns (uint8) {
258
+ return 99;
259
+ }
260
+
212
261
  /// @dev returns the provied int as a string
213
262
  function toString(uint256 value) public pure returns (string memory name) {
214
263
 
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- // uint24 allows for 65'535 claims with 255 payouts each per policy
5
- type PayoutId is uint24;
4
+ // uint40 allows for 65'535 claims with 16'777'216 payouts each per policy
5
+ type PayoutId is uint40;
6
6
 
7
7
  import {ClaimId} from "./ClaimId.sol";
8
8
  import {PAYOUT} from "./ObjectType.sol";
@@ -39,21 +39,21 @@ library PayoutIdLib {
39
39
  }
40
40
 
41
41
  /// @dev Converts an uint into a PayoutId.
42
- function toPayoutId(ClaimId claimId, uint8 payoutNo) public pure returns (PayoutId) {
43
- return PayoutId.wrap((ClaimId.unwrap(claimId) << 8) + payoutNo);
42
+ function toPayoutId(ClaimId claimId, uint24 payoutNo) public pure returns (PayoutId) {
43
+ return PayoutId.wrap((uint40(ClaimId.unwrap(claimId)) << 24) + payoutNo);
44
44
  }
45
45
 
46
46
  function toClaimId(PayoutId payoutId) public pure returns (ClaimId) {
47
- return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >> 8));
47
+ return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >> 24));
48
48
  }
49
49
 
50
- function toPayoutNo(PayoutId payoutId) public pure returns (uint8) {
51
- return uint8(PayoutId.unwrap(payoutId) & 255);
50
+ function toPayoutNo(PayoutId payoutId) public pure returns (uint24) {
51
+ return uint24(PayoutId.unwrap(payoutId) & 16777215);
52
52
  }
53
53
 
54
54
  /// @dev Converts the PayoutId to a uint.
55
- function toInt(PayoutId a) public pure returns (uint24) {
56
- return uint24(PayoutId.unwrap(a));
55
+ function toInt(PayoutId a) public pure returns (uint40) {
56
+ return PayoutId.unwrap(a);
57
57
  }
58
58
 
59
59
  /// @dev Returns true if the value is non-zero (> 0).
@@ -77,6 +77,6 @@ library PayoutIdLib {
77
77
  bytes31(
78
78
  bytes15(
79
79
  uint120(
80
- (NftId.unwrap(policyNftId) << 24) + PayoutId.unwrap(payoutId)))));
80
+ (NftId.unwrap(policyNftId) << 40) + PayoutId.unwrap(payoutId)))));
81
81
  }
82
82
  }
@@ -12,6 +12,7 @@ type ReferralStatus is uint8;
12
12
  using {
13
13
  eqReferralId as ==,
14
14
  neReferralId as !=,
15
+ ReferralLib.eqz,
15
16
  ReferralLib.toKey32
16
17
  } for ReferralId global;
17
18
 
@@ -10,6 +10,11 @@ type RiskId is bytes8;
10
10
  using {
11
11
  eqRiskId as ==,
12
12
  neRiskId as !=,
13
+ RiskIdLib.eq,
14
+ RiskIdLib.eqz,
15
+ RiskIdLib.gtz,
16
+ RiskIdLib.toInt,
17
+ RiskIdLib.toKeyId,
13
18
  RiskIdLib.toKey32
14
19
  } for RiskId global;
15
20
 
@@ -26,18 +31,44 @@ function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
26
31
  }
27
32
 
28
33
  library RiskIdLib {
29
- // @dev Converts a role string into a role id.
34
+ function zero() public pure returns (RiskId) {
35
+ return RiskId.wrap(bytes8(0));
36
+ }
37
+
38
+ // @dev Converts a risk id into a uint256.
39
+ function toInt(RiskId riskId) public pure returns (uint256) {
40
+ return uint64(RiskId.unwrap(riskId));
41
+ }
42
+
43
+ // @dev Converts a risk id string into a risk id.
30
44
  function toRiskId(string memory risk) public pure returns (RiskId) {
31
45
  return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
32
46
  }
33
47
 
34
- /// @dev Returns the key32 value for the specified nft id and object type.
35
- function toKey32(RiskId id) public pure returns (Key32 key) {
36
- return Key32Lib.toKey32(RISK(), toKeyId(id));
48
+ /// @dev Returns the key32 value for the specified risk id.
49
+ function toKey32(RiskId riskId) public pure returns (Key32 key) {
50
+ return Key32Lib.toKey32(RISK(), toKeyId(riskId));
37
51
  }
38
52
 
39
53
  /// @dev Returns the key id value for the specified nft id
40
54
  function toKeyId(RiskId id) public pure returns (KeyId keyId) {
41
55
  return KeyId.wrap(bytes31(RiskId.unwrap(id)));
42
56
  }
57
+
58
+ function toRiskId(KeyId keyId) public pure returns (RiskId riskId) {
59
+ riskId = RiskId.wrap(bytes8(KeyId.unwrap(keyId)));
60
+ assert(toInt(riskId) < 2**64);
61
+ }
62
+
63
+ function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
64
+ return eqRiskId(a, b);
65
+ }
66
+
67
+ function eqz(RiskId a) public pure returns (bool isZero) {
68
+ return eqRiskId(a, zero());
69
+ }
70
+
71
+ function gtz(RiskId a) public pure returns (bool isZero) {
72
+ return uint64(RiskId.unwrap(a)) > 0;
73
+ }
43
74
  }