Skip to content

Commit

Permalink
ci(release): publish latest release
Browse files Browse the repository at this point in the history
  • Loading branch information
hello-happy-puppy committed May 30, 2024
1 parent 5eff736 commit 8463bf4
Show file tree
Hide file tree
Showing 784 changed files with 18,561 additions and 11,972 deletions.
54 changes: 47 additions & 7 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
IPFS hash of the deployment:
- CIDv0: `QmTyp6ePbkJCs819zgUB4Pye4E2cTudcy4SZd5MJkk89Pb`
- CIDv1: `bafybeictz6ffben6zjcs6sk752jegq56ceo7m5nciosofntokzsthxrzey`
- CIDv0: `QmWe2TF9c45GQYs4stbUXrYQvX34xQaaNTdU3T24DiRwLe`
- CIDv1: `bafybeid3kd2hknxwdz7hcsqrebostgihtwucjlonlzw6oaaxjlsbgmcqdm`

The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).

Expand All @@ -10,15 +10,55 @@ You can also access the Uniswap Interface from an IPFS gateway.
Your Uniswap settings are never remembered across different URLs.

IPFS gateways:
- https://bafybeictz6ffben6zjcs6sk752jegq56ceo7m5nciosofntokzsthxrzey.ipfs.dweb.link/
- https://bafybeictz6ffben6zjcs6sk752jegq56ceo7m5nciosofntokzsthxrzey.ipfs.cf-ipfs.com/
- [ipfs://QmTyp6ePbkJCs819zgUB4Pye4E2cTudcy4SZd5MJkk89Pb/](ipfs://QmTyp6ePbkJCs819zgUB4Pye4E2cTudcy4SZd5MJkk89Pb/)
- https://bafybeid3kd2hknxwdz7hcsqrebostgihtwucjlonlzw6oaaxjlsbgmcqdm.ipfs.dweb.link/
- https://bafybeid3kd2hknxwdz7hcsqrebostgihtwucjlonlzw6oaaxjlsbgmcqdm.ipfs.cf-ipfs.com/
- [ipfs://QmWe2TF9c45GQYs4stbUXrYQvX34xQaaNTdU3T24DiRwLe/](ipfs://QmWe2TF9c45GQYs4stbUXrYQvX34xQaaNTdU3T24DiRwLe/)

### 5.29.1 (2024-05-24)
## 5.30.0 (2024-05-30)


### Features

* **web:** [multichain] handle default input token logic (#8209) 3eed0e3
* **web:** 4131 default to token project name instead of token name (#8325) 1debde2
* **web:** 4171 fix duplicate keys in currency search, show balance (#8320) 4c81e41
* **web:** add Mobile App Promo Banner component (#8257) c03744d
* **web:** Add Multichain Explore Feature Flag and Dropdown option (#8314) 27683d8
* **web:** converge to single analytics implementation (#8161) 30558ba
* **web:** convert all Trace elements to shared API (#8159) b340e9b
* **web:** convert all TraceEvent usage to shared trace (#8053) 3631853
* **web:** disable Liquidity Charts on V2 PDP (#8468) 66aad34
* **web:** migrates to using shared analytics send + typing relevant events (#8051) 11c6325
* **web:** Sitemap generation round 3?? (#8323) b6e42b6
* **web:** unicon v2 education label (#8339) f92cd5e
* **web:** use app-specific download links for competitor wallets (#8258) 399844e
* **web:** use new chains with wagmi (#8083) dc14772
* **web:** use new error dialog design (#6974) ae3628c
* **web:** use Xv2 arbitrum experiment parameters for quote (#8251) 08ab621


### Bug Fixes

* **web:** Check if WC getNamespaceChainsIds is empty rather than unde… (#8455) 40a9355
* **web:** add liquidity title fix (#8298) b587de4
* **web:** Check if WC getNamespaceChainsIds is empty rather than undefined (#8422) 2c76bff
* **web:** dont fetch portfolio balances if multichain ux is not enabled (#8478) 35debe1
* **web:** e2e test amplitude checks (#8391) ef3a9e5
* **web:** enable base eth and usdc for moonpay (#8330) ac0ba90
* **web:** failing e2e tests and wrong ethereum name (#8373) 1cd24a6
* **web:** filtering out spam on send (#8386) 322551b
* **web:** Fix blocking Testlio bugs - staging (#8592) 55a9345
* **web:** fix broken translations (#8580) df6f23d
* **web:** fix failing e2e tests (#8480) 1535f19
* **web:** handle chainName passed as the tab param (#8317) 4555cfd
* **web:** lowercase unicon flag (#8380) dbfe14a
* **web:** mouseover position bug (#8384) 2d8cd91
* **web:** prevent 1H time period on PDP price chart (#8315) ddc10ca
* **web:** prevent connection from hanging when iframed (#8379) 2feccc4
* **web:** Unicon loading state (#8415) 76f29f5


### Continuous Integration

* **web:** update sitemaps b837434


2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
web/5.29.1
web/5.30.0
1 change: 1 addition & 0 deletions apps/mobile/.depcheckrc
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ ignores: [
"@react-native-masked-view/masked-view",
"@react-native-firebase/app-check",
"react-native-image-colors",
"react-native-restart",
# Dependencies that depcheck thinks are missing but are actually present or never used
## Internal packages / workspaces
"e2e",
Expand Down
16 changes: 4 additions & 12 deletions apps/mobile/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,18 +176,7 @@ These are some tools you might want to familiarize yourself with to understand t

## Migrations

We use `redux-persist` to persist Redux state between user sessions. When the Redux state schema is altered, a migration may be needed to transfer the existing persisted state to the new Redux schema. Failing to define a migration results in the app defaulting to the persisted schema, which will very likely cause `undefined` errors because the code has references to Redux state properties that were dropped in favor the persisted schema.

### When to define a migration

Anytime a required property is added or any property is renamed or deleted to/from Redux state. Migrations are not necessary when optional properties are added to an existing slice. Make sure to always add new required properties to the `schema.ts` file as well.

### How to migrate

1. Increment the `version` of `persistConfig` defined within `store.ts`
2. Create a migration function within `migrations.ts`. The migration key should be the same as the `version` defined in the previous step
3. Write a test for your migration within `migrations.test.ts`
4. Create a new schema within `schema.ts` and ensure it is being exported by the `getSchema` function at the bottom of the file
We use `redux-persist` to persist the Redux state between user sessions. Most of this state is shared between the mobile app and the extension. Please review the [Wallet Migrations README](../../packages/wallet/src/state//README.md) for details on how to write migrations when you add or remove anything from the Redux state structure.

## Troubleshooting

Expand All @@ -199,6 +188,9 @@ This means whichever package you're trying to run (`[package name]`) wasn’t co
- `unable to open file (in target "OneSignalNotificationServiceExtension" in project "Uniswap")`.
Resolve this issue by navigating to the `ios/` directory and running `pod update`.

- `Build target hermes-engine: Command PhaseScriptExecution failed with a nonzero exit code`
Node isn't being located correctly during the build phase. Run `which node` and copy the resulting path into `.xcode.env.local`. More context [here](https://github.com/facebook/react-native/issues/42221).

### Common fixes

If something isn’t working the way it should or you’re getting a weird error when trying to run the app, try the following:
Expand Down
10 changes: 7 additions & 3 deletions apps/mobile/android/app/src/main/java/com/uniswap/RnEthersRs.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,12 @@ class RnEthersRs(applicationContext: Context) {
}

val mnemonicIds: List<String>
get() = keychain.all.keys.map {
key -> key.replace(ENTIRE_MNEMONIC_PREFIX, "")
}
get() = keychain.all.keys.filter {
// MOB-3453 this will need to be updated after fixing prefixes
it.startsWith(MNEMONIC_PREFIX)
}.map {
key -> key.replace(MNEMONIC_PREFIX, "")
}

/**
* Imports a mnemonic and returns the associated address.
Expand Down Expand Up @@ -187,6 +190,7 @@ class RnEthersRs(applicationContext: Context) {
private const val PREFIX = "com.uniswap"
private const val MNEMONIC_PREFIX = ".mnemonic."
private const val PRIVATE_KEY_PREFIX = ".privateKey."
// MOB-3453 Android is currently not storing keys with PREFIX
private const val ENTIRE_MNEMONIC_PREFIX = PREFIX + MNEMONIC_PREFIX
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,10 @@ class SeedPhraseInputViewModel(
// TODO gary add production logging and update rust code to convert to Java exceptions
Log.d("SeedPhraseInputViewModel", "Storing mnemonic caused error ${e.message}")
}

if (status is Status.Error) {
onInputValidated(false)
}
}

private fun submitMnemonic(mnemonic: String) {
Expand Down
18 changes: 12 additions & 6 deletions apps/mobile/ios/Uniswap.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@
2F50877AC4F0BB2556A74B60 /* libPods-Uniswap-UniswapTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 89A1B8962666C68EE8B75C18 /* libPods-Uniswap-UniswapTests.a */; };
5EFB78362B1E585000E77EAC /* ConvertQuery.graphql.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EFB78352B1E585000E77EAC /* ConvertQuery.graphql.swift */; };
5FF6D300AEE2EB390A272D0E /* libPods-WidgetIntentExtension.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 71A42CE7FF1299C666E6FC79 /* libPods-WidgetIntentExtension.a */; };
681301B12A3726EE00A5BF43 /* onboarding_dark.riv in Resources */ = {isa = PBXBuildFile; fileRef = 681301AD2A3726EE00A5BF43 /* onboarding_dark.riv */; };
681301B22A3726EE00A5BF43 /* pending_send.riv in Resources */ = {isa = PBXBuildFile; fileRef = 681301AE2A3726EE00A5BF43 /* pending_send.riv */; };
681301B42A3726EE00A5BF43 /* pending_swap.riv in Resources */ = {isa = PBXBuildFile; fileRef = 681301B02A3726EE00A5BF43 /* pending_swap.riv */; };
6BC7D07E2B5FF02400617C95 /* ScantasticEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BC7D07B2B5FF02400617C95 /* ScantasticEncryption.m */; };
Expand Down Expand Up @@ -187,6 +186,7 @@
9FEC9B8B2A858CF1003CD019 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FEC9B8A2A858CF1003CD019 /* AppDelegate.m */; };
A32F9FBD272343C9002CFCDB /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = A32F9FBC272343C8002CFCDB /* GoogleService-Info.plist */; };
A3F0A5B1272B1DFA00895B25 /* KeychainSwiftDistrib.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3F0A5B0272B1DFA00895B25 /* KeychainSwiftDistrib.swift */; };
A7B8EFCB2BF68F0D00CA4A1C /* FeeData.graphql.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B8EFCA2BF68F0D00CA4A1C /* FeeData.graphql.swift */; };
AC0EE0982BD826E700BCCF07 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = AC0EE0972BD826E700BCCF07 /* PrivacyInfo.xcprivacy */; };
AEE498F72A85AD86000DDF8E /* Basel-Book.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AEE498F52A85AD86000DDF8E /* Basel-Book.ttf */; };
AEE498F82A85AD86000DDF8E /* Basel-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AEE498F62A85AD86000DDF8E /* Basel-Medium.ttf */; };
Expand Down Expand Up @@ -442,7 +442,6 @@
56FE9C9AF785221B7E3F4C04 /* Pods-Uniswap.dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Uniswap.dev.xcconfig"; path = "Target Support Files/Pods-Uniswap/Pods-Uniswap.dev.xcconfig"; sourceTree = "<group>"; };
5EFB78352B1E585000E77EAC /* ConvertQuery.graphql.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertQuery.graphql.swift; sourceTree = "<group>"; };
62CEA9F2D5176D20A6402A3E /* Pods-Uniswap.beta.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Uniswap.beta.xcconfig"; path = "Target Support Files/Pods-Uniswap/Pods-Uniswap.beta.xcconfig"; sourceTree = "<group>"; };
681301AD2A3726EE00A5BF43 /* onboarding_dark.riv */ = {isa = PBXFileReference; lastKnownFileType = file; path = onboarding_dark.riv; sourceTree = "<group>"; };
681301AE2A3726EE00A5BF43 /* pending_send.riv */ = {isa = PBXFileReference; lastKnownFileType = file; path = pending_send.riv; sourceTree = "<group>"; };
681301B02A3726EE00A5BF43 /* pending_swap.riv */ = {isa = PBXFileReference; lastKnownFileType = file; path = pending_swap.riv; sourceTree = "<group>"; };
6BC7D07B2B5FF02400617C95 /* ScantasticEncryption.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScantasticEncryption.m; sourceTree = "<group>"; };
Expand Down Expand Up @@ -495,6 +494,7 @@
9FEC9B8A2A858CF1003CD019 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = Uniswap/AppDelegate.m; sourceTree = "<group>"; };
A32F9FBC272343C8002CFCDB /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
A3F0A5B0272B1DFA00895B25 /* KeychainSwiftDistrib.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainSwiftDistrib.swift; sourceTree = "<group>"; };
A7B8EFCA2BF68F0D00CA4A1C /* FeeData.graphql.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = FeeData.graphql.swift; path = MobileSchema/Schema/Objects/FeeData.graphql.swift; sourceTree = "<group>"; };
A7C9F415D0E128A43003E071 /* Pods-Uniswap.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Uniswap.debug.xcconfig"; path = "Target Support Files/Pods-Uniswap/Pods-Uniswap.debug.xcconfig"; sourceTree = "<group>"; };
AC0EE0972BD826E700BCCF07 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Uniswap/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
AEE498F52A85AD86000DDF8E /* Basel-Book.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "Basel-Book.ttf"; path = "../src/assets/fonts/Basel-Book.ttf"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -634,6 +634,7 @@
072E23872A44D5BD006AD6C9 /* WidgetsCore */ = {
isa = PBXGroup;
children = (
A7B8EFCA2BF68F0D00CA4A1C /* FeeData.graphql.swift */,
07F0C28E2A5F3E2E00D5353E /* Env.swift */,
073C67F42A5C8FBE00F6DAD8 /* MobileSchema */,
072E23882A44D5BD006AD6C9 /* WidgetsCore.h */,
Expand Down Expand Up @@ -1840,6 +1841,7 @@
0743223B2A83E3CA00F8518D /* NftAssetsFilterInput.graphql.swift in Sources */,
0DC6ADF02B1E2C100092909C /* PortfolioValueModifier.graphql.swift in Sources */,
074322282A83E3CA00F8518D /* TokenProjectMarket.graphql.swift in Sources */,
A7B8EFCB2BF68F0D00CA4A1C /* FeeData.graphql.swift in Sources */,
0743220F2A83E3CA00F8518D /* NftApproveForAll.graphql.swift in Sources */,
0743223C2A83E3CA00F8518D /* SchemaMetadata.graphql.swift in Sources */,
074321FA2A83E3CA00F8518D /* PortfolioBalancesQuery.graphql.swift in Sources */,
Expand Down Expand Up @@ -2953,7 +2955,8 @@
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
OTHER_LDFLAGS = (
"$(inherited)",
" ",
"-Wl",
"-ld_classic",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -3019,7 +3022,8 @@
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
OTHER_LDFLAGS = (
"$(inherited)",
" ",
"-Wl",
"-ld_classic",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -3172,7 +3176,8 @@
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
OTHER_LDFLAGS = (
"$(inherited)",
" ",
"-Wl",
"-ld_classic",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -3346,7 +3351,8 @@
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
OTHER_LDFLAGS = (
"$(inherited)",
" ",
"-Wl",
"-ld_classic",
);
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../../node_modules/react-native";
SDKROOT = iphoneos;
Expand Down
11 changes: 0 additions & 11 deletions apps/mobile/jest-setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,6 @@ import { localizeMock as mockRNLocalize } from 'react-native-localize/mock'
import { AppearanceSettingType } from 'wallet/src/features/appearance/slice'
import { mockLocalizationContext } from 'wallet/src/test/mocks/utils'

// avoids polluting console in test runs, while keeping important log levels
global.console = {
...console,
// uncomment to ignore a specific log level
log: jest.fn(),
debug: jest.fn(),
info: jest.fn(),
// warn: jest.fn(),
// error: jest.fn(),
}

// Mock Sentry crash reporting
jest.mock('@sentry/react-native', () => ({
init: () => jest.fn(),
Expand Down
1 change: 1 addition & 0 deletions apps/mobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@
"react-native-pager-view": "6.0.1",
"react-native-permissions": "3.6.0",
"react-native-reanimated": "3.8.1",
"react-native-restart": "0.0.27",
"react-native-safe-area-context": "4.9.0",
"react-native-screens": "3.30.1",
"react-native-splash-screen": "3.3.0",
Expand Down
8 changes: 4 additions & 4 deletions apps/mobile/src/app/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ import { flexStyles, useIsDarkMode } from 'ui/src'
import { config } from 'uniswap/src/config'
import { uniswapUrls } from 'uniswap/src/constants/urls'
import { DUMMY_STATSIG_SDK_KEY } from 'uniswap/src/features/gating/constants'
import { WALLET_EXPERIMENTS } from 'uniswap/src/features/gating/experiments'
import { Experiments } from 'uniswap/src/features/gating/experiments'
import { WALLET_FEATURE_FLAG_NAMES } from 'uniswap/src/features/gating/flags'
import { loadStatsigOverrides } from 'uniswap/src/features/gating/overrides/customPersistedOverrides'
import { Statsig, StatsigProvider } from 'uniswap/src/features/gating/sdk/statsig'
Expand Down Expand Up @@ -177,10 +177,10 @@ function SentryTags({ children }: PropsWithChildren): JSX.Element {
Sentry.setTag(`featureFlag.${flagKey}`, Statsig.checkGateWithExposureLoggingDisabled(flagKey))
}

for (const [_, experimentDef] of WALLET_EXPERIMENTS.entries()) {
for (const experiment of Object.values(Experiments)) {
Sentry.setTag(
`experiment.${experimentDef.name}`,
Statsig.getExperimentWithExposureLoggingDisabled(experimentDef.name).getGroupName()
`experiment.${experiment}`,
Statsig.getExperimentWithExposureLoggingDisabled(experiment).getGroupName()
)
}
}, [])
Expand Down
27 changes: 6 additions & 21 deletions apps/mobile/src/app/migrations.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/* eslint-disable max-lines */
import { BigNumber } from 'ethers'
import mockdate from 'mockdate'
import createMigrate from 'src/app/createMigrate'
import { migrations, OLD_DEMO_ACCOUNT_ADDRESS } from 'src/app/migrations'
import {
getSchema,
Expand Down Expand Up @@ -104,6 +103,8 @@ import {
SignerMnemonicAccount,
} from 'wallet/src/features/wallet/accounts/types'
import { initialWalletState, SwapProtectionSetting } from 'wallet/src/features/wallet/slice'
import { createMigrate } from 'wallet/src/state/createMigrate'
import { getAllKeysOfNestedObject } from 'wallet/src/state/testUtils'
import {
fiatPurchaseTransactionInfo,
signerMnemonicAccount,
Expand All @@ -124,26 +125,6 @@ const fiatOnRampTxDetailsFailed = transactionDetails({
}),
})

// helps with object assignment
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const getAllKeysOfNestedObject = (obj: any, prefix = ''): string[] => {
const keys = Object.keys(obj)
if (!keys.length && prefix !== '') {
return [prefix.slice(0, -1)]
}
return keys.reduce<string[]>((res, el) => {
if (Array.isArray(obj[el])) {
return [...res]
}

if (typeof obj[el] === 'object' && obj[el] !== null) {
return [...res, ...getAllKeysOfNestedObject(obj[el], prefix + el + '.')]
}

return [...res, prefix + el]
}, [])
}

describe('Redux state migrations', () => {
it('is able to perform all migrations starting from the initial schema', async () => {
const initialSchemaStub = {
Expand Down Expand Up @@ -204,6 +185,10 @@ describe('Redux state migrations', () => {
},
}

if (!migratedSchema) {
throw new Error('Migrated schema is undefined')
}

const migratedSchemaKeys = new Set(getAllKeysOfNestedObject(migratedSchema))
const latestSchemaKeys = new Set(getAllKeysOfNestedObject(getSchema()))
const initialStateKeys = new Set(getAllKeysOfNestedObject(initialState))
Expand Down
10 changes: 4 additions & 6 deletions apps/mobile/src/app/migrations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import {
} from 'wallet/src/features/transactions/types'
import { Account, AccountType } from 'wallet/src/features/wallet/accounts/types'
import { SwapProtectionSetting } from 'wallet/src/features/wallet/slice'
import { removeWalletIsUnlockedState } from 'wallet/src/state/sharedMigrations'

export const OLD_DEMO_ACCOUNT_ADDRESS = '0xdd0E380579dF30E38524F9477808d9eE37E2dEa6'

Expand Down Expand Up @@ -876,10 +877,7 @@ export const migrations = {
return newState
},

63: function removeWalletIsUnlockedState(state: any) {
const newState = { ...state }
delete newState.wallet.isUnlocked

return newState
},
63: removeWalletIsUnlockedState,
}

export const MOBILE_STATE_VERSION = 63
Loading

0 comments on commit 8463bf4

Please sign in to comment.