diff --git a/apps/mobile/ios/Podfile.lock b/apps/mobile/ios/Podfile.lock index 67af2e3b1..f5f50a817 100644 --- a/apps/mobile/ios/Podfile.lock +++ b/apps/mobile/ios/Podfile.lock @@ -246,7 +246,7 @@ PODS: - ExpoModulesCore - ExpoLocalAuthentication (14.0.1): - ExpoModulesCore - - ExpoModulesCore (1.12.20): + - ExpoModulesCore (1.12.26): - DoubleConversion - glog - hermes-engine @@ -1619,33 +1619,33 @@ PODS: DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - - "EXApplication (from `../../../node_modules/.pnpm/expo-application@5.9.1_expo@51.0.26/node_modules/expo-application/ios`)" - - "EXConstants (from `../../../node_modules/.pnpm/expo-constants@16.0.2_expo@51.0.26/node_modules/expo-constants/ios`)" + - "EXApplication (from `../../../node_modules/.pnpm/expo-application@5.9.1_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7_7lz7kx4ithmpf53d4iw5wfty3a/node_modules/expo-application/ios`)" + - "EXConstants (from `../../../node_modules/.pnpm/expo-constants@16.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7._6hyhkvmxebmfkuqk4n7n33wbeu/node_modules/expo-constants/ios`)" - "EXJSONUtils (from `../../../node_modules/.pnpm/expo-json-utils@0.13.1/node_modules/expo-json-utils/ios`)" - - "EXManifests (from `../../../node_modules/.pnpm/expo-manifests@0.14.3_expo@51.0.26/node_modules/expo-manifests/ios`)" - - "EXNotifications (from `../../../node_modules/.pnpm/expo-notifications@0.28.14_expo@51.0.26/node_modules/expo-notifications/ios`)" - - "Expo (from `../../../node_modules/.pnpm/expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__@react-native+as_rs6zimjzbnb5wo5qz3wb7samvq/node_modules/expo`)" - - "expo-dev-client (from `../../../node_modules/.pnpm/expo-dev-client@4.0.20_expo@51.0.26/node_modules/expo-dev-client/ios`)" - - "expo-dev-launcher (from `../../../node_modules/.pnpm/expo-dev-launcher@4.0.22_expo@51.0.26/node_modules/expo-dev-launcher`)" - - "expo-dev-menu (from `../../../node_modules/.pnpm/expo-dev-menu@5.0.16_expo@51.0.26/node_modules/expo-dev-menu`)" - - "expo-dev-menu-interface (from `../../../node_modules/.pnpm/expo-dev-menu-interface@1.8.3_expo@51.0.26/node_modules/expo-dev-menu-interface/ios`)" - - "ExpoAsset (from `../../../node_modules/.pnpm/expo-asset@10.0.6_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__@react-nati_6amwmu4vugucqsw56blrmvig4e/node_modules/expo-asset/ios`)" - - "ExpoBlur (from `../../../node_modules/.pnpm/expo-blur@13.0.2_expo@51.0.26/node_modules/expo-blur/ios`)" - - "ExpoClipboard (from `../../../node_modules/.pnpm/expo-clipboard@6.0.3_expo@51.0.26/node_modules/expo-clipboard/ios`)" - - "ExpoCrypto (from `../../../node_modules/.pnpm/expo-crypto@13.0.2_expo@51.0.26/node_modules/expo-crypto/ios`)" - - "ExpoDevice (from `../../../node_modules/.pnpm/expo-device@6.0.2_expo@51.0.26/node_modules/expo-device/ios`)" - - "ExpoFileSystem (from `../../../node_modules/.pnpm/expo-file-system@17.0.1_expo@51.0.26/node_modules/expo-file-system/ios`)" - - "ExpoFont (from `../../../node_modules/.pnpm/expo-font@12.0.5_expo@51.0.26/node_modules/expo-font/ios`)" - - "ExpoHead (from `../../../node_modules/.pnpm/expo-router@3.5.14_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__@react-nat_ulqj4esf6v7azt2eimpkxhoiuu/node_modules/expo-router/ios`)" - - "ExpoImage (from `../../../node_modules/.pnpm/expo-image@1.12.9_expo@51.0.26/node_modules/expo-image/ios`)" - - "ExpoKeepAwake (from `../../../node_modules/.pnpm/expo-keep-awake@13.0.2_expo@51.0.26/node_modules/expo-keep-awake/ios`)" - - "ExpoLocalAuthentication (from `../../../node_modules/.pnpm/expo-local-authentication@14.0.1_expo@51.0.26/node_modules/expo-local-authentication/ios`)" - - "ExpoModulesCore (from `../../../node_modules/.pnpm/expo-modules-core@1.12.20/node_modules/expo-modules-core`)" - - "ExpoSecureStore (from `../../../node_modules/.pnpm/expo-secure-store@13.0.2_patch_hash=hl63v2r5dtztyuge4wydprmp6u_expo@51.0.26/node_modules/expo-secure-store/ios`)" - - "ExpoSystemUI (from `../../../node_modules/.pnpm/expo-system-ui@3.0.7_expo@51.0.26/node_modules/expo-system-ui/ios`)" - - "ExpoWebBrowser (from `../../../node_modules/.pnpm/expo-web-browser@13.0.3_expo@51.0.26/node_modules/expo-web-browser/ios`)" - - "EXSplashScreen (from `../../../node_modules/.pnpm/expo-splash-screen@0.27.4_expo-modules-autolinking@1.11.1_expo@51.0.26/node_modules/expo-splash-screen/ios`)" - - "EXUpdatesInterface (from `../../../node_modules/.pnpm/expo-updates-interface@0.16.2_expo@51.0.26/node_modules/expo-updates-interface/ios`)" + - "EXManifests (from `../../../node_modules/.pnpm/expo-manifests@0.14.3_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7._kxmlgbanmij6z36l3pnsibhlha/node_modules/expo-manifests/ios`)" + - "EXNotifications (from `../../../node_modules/.pnpm/expo-notifications@0.28.14_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+co_34qdk7mejsopgk23vy7bbnsvsq/node_modules/expo-notifications/ios`)" + - "Expo (from `../../../node_modules/.pnpm/expo@51.0.26_f4nuazufu6irvgtd3prinuxkb4/node_modules/expo`)" + - "expo-dev-client (from `../../../node_modules/.pnpm/expo-dev-client@4.0.20_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7_gmps7dyuicvyrydfqbtht5hiam/node_modules/expo-dev-client/ios`)" + - "expo-dev-launcher (from `../../../node_modules/.pnpm/expo-dev-launcher@4.0.22_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core_4yn64zgy6nc4ta3qecehvlodhy/node_modules/expo-dev-launcher`)" + - "expo-dev-menu (from `../../../node_modules/.pnpm/expo-dev-menu@5.0.16_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.2_sv4q23kfwrr3e7xjv5gylxpsgq/node_modules/expo-dev-menu`)" + - "expo-dev-menu-interface (from `../../../node_modules/.pnpm/expo-dev-menu-interface@1.8.3_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel_3pff7gitcjyg3566uk7iek4nly/node_modules/expo-dev-menu-interface/ios`)" + - "ExpoAsset (from `../../../node_modules/.pnpm/expo-asset@10.0.6_b5dqityn7dtitewgaq3fc4hps4/node_modules/expo-asset/ios`)" + - "ExpoBlur (from `../../../node_modules/.pnpm/expo-blur@13.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__7adgaqkt3gd55jdqlkye4ibxjq/node_modules/expo-blur/ios`)" + - "ExpoClipboard (from `../../../node_modules/.pnpm/expo-clipboard@6.0.3_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.2_ccxjrrzlt5s5uamvnr4nwtms4e/node_modules/expo-clipboard/ios`)" + - "ExpoCrypto (from `../../../node_modules/.pnpm/expo-crypto@13.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24._h2ulmuk5g5qgvgcwhyc4imwx24/node_modules/expo-crypto/ios`)" + - "ExpoDevice (from `../../../node_modules/.pnpm/expo-device@6.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6_ypbzdx34cdu4iu7nzusi7hd7eq/node_modules/expo-device/ios`)" + - "ExpoFileSystem (from `../../../node_modules/.pnpm/expo-file-system@17.0.1_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@_oh5zrhcvqmg5s6il5rvw6x2gya/node_modules/expo-file-system/ios`)" + - "ExpoFont (from `../../../node_modules/.pnpm/expo-font@12.0.5_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__afwzzcqn4qtqhraani2se7asxi/node_modules/expo-font/ios`)" + - "ExpoHead (from `../../../node_modules/.pnpm/expo-router@3.5.14_ziqwy7qcm4nz5ldsjzzgjxs67m/node_modules/expo-router/ios`)" + - "ExpoImage (from `../../../node_modules/.pnpm/expo-image@1.12.9_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6_pqycbzooiimpwcftmzylw6b6ue/node_modules/expo-image/ios`)" + - "ExpoKeepAwake (from `../../../node_modules/.pnpm/expo-keep-awake@13.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7_w5fcokd4xqykouihhq65zfvhwu/node_modules/expo-keep-awake/ios`)" + - "ExpoLocalAuthentication (from `../../../node_modules/.pnpm/expo-local-authentication@14.0.1_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@ba_bcvjridgatxs26fiu2o33lgbby/node_modules/expo-local-authentication/ios`)" + - "ExpoModulesCore (from `../../../node_modules/.pnpm/expo-modules-core@1.12.26/node_modules/expo-modules-core`)" + - "ExpoSecureStore (from `../../../node_modules/.pnpm/expo-secure-store@13.0.2_patch_hash=hl63v2r5dtztyuge4wydprmp6u_expo@51.0.26_@babel+core@7.24._qblhklgyytdrqryzqbjo45ylay/node_modules/expo-secure-store/ios`)" + - "ExpoSystemUI (from `../../../node_modules/.pnpm/expo-system-ui@3.0.7_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.2_36opljfl2csscygkp6xjaz2hv4/node_modules/expo-system-ui/ios`)" + - "ExpoWebBrowser (from `../../../node_modules/.pnpm/expo-web-browser@13.0.3_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@_rn7tpmwskp4kjoe2dtluysnlry/node_modules/expo-web-browser/ios`)" + - "EXSplashScreen (from `../../../node_modules/.pnpm/expo-splash-screen@0.27.4_expo-modules-autolinking@1.11.1_expo@51.0.26_@babel+core@7.24.6_@ba_rk6ye7ixhx2dscrdqo6c2gudcq/node_modules/expo-splash-screen/ios`)" + - "EXUpdatesInterface (from `../../../node_modules/.pnpm/expo-updates-interface@0.16.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel_f6sminjnqm3hizjnssizza27yu/node_modules/expo-updates-interface/ios`)" - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) @@ -1731,59 +1731,59 @@ EXTERNAL SOURCES: DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" EXApplication: - :path: "../../../node_modules/.pnpm/expo-application@5.9.1_expo@51.0.26/node_modules/expo-application/ios" + :path: "../../../node_modules/.pnpm/expo-application@5.9.1_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7_7lz7kx4ithmpf53d4iw5wfty3a/node_modules/expo-application/ios" EXConstants: - :path: "../../../node_modules/.pnpm/expo-constants@16.0.2_expo@51.0.26/node_modules/expo-constants/ios" + :path: "../../../node_modules/.pnpm/expo-constants@16.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7._6hyhkvmxebmfkuqk4n7n33wbeu/node_modules/expo-constants/ios" EXJSONUtils: :path: "../../../node_modules/.pnpm/expo-json-utils@0.13.1/node_modules/expo-json-utils/ios" EXManifests: - :path: "../../../node_modules/.pnpm/expo-manifests@0.14.3_expo@51.0.26/node_modules/expo-manifests/ios" + :path: "../../../node_modules/.pnpm/expo-manifests@0.14.3_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7._kxmlgbanmij6z36l3pnsibhlha/node_modules/expo-manifests/ios" EXNotifications: - :path: "../../../node_modules/.pnpm/expo-notifications@0.28.14_expo@51.0.26/node_modules/expo-notifications/ios" + :path: "../../../node_modules/.pnpm/expo-notifications@0.28.14_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+co_34qdk7mejsopgk23vy7bbnsvsq/node_modules/expo-notifications/ios" Expo: - :path: "../../../node_modules/.pnpm/expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__@react-native+as_rs6zimjzbnb5wo5qz3wb7samvq/node_modules/expo" + :path: "../../../node_modules/.pnpm/expo@51.0.26_f4nuazufu6irvgtd3prinuxkb4/node_modules/expo" expo-dev-client: - :path: "../../../node_modules/.pnpm/expo-dev-client@4.0.20_expo@51.0.26/node_modules/expo-dev-client/ios" + :path: "../../../node_modules/.pnpm/expo-dev-client@4.0.20_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7_gmps7dyuicvyrydfqbtht5hiam/node_modules/expo-dev-client/ios" expo-dev-launcher: - :path: "../../../node_modules/.pnpm/expo-dev-launcher@4.0.22_expo@51.0.26/node_modules/expo-dev-launcher" + :path: "../../../node_modules/.pnpm/expo-dev-launcher@4.0.22_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core_4yn64zgy6nc4ta3qecehvlodhy/node_modules/expo-dev-launcher" expo-dev-menu: - :path: "../../../node_modules/.pnpm/expo-dev-menu@5.0.16_expo@51.0.26/node_modules/expo-dev-menu" + :path: "../../../node_modules/.pnpm/expo-dev-menu@5.0.16_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.2_sv4q23kfwrr3e7xjv5gylxpsgq/node_modules/expo-dev-menu" expo-dev-menu-interface: - :path: "../../../node_modules/.pnpm/expo-dev-menu-interface@1.8.3_expo@51.0.26/node_modules/expo-dev-menu-interface/ios" + :path: "../../../node_modules/.pnpm/expo-dev-menu-interface@1.8.3_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel_3pff7gitcjyg3566uk7iek4nly/node_modules/expo-dev-menu-interface/ios" ExpoAsset: - :path: "../../../node_modules/.pnpm/expo-asset@10.0.6_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__@react-nati_6amwmu4vugucqsw56blrmvig4e/node_modules/expo-asset/ios" + :path: "../../../node_modules/.pnpm/expo-asset@10.0.6_b5dqityn7dtitewgaq3fc4hps4/node_modules/expo-asset/ios" ExpoBlur: - :path: "../../../node_modules/.pnpm/expo-blur@13.0.2_expo@51.0.26/node_modules/expo-blur/ios" + :path: "../../../node_modules/.pnpm/expo-blur@13.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__7adgaqkt3gd55jdqlkye4ibxjq/node_modules/expo-blur/ios" ExpoClipboard: - :path: "../../../node_modules/.pnpm/expo-clipboard@6.0.3_expo@51.0.26/node_modules/expo-clipboard/ios" + :path: "../../../node_modules/.pnpm/expo-clipboard@6.0.3_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.2_ccxjrrzlt5s5uamvnr4nwtms4e/node_modules/expo-clipboard/ios" ExpoCrypto: - :path: "../../../node_modules/.pnpm/expo-crypto@13.0.2_expo@51.0.26/node_modules/expo-crypto/ios" + :path: "../../../node_modules/.pnpm/expo-crypto@13.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24._h2ulmuk5g5qgvgcwhyc4imwx24/node_modules/expo-crypto/ios" ExpoDevice: - :path: "../../../node_modules/.pnpm/expo-device@6.0.2_expo@51.0.26/node_modules/expo-device/ios" + :path: "../../../node_modules/.pnpm/expo-device@6.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6_ypbzdx34cdu4iu7nzusi7hd7eq/node_modules/expo-device/ios" ExpoFileSystem: - :path: "../../../node_modules/.pnpm/expo-file-system@17.0.1_expo@51.0.26/node_modules/expo-file-system/ios" + :path: "../../../node_modules/.pnpm/expo-file-system@17.0.1_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@_oh5zrhcvqmg5s6il5rvw6x2gya/node_modules/expo-file-system/ios" ExpoFont: - :path: "../../../node_modules/.pnpm/expo-font@12.0.5_expo@51.0.26/node_modules/expo-font/ios" + :path: "../../../node_modules/.pnpm/expo-font@12.0.5_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__afwzzcqn4qtqhraani2se7asxi/node_modules/expo-font/ios" ExpoHead: - :path: "../../../node_modules/.pnpm/expo-router@3.5.14_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6__@react-nat_ulqj4esf6v7azt2eimpkxhoiuu/node_modules/expo-router/ios" + :path: "../../../node_modules/.pnpm/expo-router@3.5.14_ziqwy7qcm4nz5ldsjzzgjxs67m/node_modules/expo-router/ios" ExpoImage: - :path: "../../../node_modules/.pnpm/expo-image@1.12.9_expo@51.0.26/node_modules/expo-image/ios" + :path: "../../../node_modules/.pnpm/expo-image@1.12.9_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.24.6_pqycbzooiimpwcftmzylw6b6ue/node_modules/expo-image/ios" ExpoKeepAwake: - :path: "../../../node_modules/.pnpm/expo-keep-awake@13.0.2_expo@51.0.26/node_modules/expo-keep-awake/ios" + :path: "../../../node_modules/.pnpm/expo-keep-awake@13.0.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7_w5fcokd4xqykouihhq65zfvhwu/node_modules/expo-keep-awake/ios" ExpoLocalAuthentication: - :path: "../../../node_modules/.pnpm/expo-local-authentication@14.0.1_expo@51.0.26/node_modules/expo-local-authentication/ios" + :path: "../../../node_modules/.pnpm/expo-local-authentication@14.0.1_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@ba_bcvjridgatxs26fiu2o33lgbby/node_modules/expo-local-authentication/ios" ExpoModulesCore: - :path: "../../../node_modules/.pnpm/expo-modules-core@1.12.20/node_modules/expo-modules-core" + :path: "../../../node_modules/.pnpm/expo-modules-core@1.12.26/node_modules/expo-modules-core" ExpoSecureStore: - :path: "../../../node_modules/.pnpm/expo-secure-store@13.0.2_patch_hash=hl63v2r5dtztyuge4wydprmp6u_expo@51.0.26/node_modules/expo-secure-store/ios" + :path: "../../../node_modules/.pnpm/expo-secure-store@13.0.2_patch_hash=hl63v2r5dtztyuge4wydprmp6u_expo@51.0.26_@babel+core@7.24._qblhklgyytdrqryzqbjo45ylay/node_modules/expo-secure-store/ios" ExpoSystemUI: - :path: "../../../node_modules/.pnpm/expo-system-ui@3.0.7_expo@51.0.26/node_modules/expo-system-ui/ios" + :path: "../../../node_modules/.pnpm/expo-system-ui@3.0.7_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@7.2_36opljfl2csscygkp6xjaz2hv4/node_modules/expo-system-ui/ios" ExpoWebBrowser: - :path: "../../../node_modules/.pnpm/expo-web-browser@13.0.3_expo@51.0.26/node_modules/expo-web-browser/ios" + :path: "../../../node_modules/.pnpm/expo-web-browser@13.0.3_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel+core@_rn7tpmwskp4kjoe2dtluysnlry/node_modules/expo-web-browser/ios" EXSplashScreen: - :path: "../../../node_modules/.pnpm/expo-splash-screen@0.27.4_expo-modules-autolinking@1.11.1_expo@51.0.26/node_modules/expo-splash-screen/ios" + :path: "../../../node_modules/.pnpm/expo-splash-screen@0.27.4_expo-modules-autolinking@1.11.1_expo@51.0.26_@babel+core@7.24.6_@ba_rk6ye7ixhx2dscrdqo6c2gudcq/node_modules/expo-splash-screen/ios" EXUpdatesInterface: - :path: "../../../node_modules/.pnpm/expo-updates-interface@0.16.2_expo@51.0.26/node_modules/expo-updates-interface/ios" + :path: "../../../node_modules/.pnpm/expo-updates-interface@0.16.2_expo@51.0.26_@babel+core@7.24.6_@babel+preset-env@7.25.8_@babel_f6sminjnqm3hizjnssizza27yu/node_modules/expo-updates-interface/ios" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" fmt: @@ -1938,7 +1938,7 @@ SPEC CHECKSUMS: ExpoImage: eab004b9363e388d3f6a118f18716de6dcfb8e8d ExpoKeepAwake: 3b8815d9dd1d419ee474df004021c69fdd316d08 ExpoLocalAuthentication: 9e02a56a4cf9868f0052656a93d4c94101a42ed7 - ExpoModulesCore: 5440e96a8ee014f4fd88e77264985fd0a65f5f8c + ExpoModulesCore: 831ece8311a489418746925820bbffdda587d6f4 ExpoSecureStore: 060cebcb956b80ddae09821610ac1aa9e1ac74cd ExpoSystemUI: d4f065a016cae6721b324eb659cdee4d4cf0cb26 ExpoWebBrowser: 7595ccac6938eb65b076385fd23d035db9ecdc8e diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 1de81856a..8a6c30fa9 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -68,7 +68,7 @@ "@stacks/common": "6.13.0", "@stacks/stacks-blockchain-api-types": "7.8.2", "@stacks/transactions": "6.17.0", - "@stacks/wallet-sdk": "6.15.0", + "@stacks/wallet-sdk": "7.0.0", "@tanstack/react-query": "5.59.16", "bignumber.js": "9.1.2", "buffer": "6.0.3", diff --git a/apps/mobile/src/hooks/api-clients.hooks.ts b/apps/mobile/src/hooks/api-clients.hooks.ts new file mode 100644 index 000000000..359a40581 --- /dev/null +++ b/apps/mobile/src/hooks/api-clients.hooks.ts @@ -0,0 +1,12 @@ +// from extension/src/app/store/common/api-clients.ts +import { useMemo } from 'react'; + +import { stacksClient, useCurrentNetworkState } from '@leather.io/query'; + +export function useStacksClient(): ReturnType { + const network = useCurrentNetworkState(); + + return useMemo(() => { + return stacksClient(network.chain.stacks.url); + }, [network.chain.stacks.url]); +} diff --git a/apps/mobile/src/store/accounts/accounts.write.ts b/apps/mobile/src/store/accounts/accounts.write.ts index f552e5436..e47ddf3ac 100644 --- a/apps/mobile/src/store/accounts/accounts.write.ts +++ b/apps/mobile/src/store/accounts/accounts.write.ts @@ -79,6 +79,15 @@ export const accountsSlice = createSlice({ }) ); }) + .addCase(userAddsAccounts, (state, action) => { + const accounts = action.payload.map((payload, index) => + addAccountDefaults({ + account: payload.account, + accountIdx: index + 1, + }) + ); + return accountsAdapter.addMany(state, accounts); + }) .addCase( userTogglesHideAccount, @@ -127,6 +136,7 @@ interface AddAccountPayload { }; } export const userAddsAccount = createAction('accounts/userAddsAccount'); +export const userAddsAccounts = createAction('accounts/userAddsAccounts'); interface ToggleHideAccountPayload { accountId: string; diff --git a/apps/mobile/src/store/key-store.ts b/apps/mobile/src/store/key-store.ts index a619b5d7f..d9fd372d3 100644 --- a/apps/mobile/src/store/key-store.ts +++ b/apps/mobile/src/store/key-store.ts @@ -1,4 +1,11 @@ +// useStacksClient should be in the query package +import { useStacksClient } from '@/hooks/api-clients.hooks'; +import { AddressVersion } from '@stacks/transactions'; + import { + deriveAddressIndexZeroFromAccount, + deriveNativeSegwitAccountFromRootKeychain, + getNativeSegwitPaymentFromAddressIndex, makeNativeSegwitAccountDerivationPath, makeTaprootAccountDerivationPath, } from '@leather.io/bitcoin'; @@ -8,12 +15,19 @@ import { deriveRootBip32Keychain, generateMnemonic, getMnemonicRootKeyFingerprint, + recurseAccountsForActivity, } from '@leather.io/crypto'; +import { useBitcoinClient } from '@leather.io/query'; import { stacksRootKeychainToAccountDescriptor } from '@leather.io/stacks'; -import { userAddsAccount, userTogglesHideAccount } from './accounts/accounts.write'; +import { + userAddsAccount, + userAddsAccounts, + userTogglesHideAccount, +} from './accounts/accounts.write'; import { useBitcoinAccounts } from './keychains/bitcoin/bitcoin-keychains.read'; import { findHighestAccountIndexOfFingerprint } from './keychains/keychains'; +import { getStacksAddressByIndex } from './keychains/stacks/utils'; import { mnemonicStore } from './storage-persistors'; import { makeAccountIdentifer, useAppDispatch } from './utils'; import { useWallets } from './wallets/wallets.read'; @@ -36,6 +50,9 @@ export function useKeyStore() { const wallets = useWallets(); const bitcoinKeychains = useBitcoinAccounts(); + const stxClient = useStacksClient(); + const btcClient = useBitcoinClient(); + return { async createTemporarySoftwareWallet() { const mnemonic = generateMnemonic(); @@ -50,7 +67,6 @@ export function useKeyStore() { async isWalletInKeychain({ fingerprint }: { fingerprint: string }) { return !!wallets.list.find(wallet => wallet.fingerprint === fingerprint); }, - async restoreWalletFromMnemonic({ biometrics, mnemonic, @@ -61,6 +77,8 @@ export function useKeyStore() { passphrase?: string; }) { const fingerprint = await getMnemonicRootKeyFingerprint(mnemonic, passphrase); + + // checks if the wallet exists if (await this.isWalletInKeychain({ fingerprint })) { keychainErrorHandlers.throwKeyExistsError(); return; @@ -74,7 +92,6 @@ export function useKeyStore() { withKeychains: { bitcoin: bitcoinKeychains, stacks: stacksKeychains }, }); }, - async createNewAccountOfWallet(fingerprint: string) { const { accountIndex, bitcoinKeychains, stacksKeychains } = await this.deriveNextAccountKeychainsFrom(fingerprint); @@ -89,6 +106,24 @@ export function useKeyStore() { }) ); }, + async createNewAccountsOfWallet(fingerprint: string, activeAccounts: number) { + const { bitcoinKeychains, stacksKeychains } = + await this.deriveNextAccountKeychainsFrom(fingerprint); + + dispatch( + userAddsAccounts( + Array.from({ length: activeAccounts }, (_, i) => ({ + account: { + id: makeAccountIdentifer(fingerprint, i), + }, + withKeychains: { + bitcoin: bitcoinKeychains, + stacks: stacksKeychains, + }, + })) + ) + ); + }, async deriveNextAccountKeychainsFrom(fingerprint: string) { const { mnemonic, passphrase } = await mnemonicStore(fingerprint).getMnemonic(); @@ -109,6 +144,54 @@ export function useKeyStore() { const nextAccountIndex = fingerprintAccounts.length === 0 ? 0 : highestKeychainAccountIndex + 1; + // in extension secretKey is the mnemonic + const secretKey = mnemonic; + + async function doesStacksAddressHaveBalance(address: string) { + const controller = new AbortController(); + const resp = await stxClient.getAccountBalance(address, controller.signal); + return Number(resp.stx.balance) > 0; + } + async function doesBitcoinAddressHaveBalance(address: string) { + const resp = await btcClient.addressApi.getUtxosByAddress(address); + return resp.length > 0; + } + + function getNativeSegwitMainnetAddressFromMnemonic() { + return (accountIndex: number) => { + const account = deriveNativeSegwitAccountFromRootKeychain( + rootKeychain, + 'mainnet' + )(accountIndex); + + return getNativeSegwitPaymentFromAddressIndex( + deriveAddressIndexZeroFromAccount(account.keychain), + 'mainnet' + ); + }; + } + + try { + void recurseAccountsForActivity({ + async doesAddressHaveActivityFn(index: number) { + // seems like it could be better to do this with useQueries for batches of accountIndexes + const stxAddress = getStacksAddressByIndex( + secretKey, + AddressVersion.MainnetSingleSig + )(index); + // here we call doesStacksAddressHaveBalance which calls stacks client directly not using react query + const hasStxBalance = await doesStacksAddressHaveBalance(stxAddress); + + // TODO - refactor this to use new queries + const btcAddress = getNativeSegwitMainnetAddressFromMnemonic()(index); + const hasBtcBalance = await doesBitcoinAddressHaveBalance(btcAddress.address!); + return hasStxBalance || hasBtcBalance; + }, + }).then((activeAccounts: number) => { + this.createNewAccountsOfWallet(fingerprint, activeAccounts); + }); + } catch {} + const stacksKeychainDescriptors = [ { descriptor: stacksRootKeychainToAccountDescriptor(rootKeychain, nextAccountIndex) }, ]; diff --git a/apps/mobile/src/store/keychains/stacks/utils.ts b/apps/mobile/src/store/keychains/stacks/utils.ts index 8a331b42e..8e7bba8eb 100644 --- a/apps/mobile/src/store/keychains/stacks/utils.ts +++ b/apps/mobile/src/store/keychains/stacks/utils.ts @@ -1,6 +1,16 @@ import { entitySchema } from '@/store/utils'; +import { + AddressVersion, + createStacksPrivateKey, + getPublicKey, + publicKeyToAddress, +} from '@stacks/transactions'; +import { deriveStxPrivateKey } from '@stacks/wallet-sdk'; import z from 'zod'; +// todo fix this deprecated import +import { mnemonicToRootNode } from '@leather.io/bitcoin'; + const stacksKeychainSchema = z.object({ // Stacks doesn't use the concept of BIP-380 Descriptors the same way Bitcoin // does. However, we need to store the same data. Reusing this structure @@ -12,3 +22,14 @@ const stacksKeychainSchema = z.object({ export type StacksKeychain = z.infer; export const stacksKeychainStoreSchema = entitySchema(stacksKeychainSchema); export type StacksKeychainStore = z.infer; + +// seems like secretKey is the mnemonic in this code?? +export function getStacksAddressByIndex(secretKey: string, addressVersion: AddressVersion) { + return (index: number) => { + const accountPrivateKey = createStacksPrivateKey( + deriveStxPrivateKey({ rootNode: mnemonicToRootNode(secretKey) as any, index }) + ); + const pubKey = getPublicKey(accountPrivateKey); + return publicKeyToAddress(addressVersion, pubKey); + }; +} diff --git a/packages/crypto/src/index.ts b/packages/crypto/src/index.ts index d11733eb8..46eeb6264 100644 --- a/packages/crypto/src/index.ts +++ b/packages/crypto/src/index.ts @@ -1,3 +1,4 @@ export * from './derivation-path-utils'; export * from './keychain'; export * from './signer/signer'; +export * from './recurse-accounts'; diff --git a/packages/crypto/src/recurse-accounts.ts b/packages/crypto/src/recurse-accounts.ts new file mode 100644 index 000000000..3c068b095 --- /dev/null +++ b/packages/crypto/src/recurse-accounts.ts @@ -0,0 +1,77 @@ +// from extension src/app/common/account-restoration/account-restore.ts +import { createCounter, fibonacciGenerator } from '@leather.io/utils'; + +const numOfEmptyAccountsToCheck = 20; + +interface AccountIndexActivityCheckHistory { + index: number; + hasActivity: boolean; +} + +function minNumberOfAccountsNotChecked(num: number) { + return num < numOfEmptyAccountsToCheck; +} + +function anyOfLastCheckedAccountsHaveActivity(arr: AccountIndexActivityCheckHistory[]) { + return arr.slice(arr.length - numOfEmptyAccountsToCheck).some(check => check.hasActivity); +} + +function returnHighestIndex(arr: AccountIndexActivityCheckHistory[]) { + return Math.max(0, ...arr.filter(check => check.hasActivity).map(check => check.index)); +} + +async function recurseUntilGeneratorDone(generator: AsyncGenerator): Promise { + const result = await generator.next(); + if (result.done) return result.value; + return recurseUntilGeneratorDone(generator); +} + +interface RecurseAccountsForActivityArgs { + doesAddressHaveActivityFn(index: number): Promise; +} + +/** + * Used to recursively look for account activity. The use case is that, when + * restoring an account, we want to know how many accounts to generate. This + * function makes no assumption as to what constitutes an active account. It + * takes a function that returns a boolean. If true, it means that the account + * at the given index is considered to have activity. + * + * Original PR was https://github.com/leather-io/extension/pull/3026 + */ +export async function recurseAccountsForActivity({ + doesAddressHaveActivityFn, +}: RecurseAccountsForActivityArgs): Promise { + async function* findHighestAddressIndexExponent() { + const fibonacci = fibonacciGenerator(2); + const activity: AccountIndexActivityCheckHistory[] = []; + + while (activity.length === 0 || activity[activity.length - 1]?.hasActivity) { + const index = fibonacci.next().value; + const hasActivity = await doesAddressHaveActivityFn(index); + activity.push({ index, hasActivity }); + yield; + } + return returnHighestIndex(activity); + } + + const knownActivityAtIndex = await recurseUntilGeneratorDone(findHighestAddressIndexExponent()); + async function* checkForMostRecentAccount() { + const indexCounter = createCounter(knownActivityAtIndex + 1); + const activity: AccountIndexActivityCheckHistory[] = []; + + while ( + minNumberOfAccountsNotChecked(activity.length) || + anyOfLastCheckedAccountsHaveActivity(activity) + ) { + const hasActivity = await doesAddressHaveActivityFn(indexCounter.getValue()); + activity.push({ index: indexCounter.getValue(), hasActivity }); + indexCounter.increment(); + yield; + } + return returnHighestIndex(activity); + } + const mostRecentAccount = await recurseUntilGeneratorDone(checkForMostRecentAccount()); + const accountsToRestore = mostRecentAccount; + return accountsToRestore; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a3cc270c..599a3b887 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -175,8 +175,8 @@ importers: specifier: 6.17.0 version: 6.17.0 '@stacks/wallet-sdk': - specifier: 6.15.0 - version: 6.15.0 + specifier: 7.0.0 + version: 7.0.0 '@tanstack/react-query': specifier: 5.59.16 version: 5.59.16(react@18.2.0) @@ -2583,6 +2583,10 @@ packages: resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2593,7 +2597,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {node: '>=0.10.0'} + engines: {'0': node >=0.10.0} '@expo/cli@0.18.28': resolution: {integrity: sha512-fvbVPId6s6etindzP6Nzos/CS1NurMVy4JKozjebArHr63tBid5i/UY5Pp+4wTCAM20gB2SjRdwcwoL6HFC4Iw==} @@ -2917,7 +2921,6 @@ packages: '@ls-lint/ls-lint@2.2.3': resolution: {integrity: sha512-ekM12jNm/7O2I/hsRv9HvYkRdfrHpiV1epVuI2NP+eTIcEgdIdKkKCs9KgQydu/8R5YXTov9aHdOgplmCHLupw==} - cpu: [x64, arm64, s390x] os: [darwin, linux, win32] hasBin: true @@ -4271,6 +4274,9 @@ packages: '@stacks/auth@6.17.0': resolution: {integrity: sha512-SaxB6ULkYLRd5WZotymlPzroBn5/28KgJOTY0nKDcwCqxSkYjPZepweA30LK5eUOmePuGILaMTagj1ibZRnvUg==} + '@stacks/auth@7.0.0': + resolution: {integrity: sha512-p0/FJy5jRRgtsVzGpWDgNE0fi/ioPCL3S1tZHRsvdKO7moquHWnTlBV/9yVkGbd+V0kD95Sd0euX5pwWA82MhA==} + '@stacks/common@6.13.0': resolution: {integrity: sha512-wwzyihjaSdmL6NxKvDeayy3dqM0L0Q2sawmdNtzJDi0FnXuJGm5PeapJj7bEfcI9XwI7Bw5jZoC6mCn9nc5YIw==} @@ -4292,6 +4298,9 @@ packages: '@stacks/encryption@6.17.0': resolution: {integrity: sha512-c0+ZOjrAiB1fDCjXO6XqHdYgpeBeMYyeH+dWahpD1VQUDor2PE5Q47qyuibWmx36rLWt1M6wlaLdeVm6HlKGzw==} + '@stacks/encryption@7.0.0': + resolution: {integrity: sha512-kQhiurn8s0DV6OALqEy2Aqwp2DNJUD41S1bnD/+UESyEDD5XRqL84MEo7mCL8pTPr+FVdhT+diEIPeAfEtbTPQ==} + '@stacks/network@6.13.0': resolution: {integrity: sha512-Ss/Da4BNyPBBj1OieM981fJ7SkevKqLPkzoI1+Yo7cYR2df+0FipIN++Z4RfpJpc8ne60vgcx7nJZXQsiGhKBQ==} @@ -4304,14 +4313,17 @@ packages: '@stacks/profile@6.17.0': resolution: {integrity: sha512-EoYe0NapFc6bgA+vyCVY2sYYRHk3pbsbRnm3eaSp8y9Drfy8dBqsM10W1jjTwOn0R+IMmDT52lojdW7Pw3c7Mw==} + '@stacks/profile@7.0.0': + resolution: {integrity: sha512-E9RDodVgcLBs6ZiV88lVQyDjA8ZDVPswbPpLNHeAA+evJ2GwRKMJrNnirjydMI37aWm3ZpYOEMLMbqdi38VR7w==} + '@stacks/rpc-client@1.0.3': resolution: {integrity: sha512-lao7MKCq39VA86v2rJzmgjHKG5bg9LWdLSzvktuEy3lfatVki/hRm6sitkmNhYVcdUVp3YV9gyW6mvu7U9weWw==} '@stacks/stacks-blockchain-api-types@7.8.2': resolution: {integrity: sha512-wcDSdgIZx/ttQfUTPtGJOIyEkTOjmCsC79TaIyxTIiihSgrGppqTuzkwHD/DyuQkcJtUZvDTxMsAXkBKShE1kw==} - '@stacks/storage@6.17.0': - resolution: {integrity: sha512-vhgV8C+1UahSWrafOHh/ZnTVYs8JadLsh5OZCVgtxWXV7z8ruQzVN24eeXbR+C7Vme2YpDP210ly7Wyqxd755Q==} + '@stacks/storage@7.0.0': + resolution: {integrity: sha512-yOR16ItzKDn0cl7jKZpO1LBCm+CIAUZgBRbWFPTqVMU5tzMTWnDt8gqM/ZrYYcCZs07VOUl2VyAaCqvEH2ZrVg==} '@stacks/transactions@6.17.0': resolution: {integrity: sha512-FUah2BRgV66ApLcEXGNGhwyFTRXqX5Zco3LpiM3essw8PF0NQlHwwdPgtDko5RfrJl3LhGXXe/30nwsfNnB3+g==} @@ -4319,8 +4331,8 @@ packages: '@stacks/transactions@7.0.0': resolution: {integrity: sha512-9kGTnJLwRQPugLzbdJ8MmFED+eRhlJKIXpz2mshyy238hvBc4T0jynsoJMi4qGqvJYzsiRYCLDPJVkkUde85vA==} - '@stacks/wallet-sdk@6.15.0': - resolution: {integrity: sha512-VBMiWe5UAyDnvc2w8/XN7QuSkbXTnAJ5rvtzedb7yXKgIBMSjE+gQnUm0XasbNDRHc58Ag76IAMAIKh4ZAMC4w==} + '@stacks/wallet-sdk@7.0.0': + resolution: {integrity: sha512-OX1rtaKQ85IAI2oL8pBf3RLTnCvvWs9FLxiTE+OCyngXTS+x5Zzqc4qiTqj+WHo7xNF1/LTPx6DAzZ5LG+TOFw==} '@stdlib/array-float32@0.0.6': resolution: {integrity: sha512-QgKT5UaE92Rv7cxfn7wBKZAlwFFHPla8eXsMFsTGt5BiL4yUy36lwinPUh4hzybZ11rw1vifS3VAPuk6JP413Q==} @@ -5899,8 +5911,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.13.0: - resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -8298,15 +8310,6 @@ packages: hyphenate-style-name@1.1.0: resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} - iced-error@0.0.13: - resolution: {integrity: sha512-yEEaG8QfyyRL0SsbNNDw3rVgTyqwHFMCuV6jDvD43f/2shmdaFXkqvFLGhDlsYNSolzYHwVLM/CrXt9GygYopA==} - - iced-lock@1.1.0: - resolution: {integrity: sha512-J9UMVitgTMYrkUil5EB9/Q4BPWiMpFH156yjDlmMoMRKs3s3PnXj/6G0UlzIOGnNi5JVNk/zVYLXVnuo+1QnqQ==} - - iced-runtime@1.0.4: - resolution: {integrity: sha512-rgiJXNF6ZgF2Clh/TKUlBDW3q51YPDJUXmxGQXx1b8tbZpVpTn+1RX9q1sjNkujXIIaVxZByQzPHHORg7KV51g==} - iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -9727,9 +9730,6 @@ packages: moo@0.5.2: resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} - more-entropy@0.0.7: - resolution: {integrity: sha512-e0TxQtU1F6/ZA8WnEA2JLQwwDqBTtZFLJSW7rWgUsQou35wx1IOL0g2O7q7oGoMgIJto+jHMnNGHLfSiylHRrw==} - mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} @@ -10520,10 +10520,6 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - progress@1.1.8: - resolution: {integrity: sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==} - engines: {node: '>=0.4.0'} - progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -11785,9 +11781,6 @@ packages: resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==} engines: {node: '>=0.10.0'} - triplesec@4.0.3: - resolution: {integrity: sha512-fug70e1nJoCMxsXQJlETisAALohm84vl++IiTTHEqM7Lgqwz62jrlwqOC/gJEAJjO/ByN127sEcioB56HW3wIw==} - ts-api-utils@1.3.0: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} @@ -14309,6 +14302,8 @@ snapshots: '@eslint-community/regexpp@4.11.1': {} + '@eslint-community/regexpp@4.12.1': {} + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 @@ -17295,6 +17290,18 @@ snapshots: transitivePeerDependencies: - encoding + '@stacks/auth@7.0.0': + dependencies: + '@noble/secp256k1': 1.7.1 + '@stacks/common': 7.0.0 + '@stacks/encryption': 7.0.0 + '@stacks/network': 7.0.0 + '@stacks/profile': 7.0.0 + cross-fetch: 3.1.8 + jsontokens: 4.0.1 + transitivePeerDependencies: + - encoding + '@stacks/common@6.13.0': dependencies: '@types/bn.js': 5.1.6 @@ -17346,6 +17353,17 @@ snapshots: ripemd160-min: 0.0.6 varuint-bitcoin: 1.1.2 + '@stacks/encryption@7.0.0': + dependencies: + '@noble/hashes': 1.1.5 + '@noble/secp256k1': 1.7.1 + '@scure/bip39': 1.1.0 + '@stacks/common': 7.0.0 + base64-js: 1.5.1 + bs58: 5.0.0 + ripemd160-min: 0.0.6 + varuint-bitcoin: 1.1.2 + '@stacks/network@6.13.0': dependencies: '@stacks/common': 6.13.0 @@ -17378,6 +17396,17 @@ snapshots: transitivePeerDependencies: - encoding + '@stacks/profile@7.0.0': + dependencies: + '@stacks/common': 7.0.0 + '@stacks/network': 7.0.0 + '@stacks/transactions': 7.0.0 + jsontokens: 4.0.1 + schema-inspector: 2.1.0 + zone-file: 2.0.0-beta.3 + transitivePeerDependencies: + - encoding + '@stacks/rpc-client@1.0.3': dependencies: '@blockstack/stacks-transactions': 0.7.0 @@ -17387,12 +17416,12 @@ snapshots: '@stacks/stacks-blockchain-api-types@7.8.2': {} - '@stacks/storage@6.17.0': + '@stacks/storage@7.0.0': dependencies: - '@stacks/auth': 6.17.0 - '@stacks/common': 6.16.0 - '@stacks/encryption': 6.17.0 - '@stacks/network': 6.17.0 + '@stacks/auth': 7.0.0 + '@stacks/common': 7.0.0 + '@stacks/encryption': 7.0.0 + '@stacks/network': 7.0.0 base64-js: 1.5.1 jsontokens: 4.0.1 transitivePeerDependencies: @@ -17420,21 +17449,19 @@ snapshots: transitivePeerDependencies: - encoding - '@stacks/wallet-sdk@6.15.0': + '@stacks/wallet-sdk@7.0.0': dependencies: '@scure/bip32': 1.1.3 '@scure/bip39': 1.1.0 - '@stacks/auth': 6.17.0 - '@stacks/common': 6.13.0 - '@stacks/encryption': 6.16.1 - '@stacks/network': 6.17.0 - '@stacks/profile': 6.17.0 - '@stacks/storage': 6.17.0 - '@stacks/transactions': 6.17.0 - buffer: 6.0.3 + '@stacks/auth': 7.0.0 + '@stacks/common': 7.0.0 + '@stacks/encryption': 7.0.0 + '@stacks/network': 7.0.0 + '@stacks/profile': 7.0.0 + '@stacks/storage': 7.0.0 + '@stacks/transactions': 7.0.0 c32check: 2.0.0 jsontokens: 4.0.1 - triplesec: 4.0.3 zone-file: 2.0.0-beta.3 transitivePeerDependencies: - encoding @@ -19615,9 +19642,9 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.13.0): + acorn-import-attributes@1.9.5(acorn@8.14.0): dependencies: - acorn: 8.13.0 + acorn: 8.14.0 acorn-jsx-walk@2.0.0: {} @@ -19629,9 +19656,9 @@ snapshots: dependencies: acorn: 8.12.1 - acorn-jsx@5.3.2(acorn@8.13.0): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.13.0 + acorn: 8.14.0 acorn-loose@8.4.0: dependencies: @@ -19647,7 +19674,7 @@ snapshots: acorn@8.12.1: {} - acorn@8.13.0: {} + acorn@8.14.0: {} agent-base@6.0.2: dependencies: @@ -21540,7 +21567,7 @@ snapshots: eslint@8.53.0: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@eslint-community/regexpp': 4.11.1 + '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.53.0 '@humanwhocodes/config-array': 0.11.14 @@ -21582,8 +21609,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -22641,14 +22668,6 @@ snapshots: hyphenate-style-name@1.1.0: {} - iced-error@0.0.13: {} - - iced-lock@1.1.0: - dependencies: - iced-runtime: 1.0.4 - - iced-runtime@1.0.4: {} - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -24504,17 +24523,13 @@ snapshots: mlly@1.7.2: dependencies: - acorn: 8.13.0 + acorn: 8.14.0 pathe: 1.1.2 pkg-types: 1.2.1 ufo: 1.5.4 moo@0.5.2: {} - more-entropy@0.0.7: - dependencies: - iced-runtime: 1.0.4 - mrmime@1.0.1: {} ms@2.0.0: {} @@ -25321,8 +25336,6 @@ snapshots: process@0.11.10: {} - progress@1.1.8: {} - progress@2.0.3: {} promise@7.3.1: @@ -26642,7 +26655,7 @@ snapshots: terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.13.0 + acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -26748,15 +26761,6 @@ snapshots: trim-right@1.0.1: {} - triplesec@4.0.3: - dependencies: - iced-error: 0.0.13 - iced-lock: 1.1.0 - iced-runtime: 1.0.4 - more-entropy: 0.0.7 - progress: 1.1.8 - uglify-js: 3.19.3 - ts-api-utils@1.3.0(typescript@5.5.4): dependencies: typescript: 5.5.4 @@ -27010,7 +27014,8 @@ snapshots: ufo@1.5.4: {} - uglify-js@3.19.3: {} + uglify-js@3.19.3: + optional: true unbox-primitive@1.0.2: dependencies: @@ -27081,7 +27086,7 @@ snapshots: unplugin@1.14.1(webpack-sources@3.2.3): dependencies: - acorn: 8.13.0 + acorn: 8.14.0 webpack-virtual-modules: 0.6.2 optionalDependencies: webpack-sources: 3.2.3 @@ -27390,8 +27395,8 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.13.0 - acorn-import-attributes: 1.9.5(acorn@8.13.0) + acorn: 8.14.0 + acorn-import-attributes: 1.9.5(acorn@8.14.0) browserslist: 4.24.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1