@etherisc/gif-next 0.0.2-888aabe-141 → 0.0.2-88fccb3-776

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