String>) {
class StakeKit(stakeKitAuthProvider: StakeKitAuthProvider) : RequestHeader(
"X-API-KEY" to { stakeKitAuthProvider.getApiKey() },
+ "accept" to { "application/json" },
)
}
\ No newline at end of file
diff --git a/core/decompose/src/main/kotlin/com/tangem/core/decompose/di/DecomposeComponent.kt b/core/decompose/src/main/kotlin/com/tangem/core/decompose/di/DecomposeComponent.kt
index b5df451866..74fba5a48e 100644
--- a/core/decompose/src/main/kotlin/com/tangem/core/decompose/di/DecomposeComponent.kt
+++ b/core/decompose/src/main/kotlin/com/tangem/core/decompose/di/DecomposeComponent.kt
@@ -1,5 +1,6 @@
package com.tangem.core.decompose.di
+import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router
import com.tangem.core.decompose.ui.UiMessageSender
import dagger.BindsInstance
@@ -37,6 +38,14 @@ interface DecomposeComponent {
*/
fun uiMessageSender(@BindsInstance uiMessageSender: UiMessageSender): Builder
+ /**
+ * Sets the parameters container for the component.
+ *
+ * @param container The parameters container to set.
+ * @return The builder instance.
+ */
+ fun paramsContainer(@BindsInstance container: ParamsContainer): Builder
+
/**
* Builds the Decompose component.
*
diff --git a/core/decompose/src/main/kotlin/com/tangem/core/decompose/factory/ComponentFactory.kt b/core/decompose/src/main/kotlin/com/tangem/core/decompose/factory/ComponentFactory.kt
new file mode 100644
index 0000000000..20c1159324
--- /dev/null
+++ b/core/decompose/src/main/kotlin/com/tangem/core/decompose/factory/ComponentFactory.kt
@@ -0,0 +1,8 @@
+package com.tangem.core.decompose.factory
+
+import com.tangem.core.decompose.context.AppComponentContext
+
+interface ComponentFactory {
+
+ fun create(context: AppComponentContext, params: P): C
+}
\ No newline at end of file
diff --git a/core/decompose/src/main/kotlin/com/tangem/core/decompose/model/ModelEntryPoint.kt b/core/decompose/src/main/kotlin/com/tangem/core/decompose/model/ModelEntryPoint.kt
index 58cad4cf7a..286678b4c3 100644
--- a/core/decompose/src/main/kotlin/com/tangem/core/decompose/model/ModelEntryPoint.kt
+++ b/core/decompose/src/main/kotlin/com/tangem/core/decompose/model/ModelEntryPoint.kt
@@ -22,24 +22,43 @@ interface ModelsEntryPoint {
}
/**
- * Gets or creates a component's [Model].
+ * Gets or creates a component's [Model] with no parameters.
*/
-inline fun AppComponentContext.getOrCreateModel(): M {
- val modelKey = "model_${M::class.simpleName}"
+inline fun AppComponentContext.getOrCreateModel(): M = getOrCreateModel(params = null)
+/**
+ * Gets or creates a component's [Model].
+ *
+ * Be careful with objects you pass in parameters as they will be used in [Model] lifecycle.
+ * If you pass a object with different lifecycle than the [Model] then you can face memory leaks.
+ *
+ * @param params The parameters to store in the [ParamsContainer],
+
+ */
+inline fun