@etherisc/gif-next 0.0.2-df73b56-462 → 0.0.2-dfb8aa3-070

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 (406) hide show
  1. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
  3. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -13
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  13. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  14. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +154 -94
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +94 -58
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +136 -86
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +80 -60
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +81 -58
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +29 -0
  31. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  32. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  33. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  34. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  35. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  36. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  37. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  38. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  39. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  41. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +156 -96
  45. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +137 -77
  47. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +153 -106
  49. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +241 -129
  51. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  52. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  53. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
  55. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +29 -84
  57. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  58. package/artifacts/contracts/instance/Instance.sol/Instance.json +62 -40
  59. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
  61. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
  63. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +275 -77
  65. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +72 -130
  67. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +48 -40
  69. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +175 -104
  71. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  72. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  73. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  74. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  76. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  78. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  80. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  86. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  88. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +135 -75
  89. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  90. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  91. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  92. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +76 -53
  94. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
  96. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +89 -53
  98. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +86 -47
  100. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +48 -36
  102. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +89 -66
  104. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
  106. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +180 -82
  108. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +90 -58
  110. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
  112. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  113. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -53
  114. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +200 -115
  116. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  117. package/artifacts/contracts/pool/Pool.sol/Pool.json +89 -53
  118. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +312 -161
  120. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +81 -41
  122. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -32
  124. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -33
  126. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  127. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +145 -73
  128. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  129. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  130. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  131. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +175 -90
  132. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +82 -58
  134. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
  136. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +64 -8
  138. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  139. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +58 -0
  140. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
  142. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  143. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +132 -73
  144. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  145. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
  146. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +139 -60
  148. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +67 -47
  150. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  151. package/artifacts/contracts/product/PricingService.sol/PricingService.json +149 -107
  152. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -45
  154. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  155. package/artifacts/contracts/product/Product.sol/Product.json +145 -73
  156. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  157. package/artifacts/contracts/product/RiskService.sol/RiskService.json +60 -26
  158. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -30
  160. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  161. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  162. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +67 -15
  164. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  165. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
  166. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  168. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  169. package/artifacts/contracts/registry/Registry.sol/Registry.json +111 -51
  170. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +193 -165
  172. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +73 -172
  174. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +41 -29
  176. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  178. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +121 -223
  180. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  181. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  182. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  183. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  184. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  185. package/artifacts/contracts/shared/Component.sol/Component.json +68 -28
  186. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +350 -155
  188. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +83 -63
  190. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  191. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +42 -0
  192. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  193. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  194. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -28
  196. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
  198. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +76 -53
  200. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  202. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  204. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  206. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -1
  208. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  210. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  211. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  213. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  214. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  215. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -53
  216. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  217. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  218. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  220. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  221. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  222. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
  224. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  225. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -3
  226. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
  228. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  229. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  230. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  231. package/artifacts/contracts/shared/Service.sol/Service.json +42 -0
  232. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  233. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  234. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  235. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  236. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  237. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +55 -28
  238. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  239. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
  240. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  241. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  242. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  243. package/artifacts/contracts/staking/Staking.sol/Staking.json +138 -78
  244. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  245. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  246. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +68 -42
  248. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  250. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +66 -53
  252. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +45 -33
  254. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
  256. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  257. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  258. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  259. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Amount.sol/AmountLib.json +32 -8
  261. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  264. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  266. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  268. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  270. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  272. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  273. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  274. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  276. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  278. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  280. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  282. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  284. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  286. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  291. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  295. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +15 -2
  297. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  299. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +28 -12
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  303. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  304. package/contracts/authorization/AccessAdmin.sol +65 -61
  305. package/contracts/authorization/Authorization.sol +111 -39
  306. package/contracts/authorization/IAccess.sol +1 -0
  307. package/contracts/authorization/IAccessAdmin.sol +4 -2
  308. package/contracts/authorization/IAuthorization.sol +13 -7
  309. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  310. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  311. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  312. package/contracts/distribution/BasicDistribution.sol +2 -1
  313. package/contracts/distribution/Distribution.sol +6 -16
  314. package/contracts/distribution/DistributionService.sol +55 -36
  315. package/contracts/distribution/IDistributionComponent.sol +1 -1
  316. package/contracts/examples/fire/DamageLevel.sol +59 -0
  317. package/contracts/examples/fire/FirePool.sol +73 -0
  318. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  319. package/contracts/examples/fire/FireProduct.sol +415 -0
  320. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  321. package/contracts/examples/fire/FireUSD.sol +26 -0
  322. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
  323. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  324. package/contracts/examples/unpermissioned/SimplePool.sol +4 -4
  325. package/contracts/examples/unpermissioned/SimpleProduct.sol +10 -10
  326. package/contracts/instance/IInstance.sol +4 -1
  327. package/contracts/instance/IInstanceService.sol +0 -20
  328. package/contracts/instance/Instance.sol +20 -17
  329. package/contracts/instance/InstanceAdmin.sol +22 -30
  330. package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
  331. package/contracts/instance/InstanceReader.sol +83 -18
  332. package/contracts/instance/InstanceService.sol +15 -70
  333. package/contracts/instance/module/IComponents.sol +6 -3
  334. package/contracts/instance/module/IPolicy.sol +2 -2
  335. package/contracts/oracle/BasicOracle.sol +0 -1
  336. package/contracts/oracle/IOracleService.sol +2 -1
  337. package/contracts/oracle/Oracle.sol +4 -15
  338. package/contracts/oracle/OracleService.sol +39 -29
  339. package/contracts/pool/BasicPool.sol +14 -26
  340. package/contracts/pool/BasicPoolAuthorization.sol +0 -1
  341. package/contracts/pool/BundleService.sol +75 -20
  342. package/contracts/pool/IBundleService.sol +9 -0
  343. package/contracts/pool/IPoolService.sol +21 -14
  344. package/contracts/pool/Pool.sol +22 -29
  345. package/contracts/pool/PoolService.sol +116 -80
  346. package/contracts/product/ApplicationService.sol +16 -4
  347. package/contracts/product/BasicProduct.sol +6 -6
  348. package/contracts/product/BasicProductAuthorization.sol +0 -1
  349. package/contracts/product/ClaimService.sol +108 -69
  350. package/contracts/product/IClaimService.sol +3 -2
  351. package/contracts/product/IPolicyService.sol +3 -0
  352. package/contracts/product/IPricingService.sol +9 -9
  353. package/contracts/product/IProductComponent.sol +23 -3
  354. package/contracts/product/PolicyService.sol +66 -21
  355. package/contracts/product/PricingService.sol +8 -8
  356. package/contracts/product/Product.sol +81 -52
  357. package/contracts/registry/ChainNft.sol +6 -9
  358. package/contracts/registry/IRegistry.sol +6 -3
  359. package/contracts/registry/IRegistryService.sol +5 -12
  360. package/contracts/registry/ITransferInterceptor.sol +1 -2
  361. package/contracts/registry/Registry.sol +21 -6
  362. package/contracts/registry/RegistryAdmin.sol +7 -23
  363. package/contracts/registry/RegistryService.sol +33 -44
  364. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  365. package/contracts/registry/ReleaseRegistry.sol +201 -191
  366. package/contracts/registry/ServiceAuthorizationV3.sol +14 -19
  367. package/contracts/shared/Component.sol +25 -28
  368. package/contracts/shared/ComponentService.sol +235 -131
  369. package/contracts/shared/ComponentVerifyingService.sol +22 -13
  370. package/contracts/shared/IComponent.sol +6 -2
  371. package/contracts/shared/IComponentService.sol +25 -13
  372. package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
  373. package/contracts/shared/ILifecycle.sol +3 -1
  374. package/contracts/shared/INftOwnable.sol +2 -0
  375. package/contracts/shared/IRegisterable.sol +11 -0
  376. package/contracts/shared/InstanceLinkedComponent.sol +68 -27
  377. package/contracts/shared/KeyValueStore.sol +1 -1
  378. package/contracts/shared/Lifecycle.sol +15 -4
  379. package/contracts/shared/NftOwnable.sol +23 -3
  380. package/contracts/shared/PolicyHolder.sol +4 -0
  381. package/contracts/shared/Registerable.sol +15 -5
  382. package/contracts/shared/Service.sol +4 -7
  383. package/contracts/staking/IStakingService.sol +0 -3
  384. package/contracts/staking/Staking.sol +2 -3
  385. package/contracts/staking/StakingReader.sol +12 -5
  386. package/contracts/staking/StakingService.sol +15 -15
  387. package/contracts/type/Amount.sol +15 -0
  388. package/contracts/type/ClaimId.sol +6 -1
  389. package/contracts/type/NftId.sol +1 -0
  390. package/contracts/type/ObjectType.sol +1 -0
  391. package/contracts/type/PayoutId.sol +10 -10
  392. package/contracts/type/RiskId.sol +15 -1
  393. package/contracts/type/RoleId.sol +0 -12
  394. package/contracts/type/StateId.sol +14 -1
  395. package/contracts/type/UFixed.sol +4 -0
  396. package/contracts/upgradeability/ProxyManager.sol +2 -1
  397. package/package.json +2 -1
  398. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  399. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  400. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  401. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  402. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  403. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  404. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  405. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  406. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -73,7 +73,7 @@ contract DistributionService is
73
73
  InstanceReader instanceReader = instance.getInstanceReader();
74
74
 
75
75
  {
76
- NftId productNftId = _getProductNftId(instanceReader, distributionNftId);
76
+ NftId productNftId = _getProductNftId(distributionNftId);
77
77
  IComponents.ProductInfo memory productInfo = instance.getInstanceReader().getProductInfo(productNftId);
78
78
 
79
79
  UFixed variableDistributionFees = productInfo.distributionFee.fractionalFee;
@@ -163,6 +163,7 @@ contract DistributionService is
163
163
  )
164
164
  external
165
165
  virtual
166
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
166
167
  returns (ReferralId referralId)
167
168
  {
168
169
  (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
@@ -170,40 +171,43 @@ contract DistributionService is
170
171
  if (bytes(code).length == 0) {
171
172
  revert ErrorIDistributionServiceInvalidReferral(code);
172
173
  }
173
- if (expiryAt.eqz()) {
174
+ if (expiryAt.eqz() || expiryAt.lte(TimestampLib.blockTimestamp())) {
174
175
  revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
175
176
  }
176
177
 
177
- InstanceReader instanceReader = instance.getInstanceReader();
178
- DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
179
- IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
178
+ {
179
+ InstanceReader instanceReader = instance.getInstanceReader();
180
+ DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
181
+ IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
180
182
 
181
- if (distributorTypeData.maxReferralCount < maxReferrals) {
182
- revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
183
- }
184
- if (distributorTypeData.minDiscountPercentage > discountPercentage) {
185
- revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
186
- }
187
- if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
188
- revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
189
- }
190
- if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
191
- revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
183
+ if (distributorTypeData.maxReferralCount < maxReferrals) {
184
+ revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
185
+ }
186
+ if (distributorTypeData.minDiscountPercentage > discountPercentage) {
187
+ revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
188
+ }
189
+ if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
190
+ revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
191
+ }
192
+ if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
193
+ revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
194
+ }
192
195
  }
193
196
 
194
- referralId = ReferralLib.toReferralId(distributionNftId, code);
195
- IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
196
- distributorNftId,
197
- code,
198
- discountPercentage,
199
- maxReferrals,
200
- 0, // used referrals
201
- expiryAt,
202
- data
203
- );
204
-
205
- instance.getInstanceStore().createReferral(referralId, info);
206
- return referralId;
197
+ {
198
+ referralId = ReferralLib.toReferralId(distributionNftId, code);
199
+ IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
200
+ distributorNftId,
201
+ code,
202
+ discountPercentage,
203
+ maxReferrals,
204
+ 0, // used referrals
205
+ expiryAt,
206
+ data
207
+ );
208
+
209
+ instance.getInstanceStore().createReferral(referralId, info);
210
+ }
207
211
  }
208
212
 
209
213
  /// @inheritdoc IDistributionService
@@ -213,10 +217,14 @@ contract DistributionService is
213
217
  )
214
218
  external
215
219
  virtual
216
- restricted
220
+ restricted()
221
+ onlyNftOfType(distributionNftId, DISTRIBUTION())
217
222
  {
218
223
  if (referralIsValid(distributionNftId, referralId)) {
219
- IInstance instance = _getInstanceForDistribution(distributionNftId);
224
+ IRegistry registry = getRegistry();
225
+ IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
226
+ IInstance instance = _getInstanceForComponent(registry, distributionInfo);
227
+
220
228
  // update book keeping for referral info
221
229
  IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
222
230
  referralInfo.usedReferrals += 1;
@@ -231,9 +239,12 @@ contract DistributionService is
231
239
  )
232
240
  external
233
241
  virtual
234
- restricted
242
+ restricted()
243
+ onlyNftOfType(distributionNftId, DISTRIBUTION())
235
244
  {
236
- IInstance instance = _getInstanceForDistribution(distributionNftId);
245
+ IRegistry registry = getRegistry();
246
+ IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
247
+ IInstance instance = _getInstanceForComponent(registry, distributionInfo);
237
248
  InstanceReader reader = instance.getInstanceReader();
238
249
  InstanceStore store = instance.getInstanceStore();
239
250
 
@@ -267,6 +278,7 @@ contract DistributionService is
267
278
  public
268
279
  virtual
269
280
  // TODO: restricted() (once #462 is done)
281
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
270
282
  returns (Amount withdrawnAmount)
271
283
  {
272
284
  (NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
@@ -304,12 +316,19 @@ contract DistributionService is
304
316
  }
305
317
  }
306
318
 
307
- function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
319
+ function referralIsValid(NftId distributionNftId, ReferralId referralId)
320
+ public
321
+ view
322
+ onlyNftOfType(distributionNftId, DISTRIBUTION())
323
+ returns (bool isValid)
324
+ {
308
325
  if (distributionNftId.eqz() || referralId.eqz()) {
309
326
  return false;
310
327
  }
311
328
 
312
- IInstance instance = _getInstanceForDistribution(distributionNftId);
329
+ IRegistry registry = getRegistry();
330
+ IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
331
+ IInstance instance = _getInstanceForComponent(registry, distributionInfo);
313
332
  IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
314
333
 
315
334
  if (info.distributorNftId.eqz()) {
@@ -326,7 +345,7 @@ contract DistributionService is
326
345
  returns(IInstance instance)
327
346
  {
328
347
  NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
329
- address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
348
+ address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
330
349
  return IInstance(instanceAddress);
331
350
  }
332
351
 
@@ -12,7 +12,7 @@ interface IDistributionComponent is IInstanceLinkedComponent {
12
12
  error ErrorDistributionNotDistributor(address distributor);
13
13
  error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
14
14
 
15
- event LogDistributorUpdated(address to, address caller);
15
+ event LogDistributorUpdated(address to, address operator);
16
16
 
17
17
  /// @dev Returns true iff the provided address is registered as a distributor with this distribution component.
18
18
  function isDistributor(address candidate) external view returns (bool);
@@ -0,0 +1,59 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type DamageLevel is uint8;
5
+
6
+ // type bindings
7
+ using {
8
+ DamageLevelLib.eq,
9
+ DamageLevelLib.eqz,
10
+ DamageLevelLib.toInt
11
+ } for DamageLevel global;
12
+
13
+ // solhint-disable-next-line func-name-mixedcase
14
+ function DAMAGE_SMALL() pure returns (DamageLevel) {
15
+ return DamageLevel.wrap(1);
16
+ }
17
+
18
+ // solhint-disable-next-line func-name-mixedcase
19
+ function DAMAGE_MEDIUM() pure returns (DamageLevel) {
20
+ return DamageLevel.wrap(2);
21
+ }
22
+
23
+ // solhint-disable-next-line func-name-mixedcase
24
+ function DAMAGE_LARGE() pure returns (DamageLevel) {
25
+ return DamageLevel.wrap(3);
26
+ }
27
+
28
+ library DamageLevelLib {
29
+
30
+ error ErrorDamageLeveLibInvalidDamageLevel(uint8 damageLevel);
31
+
32
+ function zero() internal pure returns (DamageLevel) {
33
+ return DamageLevel.wrap(0);
34
+ }
35
+
36
+ function toDamageLevel(uint8 damage) internal pure returns (DamageLevel) {
37
+ if (damage == 1) {
38
+ return DAMAGE_SMALL();
39
+ } else if (damage == 2) {
40
+ return DAMAGE_MEDIUM();
41
+ } else if (damage == 3) {
42
+ return DAMAGE_LARGE();
43
+ } else {
44
+ revert ErrorDamageLeveLibInvalidDamageLevel(damage);
45
+ }
46
+ }
47
+
48
+ function toInt(DamageLevel damageLevel) internal pure returns (uint8) {
49
+ return uint8(DamageLevel.unwrap(damageLevel));
50
+ }
51
+
52
+ function eq(DamageLevel a, DamageLevel b) internal pure returns (bool) {
53
+ return DamageLevel.unwrap(a) == DamageLevel.unwrap(b);
54
+ }
55
+
56
+ function eqz(DamageLevel a) internal pure returns (bool) {
57
+ return DamageLevel.unwrap(a) == 0;
58
+ }
59
+ }
@@ -0,0 +1,73 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {BasicPool} from "../../pool/BasicPool.sol";
6
+ import {Fee} from "../../type/Fee.sol";
7
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
8
+ import {NftId} from "../../type/NftId.sol";
9
+ import {Seconds} from "../../type/Timestamp.sol";
10
+
11
+ contract FirePool is
12
+ BasicPool
13
+ {
14
+
15
+ constructor(
16
+ address registry,
17
+ NftId fireProductNftId,
18
+ string memory componentName,
19
+ address token,
20
+ IAuthorization authorization
21
+ )
22
+ {
23
+ address initialOwner = msg.sender;
24
+ _intialize(
25
+ registry,
26
+ fireProductNftId,
27
+ componentName,
28
+ token,
29
+ authorization,
30
+ initialOwner);
31
+ }
32
+
33
+ function _intialize(
34
+ address registry,
35
+ NftId fireProductNftId,
36
+ string memory componentName,
37
+ address token,
38
+ IAuthorization authorization,
39
+ address initialOwner
40
+ )
41
+ internal
42
+ initializer
43
+ {
44
+ _initializeBasicPool(
45
+ registry,
46
+ fireProductNftId,
47
+ authorization,
48
+ token,
49
+ componentName,
50
+ initialOwner);
51
+ }
52
+
53
+ function createBundle(
54
+ Fee memory fee,
55
+ Amount initialAmount,
56
+ Seconds lifetime
57
+ )
58
+ external
59
+ virtual
60
+ restricted()
61
+ returns(NftId bundleNftId, Amount netStakedAmount)
62
+ {
63
+ address owner = msg.sender;
64
+ bundleNftId = _createBundle(
65
+ owner,
66
+ fee,
67
+ lifetime,
68
+ "" // filter
69
+ );
70
+ netStakedAmount = _stake(bundleNftId, initialAmount);
71
+ }
72
+
73
+ }
@@ -0,0 +1,34 @@
1
+
2
+
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ pragma solidity ^0.8.20;
5
+
6
+ import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
7
+ import {FirePool} from "./FirePool.sol";
8
+ import {IAccess} from "../../../contracts/authorization/IAccess.sol";
9
+ import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
10
+
11
+ contract FirePoolAuthorization
12
+ is BasicPoolAuthorization
13
+ {
14
+
15
+ constructor(string memory poolName)
16
+ BasicPoolAuthorization(poolName)
17
+ {}
18
+
19
+
20
+ function _setupTargetAuthorizations()
21
+ internal
22
+ virtual override
23
+ {
24
+ super._setupTargetAuthorizations();
25
+ IAccess.FunctionInfo[] storage functions;
26
+
27
+ // authorize public role (open access to any account, only allows to lock target)
28
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
29
+ // TODO: FirePool.createBundle must require a custom role (e.g. INVESTOR) instead of PUBLIC_ROLE
30
+ _authorize(functions, FirePool.createBundle.selector, "createBundle");
31
+ }
32
+
33
+ }
34
+