@etherisc/gif-next 0.0.2-c37bcc5-708 → 0.0.2-c38863c-705

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 (580) hide show
  1. package/README.md +75 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared/AccessManagerCustom.sol/AccessManagerCustom.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +533 -596
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +144 -544
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +419 -259
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -108
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +201 -261
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +256 -62
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +188 -107
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +226 -117
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +208 -236
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1462 -241
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1044 -316
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +247 -275
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +105 -95
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +614 -538
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  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 +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +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 +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +141 -126
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +81 -10
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -398
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +177 -177
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -83
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +350 -194
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +148 -94
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +218 -28
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +476 -311
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +660 -518
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -93
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +151 -172
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -90
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +438 -220
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +148 -110
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -8
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +320 -15
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +377 -103
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +148 -82
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +79 -7
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +480 -293
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +148 -94
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +239 -292
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +258 -536
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -55
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +84 -151
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +589 -116
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1677 -156
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +132 -278
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +101 -75
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
  213. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  214. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +583 -502
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +138 -110
  219. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +63 -104
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +554 -218
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +67 -1
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -351
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +63 -104
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +125 -22
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +97 -101
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +202 -398
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +120 -109
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +161 -184
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -90
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +241 -147
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  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 +4 -4
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  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 +136 -2
  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 +4 -4
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  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 +283 -6
  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 +4 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  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 +4 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  342. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +66 -2
  346. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  347. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  352. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  354. package/contracts/accounting/AccountingService.sol +262 -0
  355. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  356. package/contracts/accounting/IAccountingService.sol +45 -0
  357. package/contracts/authorization/AccessAdmin.sol +689 -0
  358. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  359. package/contracts/authorization/Authorization.sol +337 -0
  360. package/contracts/authorization/IAccess.sol +49 -0
  361. package/contracts/authorization/IAccessAdmin.sol +143 -0
  362. package/contracts/authorization/IAuthorization.sol +74 -0
  363. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  364. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  365. package/contracts/distribution/BasicDistribution.sol +141 -0
  366. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  367. package/contracts/distribution/Distribution.sol +153 -125
  368. package/contracts/distribution/DistributionService.sol +175 -115
  369. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  370. package/contracts/distribution/IDistributionComponent.sol +26 -40
  371. package/contracts/distribution/IDistributionService.sol +42 -22
  372. package/contracts/examples/fire/DamageLevel.sol +59 -0
  373. package/contracts/examples/fire/FirePool.sol +90 -0
  374. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  375. package/contracts/examples/fire/FireProduct.sol +437 -0
  376. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  377. package/contracts/examples/fire/FireUSD.sol +26 -0
  378. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  379. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  381. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  382. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  384. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  385. package/contracts/instance/BundleSet.sol +130 -0
  386. package/contracts/instance/IInstance.sol +34 -46
  387. package/contracts/instance/IInstanceService.sol +31 -40
  388. package/contracts/instance/Instance.sol +143 -132
  389. package/contracts/instance/InstanceAdmin.sol +346 -240
  390. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  391. package/contracts/instance/InstanceReader.sol +295 -48
  392. package/contracts/instance/InstanceService.sol +210 -168
  393. package/contracts/instance/InstanceServiceManager.sol +8 -13
  394. package/contracts/instance/InstanceStore.sol +35 -18
  395. package/contracts/instance/RiskSet.sol +118 -0
  396. package/contracts/instance/base/BalanceStore.sol +11 -6
  397. package/contracts/instance/base/Cloneable.sol +2 -25
  398. package/contracts/instance/base/ObjectCounter.sol +1 -2
  399. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  400. package/contracts/instance/base/ObjectSet.sol +77 -0
  401. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  402. package/contracts/instance/module/IBundle.sol +1 -1
  403. package/contracts/instance/module/IComponents.sol +14 -15
  404. package/contracts/instance/module/IDistribution.sol +2 -2
  405. package/contracts/instance/module/IPolicy.sol +26 -25
  406. package/contracts/instance/module/IRisk.sol +3 -0
  407. package/contracts/mock/Dip.sol +1 -1
  408. package/contracts/oracle/BasicOracle.sol +47 -0
  409. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  410. package/contracts/oracle/IOracle.sol +16 -0
  411. package/contracts/oracle/IOracleComponent.sol +2 -1
  412. package/contracts/oracle/IOracleService.sol +2 -1
  413. package/contracts/oracle/Oracle.sol +64 -53
  414. package/contracts/oracle/OracleService.sol +114 -81
  415. package/contracts/oracle/OracleServiceManager.sol +8 -11
  416. package/contracts/pool/BasicPool.sol +175 -0
  417. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  418. package/contracts/pool/BundleService.sol +207 -108
  419. package/contracts/pool/BundleServiceManager.sol +8 -11
  420. package/contracts/pool/IBundleService.sol +31 -22
  421. package/contracts/pool/IPoolComponent.sol +20 -70
  422. package/contracts/pool/IPoolService.sol +90 -75
  423. package/contracts/pool/Pool.sol +209 -163
  424. package/contracts/pool/PoolLib.sol +216 -0
  425. package/contracts/pool/PoolService.sol +553 -249
  426. package/contracts/pool/PoolServiceManager.sol +6 -9
  427. package/contracts/product/ApplicationService.sol +88 -83
  428. package/contracts/product/ApplicationServiceManager.sol +6 -6
  429. package/contracts/product/BasicProduct.sol +51 -0
  430. package/contracts/product/BasicProductAuthorization.sol +56 -0
  431. package/contracts/product/ClaimService.sol +370 -180
  432. package/contracts/product/ClaimServiceManager.sol +6 -6
  433. package/contracts/product/IApplicationService.sol +6 -2
  434. package/contracts/product/IClaimService.sol +44 -8
  435. package/contracts/product/IPolicyService.sol +53 -36
  436. package/contracts/product/IPricingService.sol +10 -10
  437. package/contracts/product/IProductComponent.sol +29 -9
  438. package/contracts/product/{IProductService.sol → IRiskService.sol} +6 -9
  439. package/contracts/product/PolicyService.sol +481 -274
  440. package/contracts/product/PolicyServiceLib.sol +65 -0
  441. package/contracts/product/PolicyServiceManager.sol +6 -9
  442. package/contracts/product/PricingService.sol +69 -66
  443. package/contracts/product/PricingServiceManager.sol +6 -9
  444. package/contracts/product/Product.sol +231 -139
  445. package/contracts/product/RiskService.sol +144 -0
  446. package/contracts/product/RiskServiceManager.sol +39 -0
  447. package/contracts/registry/ChainNft.sol +72 -40
  448. package/contracts/registry/IRegistry.sol +74 -32
  449. package/contracts/registry/IRegistryService.sol +3 -10
  450. package/contracts/registry/IRelease.sol +26 -0
  451. package/contracts/registry/ITransferInterceptor.sol +1 -2
  452. package/contracts/registry/Registry.sol +368 -214
  453. package/contracts/registry/RegistryAdmin.sol +292 -175
  454. package/contracts/registry/RegistryService.sol +46 -71
  455. package/contracts/registry/RegistryServiceManager.sol +5 -10
  456. package/contracts/registry/ReleaseAdmin.sol +245 -0
  457. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  458. package/contracts/registry/ReleaseRegistry.sol +511 -0
  459. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  460. package/contracts/registry/TokenRegistry.sol +8 -10
  461. package/contracts/shared/Component.sol +74 -128
  462. package/contracts/shared/ComponentService.sol +458 -384
  463. package/contracts/shared/ComponentServiceManager.sol +10 -7
  464. package/contracts/shared/ComponentVerifyingService.sol +29 -18
  465. package/contracts/shared/ContractLib.sol +253 -0
  466. package/contracts/shared/IComponent.sol +8 -17
  467. package/contracts/shared/IComponentService.sol +49 -39
  468. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  469. package/contracts/shared/IKeyValueStore.sol +1 -0
  470. package/contracts/shared/ILifecycle.sol +3 -2
  471. package/contracts/shared/INftOwnable.sol +2 -0
  472. package/contracts/shared/IPolicyHolder.sol +12 -22
  473. package/contracts/shared/IRegisterable.sol +23 -1
  474. package/contracts/shared/IService.sol +10 -5
  475. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  476. package/contracts/shared/InstanceLinkedComponent.sol +96 -43
  477. package/contracts/shared/KeyValueStore.sol +7 -3
  478. package/contracts/shared/Lifecycle.sol +30 -72
  479. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  480. package/contracts/shared/NftOwnable.sol +31 -11
  481. package/contracts/shared/PolicyHolder.sol +17 -57
  482. package/contracts/shared/Registerable.sol +55 -21
  483. package/contracts/shared/RegistryLinked.sol +9 -14
  484. package/contracts/shared/Service.sol +28 -40
  485. package/contracts/shared/TokenHandler.sol +309 -26
  486. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  487. package/contracts/staking/IStaking.sol +8 -11
  488. package/contracts/staking/IStakingService.sol +30 -14
  489. package/contracts/staking/StakeManagerLib.sol +70 -25
  490. package/contracts/staking/Staking.sol +122 -147
  491. package/contracts/staking/StakingLifecycle.sol +23 -0
  492. package/contracts/staking/StakingManager.sol +10 -12
  493. package/contracts/staking/StakingReader.sol +24 -21
  494. package/contracts/staking/StakingService.sol +105 -81
  495. package/contracts/staking/StakingServiceManager.sol +8 -8
  496. package/contracts/staking/StakingStore.sol +93 -60
  497. package/contracts/staking/TargetManagerLib.sol +7 -3
  498. package/contracts/type/Amount.sol +27 -5
  499. package/contracts/type/Blocknumber.sol +7 -1
  500. package/contracts/type/ClaimId.sol +6 -1
  501. package/contracts/type/Key32.sol +2 -2
  502. package/contracts/type/Key32Set.sol +62 -0
  503. package/contracts/type/NftId.sol +7 -0
  504. package/contracts/type/ObjectType.sol +196 -61
  505. package/contracts/type/PayoutId.sol +10 -10
  506. package/contracts/type/Referral.sol +1 -0
  507. package/contracts/type/RiskId.sol +38 -6
  508. package/contracts/type/RoleId.sol +117 -81
  509. package/contracts/type/Seconds.sol +21 -1
  510. package/contracts/type/Selector.sol +107 -0
  511. package/contracts/type/StateId.sol +15 -1
  512. package/contracts/type/String.sol +53 -0
  513. package/contracts/type/Timestamp.sol +10 -5
  514. package/contracts/type/UFixed.sol +40 -121
  515. package/contracts/type/Version.sol +18 -6
  516. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  517. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  518. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  519. package/package.json +9 -6
  520. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  522. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  523. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  524. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  526. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  528. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  529. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  530. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
  531. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  532. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
  533. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  534. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  535. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  536. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  537. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  538. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  539. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  540. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  541. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  542. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  543. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  544. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  545. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  546. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  547. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  548. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  549. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  550. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  551. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  552. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  553. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  554. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  555. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  556. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  557. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  559. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  561. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  562. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  563. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  564. package/contracts/instance/BundleManager.sol +0 -126
  565. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  566. package/contracts/instance/base/ObjectManager.sol +0 -82
  567. package/contracts/instance/module/IAccess.sol +0 -46
  568. package/contracts/product/ProductService.sol +0 -124
  569. package/contracts/product/ProductServiceManager.sol +0 -42
  570. package/contracts/registry/ReleaseManager.sol +0 -600
  571. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  572. package/contracts/shared/AccessManagerCustom.sol +0 -736
  573. package/contracts/shared/AccessManagerExtended.sol +0 -470
  574. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  575. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  576. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  577. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  578. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  579. package/contracts/shared/InitializableCustom.sol +0 -177
  580. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
4
+ import {ContractLib} from "../shared/ContractLib.sol";
5
5
  import {IComponent} from "../shared/IComponent.sol";
6
6
  import {IInstance} from "../instance/IInstance.sol";
7
7
  import {IInstanceService} from "../instance/IInstanceService.sol";
@@ -11,14 +11,15 @@ import {IOracleComponent} from "./IOracleComponent.sol";
11
11
  import {IOracleService} from "./IOracleService.sol";
12
12
  import {IRegistry} from "../registry/IRegistry.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
- import {ObjectType, COMPONENT, ORACLE, INSTANCE} from "../type/ObjectType.sol";
14
+ import {ObjectType, COMPONENT, ORACLE, PRODUCT} from "../type/ObjectType.sol";
15
15
  import {RequestId} from "../type/RequestId.sol";
16
+ import {Service} from "../shared/Service.sol";
16
17
  import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
17
18
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
18
19
 
19
20
 
20
21
  contract OracleService is
21
- ComponentVerifyingService,
22
+ Service,
22
23
  IOracleService
23
24
  {
24
25
 
@@ -27,18 +28,16 @@ contract OracleService is
27
28
  bytes memory data
28
29
  )
29
30
  internal
30
- initializer
31
31
  virtual override
32
+ initializer()
32
33
  {
33
- address initialOwner;
34
- address registryAddress;
35
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
36
- initializeService(registryAddress, address(0), owner);
37
- registerInterface(type(IOracleService).interfaceId);
38
- }
34
+ (
35
+ address authority,
36
+ address registry
37
+ ) = abi.decode(data, (address, address));
39
38
 
40
- function getDomain() public pure override returns(ObjectType) {
41
- return ORACLE();
39
+ __Service_init(authority, registry, owner);
40
+ _registerInterface(type(IOracleService).interfaceId);
42
41
  }
43
42
 
44
43
  function request(
@@ -50,62 +49,50 @@ contract OracleService is
50
49
  external
51
50
  virtual
52
51
  // restricted() // add authz
53
- returns (
54
- RequestId requestId
55
- )
52
+ onlyNftOfType(oracleNftId, ORACLE())
53
+ returns (RequestId requestId)
56
54
  {
55
+ // checks
56
+ // get and check active caller
57
57
  (
58
- NftId componentNftId,
59
- IRegistry.ObjectInfo memory componentInfo,
60
- IInstance instance
61
- ) = _getAndVerifyActiveComponent(COMPONENT());
58
+ IRegistry.ObjectInfo memory requesterInfo,
59
+ address instance
60
+ ) = ContractLib.getAndVerifyAnyComponent(
61
+ getRegistry(), msg.sender, true);
62
62
 
63
- // oracleNftId exists and is active oracle
64
63
  (
65
- IRegistry.ObjectInfo memory oracleInfo,
66
- ) = _getAndVerifyComponentInfo(
67
- oracleNftId,
68
- ORACLE(),
69
- true); // only active
70
-
71
- // check that requester and oracle share same instance
72
- if (componentInfo.parentNftId != oracleInfo.parentNftId) {
73
- revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
74
- }
75
-
76
- // check expiriyAt >= now
77
- if (expiryAt < TimestampLib.blockTimestamp()) {
78
- revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
79
- }
80
-
81
- // check callbackMethodName.length > 0
82
- if (bytes(callbackMethodName).length == 0) {
83
- revert ErrorOracleServiceCallbackMethodNameEmpty();
64
+ NftId requesterNftId,
65
+ IOracleComponent oracle
66
+ ) = _checkRequestParams(
67
+ getRegistry(), oracleNftId, requesterInfo, expiryAt, callbackMethodName);
68
+
69
+ // effects
70
+ {
71
+ // create request info
72
+ IOracle.RequestInfo memory request = IOracle.RequestInfo({
73
+ requesterNftId: requesterNftId,
74
+ callbackMethodName: callbackMethodName,
75
+ oracleNftId: oracleNftId,
76
+ requestData: requestData,
77
+ responseData: "",
78
+ respondedAt: TimestampLib.zero(),
79
+ expiredAt: expiryAt,
80
+ isCancelled: false
81
+ });
82
+
83
+ // store request with instance
84
+ requestId = IInstance(instance).getInstanceStore().createRequest(request);
84
85
  }
85
86
 
86
- // create request info
87
- IOracle.RequestInfo memory request = IOracle.RequestInfo({
88
- requesterNftId: componentNftId,
89
- callbackMethodName: callbackMethodName,
90
- oracleNftId: oracleNftId,
91
- requestData: requestData,
92
- responseData: "",
93
- respondedAt: TimestampLib.zero(),
94
- expiredAt: expiryAt,
95
- isCancelled: false
96
- });
97
-
98
- // store request with instance
99
- requestId = instance.getInstanceStore().createRequest(request);
87
+ emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
100
88
 
101
- // call oracle component
102
- IOracleComponent(oracleInfo.objectAddress).request(
89
+ // interactions
90
+ // callback to oracle component
91
+ oracle.request(
103
92
  requestId,
104
- componentNftId,
93
+ requesterNftId,
105
94
  requestData,
106
95
  expiryAt);
107
-
108
- emit LogOracleServiceRequestCreated(requestId, componentNftId, oracleNftId, expiryAt);
109
96
  }
110
97
 
111
98
 
@@ -121,11 +108,13 @@ contract OracleService is
121
108
  returns (bool success)
122
109
  {
123
110
  (
124
- NftId oracleNftId,
125
- IRegistry.ObjectInfo memory componentInfo,
126
- IInstance instance
127
- ) = _getAndVerifyActiveComponent(ORACLE());
111
+ IRegistry.ObjectInfo memory info,
112
+ address instanceAddress
113
+ ) = ContractLib.getAndVerifyComponent(
114
+ getRegistry(), msg.sender, ORACLE(), true);
128
115
 
116
+ NftId oracleNftId = info.nftId;
117
+ IInstance instance = IInstance(instanceAddress);
129
118
  bool callerIsOracle = true;
130
119
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
131
120
  request.responseData = responseData;
@@ -167,11 +156,13 @@ contract OracleService is
167
156
  // restricted() // add authz
168
157
  {
169
158
  (
170
- NftId requesterNftId,
171
- IRegistry.ObjectInfo memory requesterInfo,
172
- IInstance instance
173
- ) = _getAndVerifyActiveComponent(COMPONENT());
159
+ IRegistry.ObjectInfo memory info,
160
+ address instanceAddress
161
+ ) = ContractLib.getAndVerifyAnyComponent(
162
+ getRegistry(), msg.sender, true);
174
163
 
164
+ NftId requesterNftId = info.nftId;
165
+ IInstance instance = IInstance(instanceAddress);
175
166
  bool callerIsOracle = false;
176
167
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
177
168
 
@@ -182,7 +173,7 @@ contract OracleService is
182
173
  "(uint64,bytes)"
183
174
  ));
184
175
 
185
- (bool success, bytes memory returnData) = requesterInfo.objectAddress.call(
176
+ (bool success, bytes memory returnData) = info.objectAddress.call(
186
177
  abi.encodeWithSignature(
187
178
  functionSignature,
188
179
  requestId,
@@ -193,7 +184,7 @@ contract OracleService is
193
184
  instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
194
185
  emit LogOracleServiceResponseResent(requestId, requesterNftId);
195
186
  } else {
196
- emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
187
+ emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
197
188
  }
198
189
  }
199
190
 
@@ -204,11 +195,13 @@ contract OracleService is
204
195
  // restricted() // add authz
205
196
  {
206
197
  (
207
- NftId requesterNftId,
208
- IRegistry.ObjectInfo memory componentInfo,
209
- IInstance instance
210
- ) = _getAndVerifyActiveComponent(COMPONENT());
198
+ IRegistry.ObjectInfo memory info,
199
+ address instanceAddress
200
+ ) = ContractLib.getAndVerifyAnyComponent(
201
+ getRegistry(), msg.sender, true);
211
202
 
203
+ NftId requesterNftId = info.nftId;
204
+ IInstance instance = IInstance(instanceAddress);
212
205
  bool callerIsOracle = false;
213
206
  // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
214
207
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
@@ -218,13 +211,59 @@ contract OracleService is
218
211
 
219
212
  // call oracle component
220
213
  // TODO add check that oracle is active?
221
- address oracleAddress = getRegistry().getObjectInfo(request.oracleNftId).objectAddress;
214
+ address oracleAddress = getRegistry().getObjectAddress(request.oracleNftId);
222
215
  IOracleComponent(oracleAddress).cancel(requestId);
223
216
 
224
217
  emit LogOracleServiceRequestCancelled(requestId, requesterNftId);
225
218
  }
226
219
 
227
220
 
221
+ function _checkRequestParams(
222
+ IRegistry registry,
223
+ NftId oracleNftId,
224
+ IRegistry.ObjectInfo memory requesterInfo,
225
+ Timestamp expiryAt,
226
+ string memory callbackMethodName
227
+ )
228
+ internal
229
+ virtual
230
+ view
231
+ returns (
232
+ NftId requesterNftId,
233
+ IOracleComponent oracle
234
+ )
235
+ {
236
+ // get oracle info
237
+ (IRegistry.ObjectInfo memory oracleInfo,) = ContractLib.getInfoAndInstance(
238
+ registry, oracleNftId, true);
239
+
240
+ // obtain return values
241
+ requesterNftId = requesterInfo.nftId;
242
+ oracle = IOracleComponent(oracleInfo.objectAddress);
243
+
244
+ // check that requester and oracle share same product cluster
245
+ if (requesterInfo.objectType == PRODUCT()) {
246
+ if (oracleInfo.parentNftId != requesterNftId) {
247
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterNftId, oracleInfo.parentNftId);
248
+ }
249
+ } else {
250
+ if (oracleInfo.parentNftId != requesterInfo.parentNftId) {
251
+ revert ErrorOracleServiceProductMismatch(requesterInfo.objectType, requesterInfo.parentNftId, oracleInfo.parentNftId);
252
+ }
253
+ }
254
+
255
+ // check expiriyAt >= now
256
+ if (expiryAt < TimestampLib.blockTimestamp()) {
257
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
258
+ }
259
+
260
+ // check callbackMethodName.length > 0
261
+ if (bytes(callbackMethodName).length == 0) {
262
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
263
+ }
264
+ }
265
+
266
+
228
267
  function _checkAndGetRequestInfo(
229
268
  IInstance instance,
230
269
  RequestId requestId,
@@ -265,13 +304,7 @@ contract OracleService is
265
304
  }
266
305
 
267
306
 
268
- function _getInstanceForComponent(NftId componentNftId)
269
- internal
270
- view
271
- returns(IInstance instance)
272
- {
273
- NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
274
- address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
275
- return IInstance(instanceAddress);
307
+ function _getDomain() internal pure override returns(ObjectType) {
308
+ return ORACLE();
276
309
  }
277
310
  }
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {OracleService} from "./OracleService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {REGISTRY} from "../type/ObjectType.sol";
10
7
 
11
8
  contract OracleServiceManager is ProxyManager {
12
9
 
@@ -15,15 +12,15 @@ contract OracleServiceManager is ProxyManager {
15
12
  /// @dev initializes proxy manager with service implementation and deploys instance
16
13
  constructor(
17
14
  address authority,
18
- address registryAddress,
15
+ address registry,
19
16
  bytes32 salt
20
17
  )
21
- ProxyManager(registryAddress)
22
18
  {
23
- OracleService orclSrv = new OracleService{salt: salt}();
24
- bytes memory data = abi.encode(registryAddress, address(this), authority);
25
- IVersionable versionable = deployDetermenistic(
26
- address(orclSrv),
19
+ OracleService svc = new OracleService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
27
24
  data,
28
25
  salt);
29
26
 
@@ -0,0 +1,175 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {Fee} from "../type/Fee.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {BUNDLE} from "../type/ObjectType.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+ import {Seconds} from "../type/Seconds.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
13
+
14
+ import {Pool} from "./Pool.sol";
15
+
16
+ abstract contract BasicPool is
17
+ Pool
18
+ {
19
+
20
+ function _initializeBasicPool(
21
+ address registry,
22
+ NftId productNftId,
23
+ string memory name,
24
+ address token,
25
+ IComponents.PoolInfo memory poolInfo,
26
+ IAuthorization authorization,
27
+ address initialOwner
28
+ )
29
+ internal
30
+ virtual
31
+ onlyInitializing()
32
+ {
33
+ _initializePool(
34
+ registry,
35
+ productNftId,
36
+ name,
37
+ token,
38
+ poolInfo,
39
+ authorization,
40
+ initialOwner,
41
+ ""); // componentData
42
+ }
43
+
44
+ function stake(
45
+ NftId bundleNftId,
46
+ Amount amount
47
+ )
48
+ public
49
+ virtual
50
+ restricted()
51
+ onlyBundleOwner(bundleNftId)
52
+ onlyNftOfType(bundleNftId, BUNDLE())
53
+ {
54
+ _stake(bundleNftId, amount);
55
+ }
56
+
57
+
58
+ function unstake(
59
+ NftId bundleNftId,
60
+ Amount amount
61
+ )
62
+ public
63
+ virtual
64
+ restricted()
65
+ onlyBundleOwner(bundleNftId)
66
+ onlyNftOfType(bundleNftId, BUNDLE())
67
+ {
68
+ _unstake(bundleNftId, amount);
69
+ }
70
+
71
+
72
+ function extend(
73
+ NftId bundleNftId,
74
+ Seconds lifetimeExtension
75
+ )
76
+ public
77
+ virtual
78
+ restricted()
79
+ onlyBundleOwner(bundleNftId)
80
+ onlyNftOfType(bundleNftId, BUNDLE())
81
+ returns(Timestamp newExpiredAt)
82
+ {
83
+ return _extend(bundleNftId, lifetimeExtension);
84
+ }
85
+
86
+
87
+ function lockBundle(NftId bundleNftId)
88
+ public
89
+ virtual
90
+ restricted()
91
+ onlyBundleOwner(bundleNftId)
92
+ onlyNftOfType(bundleNftId, BUNDLE())
93
+ {
94
+ _lockBundle(bundleNftId);
95
+ }
96
+
97
+
98
+ function unlockBundle(NftId bundleNftId)
99
+ public
100
+ virtual
101
+ restricted()
102
+ onlyBundleOwner(bundleNftId)
103
+ onlyNftOfType(bundleNftId, BUNDLE())
104
+ {
105
+ _unlockBundle(bundleNftId);
106
+ }
107
+
108
+
109
+ function closeBundle(NftId bundleNftId)
110
+ public
111
+ virtual
112
+ restricted()
113
+ onlyBundleOwner(bundleNftId)
114
+ onlyNftOfType(bundleNftId, BUNDLE())
115
+ {
116
+ _closeBundle(bundleNftId);
117
+ }
118
+
119
+
120
+ /// @dev Updates the bundle feeds to the specified values.
121
+ /// @param bundleNftId the bundle Nft Id
122
+ /// @param fee the new fee values
123
+ function setBundleFee(
124
+ NftId bundleNftId,
125
+ Fee memory fee
126
+ )
127
+ public
128
+ virtual
129
+ restricted()
130
+ onlyBundleOwner(bundleNftId)
131
+ onlyNftOfType(bundleNftId, BUNDLE())
132
+ {
133
+ _setBundleFee(bundleNftId, fee);
134
+ }
135
+
136
+
137
+ /// @dev Withdraw bundle feeds for the given bundle.
138
+ /// @param bundleNftId the bundle Nft Id
139
+ /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
140
+ /// @return withdrawnAmount the effective withdrawn amount
141
+ function withdrawBundleFees(NftId bundleNftId, Amount amount)
142
+ external
143
+ virtual
144
+ restricted()
145
+ onlyBundleOwner(bundleNftId)
146
+ onlyNftOfType(bundleNftId, BUNDLE())
147
+ returns (Amount withdrawnAmount)
148
+ {
149
+ return _withdrawBundleFees(bundleNftId, amount);
150
+ }
151
+
152
+
153
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
154
+ public
155
+ virtual
156
+ restricted()
157
+ onlyOwner()
158
+ {
159
+ _setMaxBalanceAmount(maxBalanceAmount);
160
+ }
161
+
162
+
163
+ function setFees(
164
+ Fee memory poolFee,
165
+ Fee memory stakingFee,
166
+ Fee memory performanceFee
167
+ )
168
+ public
169
+ virtual
170
+ restricted()
171
+ onlyOwner()
172
+ {
173
+ _setPoolFees(poolFee, stakingFee, performanceFee);
174
+ }
175
+ }
@@ -0,0 +1,76 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+ import {IPoolComponent} from "./IPoolComponent.sol";
7
+
8
+ import {Authorization} from "../authorization/Authorization.sol";
9
+ import {BasicPool} from "./BasicPool.sol";
10
+ import {COMPONENT, POOL} from "../type/ObjectType.sol";
11
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
12
+ import {RoleId} from "../type/RoleId.sol";
13
+ import {TokenHandler} from "../shared/TokenHandler.sol";
14
+
15
+
16
+ contract BasicPoolAuthorization
17
+ is Authorization
18
+ {
19
+
20
+ constructor(string memory poolName)
21
+ Authorization(poolName, POOL())
22
+ {}
23
+
24
+ function _setupServiceTargets()
25
+ internal
26
+ virtual override
27
+ {
28
+ _addServiceTargetWithRole(COMPONENT());
29
+ _addServiceTargetWithRole(POOL());
30
+ }
31
+
32
+ function _setupTokenHandlerAuthorizations() internal virtual override {
33
+ // authorize token handler functions for component service role
34
+ IAccess.FunctionInfo[] storage functions;
35
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
36
+ _authorize(functions, TokenHandler.approve.selector, "approve");
37
+ _authorize(functions, TokenHandler.setWallet.selector, "setWallet");
38
+ _authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
39
+
40
+ // authorize token handler functions for pool service role
41
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(POOL()));
42
+ _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
43
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
44
+ }
45
+
46
+ function _setupTargetAuthorizations()
47
+ internal
48
+ virtual override
49
+ {
50
+ IAccess.FunctionInfo[] storage functions;
51
+
52
+ // authorize public role (open access to any account, only allows to lock target)
53
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
54
+ _authorize(functions, BasicPool.stake.selector, "stake");
55
+ _authorize(functions, BasicPool.unstake.selector, "unstake");
56
+ _authorize(functions, BasicPool.extend.selector, "extend");
57
+ _authorize(functions, BasicPool.lockBundle.selector, "lockBundle");
58
+ _authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
59
+ _authorize(functions, BasicPool.closeBundle.selector, "closeBundle");
60
+ _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
61
+
62
+ _authorize(functions, BasicPool.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
63
+ _authorize(functions, BasicPool.setFees.selector, "setFees");
64
+ _authorize(functions, BasicPool.stake.selector, "stake");
65
+ _authorize(functions, BasicPool.unstake.selector, "unstake");
66
+ _authorize(functions, BasicPool.extend.selector, "extend");
67
+
68
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
69
+ _authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
70
+
71
+ // authorize pool service
72
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(POOL()));
73
+ _authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
74
+ }
75
+ }
76
+