@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f15b559-661

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 (467) hide show
  1. package/README.md +27 -6
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
  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 +82 -12
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +108 -188
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +244 -190
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +82 -56
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -73
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +101 -164
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +152 -33
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +256 -296
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +139 -131
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +638 -301
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  62. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -39
  66. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
  68. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -56
  70. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +375 -99
  72. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
  74. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +586 -215
  76. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
  78. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
  80. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +412 -372
  82. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  84. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  86. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  91. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  93. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  95. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  100. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
  103. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
  105. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +44 -58
  108. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  110. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
  112. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
  114. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
  116. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
  118. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +152 -33
  120. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +127 -331
  122. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -87
  124. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +56 -136
  126. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
  128. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +164 -217
  130. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  131. package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
  132. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  134. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +302 -353
  136. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -51
  138. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
  140. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
  142. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
  144. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  146. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -179
  148. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +74 -64
  150. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  154. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
  156. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  158. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
  160. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +37 -7
  162. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +211 -180
  164. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +76 -50
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
  172. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  173. package/artifacts/contracts/product/Product.sol/Product.json +163 -175
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.json +114 -77
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +62 -24
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.json +88 -40
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +262 -220
  191. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
  193. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
  195. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  197. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  199. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +318 -52
  201. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  203. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  205. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
  207. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +225 -439
  209. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +74 -64
  211. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
  215. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +125 -282
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  228. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  233. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  236. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  241. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  243. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  245. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  247. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  249. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  251. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  257. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
  259. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
  261. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
  263. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  264. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
  265. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  266. package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
  267. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  269. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +58 -46
  271. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  273. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +101 -49
  275. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +47 -25
  277. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
  279. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  280. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  281. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  282. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  284. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  287. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  289. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  291. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  293. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  294. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  295. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  297. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  298. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  299. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  301. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  303. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  305. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  307. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  309. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  311. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  314. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  316. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  320. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  322. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  324. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  326. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  327. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  328. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
  329. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  330. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  331. package/contracts/accounting/AccountingService.sol +262 -0
  332. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  333. package/contracts/accounting/IAccountingService.sol +45 -0
  334. package/contracts/authorization/AccessAdmin.sol +177 -84
  335. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  336. package/contracts/authorization/Authorization.sol +277 -229
  337. package/contracts/authorization/IAccessAdmin.sol +13 -7
  338. package/contracts/authorization/IAuthorization.sol +15 -1
  339. package/contracts/distribution/BasicDistribution.sol +13 -11
  340. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  341. package/contracts/distribution/Distribution.sol +42 -38
  342. package/contracts/distribution/DistributionService.sol +54 -51
  343. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  344. package/contracts/distribution/IDistributionService.sol +19 -19
  345. package/contracts/examples/fire/FirePool.sol +22 -5
  346. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  347. package/contracts/examples/fire/FireProduct.sol +32 -10
  348. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  349. package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
  350. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  351. package/contracts/examples/unpermissioned/SimplePool.sol +33 -3
  352. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  353. package/contracts/examples/unpermissioned/SimpleProduct.sol +51 -25
  354. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  355. package/contracts/instance/BundleSet.sol +42 -38
  356. package/contracts/instance/IInstance.sol +13 -9
  357. package/contracts/instance/IInstanceService.sol +9 -9
  358. package/contracts/instance/Instance.sol +33 -18
  359. package/contracts/instance/InstanceAdmin.sol +242 -84
  360. package/contracts/instance/InstanceAuthorizationV3.sol +50 -31
  361. package/contracts/instance/InstanceReader.sol +174 -32
  362. package/contracts/instance/InstanceService.sol +73 -82
  363. package/contracts/instance/InstanceServiceManager.sol +1 -1
  364. package/contracts/instance/InstanceStore.sol +13 -2
  365. package/contracts/instance/RiskSet.sol +118 -0
  366. package/contracts/instance/base/ObjectCounter.sol +1 -2
  367. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  368. package/contracts/instance/base/ObjectSet.sol +31 -33
  369. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  370. package/contracts/instance/module/IComponents.sol +4 -4
  371. package/contracts/instance/module/IDistribution.sol +2 -1
  372. package/contracts/instance/module/IPolicy.sol +2 -1
  373. package/contracts/instance/module/IRisk.sol +3 -0
  374. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  375. package/contracts/oracle/Oracle.sol +1 -1
  376. package/contracts/oracle/OracleService.sol +92 -73
  377. package/contracts/oracle/OracleServiceManager.sol +1 -1
  378. package/contracts/pool/BasicPool.sol +24 -3
  379. package/contracts/pool/BasicPoolAuthorization.sol +27 -8
  380. package/contracts/pool/BundleService.sol +47 -145
  381. package/contracts/pool/BundleServiceManager.sol +1 -1
  382. package/contracts/pool/IBundleService.sol +15 -43
  383. package/contracts/pool/IPoolComponent.sol +1 -7
  384. package/contracts/pool/IPoolService.sol +58 -60
  385. package/contracts/pool/Pool.sol +106 -96
  386. package/contracts/pool/PoolLib.sol +216 -0
  387. package/contracts/pool/PoolService.sol +427 -214
  388. package/contracts/pool/PoolServiceManager.sol +1 -1
  389. package/contracts/product/ApplicationService.sol +15 -15
  390. package/contracts/product/ApplicationServiceManager.sol +1 -1
  391. package/contracts/product/BasicProduct.sol +9 -11
  392. package/contracts/product/BasicProductAuthorization.sol +24 -10
  393. package/contracts/product/ClaimService.sol +157 -137
  394. package/contracts/product/ClaimServiceManager.sol +1 -1
  395. package/contracts/product/IApplicationService.sol +5 -2
  396. package/contracts/product/IClaimService.sol +14 -2
  397. package/contracts/product/IPolicyService.sol +26 -11
  398. package/contracts/product/IProductComponent.sol +4 -1
  399. package/contracts/product/IRiskService.sol +5 -8
  400. package/contracts/product/PolicyService.sol +244 -253
  401. package/contracts/product/PolicyServiceLib.sol +65 -0
  402. package/contracts/product/PolicyServiceManager.sol +1 -1
  403. package/contracts/product/PricingService.sol +23 -19
  404. package/contracts/product/PricingServiceManager.sol +3 -3
  405. package/contracts/product/Product.sol +66 -52
  406. package/contracts/product/RiskService.sol +79 -31
  407. package/contracts/product/RiskServiceManager.sol +1 -1
  408. package/contracts/registry/ChainNft.sol +4 -2
  409. package/contracts/registry/IRegistry.sol +10 -15
  410. package/contracts/registry/IRelease.sol +26 -0
  411. package/contracts/registry/Registry.sol +16 -3
  412. package/contracts/registry/RegistryAdmin.sol +132 -226
  413. package/contracts/registry/RegistryService.sol +3 -3
  414. package/contracts/registry/RegistryServiceManager.sol +1 -1
  415. package/contracts/registry/ReleaseAdmin.sol +245 -0
  416. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  417. package/contracts/registry/ReleaseRegistry.sol +129 -119
  418. package/contracts/registry/ServiceAuthorizationV3.sol +93 -40
  419. package/contracts/registry/TokenRegistry.sol +6 -8
  420. package/contracts/shared/Component.sol +61 -105
  421. package/contracts/shared/ComponentService.sol +301 -295
  422. package/contracts/shared/ComponentServiceManager.sol +1 -1
  423. package/contracts/shared/ComponentVerifyingService.sol +16 -14
  424. package/contracts/shared/ContractLib.sol +224 -9
  425. package/contracts/shared/IComponent.sol +4 -17
  426. package/contracts/shared/IComponentService.sol +16 -25
  427. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  428. package/contracts/shared/IRegisterable.sol +15 -4
  429. package/contracts/shared/IService.sol +3 -5
  430. package/contracts/shared/InstanceLinkedComponent.sol +4 -20
  431. package/contracts/shared/NftOwnable.sol +4 -4
  432. package/contracts/shared/PolicyHolder.sol +1 -1
  433. package/contracts/shared/Registerable.sol +44 -20
  434. package/contracts/shared/RegistryLinked.sol +7 -13
  435. package/contracts/shared/Service.sol +8 -27
  436. package/contracts/shared/TokenHandler.sol +263 -105
  437. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  438. package/contracts/staking/IStaking.sol +5 -8
  439. package/contracts/staking/IStakingService.sol +8 -0
  440. package/contracts/staking/StakeManagerLib.sol +1 -1
  441. package/contracts/staking/Staking.sol +62 -33
  442. package/contracts/staking/StakingReader.sol +1 -1
  443. package/contracts/staking/StakingService.sol +35 -12
  444. package/contracts/staking/StakingServiceManager.sol +5 -4
  445. package/contracts/type/Key32.sol +2 -2
  446. package/contracts/type/Key32Set.sol +62 -0
  447. package/contracts/type/NftId.sol +6 -0
  448. package/contracts/type/ObjectType.sol +48 -21
  449. package/contracts/type/RiskId.sol +26 -8
  450. package/contracts/type/RoleId.sol +24 -4
  451. package/contracts/type/Selector.sol +5 -0
  452. package/contracts/type/Timestamp.sol +0 -5
  453. package/contracts/type/UFixed.sol +9 -119
  454. package/contracts/type/Version.sol +15 -5
  455. package/contracts/upgradeability/ProxyManager.sol +1 -1
  456. package/package.json +3 -3
  457. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  458. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  459. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  460. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  461. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
  462. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
  463. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  464. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  465. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  466. package/contracts/instance/module/IAccess.sol +0 -46
  467. package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
@@ -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
 
@@ -49,51 +50,27 @@ contract OracleService is
49
50
  virtual
50
51
  // restricted() // add authz
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
 
@@ -130,11 +108,13 @@ contract OracleService is
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;
@@ -176,11 +156,13 @@ contract OracleService is
176
156
  // restricted() // add authz
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
 
@@ -213,11 +195,13 @@ contract OracleService is
213
195
  // restricted() // add authz
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.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
+
237
267
  function _checkAndGetRequestInfo(
238
268
  IInstance instance,
239
269
  RequestId requestId,
@@ -274,17 +304,6 @@ contract OracleService is
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,9 +20,10 @@ 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
+ address token,
25
+ IComponents.PoolInfo memory poolInfo,
26
+ IAuthorization authorization,
25
27
  address initialOwner
26
28
  )
27
29
  internal
@@ -33,8 +35,8 @@ abstract contract BasicPool is
33
35
  productNftId,
34
36
  name,
35
37
  token,
38
+ poolInfo,
36
39
  authorization,
37
- false, // isInterceptingNftTransfers,
38
40
  initialOwner,
39
41
  ""); // componentData
40
42
  }
@@ -115,6 +117,9 @@ abstract contract BasicPool is
115
117
  }
116
118
 
117
119
 
120
+ /// @dev Updates the bundle feeds to the specified values.
121
+ /// @param bundleNftId the bundle Nft Id
122
+ /// @param fee the new fee values
118
123
  function setBundleFee(
119
124
  NftId bundleNftId,
120
125
  Fee memory fee
@@ -129,6 +134,22 @@ abstract contract BasicPool is
129
134
  }
130
135
 
131
136
 
137
+ /// @dev Withdraw bundle feeds for the given bundle.
138
+ /// @param bundleNftId the bundle Nft Id
139
+ /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
140
+ /// @return withdrawnAmount the effective withdrawn amount
141
+ function withdrawBundleFees(NftId bundleNftId, Amount amount)
142
+ external
143
+ virtual
144
+ restricted()
145
+ onlyBundleOwner(bundleNftId)
146
+ onlyNftOfType(bundleNftId, BUNDLE())
147
+ returns (Amount withdrawnAmount)
148
+ {
149
+ return _withdrawBundleFees(bundleNftId, amount);
150
+ }
151
+
152
+
132
153
  function setMaxBalanceAmount(Amount maxBalanceAmount)
133
154
  public
134
155
  virtual
@@ -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,30 @@ contract BasicPoolAuthorization
16
18
  {
17
19
 
18
20
  constructor(string memory poolName)
19
- Authorization(poolName)
21
+ Authorization(poolName, POOL())
20
22
  {}
21
23
 
22
- function _setupTargets()
24
+ function _setupServiceTargets()
23
25
  internal
24
26
  virtual override
25
27
  {
26
- _addComponentTargetWithRole(POOL()); // basic pool target
28
+ _addServiceTargetWithRole(COMPONENT());
29
+ _addServiceTargetWithRole(POOL());
27
30
  }
28
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
+ }
29
45
 
30
46
  function _setupTargetAuthorizations()
31
47
  internal
@@ -34,7 +50,7 @@ contract BasicPoolAuthorization
34
50
  IAccess.FunctionInfo[] storage functions;
35
51
 
36
52
  // authorize public role (open access to any account, only allows to lock target)
37
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
53
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
38
54
  _authorize(functions, BasicPool.stake.selector, "stake");
39
55
  _authorize(functions, BasicPool.unstake.selector, "unstake");
40
56
  _authorize(functions, BasicPool.extend.selector, "extend");
@@ -50,8 +66,11 @@ contract BasicPoolAuthorization
50
66
  _authorize(functions, BasicPool.extend.selector, "extend");
51
67
 
52
68
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
69
+ _authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
53
70
 
54
- _authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
71
+ // authorize pool service
72
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(POOL()));
73
+ _authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
55
74
  }
56
75
  }
57
76