Skip to content

Commit

Permalink
Merge branch 'staging'
Browse files Browse the repository at this point in the history
  • Loading branch information
peachbits committed Sep 30, 2024
2 parents fccad08 + c89aa8f commit fefacab
Show file tree
Hide file tree
Showing 66 changed files with 1,412 additions and 1,520 deletions.
41 changes: 31 additions & 10 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,46 @@

## Unreleased

- added: Add 'Free Talk Live' and 'Crypto Canal' options to survey modal
- added: Include custom tokens within wallet data in log output
- added: Warning message about risks of investing to all UK IPs
## 4.14.0

- added: `ExpandableList` component, replacing the address hint dropdown in `AddressFormScene`
- added: Add 'Cris Cyborg,' 'Free Talk Live,' and 'Crypto Canal' options to survey modal
- added: Buy with Revolut
- added: Buy/sell with Paypal
- added: Foreground push notifications displayed in app
- added: Minimum receive amount to `SwapConfirmationScene`
- added: New analytics tracking param: `accountAgeMonths`
- added: Sell with Moonpay
- changed: Enable Cardano staking
- changed: Added Iraq to list of Visa/MC supported countries
- changed: Display Asset Status cards in the same style as Promo Cards
- changed: Updated ACH supported US states
- changed: Use new platform-specific `assetStatsCards2` info server data
- fixed: Missing ellipses for long usernames displayed in the `SideMenu`
- fixed: "Apple Pay" renamed to "Pay with Apple Pay" to align with branding guidelines
- fixed: "Most Recent Wallets" do not show those chosen through `fiatPlugin`
- fixed: Crash on HomeScene when logging while in airplane mode
- fixed: Inconsistent content of address hint dropdown between iOS and Android in `AddressFormScene`
- fixed: Inconsistent corners in `SideMenu`
- fixed: Round Kado-provided amounts during sell

## 4.13.0
## 4.13.0 (2024-09-18)

- added: Add 'Free Talk Live' and 'Crypto Canal' options to survey modal
- added: Cardano staking through Kiln staking pools
- added: Include custom tokens within wallet data in log output
- added: Support for `isLiquidStaking` field on staking policies
- changed: Some unecessary `showError` dropdowns demoted to hidden `showDevError`
- changed: Restrict Bity buy/sell to no-KYC asset
- changed: Determine Moonpay asset support using chainCode/contractAddress
- added: Warning message about risks of investing to all UK IPs
- changed: Allow private key sweep in light accounts for amounts less than $50
- changed: Allow reverse quotes for Kado
- changed: Credit card allowed countries to add Botswana, Cambodia, Panama, and Sri Lanka
- fixed: Crash on HomeScene when logging while in airplane mode
- fixed: Default swap pair logic from the trade modal was not prioritizing mainnet assets
- changed: Determine Moonpay asset support using chainCode/contractAddress
- changed: Restrict Bity buy/sell to no-KYC asset
- changed: Some unecessary `showError` dropdowns demoted to hidden `showDevError`
- fixed: "FIO Address does not exist" error after transferring a FIO name
- fixed: Fix incorrect string comparison resulting in wrong rate used for 24 change calculation
- fixed: Crypto amount display bug after flipping the wallet input on `SwapCreateScne`
- fixed: Default swap pair logic from the trade modal was not prioritizing mainnet assets
- fixed: Fix incorrect string comparison resulting in wrong rate used for 24 change calculation
- removed: 'fasterpayments' payment type
- removed: Turking bank transfer support

Expand Down
24 changes: 12 additions & 12 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ PODS:
- disklet (0.5.2):
- React
- DoubleConversion (1.1.6)
- edge-core-js (2.14.0):
- edge-core-js (2.18.0):
- React-Core
- edge-currency-accountbased (4.24.1-2):
- edge-currency-accountbased (4.24.6):
- React-Core
- edge-currency-plugins (3.3.2):
- React-Core
- edge-exchange-plugins (2.7.5):
- edge-exchange-plugins (2.9.1):
- React-Core
- edge-login-ui-rn (3.19.2):
- edge-login-ui-rn (3.22.3):
- React-Core
- EXApplication (5.1.1):
- ExpoModulesCore
Expand Down Expand Up @@ -430,7 +430,7 @@ PODS:
- react-native-webview (13.8.4):
- RCT-Folly (= 2021.07.22.00)
- React-Core
- react-native-zcash (0.8.0):
- react-native-zcash (0.8.1):
- gRPC-Swift (~> 1.8)
- MnemonicSwift (~> 2.2)
- React-Core
Expand Down Expand Up @@ -1078,12 +1078,12 @@ SPEC CHECKSUMS:
CNIOLinux: 62e3505f50de558c393dc2f273dde71dcce518da
CNIOWindows: 3047f2d8165848a3936a0a755fee27c6b5ee479b
disklet: e7ed3e673ccad9d175a1675f9f3589ffbf69a5fd
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
edge-core-js: 9e7f9dc8b064c7be712e2988feb78db0ed5dbd77
edge-currency-accountbased: a4e78ccd42797465cc7025934ab76301597bd916
DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953
edge-core-js: 36f9eccd1b3e22ad3e1ca14773c9754c2bf83b63
edge-currency-accountbased: 86f333e5789a79adb7b47519104d72db21e1eb72
edge-currency-plugins: d2d7466f1215ffed6ff18d056fb5470dd2f86ab3
edge-exchange-plugins: 6ed47d7adb64b432e787a9036f46ce947d488ad6
edge-login-ui-rn: d4b91425b848a18c302f31c2ff16e07d66bf2d04
edge-exchange-plugins: 5a0502c8ecc7691fe1b4ef682038ee7905620b41
edge-login-ui-rn: 42c2652b2bd8b9a98b7208368ecc2827eea23955
EXApplication: d8f53a7eee90a870a75656280e8d4b85726ea903
EXConstants: f348da07e21b23d2b085e270d7b74f282df1a7d9
EXFileSystem: 844e86ca9b5375486ecc4ef06d3838d5597d895d
Expand All @@ -1100,7 +1100,7 @@ SPEC CHECKSUMS:
FirebaseInstallations: 766dabca09fd94aef922538aaf144cc4a6fb6869
FirebaseMessaging: 585984d0a1df120617eb10b44cad8968b859815e
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2
GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a
GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15
gRPC-Swift: 74adcaaa62ac5e0a018938840328cb1fdfb09e7b
Expand Down Expand Up @@ -1140,7 +1140,7 @@ SPEC CHECKSUMS:
react-native-safari-view: 955d7160d159241b8e9395d12d10ea0ef863dcdd
react-native-safe-area-context: dcab599c527c2d7de2d76507a523d20a0b83823d
react-native-webview: fa228e55c53372c2b361d2fa5e415844fa83eabf
react-native-zcash: e9be77ab00cc04fe3c19125e12817c00d9356bc8
react-native-zcash: 2959ff77ba393d08bcd65aa582fef8445c99453c
React-perflogger: 0cc42978a483a47f3696171dac2e7033936fc82d
React-RCTActionSheet: ea922b476d24f6d40b8e02ac3228412bd3637468
React-RCTAnimation: 7be2c148398eaa5beac950b2b5ec7102389ec3ad
Expand Down
16 changes: 8 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "edge-react-gui",
"version": "4.13.0",
"version": "4.14.0",
"private": true,
"description": "Edge Wallet React GUI",
"homepage": "https://edge.app",
Expand Down Expand Up @@ -97,13 +97,13 @@
"deepmerge": "^4.3.1",
"detect-bundler": "^1.1.0",
"disklet": "^0.5.2",
"edge-core-js": "^2.14.0",
"edge-currency-accountbased": "4.24.1-2",
"edge-core-js": "^2.18.0",
"edge-currency-accountbased": "^4.24.6",
"edge-currency-monero": "^1.3.1",
"edge-currency-plugins": "^3.3.2",
"edge-exchange-plugins": "^2.7.5",
"edge-info-server": "^2.6.0",
"edge-login-ui-rn": "3.19.2",
"edge-exchange-plugins": "^2.9.1",
"edge-info-server": "^2.7.0",
"edge-login-ui-rn": "^3.22.3",
"ethers": "^5.7.2",
"expo": "^48.0.0",
"jsrsasign": "^11.1.0",
Expand Down Expand Up @@ -141,7 +141,7 @@
"react-native-mymonero-core": "^0.3.1",
"react-native-patina": "^0.1.6",
"react-native-permissions": "^4.1.5",
"react-native-piratechain": "^0.5.0",
"react-native-piratechain": "^0.5.1",
"react-native-reanimated": "^3.14.0",
"react-native-safari-view": "^2.1.0",
"react-native-safe-area-context": "^4.10.1",
Expand All @@ -154,7 +154,7 @@
"react-native-svg": "^15.3.0",
"react-native-vector-icons": "^10.1.0",
"react-native-webview": "^13.8.4",
"react-native-zcash": "^0.8.0",
"react-native-zcash": "^0.8.1",
"react-redux": "^8.1.1",
"redux": "^4.2.1",
"redux-thunk": "^2.3.0",
Expand Down
58 changes: 57 additions & 1 deletion src/__tests__/__snapshots__/GuiPlugins.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,20 @@ Settlement: 1 - 48 hours",
"pluginId": "bitsofgold",
"title": "Israeli Bank Transfer",
},
{
"cryptoCodes": [],
"deepPath": "",
"deepQuery": {},
"description": "Fee: ~5%
Settlement: 5 min - 24 hours",
"paymentType": "paypal",
"paymentTypeLogoKey": "paypal",
"paymentTypes": [
"paypal",
],
"pluginId": "paypal",
"title": "Paypal",
},
{
"cryptoCodes": [],
"deepPath": "",
Expand Down Expand Up @@ -181,6 +195,20 @@ Limit $1000",
"pluginId": "iach",
"title": "Instant ACH Bank Transfer",
},
{
"cryptoCodes": [],
"deepPath": "",
"deepQuery": {},
"description": "Fee: ~5%
Settlement: 5 min - 24 hours",
"paymentType": "paypal",
"paymentTypeLogoKey": "paypal",
"paymentTypes": [
"paypal",
],
"pluginId": "paypal",
"title": "Paypal",
},
{
"cryptoCodes": [],
"deepPath": "",
Expand All @@ -193,7 +221,7 @@ Settlement: 10 - 30 minutes",
"credit",
],
"pluginId": "creditcard",
"title": "Apple Pay",
"title": "Pay with Apple Pay",
},
{
"cryptoCodes": [],
Expand All @@ -209,6 +237,20 @@ Settlement: 10 - 30 minutes",
"pluginId": "creditcard",
"title": "Credit and Debit Card",
},
{
"cryptoCodes": [],
"deepPath": "",
"deepQuery": {},
"description": "Fee: ~5%
Settlement: 5 min - 24 hours",
"paymentType": "revolut",
"paymentTypeLogoKey": "revolut",
"paymentTypes": [
"revolut",
],
"pluginId": "revolut",
"title": "Revolut",
},
{
"cryptoCodes": [],
"deepPath": "",
Expand Down Expand Up @@ -260,6 +302,20 @@ Settlement: 2 - 3 days",
"pluginId": "ach",
"title": "ACH Bank Transfer",
},
{
"cryptoCodes": [],
"deepPath": "",
"deepQuery": {},
"description": "Fee: ~5%
Settlement: 5 min - 24 hours",
"paymentType": "paypal",
"paymentTypeLogoKey": "paypal",
"paymentTypes": [
"paypal",
],
"pluginId": "paypal",
"title": "Paypal",
},
{
"cryptoCodes": [],
"deepPath": "",
Expand Down
22 changes: 11 additions & 11 deletions src/__tests__/components/PromoCards.test.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, expect, test } from '@jest/globals'
import { PromoCard2 } from 'edge-info-server'

import { filterPromoCards } from '../../components/cards/PromoCards'
import { filterInfoCards } from '../../components/cards/InfoCardCarousel'

const dummyCard: PromoCard2 = {
localeMessages: { en: 'hello' },
Expand Down Expand Up @@ -33,12 +33,12 @@ const currentDate = new Date('2024-06-13T20:53:33.013Z')
describe('filterPromoCards', () => {
test('No cards', () => {
const cards: PromoCard2[] = []
const result = filterPromoCards({ cards, countryCode: 'US', buildNumber, osType, version, osVersion, currentDate })
const result = filterInfoCards({ cards, countryCode: 'US', buildNumber, osType, version, osVersion, currentDate })
expect(result.length).toBe(0)
})
test('Card no filters', () => {
const cards: PromoCard2[] = [{ ...dummyCard }]
const result = filterPromoCards({ cards, countryCode: 'US', buildNumber, osType, version, osVersion, currentDate })
const result = filterInfoCards({ cards, countryCode: 'US', buildNumber, osType, version, osVersion, currentDate })
expect(result.length).toBe(1)
expect(result[0].localeMessages.en).toBe('hello')
})
Expand All @@ -49,7 +49,7 @@ describe('filterPromoCards', () => {
{ ...dummyCard, osTypes: ['web'], localeMessages: { en: 'Web Message' } },
{ ...dummyCard, osTypes: ['ios'], localeMessages: { en: 'Another iOS Message' } }
]
const result = filterPromoCards({ cards, countryCode: 'US', buildNumber, osType: 'ios', version, osVersion, currentDate })
const result = filterInfoCards({ cards, countryCode: 'US', buildNumber, osType: 'ios', version, osVersion, currentDate })
expect(result.length).toBe(2)
expect(result[0].localeMessages.en).toBe('iOS Message')
expect(result[1].localeMessages.en).toBe('Another iOS Message')
Expand All @@ -61,7 +61,7 @@ describe('filterPromoCards', () => {
{ ...dummyCard, exactBuildNum: '432', osTypes: ['web'], localeMessages: { en: 'Web Message' } },
{ ...dummyCard, exactBuildNum: '432', osTypes: ['android'], localeMessages: { en: 'Another Android Message' } }
]
const result = filterPromoCards({ cards, countryCode: 'US', buildNumber: '432', osType: 'android', version: '1.2.3', osVersion, currentDate })
const result = filterInfoCards({ cards, countryCode: 'US', buildNumber: '432', osType: 'android', version: '1.2.3', osVersion, currentDate })
expect(result.length).toBe(1)
expect(result[0].localeMessages.en).toBe('Another Android Message')
})
Expand All @@ -72,7 +72,7 @@ describe('filterPromoCards', () => {
{ ...dummyCard, osTypes: ['web'], localeMessages: { en: 'Web Message' } },
{ ...dummyCard, osTypes: ['android'], localeMessages: { en: 'Another Android Message' }, appVersion: '1.2.4' }
]
const result = filterPromoCards({ cards, countryCode: 'US', buildNumber: '432', osType: 'android', version: '1.2.3', osVersion, currentDate })
const result = filterInfoCards({ cards, countryCode: 'US', buildNumber: '432', osType: 'android', version: '1.2.3', osVersion, currentDate })
expect(result.length).toBe(1)
expect(result[0].localeMessages.en).toBe('Android message')
})
Expand All @@ -83,7 +83,7 @@ describe('filterPromoCards', () => {
{ ...dummyCard, minBuildNum: '4', maxBuildNum: '5', localeMessages: { en: '4-5' } },
{ ...dummyCard, minBuildNum: '1', maxBuildNum: '4', localeMessages: { en: '1-4' } }
]
const result = filterPromoCards({ cards, countryCode: 'US', buildNumber: '4', osType, version: '1.2.3', osVersion, currentDate })
const result = filterInfoCards({ cards, countryCode: 'US', buildNumber: '4', osType, version: '1.2.3', osVersion, currentDate })
expect(result.length).toBe(3)
expect(result[0].localeMessages.en).toBe('3-5')
expect(result[1].localeMessages.en).toBe('4-5')
Expand All @@ -97,7 +97,7 @@ describe('filterPromoCards', () => {
{ ...dummyCard, countryCodes: ['uk'], localeMessages: { en: 'UK message' } },
{ ...dummyCard, countryCodes: ['es'], localeMessages: { en: 'ES message' } }
]
const result = filterPromoCards({ cards, buildNumber, osType, version, osVersion, currentDate })
const result = filterInfoCards({ cards, buildNumber, osType, version, osVersion, currentDate })
expect(result.length).toBe(1)
expect(result[0].localeMessages.en).toBe('no country')
})
Expand All @@ -108,7 +108,7 @@ describe('filterPromoCards', () => {
{ ...dummyCard, excludeCountryCodes: ['uk'], localeMessages: { en: 'UK message' } },
{ ...dummyCard, excludeCountryCodes: ['es'], localeMessages: { en: 'ES message' } }
]
const result = filterPromoCards({ cards, countryCode: 'us', buildNumber: '4', osType, version, osVersion, currentDate })
const result = filterInfoCards({ cards, countryCode: 'us', buildNumber: '4', osType, version, osVersion, currentDate })
expect(result.length).toBe(2)
expect(result[0].localeMessages.en).toBe('UK message')
expect(result[1].localeMessages.en).toBe('ES message')
Expand All @@ -120,7 +120,7 @@ describe('filterPromoCards', () => {
{ ...dummyCard, promoId: 'bob3', localeMessages: { en: 'Bob3 Message' } },
{ ...dummyCard, promoId: 'bob4', localeMessages: { en: 'Bob4 Message' } }
]
const result = filterPromoCards({
const result = filterInfoCards({
cards,
countryCode: 'US',
buildNumber,
Expand All @@ -140,7 +140,7 @@ describe('filterPromoCards', () => {
{ ...dummyCard, promoId: 'bob3', localeMessages: { en: 'Bob3 Message' } },
{ ...dummyCard, promoId: 'bob4', localeMessages: { en: 'Bob4 Message' } }
]
const result = filterPromoCards({
const result = filterInfoCards({
cards,
countryCode: 'US',
buildNumber,
Expand Down
4 changes: 3 additions & 1 deletion src/actions/LogActions.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { uncleaner } from 'cleaners'
import { EdgeDataDump } from 'edge-core-js'
import { EdgeDataDump, EdgeTokenMap } from 'edge-core-js'
import * as React from 'react'
import { Platform } from 'react-native'
import { getBrand, getBuildNumber, getDeviceId, getVersion } from 'react-native-device-info'
Expand Down Expand Up @@ -50,6 +50,7 @@ interface LoggedInUser {

interface WalletData {
currencyCode?: string
customTokens?: EdgeTokenMap
imported?: boolean
repoId?: string
pluginDump?: EdgeDataDump
Expand Down Expand Up @@ -180,6 +181,7 @@ export function getLogOutput(): ThunkAction<Promise<MultiLogOutput>> {
const currencyCode = wallet.currencyInfo.currencyCode ?? ''
logOutput.loggedInUser.wallets.push({
currencyCode,
customTokens: wallet.currencyConfig.customTokens,
imported,
repoId: getRepoId(syncKey),
pluginDump: await wallet.dumpData().catch(error => ({
Expand Down
Loading

0 comments on commit fefacab

Please sign in to comment.