@etherisc/gif-next 0.0.2-c68eaf3-087 → 0.0.2-c75d1c9-841

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