@etherisc/gif-next 0.0.2-a4051e9-983 → 0.0.2-a49c197-934

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 (440) 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 +103 -55
  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 +2 -2
  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 +37 -5
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +106 -186
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +166 -104
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +81 -51
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +102 -165
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +258 -295
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +137 -129
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +630 -317
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  62. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +94 -47
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
  67. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/Instance.sol/Instance.json +131 -56
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +240 -93
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +478 -197
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  82. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  85. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  92. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  98. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +44 -58
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +128 -226
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -74
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +46 -60
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +104 -78
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +175 -174
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +64 -38
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  139. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  141. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +251 -144
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -57
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  147. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  149. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -22
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +158 -140
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +73 -47
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
  166. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  167. package/artifacts/contracts/product/Product.sol/Product.json +163 -175
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  169. package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +31 -2
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  178. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  179. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  180. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  181. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/Registry.sol/Registry.json +69 -40
  183. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -213
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
  189. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  190. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  191. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  193. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +310 -52
  195. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  197. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +3 -3
  199. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  200. package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
  201. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +250 -421
  203. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +71 -61
  205. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  207. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
  209. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  211. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  215. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
  217. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -248
  219. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
  221. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  223. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  227. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  230. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  231. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
  233. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  234. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  236. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  237. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  239. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  245. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  246. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  248. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
  249. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  251. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  252. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  253. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  254. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
  255. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  256. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
  257. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  258. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
  259. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
  261. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  262. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  263. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  264. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +58 -46
  265. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  266. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  267. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +73 -50
  269. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +46 -24
  271. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
  273. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  274. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  275. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  276. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  278. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  287. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  288. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  289. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  291. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  292. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  293. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  295. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  297. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  299. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  301. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
  303. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
  305. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  312. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  314. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  316. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  318. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  319. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  320. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
  321. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  322. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  323. package/contracts/accounting/AccountingService.sol +262 -0
  324. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  325. package/contracts/accounting/IAccountingService.sol +45 -0
  326. package/contracts/authorization/AccessAdmin.sol +136 -73
  327. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  328. package/contracts/authorization/IAccessAdmin.sol +6 -3
  329. package/contracts/distribution/BasicDistribution.sol +6 -6
  330. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  331. package/contracts/distribution/Distribution.sol +32 -30
  332. package/contracts/distribution/DistributionService.sol +35 -33
  333. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  334. package/contracts/distribution/IDistributionService.sol +5 -6
  335. package/contracts/examples/fire/FirePool.sol +25 -10
  336. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
  337. package/contracts/examples/fire/FireProduct.sol +31 -11
  338. package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
  339. package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
  340. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  341. package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
  342. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  343. package/contracts/examples/unpermissioned/SimpleProduct.sol +40 -21
  344. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  345. package/contracts/instance/BundleSet.sol +38 -34
  346. package/contracts/instance/IInstance.sol +8 -8
  347. package/contracts/instance/IInstanceService.sol +9 -9
  348. package/contracts/instance/Instance.sol +20 -17
  349. package/contracts/instance/InstanceAdmin.sol +98 -49
  350. package/contracts/instance/InstanceAuthorizationV3.sol +45 -14
  351. package/contracts/instance/InstanceReader.sol +108 -7
  352. package/contracts/instance/InstanceService.sol +73 -80
  353. package/contracts/instance/InstanceServiceManager.sol +1 -1
  354. package/contracts/instance/InstanceStore.sol +13 -2
  355. package/contracts/instance/RiskSet.sol +117 -0
  356. package/contracts/instance/base/ObjectCounter.sol +1 -2
  357. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  358. package/contracts/instance/base/ObjectSet.sol +24 -25
  359. package/contracts/instance/module/IComponents.sol +4 -4
  360. package/contracts/instance/module/IPolicy.sol +2 -1
  361. package/contracts/instance/module/IRisk.sol +3 -0
  362. package/contracts/oracle/Oracle.sol +1 -1
  363. package/contracts/oracle/OracleService.sol +90 -72
  364. package/contracts/oracle/OracleServiceManager.sol +1 -1
  365. package/contracts/pool/BasicPool.sol +24 -3
  366. package/contracts/pool/BasicPoolAuthorization.sol +12 -1
  367. package/contracts/pool/BundleService.sol +49 -104
  368. package/contracts/pool/BundleServiceManager.sol +1 -1
  369. package/contracts/pool/IBundleService.sol +2 -24
  370. package/contracts/pool/IPoolComponent.sol +1 -7
  371. package/contracts/pool/IPoolService.sol +12 -26
  372. package/contracts/pool/Pool.sol +112 -102
  373. package/contracts/pool/PoolService.sol +171 -100
  374. package/contracts/pool/PoolServiceManager.sol +1 -1
  375. package/contracts/product/ApplicationService.sol +23 -21
  376. package/contracts/product/ApplicationServiceManager.sol +1 -1
  377. package/contracts/product/BasicProduct.sol +9 -11
  378. package/contracts/product/BasicProductAuthorization.sol +1 -2
  379. package/contracts/product/ClaimService.sol +155 -51
  380. package/contracts/product/ClaimServiceManager.sol +1 -1
  381. package/contracts/product/IApplicationService.sol +5 -2
  382. package/contracts/product/IClaimService.sol +13 -0
  383. package/contracts/product/IPolicyService.sol +17 -7
  384. package/contracts/product/IProductComponent.sol +4 -1
  385. package/contracts/product/PolicyService.sol +248 -195
  386. package/contracts/product/PolicyServiceManager.sol +1 -1
  387. package/contracts/product/PricingService.sol +27 -20
  388. package/contracts/product/PricingServiceManager.sol +3 -3
  389. package/contracts/product/Product.sol +47 -39
  390. package/contracts/product/RiskService.sol +78 -23
  391. package/contracts/product/RiskServiceManager.sol +1 -1
  392. package/contracts/registry/ChainNft.sol +4 -2
  393. package/contracts/registry/IRegistry.sol +8 -15
  394. package/contracts/registry/IRelease.sol +26 -0
  395. package/contracts/registry/Registry.sol +12 -3
  396. package/contracts/registry/RegistryAdmin.sol +121 -225
  397. package/contracts/registry/RegistryService.sol +3 -3
  398. package/contracts/registry/RegistryServiceManager.sol +1 -1
  399. package/contracts/registry/ReleaseAdmin.sol +245 -0
  400. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  401. package/contracts/registry/ReleaseRegistry.sol +129 -119
  402. package/contracts/registry/ServiceAuthorizationV3.sol +88 -40
  403. package/contracts/registry/TokenRegistry.sol +5 -7
  404. package/contracts/shared/Component.sol +59 -98
  405. package/contracts/shared/ComponentService.sol +206 -241
  406. package/contracts/shared/ComponentServiceManager.sol +1 -1
  407. package/contracts/shared/ComponentVerifyingService.sol +15 -13
  408. package/contracts/shared/ContractLib.sol +223 -9
  409. package/contracts/shared/IComponent.sol +4 -17
  410. package/contracts/shared/IComponentService.sol +20 -24
  411. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  412. package/contracts/shared/IRegisterable.sol +15 -4
  413. package/contracts/shared/IService.sol +3 -5
  414. package/contracts/shared/InstanceLinkedComponent.sol +2 -18
  415. package/contracts/shared/NftOwnable.sol +4 -4
  416. package/contracts/shared/PolicyHolder.sol +1 -1
  417. package/contracts/shared/Registerable.sol +44 -20
  418. package/contracts/shared/RegistryLinked.sol +7 -13
  419. package/contracts/shared/Service.sol +8 -27
  420. package/contracts/shared/TokenHandler.sol +316 -66
  421. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  422. package/contracts/staking/IStaking.sol +9 -4
  423. package/contracts/staking/Staking.sol +62 -33
  424. package/contracts/staking/StakingService.sol +55 -9
  425. package/contracts/type/Key32.sol +2 -2
  426. package/contracts/type/Key32Set.sol +62 -0
  427. package/contracts/type/NftId.sol +6 -0
  428. package/contracts/type/ObjectType.sol +32 -18
  429. package/contracts/type/RiskId.sol +23 -6
  430. package/contracts/type/RoleId.sol +5 -2
  431. package/contracts/type/Timestamp.sol +0 -5
  432. package/contracts/type/UFixed.sol +9 -119
  433. package/contracts/type/Version.sol +15 -5
  434. package/contracts/upgradeability/ProxyManager.sol +1 -1
  435. package/package.json +3 -3
  436. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  437. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  438. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  439. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  440. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -6,7 +6,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
6
6
  import {Amount} from "../../type/Amount.sol";
7
7
  import {Fee} from "../../type/Fee.sol";
8
8
  import {NftId} from "../../type/NftId.sol";
9
- import {RoleId} from "../../type/RoleId.sol";
10
9
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
10
  import {UFixed} from "../../type/UFixed.sol";
12
11
 
@@ -16,18 +15,21 @@ interface IComponents {
16
15
  string name; // component name (needs to be unique per instance)
17
16
  IERC20Metadata token;
18
17
  TokenHandler tokenHandler;
19
- address wallet;
20
18
  bytes data; // will hold component type specific additional info (eg encoded pool info)
21
19
  }
22
20
 
23
21
  struct ProductInfo {
24
22
  bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
23
+ bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
25
24
  bool hasDistribution; // flag to indicate if distribution is enabled
26
25
  uint8 expectedNumberOfOracles; // expected number of oracles
27
26
  uint8 numberOfOracles; // actual number of oracles
28
27
  NftId poolNftId; // mandatory
29
28
  NftId distributionNftId; // 0..1 (optional)
30
29
  NftId [] oracleNftId; // 0..n (optional)
30
+ }
31
+
32
+ struct FeeInfo {
31
33
  Fee productFee; // product fee on net premium
32
34
  Fee processingFee; // product fee on payout amounts
33
35
  Fee distributionFee; // distribution fee for sales that do not include commissions
@@ -37,10 +39,8 @@ interface IComponents {
37
39
  Fee performanceFee; // pool fee on profits from capital investors
38
40
  }
39
41
 
40
-
41
42
  struct PoolInfo {
42
43
  Amount maxBalanceAmount; // max balance amount allowed for pool
43
- RoleId bundleOwnerRole; // the required role for bundle owners
44
44
  bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
45
45
  bool isProcessingConfirmedClaims; // custom logic for claims confirmation
46
46
  bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
@@ -43,6 +43,7 @@ interface IPolicy {
43
43
 
44
44
  /// @dev policy data for the full policy lifecycle
45
45
  struct PolicyInfo {
46
+ // application data, no changes after applying for a policy
46
47
  NftId productNftId;
47
48
  NftId bundleNftId;
48
49
  ReferralId referralId;
@@ -50,8 +51,8 @@ interface IPolicy {
50
51
  Amount sumInsuredAmount;
51
52
  Amount premiumAmount; // expected premium at application time
52
53
  Seconds lifetime;
53
- // policy application data, no changes after applying for a policy
54
54
  bytes applicationData;
55
+ // policy data that may change during the lifecycle
55
56
  bytes processData;
56
57
  uint16 claimsCount;
57
58
  uint16 openClaimsCount;
@@ -2,10 +2,13 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../../type/NftId.sol";
5
+ import {Timestamp} from "../../type/Timestamp.sol";
5
6
 
6
7
  interface IRisk {
8
+
7
9
  struct RiskInfo {
8
10
  NftId productNftId;
11
+ Timestamp createdAt;
9
12
  bytes data;
10
13
  }
11
14
  }
@@ -69,7 +69,7 @@ abstract contract Oracle is
69
69
  override(IInstanceLinkedComponent, InstanceLinkedComponent)
70
70
  onlyOwner()
71
71
  restricted()
72
- returns (Amount withdrawnAmount)
72
+ returns (Amount)
73
73
  {
74
74
  revert ErrorOracleNotImplemented("withdrawFees");
75
75
  }
@@ -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
  {
56
- (
57
- NftId componentNftId,
58
- IRegistry.ObjectInfo memory componentInfo,
59
- IInstance instance
60
- ) = _getAndVerifyActiveComponent(COMPONENT());
55
+ // IRegistry registry = getRegistry();
61
56
 
62
- // oracleNftId exists and is active oracle
57
+ // get and check active caller
63
58
  (
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
- }
59
+ IRegistry.ObjectInfo memory info,
60
+ address instance
61
+ ) = ContractLib.getAndVerifyAnyComponent(
62
+ getRegistry(), msg.sender, true);
81
63
 
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
+ (
65
+ NftId requesterNftId,
66
+ IOracleComponent oracle
67
+ ) = _checkRequestParams(
68
+ getRegistry(), oracleNftId, info, expiryAt, callbackMethodName);
92
69
 
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,17 @@ 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
+ // callback to oracle component
88
+ oracle.request(
112
89
  requestId,
113
- componentNftId,
90
+ requesterNftId,
114
91
  requestData,
115
92
  expiryAt);
116
93
 
117
- emit LogOracleServiceRequestCreated(requestId, componentNftId, oracleNftId, expiryAt);
94
+ emit LogOracleServiceRequestCreated(requestId, requesterNftId, oracleNftId, expiryAt);
118
95
  }
119
96
 
120
97
 
@@ -130,11 +107,13 @@ contract OracleService is
130
107
  returns (bool success)
131
108
  {
132
109
  (
133
- NftId oracleNftId,
134
- IRegistry.ObjectInfo memory componentInfo,
135
- IInstance instance
136
- ) = _getAndVerifyActiveComponent(ORACLE());
110
+ IRegistry.ObjectInfo memory info,
111
+ address instanceAddress
112
+ ) = ContractLib.getAndVerifyComponent(
113
+ getRegistry(), msg.sender, ORACLE(), true);
137
114
 
115
+ NftId oracleNftId = info.nftId;
116
+ IInstance instance = IInstance(instanceAddress);
138
117
  bool callerIsOracle = true;
139
118
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, oracleNftId, callerIsOracle);
140
119
  request.responseData = responseData;
@@ -176,11 +155,13 @@ contract OracleService is
176
155
  // restricted() // add authz
177
156
  {
178
157
  (
179
- NftId requesterNftId,
180
- IRegistry.ObjectInfo memory requesterInfo,
181
- IInstance instance
182
- ) = _getAndVerifyActiveComponent(COMPONENT());
158
+ IRegistry.ObjectInfo memory info,
159
+ address instanceAddress
160
+ ) = ContractLib.getAndVerifyAnyComponent(
161
+ getRegistry(), msg.sender, true);
183
162
 
163
+ NftId requesterNftId = info.nftId;
164
+ IInstance instance = IInstance(instanceAddress);
184
165
  bool callerIsOracle = false;
185
166
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
186
167
 
@@ -191,7 +172,7 @@ contract OracleService is
191
172
  "(uint64,bytes)"
192
173
  ));
193
174
 
194
- (bool success, bytes memory returnData) = requesterInfo.objectAddress.call(
175
+ (bool success, bytes memory returnData) = info.objectAddress.call(
195
176
  abi.encodeWithSignature(
196
177
  functionSignature,
197
178
  requestId,
@@ -202,7 +183,7 @@ contract OracleService is
202
183
  instance.getInstanceStore().updateRequestState(requestId, FULFILLED());
203
184
  emit LogOracleServiceResponseResent(requestId, requesterNftId);
204
185
  } else {
205
- emit LogOracleServiceDeliveryFailed(requestId, requesterInfo.objectAddress, functionSignature);
186
+ emit LogOracleServiceDeliveryFailed(requestId, info.objectAddress, functionSignature);
206
187
  }
207
188
  }
208
189
 
@@ -213,11 +194,13 @@ contract OracleService is
213
194
  // restricted() // add authz
214
195
  {
215
196
  (
216
- NftId requesterNftId,
217
- IRegistry.ObjectInfo memory componentInfo,
218
- IInstance instance
219
- ) = _getAndVerifyActiveComponent(COMPONENT());
197
+ IRegistry.ObjectInfo memory info,
198
+ address instanceAddress
199
+ ) = ContractLib.getAndVerifyAnyComponent(
200
+ getRegistry(), msg.sender, true);
220
201
 
202
+ NftId requesterNftId = info.nftId;
203
+ IInstance instance = IInstance(instanceAddress);
221
204
  bool callerIsOracle = false;
222
205
  // TODO property isCancelled and state update to CANCELLED are redundant, get rid of isCancelled
223
206
  IOracle.RequestInfo memory request = _checkAndGetRequestInfo(instance, requestId, requesterNftId, callerIsOracle);
@@ -234,6 +217,52 @@ contract OracleService is
234
217
  }
235
218
 
236
219
 
220
+ function _checkRequestParams(
221
+ IRegistry registry,
222
+ NftId oracleNftId,
223
+ IRegistry.ObjectInfo memory info,
224
+ Timestamp expiryAt,
225
+ string memory callbackMethodName
226
+ )
227
+ internal
228
+ virtual
229
+ view
230
+ returns (
231
+ NftId requesterNftId,
232
+ IOracleComponent oracle
233
+ )
234
+ {
235
+ // get oracle info
236
+ (IRegistry.ObjectInfo memory oracleInfo,) = ContractLib.getInfoAndInstance(
237
+ registry, oracleNftId, true);
238
+
239
+ // obtain return values
240
+ requesterNftId = info.nftId;
241
+ oracle = IOracleComponent(oracleInfo.objectAddress);
242
+
243
+ // check that requester and oracle share same product cluster
244
+ if (info.objectType == PRODUCT()) {
245
+ if (oracleInfo.parentNftId != requesterNftId) {
246
+ revert ErrorOracleServiceProductMismatch(info.objectType, requesterNftId, oracleInfo.parentNftId);
247
+ }
248
+ } else {
249
+ if (oracleInfo.parentNftId != info.parentNftId) {
250
+ revert ErrorOracleServiceProductMismatch(info.objectType, info.parentNftId, oracleInfo.parentNftId);
251
+ }
252
+ }
253
+
254
+ // check expiriyAt >= now
255
+ if (expiryAt < TimestampLib.blockTimestamp()) {
256
+ revert ErrorOracleServiceExpiryInThePast(TimestampLib.blockTimestamp(), expiryAt);
257
+ }
258
+
259
+ // check callbackMethodName.length > 0
260
+ if (bytes(callbackMethodName).length == 0) {
261
+ revert ErrorOracleServiceCallbackMethodNameEmpty();
262
+ }
263
+ }
264
+
265
+
237
266
  function _checkAndGetRequestInfo(
238
267
  IInstance instance,
239
268
  RequestId requestId,
@@ -274,17 +303,6 @@ contract OracleService is
274
303
  }
275
304
 
276
305
 
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
306
  function _getDomain() internal pure override returns(ObjectType) {
289
307
  return ORACLE();
290
308
  }
@@ -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
@@ -19,6 +19,13 @@ contract BasicPoolAuthorization
19
19
  Authorization(poolName)
20
20
  {}
21
21
 
22
+ function _setupServiceTargets()
23
+ internal
24
+ virtual override
25
+ {
26
+ _addServiceTargetWithRole(POOL());
27
+ }
28
+
22
29
  function _setupTargets()
23
30
  internal
24
31
  virtual override
@@ -51,7 +58,11 @@ contract BasicPoolAuthorization
51
58
 
52
59
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
53
60
 
54
- _authorize(functions, IPoolComponent.withdrawBundleFees.selector, "withdrawBundleFees");
61
+ _authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
62
+
63
+ // authorize pool service
64
+ functions = _authorizeForTarget(getTargetName(), getServiceRole(POOL()));
65
+ _authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
55
66
  }
56
67
  }
57
68