@etherisc/gif-next 0.0.2-b3e9a44-364 → 0.0.2-b43fece-589

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 (365) hide show
  1. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
  3. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -13
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  13. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  14. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +138 -94
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +77 -17
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +78 -58
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +120 -86
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +64 -60
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +65 -58
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +13 -0
  31. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  32. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  33. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +119 -135
  34. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  35. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +114 -22
  36. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +218 -159
  38. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +81 -25
  40. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  41. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  42. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +140 -96
  43. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  44. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +121 -77
  45. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +197 -145
  47. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +508 -177
  49. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  50. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  52. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +37 -31
  53. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  54. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +13 -84
  55. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  56. package/artifacts/contracts/instance/Instance.sol/Instance.json +46 -40
  57. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
  59. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
  61. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +94 -79
  63. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +56 -130
  65. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +32 -40
  67. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +174 -103
  69. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  72. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  74. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  76. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  82. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +119 -75
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +77 -17
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  88. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +60 -53
  90. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -9
  92. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +73 -53
  94. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +70 -47
  96. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +32 -36
  98. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -81
  100. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  102. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +125 -119
  104. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +57 -69
  106. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -15
  108. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +60 -92
  110. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +90 -88
  112. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -92
  114. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +149 -158
  116. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -52
  118. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -32
  120. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +29 -33
  122. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +118 -54
  124. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +77 -17
  126. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -88
  128. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +56 -60
  130. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  131. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  132. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  134. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  136. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +70 -57
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +105 -54
  140. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +13 -0
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +80 -62
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -49
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.json +133 -115
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +42 -46
  150. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  151. package/artifacts/contracts/product/Product.sol/Product.json +118 -54
  152. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  153. package/artifacts/contracts/product/RiskService.sol/RiskService.json +44 -26
  154. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +26 -30
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -15
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +98 -35
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +38 -53
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +193 -165
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +129 -61
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -29
  172. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  174. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +121 -223
  176. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  178. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  180. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  181. package/artifacts/contracts/shared/Component.sol/Component.json +52 -28
  182. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +334 -155
  184. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +67 -63
  186. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +26 -0
  188. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  190. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +39 -28
  192. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +305 -19
  194. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +60 -53
  196. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  198. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  200. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +13 -0
  204. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  207. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  208. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  209. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +73 -53
  210. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  211. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  212. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  214. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  218. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +50 -8
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  223. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Service.sol/Service.json +26 -0
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  228. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +39 -28
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +13 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  233. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  234. package/artifacts/contracts/staking/Staking.sol/Staking.json +122 -78
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +52 -42
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +50 -32
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +29 -33
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  248. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  256. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  258. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  271. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  277. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  278. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  279. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +12 -12
  280. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  281. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  282. package/contracts/authorization/AccessAdmin.sol +65 -61
  283. package/contracts/authorization/Authorization.sol +106 -38
  284. package/contracts/authorization/IAccess.sol +1 -0
  285. package/contracts/authorization/IAccessAdmin.sol +4 -2
  286. package/contracts/authorization/IAuthorization.sol +13 -7
  287. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  288. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  289. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  290. package/contracts/distribution/BasicDistribution.sol +0 -1
  291. package/contracts/distribution/Distribution.sol +4 -15
  292. package/contracts/distribution/DistributionService.sol +14 -7
  293. package/contracts/distribution/IDistributionComponent.sol +1 -1
  294. package/contracts/examples/fire/FirePool.sol +19 -8
  295. package/contracts/examples/fire/FireProduct.sol +32 -12
  296. package/contracts/examples/fire/FireProductAuthorization.sol +1 -2
  297. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
  298. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  299. package/contracts/examples/unpermissioned/SimplePool.sol +11 -6
  300. package/contracts/examples/unpermissioned/SimpleProduct.sol +17 -23
  301. package/contracts/instance/IInstance.sol +4 -1
  302. package/contracts/instance/IInstanceService.sol +0 -20
  303. package/contracts/instance/Instance.sol +20 -17
  304. package/contracts/instance/InstanceAdmin.sol +16 -27
  305. package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
  306. package/contracts/instance/InstanceService.sol +14 -68
  307. package/contracts/instance/module/IComponents.sol +7 -4
  308. package/contracts/oracle/BasicOracle.sol +0 -1
  309. package/contracts/oracle/IOracleService.sol +2 -1
  310. package/contracts/oracle/Oracle.sol +4 -15
  311. package/contracts/oracle/OracleService.sol +20 -14
  312. package/contracts/pool/BasicPool.sol +22 -12
  313. package/contracts/pool/BasicPoolAuthorization.sol +12 -2
  314. package/contracts/pool/BundleService.sol +63 -39
  315. package/contracts/pool/IBundleService.sol +2 -5
  316. package/contracts/pool/IPoolComponent.sol +1 -7
  317. package/contracts/pool/IPoolService.sol +23 -22
  318. package/contracts/pool/Pool.sol +111 -123
  319. package/contracts/pool/PoolService.sol +186 -128
  320. package/contracts/product/ApplicationService.sol +9 -1
  321. package/contracts/product/BasicProduct.sol +8 -12
  322. package/contracts/product/BasicProductAuthorization.sol +0 -1
  323. package/contracts/product/ClaimService.sol +82 -51
  324. package/contracts/product/IPricingService.sol +9 -9
  325. package/contracts/product/IProductComponent.sol +6 -0
  326. package/contracts/product/PolicyService.sol +15 -10
  327. package/contracts/product/PricingService.sol +7 -7
  328. package/contracts/product/Product.sol +51 -54
  329. package/contracts/registry/ChainNft.sol +6 -9
  330. package/contracts/registry/IRegistry.sol +0 -3
  331. package/contracts/registry/IRegistryService.sol +6 -4
  332. package/contracts/registry/ITransferInterceptor.sol +1 -2
  333. package/contracts/registry/Registry.sol +6 -4
  334. package/contracts/registry/RegistryAdmin.sol +7 -23
  335. package/contracts/registry/RegistryService.sol +37 -55
  336. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  337. package/contracts/registry/ReleaseRegistry.sol +201 -191
  338. package/contracts/registry/ServiceAuthorizationV3.sol +20 -15
  339. package/contracts/shared/Component.sol +25 -21
  340. package/contracts/shared/ComponentService.sol +235 -131
  341. package/contracts/shared/ComponentVerifyingService.sol +22 -14
  342. package/contracts/shared/IComponent.sol +6 -2
  343. package/contracts/shared/IComponentService.sol +25 -13
  344. package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
  345. package/contracts/shared/ILifecycle.sol +3 -1
  346. package/contracts/shared/IRegisterable.sol +11 -0
  347. package/contracts/shared/InstanceLinkedComponent.sol +67 -25
  348. package/contracts/shared/KeyValueStore.sol +1 -1
  349. package/contracts/shared/Lifecycle.sol +15 -4
  350. package/contracts/shared/NftOwnable.sol +8 -4
  351. package/contracts/shared/Registerable.sol +15 -7
  352. package/contracts/shared/Service.sol +4 -7
  353. package/contracts/staking/Staking.sol +2 -3
  354. package/contracts/staking/StakingService.sol +14 -0
  355. package/contracts/type/RiskId.sol +1 -1
  356. package/contracts/type/RoleId.sol +0 -12
  357. package/contracts/type/StateId.sol +14 -1
  358. package/contracts/upgradeability/ProxyManager.sol +2 -1
  359. package/package.json +1 -1
  360. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  361. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  362. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  363. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  364. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  365. package/contracts/authorization/ModuleAuthorization.sol +0 -78
@@ -5,44 +5,33 @@ import {
5
5
  PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
- import {
9
- DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
10
- } from "../../contracts/type/RoleId.sol";
11
-
12
8
  import {BundleSet} from "../instance/BundleSet.sol";
13
9
  import {IAccess} from "../authorization/IAccess.sol";
14
10
  import {Instance} from "../instance/Instance.sol";
15
11
  import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
16
12
  import {InstanceStore} from "../instance/InstanceStore.sol";
17
- import {ModuleAuthorization} from "../authorization/ModuleAuthorization.sol";
13
+ import {Authorization} from "../authorization/Authorization.sol";
18
14
 
19
15
 
20
16
  contract InstanceAuthorizationV3
21
- is ModuleAuthorization
17
+ is Authorization
22
18
  {
23
19
 
20
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
21
+
24
22
  string public constant INSTANCE_TARGET_NAME = "Instance";
25
23
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
26
24
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
27
25
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
28
26
 
29
- string public constant INSTANCE_ROLE_NAME = "InstanceRole";
30
- string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
31
- string public constant ORACLE_OWNER_ROLE_NAME = "OracleOwnerRole";
32
- string public constant POOL_OWNER_ROLE_NAME = "PoolOwnerRole";
33
- string public constant PRODUCT_OWNER_ROLE_NAME = "ProductOwnerRole";
34
-
35
- constructor() ModuleAuthorization(INSTANCE_TARGET_NAME) {}
27
+ constructor() Authorization(INSTANCE_TARGET_NAME) {}
36
28
 
37
29
 
38
30
  function _setupRoles()
39
31
  internal
40
32
  override
41
33
  {
42
- _addGifRole(DISTRIBUTION_OWNER_ROLE(), DISTRIBUTION_OWNER_ROLE_NAME);
43
- _addGifRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME);
44
- _addGifRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME);
45
- _addGifRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME);
34
+ // empty implementation
46
35
  }
47
36
 
48
37
 
@@ -53,7 +42,7 @@ contract InstanceAuthorizationV3
53
42
  // instance target
54
43
  _addTargetWithRole(
55
44
  INSTANCE_TARGET_NAME,
56
- _getTargetRoleId(INSTANCE()),
45
+ _toTargetRoleId(INSTANCE()),
57
46
  INSTANCE_ROLE_NAME);
58
47
 
59
48
  // instance supporting targets
@@ -83,6 +72,7 @@ contract InstanceAuthorizationV3
83
72
  _setupInstanceAdminAuthorization();
84
73
  _setupInstanceStoreAuthorization();
85
74
  _setupBundleSetAuthorization();
75
+
86
76
  }
87
77
 
88
78
 
@@ -118,7 +108,7 @@ contract InstanceAuthorizationV3
118
108
  IAccess.FunctionInfo[] storage functions;
119
109
 
120
110
  // authorize instance role
121
- functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _getTargetRoleId(INSTANCE()));
111
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
122
112
  _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
123
113
 
124
114
  // authorize instance service role
@@ -12,7 +12,7 @@ import {NftId} from "../type/NftId.sol";
12
12
  import {RoleId} from "../type/RoleId.sol";
13
13
  import {SecondsLib} from "../type/Seconds.sol";
14
14
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
15
- import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
15
+ import {ADMIN_ROLE} from "../type/RoleId.sol";
16
16
  import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
17
17
 
18
18
  import {Service} from "../shared/Service.sol";
@@ -29,7 +29,6 @@ import {IStakingService} from "../staking/IStakingService.sol";
29
29
  import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
30
30
 
31
31
  import {Instance} from "./Instance.sol";
32
- import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
33
32
  import {IInstance} from "./IInstance.sol";
34
33
  import {InstanceAdmin} from "./InstanceAdmin.sol";
35
34
  import {IInstanceService} from "./IInstanceService.sol";
@@ -70,7 +69,7 @@ contract InstanceService is
70
69
  revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
71
70
  }
72
71
 
73
- VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
72
+ VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
74
73
  if (instanceVersion != getVersion().toMajorPart()) {
75
74
  revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
76
75
  }
@@ -267,6 +266,7 @@ contract InstanceService is
267
266
  function upgradeInstanceReader(NftId instanceNftId)
268
267
  external
269
268
  onlyInstanceOwner(instanceNftId)
269
+ onlyNftOfType(instanceNftId, INSTANCE())
270
270
  {
271
271
  IRegistry registry = getRegistry();
272
272
  IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
@@ -277,67 +277,6 @@ contract InstanceService is
277
277
  instance.setInstanceReader(upgradedInstanceReaderClone);
278
278
  }
279
279
 
280
-
281
- function createGifTarget(
282
- NftId instanceNftId,
283
- address targetAddress,
284
- string memory targetName,
285
- bytes4[][] memory selectors,
286
- RoleId[] memory roles
287
- )
288
- external
289
- virtual
290
- restricted()
291
- {
292
- _createGifTarget(
293
- instanceNftId,
294
- targetAddress,
295
- targetName,
296
- roles,
297
- selectors
298
- );
299
- }
300
-
301
-
302
- function initializeAuthorization(
303
- NftId instanceNftId,
304
- IInstanceLinkedComponent component
305
- )
306
- external
307
- virtual
308
- restricted()
309
- {
310
- (IInstance instance, ) = _validateInstanceAndComponent(
311
- instanceNftId,
312
- address(component));
313
-
314
- InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
315
- instanceAdmin.initializeComponentAuthorization(
316
- component,
317
- component.getAuthorization());
318
- }
319
-
320
-
321
- function createComponentTarget(
322
- NftId instanceNftId,
323
- address targetAddress,
324
- string memory targetName,
325
- bytes4[][] memory selectors,
326
- RoleId[] memory roles
327
- )
328
- external
329
- virtual
330
- restricted()
331
- {
332
- _createGifTarget(
333
- instanceNftId,
334
- targetAddress,
335
- targetName,
336
- roles,
337
- selectors
338
- );
339
- }
340
-
341
280
  /// @dev create new cloned instance admin
342
281
  /// function used to setup a new instance
343
282
  function _createInstanceAdmin()
@@ -449,13 +388,20 @@ contract InstanceService is
449
388
  revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
450
389
  }
451
390
 
452
- IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
453
- if(componentInfo.parentNftId != instanceNftId) {
454
- revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
391
+ if (registry.getNftIdForAddress(componentAddress).gtz()) {
392
+ IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
393
+
394
+ if(componentInfo.parentNftId != instanceNftId) {
395
+ revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
396
+ }
397
+
398
+ componentNftId = componentInfo.nftId;
399
+ } else {
400
+
455
401
  }
456
402
 
457
403
  instance = Instance(instanceInfo.objectAddress);
458
- componentNftId = componentInfo.nftId;
404
+
459
405
  }
460
406
 
461
407
  // From IService
@@ -14,7 +14,6 @@ interface IComponents {
14
14
 
15
15
  struct ComponentInfo {
16
16
  string name; // component name (needs to be unique per instance)
17
- NftId productNftId;
18
17
  IERC20Metadata token;
19
18
  TokenHandler tokenHandler;
20
19
  address wallet;
@@ -22,9 +21,14 @@ interface IComponents {
22
21
  }
23
22
 
24
23
  struct ProductInfo {
25
- NftId distributionNftId;
26
- NftId poolNftId;
27
24
  bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
25
+ bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
26
+ bool hasDistribution; // flag to indicate if distribution is enabled
27
+ uint8 expectedNumberOfOracles; // expected number of oracles
28
+ uint8 numberOfOracles; // actual number of oracles
29
+ NftId poolNftId; // mandatory
30
+ NftId distributionNftId; // 0..1 (optional)
31
+ NftId [] oracleNftId; // 0..n (optional)
28
32
  Fee productFee; // product fee on net premium
29
33
  Fee processingFee; // product fee on payout amounts
30
34
  Fee distributionFee; // distribution fee for sales that do not include commissions
@@ -37,7 +41,6 @@ interface IComponents {
37
41
 
38
42
  struct PoolInfo {
39
43
  Amount maxBalanceAmount; // max balance amount allowed for pool
40
- RoleId bundleOwnerRole; // the required role for bundle owners
41
44
  bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
42
45
  bool isProcessingConfirmedClaims; // custom logic for claims confirmation
43
46
  bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
@@ -42,7 +42,6 @@ contract BasicOracle is
42
42
  initialOwner,
43
43
  name,
44
44
  token,
45
- "",
46
45
  "");
47
46
  }
48
47
  }
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IService} from "../shared/IService.sol";
5
5
  import {NftId} from "../type/NftId.sol";
6
+ import {ObjectType} from "../type/ObjectType.sol";
6
7
  import {RequestId} from "../type/RequestId.sol";
7
8
  import {StateId} from "../type/StateId.sol";
8
9
  import {Timestamp} from "../type/Timestamp.sol";
@@ -17,7 +18,7 @@ interface IOracleService is IService {
17
18
  event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
18
19
 
19
20
  // create request
20
- error ErrorOracleServiceInstanceMismatch(NftId expectedInstanceNftId, NftId oracleInstanceNftId);
21
+ error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
21
22
  error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
22
23
  error ErrorOracleServiceCallbackMethodNameEmpty();
23
24
 
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
- import {COMPONENT, ORACLE} from "../type/ObjectType.sol";
5
+ import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
6
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
7
7
  import {IComponentService} from "../shared/IComponentService.sol";
8
8
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
@@ -27,15 +27,6 @@ abstract contract Oracle is
27
27
  }
28
28
 
29
29
 
30
- function register()
31
- external
32
- virtual
33
- onlyOwner()
34
- {
35
- _getOracleStorage()._componentService.registerOracle();
36
- }
37
-
38
-
39
30
  function request(
40
31
  RequestId requestId,
41
32
  NftId requesterId,
@@ -86,12 +77,11 @@ abstract contract Oracle is
86
77
 
87
78
  function _initializeOracle(
88
79
  address registry,
89
- NftId instanceNftId,
80
+ NftId productNftId,
90
81
  IAuthorization authorization,
91
82
  address initialOwner,
92
83
  string memory name,
93
84
  address token,
94
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
95
85
  bytes memory componentData // component specifidc data
96
86
  )
97
87
  internal
@@ -100,19 +90,18 @@ abstract contract Oracle is
100
90
  {
101
91
  _initializeInstanceLinkedComponent(
102
92
  registry,
103
- instanceNftId,
93
+ productNftId,
104
94
  name,
105
95
  token,
106
96
  ORACLE(),
107
97
  authorization,
108
98
  true,
109
99
  initialOwner,
110
- registryData,
111
100
  componentData);
112
101
 
113
102
  OracleStorage storage $ = _getOracleStorage();
114
- $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
115
103
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
104
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
116
105
 
117
106
  _registerInterface(type(IOracleComponent).interfaceId);
118
107
  }
@@ -11,7 +11,7 @@ import {IOracleComponent} from "./IOracleComponent.sol";
11
11
  import {IOracleService} from "./IOracleService.sol";
12
12
  import {IRegistry} from "../registry/IRegistry.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
- import {ObjectType, COMPONENT, ORACLE, INSTANCE} from "../type/ObjectType.sol";
14
+ import {ObjectType, COMPONENT, ORACLE, PRODUCT} from "../type/ObjectType.sol";
15
15
  import {RequestId} from "../type/RequestId.sol";
16
16
  import {StateId, ACTIVE, KEEP_STATE, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
17
17
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
@@ -68,10 +68,15 @@ contract OracleService is
68
68
  true); // only active
69
69
 
70
70
  {
71
- // TODO move to stronger validation, requester and oracle need to belong to same product cluster
72
- // check that requester and oracle share same instance
73
- if (componentInfo.parentNftId != oracleInfo.parentNftId) {
74
- revert ErrorOracleServiceInstanceMismatch(componentInfo.parentNftId, oracleInfo.parentNftId);
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
+ }
75
80
  }
76
81
 
77
82
  // check expiriyAt >= now
@@ -269,15 +274,16 @@ contract OracleService is
269
274
  }
270
275
 
271
276
 
272
- function _getInstanceForComponent(NftId componentNftId)
273
- internal
274
- view
275
- returns(IInstance instance)
276
- {
277
- NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
278
- address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
279
- return IInstance(instanceAddress);
280
- }
277
+ // TODO cleanup
278
+ // function _getInstanceForComponent(NftId componentNftId)
279
+ // internal
280
+ // view
281
+ // returns(IInstance instance)
282
+ // {
283
+ // NftId instanceNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
284
+ // address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
285
+ // return IInstance(instanceAddress);
286
+ // }
281
287
 
282
288
 
283
289
  function _getDomain() internal pure override returns(ObjectType) {
@@ -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";
@@ -18,10 +19,11 @@ abstract contract BasicPool is
18
19
 
19
20
  function _initializeBasicPool(
20
21
  address registry,
21
- NftId instanceNftId,
22
- IAuthorization authorization,
23
- address token,
22
+ NftId productNftId,
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
@@ -30,13 +32,12 @@ abstract contract BasicPool is
30
32
  {
31
33
  _initializePool(
32
34
  registry,
33
- instanceNftId,
35
+ productNftId,
34
36
  name,
35
37
  token,
38
+ poolInfo,
36
39
  authorization,
37
- false, // isInterceptingNftTransfers,
38
40
  initialOwner,
39
- "", // registryData
40
41
  ""); // componentData
41
42
  }
42
43
 
@@ -116,6 +117,9 @@ abstract contract BasicPool is
116
117
  }
117
118
 
118
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
119
123
  function setBundleFee(
120
124
  NftId bundleNftId,
121
125
  Fee memory fee
@@ -130,23 +134,29 @@ abstract contract BasicPool is
130
134
  }
131
135
 
132
136
 
133
- function setMaxBalanceAmount(Amount maxBalanceAmount)
134
- public
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
135
143
  virtual
136
144
  restricted()
137
- onlyOwner()
145
+ onlyBundleOwner(bundleNftId)
146
+ onlyNftOfType(bundleNftId, BUNDLE())
147
+ returns (Amount withdrawnAmount)
138
148
  {
139
- _setMaxBalanceAmount(maxBalanceAmount);
149
+ return _withdrawBundleFees(bundleNftId, amount);
140
150
  }
141
151
 
142
152
 
143
- function setBundleOwnerRole(RoleId bundleOwnerRole)
153
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
144
154
  public
145
155
  virtual
146
156
  restricted()
147
157
  onlyOwner()
148
158
  {
149
- _setBundleOwnerRole(bundleOwnerRole);
159
+ _setMaxBalanceAmount(maxBalanceAmount);
150
160
  }
151
161
 
152
162
 
@@ -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
@@ -44,7 +51,6 @@ contract BasicPoolAuthorization
44
51
  _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
45
52
 
46
53
  _authorize(functions, BasicPool.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
47
- _authorize(functions, BasicPool.setBundleOwnerRole.selector, "setBundleOwnerRole");
48
54
  _authorize(functions, BasicPool.setFees.selector, "setFees");
49
55
  _authorize(functions, BasicPool.stake.selector, "stake");
50
56
  _authorize(functions, BasicPool.unstake.selector, "unstake");
@@ -52,7 +58,11 @@ contract BasicPoolAuthorization
52
58
 
53
59
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
54
60
 
55
- _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");
56
66
  }
57
67
  }
58
68