@etherisc/gif-next 0.0.2-9bfd86b-310 → 0.0.2-9c4663e-693

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