@etherisc/gif-next 0.0.2-a419a2f-980 → 0.0.2-a4799c5-153

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 (534) hide show
  1. package/README.md +84 -7
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +525 -213
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +132 -290
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -163
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +585 -231
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +170 -78
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -125
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +401 -78
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +160 -214
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +380 -45
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +308 -327
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1476 -0
  51. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  53. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2336 -0
  55. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  57. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  59. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +215 -247
  63. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  66. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -155
  67. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  68. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +278 -223
  69. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  72. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +944 -454
  73. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  75. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  76. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  77. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  78. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +528 -50
  79. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +397 -17
  81. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  82. package/artifacts/contracts/instance/Instance.sol/Instance.json +559 -84
  83. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1022 -326
  85. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +393 -52
  87. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  88. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1082 -470
  89. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  90. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +414 -81
  91. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  92. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -52
  93. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +724 -610
  95. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  96. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  97. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  98. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  99. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  100. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  101. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  102. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  104. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  105. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  106. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  107. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  108. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  109. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  111. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  112. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  113. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -165
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +48 -64
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -101
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +157 -81
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +134 -46
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +106 -163
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +380 -45
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +317 -344
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +125 -93
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +219 -146
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +63 -118
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +380 -214
  143. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  144. package/artifacts/contracts/pool/Pool.sol/Pool.json +76 -149
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +621 -413
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +168 -68
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +327 -62
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +123 -43
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +199 -213
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +294 -189
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +134 -86
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +268 -10
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +167 -56
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +175 -171
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  174. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +296 -194
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -78
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -114
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +112 -60
  185. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  186. package/artifacts/contracts/product/Product.sol/Product.json +193 -207
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.json +338 -87
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +123 -43
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +78 -19
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  200. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.json +116 -57
  202. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -453
  204. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  206. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +89 -37
  208. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -39
  210. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  212. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  214. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
  216. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  218. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  220. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  221. package/artifacts/contracts/shared/Component.sol/Component.json +66 -86
  222. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +298 -515
  224. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +127 -79
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +48 -50
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +178 -338
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -64
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  241. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
  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 +56 -3
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  252. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  254. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +66 -100
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  256. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1446 -154
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
  280. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +1583 -286
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +140 -69
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +257 -162
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +102 -46
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
  296. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  305. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  329. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -2
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  337. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  342. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  344. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  346. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  348. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  350. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  351. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  352. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -25
  354. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  356. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  357. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  358. package/contracts/accounting/AccountingService.sol +274 -0
  359. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  360. package/contracts/accounting/IAccountingService.sol +47 -0
  361. package/contracts/authorization/AccessAdmin.sol +429 -245
  362. package/contracts/authorization/AccessAdminLib.sol +396 -0
  363. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  364. package/contracts/authorization/Authorization.sol +142 -262
  365. package/contracts/authorization/IAccess.sol +25 -7
  366. package/contracts/authorization/IAccessAdmin.sol +87 -80
  367. package/contracts/authorization/IAuthorization.sol +9 -43
  368. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  369. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  370. package/contracts/distribution/BasicDistribution.sol +18 -16
  371. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  372. package/contracts/distribution/Distribution.sol +43 -81
  373. package/contracts/distribution/DistributionService.sol +192 -99
  374. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  375. package/contracts/distribution/IDistributionComponent.sol +3 -10
  376. package/contracts/distribution/IDistributionService.sol +38 -24
  377. package/contracts/examples/fire/FirePool.sol +21 -8
  378. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  379. package/contracts/examples/fire/FireProduct.sol +38 -20
  380. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  381. package/contracts/examples/flight/FlightPool.sol +89 -0
  382. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  383. package/contracts/examples/flight/FlightProduct.sol +464 -0
  384. package/contracts/examples/flight/FlightProductAuthorization.sol +39 -0
  385. package/contracts/examples/flight/FlightUSD.sol +26 -0
  386. package/contracts/examples/flight/originalV1.sol +394 -0
  387. package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
  388. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  390. package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
  391. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  392. package/contracts/examples/unpermissioned/SimpleProduct.sol +132 -46
  393. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  394. package/contracts/instance/BundleSet.sol +42 -38
  395. package/contracts/instance/IInstance.sol +98 -19
  396. package/contracts/instance/IInstanceService.sol +59 -14
  397. package/contracts/instance/Instance.sol +175 -60
  398. package/contracts/instance/InstanceAdmin.sol +271 -165
  399. package/contracts/instance/InstanceAuthorizationV3.sol +115 -43
  400. package/contracts/instance/InstanceReader.sol +455 -312
  401. package/contracts/instance/InstanceService.sol +274 -187
  402. package/contracts/instance/InstanceServiceManager.sol +1 -1
  403. package/contracts/instance/InstanceStore.sol +13 -2
  404. package/contracts/instance/RiskSet.sol +126 -0
  405. package/contracts/instance/base/BalanceStore.sol +4 -6
  406. package/contracts/instance/base/ObjectCounter.sol +1 -2
  407. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  408. package/contracts/instance/base/ObjectSet.sol +31 -33
  409. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  410. package/contracts/instance/module/IBundle.sol +6 -5
  411. package/contracts/instance/module/IComponents.sol +20 -9
  412. package/contracts/instance/module/IDistribution.sol +21 -8
  413. package/contracts/instance/module/IPolicy.sol +28 -7
  414. package/contracts/instance/module/IRisk.sol +5 -0
  415. package/contracts/oracle/BasicOracle.sol +2 -4
  416. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  417. package/contracts/oracle/IOracle.sol +9 -4
  418. package/contracts/oracle/Oracle.sol +3 -5
  419. package/contracts/oracle/OracleService.sol +98 -79
  420. package/contracts/oracle/OracleServiceManager.sol +1 -1
  421. package/contracts/pool/BasicPool.sol +25 -17
  422. package/contracts/pool/BasicPoolAuthorization.sol +34 -10
  423. package/contracts/pool/BundleService.sol +75 -182
  424. package/contracts/pool/BundleServiceManager.sol +1 -1
  425. package/contracts/pool/IBundleService.sol +28 -55
  426. package/contracts/pool/IPoolComponent.sol +1 -7
  427. package/contracts/pool/IPoolService.sol +65 -62
  428. package/contracts/pool/Pool.sol +109 -111
  429. package/contracts/pool/PoolLib.sol +341 -0
  430. package/contracts/pool/PoolService.sol +299 -229
  431. package/contracts/pool/PoolServiceManager.sol +1 -1
  432. package/contracts/product/ApplicationService.sol +91 -23
  433. package/contracts/product/ApplicationServiceManager.sol +1 -1
  434. package/contracts/product/BasicProduct.sol +9 -13
  435. package/contracts/product/BasicProductAuthorization.sol +32 -11
  436. package/contracts/product/ClaimService.sol +187 -169
  437. package/contracts/product/ClaimServiceManager.sol +1 -1
  438. package/contracts/product/IApplicationService.sol +28 -3
  439. package/contracts/product/IClaimService.sol +18 -5
  440. package/contracts/product/IPolicyService.sol +34 -12
  441. package/contracts/product/IPricingService.sol +1 -0
  442. package/contracts/product/IProductComponent.sol +4 -1
  443. package/contracts/product/IRiskService.sol +25 -10
  444. package/contracts/product/PolicyService.sol +253 -299
  445. package/contracts/product/PolicyServiceLib.sol +139 -0
  446. package/contracts/product/PolicyServiceManager.sol +1 -1
  447. package/contracts/product/PricingService.sol +52 -46
  448. package/contracts/product/PricingServiceManager.sol +3 -3
  449. package/contracts/product/Product.sol +104 -66
  450. package/contracts/product/RiskService.sol +128 -34
  451. package/contracts/product/RiskServiceManager.sol +1 -1
  452. package/contracts/registry/ChainNft.sol +4 -2
  453. package/contracts/registry/IRegistry.sol +25 -24
  454. package/contracts/registry/IRelease.sol +29 -0
  455. package/contracts/registry/Registry.sol +31 -12
  456. package/contracts/registry/RegistryAdmin.sol +107 -364
  457. package/contracts/registry/RegistryAuthorization.sol +336 -0
  458. package/contracts/registry/RegistryService.sol +4 -4
  459. package/contracts/registry/RegistryServiceManager.sol +1 -1
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  462. package/contracts/registry/ReleaseRegistry.sol +158 -134
  463. package/contracts/registry/ServiceAuthorizationV3.sol +200 -52
  464. package/contracts/registry/TokenRegistry.sol +61 -59
  465. package/contracts/shared/Component.sol +56 -107
  466. package/contracts/shared/ComponentService.sol +365 -423
  467. package/contracts/shared/ComponentServiceManager.sol +1 -1
  468. package/contracts/shared/ContractLib.sol +277 -3
  469. package/contracts/shared/IComponent.sol +2 -18
  470. package/contracts/shared/IComponentService.sol +28 -37
  471. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  472. package/contracts/shared/IKeyValueStore.sol +1 -1
  473. package/contracts/shared/INftOwnable.sol +2 -0
  474. package/contracts/shared/IRegisterable.sol +15 -5
  475. package/contracts/shared/IService.sol +3 -5
  476. package/contracts/shared/InitializableERC165.sol +9 -1
  477. package/contracts/shared/InstanceLinkedComponent.sol +8 -27
  478. package/contracts/shared/KeyValueStore.sol +3 -3
  479. package/contracts/shared/NftOwnable.sol +8 -6
  480. package/contracts/shared/PolicyHolder.sol +4 -3
  481. package/contracts/shared/Registerable.sol +41 -20
  482. package/contracts/shared/RegistryLinked.sol +7 -13
  483. package/contracts/shared/Service.sol +13 -30
  484. package/contracts/shared/TokenHandler.sol +275 -72
  485. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  486. package/contracts/staking/IStaking.sol +271 -72
  487. package/contracts/staking/IStakingService.sol +45 -75
  488. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  489. package/contracts/staking/Staking.sol +521 -220
  490. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  491. package/contracts/staking/StakingManager.sol +4 -3
  492. package/contracts/staking/StakingReader.sol +58 -77
  493. package/contracts/staking/StakingService.sol +62 -148
  494. package/contracts/staking/StakingServiceManager.sol +6 -4
  495. package/contracts/staking/StakingStore.sol +1093 -330
  496. package/contracts/staking/TargetHandler.sol +132 -0
  497. package/contracts/staking/TargetManagerLib.sol +69 -46
  498. package/contracts/type/Amount.sol +4 -0
  499. package/contracts/type/Blocknumber.sol +15 -15
  500. package/contracts/type/ChainId.sol +101 -0
  501. package/contracts/type/Fee.sol +8 -8
  502. package/contracts/type/Key32.sol +2 -2
  503. package/contracts/type/Key32Set.sol +62 -0
  504. package/contracts/type/NftId.sol +6 -0
  505. package/contracts/type/ObjectType.sol +69 -38
  506. package/contracts/type/RiskId.sol +26 -8
  507. package/contracts/type/RoleId.sol +63 -45
  508. package/contracts/type/Seconds.sol +23 -0
  509. package/contracts/type/Selector.sol +5 -0
  510. package/contracts/type/String.sol +12 -0
  511. package/contracts/type/Timestamp.sol +14 -8
  512. package/contracts/type/UFixed.sol +35 -127
  513. package/contracts/type/Version.sol +54 -5
  514. package/contracts/upgradeability/IVersionable.sol +3 -0
  515. package/contracts/upgradeability/ProxyManager.sol +26 -12
  516. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  517. package/contracts/upgradeability/Versionable.sol +6 -3
  518. package/package.json +4 -4
  519. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  520. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  521. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  522. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  523. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  524. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
  525. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  526. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  527. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  528. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  529. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  530. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  531. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  532. package/contracts/instance/module/IAccess.sol +0 -46
  533. package/contracts/shared/ComponentVerifyingService.sol +0 -126
  534. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -2,10 +2,15 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../../type/NftId.sol";
5
+ import {Timestamp} from "../../type/Timestamp.sol";
5
6
 
6
7
  interface IRisk {
8
+
7
9
  struct RiskInfo {
10
+ // slot 0
8
11
  NftId productNftId;
12
+ Timestamp createdAt;
13
+ // slot 1
9
14
  bytes data;
10
15
  }
11
16
  }
@@ -27,21 +27,19 @@ contract BasicOracle is
27
27
  NftId instanceNftId,
28
28
  IAuthorization authorization,
29
29
  address initialOwner,
30
- string memory name,
31
- address token
30
+ string memory name
32
31
  )
33
32
  internal
34
33
  virtual
35
34
  onlyInitializing()
36
35
  {
37
36
 
38
- _initializeOracle(
37
+ __Oracle_init(
39
38
  registry,
40
39
  instanceNftId,
41
40
  authorization,
42
41
  initialOwner,
43
42
  name,
44
- token,
45
43
  "");
46
44
  }
47
45
  }
@@ -14,19 +14,26 @@ contract BasicOracleAuthorization
14
14
  is Authorization
15
15
  {
16
16
 
17
- constructor(string memory componentName)
18
- Authorization(componentName)
17
+ constructor(
18
+ string memory componentName,
19
+ string memory commitHash
20
+ )
21
+ Authorization(
22
+ componentName,
23
+ ORACLE(),
24
+ 3,
25
+ commitHash,
26
+ true,
27
+ false)
19
28
  {}
20
29
 
21
- function _setupTargets()
30
+ function _setupServiceTargets()
22
31
  internal
23
32
  virtual override
24
33
  {
25
- // basic component target
26
- _addComponentTargetWithRole(ORACLE());
34
+ _authorizeServiceDomain(ORACLE(), address(15));
27
35
  }
28
36
 
29
-
30
37
  function _setupTargetAuthorizations()
31
38
  internal
32
39
  virtual override
@@ -34,12 +41,12 @@ contract BasicOracleAuthorization
34
41
  IAccess.FunctionInfo[] storage functions;
35
42
 
36
43
  // authorize public role (open access to any account, only allows to lock target)
37
- functions = _authorizeForTarget(getTargetName(), getServiceRole(ORACLE()));
44
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
38
45
  _authorize(functions, IOracle.request.selector, "request");
39
46
  _authorize(functions, IOracle.cancel.selector, "cancel");
40
47
 
41
48
  // authorize public role (open access to any account, only allows to lock target)
42
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
49
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
43
50
  _authorize(functions, BasicOracle.respond.selector, "respond");
44
51
  }
45
52
  }
@@ -9,14 +9,19 @@ import {Timestamp} from "../type/Timestamp.sol";
9
9
  interface IOracle {
10
10
 
11
11
  struct RequestInfo {
12
+ // slot 0
12
13
  NftId requesterNftId; // originator of the request
13
- string callbackMethodName; // callback function of the requestor to call to provide response data
14
14
  NftId oracleNftId; // responsible oracle component
15
- bytes requestData;
16
- bytes responseData;
15
+ bool isCancelled;
17
16
  Timestamp respondedAt; // response timestamp
17
+ // slot 1
18
18
  Timestamp expiredAt; // expiry timestamp
19
- bool isCancelled;
19
+ // slot 2
20
+ string callbackMethodName; // callback function of the requestor to call to provide response data
21
+ // slot 3
22
+ bytes requestData;
23
+ // slot 4
24
+ bytes responseData;
20
25
  }
21
26
 
22
27
 
@@ -69,30 +69,28 @@ abstract contract Oracle is
69
69
  override(IInstanceLinkedComponent, InstanceLinkedComponent)
70
70
  onlyOwner()
71
71
  restricted()
72
- returns (Amount withdrawnAmount)
72
+ returns (Amount)
73
73
  {
74
74
  revert ErrorOracleNotImplemented("withdrawFees");
75
75
  }
76
76
 
77
77
 
78
- function _initializeOracle(
78
+ function __Oracle_init(
79
79
  address registry,
80
80
  NftId productNftId,
81
81
  IAuthorization authorization,
82
82
  address initialOwner,
83
83
  string memory name,
84
- address token,
85
84
  bytes memory componentData // component specifidc data
86
85
  )
87
86
  internal
88
87
  virtual
89
88
  onlyInitializing()
90
89
  {
91
- _initializeInstanceLinkedComponent(
90
+ __InstanceLinkedComponent_init(
92
91
  registry,
93
92
  productNftId,
94
93
  name,
95
- token,
96
94
  ORACLE(),
97
95
  authorization,
98
96
  true,
@@ -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";
@@ -13,12 +13,13 @@ import {IRegistry} from "../registry/IRegistry.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
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
 
@@ -31,11 +32,11 @@ contract OracleService is
31
32
  initializer()
32
33
  {
33
34
  (
34
- address registryAddress,
35
- address authority
35
+ address authority,
36
+ address registry
36
37
  ) = abi.decode(data, (address, address));
37
38
 
38
- _initializeService(registryAddress, authority, owner);
39
+ __Service_init(authority, registry, owner);
39
40
  _registerInterface(type(IOracleService).interfaceId);
40
41
  }
41
42
 
@@ -47,53 +48,29 @@ contract OracleService is
47
48
  )
48
49
  external
49
50
  virtual
50
- // restricted() // add authz
51
+ restricted()
51
52
  onlyNftOfType(oracleNftId, ORACLE())
52
- returns (
53
- RequestId requestId
54
- )
53
+ returns (RequestId requestId)
55
54
  {
55
+ // checks
56
+ // get and check active caller
56
57
  (
57
- NftId componentNftId,
58
- IRegistry.ObjectInfo memory componentInfo,
59
- IInstance instance
60
- ) = _getAndVerifyActiveComponent(COMPONENT());
58
+ IRegistry.ObjectInfo memory requesterInfo,
59
+ address instance
60
+ ) = ContractLib.getAndVerifyAnyComponent(
61
+ getRegistry(), msg.sender, true);
61
62
 
62
- // oracleNftId exists and is active oracle
63
63
  (
64
- IRegistry.ObjectInfo memory oracleInfo,
65
- ) = _getAndVerifyComponentInfo(
66
- oracleNftId,
67
- ORACLE(),
68
- true); // only active
69
-
70
- {
71
- // check that requester and oracle share same product cluster
72
- if (componentInfo.objectType == PRODUCT()) {
73
- if (oracleInfo.parentNftId != componentInfo.nftId) {
74
- revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.nftId, oracleInfo.parentNftId);
75
- }
76
- } else {
77
- if (oracleInfo.parentNftId != componentInfo.parentNftId) {
78
- revert ErrorOracleServiceProductMismatch(componentInfo.objectType, componentInfo.parentNftId, oracleInfo.parentNftId);
79
- }
80
- }
81
-
82
- // check expiriyAt >= now
83
- if (expiryAt < TimestampLib.blockTimestamp()) {
84
- revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
85
- }
86
-
87
- // check callbackMethodName.length > 0
88
- if (bytes(callbackMethodName).length == 0) {
89
- revert ErrorOracleServiceCallbackMethodNameEmpty();
90
- }
91
- }
64
+ NftId requesterNftId,
65
+ IOracleComponent oracle
66
+ ) = _checkRequestParams(
67
+ getRegistry(), oracleNftId, requesterInfo, expiryAt, callbackMethodName);
92
68
 
69
+ // effects
93
70
  {
94
71
  // create request info
95
72
  IOracle.RequestInfo memory request = IOracle.RequestInfo({
96
- requesterNftId: componentNftId,
73
+ requesterNftId: requesterNftId,
97
74
  callbackMethodName: callbackMethodName,
98
75
  oracleNftId: oracleNftId,
99
76
  requestData: requestData,
@@ -104,17 +81,18 @@ contract OracleService is
104
81
  });
105
82
 
106
83
  // store request with instance
107
- requestId = instance.getInstanceStore().createRequest(request);
84
+ requestId = IInstance(instance).getInstanceStore().createRequest(request);
108
85
  }
109
86
 
110
- // call oracle component
111
- IOracleComponent(oracleInfo.objectAddress).request(
87
+ emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
88
+
89
+ // interactions
90
+ // callback to oracle component
91
+ oracle.request(
112
92
  requestId,
113
- componentNftId,
93
+ requesterNftId,
114
94
  requestData,
115
95
  expiryAt);
116
-
117
- emit LogOracleServiceRequestCreated(requestId, componentNftId, oracleNftId, expiryAt);
118
96
  }
119
97
 
120
98
 
@@ -126,19 +104,21 @@ contract OracleService is
126
104
  )
127
105
  external
128
106
  virtual
129
- // restricted() // add authz
107
+ restricted()
130
108
  returns (bool success)
131
109
  {
132
110
  (
133
- NftId oracleNftId,
134
- IRegistry.ObjectInfo memory componentInfo,
135
- IInstance instance
136
- ) = _getAndVerifyActiveComponent(ORACLE());
111
+ IRegistry.ObjectInfo memory info,
112
+ address instanceAddress
113
+ ) = ContractLib.getAndVerifyComponent(
114
+ getRegistry(), msg.sender, ORACLE(), true);
137
115
 
116
+ NftId oracleNftId = info.nftId;
117
+ IInstance instance = IInstance(instanceAddress);
138
118
  bool callerIsOracle = true;
139
119
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
140
120
  request.responseData = responseData;
141
- request.respondedAt = TimestampLib.blockTimestamp();
121
+ request.respondedAt = TimestampLib.current();
142
122
 
143
123
  instance.getInstanceStore().updateRequest(
144
124
  requestId, request, KEEP_STATE());
@@ -173,14 +153,16 @@ contract OracleService is
173
153
  function resend(RequestId requestId)
174
154
  external
175
155
  virtual
176
- // restricted() // add authz
156
+ restricted()
177
157
  {
178
158
  (
179
- NftId requesterNftId,
180
- IRegistry.ObjectInfo memory requesterInfo,
181
- IInstance instance
182
- ) = _getAndVerifyActiveComponent(COMPONENT());
159
+ IRegistry.ObjectInfo memory info,
160
+ address instanceAddress
161
+ ) = ContractLib.getAndVerifyAnyComponent(
162
+ getRegistry(), msg.sender, true);
183
163
 
164
+ NftId requesterNftId = info.nftId;
165
+ IInstance instance = IInstance(instanceAddress);
184
166
  bool callerIsOracle = false;
185
167
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
186
168
 
@@ -191,7 +173,7 @@ contract OracleService is
191
173
  "(uint64,bytes)"
192
174
  ));
193
175
 
194
- (bool success, bytes memory returnData) = requesterInfo.objectAddress.call(
176
+ (bool success, bytes memory returnData) = info.objectAddress.call(
195
177
  abi.encodeWithSignature(
196
178
  functionSignature,
197
179
  requestId,
@@ -202,7 +184,7 @@ contract OracleService is
202
184
  instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
203
185
  emit LogOracleServiceResponseResent(requestId, requesterNftId);
204
186
  } else {
205
- emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
187
+ emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
206
188
  }
207
189
  }
208
190
 
@@ -210,14 +192,16 @@ contract OracleService is
210
192
  function cancel(RequestId requestId)
211
193
  external
212
194
  virtual
213
- // restricted() // add authz
195
+ restricted()
214
196
  {
215
197
  (
216
- NftId requesterNftId,
217
- IRegistry.ObjectInfo memory componentInfo,
218
- IInstance instance
219
- ) = _getAndVerifyActiveComponent(COMPONENT());
198
+ IRegistry.ObjectInfo memory info,
199
+ address instanceAddress
200
+ ) = ContractLib.getAndVerifyAnyComponent(
201
+ getRegistry(), msg.sender, true);
220
202
 
203
+ NftId requesterNftId = info.nftId;
204
+ IInstance instance = IInstance(instanceAddress);
221
205
  bool callerIsOracle = false;
222
206
  // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
223
207
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
@@ -234,6 +218,52 @@ contract OracleService is
234
218
  }
235
219
 
236
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.current()) {
257
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.current(), expiryAt);
258
+ }
259
+
260
+ // check callbackMethodName.length > 0
261
+ if (bytes(callbackMethodName).length == 0) {
262
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
263
+ }
264
+ }
265
+
266
+
237
267
  function _checkAndGetRequestInfo(
238
268
  IInstance instance,
239
269
  RequestId requestId,
@@ -268,23 +298,12 @@ contract OracleService is
268
298
  }
269
299
 
270
300
  // check expiry
271
- if (info.expiredAt < TimestampLib.blockTimestamp()) {
301
+ if (info.expiredAt < TimestampLib.current()) {
272
302
  revert ErrorOracleServiceRequestExpired(requestId, info.expiredAt);
273
303
  }
274
304
  }
275
305
 
276
306
 
277
- function _getInstanceForComponent(NftId componentNftId)
278
- internal
279
- view
280
- returns(IInstance instance)
281
- {
282
- NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
283
- address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
284
- return IInstance(instanceAddress);
285
- }
286
-
287
-
288
307
  function _getDomain() internal pure override returns(ObjectType) {
289
308
  return ORACLE();
290
309
  }
@@ -17,7 +17,7 @@ contract OracleServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  OracleService svc = new OracleService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {Amount} from "../type/Amount.sol";
5
5
  import {Fee} from "../type/Fee.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
7
8
  import {NftId} from "../type/NftId.sol";
8
9
  import {BUNDLE} from "../type/ObjectType.sol";
9
10
  import {RoleId} from "../type/RoleId.sol";
@@ -19,22 +20,21 @@ abstract contract BasicPool is
19
20
  function _initializeBasicPool(
20
21
  address registry,
21
22
  NftId productNftId,
22
- IAuthorization authorization,
23
- address token,
24
23
  string memory name,
24
+ IComponents.PoolInfo memory poolInfo,
25
+ IAuthorization authorization,
25
26
  address initialOwner
26
27
  )
27
28
  internal
28
29
  virtual
29
30
  onlyInitializing()
30
31
  {
31
- _initializePool(
32
+ __Pool_init(
32
33
  registry,
33
34
  productNftId,
34
35
  name,
35
- token,
36
+ poolInfo,
36
37
  authorization,
37
- false, // isInterceptingNftTransfers,
38
38
  initialOwner,
39
39
  ""); // componentData
40
40
  }
@@ -82,50 +82,58 @@ abstract contract BasicPool is
82
82
  }
83
83
 
84
84
 
85
- function lockBundle(NftId bundleNftId)
85
+ function setBundleLocked(NftId bundleNftId, bool locked)
86
86
  public
87
87
  virtual
88
88
  restricted()
89
89
  onlyBundleOwner(bundleNftId)
90
90
  onlyNftOfType(bundleNftId, BUNDLE())
91
91
  {
92
- _lockBundle(bundleNftId);
92
+ _setBundleLocked(bundleNftId, locked);
93
93
  }
94
94
 
95
95
 
96
- function unlockBundle(NftId bundleNftId)
96
+ function closeBundle(NftId bundleNftId)
97
97
  public
98
98
  virtual
99
99
  restricted()
100
100
  onlyBundleOwner(bundleNftId)
101
101
  onlyNftOfType(bundleNftId, BUNDLE())
102
102
  {
103
- _unlockBundle(bundleNftId);
103
+ _closeBundle(bundleNftId);
104
104
  }
105
105
 
106
106
 
107
- function closeBundle(NftId bundleNftId)
107
+ /// @dev Updates the bundle feeds to the specified values.
108
+ /// @param bundleNftId the bundle Nft Id
109
+ /// @param fee the new fee values
110
+ function setBundleFee(
111
+ NftId bundleNftId,
112
+ Fee memory fee
113
+ )
108
114
  public
109
115
  virtual
110
116
  restricted()
111
117
  onlyBundleOwner(bundleNftId)
112
118
  onlyNftOfType(bundleNftId, BUNDLE())
113
119
  {
114
- _closeBundle(bundleNftId);
120
+ _setBundleFee(bundleNftId, fee);
115
121
  }
116
122
 
117
123
 
118
- function setBundleFee(
119
- NftId bundleNftId,
120
- Fee memory fee
121
- )
122
- public
124
+ /// @dev Withdraw bundle feeds for the given bundle.
125
+ /// @param bundleNftId the bundle Nft Id
126
+ /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
127
+ /// @return withdrawnAmount the effective withdrawn amount
128
+ function withdrawBundleFees(NftId bundleNftId, Amount amount)
129
+ external
123
130
  virtual
124
131
  restricted()
125
132
  onlyBundleOwner(bundleNftId)
126
133
  onlyNftOfType(bundleNftId, BUNDLE())
134
+ returns (Amount withdrawnAmount)
127
135
  {
128
- _setBundleFee(bundleNftId, fee);
136
+ return _withdrawBundleFees(bundleNftId, amount);
129
137
  }
130
138
 
131
139
 
@@ -1,14 +1,16 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Authorization} from "../authorization/Authorization.sol";
5
- import {BasicPool} from "./BasicPool.sol";
6
4
  import {IAccess} from "../authorization/IAccess.sol";
7
5
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
6
  import {IPoolComponent} from "./IPoolComponent.sol";
9
- import {POOL} from "../type/ObjectType.sol";
7
+
8
+ import {Authorization} from "../authorization/Authorization.sol";
9
+ import {BasicPool} from "./BasicPool.sol";
10
+ import {COMPONENT, POOL} from "../type/ObjectType.sol";
10
11
  import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
11
12
  import {RoleId} from "../type/RoleId.sol";
13
+ import {TokenHandler} from "../shared/TokenHandler.sol";
12
14
 
13
15
 
14
16
  contract BasicPoolAuthorization
@@ -16,16 +18,36 @@ contract BasicPoolAuthorization
16
18
  {
17
19
 
18
20
  constructor(string memory poolName)
19
- Authorization(poolName)
21
+ Authorization(
22
+ poolName,
23
+ POOL(),
24
+ 3,
25
+ COMMIT_HASH,
26
+ true,
27
+ true)
20
28
  {}
21
29
 
22
- function _setupTargets()
30
+ function _setupServiceTargets()
23
31
  internal
24
32
  virtual override
25
33
  {
26
- _addComponentTargetWithRole(POOL()); // basic pool target
34
+ _authorizeServiceDomain(COMPONENT(), address(11));
35
+ _authorizeServiceDomain(POOL(), address(12));
27
36
  }
28
37
 
38
+ function _setupTokenHandlerAuthorizations() internal virtual override {
39
+ // authorize token handler functions for component service role
40
+ IAccess.FunctionInfo[] storage functions;
41
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
42
+ _authorize(functions, TokenHandler.approve.selector, "approve");
43
+ _authorize(functions, TokenHandler.setWallet.selector, "setWallet");
44
+ _authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
45
+
46
+ // authorize token handler functions for pool service role
47
+ functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(POOL()));
48
+ _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
49
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
50
+ }
29
51
 
30
52
  function _setupTargetAuthorizations()
31
53
  internal
@@ -34,12 +56,11 @@ contract BasicPoolAuthorization
34
56
  IAccess.FunctionInfo[] storage functions;
35
57
 
36
58
  // authorize public role (open access to any account, only allows to lock target)
37
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
59
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
38
60
  _authorize(functions, BasicPool.stake.selector, "stake");
39
61
  _authorize(functions, BasicPool.unstake.selector, "unstake");
40
62
  _authorize(functions, BasicPool.extend.selector, "extend");
41
- _authorize(functions, BasicPool.lockBundle.selector, "lockBundle");
42
- _authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
63
+ _authorize(functions, BasicPool.setBundleLocked.selector, "setBundleLocked");
43
64
  _authorize(functions, BasicPool.closeBundle.selector, "closeBundle");
44
65
  _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
45
66
 
@@ -50,8 +71,11 @@ contract BasicPoolAuthorization
50
71
  _authorize(functions, BasicPool.extend.selector, "extend");
51
72
 
52
73
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
74
+ _authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
53
75
 
54
- _authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
76
+ // authorize pool service
77
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(POOL()));
78
+ _authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
55
79
  }
56
80
  }
57
81