From 248996ce6f617f6006547c30be05f94cfa875b6d Mon Sep 17 00:00:00 2001 From: Parvesh Monu Date: Tue, 16 Jan 2024 19:01:07 +0530 Subject: [PATCH 1/4] Organize composer worklets (#18528) --- src/js/worklets/chat/messages.js | 92 ---------- src/js/worklets/chat/messenger/composer.js | 26 +++ .../worklets/chat/{ => messenger}/lightbox.js | 0 src/js/worklets/chat/messenger/messages.js | 14 ++ src/js/worklets/chat/messenger/navigation.js | 40 +++++ src/js/worklets/chat/messenger/placeholder.js | 15 ++ src/mocks/js_dependencies.cljs | 161 +++++++++--------- .../chat/messenger/composer/sub_view.cljs | 2 +- .../chat/messenger/lightbox/utils.cljs | 2 +- .../chat/messenger/messages/list/view.cljs | 2 +- .../messenger/messages/navigation/view.cljs | 2 +- .../chat/messenger/placeholder/view.cljs | 2 +- src/utils/worklets/chat/messages.cljs | 51 ------ .../worklets/chat/messenger/composer.cljs | 15 ++ .../chat/{ => messenger}/lightbox.cljs | 4 +- .../worklets/chat/messenger/messages.cljs | 7 + .../worklets/chat/messenger/navigation.cljs | 23 +++ .../worklets/chat/messenger/placeholder.cljs | 11 ++ 18 files changed, 242 insertions(+), 227 deletions(-) delete mode 100644 src/js/worklets/chat/messages.js create mode 100644 src/js/worklets/chat/messenger/composer.js rename src/js/worklets/chat/{ => messenger}/lightbox.js (100%) create mode 100644 src/js/worklets/chat/messenger/messages.js create mode 100644 src/js/worklets/chat/messenger/navigation.js create mode 100644 src/js/worklets/chat/messenger/placeholder.js delete mode 100644 src/utils/worklets/chat/messages.cljs create mode 100644 src/utils/worklets/chat/messenger/composer.cljs rename src/utils/worklets/chat/{ => messenger}/lightbox.cljs (66%) create mode 100644 src/utils/worklets/chat/messenger/messages.cljs create mode 100644 src/utils/worklets/chat/messenger/navigation.cljs create mode 100644 src/utils/worklets/chat/messenger/placeholder.cljs diff --git a/src/js/worklets/chat/messages.js b/src/js/worklets/chat/messages.js deleted file mode 100644 index 4babcd388504..000000000000 --- a/src/js/worklets/chat/messages.js +++ /dev/null @@ -1,92 +0,0 @@ -import { useDerivedValue, withTiming, interpolate, useAnimatedScrollHandler, runOnJS } from 'react-native-reanimated'; - -export function navigationHeaderOpacity(distanceFromListTop, isAllLoaded, isCalculationsComplete, startPosition) { - return useDerivedValue(function () { - 'worklet'; - const isCalculationsCompleteValue = isCalculationsComplete.value; - if (distanceFromListTop.value < startPosition && isAllLoaded.value) { - return isCalculationsCompleteValue ? withTiming(0) : 0; - } else { - return isCalculationsCompleteValue ? withTiming(1) : 1; - } - }); -} - -export function navigationHeaderPosition(distanceFromListTop, isAllLoaded, topBarHeight, startPosition) { - return useDerivedValue(function () { - 'worklet'; - return distanceFromListTop.value < startPosition && isAllLoaded.value ? withTiming(topBarHeight) : withTiming(0); - }); -} - -export function interpolateNavigationViewOpacity(props) { - return useDerivedValue(function () { - 'worklet'; - const { - 'all-loaded?': isAllLoaded, - 'end-position': endPosition, - 'start-position': startPosition, - 'distance-from-list-top': distanceFromListTop, - } = props; - if (isAllLoaded.value) { - return interpolate(distanceFromListTop.value, [startPosition, endPosition], [0, 1], { - extrapolateLeft: 'clamp', - extrapolateRight: 'clamp', - }); - } else { - return 1; - } - }); -} - -export function messagesListOnScroll(distanceFromListTop, chatListScrollY, callback) { - return function (event) { - 'worklet'; - const currentY = event.contentOffset.y; - const layoutHeight = event.layoutMeasurement.height; - const contentSizeY = event.contentSize.height - layoutHeight; - const newDistance = contentSizeY - currentY; - distanceFromListTop.value = newDistance; - chatListScrollY.value = currentY; - runOnJS(callback)(layoutHeight, newDistance); - }; -} - -export function placeholderOpacity(isCalculationsComplete) { - return useDerivedValue(function () { - 'worklet'; - return isCalculationsComplete.value ? 0 : 1; - }); -} - -export function placeholderZIndex(isCalculationsComplete) { - return useDerivedValue(function () { - 'worklet'; - return isCalculationsComplete.value ? 0 : 2; - }); -} - -export function scrollDownButtonOpacity(chatListScrollY, isComposerFocused, windowHeight) { - return useDerivedValue(function () { - 'worklet'; - if (isComposerFocused.value) { - return 0; - } else { - return chatListScrollY.value > windowHeight * 0.75 ? 1 : 0; - } - }); -} - -export function jumpToButtonOpacity(scrollDownButtonOpacity, isComposerFocused) { - return useDerivedValue(function () { - 'worklet'; - return withTiming(scrollDownButtonOpacity.value == 1 || isComposerFocused.value ? 0 : 1); - }); -} - -export function jumpToButtonPosition(scrollDownButtonOpacity, isComposerFocused) { - return useDerivedValue(function () { - 'worklet'; - return withTiming(scrollDownButtonOpacity.value == 1 || isComposerFocused.value ? 35 : 0); - }); -} diff --git a/src/js/worklets/chat/messenger/composer.js b/src/js/worklets/chat/messenger/composer.js new file mode 100644 index 000000000000..7600d7a1c862 --- /dev/null +++ b/src/js/worklets/chat/messenger/composer.js @@ -0,0 +1,26 @@ +import { useDerivedValue, withTiming } from 'react-native-reanimated'; + +export function scrollDownButtonOpacity(chatListScrollY, isComposerFocused, windowHeight) { + return useDerivedValue(function () { + 'worklet'; + if (isComposerFocused.value) { + return 0; + } else { + return chatListScrollY.value > windowHeight * 0.75 ? 1 : 0; + } + }); +} + +export function jumpToButtonOpacity(scrollDownButtonOpacity, isComposerFocused) { + return useDerivedValue(function () { + 'worklet'; + return withTiming(scrollDownButtonOpacity.value == 1 || isComposerFocused.value ? 0 : 1); + }); +} + +export function jumpToButtonPosition(scrollDownButtonOpacity, isComposerFocused) { + return useDerivedValue(function () { + 'worklet'; + return withTiming(scrollDownButtonOpacity.value == 1 || isComposerFocused.value ? 35 : 0); + }); +} diff --git a/src/js/worklets/chat/lightbox.js b/src/js/worklets/chat/messenger/lightbox.js similarity index 100% rename from src/js/worklets/chat/lightbox.js rename to src/js/worklets/chat/messenger/lightbox.js diff --git a/src/js/worklets/chat/messenger/messages.js b/src/js/worklets/chat/messenger/messages.js new file mode 100644 index 000000000000..5aa0cb5ed847 --- /dev/null +++ b/src/js/worklets/chat/messenger/messages.js @@ -0,0 +1,14 @@ +import { withTiming, runOnJS } from 'react-native-reanimated'; + +export function messagesListOnScroll(distanceFromListTop, chatListScrollY, callback) { + return function (event) { + 'worklet'; + const currentY = event.contentOffset.y; + const layoutHeight = event.layoutMeasurement.height; + const contentSizeY = event.contentSize.height - layoutHeight; + const newDistance = contentSizeY - currentY; + distanceFromListTop.value = newDistance; + chatListScrollY.value = currentY; + runOnJS(callback)(layoutHeight, newDistance); + }; +} diff --git a/src/js/worklets/chat/messenger/navigation.js b/src/js/worklets/chat/messenger/navigation.js new file mode 100644 index 000000000000..8df1ced52e86 --- /dev/null +++ b/src/js/worklets/chat/messenger/navigation.js @@ -0,0 +1,40 @@ +import { useDerivedValue, withTiming, interpolate } from 'react-native-reanimated'; + +export function navigationHeaderOpacity(distanceFromListTop, isAllLoaded, isCalculationsComplete, startPosition) { + return useDerivedValue(function () { + 'worklet'; + const isCalculationsCompleteValue = isCalculationsComplete.value; + if (distanceFromListTop.value < startPosition && isAllLoaded.value) { + return isCalculationsCompleteValue ? withTiming(0) : 0; + } else { + return isCalculationsCompleteValue ? withTiming(1) : 1; + } + }); +} + +export function navigationHeaderPosition(distanceFromListTop, isAllLoaded, topBarHeight, startPosition) { + return useDerivedValue(function () { + 'worklet'; + return distanceFromListTop.value < startPosition && isAllLoaded.value ? withTiming(topBarHeight) : withTiming(0); + }); +} + +export function interpolateNavigationViewOpacity(props) { + return useDerivedValue(function () { + 'worklet'; + const { + 'all-loaded?': isAllLoaded, + 'end-position': endPosition, + 'start-position': startPosition, + 'distance-from-list-top': distanceFromListTop, + } = props; + if (isAllLoaded.value) { + return interpolate(distanceFromListTop.value, [startPosition, endPosition], [0, 1], { + extrapolateLeft: 'clamp', + extrapolateRight: 'clamp', + }); + } else { + return 1; + } + }); +} diff --git a/src/js/worklets/chat/messenger/placeholder.js b/src/js/worklets/chat/messenger/placeholder.js new file mode 100644 index 000000000000..281bddcc2968 --- /dev/null +++ b/src/js/worklets/chat/messenger/placeholder.js @@ -0,0 +1,15 @@ +import { useDerivedValue } from 'react-native-reanimated'; + +export function placeholderOpacity(isCalculationsComplete) { + return useDerivedValue(function () { + 'worklet'; + return isCalculationsComplete.value ? 0 : 1; + }); +} + +export function placeholderZIndex(isCalculationsComplete) { + return useDerivedValue(function () { + 'worklet'; + return isCalculationsComplete.value ? 0 : 2; + }); +} diff --git a/src/mocks/js_dependencies.cljs b/src/mocks/js_dependencies.cljs index 27d3b41f6d4e..56d7ae397b11 100644 --- a/src/mocks/js_dependencies.cljs +++ b/src/mocks/js_dependencies.cljs @@ -377,81 +377,88 @@ (defn mock [module] (case module - "react-native-languages" react-native-languages - "react-native-background-timer" background-timer - "react-native-image-crop-picker" image-crop-picker - "react-native-gesture-handler" react-native-gesture-handler - "react-native-static-safe-area-insets" react-native-static-safe-area-insets - "react-native-config" config - "react-native-iphone-x-helper" (clj->js {:getStatusBarHeight (fn []) - :getBottomSpace (fn [])}) - "react-native-screens" (clj->js {}) - "react-native-reanimated" react-native-reanimated - "react-native-redash" react-native-redash - "react-native-fetch-polyfill" fetch - "react-native-status-keycard" status-keycard - "react-native-keychain" keychain - "react-native-touch-id" touchid - "@react-native-community/netinfo" net-info - "react-native-dialogs" dialogs - "react-native" react-native - "react-native-fs" fs - "react-native-mail" react-native-mail - "react-native-image-resizer" image-resizer - "react-native-haptic-feedback" react-native-haptic-feedback - "react-native-device-info" react-native-device-info - "react-native-push-notification" react-native-push-notification - "react-native-linear-gradient" react-native-gradien - "@react-native-community/masked-view" masked-view - "react-native-blob-util" react-native-blob-util - "react-native-navigation" react-native-navigation - "@react-native-community/push-notification-ios" push-notification-ios - "@react-native-community/blur" react-native-blur - "@react-native-camera-roll/camera-roll" react-native-camera-roll - "react-native-camera-kit" react-native-camera-kit - "react-native-permissions" react-native-permissions - "rn-emoji-keyboard" rn-emoji-keyboard - "react-native-hole-view" react-native-hole-view - "react-native-draggable-flatlist" react-native-draggable-flatlist - "react-native-webview" react-native-webview - "@react-native-community/audio-toolkit" react-native-audio-toolkit - "react-native-image-viewing" react-native-image-viewing - "react-native-share" react-native-share - "@react-native-async-storage/async-storage" async-storage - "react-native-svg" react-native-svg - "react-native-transparent-video" react-native-transparent-video - "react-native-orientation-locker" react-native-orientation-locker - "react-native-gifted-charts" react-native-gifted-charts - "../resources/data/emojis/en.json" (js/JSON.parse (slurp - "./resources/data/emojis/en.json")) - "../src/js/worklets/core.js" worklet-factory - "../src/js/worklets/shell/bottom_tabs.js" #js {} - "../src/js/worklets/shell/home_stack.js" #js {} - "../src/js/worklets/shell/floating_screen.js" #js {} - "../src/js/worklets/bottom_sheet.js" #js {} - "../src/js/worklets/record_audio.js" #js {} - "../src/js/worklets/scroll_view.js" #js {} - "../src/js/worklets/onboarding_carousel.js" #js {} - "../src/js/worklets/chat/lightbox.js" #js {} - "../src/js/worklets/chat/messages.js" #js {} - "../src/js/worklets/parallax.js" #js {} - "../src/js/worklets/identifiers_highlighting.js" #js {} - "./fleets.js" default-fleets - "../translations/ar.json" (js/JSON.parse (slurp "./translations/ar.json")) - "../translations/de.json" (js/JSON.parse (slurp "./translations/de.json")) - "../translations/en.json" (js/JSON.parse (slurp "./translations/en.json")) - "../translations/es.json" (js/JSON.parse (slurp "./translations/es.json")) - "../translations/es_419.json" (js/JSON.parse (slurp "./translations/es_419.json")) - "../translations/fil.json" (js/JSON.parse (slurp "./translations/fil.json")) - "../translations/fr.json" (js/JSON.parse (slurp "./translations/fr.json")) - "../translations/id.json" (js/JSON.parse (slurp "./translations/id.json")) - "../translations/it.json" (js/JSON.parse (slurp "./translations/it.json")) - "../translations/ko.json" (js/JSON.parse (slurp "./translations/ko.json")) - "../translations/pt_BR.json" (js/JSON.parse (slurp "./translations/pt_BR.json")) - "../translations/ru.json" (js/JSON.parse (slurp "./translations/ru.json")) - "../translations/tr.json" (js/JSON.parse (slurp "./translations/tr.json")) - "../translations/zh.json" (js/JSON.parse (slurp "./translations/zh.json")) - "../translations/zh_hant.json" (js/JSON.parse (slurp - "./translations/zh_hant.json")) - "../translations/zh_TW.json" (js/JSON.parse (slurp "./translations/zh_TW.json")) + "react-native-languages" react-native-languages + "react-native-background-timer" background-timer + "react-native-image-crop-picker" image-crop-picker + "react-native-gesture-handler" react-native-gesture-handler + "react-native-static-safe-area-insets" react-native-static-safe-area-insets + "react-native-config" config + "react-native-iphone-x-helper" (clj->js {:getStatusBarHeight (fn []) + :getBottomSpace (fn [])}) + "react-native-screens" (clj->js {}) + "react-native-reanimated" react-native-reanimated + "react-native-redash" react-native-redash + "react-native-fetch-polyfill" fetch + "react-native-status-keycard" status-keycard + "react-native-keychain" keychain + "react-native-touch-id" touchid + "@react-native-community/netinfo" net-info + "react-native-dialogs" dialogs + "react-native" react-native + "react-native-fs" fs + "react-native-mail" react-native-mail + "react-native-image-resizer" image-resizer + "react-native-haptic-feedback" react-native-haptic-feedback + "react-native-device-info" react-native-device-info + "react-native-push-notification" react-native-push-notification + "react-native-linear-gradient" react-native-gradien + "@react-native-community/masked-view" masked-view + "react-native-blob-util" react-native-blob-util + "react-native-navigation" react-native-navigation + "@react-native-community/push-notification-ios" push-notification-ios + "@react-native-community/blur" react-native-blur + "@react-native-camera-roll/camera-roll" react-native-camera-roll + "react-native-camera-kit" react-native-camera-kit + "react-native-permissions" react-native-permissions + "rn-emoji-keyboard" rn-emoji-keyboard + "react-native-hole-view" react-native-hole-view + "react-native-draggable-flatlist" react-native-draggable-flatlist + "react-native-webview" react-native-webview + "@react-native-community/audio-toolkit" react-native-audio-toolkit + "react-native-image-viewing" react-native-image-viewing + "react-native-share" react-native-share + "@react-native-async-storage/async-storage" async-storage + "react-native-svg" react-native-svg + "react-native-transparent-video" react-native-transparent-video + "react-native-orientation-locker" react-native-orientation-locker + "react-native-gifted-charts" react-native-gifted-charts + "../resources/data/emojis/en.json" (js/JSON.parse + (slurp + "./resources/data/emojis/en.json")) + "../src/js/worklets/core.js" worklet-factory + "../src/js/worklets/shell/bottom_tabs.js" #js {} + "../src/js/worklets/shell/home_stack.js" #js {} + "../src/js/worklets/shell/floating_screen.js" #js {} + "../src/js/worklets/bottom_sheet.js" #js {} + "../src/js/worklets/record_audio.js" #js {} + "../src/js/worklets/scroll_view.js" #js {} + "../src/js/worklets/onboarding_carousel.js" #js {} + "../src/js/worklets/chat/messenger/lightbox.js" #js {} + "../src/js/worklets/chat/messenger/messages.js" #js {} + "../src/js/worklets/chat/messenger/navigation.js" #js {} + "../src/js/worklets/chat/messenger/composer.js" #js {} + "../src/js/worklets/chat/messenger/placeholder.js" #js {} + "../src/js/worklets/parallax.js" #js {} + "../src/js/worklets/identifiers_highlighting.js" #js {} + "./fleets.js" default-fleets + "../translations/ar.json" (js/JSON.parse (slurp "./translations/ar.json")) + "../translations/de.json" (js/JSON.parse (slurp "./translations/de.json")) + "../translations/en.json" (js/JSON.parse (slurp "./translations/en.json")) + "../translations/es.json" (js/JSON.parse (slurp "./translations/es.json")) + "../translations/es_419.json" (js/JSON.parse (slurp + "./translations/es_419.json")) + "../translations/fil.json" (js/JSON.parse (slurp "./translations/fil.json")) + "../translations/fr.json" (js/JSON.parse (slurp "./translations/fr.json")) + "../translations/id.json" (js/JSON.parse (slurp "./translations/id.json")) + "../translations/it.json" (js/JSON.parse (slurp "./translations/it.json")) + "../translations/ko.json" (js/JSON.parse (slurp "./translations/ko.json")) + "../translations/pt_BR.json" (js/JSON.parse (slurp + "./translations/pt_BR.json")) + "../translations/ru.json" (js/JSON.parse (slurp "./translations/ru.json")) + "../translations/tr.json" (js/JSON.parse (slurp "./translations/tr.json")) + "../translations/zh.json" (js/JSON.parse (slurp "./translations/zh.json")) + "../translations/zh_hant.json" (js/JSON.parse (slurp + "./translations/zh_hant.json")) + "../translations/zh_TW.json" (js/JSON.parse (slurp + "./translations/zh_TW.json")) nil)) diff --git a/src/status_im/contexts/chat/messenger/composer/sub_view.cljs b/src/status_im/contexts/chat/messenger/composer/sub_view.cljs index f698fe42d5d8..6d2ae2491cd7 100644 --- a/src/status_im/contexts/chat/messenger/composer/sub_view.cljs +++ b/src/status_im/contexts/chat/messenger/composer/sub_view.cljs @@ -7,7 +7,7 @@ [status-im.contexts.chat.messenger.composer.style :as style] [utils.i18n :as i18n] [utils.re-frame :as rf] - [utils.worklets.chat.messages :as worklets])) + [utils.worklets.chat.messenger.composer :as worklets])) (defn bar [theme] diff --git a/src/status_im/contexts/chat/messenger/lightbox/utils.cljs b/src/status_im/contexts/chat/messenger/lightbox/utils.cljs index 7040330b5bd6..93c23eeb3613 100644 --- a/src/status_im/contexts/chat/messenger/lightbox/utils.cljs +++ b/src/status_im/contexts/chat/messenger/lightbox/utils.cljs @@ -13,7 +13,7 @@ [status-im.contexts.chat.messenger.lightbox.constants :as constants] [status-im.contexts.chat.messenger.lightbox.top-view :as top-view] [utils.re-frame :as rf] - [utils.worklets.chat.lightbox :as worklet])) + [utils.worklets.chat.messenger.lightbox :as worklet])) (defn clear-timers [timers] diff --git a/src/status_im/contexts/chat/messenger/messages/list/view.cljs b/src/status_im/contexts/chat/messenger/messages/list/view.cljs index 8f51077c0ddf..58b674322c4a 100644 --- a/src/status_im/contexts/chat/messenger/messages/list/view.cljs +++ b/src/status_im/contexts/chat/messenger/messages/list/view.cljs @@ -21,7 +21,7 @@ [status-im.contexts.shell.jump-to.constants :as jump-to.constants] [utils.i18n :as i18n] [utils.re-frame :as rf] - [utils.worklets.chat.messages :as worklets])) + [utils.worklets.chat.messenger.messages :as worklets])) (defonce ^:const loading-indicator-extra-spacing 250) (defonce ^:const loading-indicator-page-loading-height 100) diff --git a/src/status_im/contexts/chat/messenger/messages/navigation/view.cljs b/src/status_im/contexts/chat/messenger/messages/navigation/view.cljs index e4a72a2c6b69..dc4ce1828708 100644 --- a/src/status_im/contexts/chat/messenger/messages/navigation/view.cljs +++ b/src/status_im/contexts/chat/messenger/messages/navigation/view.cljs @@ -15,7 +15,7 @@ [status-im.contexts.chat.messenger.messages.pin.banner.view :as pin.banner] [utils.i18n :as i18n] [utils.re-frame :as rf] - [utils.worklets.chat.messages :as worklets])) + [utils.worklets.chat.messenger.navigation :as worklets])) (defn f-header-content-container [{:keys [chat distance-from-list-top all-loaded? calculations-complete?]}] diff --git a/src/status_im/contexts/chat/messenger/placeholder/view.cljs b/src/status_im/contexts/chat/messenger/placeholder/view.cljs index 48ea4a38c683..9a6c6420b387 100644 --- a/src/status_im/contexts/chat/messenger/placeholder/view.cljs +++ b/src/status_im/contexts/chat/messenger/placeholder/view.cljs @@ -5,7 +5,7 @@ [react-native.reanimated :as reanimated] [react-native.safe-area :as safe-area] [status-im.contexts.chat.messenger.placeholder.style :as style] - [utils.worklets.chat.messages :as worklets])) + [utils.worklets.chat.messenger.placeholder :as worklets])) (defn- loading-skeleton [] diff --git a/src/utils/worklets/chat/messages.cljs b/src/utils/worklets/chat/messages.cljs deleted file mode 100644 index 88a6291cd099..000000000000 --- a/src/utils/worklets/chat/messages.cljs +++ /dev/null @@ -1,51 +0,0 @@ -(ns utils.worklets.chat.messages) - -(def ^:private messages-worklets (js/require "../src/js/worklets/chat/messages.js")) - -;;;; Navigtion -(defn navigation-header-opacity - [distance-from-list-top all-loaded? calculations-complete? start-position] - (.navigationHeaderOpacity ^js messages-worklets - distance-from-list-top - all-loaded? - calculations-complete? - start-position)) - -(defn navigation-header-position - [distance-from-list-top all-loaded? top-bar-height start-position] - (.navigationHeaderPosition ^js messages-worklets - distance-from-list-top - all-loaded? - top-bar-height - start-position)) - -(defn interpolate-navigation-view-opacity - [props] - (.interpolateNavigationViewOpacity ^js messages-worklets (clj->js props))) - -;;;; Messages List -(defn messages-list-on-scroll - [distance-from-list-top chat-list-scroll-y callback] - (.messagesListOnScroll ^js messages-worklets distance-from-list-top chat-list-scroll-y callback)) - -;;;; Placeholder -(defn placeholder-opacity - [calculations-complete?] - (.placeholderOpacity ^js messages-worklets calculations-complete?)) - -(defn placeholder-z-index - [calculations-complete?] - (.placeholderZIndex ^js messages-worklets calculations-complete?)) - -;;;; Common -(defn scroll-down-button-opacity - [chat-list-scroll-y composer-focused? window-height] - (.scrollDownButtonOpacity ^js messages-worklets chat-list-scroll-y composer-focused? window-height)) - -(defn jump-to-button-opacity - [scroll-down-button-opacity-sv composer-focused?] - (.jumpToButtonOpacity ^js messages-worklets scroll-down-button-opacity-sv composer-focused?)) - -(defn jump-to-button-position - [scroll-down-button-opacity-sv composer-focused?] - (.jumpToButtonPosition ^js messages-worklets scroll-down-button-opacity-sv composer-focused?)) diff --git a/src/utils/worklets/chat/messenger/composer.cljs b/src/utils/worklets/chat/messenger/composer.cljs new file mode 100644 index 000000000000..91b1282ed805 --- /dev/null +++ b/src/utils/worklets/chat/messenger/composer.cljs @@ -0,0 +1,15 @@ +(ns utils.worklets.chat.messenger.composer) + +(def ^:private worklets (js/require "../src/js/worklets/chat/messenger/composer.js")) + +(defn scroll-down-button-opacity + [chat-list-scroll-y composer-focused? window-height] + (.scrollDownButtonOpacity ^js worklets chat-list-scroll-y composer-focused? window-height)) + +(defn jump-to-button-opacity + [scroll-down-button-opacity-sv composer-focused?] + (.jumpToButtonOpacity ^js worklets scroll-down-button-opacity-sv composer-focused?)) + +(defn jump-to-button-position + [scroll-down-button-opacity-sv composer-focused?] + (.jumpToButtonPosition ^js worklets scroll-down-button-opacity-sv composer-focused?)) diff --git a/src/utils/worklets/chat/lightbox.cljs b/src/utils/worklets/chat/messenger/lightbox.cljs similarity index 66% rename from src/utils/worklets/chat/lightbox.cljs rename to src/utils/worklets/chat/messenger/lightbox.cljs index be20d0d59a4f..b3c4a1f7557d 100644 --- a/src/utils/worklets/chat/lightbox.cljs +++ b/src/utils/worklets/chat/messenger/lightbox.cljs @@ -1,6 +1,6 @@ -(ns utils.worklets.chat.lightbox) +(ns utils.worklets.chat.messenger.lightbox) -(def ^:private layout-worklets (js/require "../src/js/worklets/chat/lightbox.js")) +(def ^:private layout-worklets (js/require "../src/js/worklets/chat/messenger/lightbox.js")) (defn info-layout [input top?] diff --git a/src/utils/worklets/chat/messenger/messages.cljs b/src/utils/worklets/chat/messenger/messages.cljs new file mode 100644 index 000000000000..a9b26b152871 --- /dev/null +++ b/src/utils/worklets/chat/messenger/messages.cljs @@ -0,0 +1,7 @@ +(ns utils.worklets.chat.messenger.messages) + +(def ^:private worklets (js/require "../src/js/worklets/chat/messenger/messages.js")) + +(defn messages-list-on-scroll + [distance-from-list-top chat-list-scroll-y callback] + (.messagesListOnScroll ^js worklets distance-from-list-top chat-list-scroll-y callback)) diff --git a/src/utils/worklets/chat/messenger/navigation.cljs b/src/utils/worklets/chat/messenger/navigation.cljs new file mode 100644 index 000000000000..d78b5014ee55 --- /dev/null +++ b/src/utils/worklets/chat/messenger/navigation.cljs @@ -0,0 +1,23 @@ +(ns utils.worklets.chat.messenger.navigation) + +(def ^:private worklets (js/require "../src/js/worklets/chat/messenger/navigation.js")) + +(defn navigation-header-opacity + [distance-from-list-top all-loaded? calculations-complete? start-position] + (.navigationHeaderOpacity ^js worklets + distance-from-list-top + all-loaded? + calculations-complete? + start-position)) + +(defn navigation-header-position + [distance-from-list-top all-loaded? top-bar-height start-position] + (.navigationHeaderPosition ^js worklets + distance-from-list-top + all-loaded? + top-bar-height + start-position)) + +(defn interpolate-navigation-view-opacity + [props] + (.interpolateNavigationViewOpacity ^js worklets (clj->js props))) diff --git a/src/utils/worklets/chat/messenger/placeholder.cljs b/src/utils/worklets/chat/messenger/placeholder.cljs new file mode 100644 index 000000000000..0640be76fba7 --- /dev/null +++ b/src/utils/worklets/chat/messenger/placeholder.cljs @@ -0,0 +1,11 @@ +(ns utils.worklets.chat.messenger.placeholder) + +(def ^:private worklets (js/require "../src/js/worklets/chat/messenger/placeholder.js")) + +(defn placeholder-opacity + [calculations-complete?] + (.placeholderOpacity ^js worklets calculations-complete?)) + +(defn placeholder-z-index + [calculations-complete?] + (.placeholderZIndex ^js worklets calculations-complete?)) From ac07109e86dc4726659e8392d22b661fc48815a4 Mon Sep 17 00:00:00 2001 From: Brian Sztamfater Date: Tue, 16 Jan 2024 11:48:46 -0300 Subject: [PATCH 2/4] feat: prepare events for sending collectible (#18473) Signed-off-by: Brian Sztamfater --- .../components/wallet/summary_info/view.cljs | 8 +- src/status_im/constants.cljs | 3 + .../preview/quo/wallet/summary_info.cljs | 6 +- .../wallet/common/collectibles_tab/view.cljs | 4 +- src/status_im/contexts/wallet/events.cljs | 8 +- .../contexts/wallet/send/events.cljs | 135 +++++++--- .../wallet/send/select_address/tabs/view.cljs | 7 +- .../wallet/send/select_address/view.cljs | 24 +- .../wallet/send/select_asset/view.cljs | 7 +- .../send/transaction_confirmation/style.cljs | 4 +- .../send/transaction_confirmation/view.cljs | 251 ++++++++++-------- .../send/transaction_progress/view.cljs | 4 + src/status_im/subs/wallet/send.cljs | 5 + 13 files changed, 275 insertions(+), 191 deletions(-) diff --git a/src/quo/components/wallet/summary_info/view.cljs b/src/quo/components/wallet/summary_info/view.cljs index 654ba65db39d..d40463cac6a3 100644 --- a/src/quo/components/wallet/summary_info/view.cljs +++ b/src/quo/components/wallet/summary_info/view.cljs @@ -33,22 +33,22 @@ [rn/view {:style style/networks-container :accessibility-label :networks} - (when (pos? ethereum) + (when (and ethereum (pos? (:amount ethereum))) [network-amount {:network :ethereum - :amount (str ethereum " ETH") + :amount (str (:amount ethereum) " " (or (:token-symbol ethereum) "ETH")) :divider? (or show-arbitrum? show-optimism?) :theme theme}]) (when show-optimism? [network-amount {:network :optimism - :amount (str optimism " OPT") + :amount (str (:amount optimism) " " (or (:token-symbol optimism) "OPT")) :divider? show-arbitrum? :theme theme}]) (when show-arbitrum? [network-amount {:network :arbitrum - :amount (str arbitrum " ARB") + :amount (str (:amount arbitrum) " " (or (:token-symbol arbitrum) "ARB")) :theme theme}])])) (defn- view-internal diff --git a/src/status_im/constants.cljs b/src/status_im/constants.cljs index db6630a45106..e67c5512d87c 100644 --- a/src/status_im/constants.cljs +++ b/src/status_im/constants.cljs @@ -432,3 +432,6 @@ (def ^:const send-type-stickers-buy 4) (def ^:const send-type-bridge 5) (def ^:const send-type-erc-721-transfer 6) + +(def ^:const bridge-name-transfer "Transfer") +(def ^:const bridge-name-erc-721-transfer "ERC721Transfer") diff --git a/src/status_im/contexts/preview/quo/wallet/summary_info.cljs b/src/status_im/contexts/preview/quo/wallet/summary_info.cljs index 7fbf8e827a1b..231245b3c705 100644 --- a/src/status_im/contexts/preview/quo/wallet/summary_info.cljs +++ b/src/status_im/contexts/preview/quo/wallet/summary_info.cljs @@ -20,9 +20,9 @@ [] (let [state (reagent/atom {:type :status-account :networks? true - :values {:ethereum 150 - :optimism 50 - :arbitrum 25}}) + :values {:ethereum {:amount 150} + :optimism {:amount 50} + :arbitrum {:amount 25}}}) status-account-props {:customization-color :purple :size 32 :emoji "🍑" diff --git a/src/status_im/contexts/wallet/common/collectibles_tab/view.cljs b/src/status_im/contexts/wallet/common/collectibles_tab/view.cljs index f80eabec505a..8a3f5b6acb5e 100644 --- a/src/status_im/contexts/wallet/common/collectibles_tab/view.cljs +++ b/src/status_im/contexts/wallet/common/collectibles_tab/view.cljs @@ -30,9 +30,9 @@ :style {:flex 1} :content-container-style {:align-items :center} :num-columns 2 - :render-fn (fn [{:keys [preview-url id]}] + :render-fn (fn [{:keys [preview-url] :as collectible}] [quo/collectible {:images [preview-url] - :on-press #(on-collectible-press id)}])}]))) + :on-press #(on-collectible-press collectible)}])}]))) (def view (quo.theme/with-theme view-internal)) diff --git a/src/status_im/contexts/wallet/events.cljs b/src/status_im/contexts/wallet/events.cljs index 101857a13f04..a0c37ffc4b8c 100644 --- a/src/status_im/contexts/wallet/events.cljs +++ b/src/status_im/contexts/wallet/events.cljs @@ -129,9 +129,7 @@ (rf/defn clean-scanned-address {:events [:wallet/clean-scanned-address]} [{:keys [db]}] - {:db (-> db - (dissoc :wallet/scanned-address :wallet/send-address) - (update-in [:wallet :ui :send] dissoc :to-address))}) + {:db (dissoc db :wallet/scanned-address :wallet/send-address)}) (rf/reg-event-fx :wallet/create-derived-addresses (fn [{:keys [db]} [{:keys [sha3-pwd path]} on-success]] @@ -301,10 +299,6 @@ (background-timer/clear-timeout current-timeout) {:db (assoc db :wallet/local-suggestions [] :wallet/valid-ens-or-address? false)}))) -(rf/reg-event-fx :wallet/clean-account-selection - (fn [{:keys [db]}] - {:db (update-in db [:wallet :ui :send] dissoc :send-account-address)})) - (rf/reg-event-fx :wallet/get-address-details-success (fn [{:keys [db]} [{:keys [hasActivity]}]] {:db (assoc-in db diff --git a/src/status_im/contexts/wallet/send/events.cljs b/src/status_im/contexts/wallet/send/events.cljs index 95a43061d21b..91f78b7ae85c 100644 --- a/src/status_im/contexts/wallet/send/events.cljs +++ b/src/status_im/contexts/wallet/send/events.cljs @@ -40,23 +40,23 @@ (update-in [:wallet :ui :send] dissoc :route) (update-in [:wallet :ui :send] dissoc :loading-suggested-routes?))})) - -(rf/reg-event-fx :wallet/select-send-account-address - (fn [{:keys [db]} [{:keys [address stack-id]}]] - {:db (-> db - (assoc-in [:wallet :ui :send :send-account-address] address) - (update-in [:wallet :ui :send] dissoc :to-address)) - :fx [[:navigate-to-within-stack [:wallet-select-asset stack-id]]]})) +(rf/reg-event-fx :wallet/clean-send-address + (fn [{:keys [db]}] + {:db (update-in db [:wallet :ui :send] dissoc :recipient :to-address)})) (rf/reg-event-fx :wallet/select-send-address - (fn [{:keys [db]} [{:keys [address token stack-id]}]] - {:db (assoc-in db [:wallet :ui :send :to-address] address) + (fn [{:keys [db]} [{:keys [address token recipient stack-id]}]] + {:db (-> db + (assoc-in [:wallet :ui :send :recipient] (or recipient address)) + (assoc-in [:wallet :ui :send :to-address] address)) :fx [[:navigate-to-within-stack (if token [:wallet-send-input-amount stack-id] [:wallet-select-asset stack-id])]]})) (rf/reg-event-fx :wallet/send-select-token (fn [{:keys [db]} [{:keys [token stack-id]}]] - {:db (assoc-in db [:wallet :ui :send :token] token) + {:db (-> db + (update-in [:wallet :ui :send] dissoc :collectible) + (assoc-in [:wallet :ui :send :token] token)) :fx [[:navigate-to-within-stack [:wallet-send-input-amount stack-id]]]})) (rf/reg-event-fx :wallet/send-select-token-drawer @@ -67,6 +67,15 @@ (fn [{:keys [db]}] {:db (assoc-in db [:wallet :ui :send :token] nil)})) +(rf/reg-event-fx :wallet/send-select-collectible + (fn [{:keys [db]} [{:keys [collectible stack-id]}]] + {:db (-> db + (update-in [:wallet :ui :send] dissoc :token) + (assoc-in [:wallet :ui :send :collectible] collectible) + (assoc-in [:wallet :ui :send :amount] 1)) + :fx [[:dispatch [:wallet/get-suggested-routes 1]] + [:navigate-to-within-stack [:wallet-transaction-confirmation stack-id]]]})) + (rf/reg-event-fx :wallet/send-select-amount (fn [{:keys [db]} [{:keys [amount stack-id]}]] {:db (assoc-in db [:wallet :ui :send :amount] amount) @@ -76,18 +85,25 @@ (fn [{:keys [db now]} [amount]] (let [wallet-address (get-in db [:wallet :current-viewing-account-address]) token (get-in db [:wallet :ui :send :token]) - account-address (get-in db [:wallet :ui :send :send-account-address]) - to-address (or account-address (get-in db [:wallet :ui :send :to-address])) - token-decimal (:decimals token) - token-id (:symbol token) - network-preferences [] + collectible (get-in db [:wallet :ui :send :collectible]) + to-address (get-in db [:wallet :ui :send :to-address]) + token-decimal (when token (:decimals token)) + token-id (if token + (:symbol token) + (str (get-in collectible [:id :contract-id :address]) + ":" + (get-in collectible [:id :token-id]))) + network-preferences (if token [] [(get-in collectible [:id :contract-id :chain-id])]) gas-rates constants/gas-rate-medium - amount-in (send-utils/amount-in-hex amount token-decimal) + amount-in (send-utils/amount-in-hex amount (if token token-decimal 0)) from-address wallet-address disabled-from-chain-ids [] disabled-to-chain-ids [] from-locked-amount {} - request-params [constants/send-type-transfer + transaction-type (if token + constants/send-type-transfer + constants/send-type-erc-721-transfer) + request-params [transaction-type from-address to-address amount-in @@ -124,21 +140,46 @@ :fx [[:dispatch [:navigate-to :wallet-transaction-progress]]]}))) (defn- transaction-bridge - [{:keys [from-address to-address route]}] - (let [{:keys [from bridge-name amount-out gas-amount gas-fees]} route - {:keys [gas-price max-fee-per-gas-medium max-priority-fee-per-gas]} gas-fees] - [{:BridgeName bridge-name - :ChainID (:chain-id from) - :TransferTx {:From from-address - :To to-address - :Gas (money/to-hex gas-amount) - :GasPrice (money/to-hex (money/->wei :gwei gas-price)) - :Value amount-out - :Nonce nil - :MaxFeePerGas (money/to-hex (money/->wei :gwei max-fee-per-gas-medium)) - :MaxPriorityFeePerGas (money/to-hex (money/->wei :gwei max-priority-fee-per-gas)) - :Input "" - :Data "0x"}}])) + [{:keys [from-address to-address token-id token-address route]}] + (let [{:keys [from bridge-name amount-out gas-amount + gas-fees]} route + eip-1559-enabled? (:eip-1559-enabled gas-fees) + {:keys [gas-price max-fee-per-gas-medium + max-priority-fee-per-gas]} gas-fees + transfer-tx (cond-> {:From from-address + :To (or token-address to-address) + :Gas (money/to-hex gas-amount) + :Value amount-out + :Nonce nil + :Input "" + :Data "0x"} + eip-1559-enabled? (assoc :TxType "0x02" + :MaxFeePerGas + (money/to-hex + (money/->wei + :gwei + max-fee-per-gas-medium)) + :MaxPriorityFeePerGas + (money/to-hex + (money/->wei + :gwei + max-priority-fee-per-gas))) + (not eip-1559-enabled?) (assoc :TxType "0x00" + :GasPrice (money/to-hex + (money/->wei + :gwei + gas-price))))] + [(cond-> {:BridgeName bridge-name + :ChainID (:chain-id from)} + + (= bridge-name constants/bridge-name-erc-721-transfer) + (assoc :ERC721TransferTx + (assoc transfer-tx + :Recipient to-address + :TokenID token-id)) + + (= bridge-name constants/bridge-name-transfer) + (assoc :TransferTx transfer-tx))])) (defn- multi-transaction-command [{:keys [from-address to-address from-asset to-asset amount-out transfer-type] @@ -154,17 +195,27 @@ (fn [{:keys [db]} [sha3-pwd]] (let [route (get-in db [:wallet :ui :send :route]) from-address (get-in db [:wallet :current-viewing-account-address]) - to-address (get-in db [:wallet :ui :send :to-address]) token (get-in db [:wallet :ui :send :token]) - token-id (:symbol token) - request-params [(multi-transaction-command {:from-address from-address - :to-address to-address - :from-asset token-id - :to-asset token-id - :amount-out (:amount-out route)}) - (transaction-bridge {:to-address to-address - :from-address from-address - :route route}) + collectible (get-in db [:wallet :ui :send :collectible]) + token-address (when collectible + (get-in collectible + [:id :contract-id :address])) + to-address (get-in db [:wallet :ui :send :to-address]) + token-id (if token + (:symbol token) + (get-in collectible [:id :token-id])) + request-params [(multi-transaction-command + {:from-address from-address + :to-address to-address + :from-asset token-id + :to-asset token-id + :amount-out (:amount-out route)}) + (transaction-bridge {:to-address to-address + :from-address from-address + :route route + :token-address token-address + :token-id (when collectible + (money/to-hex (js/parseInt token-id)))}) sha3-pwd]] {:json-rpc/call [{:method "wallet_createMultiTransaction" :params request-params diff --git a/src/status_im/contexts/wallet/send/select_address/tabs/view.cljs b/src/status_im/contexts/wallet/send/select_address/tabs/view.cljs index c8251eeb0b98..c517e3ee4633 100644 --- a/src/status_im/contexts/wallet/send/select_address/tabs/view.cljs +++ b/src/status_im/contexts/wallet/send/select_address/tabs/view.cljs @@ -12,9 +12,10 @@ [{:keys [color address] :as account}] [quo/account-item {:account-props (assoc account :customization-color color) - :on-press #(rf/dispatch [:wallet/select-send-account-address - {:address address - :stack-id :wallet-select-address}])}]) + :on-press #(rf/dispatch [:wallet/select-send-address + {:address address + :recipient account + :stack-id :wallet-select-address}])}]) (defn my-accounts [theme] diff --git a/src/status_im/contexts/wallet/send/select_address/view.cljs b/src/status_im/contexts/wallet/send/select_address/view.cljs index 70acce1eb324..6a9e74fb4a13 100644 --- a/src/status_im/contexts/wallet/send/select_address/view.cljs +++ b/src/status_im/contexts/wallet/send/select_address/view.cljs @@ -24,11 +24,13 @@ (defn- address-input [input-value input-focused?] (fn [] - (let [scanned-address (rf/sub [:wallet/scanned-address]) - send-address (rf/sub [:wallet/wallet-send-to-address]) - valid-ens-or-address? (rf/sub [:wallet/valid-ens-or-address?]) - chain-id (rf/sub [:chain-id]) - contacts (rf/sub [:contacts/active])] + (let [scanned-address (rf/sub [:wallet/scanned-address]) + send-address (rf/sub [:wallet/wallet-send-to-address]) + recipient (rf/sub [:wallet/wallet-send-recipient]) + recipient-plain-address? (= send-address recipient) + valid-ens-or-address? (rf/sub [:wallet/valid-ens-or-address?]) + chain-id (rf/sub [:chain-id]) + contacts (rf/sub [:contacts/active])] [quo/address-input {:on-focus #(reset! input-focused? true) :on-blur #(reset! input-focused? false) @@ -37,7 +39,7 @@ (rf/dispatch [:open-modal :scan-address])) :ens-regex constants/regx-ens :address-regex constants/regx-address - :scanned-value (or send-address scanned-address) + :scanned-value (or (when recipient-plain-address? send-address) scanned-address) :on-detect-address #(debounce/debounce-and-dispatch [:wallet/validate-address %] 300) @@ -80,8 +82,9 @@ (let [address (if accounts (:address (first accounts)) address)] (when-not ens (rf/dispatch [:wallet/select-send-address - {:address address - :stack-id :wallet-select-address}])))) + {:address address + :recipient local-suggestion + :stack-id :wallet-select-address}])))) :active-state? false}] (cond (= type types/saved-address) @@ -117,8 +120,8 @@ (let [on-close (fn [] (rf/dispatch [:wallet/clean-scanned-address]) (rf/dispatch [:wallet/clean-local-suggestions]) - (rf/dispatch [:wallet/clean-account-selection]) (rf/dispatch [:wallet/clean-selected-token]) + (rf/dispatch [:wallet/clean-send-address]) (rf/dispatch [:wallet/select-address-tab nil]) (rf/dispatch [:navigate-back])) on-change-tab #(rf/dispatch [:wallet/select-address-tab %]) @@ -131,8 +134,7 @@ (rn/use-effect (fn [] (fn [] (rf/dispatch [:wallet/clean-scanned-address]) - (rf/dispatch [:wallet/clean-local-suggestions]) - (rf/dispatch [:wallet/clean-account-selection])))) + (rf/dispatch [:wallet/clean-local-suggestions])))) [floating-button-page/view {:header [account-switcher/view {:on-press on-close diff --git a/src/status_im/contexts/wallet/send/select_asset/view.cljs b/src/status_im/contexts/wallet/send/select_asset/view.cljs index 89a360b98d32..6c129c3dd8ed 100644 --- a/src/status_im/contexts/wallet/send/select_asset/view.cljs +++ b/src/status_im/contexts/wallet/send/select_asset/view.cljs @@ -67,10 +67,9 @@ [collectibles-tab/view {:collectibles collectibles :filtered? search-performed? - :on-collectible-press (fn [collectible-id] - (js/alert (str "Collectible to send: \n" - collectible-id - "\nNavigation not implemented yet")))}])) + :on-collectible-press #(rf/dispatch [:wallet/send-select-collectible + {:collectible % + :stack-id :wallet-select-asset}])}])) (defn- tab-view [search-text selected-tab on-change-text] diff --git a/src/status_im/contexts/wallet/send/transaction_confirmation/style.cljs b/src/status_im/contexts/wallet/send/transaction_confirmation/style.cljs index 3e6aac09ed53..8d0c063d2fa9 100644 --- a/src/status_im/contexts/wallet/send/transaction_confirmation/style.cljs +++ b/src/status_im/contexts/wallet/send/transaction_confirmation/style.cljs @@ -14,9 +14,9 @@ {:margin-right 4}) (defn details-container - [theme] + [route? theme] {:flex-direction :row - :justify-content :space-between + :justify-content (if route? :space-between :center) :height 52 :padding-horizontal 12 :padding-top 7 diff --git a/src/status_im/contexts/wallet/send/transaction_confirmation/view.cljs b/src/status_im/contexts/wallet/send/transaction_confirmation/view.cljs index fd7f852486e2..884c19d66463 100644 --- a/src/status_im/contexts/wallet/send/transaction_confirmation/view.cljs +++ b/src/status_im/contexts/wallet/send/transaction_confirmation/view.cljs @@ -1,5 +1,6 @@ (ns status-im.contexts.wallet.send.transaction-confirmation.view (:require + [clojure.string :as string] [legacy.status-im.utils.utils :as utils] [quo.core :as quo] [quo.theme :as quo.theme] @@ -9,10 +10,11 @@ [status-im.common.standard-authentication.core :as standard-auth] [status-im.contexts.wallet.send.transaction-confirmation.style :as style] [utils.i18n :as i18n] - [utils.re-frame :as rf])) + [utils.re-frame :as rf] + [utils.security.core :as security])) (defn- transaction-title - [{:keys [token-symbol amount account to-address]}] + [{:keys [token-symbol amount account to-address image-url collectible?]}] [rn/view {:style style/content-container} [rn/view {:style {:flex-direction :row}} [quo/text @@ -22,10 +24,10 @@ :accessibility-label :send-label} (i18n/label :t/send)] [quo/summary-tag - {:token token-symbol + {:token (if collectible? "" token-symbol) :label (str amount " " token-symbol) - :type :token - :image-source :eth}]] + :type (if collectible? :collectible :token) + :image-source (if collectible? image-url :eth)}]] [rn/view {:style {:flex-direction :row :margin-top 4}} @@ -54,7 +56,7 @@ :label (utils/get-shortened-address to-address)}]]]) (defn- user-summary - [{:keys [amount account-props theme label accessibility-label summary-type]}] + [{:keys [amount token-symbol account-props theme label accessibility-label summary-type]}] [rn/view {:style {:padding-horizontal 20 :padding-bottom 16}} @@ -67,12 +69,14 @@ [quo/summary-info {:type summary-type :networks? true - :values {:ethereum amount} + :values {:ethereum {:amount amount + :token-symbol token-symbol}} :account-props account-props}]]) (defn- transaction-details - [{:keys [estimated-time-min max-fees token amount to-address theme]}] - (let [currency-symbol (rf/sub [:profile/currency-symbol])] + [{:keys [estimated-time-min max-fees token amount to-address route theme]}] + (let [currency-symbol (rf/sub [:profile/currency-symbol]) + route-loaded? (some? route)] [rn/view {:style style/details-title-container} [quo/text @@ -82,114 +86,135 @@ :accessibility-label :summary-from-label} (i18n/label :t/details)] [rn/view - {:style (style/details-container theme)} - [quo/data-item - {:container-style style/detail-item - :blur? false - :description :default - :icon-right? false - :card? false - :label :none - :status :default - :size :small - :title (i18n/label :t/est-time) - :subtitle (i18n/label :t/time-in-mins {:minutes (str estimated-time-min)})}] - [quo/data-item - {:container-style style/detail-item - :blur? false - :description :default - :icon-right? false - :card? false - :label :none - :status :default - :size :small - :title (i18n/label :t/max-fees) - :subtitle (i18n/label :t/amount-with-currency-symbol - {:amount (str max-fees) - :symbol currency-symbol})}] - [quo/data-item - {:container-style style/detail-item - :blur? false - :description :default - :icon-right? false - :card? false - :label :none - :status :default - :size :small - :title (i18n/label :t/user-gets {:name (utils/get-shortened-address to-address)}) - :subtitle (str amount " " (:symbol token))}]]])) + {:style (style/details-container route-loaded? theme)} + (if route-loaded? + [:<> + [quo/data-item + {:container-style style/detail-item + :blur? false + :description :default + :icon-right? false + :card? false + :label :none + :status :default + :size :small + :title (i18n/label :t/est-time) + :subtitle (i18n/label :t/time-in-mins {:minutes (str estimated-time-min)})}] + [quo/data-item + {:container-style style/detail-item + :blur? false + :description :default + :icon-right? false + :card? false + :label :none + :status :default + :size :small + :title (i18n/label :t/max-fees) + :subtitle (i18n/label :t/amount-with-currency-symbol + {:amount (str max-fees) + :symbol currency-symbol})}] + [quo/data-item + {:container-style style/detail-item + :blur? false + :description :default + :icon-right? false + :card? false + :label :none + :status :default + :size :small + :title (i18n/label :t/user-gets {:name (utils/get-shortened-address to-address)}) + :subtitle (str amount " " (:symbol token))}]] + [rn/activity-indicator {:style {:align-self :center}}])]])) (defn- view-internal [_] - (let [on-close #(rf/dispatch [:navigate-back-within-stack :wallet-select-asset]) - send-transaction-data (rf/sub [:wallet/wallet-send]) - token (:token send-transaction-data) - token-symbol (:symbol token) - amount (:amount send-transaction-data) - route (:route send-transaction-data) - estimated-time-min (:estimated-time route) - max-fees "-" - to-address (:to-address send-transaction-data) - account (rf/sub [:wallet/current-viewing-account]) - account-color (:color account) - from-account-props {:customization-color account-color - :size 32 - :emoji (:emoji account) - :type :default - :name (:name account) - :address (utils/get-shortened-address (:address account))} - user-props {:full-name to-address - :address (utils/get-shortened-address to-address)}] - (prn route) + (let [on-close (fn [] + (rf/dispatch [:wallet/clean-suggested-routes]) + (rf/dispatch [:navigate-back-within-stack :wallet-select-asset]))] (fn [{:keys [theme]}] - [rn/view {:style {:flex 1}} - [floating-button-page/view - {:header [quo/page-nav - {:icon-name :i/arrow-left - :on-press on-close - :margin-top (safe-area/get-top) - :background :blur - :accessibility-label :top-bar - :right-side [{:icon-name :i/advanced - :on-press #(js/alert - "to be implemented") - :accessibility-label :advanced-options}]}] - :footer [standard-auth/slide-button - {:size :size-48 - :track-text (i18n/label :t/slide-to-send) - :container-style {:z-index 2} - :customization-color account-color - :on-auth-success #(rf/dispatch [:wallet/send-transaction %]) - :auth-button-label (i18n/label :t/confirm)}] - :gradient-cover? true - :customization-color (:color account)} - [rn/view - [transaction-title - {:token-symbol token-symbol - :amount amount - :account account - :to-address to-address}] - [user-summary - {:amount amount - :summary-type :status-account - :accessibility-label :summary-from-label - :label (i18n/label :t/from-capitalized) - :account-props from-account-props - :theme theme}] - [user-summary - {:amount amount - :summary-type :account - :accessibility-label :summary-to-label - :label (i18n/label :t/to-capitalized) - :account-props user-props - :theme theme}] - [transaction-details - {:estimated-time-min estimated-time-min - :max-fees max-fees - :token token - :amount amount - :to-address to-address - :theme theme}]]]]))) + (let [send-transaction-data (rf/sub [:wallet/wallet-send]) + token (:token send-transaction-data) + collectible (:collectible send-transaction-data) + collection-data (:collection-data collectible) + collectible-data (:collectible-data collectible) + collectible-id (get-in collectible [:id :token-id]) + token-symbol (if collectible + (first (remove string/blank? + [(:name collectible-data) + (str (:name collection-data) " #" collectible-id)])) + (:symbol token)) + image-url (when collectible (:image-url collectible-data)) + amount (:amount send-transaction-data) + route (:route send-transaction-data) + estimated-time-min (:estimated-time route) + max-fees "-" + to-address (:to-address send-transaction-data) + account (rf/sub [:wallet/current-viewing-account]) + account-color (:color account) + from-account-props {:customization-color account-color + :size 32 + :emoji (:emoji account) + :type :default + :name (:name account) + :address (utils/get-shortened-address (:address account))} + user-props {:full-name to-address + :address (utils/get-shortened-address to-address)}] + [rn/view {:style {:flex 1}} + [floating-button-page/view + {:header [quo/page-nav + {:icon-name :i/arrow-left + :on-press on-close + :margin-top (safe-area/get-top) + :background :blur + :accessibility-label :top-bar + :right-side [{:icon-name :i/advanced + :on-press #(js/alert + "to be implemented") + :accessibility-label :advanced-options}]}] + :footer (if route + [standard-auth/slide-button + {:size :size-48 + :track-text (i18n/label :t/slide-to-send) + :container-style {:z-index 2} + :customization-color account-color + :on-auth-success #(rf/dispatch [:wallet/send-transaction + (security/safe-unmask-data %)]) + :auth-button-label (i18n/label :t/confirm)}] + [rn/activity-indicator]) + :gradient-cover? true + :customization-color (:color account)} + [rn/view + [transaction-title + {:token-symbol token-symbol + :amount amount + :account account + :to-address to-address + :image-url image-url + :collectible? (some? collectible)}] + [user-summary + {:amount amount + :token-symbol token-symbol + :summary-type :status-account + :accessibility-label :summary-from-label + :label (i18n/label :t/from-capitalized) + :account-props from-account-props + :theme theme}] + [user-summary + {:amount amount + :token-symbol token-symbol + :summary-type :account + :accessibility-label :summary-to-label + :label (i18n/label :t/to-capitalized) + :account-props user-props + :theme theme}] + [transaction-details + {:estimated-time-min estimated-time-min + :max-fees max-fees + :token token + :amount amount + :to-address to-address + :theme theme + :route route}]]]])))) (def view (quo.theme/with-theme view-internal)) diff --git a/src/status_im/contexts/wallet/send/transaction_progress/view.cljs b/src/status_im/contexts/wallet/send/transaction_progress/view.cljs index b712c65586b6..8313f9392c59 100644 --- a/src/status_im/contexts/wallet/send/transaction_progress/view.cljs +++ b/src/status_im/contexts/wallet/send/transaction_progress/view.cljs @@ -22,6 +22,10 @@ [] (let [current-address (rf/sub [:wallet/current-viewing-account-address]) leave-page (fn [] + (rf/dispatch [:wallet/clean-scanned-address]) + (rf/dispatch [:wallet/clean-local-suggestions]) + (rf/dispatch [:wallet/clean-send-address]) + (rf/dispatch [:wallet/select-address-tab nil]) (rf/dispatch [:navigate-to :wallet-accounts current-address])) status (reagent/atom :sending) {:keys [color]} (rf/sub [:wallet/current-viewing-account])] diff --git a/src/status_im/subs/wallet/send.cljs b/src/status_im/subs/wallet/send.cljs index 54928416c1bd..697c7ec33ae5 100644 --- a/src/status_im/subs/wallet/send.cljs +++ b/src/status_im/subs/wallet/send.cljs @@ -13,3 +13,8 @@ :wallet/wallet-send :<- [:wallet/ui] :-> :send) + +(rf/reg-sub + :wallet/wallet-send-recipient + :<- [:wallet/wallet-send] + :-> :recipient) From 455a7393188510a8b9502de56f2aa07d498ec029 Mon Sep 17 00:00:00 2001 From: Brian Sztamfater Date: Tue, 16 Jan 2024 12:02:31 -0300 Subject: [PATCH 3/4] feat: enable sending erc20 tokens (#18481) Signed-off-by: Brian Sztamfater --- .../contexts/wallet/send/events.cljs | 77 +++++++++++-------- 1 file changed, 47 insertions(+), 30 deletions(-) diff --git a/src/status_im/contexts/wallet/send/events.cljs b/src/status_im/contexts/wallet/send/events.cljs index 91f78b7ae85c..109acfee3d64 100644 --- a/src/status_im/contexts/wallet/send/events.cljs +++ b/src/status_im/contexts/wallet/send/events.cljs @@ -2,9 +2,11 @@ (:require [camel-snake-kebab.core :as csk] [camel-snake-kebab.extras :as cske] + [native-module.core :as native-module] [status-im.constants :as constants] [status-im.contexts.wallet.send.utils :as send-utils] [taoensso.timbre :as log] + [utils.address :as address] [utils.money :as money] [utils.number] [utils.re-frame :as rf])) @@ -140,8 +142,8 @@ :fx [[:dispatch [:navigate-to :wallet-transaction-progress]]]}))) (defn- transaction-bridge - [{:keys [from-address to-address token-id token-address route]}] - (let [{:keys [from bridge-name amount-out gas-amount + [{:keys [from-address from-chain-id to-address token-id token-address route data eth-transfer?]}] + (let [{:keys [bridge-name amount-out gas-amount gas-fees]} route eip-1559-enabled? (:eip-1559-enabled gas-fees) {:keys [gas-price max-fee-per-gas-medium @@ -149,10 +151,10 @@ transfer-tx (cond-> {:From from-address :To (or token-address to-address) :Gas (money/to-hex gas-amount) - :Value amount-out + :Value (when eth-transfer? amount-out) :Nonce nil :Input "" - :Data "0x"} + :Data (or data "0x")} eip-1559-enabled? (assoc :TxType "0x02" :MaxFeePerGas (money/to-hex @@ -170,7 +172,7 @@ :gwei gas-price))))] [(cond-> {:BridgeName bridge-name - :ChainID (:chain-id from)} + :ChainID from-chain-id} (= bridge-name constants/bridge-name-erc-721-transfer) (assoc :ERC721TransferTx @@ -193,35 +195,50 @@ (rf/reg-event-fx :wallet/send-transaction (fn [{:keys [db]} [sha3-pwd]] - (let [route (get-in db [:wallet :ui :send :route]) - from-address (get-in db [:wallet :current-viewing-account-address]) - token (get-in db [:wallet :ui :send :token]) - collectible (get-in db [:wallet :ui :send :collectible]) - token-address (when collectible - (get-in collectible - [:id :contract-id :address])) - to-address (get-in db [:wallet :ui :send :to-address]) - token-id (if token - (:symbol token) - (get-in collectible [:id :token-id])) - request-params [(multi-transaction-command - {:from-address from-address - :to-address to-address - :from-asset token-id - :to-asset token-id - :amount-out (:amount-out route)}) - (transaction-bridge {:to-address to-address - :from-address from-address - :route route - :token-address token-address - :token-id (when collectible - (money/to-hex (js/parseInt token-id)))}) - sha3-pwd]] + (let [route (get-in db [:wallet :ui :send :route]) + from-address (get-in db [:wallet :current-viewing-account-address]) + token (get-in db [:wallet :ui :send :token]) + collectible (get-in db [:wallet :ui :send :collectible]) + from-chain-id (get-in route [:from :chain-id]) + token-id (if token + (:symbol token) + (get-in collectible [:id :token-id])) + erc20-transfer? (and token (not= token-id "ETH")) + eth-transfer? (and token (not erc20-transfer?)) + token-address (cond collectible + (get-in collectible + [:id :contract-id :address]) + erc20-transfer? + (get-in token [:balances-per-chain from-chain-id :address])) + to-address (get-in db [:wallet :ui :send :to-address]) + data (when erc20-transfer? + (native-module/encode-transfer (address/normalized-hex to-address) + (:amount-out route))) + request-params [(multi-transaction-command + {:from-address from-address + :to-address to-address + :from-asset token-id + :to-asset token-id + :amount-out (if eth-transfer? (:amount-out route) "0x0")}) + (transaction-bridge {:to-address to-address + :from-address from-address + :route route + :from-chain-id from-chain-id + :token-address token-address + :token-id (when collectible + (money/to-hex (js/parseInt token-id))) + :data data + :eth-transfer? eth-transfer?}) + sha3-pwd]] {:json-rpc/call [{:method "wallet_createMultiTransaction" :params request-params :on-success (fn [result] (rf/dispatch [:hide-bottom-sheet]) - (rf/dispatch [:wallet/add-authorized-transaction result])) + (rf/dispatch [:wallet/add-authorized-transaction result]) + (rf/dispatch [:wallet/clean-scanned-address]) + (rf/dispatch [:wallet/clean-local-suggestions]) + (rf/dispatch [:wallet/clean-send-address]) + (rf/dispatch [:wallet/select-address-tab nil])) :on-error (fn [error] (log/error "failed to send transaction" {:event :wallet/send-transaction From 09bf6673cf7e56da1dbb76b5c3b91b85630a4c07 Mon Sep 17 00:00:00 2001 From: Siddarth Kumar Date: Tue, 16 Jan 2024 21:18:15 +0530 Subject: [PATCH 4/4] chore: upgrade `kotlinPluginVersion` to `1.9.0` (#18487) ### Summary We need to bump `kotlin` Plugin version to `1.9.0` because the `nixpkgs` upgrade will set default `gradle` version to `8.4`. `gradle` version `8.4` comes with a base `kotlin` version of `1.9.0` which becomes incompatible with our existing version of `1.7` Otherwise we get errors like this : ``` e: /Users/siddarthkumar/code/experiments/status-mobile/node_modules/@react-native/ gradle-plugin/src/main/kotlin/com/facebook/react/utils/TaskUtils.kt: (25, 7): Class 'kotlin.collections.CollectionsKt__CollectionsKt' was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1. The class is loaded from /nix/store/3a228ppiiljfvsrxyq15h25chmiwsmbh-gradle-8.4/lib/gradle/lib/ kotlin-stdlib-1.9.10.jar!/kotlin/collections/CollectionsKt__CollectionsKt.class . . . ``` needed for https://github.com/status-im/status-mobile/pull/18321 In this commit we set `kotlinPluginVersion` to `1.9.0` and update `gradle` dependencies. #### Platforms - Android --- android/gradle.properties | 2 +- nix/deps/gradle/deps.json | 646 ++++++++++++++++++++++++++++++++++-- nix/deps/gradle/deps.list | 65 ++-- nix/deps/gradle/deps.urls | 44 ++- nix/deps/gradle/generate.sh | 3 +- 5 files changed, 693 insertions(+), 67 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index 38d2695f178f..80c9b4dff0c2 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -28,7 +28,7 @@ buildToolsVersion=33.0.0 supportLibVersion=28.0.0 # This should match version from nix/pkgs/aapt2/default.nix gradlePluginVersion=7.4.2 -kotlinPluginVersion=1.7.22 +kotlinPluginVersion=1.9.0 android.useAndroidX=true android.enableJetifier=true diff --git a/nix/deps/gradle/deps.json b/nix/deps/gradle/deps.json index 5346765fb5e0..ebfaab77872e 100644 --- a/nix/deps/gradle/deps.json +++ b/nix/deps/gradle/deps.json @@ -11129,16 +11129,16 @@ }, { - "path": "com/google/errorprone/error_prone_annotations/2.24.0", + "path": "com/google/errorprone/error_prone_annotations/2.24.1", "repo": "https://repo.maven.apache.org/maven2", "files": { - "error_prone_annotations-2.24.0.pom": { - "sha1": "a267fc6adc4f7e83c84ecd3bfa3d757f0faa4c4e", - "sha256": "sha256-MDJ5+CcjbFXBkhu9hjL941NUxcNcAma8CF+apovLcV0=" + "error_prone_annotations-2.24.1.pom": { + "sha1": "e36d508134193b5b782a79cd834fef22f96850ea", + "sha256": "sha256-dW0LPDkGWZ2XMUDuziZuDej08ZKvFLGQBq8Un+kO+NU=" }, - "error_prone_annotations-2.24.0.jar": { - "sha1": "29dca9118b577ad24533e563438feb8fad51427e", - "sha256": "sha256-qIvYgSTI1MmFGrgjrcOo8EsKE68VydgLXs9J9aejIdI=" + "error_prone_annotations-2.24.1.jar": { + "sha1": "32b299e45105aa9b0df8279c74dc1edfcf313ff0", + "sha256": "sha256-Gf4vcVXSDqCTFoUnmZ2pgQgQPuVG0ei3JrxLJ8MaPDA=" } } }, @@ -11232,12 +11232,12 @@ }, { - "path": "com/google/errorprone/error_prone_parent/2.24.0", + "path": "com/google/errorprone/error_prone_parent/2.24.1", "repo": "https://repo.maven.apache.org/maven2", "files": { - "error_prone_parent-2.24.0.pom": { - "sha1": "2aca1bd2b01e085422633daa951905ea36ccd009", - "sha256": "sha256-XfQPVmlQqy86ZF0z2LcXGB7v9OplOO+2/ZuRL+obie4=" + "error_prone_parent-2.24.1.pom": { + "sha1": "20bcb755b5f180723ef1b055f34a1834b7410f54", + "sha256": "sha256-y589WAUC7OXhJCnX96x1/kerhdat91zd+G+lokrvpI8=" } } }, @@ -16913,6 +16913,17 @@ } }, + { + "path": "org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "org.jetbrains.kotlin.jvm.gradle.plugin-1.9.0.pom": { + "sha1": "896c88badef90b092f519041d1ee201eb5d1b1a0", + "sha256": "sha256-Bb7sz992ArEqfazluEynL3ao8E3ookIUo/WSxzYmtrc=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-android-extensions/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -16943,6 +16954,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-android-extensions/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-android-extensions-1.9.0.pom": { + "sha1": "c08cc427bc37faf86bd41de0b64e8ac67899a06b", + "sha256": "sha256-WOHIg3JukUaVIDV95u0Xw/mSnI4IsRdKJ6OtbsDrzVI=" + }, + "kotlin-android-extensions-1.9.0.jar": { + "sha1": "ca23de2a64833d204f9af248e265274f3b8c0333", + "sha256": "sha256-IGdbuyp7aYKnFEUYpRi5qJZfkK6JuMmHiJgBIkSh6jM=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-annotations-jvm/1.3.72", "repo": "https://repo.maven.apache.org/maven2", @@ -17018,6 +17044,51 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-build-common/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-build-common-1.9.0.pom": { + "sha1": "ab861d4e7cbca289fa3d215daad0cbfb2a2cfb82", + "sha256": "sha256-6itlfmsETYgfDT/f/BPOKIwlQYxipbBL/64XeJDs6EU=" + }, + "kotlin-build-common-1.9.0.jar": { + "sha1": "68e075bff7dca0d2d444c19279afe6882f311a19", + "sha256": "sha256-txTWfNj1bTe4Pqj2XdysZAXFdix9n2EV81J0o5GxW2w=" + } + } + }, + + { + "path": "org/jetbrains/kotlin/kotlin-build-tools-api/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-build-tools-api-1.9.0.pom": { + "sha1": "ab0f33a948936b4ef2b51a8b82720fe5982184e5", + "sha256": "sha256-iIFxmCZbm8BrPzSTWyv2qpj0gA7OvBzOQREN70m3pCE=" + }, + "kotlin-build-tools-api-1.9.0.jar": { + "sha1": "5d33265af7283ca4d7b1f3115b83b54545f4cfab", + "sha256": "sha256-0ZyavegKnPQtJezJLLEUjtOhXu2yZy2qHkZubaWQ7sY=" + } + } + }, + + { + "path": "org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-build-tools-impl-1.9.0.pom": { + "sha1": "3d7403fd4d2f8914b46b250f6746da17c5a1ba47", + "sha256": "sha256-3Qrb3SO5XBP8N2JAqCoL/F1k37eBON7GJASX6QVtQIw=" + }, + "kotlin-build-tools-impl-1.9.0.jar": { + "sha1": "1ce2bdaf6dd80d4e7748058231059766e298a6de", + "sha256": "sha256-1yw3nxx1eZrAxm5sMVj2iGW9/tGlw1xepBwnihuAUBo=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17048,6 +17119,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-compiler-embeddable-1.9.0.pom": { + "sha1": "079ce81c461cfa0c3ad6b05b4a40b23bf821dbd2", + "sha256": "sha256-7jyHHO39bM9A0ESUQJbihlXeL5NF2ET+7GPMqcXkt8w=" + }, + "kotlin-compiler-embeddable-1.9.0.jar": { + "sha1": "2c8c3a7402becca891f12739b3e9fd2dc2adbd7a", + "sha256": "sha256-lTtQaR103SGf8/ZkRnDD5UnYfN/AphVPFgKmoKXf43M=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-compiler-runner/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17078,6 +17164,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-compiler-runner/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-compiler-runner-1.9.0.pom": { + "sha1": "f2f333b81d78150bca741b75646a042f8a69be2c", + "sha256": "sha256-GIN9BlVntn5bzy4wTYWm4rbSRDz4En9AdnNKTo3yo2E=" + }, + "kotlin-compiler-runner-1.9.0.jar": { + "sha1": "4cf7c2cb6bfd82876e592697d3ad9bc835b21010", + "sha256": "sha256-BbWlXUlJFhpxT838ZKXwTYejZMm73IZBs7t6VVfkPqo=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-daemon-client/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17108,6 +17209,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-daemon-client/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-daemon-client-1.9.0.pom": { + "sha1": "af448a4a8fdd5c0bff3d93fa78a2e495779e18a5", + "sha256": "sha256-sv50dBgjzM6JMXCWkg3LnOXBa460Z5jTn9jmdwPFidc=" + }, + "kotlin-daemon-client-1.9.0.jar": { + "sha1": "a7aff9bf77b5c882789cc495262def8948d93c5d", + "sha256": "sha256-WoyXfn3H8N4tka5Yva3CBBXe9M9dST5aGD+WxZeZAyA=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17138,6 +17254,51 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-daemon-embeddable-1.9.0.pom": { + "sha1": "216bc4d3f72fb679b1f79e73a730cac6e5cd3fa5", + "sha256": "sha256-OOMsu5GFenIGy/3cON1O4L5mX0CgEV/21NF348f4kq8=" + }, + "kotlin-daemon-embeddable-1.9.0.jar": { + "sha1": "186543f5e28cf8d9a0290fecc2cf34301c40a65c", + "sha256": "sha256-lDGCoTfs1A5ikFjaUtszbO6bZm+AmWtlWELyCmNz35o=" + } + } + }, + + { + "path": "org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-gradle-plugins-bom-1.9.0.pom": { + "sha1": "511e9094170ffec75cbb76b58cfe7f1a058dc046", + "sha256": "sha256-XTmtkDDf0zsLrCn3UAAJzmKHYulP5h8BF3rhNL24D6E=" + }, + "kotlin-gradle-plugins-bom-1.9.0.module": { + "sha1": "b6bc353c189d28e9e0419f0635df8121ae8c8cbf", + "sha256": "sha256-/SufabguQ8tQnwhBsYvzxd99q18eC+oDT8CypZnW4pY=" + } + } + }, + + { + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-gradle-plugin-annotations-1.9.0.pom": { + "sha1": "b1b0737be6ae375ea12ea9e7cbc6c6f1a4832ec1", + "sha256": "sha256-qjXuWp0dpZMV92nH/tsshwBWD1PFaAupKwsniBpKQnE=" + }, + "kotlin-gradle-plugin-annotations-1.9.0.jar": { + "sha1": "42d1ea51a701505256d5bd54d9152819937835dc", + "sha256": "sha256-KiZbNbx8VYIUJukbajzU9LkWOKC8fIffz+TgX36IRzg=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17180,6 +17341,53 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-gradle-plugin-api-1.9.0.pom": { + "sha1": "7c80dda386f89cf10d0c3ba399176f5ad26cf057", + "sha256": "sha256-VPHdp1Zn7esbrIpY9KNsh4wPBJGGA2vJOnAyjNnNfaw=" + }, + "kotlin-gradle-plugin-api-1.9.0-gradle70.jar": { + "sha1": "82a9928a60c442822fccaf08aa212528a85fbf25", + "sha256": "sha256-AhbssMeA+V47EBoOlc/DZ/LvVrBvLeqqqZJaDxF8INk=" + }, + "kotlin-gradle-plugin-api-1.9.0-gradle71.jar": { + "sha1": "82a9928a60c442822fccaf08aa212528a85fbf25", + "sha256": "sha256-AhbssMeA+V47EBoOlc/DZ/LvVrBvLeqqqZJaDxF8INk=" + }, + "kotlin-gradle-plugin-api-1.9.0-gradle74.jar": { + "sha1": "82a9928a60c442822fccaf08aa212528a85fbf25", + "sha256": "sha256-AhbssMeA+V47EBoOlc/DZ/LvVrBvLeqqqZJaDxF8INk=" + }, + "kotlin-gradle-plugin-api-1.9.0-gradle75.jar": { + "sha1": "82a9928a60c442822fccaf08aa212528a85fbf25", + "sha256": "sha256-AhbssMeA+V47EBoOlc/DZ/LvVrBvLeqqqZJaDxF8INk=" + }, + "kotlin-gradle-plugin-api-1.9.0-gradle76.jar": { + "sha1": "82a9928a60c442822fccaf08aa212528a85fbf25", + "sha256": "sha256-AhbssMeA+V47EBoOlc/DZ/LvVrBvLeqqqZJaDxF8INk=" + }, + "kotlin-gradle-plugin-api-1.9.0-gradle80.jar": { + "sha1": "82a9928a60c442822fccaf08aa212528a85fbf25", + "sha256": "sha256-AhbssMeA+V47EBoOlc/DZ/LvVrBvLeqqqZJaDxF8INk=" + }, + "kotlin-gradle-plugin-api-1.9.0-gradle81.jar": { + "sha1": "82a9928a60c442822fccaf08aa212528a85fbf25", + "sha256": "sha256-AhbssMeA+V47EBoOlc/DZ/LvVrBvLeqqqZJaDxF8INk=" + }, + "kotlin-gradle-plugin-api-1.9.0.jar": { + "sha1": "82a9928a60c442822fccaf08aa212528a85fbf25", + "sha256": "sha256-AhbssMeA+V47EBoOlc/DZ/LvVrBvLeqqqZJaDxF8INk=" + }, + "kotlin-gradle-plugin-api-1.9.0.module": { + "sha1": "cede46e2a2c9f2abeaa726fef80f85e451a6b5b3", + "sha256": "sha256-Gu1WWijZE0KsWkuhRsKFal67xjkoXFKVUhefr8dhTds=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.22", "repo": "https://repo.maven.apache.org/maven2", @@ -17195,6 +17403,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-gradle-plugin-idea-proto-1.9.0.pom": { + "sha1": "19b5a92d55669744290e83b5a7d643d1fbd83f65", + "sha256": "sha256-QeElaFOKOjQHBMlww6T2D/WAH/3OQlymjKLAtHIhclA=" + }, + "kotlin-gradle-plugin-idea-proto-1.9.0.jar": { + "sha1": "d7e3ab4f0b7f7966e446f516fddf331475319f53", + "sha256": "sha256-54mY6iK81fVtE5gszBJMnHM3vRUHVMvcivKhSNdslwA=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.22", "repo": "https://repo.maven.apache.org/maven2", @@ -17218,6 +17441,29 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-gradle-plugin-idea-1.9.0.pom": { + "sha1": "e3c307cf7ee2c63e9535edb403466dc49aa5d5d9", + "sha256": "sha256-W/gGnkUbY0wdxLRpLpKO9pEanrLtk3TeIPRC3AloBo0=" + }, + "kotlin-gradle-plugin-idea-1.9.0-test-fixtures.jar": { + "sha1": "af6020bc0aa902bb438e69aa0eca58438111136b", + "sha256": "sha256-MAj3geetkPywHc2d6pbg9ky48bMYT5T4p9jNHeGlsfI=" + }, + "kotlin-gradle-plugin-idea-1.9.0.jar": { + "sha1": "5538265e4961666c769825f4543ab445cbc45bdc", + "sha256": "sha256-C7JszuNyr7m1hPKFfofMLz9TK2Kk9/pFdVjzr8Or6ZU=" + }, + "kotlin-gradle-plugin-idea-1.9.0.module": { + "sha1": "186d2bb5113962059551805961d9c80a5b06a80c", + "sha256": "sha256-pVg82bC0AS6VWtlhn7kBe1saosJRsFltr1M0kExcpls=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17260,6 +17506,53 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-gradle-plugin-model-1.9.0.pom": { + "sha1": "b9b395f72a747e294548584cb93b9e48d2d8dad7", + "sha256": "sha256-QcXjVzTqEZA+IQr5i3eHB08mQab0C0X5vpwRAAga5Y0=" + }, + "kotlin-gradle-plugin-model-1.9.0-gradle70.jar": { + "sha1": "d64789139fb89d78f2128d6b5be8a164d8669a72", + "sha256": "sha256-/wWqtoizSnmSp+NfncTewlhD8Tqelwrv5W3T4SKghBU=" + }, + "kotlin-gradle-plugin-model-1.9.0-gradle71.jar": { + "sha1": "d64789139fb89d78f2128d6b5be8a164d8669a72", + "sha256": "sha256-/wWqtoizSnmSp+NfncTewlhD8Tqelwrv5W3T4SKghBU=" + }, + "kotlin-gradle-plugin-model-1.9.0-gradle74.jar": { + "sha1": "d64789139fb89d78f2128d6b5be8a164d8669a72", + "sha256": "sha256-/wWqtoizSnmSp+NfncTewlhD8Tqelwrv5W3T4SKghBU=" + }, + "kotlin-gradle-plugin-model-1.9.0-gradle75.jar": { + "sha1": "d64789139fb89d78f2128d6b5be8a164d8669a72", + "sha256": "sha256-/wWqtoizSnmSp+NfncTewlhD8Tqelwrv5W3T4SKghBU=" + }, + "kotlin-gradle-plugin-model-1.9.0-gradle76.jar": { + "sha1": "d64789139fb89d78f2128d6b5be8a164d8669a72", + "sha256": "sha256-/wWqtoizSnmSp+NfncTewlhD8Tqelwrv5W3T4SKghBU=" + }, + "kotlin-gradle-plugin-model-1.9.0-gradle80.jar": { + "sha1": "d64789139fb89d78f2128d6b5be8a164d8669a72", + "sha256": "sha256-/wWqtoizSnmSp+NfncTewlhD8Tqelwrv5W3T4SKghBU=" + }, + "kotlin-gradle-plugin-model-1.9.0-gradle81.jar": { + "sha1": "d64789139fb89d78f2128d6b5be8a164d8669a72", + "sha256": "sha256-/wWqtoizSnmSp+NfncTewlhD8Tqelwrv5W3T4SKghBU=" + }, + "kotlin-gradle-plugin-model-1.9.0.jar": { + "sha1": "d64789139fb89d78f2128d6b5be8a164d8669a72", + "sha256": "sha256-/wWqtoizSnmSp+NfncTewlhD8Tqelwrv5W3T4SKghBU=" + }, + "kotlin-gradle-plugin-model-1.9.0.module": { + "sha1": "cc984614ad443557e13d3a07c6dbcd8ce214eec4", + "sha256": "sha256-ZvS5FEcM80bgXQP4otWenHRvpu3PZMcS8XagiBqsPkk=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-gradle-plugin/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17302,6 +17595,53 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-gradle-plugin-1.9.0.pom": { + "sha1": "75f5520fa218e0833a1d4332bc10cf325925f63f", + "sha256": "sha256-RSdrCf+7uANPvQRwj5D34xtw1orgI7LPs8EdiG532DY=" + }, + "kotlin-gradle-plugin-1.9.0-gradle70.jar": { + "sha1": "70f96081d51820be6e998ae76591ca2485298880", + "sha256": "sha256-tpVPc4pbBeMHcvq9tFnIHVjfGz2oBqng7qcQ9Oj1Afw=" + }, + "kotlin-gradle-plugin-1.9.0-gradle71.jar": { + "sha1": "a237533df09406429a90e4cf6eddbd665fb879ef", + "sha256": "sha256-eb2kXiIyG1eXss3mhJ9KwFUgfVcAUxsEI+aMURdlers=" + }, + "kotlin-gradle-plugin-1.9.0-gradle74.jar": { + "sha1": "8ca3abcf0134fac694a3d78e78cc879ac37efc40", + "sha256": "sha256-p0Pj9keSxLrCRuE8GYSIIGskZnHvzXB7NQw+IsEWW50=" + }, + "kotlin-gradle-plugin-1.9.0-gradle75.jar": { + "sha1": "fa282ffe215f034c063a361d338f58b14479b336", + "sha256": "sha256-y9fMKOqRe48m9sVeYWVSYOGtQ3ZNM1edrj91pJMa/vI=" + }, + "kotlin-gradle-plugin-1.9.0-gradle76.jar": { + "sha1": "5e15ae8365f8750303ad66e169cb8fb25e20f408", + "sha256": "sha256-k6DXXAMnUB4h2z8pprUoju8uIjFyan/esXYMwNmi6/I=" + }, + "kotlin-gradle-plugin-1.9.0-gradle80.jar": { + "sha1": "3e9dd06e2aabd397923535a42118bc861bcff9eb", + "sha256": "sha256-JnLbEUAqZqYyLpzT9nV2rbtyq+jkdNkStqrzP5QGuPY=" + }, + "kotlin-gradle-plugin-1.9.0-gradle81.jar": { + "sha1": "8cfc2ba810d67ffb9a931d3785163acb5ff859fd", + "sha256": "sha256-2UOg4ntHRuAfg0BaSfUmoi9HGx2x1GOdb84m1xHv+/4=" + }, + "kotlin-gradle-plugin-1.9.0.jar": { + "sha1": "a031b8e97a70eb71b3d8a9298a82d153fc40c938", + "sha256": "sha256-yxGBud8e8LclfOPYc6mWy79G3K6qnD+OxIBWE3V5BxU=" + }, + "kotlin-gradle-plugin-1.9.0.module": { + "sha1": "f15d8f1e4dff619035904e448de88cbbde259d28", + "sha256": "sha256-/mOWRe2PvcW8Et588lRopNsx52O6ea26ogahTeYP0xQ=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17333,16 +17673,31 @@ }, { - "path": "org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.22", + "path": "org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.0", "repo": "https://repo.maven.apache.org/maven2", "files": { - "kotlin-klib-commonizer-embeddable-1.7.22.pom": { - "sha1": "5b3e5c9d161d6de851b75af4b73a3cd2bf438140", - "sha256": "sha256-Ft3srgIpxS0bNHWY5je65P8si2Nj1+AIbNa2bfzIltw=" + "kotlin-klib-commonizer-api-1.9.0.pom": { + "sha1": "dc9b1e38fb03d23112825bc6ab3ab8144ef8d42a", + "sha256": "sha256-hE+SCI/0j4v64lYh4yStw1d5CM9lD0/bJWlhC4+vaz4=" }, - "kotlin-klib-commonizer-embeddable-1.7.22.jar": { - "sha1": "f84170d46b52ac44408be1055fb12849bfff4629", - "sha256": "sha256-3owxqAkvto74DzSjy9+x3NQCB7Z8/4fUC1xHnsamjs4=" + "kotlin-klib-commonizer-api-1.9.0.jar": { + "sha1": "35782a8198131f9ee6eec26d7bf60b1e0a508bc5", + "sha256": "sha256-hd4ulysLtvRSjB90j0PEhmMUX8hTnsqWwT0bwNo/k10=" + } + } + }, + + { + "path": "org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-klib-commonizer-embeddable-1.9.0.pom": { + "sha1": "210d03d9e5afa2938c9a6d20ce164c59277dc437", + "sha256": "sha256-L9STJpNwf9ujj80diJL7TdPPAIC5LxJSX8cF42G2eTs=" + }, + "kotlin-klib-commonizer-embeddable-1.9.0.jar": { + "sha1": "bae135d2d5ed2ae9c2c9b7f8300dbcb345ef8bc7", + "sha256": "sha256-zdYmTXJPcRKakwi+JEAsqMccKrICywO2hEmdqXrdS4Q=" } } }, @@ -17377,6 +17732,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-native-utils/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-native-utils-1.9.0.pom": { + "sha1": "80b8f19f18a627c23ed18cf2a44ef7eabc84da96", + "sha256": "sha256-Kazy3vkmve3Z6yBOx3Tnhq3Ek0EGqSlJAK81FVbn52o=" + }, + "kotlin-native-utils-1.9.0.jar": { + "sha1": "13264bd5949f9e68c5d53a6d394b800b725dc577", + "sha256": "sha256-D0gF93S/tcG20UXf5g09ILGu4ACJbOjs8+7/hM5EAjs=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-project-model/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17407,6 +17777,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-project-model/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-project-model-1.9.0.pom": { + "sha1": "fe67d9afc6940fe0019e18fca37a37c58976536b", + "sha256": "sha256-6sHGTGAMYAJ7jmjfrTogPEFbn6IkWB1oz6Xnc+hWa3g=" + }, + "kotlin-project-model-1.9.0.jar": { + "sha1": "7c6006a523220e0a82f4954652c3140f7353e85a", + "sha256": "sha256-rgk26bTGkh8D73eTYcrLu3XtKyIQR5+S9l8cushuNAw=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-reflect/1.1.3-2", "repo": "https://repo.maven.apache.org/maven2", @@ -17512,6 +17897,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-reflect/1.6.10", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-reflect-1.6.10.pom": { + "sha1": "535560dfd5b3dba98f57b12f3e921c7a83d0aafe", + "sha256": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak=" + }, + "kotlin-reflect-1.6.10.jar": { + "sha1": "1cbe9c92c12a94eea200d23c2bbaedaf3daf5132", + "sha256": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-reflect/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17602,6 +18002,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-scripting-common/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-scripting-common-1.9.0.pom": { + "sha1": "326fa3ca7bb1705794879cbae1a9467b7d7aa09e", + "sha256": "sha256-C/MG5PRe6xrDAk4pnUybcL4J7OmsAOcLL/mLPtQA8wc=" + }, + "kotlin-scripting-common-1.9.0.jar": { + "sha1": "ea019fa9e3885795a81df270775e5609f7115307", + "sha256": "sha256-KFxBwO7tWaDn3LGIuJ+BVBR/vLvVNUcc9piWzNonP4Q=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17632,6 +18047,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-scripting-compiler-embeddable-1.9.0.pom": { + "sha1": "cba5705bf5fb615d2b72195faa25159e83e3a264", + "sha256": "sha256-UJ5ikUwwvT43GcDgLk5Df8vxkRa4ouZYSPbUbFTsXJ4=" + }, + "kotlin-scripting-compiler-embeddable-1.9.0.jar": { + "sha1": "1708703c0683b8d2a0a76048544480b94d3eb458", + "sha256": "sha256-Rp3RIGiVipevzhGIoBRFVM3tZ95aGqC/XKUwOfKdizY=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17662,6 +18092,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-scripting-compiler-impl-embeddable-1.9.0.pom": { + "sha1": "5459191b6fda205abb23fb4a767bb0f86e8cc12e", + "sha256": "sha256-zaYp8KgbqcAKM95QJ/D4/7+fC45E5BlwNHdmu4WLTmM=" + }, + "kotlin-scripting-compiler-impl-embeddable-1.9.0.jar": { + "sha1": "c825693be78dfcbc351a53856d75f4d11bb0e274", + "sha256": "sha256-ZcUlbiyPvdpCbAMobmomgmfXEu+V7C05yVKSlXN4sE0=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17692,6 +18137,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-scripting-jvm-1.9.0.pom": { + "sha1": "178d3c678207d53a68cab7ce61dd89867bacdc6f", + "sha256": "sha256-Ymj4BVjTX9qSRruneTKWkrlNWJWWVQfL6KhIkSxQ5yo=" + }, + "kotlin-scripting-jvm-1.9.0.jar": { + "sha1": "e2e6a0bd37a72cded2fec7882199e1bdc4e8bcb4", + "sha256": "sha256-Zp3SvGBBjgdRU/2K2NllvlaetlwvMIOIyxEDud8TUVk=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -17722,6 +18182,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-script-runtime/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-script-runtime-1.9.0.pom": { + "sha1": "a52322c274112401ded9622eb8d7eb2570fae853", + "sha256": "sha256-FNwHhdGUFP7sEgI91z64DIPQeIC3PlS48IqHj0I9seY=" + }, + "kotlin-script-runtime-1.9.0.jar": { + "sha1": "4b3102cbbb7e1b58d9d1adf89563f00069ffa7d1", + "sha256": "sha256-2E0MykEFD6wqlS0RBEc8Mpr/BMULNxMuV1SiCYCa3Z8=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.2.71", "repo": "https://repo.maven.apache.org/maven2", @@ -18022,6 +18497,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-stdlib-common/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-stdlib-common-1.9.0.pom": { + "sha1": "0a865a0c5a64618fd1dcca13d05dea4cba44c832", + "sha256": "sha256-NmDTanD+s6vknxG5BjPkHTYnNXbwcbDhCdqbOg3wgqU=" + }, + "kotlin-stdlib-common-1.9.0.jar": { + "sha1": "cd65c21cfd1eec4d44ef09f9f52b6d9f8a720636", + "sha256": "sha256-KDJ0IEvXwCB4nsRvj45yr0JE1/VQszkqV+XKAGrXqiw=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.71", "repo": "https://repo.maven.apache.org/maven2", @@ -18202,6 +18692,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-stdlib-jdk7-1.9.0.pom": { + "sha1": "5ce6c5278ef6e342507a96372ee534ed0b830e54", + "sha256": "sha256-wRB08MiYqYuGPGFEcdQ409+Soewzgqbjf5NdfXGVS1o=" + }, + "kotlin-stdlib-jdk7-1.9.0.jar": { + "sha1": "f320478990d05e0cfaadd74f9619fd6027adbf37", + "sha256": "sha256-t5eaeqyUBV8Nnx/TtHzl/+HLYDKoQrqfvnGG8IUokXg=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.2.71", "repo": "https://repo.maven.apache.org/maven2", @@ -18367,6 +18872,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-stdlib-jdk8-1.9.0.pom": { + "sha1": "4f04e57e4a12d4a59f620c63520681c4ff1d03e6", + "sha256": "sha256-ZNWY3YjiUEZnMeIDBKtvBsu7urfuMitHA7a1n4gcT5I=" + }, + "kotlin-stdlib-jdk8-1.9.0.jar": { + "sha1": "e000bd084353d84c9e888f6fb341dc1f5b79d948", + "sha256": "sha256-pZ+iT98f+1lLrs2/D9EAEPl3zqECNtSH/jRkl3pzd/o=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-stdlib/1.1.3-2", "repo": "https://repo.maven.apache.org/maven2", @@ -18712,6 +19232,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-stdlib/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-stdlib-1.9.0.pom": { + "sha1": "4aea0493dfd3ee18df73bcd97db791c2ea5bb383", + "sha256": "sha256-N3UiY/Ysw+MlCFbiiO5Kc9QQLXJqd2JwNPlIBsjBCso=" + }, + "kotlin-stdlib-1.9.0.jar": { + "sha1": "8ee15ef0c67dc83d874f412d84378d7f0eb50b63", + "sha256": "sha256-Na7/vi21qkRgcs7lD87ki3+p4vxRyjfAzH19C8OdlS4=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-stdlib/1.9.21", "repo": "https://repo.maven.apache.org/maven2", @@ -18781,6 +19316,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-tooling-core/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-tooling-core-1.9.0.pom": { + "sha1": "0c1335f31eaaf304a866a1ca780bb75c05df79d1", + "sha256": "sha256-KSbD/CFJWXAcjxYNjdyGn3s/pFKv3o3RdcjnwrvHBSI=" + }, + "kotlin-tooling-core-1.9.0.jar": { + "sha1": "7b3e809d24d27d00072fd69eb130f8a6cbd365e1", + "sha256": "sha256-5TmiJCi5ysZ/dbLWHytuKnGDUNe7MYI8fcqJB/kJma4=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-tooling-metadata/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -18826,6 +19376,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-util-io/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-util-io-1.9.0.pom": { + "sha1": "9481aa1ef0a147a6ca09cbf4a5f72915303185e5", + "sha256": "sha256-BUBa+xn3tgbFKr6haJqi1ew9qQL+4teoV2lDOeSgQJQ=" + }, + "kotlin-util-io-1.9.0.jar": { + "sha1": "e9b6d257f0c94bdf8a0f4ab67d6ffc199a0deba7", + "sha256": "sha256-gdNtxt4/C+rwTDl6BrVoITujc6vO9Tlyt7gvYX1a9ws=" + } + } + }, + { "path": "org/jetbrains/kotlin/kotlin-util-klib/1.6.20", "repo": "https://repo.maven.apache.org/maven2", @@ -18856,6 +19421,21 @@ } }, + { + "path": "org/jetbrains/kotlin/kotlin-util-klib/1.9.0", + "repo": "https://repo.maven.apache.org/maven2", + "files": { + "kotlin-util-klib-1.9.0.pom": { + "sha1": "45a02a0e039fcf3ef011e38917da856894dad326", + "sha256": "sha256-acZHGaDgRjb2whMZ/lGKC1gieEu66P7YXmUfv6b4pFs=" + }, + "kotlin-util-klib-1.9.0.jar": { + "sha1": "41df7b8939660817a283d9255d5f2e4b555eebc6", + "sha256": "sha256-wtxr820zabdzdVq4k3uX5Tmk1F04Fb7xm+36FUsS0xM=" + } + } + }, + { "path": "org/jetbrains/markdown-jvm/0.2.1", "repo": "https://repo.maven.apache.org/maven2", @@ -20103,27 +20683,27 @@ }, { - "path": "org/slf4j/slf4j-api/2.0.9", + "path": "org/slf4j/slf4j-api/2.1.0-alpha1", "repo": "https://repo.maven.apache.org/maven2", "files": { - "slf4j-api-2.0.9.pom": { - "sha1": "96a47b716e8241bca75562533e3a9fbb7ffbefb9", - "sha256": "sha256-nDplT50KoaNLMXjr5TqJx2eS4dgfwelznL6bFhBSM4U=" + "slf4j-api-2.1.0-alpha1.pom": { + "sha1": "c5362a45b3be4d9d110f5450822ea81b27adb1a0", + "sha256": "sha256-QirqW+u6gwWzxhT6Zo7SKePJYQkw7PQvhzOO4F4minU=" }, - "slf4j-api-2.0.9.jar": { - "sha1": "7cf2726fdcfbc8610f9a71fb3ed639871f315340", - "sha256": "sha256-CBiTDcjX3rtAMgRhFpHaWOSdQsULb/z9zgLa23w8K2w=" + "slf4j-api-2.1.0-alpha1.jar": { + "sha1": "4e2525fc4327cc553c52e3937427c7cf2114735f", + "sha256": "sha256-mrf/pkYgK0mdBZlaPsgvMbzLelA0XBUU2MtC7IzOo1M=" } } }, { - "path": "org/slf4j/slf4j-bom/2.0.9", + "path": "org/slf4j/slf4j-bom/2.1.0-alpha1", "repo": "https://repo.maven.apache.org/maven2", "files": { - "slf4j-bom-2.0.9.pom": { - "sha1": "54c55d4b55c9f82d34434fe6a36e8c6b5671588a", - "sha256": "sha256-6u9FhIB9gSxqC2z4OdXkf1DHVDJ3GbnOCB4nHRXaYkM=" + "slf4j-bom-2.1.0-alpha1.pom": { + "sha1": "f8784ee61914057bec3db57b5efea4e6b0333c6f", + "sha256": "sha256-qOgTiZePRAcJJBuYPTHvp4cRO+EbgYwsa82e0wlv1IU=" } } }, @@ -20151,12 +20731,12 @@ }, { - "path": "org/slf4j/slf4j-parent/2.0.9", + "path": "org/slf4j/slf4j-parent/2.1.0-alpha1", "repo": "https://repo.maven.apache.org/maven2", "files": { - "slf4j-parent-2.0.9.pom": { - "sha1": "fa1b5ef4b7f48daf822d408eebd3319fa6254c0f", - "sha256": "sha256-wwfwQkFB8cUArlzw04aOSGbLIZ7V45m2bFoHxh6iH9U=" + "slf4j-parent-2.1.0-alpha1.pom": { + "sha1": "ef0d60c3407004bb7e71643a13644f4bc2f3ec00", + "sha256": "sha256-zkc1sfnIId4Lkrjb5AsHHG6jIHMuWTVZxupt+WX4c48=" } } }, diff --git a/nix/deps/gradle/deps.list b/nix/deps/gradle/deps.list index dd6591490516..b8449b0344ee 100644 --- a/nix/deps/gradle/deps.list +++ b/nix/deps/gradle/deps.list @@ -2,6 +2,7 @@ androidx.activity:activity:1.0.0 androidx.activity:activity:1.0.0-rc01 androidx.activity:activity:1.2.4 androidx.annotation:annotation-experimental:1.1.0 +androidx.annotation:annotation:1.0.0 androidx.annotation:annotation:1.1.0 androidx.annotation:annotation:1.2.0 androidx.annotation:annotation:1.3.0 @@ -10,6 +11,7 @@ androidx.appcompat:appcompat-resources:1.2.0 androidx.appcompat:appcompat-resources:1.3.1 androidx.appcompat:appcompat-resources:1.4.1 androidx.appcompat:appcompat-resources:1.4.2 +androidx.appcompat:appcompat:1.0.0 androidx.appcompat:appcompat:1.1.0-rc01 androidx.appcompat:appcompat:1.2.0 androidx.appcompat:appcompat:1.3.1 @@ -38,6 +40,7 @@ androidx.coordinatorlayout:coordinatorlayout:1.0.0 androidx.coordinatorlayout:coordinatorlayout:1.1.0 androidx.core:core-ktx:1.6.0 androidx.core:core-splashscreen:1.0.0 +androidx.core:core:1.0.0 androidx.core:core:1.1.0 androidx.core:core:1.1.0-rc01 androidx.core:core:1.2.0 @@ -125,10 +128,13 @@ androidx.tracing:tracing:1.1.0 androidx.transition:transition:1.1.0 androidx.transition:transition:1.2.0 androidx.transition:transition:1.2.0-rc01 +androidx.vectordrawable:vectordrawable-animated:1.0.0 androidx.vectordrawable:vectordrawable-animated:1.1.0 androidx.vectordrawable:vectordrawable-animated:1.1.0-rc01 +androidx.vectordrawable:vectordrawable:1.0.0 androidx.vectordrawable:vectordrawable:1.1.0 androidx.vectordrawable:vectordrawable:1.1.0-rc01 +androidx.versionedparcelable:versionedparcelable:1.0.0 androidx.versionedparcelable:versionedparcelable:1.1.0 androidx.versionedparcelable:versionedparcelable:1.1.0-rc01 androidx.versionedparcelable:versionedparcelable:1.1.1 @@ -778,35 +784,37 @@ org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.2 org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.1 org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 org.jetbrains.kotlin:kotlin-android-extensions:1.6.20 -org.jetbrains.kotlin:kotlin-android-extensions:1.7.22 +org.jetbrains.kotlin:kotlin-android-extensions:1.9.0 org.jetbrains.kotlin:kotlin-annotations-jvm:1.3.72 org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.6.20 -org.jetbrains.kotlin:kotlin-annotation-processing-gradle:1.7.22 org.jetbrains.kotlin:kotlin-build-common:1.6.20 -org.jetbrains.kotlin:kotlin-build-common:1.7.22 +org.jetbrains.kotlin:kotlin-build-tools-api:1.9.0 +org.jetbrains.kotlin:kotlin-build-tools-impl:1.9.0 org.jetbrains.kotlin:kotlin-compiler-embeddable:1.6.20 -org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.22 +org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.0 org.jetbrains.kotlin:kotlin-compiler-runner:1.6.20 -org.jetbrains.kotlin:kotlin-compiler-runner:1.7.22 +org.jetbrains.kotlin:kotlin-compiler-runner:1.9.0 org.jetbrains.kotlin:kotlin-daemon-client:1.6.20 -org.jetbrains.kotlin:kotlin-daemon-client:1.7.22 +org.jetbrains.kotlin:kotlin-daemon-client:1.9.0 org.jetbrains.kotlin:kotlin-daemon-embeddable:1.6.20 -org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.22 +org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.0 +org.jetbrains.kotlin:kotlin-gradle-plugins-bom:1.9.0 +org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:1.9.0 org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.6.20 -org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.7.22 -org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.7.22 -org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.7.22 +org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.9.0 +org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.9.0 +org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.9.0 org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.6.20 -org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.7.22 +org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.9.0 org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.20 -org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.22 +org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0 org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.6.20 -org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.7.22 -org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.7.22 +org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.9.0 +org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.0 org.jetbrains.kotlin:kotlin-native-utils:1.6.20 -org.jetbrains.kotlin:kotlin-native-utils:1.7.22 +org.jetbrains.kotlin:kotlin-native-utils:1.9.0 org.jetbrains.kotlin:kotlin-project-model:1.6.20 -org.jetbrains.kotlin:kotlin-project-model:1.7.22 +org.jetbrains.kotlin:kotlin-project-model:1.9.0 org.jetbrains.kotlin:kotlin-reflect:1.1.3-2 org.jetbrains.kotlin:kotlin-reflect:1.2.0 org.jetbrains.kotlin:kotlin-reflect:1.3.20 @@ -814,17 +822,17 @@ org.jetbrains.kotlin:kotlin-reflect:1.3.50 org.jetbrains.kotlin:kotlin-reflect:1.3.72 org.jetbrains.kotlin:kotlin-reflect:1.4.32 org.jetbrains.kotlin:kotlin-reflect:1.5.31 +org.jetbrains.kotlin:kotlin-reflect:1.6.10 org.jetbrains.kotlin:kotlin-reflect:1.7.10 -org.jetbrains.kotlin:kotlin-reflect:1.7.22 org.jetbrains.kotlin:kotlin-scripting-common:1.6.20 -org.jetbrains.kotlin:kotlin-scripting-common:1.7.22 +org.jetbrains.kotlin:kotlin-scripting-common:1.9.0 org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.6.20 -org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.7.22 +org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.0 org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.6.20 -org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.7.22 +org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.0 org.jetbrains.kotlin:kotlin-scripting-jvm:1.6.20 -org.jetbrains.kotlin:kotlin-scripting-jvm:1.7.22 -org.jetbrains.kotlin:kotlin-script-runtime:1.7.22 +org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.0 +org.jetbrains.kotlin:kotlin-script-runtime:1.9.0 org.jetbrains.kotlin:kotlin-stdlib-common:1.2.71 org.jetbrains.kotlin:kotlin-stdlib-common:1.3.20 org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50 @@ -833,6 +841,7 @@ org.jetbrains.kotlin:kotlin-stdlib-common:1.4.32 org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31 org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 org.jetbrains.kotlin:kotlin-stdlib-common:1.7.22 +org.jetbrains.kotlin:kotlin-stdlib-common:1.9.0 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.71 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.20 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50 @@ -841,6 +850,7 @@ org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.32 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.20 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.22 +org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.20 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50 @@ -848,6 +858,7 @@ org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31 org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.22 +org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0 org.jetbrains.kotlin:kotlin-stdlib:1.1.3-2 org.jetbrains.kotlin:kotlin-stdlib:1.2.71 org.jetbrains.kotlin:kotlin-stdlib:1.3.20 @@ -857,12 +868,13 @@ org.jetbrains.kotlin:kotlin-stdlib:1.4.32 org.jetbrains.kotlin:kotlin-stdlib:1.5.31 org.jetbrains.kotlin:kotlin-stdlib:1.6.20 org.jetbrains.kotlin:kotlin-stdlib:1.7.22 -org.jetbrains.kotlin:kotlin-tooling-core:1.7.22 +org.jetbrains.kotlin:kotlin-stdlib:1.9.0 +org.jetbrains.kotlin:kotlin-tooling-core:1.9.0 org.jetbrains.kotlin:kotlin-tooling-metadata:1.6.20 org.jetbrains.kotlin:kotlin-util-io:1.6.20 -org.jetbrains.kotlin:kotlin-util-io:1.7.22 +org.jetbrains.kotlin:kotlin-util-io:1.9.0 org.jetbrains.kotlin:kotlin-util-klib:1.6.20 -org.jetbrains.kotlin:kotlin-util-klib:1.7.22 +org.jetbrains.kotlin:kotlin-util-klib:1.9.0 org.jetbrains.trove4j:trove4j:20160824 org.jetbrains:annotations:13.0 org.jetbrains:markdown-jvm:0.2.1 @@ -930,4 +942,5 @@ org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.7.22 com.android.tools.lint:lint-gradle:30.4.2 com.android.tools.build:gradle:7.4.2 com.android.tools.build:aapt2:7.4.2-8841542 -org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 \ No newline at end of file +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 +org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.9.0 \ No newline at end of file diff --git a/nix/deps/gradle/deps.urls b/nix/deps/gradle/deps.urls index 97ec78f2d96d..cba1f595887c 100644 --- a/nix/deps/gradle/deps.urls +++ b/nix/deps/gradle/deps.urls @@ -697,7 +697,7 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotatio https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.4.0/error_prone_annotations-2.4.0.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.7.1/error_prone_annotations-2.7.1.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.9.0/error_prone_annotations-2.9.0.pom -https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.24.0/error_prone_annotations-2.24.0.pom +https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_annotations/2.24.1/error_prone_annotations-2.24.1.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.0.18/error_prone_parent-2.0.18.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.2.0/error_prone_parent-2.2.0.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.3.1/error_prone_parent-2.3.1.pom @@ -706,7 +706,7 @@ https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2. https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.4.0/error_prone_parent-2.4.0.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.7.1/error_prone_parent-2.7.1.pom https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.9.0/error_prone_parent-2.9.0.pom -https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.24.0/error_prone_parent-2.24.0.pom +https://repo.maven.apache.org/maven2/com/google/errorprone/error_prone_parent/2.24.1/error_prone_parent-2.24.1.pom https://repo.maven.apache.org/maven2/com/google/flatbuffers/flatbuffers-java/1.12.0/flatbuffers-java-1.12.0.pom https://repo.maven.apache.org/maven2/com/google/google/1/google-1.pom https://repo.maven.apache.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.pom @@ -1116,36 +1116,55 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-co https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.5.2/kotlinx-coroutines-core-1.5.2.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-metadata-jvm/0.1.0/kotlinx-metadata-jvm-0.1.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.7.22/org.jetbrains.kotlin.jvm.gradle.plugin-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.9.0/org.jetbrains.kotlin.jvm.gradle.plugin-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-extensions/1.6.20/kotlin-android-extensions-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-extensions/1.7.22/kotlin-android-extensions-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.0/kotlin-android-extensions-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-annotations-jvm/1.3.72/kotlin-annotations-jvm-1.3.72.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.6.20/kotlin-annotation-processing-gradle-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-annotation-processing-gradle/1.7.22/kotlin-annotation-processing-gradle-1.7.22.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-common/1.6.20/kotlin-build-common-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-common/1.7.22/kotlin-build-common-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-common/1.9.0/kotlin-build-common-1.9.0.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.0/kotlin-build-tools-api-1.9.0.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.0/kotlin-build-tools-impl-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.6.20/kotlin-compiler-embeddable-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.7.22/kotlin-compiler-embeddable-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.0/kotlin-compiler-embeddable-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/1.6.20/kotlin-compiler-runner-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/1.7.22/kotlin-compiler-runner-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.0/kotlin-compiler-runner-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/1.6.20/kotlin-daemon-client-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/1.7.22/kotlin-daemon-client-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.0/kotlin-daemon-client-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.6.20/kotlin-daemon-embeddable-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.7.22/kotlin-daemon-embeddable-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.0/kotlin-daemon-embeddable-1.9.0.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.0/kotlin-gradle-plugins-bom-1.9.0.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.0/kotlin-gradle-plugin-annotations-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.6.20/kotlin-gradle-plugin-api-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.7.22/kotlin-gradle-plugin-api-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.0/kotlin-gradle-plugin-api-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.7.22/kotlin-gradle-plugin-idea-proto-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.0/kotlin-gradle-plugin-idea-proto-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.7.22/kotlin-gradle-plugin-idea-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.0/kotlin-gradle-plugin-idea-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.6.20/kotlin-gradle-plugin-model-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.7.22/kotlin-gradle-plugin-model-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.0/kotlin-gradle-plugin-model-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.6.20/kotlin-gradle-plugin-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.7.22/kotlin-gradle-plugin-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.0/kotlin-gradle-plugin-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.6.20/kotlin-klib-commonizer-api-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.7.22/kotlin-klib-commonizer-api-1.7.22.pom -https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.7.22/kotlin-klib-commonizer-embeddable-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.0/kotlin-klib-commonizer-api-1.9.0.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.0/kotlin-klib-commonizer-embeddable-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-native-utils/1.6.20/kotlin-native-utils-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-native-utils/1.7.22/kotlin-native-utils-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-native-utils/1.9.0/kotlin-native-utils-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-project-model/1.6.20/kotlin-project-model-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-project-model/1.7.22/kotlin-project-model-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-project-model/1.9.0/kotlin-project-model-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.1.3-2/kotlin-reflect-1.1.3-2.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.2.0/kotlin-reflect-1.2.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.3.20/kotlin-reflect-1.3.20.pom @@ -1153,20 +1172,26 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.3.50/ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.3.72/kotlin-reflect-1.3.72.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.4.32/kotlin-reflect-1.4.32.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.5.31/kotlin-reflect-1.5.31.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.20/kotlin-reflect-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.10/kotlin-reflect-1.7.10.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.7.22/kotlin-reflect-1.7.22.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/2.0.0-Beta2/kotlin-reflect-2.0.0-Beta2.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.6.20/kotlin-scripting-common-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.7.22/kotlin-scripting-common-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.0/kotlin-scripting-common-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.6.20/kotlin-scripting-compiler-embeddable-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.7.22/kotlin-scripting-compiler-embeddable-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.0/kotlin-scripting-compiler-embeddable-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.6.20/kotlin-scripting-compiler-impl-embeddable-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.7.22/kotlin-scripting-compiler-impl-embeddable-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.0/kotlin-scripting-compiler-impl-embeddable-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.6.20/kotlin-scripting-jvm-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.7.22/kotlin-scripting-jvm-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.0/kotlin-scripting-jvm-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.6.20/kotlin-script-runtime-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.7.22/kotlin-script-runtime-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.0/kotlin-script-runtime-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.71/kotlin-stdlib-common-1.2.71.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.0/kotlin-stdlib-common-1.3.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.20/kotlin-stdlib-common-1.3.20.pom @@ -1187,6 +1212,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1 https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.6.21/kotlin-stdlib-common-1.6.21.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.10/kotlin-stdlib-common-1.7.10.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.22/kotlin-stdlib-common-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.0/kotlin-stdlib-common-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.2.71/kotlin-stdlib-jdk7-1.2.71.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.20/kotlin-stdlib-jdk7-1.3.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.3.50/kotlin-stdlib-jdk7-1.3.50.pom @@ -1199,6 +1225,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.5 https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.20/kotlin-stdlib-jdk7-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.10/kotlin-stdlib-jdk7-1.7.10.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.22/kotlin-stdlib-jdk7-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.0/kotlin-stdlib-jdk7-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.2.71/kotlin-stdlib-jdk8-1.2.71.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.20/kotlin-stdlib-jdk8-1.3.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.3.50/kotlin-stdlib-jdk8-1.3.50.pom @@ -1210,6 +1237,7 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5 https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5.31/kotlin-stdlib-jdk8-1.5.31.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.10/kotlin-stdlib-jdk8-1.7.10.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.22/kotlin-stdlib-jdk8-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.0/kotlin-stdlib-jdk8-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.1.3-2/kotlin-stdlib-1.1.3-2.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.0/kotlin-stdlib-1.2.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.20/kotlin-stdlib-1.2.20.pom @@ -1233,14 +1261,18 @@ https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.20/k https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.6.21/kotlin-stdlib-1.6.21.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.10/kotlin-stdlib-1.7.10.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.7.22/kotlin-stdlib-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.0/kotlin-stdlib-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.21/kotlin-stdlib-1.9.21.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.0.0-Beta2/kotlin-stdlib-2.0.0-Beta2.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.7.22/kotlin-tooling-core-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.0/kotlin-tooling-core-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-tooling-metadata/1.6.20/kotlin-tooling-metadata-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.6.20/kotlin-util-io-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.7.22/kotlin-util-io-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-io/1.9.0/kotlin-util-io-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-klib/1.6.20/kotlin-util-klib-1.6.20.pom https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-klib/1.7.22/kotlin-util-klib-1.7.22.pom +https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-util-klib/1.9.0/kotlin-util-klib-1.9.0.pom https://repo.maven.apache.org/maven2/org/jetbrains/markdown-jvm/0.2.1/markdown-jvm-0.2.1.pom https://repo.maven.apache.org/maven2/org/jetbrains/markdown/0.2.1/markdown-0.2.1.pom https://repo.maven.apache.org/maven2/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.pom @@ -1323,11 +1355,11 @@ https://repo.maven.apache.org/maven2/org/robolectric/utils-reflector/4.7.3/utils https://repo.maven.apache.org/maven2/org/robolectric/utils/4.7.3/utils-4.7.3.pom https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.pom https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.pom -https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.pom -https://repo.maven.apache.org/maven2/org/slf4j/slf4j-bom/2.0.9/slf4j-bom-2.0.9.pom +https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.1.0-alpha1/slf4j-api-2.1.0-alpha1.pom +https://repo.maven.apache.org/maven2/org/slf4j/slf4j-bom/2.1.0-alpha1/slf4j-bom-2.1.0-alpha1.pom https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/1.7.21/slf4j-parent-1.7.21.pom https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/1.7.30/slf4j-parent-1.7.30.pom -https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.0.9/slf4j-parent-2.0.9.pom +https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.1.0-alpha1/slf4j-parent-2.1.0-alpha1.pom https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/4/oss-parent-4.pom https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/5/oss-parent-5.pom https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom diff --git a/nix/deps/gradle/generate.sh b/nix/deps/gradle/generate.sh index 33971627ff0f..ee75249a2d46 100755 --- a/nix/deps/gradle/generate.sh +++ b/nix/deps/gradle/generate.sh @@ -50,7 +50,8 @@ org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.7.22 com.android.tools.lint:lint-gradle:30.4.2 com.android.tools.build:gradle:7.4.2 com.android.tools.build:aapt2:7.4.2-8841542 -org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2' \ +org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 +org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.9.0' \ >> "${DEPS_LIST}" }