@etherisc/gif-next 0.0.2-888aabe-141 → 0.0.2-88fccb3-776

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 (535) hide show
  1. package/README.md +89 -8
  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 +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +496 -255
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +277 -20
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +395 -203
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +143 -19
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +161 -476
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +265 -31
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -382
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +473 -287
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +151 -109
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +104 -194
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +318 -90
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1388 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +236 -39
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +144 -93
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +256 -123
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +737 -327
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +209 -94
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1064 -341
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +172 -278
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +96 -96
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +827 -690
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +133 -350
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +247 -33
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +117 -136
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +109 -318
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +156 -421
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +265 -31
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +336 -209
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -97
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +120 -212
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -308
  136. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  137. package/artifacts/contracts/pool/Pool.sol/Pool.json +110 -392
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +673 -552
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +194 -178
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +100 -90
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +261 -439
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +265 -31
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +245 -233
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  167. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +459 -309
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.json +232 -333
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +109 -131
  178. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  179. package/artifacts/contracts/product/Product.sol/Product.json +253 -431
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +334 -34
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  194. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/Registry.sol/Registry.json +540 -95
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +640 -368
  198. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +423 -245
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  214. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +546 -586
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +132 -124
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +513 -258
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +106 -136
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -318
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  267. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +152 -20
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +274 -391
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +126 -95
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +35 -67
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +205 -168
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -85
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +195 -135
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +82 -36
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  336. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  346. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  348. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  350. package/contracts/accounting/AccountingService.sol +262 -0
  351. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  352. package/contracts/accounting/IAccountingService.sol +45 -0
  353. package/contracts/authorization/AccessAdmin.sol +338 -225
  354. package/contracts/authorization/AccessAdminLib.sol +183 -0
  355. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  356. package/contracts/authorization/Authorization.sol +350 -203
  357. package/contracts/authorization/IAccess.sol +13 -4
  358. package/contracts/authorization/IAccessAdmin.sol +69 -35
  359. package/contracts/authorization/IAuthorization.sol +33 -7
  360. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  361. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  362. package/contracts/distribution/BasicDistribution.sol +20 -28
  363. package/contracts/distribution/BasicDistributionAuthorization.sol +26 -9
  364. package/contracts/distribution/Distribution.sol +39 -96
  365. package/contracts/distribution/DistributionService.sol +205 -108
  366. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  367. package/contracts/distribution/IDistributionComponent.sol +6 -12
  368. package/contracts/distribution/IDistributionService.sol +40 -22
  369. package/contracts/examples/fire/DamageLevel.sol +59 -0
  370. package/contracts/examples/fire/FirePool.sol +86 -0
  371. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  372. package/contracts/examples/fire/FireProduct.sol +433 -0
  373. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  374. package/contracts/examples/fire/FireUSD.sol +26 -0
  375. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  376. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  378. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  379. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  381. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  382. package/contracts/instance/BundleSet.sol +42 -38
  383. package/contracts/instance/IInstance.sol +64 -44
  384. package/contracts/instance/IInstanceService.sol +27 -31
  385. package/contracts/instance/Instance.sol +120 -70
  386. package/contracts/instance/InstanceAdmin.sol +287 -103
  387. package/contracts/instance/InstanceAuthorizationV3.sol +92 -61
  388. package/contracts/instance/InstanceReader.sol +288 -43
  389. package/contracts/instance/InstanceService.sol +207 -191
  390. package/contracts/instance/InstanceServiceManager.sol +6 -7
  391. package/contracts/instance/InstanceStore.sol +24 -2
  392. package/contracts/instance/RiskSet.sol +118 -0
  393. package/contracts/instance/base/ObjectCounter.sol +1 -2
  394. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  395. package/contracts/instance/base/ObjectSet.sol +31 -33
  396. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  397. package/contracts/instance/module/IBundle.sol +6 -5
  398. package/contracts/instance/module/IComponents.sol +30 -19
  399. package/contracts/instance/module/IDistribution.sol +21 -9
  400. package/contracts/instance/module/IPolicy.sol +50 -29
  401. package/contracts/instance/module/IRisk.sol +5 -0
  402. package/contracts/mock/Dip.sol +1 -1
  403. package/contracts/oracle/BasicOracle.sol +1 -4
  404. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  405. package/contracts/oracle/IOracleComponent.sol +2 -1
  406. package/contracts/oracle/IOracleService.sol +2 -1
  407. package/contracts/oracle/Oracle.sol +21 -24
  408. package/contracts/oracle/OracleService.sol +113 -81
  409. package/contracts/oracle/OracleServiceManager.sol +6 -6
  410. package/contracts/pool/BasicPool.sol +37 -28
  411. package/contracts/pool/BasicPoolAuthorization.sol +36 -9
  412. package/contracts/pool/BundleService.sol +194 -83
  413. package/contracts/pool/BundleServiceManager.sol +6 -6
  414. package/contracts/pool/IBundleService.sol +31 -22
  415. package/contracts/pool/IPoolComponent.sol +20 -12
  416. package/contracts/pool/IPoolService.sol +90 -75
  417. package/contracts/pool/Pool.sol +145 -131
  418. package/contracts/pool/PoolLib.sol +216 -0
  419. package/contracts/pool/PoolService.sol +538 -219
  420. package/contracts/pool/PoolServiceManager.sol +4 -4
  421. package/contracts/product/ApplicationService.sol +87 -43
  422. package/contracts/product/ApplicationServiceManager.sol +4 -4
  423. package/contracts/product/BasicProduct.sol +12 -45
  424. package/contracts/product/BasicProductAuthorization.sol +25 -9
  425. package/contracts/product/ClaimService.sol +367 -151
  426. package/contracts/product/ClaimServiceManager.sol +4 -4
  427. package/contracts/product/IApplicationService.sol +9 -2
  428. package/contracts/product/IClaimService.sol +44 -8
  429. package/contracts/product/IPolicyService.sol +53 -36
  430. package/contracts/product/IPricingService.sol +11 -10
  431. package/contracts/product/IProductComponent.sol +27 -7
  432. package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
  433. package/contracts/product/PolicyService.sol +458 -269
  434. package/contracts/product/PolicyServiceLib.sol +65 -0
  435. package/contracts/product/PolicyServiceManager.sol +4 -4
  436. package/contracts/product/PricingService.sol +69 -60
  437. package/contracts/product/PricingServiceManager.sol +4 -4
  438. package/contracts/product/Product.sol +165 -107
  439. package/contracts/product/RiskService.sol +154 -0
  440. package/contracts/product/RiskServiceManager.sol +39 -0
  441. package/contracts/registry/ChainNft.sol +72 -40
  442. package/contracts/registry/IRegistry.sol +64 -28
  443. package/contracts/registry/IRegistryService.sol +5 -12
  444. package/contracts/registry/IRelease.sol +26 -0
  445. package/contracts/registry/ITransferInterceptor.sol +1 -2
  446. package/contracts/registry/Registry.sol +357 -203
  447. package/contracts/registry/RegistryAdmin.sol +162 -269
  448. package/contracts/registry/RegistryAuthorization.sol +267 -0
  449. package/contracts/registry/RegistryService.sol +37 -48
  450. package/contracts/registry/RegistryServiceManager.sol +3 -3
  451. package/contracts/registry/ReleaseAdmin.sol +253 -0
  452. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  453. package/contracts/registry/ReleaseRegistry.sol +272 -242
  454. package/contracts/registry/ServiceAuthorizationV3.sol +183 -52
  455. package/contracts/registry/TokenRegistry.sol +6 -8
  456. package/contracts/shared/Component.sol +65 -129
  457. package/contracts/shared/ComponentService.sol +448 -357
  458. package/contracts/shared/ComponentServiceManager.sol +8 -5
  459. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  460. package/contracts/shared/ContractLib.sol +281 -0
  461. package/contracts/shared/IComponent.sol +5 -17
  462. package/contracts/shared/IComponentService.sol +46 -42
  463. package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
  464. package/contracts/shared/ILifecycle.sol +3 -1
  465. package/contracts/shared/INftOwnable.sol +2 -0
  466. package/contracts/shared/IPolicyHolder.sol +12 -22
  467. package/contracts/shared/IRegisterable.sol +23 -1
  468. package/contracts/shared/IService.sol +3 -5
  469. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  470. package/contracts/shared/InstanceLinkedComponent.sol +81 -37
  471. package/contracts/shared/KeyValueStore.sol +1 -1
  472. package/contracts/shared/Lifecycle.sol +15 -4
  473. package/contracts/shared/NftOwnable.sol +31 -11
  474. package/contracts/shared/PolicyHolder.sol +17 -57
  475. package/contracts/shared/Registerable.sol +52 -21
  476. package/contracts/shared/RegistryLinked.sol +9 -14
  477. package/contracts/shared/Service.sol +15 -32
  478. package/contracts/shared/TokenHandler.sol +310 -26
  479. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  480. package/contracts/staking/IStaking.sol +19 -11
  481. package/contracts/staking/IStakingService.sol +16 -4
  482. package/contracts/staking/Staking.sol +103 -71
  483. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
  484. package/contracts/staking/StakingManager.sol +8 -6
  485. package/contracts/staking/StakingReader.sol +18 -21
  486. package/contracts/staking/StakingService.sol +90 -37
  487. package/contracts/staking/StakingServiceManager.sol +6 -5
  488. package/contracts/staking/StakingStore.sol +2 -1
  489. package/contracts/staking/TargetManagerLib.sol +7 -3
  490. package/contracts/type/Amount.sol +27 -5
  491. package/contracts/type/Blocknumber.sol +7 -1
  492. package/contracts/type/ClaimId.sol +6 -1
  493. package/contracts/type/Fee.sol +8 -8
  494. package/contracts/type/Key32.sol +2 -2
  495. package/contracts/type/Key32Set.sol +62 -0
  496. package/contracts/type/NftId.sol +7 -0
  497. package/contracts/type/ObjectType.sol +57 -34
  498. package/contracts/type/PayoutId.sol +10 -10
  499. package/contracts/type/Referral.sol +1 -0
  500. package/contracts/type/RiskId.sol +38 -6
  501. package/contracts/type/RoleId.sol +23 -15
  502. package/contracts/type/Seconds.sol +21 -1
  503. package/contracts/type/Selector.sol +5 -0
  504. package/contracts/type/StateId.sol +15 -1
  505. package/contracts/type/Timestamp.sol +10 -5
  506. package/contracts/type/UFixed.sol +56 -126
  507. package/contracts/type/Version.sol +54 -5
  508. package/contracts/upgradeability/ProxyManager.sol +68 -34
  509. package/contracts/upgradeability/Versionable.sol +2 -2
  510. package/package.json +5 -4
  511. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  512. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  513. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  514. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  515. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  516. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  517. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  518. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  519. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  520. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  521. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  522. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  523. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  524. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  525. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  526. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  527. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  528. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  529. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  530. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  531. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  532. package/contracts/instance/module/IAccess.sol +0 -46
  533. package/contracts/product/ProductService.sol +0 -99
  534. package/contracts/product/ProductServiceManager.sol +0 -39
  535. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -18,9 +18,9 @@ contract StakingManager is
18
18
  address registry,
19
19
  address tokenRegistry,
20
20
  address stakingStore,
21
- address initialOwner
21
+ address initialOwner,
22
+ bytes32 salt
22
23
  )
23
- ProxyManager(registry)
24
24
  {
25
25
  Staking stakingImplementation = new Staking();
26
26
 
@@ -30,10 +30,12 @@ contract StakingManager is
30
30
  tokenRegistry,
31
31
  stakingStore,
32
32
  initialOwner);
33
-
34
- IVersionable versionable = deploy(
35
- _initialImplementation,
36
- _initializationData);
33
+
34
+ IVersionable versionable = initialize(
35
+ registry,
36
+ _initialImplementation,
37
+ _initializationData,
38
+ salt);
37
39
 
38
40
  _staking = Staking(address(versionable));
39
41
  }
@@ -1,13 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
4
6
  import {IRegistry} from "../registry/IRegistry.sol";
5
7
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
6
8
  import {IStaking} from "../staking/IStaking.sol";
7
9
 
8
10
  import {Amount} from "../type/Amount.sol";
9
11
  import {Blocknumber} from "../type/Blocknumber.sol";
10
- import {InitializableCustom} from "../shared/InitializableCustom.sol";
11
12
  import {NftId} from "../type/NftId.sol";
12
13
  import {STAKE, TARGET} from "../type/ObjectType.sol";
13
14
  import {StakingStore} from "./StakingStore.sol";
@@ -16,16 +17,18 @@ import {UFixed} from "../type/UFixed.sol";
16
17
 
17
18
  contract StakingReader is
18
19
  IRegistryLinked,
19
- InitializableCustom
20
+ Initializable
20
21
  {
21
22
 
22
- error ErrorStakingReaderDependenciesAlreadySet();
23
+ error ErrorStakingReaderUnauthorizedCaler();
23
24
 
25
+ address private _initializeOwner;
24
26
  IRegistry private _registry;
25
27
  IStaking private _staking;
26
28
  StakingStore private _store;
27
29
 
28
- constructor(IRegistry registry) InitializableCustom() {
30
+ constructor(IRegistry registry) {
31
+ _initializeOwner = msg.sender;
29
32
  _registry = registry;
30
33
  }
31
34
 
@@ -34,8 +37,12 @@ contract StakingReader is
34
37
  address stakingStoreAddress
35
38
  )
36
39
  external
37
- initializer
40
+ initializer()
38
41
  {
42
+ if (msg.sender != _initializeOwner) {
43
+ revert ErrorStakingReaderUnauthorizedCaler();
44
+ }
45
+
39
46
  _staking = IStaking(stakingAddress);
40
47
  _store = StakingStore(stakingStoreAddress);
41
48
  }
@@ -70,23 +77,8 @@ contract StakingReader is
70
77
  }
71
78
 
72
79
 
73
- function isActive(NftId targetNftId) external view returns (bool) {
74
- return _store.getTargetNftIdSet().isActive(targetNftId);
75
- }
76
-
77
-
78
- function activeTargets() external view returns (uint256) {
79
- return _store.getTargetNftIdSet().activeNftIds();
80
- }
81
-
82
-
83
- function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
84
- return _store.getTargetNftIdSet().getActiveNftId(idx);
85
- }
86
-
87
-
88
80
  function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
89
- return _registry.getObjectInfo(stakeNftId).parentNftId;
81
+ return _registry.getParentNftId(stakeNftId);
90
82
  }
91
83
 
92
84
 
@@ -112,6 +104,11 @@ contract StakingReader is
112
104
  rewardRate = getTargetInfo(targetNftId).rewardRate;
113
105
  }
114
106
 
107
+ /// @dev get the max staked amount allowed for the specified target nft id.
108
+ function getTargetMaxStakedAmount(NftId targetNftId) external view returns (Amount maxStakedAmount) {
109
+ return getTargetInfo(targetNftId).maxStakedAmount;
110
+ }
111
+
115
112
 
116
113
  /// @dev get the reward rate for the specified target nft id.
117
114
  function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
@@ -4,21 +4,15 @@ pragma solidity ^0.8.20;
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
6
  import {Amount} from "../type/Amount.sol";
7
- import {ChainNft} from "../registry/ChainNft.sol";
8
- import {IPoolService} from "../pool/IPoolService.sol";
9
7
  import {IRegisterable} from "../shared/IRegisterable.sol";
10
8
  import {IRegistry} from "../registry/IRegistry.sol";
11
9
  import {RegistryService} from "../registry/RegistryService.sol";
12
10
  import {IStaking} from "./IStaking.sol";
13
11
  import {IStakingService} from "./IStakingService.sol";
14
12
  import {NftId, NftIdLib} from "../type/NftId.sol";
15
- import {ObjectType, INSTANCE, PROTOCOL, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
13
+ import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
16
14
  import {Seconds} from "../type/Seconds.sol";
17
15
  import {Service} from "../shared/Service.sol";
18
- import {StakeManagerLib} from "./StakeManagerLib.sol";
19
- import {StakingReader} from "./StakingReader.sol";
20
- import {TargetManagerLib} from "./TargetManagerLib.sol";
21
- import {Timestamp} from "../type/Timestamp.sol";
22
16
  import {TokenHandler} from "../shared/TokenHandler.sol";
23
17
  import {UFixed} from "../type/UFixed.sol";
24
18
 
@@ -38,14 +32,28 @@ contract StakingService is
38
32
  TokenHandler _tokenHandler;
39
33
  }
40
34
 
41
- modifier onlyNftOwner(NftId nftId) {
42
- if(msg.sender != getRegistry().ownerOf(nftId)) {
43
- revert ErrorStakingServiceNotNftOwner(nftId, getRegistry().ownerOf(nftId), msg.sender);
35
+
36
+ modifier onlyStaking() {
37
+ if (msg.sender != address(_getStakingServiceStorage()._staking)) {
38
+ revert ErrorStakingServiceNotStaking(msg.sender);
44
39
  }
45
40
  _;
46
41
  }
47
42
 
48
43
 
44
+ function approveTokenHandler(
45
+ IERC20Metadata token,
46
+ Amount amount
47
+ )
48
+ external
49
+ virtual
50
+ onlyStaking()
51
+ {
52
+ _getStakingServiceStorage()._tokenHandler.approve(
53
+ token, amount);
54
+ }
55
+
56
+
49
57
  function createInstanceTarget(
50
58
  NftId targetNftId,
51
59
  Seconds initialLockingPeriod,
@@ -72,6 +80,7 @@ contract StakingService is
72
80
  virtual
73
81
  restricted()
74
82
  {
83
+ _checkNftType(instanceNftId, INSTANCE());
75
84
  _getStakingServiceStorage()._staking.setLockingPeriod(
76
85
  instanceNftId,
77
86
  lockingPeriod);
@@ -83,11 +92,23 @@ contract StakingService is
83
92
  virtual
84
93
  restricted()
85
94
  {
95
+ _checkNftType(instanceNftId, INSTANCE());
86
96
  _getStakingServiceStorage()._staking.setRewardRate(
87
97
  instanceNftId,
88
98
  rewardRate);
89
99
  }
90
100
 
101
+ function setInstanceMaxStakedAmount(NftId instanceNftId, Amount maxStakingAmount)
102
+ external
103
+ virtual
104
+ restricted()
105
+ {
106
+ _checkNftType(instanceNftId, INSTANCE());
107
+ _getStakingServiceStorage()._staking.setMaxStakedAmount(
108
+ instanceNftId,
109
+ maxStakingAmount);
110
+ }
111
+
91
112
 
92
113
  function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
93
114
  external
@@ -95,6 +116,7 @@ contract StakingService is
95
116
  restricted()
96
117
  returns (Amount newBalance)
97
118
  {
119
+ _checkNftType(instanceNftId, INSTANCE());
98
120
  return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
99
121
  }
100
122
 
@@ -116,17 +138,17 @@ contract StakingService is
116
138
  restricted()
117
139
  returns (Amount newBalance)
118
140
  {
141
+ _checkNftType(instanceNftId, INSTANCE());
119
142
  // update reward reserve book keeping
120
143
  StakingServiceStorage storage $ = _getStakingServiceStorage();
121
144
  newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
122
145
 
123
146
  // transfer withdrawal amount to target owner
124
147
  address instanceOwner = getRegistry().ownerOf(instanceNftId);
125
- $._staking.transferDipAmount(
148
+ emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
149
+ $._tokenHandler.pushToken(
126
150
  instanceOwner,
127
151
  dipAmount);
128
-
129
- emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
130
152
  }
131
153
 
132
154
 
@@ -169,12 +191,12 @@ contract StakingService is
169
191
  targetNftId,
170
192
  dipAmount);
171
193
 
194
+ emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
195
+
172
196
  // collect staked dip by staking
173
- $._staking.collectDipAmount(
174
- stakeOwner,
197
+ $._tokenHandler.pullToken(
198
+ stakeOwner,
175
199
  dipAmount);
176
-
177
- emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
178
200
  }
179
201
 
180
202
 
@@ -187,6 +209,8 @@ contract StakingService is
187
209
  restricted()
188
210
  onlyNftOwner(stakeNftId)
189
211
  {
212
+ _checkNftType(stakeNftId, STAKE());
213
+
190
214
  StakingServiceStorage storage $ = _getStakingServiceStorage();
191
215
  address stakeOwner = msg.sender;
192
216
 
@@ -197,12 +221,11 @@ contract StakingService is
197
221
 
198
222
  // collect staked dip by staking
199
223
  if (dipAmount.gtz()) {
200
- $._staking.collectDipAmount(
224
+ emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
225
+ $._tokenHandler.pullToken(
201
226
  stakeOwner,
202
227
  dipAmount);
203
228
  }
204
-
205
- emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
206
229
  }
207
230
 
208
231
 
@@ -215,11 +238,36 @@ contract StakingService is
215
238
  restricted()
216
239
  onlyNftOwner(stakeNftId)
217
240
  returns (
218
- NftId newStakeNftId
241
+ NftId newStakeNftId,
242
+ Amount newStakeBalance
219
243
  )
220
244
  {
245
+ _checkNftType(stakeNftId, STAKE());
246
+
221
247
  StakingServiceStorage storage $ = _getStakingServiceStorage();
222
- // TODO implement
248
+ address stakeOwner = msg.sender;
249
+
250
+ if (! getRegistry().isRegistered(newTargetNftId)) {
251
+ revert ErrorStakingServiceTargetUnknown(newTargetNftId);
252
+ }
253
+
254
+ // register new stake object with registry
255
+ newStakeNftId = $._registryService.registerStake(
256
+ IRegistry.ObjectInfo({
257
+ nftId: NftIdLib.zero(),
258
+ parentNftId: newTargetNftId,
259
+ objectType: STAKE(),
260
+ isInterceptor: false,
261
+ objectAddress: address(0),
262
+ initialOwner: stakeOwner,
263
+ data: ""
264
+ }));
265
+
266
+ newStakeBalance = $._staking.restake(
267
+ stakeNftId,
268
+ newStakeNftId);
269
+
270
+ emit LogStakingServiceStakeRestaked(stakeOwner, stakeNftId, newStakeNftId, newTargetNftId, newStakeBalance);
223
271
  }
224
272
 
225
273
 
@@ -230,6 +278,8 @@ contract StakingService is
230
278
  virtual
231
279
  restricted()
232
280
  {
281
+ _checkNftType(stakeNftId, STAKE());
282
+
233
283
  StakingServiceStorage storage $ = _getStakingServiceStorage();
234
284
  $._staking.updateRewards(stakeNftId);
235
285
 
@@ -243,15 +293,16 @@ contract StakingService is
243
293
  restricted()
244
294
  onlyNftOwner(stakeNftId)
245
295
  {
296
+ _checkNftType(stakeNftId, STAKE());
297
+
246
298
  StakingServiceStorage storage $ = _getStakingServiceStorage();
247
299
  address stakeOwner = msg.sender;
248
300
 
249
301
  Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
250
- $._staking.transferDipAmount(
302
+ emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
303
+ $._tokenHandler.pushToken(
251
304
  stakeOwner,
252
305
  rewardsClaimedAmount);
253
-
254
- emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
255
306
  }
256
307
 
257
308
 
@@ -261,6 +312,8 @@ contract StakingService is
261
312
  restricted()
262
313
  onlyNftOwner(stakeNftId)
263
314
  {
315
+ _checkNftType(stakeNftId, STAKE());
316
+
264
317
  StakingServiceStorage storage $ = _getStakingServiceStorage();
265
318
  address stakeOwner = msg.sender;
266
319
 
@@ -270,11 +323,11 @@ contract StakingService is
270
323
  ) = $._staking.unstake(stakeNftId);
271
324
 
272
325
  Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
273
- $._staking.transferDipAmount(
274
- stakeOwner,
275
- totalAmount);
276
-
277
326
  emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
327
+
328
+ $._tokenHandler.pushToken(
329
+ stakeOwner,
330
+ totalAmount);
278
331
  }
279
332
 
280
333
 
@@ -331,19 +384,19 @@ contract StakingService is
331
384
  {
332
385
  (
333
386
  address authority,
334
- address registryAddress,
335
- address stakingAddress
387
+ address registry,
388
+ address staking
336
389
  ) = abi.decode(data, (address, address, address));
337
390
 
338
- initializeService(registryAddress, authority, owner);
391
+ __Service_init(authority, registry, owner);
339
392
 
340
393
  StakingServiceStorage storage $ = _getStakingServiceStorage();
341
394
  $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
342
- $._staking = _registerStaking(stakingAddress);
395
+ $._staking = _registerStaking(staking);
343
396
  $._dip = $._staking.getToken();
344
397
  $._tokenHandler = $._staking.getTokenHandler();
345
398
 
346
- registerInterface(type(IStakingService).interfaceId);
399
+ _registerInterface(type(IStakingService).interfaceId);
347
400
  }
348
401
 
349
402
 
@@ -389,12 +442,12 @@ contract StakingService is
389
442
  StakingServiceStorage storage $ = _getStakingServiceStorage();
390
443
  newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
391
444
 
445
+ emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
446
+
392
447
  // collect reward dip from provider
393
- $._staking.collectDipAmount(
448
+ $._tokenHandler.pullToken(
394
449
  rewardProvider,
395
450
  dipAmount);
396
-
397
- emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
398
451
  }
399
452
 
400
453
 
@@ -15,17 +15,18 @@ contract StakingServiceManager is
15
15
  /// @dev initializes proxy manager with service implementation
16
16
  constructor(
17
17
  address authority,
18
- address registryAddress,
18
+ address registry,
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
- registryAddress,
27
- IRegistry(registryAddress).getStakingAddress());
28
- IVersionable versionable = deployDetermenistic(
25
+ registry,
26
+ IRegistry(registry).getStakingAddress());
27
+
28
+ IVersionable versionable = initialize(
29
+ registry,
29
30
  address(svc),
30
31
  data,
31
32
  salt);
@@ -91,7 +91,8 @@ contract StakingStore is
91
91
  objectType: PROTOCOL(),
92
92
  chainId: 1,
93
93
  lockingPeriod: TargetManagerLib.getDefaultLockingPeriod(),
94
- rewardRate: TargetManagerLib.getDefaultRewardRate()}));
94
+ rewardRate: TargetManagerLib.getDefaultRewardRate(),
95
+ maxStakedAmount: AmountLib.max()}));
95
96
  }
96
97
 
97
98
 
@@ -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;
@@ -5,16 +5,16 @@ import {Amount, AmountLib} from "./Amount.sol";
5
5
  import {UFixed, UFixedLib} from "./UFixed.sol";
6
6
 
7
7
  struct Fee {
8
+ // slot 0
8
9
  UFixed fractionalFee;
9
- // TODO migrate fixed fee to Amount
10
- uint256 fixedFee;
10
+ Amount fixedFee;
11
11
  }
12
12
 
13
13
  library FeeLib {
14
14
 
15
15
  /// @dev Return a zero fee struct (0, 0)
16
16
  function zero() public pure returns (Fee memory fee) {
17
- return Fee(UFixed.wrap(0), 0);
17
+ return Fee(UFixed.wrap(0), AmountLib.zero());
18
18
  }
19
19
 
20
20
  /// @dev Converts the uint256 to a fee struct.
@@ -22,7 +22,7 @@ library FeeLib {
22
22
  UFixed fractionalFee,
23
23
  uint256 fixedFee
24
24
  ) public pure returns (Fee memory fee) {
25
- return Fee(fractionalFee, fixedFee);
25
+ return Fee(fractionalFee, AmountLib.toAmount(fixedFee));
26
26
  }
27
27
 
28
28
  /// @dev Calculates fee and net amounts for the provided parameters
@@ -41,14 +41,14 @@ library FeeLib {
41
41
  if(gtz(fee)) {
42
42
  UFixed fractionalAmount =
43
43
  amount.toUFixed() * fee.fractionalFee;
44
- feeAmount = AmountLib.toAmount(fractionalAmount.toInt() + fee.fixedFee);
44
+ feeAmount = AmountLib.toAmount(fractionalAmount.toInt()) + fee.fixedFee;
45
45
  netAmount = netAmount - feeAmount;
46
46
  }
47
47
  }
48
48
 
49
49
  /// @dev Return the percent fee struct (x%, 0)
50
50
  function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
51
- return Fee(UFixedLib.toUFixed(percent, -2), 0);
51
+ return Fee(UFixedLib.toUFixed(percent, -2), AmountLib.zero());
52
52
  }
53
53
 
54
54
  // pure free functions for operators
@@ -57,10 +57,10 @@ library FeeLib {
57
57
  }
58
58
 
59
59
  function gtz(Fee memory fee) public pure returns (bool) {
60
- return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee > 0;
60
+ return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee.gtz();
61
61
  }
62
62
 
63
63
  function eqz(Fee memory fee) public pure returns (bool) {
64
- return fee.fixedFee == 0 && UFixed.unwrap(fee.fractionalFee) == 0;
64
+ return fee.fixedFee.eqz() && UFixed.unwrap(fee.fractionalFee) == 0;
65
65
  }
66
66
  }
@@ -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);