diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8365e7665fc..a461c7b8ad8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
# edge-react-gui
+## 3.15.0
+
+- added: simplified Maestro scripts and use cleaner-config for testerConfig.json
+- changed: updated style sheet caching in the `styled` HOC
+- fixed: prevent crash on transaction history scene when custom token is deleted
+- fixed: added missing cancel button handler in FIO name confirmation scene
+- Upgrade edge-login-ui-rn to v2.6.6
+ - changed: Update translations
+
## 3.14.0
- added: Light account support
diff --git a/ios/Podfile b/ios/Podfile
index 07355c952b6..4d8205b5b15 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -81,7 +81,4 @@ target 'edge' do
pod 'CNIOLinux', :modular_headers => true
pod 'CNIOWindows', :modular_headers => true
- # Piratechain:
- pod 'react-native-piratechain', :path => '../node_modules/react-native-piratechain'
- pod 'PirateLightClientKit', :git => 'https://github.com/PirateNetwork/PirateLightClientKit.git', :commit => 'f939db082643d73cead7172da0a862f3b3df34a9'
end
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index f4c00c10325..38dce3f1e78 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -18,11 +18,11 @@ PODS:
- disklet (0.5.2):
- React
- DoubleConversion (1.1.6)
- - edge-core-js (1.4.1):
+ - edge-core-js (1.4.2):
- React-Core
- - edge-currency-accountbased (1.5.2):
+ - edge-currency-accountbased (2.2.4):
- React-Core
- - edge-login-ui-rn (2.7.0):
+ - edge-login-ui-rn (2.8.1):
- React
- FBLazyVector (0.71.11)
- FBReactNativeSpec (0.71.11):
@@ -189,7 +189,6 @@ PODS:
- hermes-engine/Pre-built (= 0.71.11)
- hermes-engine/Pre-built (0.71.11)
- libevent (2.1.12)
- - libpiratelc (0.0.5)
- libwebp (1.2.1):
- libwebp/demux (= 1.2.1)
- libwebp/mux (= 1.2.1)
@@ -218,10 +217,6 @@ PODS:
- RNPermissions
- Permission-Notifications (3.8.3):
- RNPermissions
- - PirateLightClientKit (0.14.3-beta):
- - gRPC-Swift (~> 1.0)
- - libpiratelc (= 0.0.5)
- - SQLite.swift (~> 0.12.2)
- PromisesObjC (2.1.0)
- RCT-Folly (2021.07.22.00):
- boost
@@ -501,9 +496,10 @@ PODS:
- React-Core
- react-native-netinfo (8.3.0):
- React-Core
- - react-native-piratechain (0.3.3):
- - PirateLightClientKit (= 0.14.3-beta)
- - React
+ - react-native-piratechain (0.3.5):
+ - gRPC-Swift (~> 1.0)
+ - React-Core
+ - SQLite.swift (~> 0.12)
- react-native-safari-view (1.0.0):
- React
- react-native-safe-area-context (4.6.4):
@@ -783,7 +779,7 @@ PODS:
- SwiftNIOFoundationCompat (< 3, >= 2.32.0)
- SwiftNIOPosix (< 3, >= 2.32.0)
- SwiftNIOTLS (< 3, >= 2.32.0)
- - SwiftProtobuf (1.20.3)
+ - SwiftProtobuf (1.22.1)
- Yoga (1.14.0)
- YogaKit (1.18.1):
- Yoga (~> 1.14)
@@ -841,7 +837,6 @@ DEPENDENCIES:
- Permission-LocationAlways (from `../node_modules/react-native-permissions/ios/LocationAlways`)
- Permission-LocationWhenInUse (from `../node_modules/react-native-permissions/ios/LocationWhenInUse`)
- Permission-Notifications (from `../node_modules/react-native-permissions/ios/Notifications`)
- - PirateLightClientKit (from `https://github.com/PirateNetwork/PirateLightClientKit.git`, commit `f939db082643d73cead7172da0a862f3b3df34a9`)
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
@@ -951,7 +946,6 @@ SPEC REPOS:
- GoogleUtilities
- gRPC-Swift
- libevent
- - libpiratelc
- libwebp
- Logging
- nanopb
@@ -1015,9 +1009,6 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native-permissions/ios/LocationWhenInUse"
Permission-Notifications:
:path: "../node_modules/react-native-permissions/ios/Notifications"
- PirateLightClientKit:
- :commit: f939db082643d73cead7172da0a862f3b3df34a9
- :git: https://github.com/PirateNetwork/PirateLightClientKit.git
RCT-Folly:
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
RCTRequired:
@@ -1161,11 +1152,6 @@ EXTERNAL SOURCES:
Yoga:
:path: "../node_modules/react-native/ReactCommon/yoga"
-CHECKOUT OPTIONS:
- PirateLightClientKit:
- :commit: f939db082643d73cead7172da0a862f3b3df34a9
- :git: https://github.com/PirateNetwork/PirateLightClientKit.git
-
SPEC CHECKSUMS:
_NIODataStructures: e2077c7dc7c1d6c93e698c85fe04d663a17f53a4
boost: 57d2868c099736d80fcd648bf211b4431e51a558
@@ -1182,9 +1168,9 @@ SPEC CHECKSUMS:
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
disklet: e7ed3e673ccad9d175a1675f9f3589ffbf69a5fd
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
- edge-core-js: 8fedecef2b0a09b32fd0a44de7c82c75943cfad3
- edge-currency-accountbased: 4dfe7753cc360c8b6f2a925251b7e0e9db8554a5
- edge-login-ui-rn: 20ee19ab6c5036b5ee159f0e40b215e16e8a7952
+ edge-core-js: bd6a3109f6e4989be1d72449c5d7df9572c9336b
+ edge-currency-accountbased: e362a2a40f8202c6b0182ed2b361c0d8c24e70ac
+ edge-login-ui-rn: 865ed79155f7a6559422e2ca844f7b01f987ed92
FBLazyVector: c511d4cd0210f416cb5c289bd5ae6b36d909b048
FBReactNativeSpec: a911fb22def57aef1d74215e8b6b8761d25c1c54
Firebase: 5f8193dff4b5b7c5d5ef72ae54bb76c08e2b841d
@@ -1212,7 +1198,6 @@ SPEC CHECKSUMS:
gRPC-Swift: 77154009a019e97f8c4bd8f2bb75fe9726801157
hermes-engine: 34c863b446d0135b85a6536fa5fd89f48196f848
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
- libpiratelc: 8b923888cb473667fb7a84fa9b590e95a57f8a3d
libwebp: 98a37e597e40bfdb4c911fc98f2c53d0b12d05fc
Logging: beeb016c9c80cf77042d62e83495816847ef108b
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
@@ -1223,7 +1208,6 @@ SPEC CHECKSUMS:
Permission-LocationAlways: 6b001084436e802fb1a3ec725ad81e935ee3a6aa
Permission-LocationWhenInUse: a7243a69be958b5422bc0deea8bae0c937ca79f6
Permission-Notifications: 05a9c72e2ae989d28eb1eecf3d6a12daba73d375
- PirateLightClientKit: b5e76b77affabfc6eb6b1a01dad738d9c58c5ade
PromisesObjC: 99b6f43f9e1044bd87a95a60beff28c2c44ddb72
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
RCTRequired: f6187ec763637e6a57f5728dd9a3bdabc6d6b4e0
@@ -1249,7 +1233,7 @@ SPEC CHECKSUMS:
react-native-mail: 8fdcd3aef007c33a6877a18eb4cf7447a1d4ce4a
react-native-mymonero-core: 780bf854f27a0a905bcef5e7757d2de0a15b4408
react-native-netinfo: 3671b091c4843fda5e153612866ef4024b8f5d62
- react-native-piratechain: 3976b76abdc9822d1b23568e4bda8db480df6499
+ react-native-piratechain: b6670583e25d27216c016ce49781a67ea218f352
react-native-safari-view: 955d7160d159241b8e9395d12d10ea0ef863dcdd
react-native-safe-area-context: 68b07eabfb0d14547d36f6929c0e98d818064f02
react-native-tcp-socket: e724380c910c2e704816ec817ed28f1342246ff7
@@ -1312,11 +1296,11 @@ SPEC CHECKSUMS:
SwiftNIOSSL: 7c2ddcbcbb2a8188468b7fe9c2bc6124df4b3772
SwiftNIOTLS: 1b8290ec775238ccc714ed842d929494df95a2c2
SwiftNIOTransportServices: 0b2b407819d82eb63af558c5396e33c945759503
- SwiftProtobuf: b02b5075dcf60c9f5f403000b3b0c202a11b6ae1
+ SwiftProtobuf: 7773c4e96a99d7b8ab7cda0fc30a883732ff93b1
Yoga: f7decafdc5e8c125e6fa0da38a687e35238420fa
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb
-PODFILE CHECKSUM: b8006b1d677c7c684b18986cd606d6adc03317b0
+PODFILE CHECKSUM: 94e88a464a12f97deefd1dc898fad1a271469ef2
COCOAPODS: 1.12.1
diff --git a/package.json b/package.json
index b60e0344045..3d8aa97b5c8 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "edge-react-gui",
- "version": "3.16.0",
+ "version": "3.17.0",
"private": true,
"description": "Edge Wallet React GUI",
"homepage": "https://edge.app",
@@ -139,12 +139,12 @@
"deepmerge": "^4.3.1",
"detect-bundler": "^1.1.0",
"disklet": "^0.5.2",
- "edge-core-js": "^1.4.1",
- "edge-currency-accountbased": "^1.5.2",
+ "edge-core-js": "^1.4.2",
+ "edge-currency-accountbased": "^2.2.4",
"edge-currency-monero": "^1.1.1",
"edge-currency-plugins": "^2.1.0",
- "edge-exchange-plugins": "^0.20.2",
- "edge-login-ui-rn": "^2.7.0",
+ "edge-exchange-plugins": "^0.21.4",
+ "edge-login-ui-rn": "^2.8.1",
"ethers": "^5.6.0",
"paraswap": "^5.2.0",
"prompts": "^2.4.2",
@@ -177,7 +177,7 @@
"react-native-mymonero-core": "^0.3.1",
"react-native-patina": "^0.1.6",
"react-native-permissions": "^3.8.3",
- "react-native-piratechain": "^0.3.3",
+ "react-native-piratechain": "^0.3.5",
"react-native-popup-menu": "^0.16.1",
"react-native-reanimated": "^3.3.0",
"react-native-safari-view": "^2.1.0",
diff --git a/src/__tests__/modals/__snapshots__/AccelerateTxModal.test.tsx.snap b/src/__tests__/modals/__snapshots__/AccelerateTxModal.test.tsx.snap
index 9c9b2cc5caf..1ef75e65ac2 100644
--- a/src/__tests__/modals/__snapshots__/AccelerateTxModal.test.tsx.snap
+++ b/src/__tests__/modals/__snapshots__/AccelerateTxModal.test.tsx.snap
@@ -53,8 +53,5 @@ exports[`AccelerateTxModalComponent should render with loading props 1`] = `
showSpinner={false}
/>
-
`;
diff --git a/src/__tests__/modals/__snapshots__/AddressModal.test.tsx.snap b/src/__tests__/modals/__snapshots__/AddressModal.test.tsx.snap
index 6db27e41faa..f8682ffb768 100644
--- a/src/__tests__/modals/__snapshots__/AddressModal.test.tsx.snap
+++ b/src/__tests__/modals/__snapshots__/AddressModal.test.tsx.snap
@@ -75,8 +75,5 @@ exports[`AddressModalComponent should render with loaded props 1`] = `
type="secondary"
/>
-
`;
diff --git a/src/__tests__/modals/__snapshots__/AdvancedDetailsModal.test.tsx.snap b/src/__tests__/modals/__snapshots__/AdvancedDetailsModal.test.tsx.snap
index c1ea95b9757..89dae75306b 100644
--- a/src/__tests__/modals/__snapshots__/AdvancedDetailsModal.test.tsx.snap
+++ b/src/__tests__/modals/__snapshots__/AdvancedDetailsModal.test.tsx.snap
@@ -365,67 +365,64 @@ exports[`AdvancedDetailsModal should render with loading props 1`] = `
-
-
-
+
-
-
-
-
-
+ "fontFamily": "anticon",
+ "fontStyle": "normal",
+ "fontWeight": "normal",
+ },
+ {},
+ ]
+ }
+ >
+
+
,
]
diff --git a/src/__tests__/modals/__snapshots__/CategoryModal.test.tsx.snap b/src/__tests__/modals/__snapshots__/CategoryModal.test.tsx.snap
index a7544193c98..6087366abc1 100644
--- a/src/__tests__/modals/__snapshots__/CategoryModal.test.tsx.snap
+++ b/src/__tests__/modals/__snapshots__/CategoryModal.test.tsx.snap
@@ -715,55 +715,33 @@ exports[`CategoryModal should render with a subcategory 1`] = `
style={
{
"flex": 1,
- "overflow": "hidden",
}
}
>
-
+
-
-
-
+
+
+ >
+
+
-
-
-
-
+
+
-
-
-
-
-
+ />
-
+
+
+ >
+
+
,
]
@@ -1735,55 +1736,33 @@ exports[`CategoryModal should render with an empty subcategory 1`] = `
style={
{
"flex": 1,
- "overflow": "hidden",
}
}
>
-
+
-
-
-
+
+
+ >
+
+
-
-
-
-
+
+
-
-
-
-
-
+ />
-
+
+
+ >
+
+
,
]
diff --git a/src/__tests__/modals/__snapshots__/HelpModal.test.tsx.snap b/src/__tests__/modals/__snapshots__/HelpModal.test.tsx.snap
index db5539a9f2e..127be55dcaa 100644
--- a/src/__tests__/modals/__snapshots__/HelpModal.test.tsx.snap
+++ b/src/__tests__/modals/__snapshots__/HelpModal.test.tsx.snap
@@ -1136,67 +1136,64 @@ exports[`HelpModal should render with loading props 1`] = `
Build 2019010101
-
-
-
+
-
-
-
-
-
+ "fontFamily": "anticon",
+ "fontStyle": "normal",
+ "fontWeight": "normal",
+ },
+ {},
+ ]
+ }
+ >
+
+
,
]
diff --git a/src/__tests__/modals/__snapshots__/PasswordReminderModal.test.tsx.snap b/src/__tests__/modals/__snapshots__/PasswordReminderModal.test.tsx.snap
index cf876fb5556..98bac21a3b6 100644
--- a/src/__tests__/modals/__snapshots__/PasswordReminderModal.test.tsx.snap
+++ b/src/__tests__/modals/__snapshots__/PasswordReminderModal.test.tsx.snap
@@ -62,8 +62,5 @@ exports[`PasswordReminderModal should render with loading props 1`] = `
}
}
/>
-
`;
diff --git a/src/__tests__/modals/__snapshots__/WalletListModal.test.tsx.snap b/src/__tests__/modals/__snapshots__/WalletListModal.test.tsx.snap
index f1188a9f696..91fce406d71 100644
--- a/src/__tests__/modals/__snapshots__/WalletListModal.test.tsx.snap
+++ b/src/__tests__/modals/__snapshots__/WalletListModal.test.tsx.snap
@@ -494,7 +494,7 @@ exports[`WalletListModal should render with loading props 1`] = `
},
"props": {
"contentContainerStyle": {
- "paddingBottom": 56,
+ "paddingBottom": 67,
},
"data": [],
"estimatedItemSize": 96,
@@ -617,7 +617,7 @@ exports[`WalletListModal should render with loading props 1`] = `
-
-
-
-
-
-
-
+ />
-
+
+
+ >
+
+
,
]
diff --git a/src/actions/TransactionExportActions.tsx b/src/actions/TransactionExportActions.tsx
index 009b0bafd12..014f6b5f54b 100644
--- a/src/actions/TransactionExportActions.tsx
+++ b/src/actions/TransactionExportActions.tsx
@@ -148,6 +148,17 @@ function makeCsvDateTime(date: number): { date: string; time: string } {
}
}
+function makeBitwaveDateTime(date: number): string {
+ const d = new Date(date * 1000)
+ const yy = d.getUTCFullYear().toString().slice(-2)
+ const mm = padZero((d.getUTCMonth() + 1).toString())
+ const dd = padZero(d.getUTCDate().toString())
+ const hh = padZero(d.getUTCHours().toString())
+ const min = padZero(d.getUTCMinutes().toString())
+
+ return `${mm}/${dd}/${yy} ${hh}:${min}`
+}
+
//
// Check if tx is
// 1. A transfer
@@ -379,3 +390,69 @@ export function exportTransactionsToCSVInner(
record_delimiter: '\n'
})
}
+
+export async function exportTransactionsToBitwave(
+ wallet: EdgeCurrencyWallet,
+ accountId: string,
+ edgeTransactions: EdgeTransaction[],
+ currencyCode: string,
+ multiplier: string,
+ parentMultiplier: string
+): Promise {
+ const items: any[] = []
+ const parentCode = wallet.currencyInfo.currencyCode
+
+ for (const tx of edgeTransactions) {
+ edgeTxToCsv(tx)
+ }
+
+ function edgeTxToCsv(edgeTx: EdgeTransaction) {
+ const { date, isSend, metadata, nativeAmount, networkFee, parentNetworkFee, txid } = edgeTx
+ const amount: string = abs(div(nativeAmount, multiplier, DECIMAL_PRECISION))
+ const time = makeBitwaveDateTime(date)
+ let fee: string = ''
+ let feeTicker: string = ''
+ const { name = '', category = '', notes = '' } = metadata ?? {}
+
+ if (isSend) {
+ if (parentNetworkFee != null) {
+ feeTicker = parentCode
+ fee = div(parentNetworkFee, parentMultiplier, DECIMAL_PRECISION)
+ } else {
+ feeTicker = currencyCode
+ fee = div(networkFee, multiplier, DECIMAL_PRECISION)
+ }
+ }
+
+ items.push({
+ id: txid,
+ remoteContactId: '',
+ amount,
+ amountTicker: currencyCode,
+ cost: '',
+ costTicker: '',
+ fee,
+ feeTicker,
+ time,
+ blockchainId: txid,
+ memo: category,
+ transactionType: isSend ? 'withdrawal' : 'deposit',
+ accountId,
+ contactId: '',
+ categoryId: '',
+ taxExempt: 'FALSE',
+ tradeId: '',
+ description: name,
+ fromAddress: '',
+ toAddress: '',
+ groupId: '',
+ 'metadata:myCustomMetadata1': notes
+ })
+ }
+
+ return csvStringify(items, {
+ header: true,
+ quoted_string: true,
+ record_delimiter: '\n'
+ })
+}
diff --git a/src/components/modals/AccelerateTxModal.tsx b/src/components/modals/AccelerateTxModal.tsx
index 11b99c14034..2d647202b07 100644
--- a/src/components/modals/AccelerateTxModal.tsx
+++ b/src/components/modals/AccelerateTxModal.tsx
@@ -9,7 +9,7 @@ import { connect } from '../../types/reactRedux'
import { GuiExchangeRates } from '../../types/types'
import { convertTransactionFeeToDisplayFee } from '../../util/utils'
import { cacheStyles, Theme, ThemeProps, withTheme } from '../services/ThemeContext'
-import { ModalFooter, ModalMessage, ModalTitle } from '../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../themed/ModalParts'
import { Slider } from '../themed/Slider'
import { ThemedModal } from '../themed/ThemedModal'
import { Tile } from '../tiles/Tile'
@@ -130,7 +130,6 @@ export class AccelerateTxModalComponent extends PureComponent {
disabledText={lstrings.transaction_details_accelerate_transaction_slider_disabled}
/>
-
)
}
diff --git a/src/components/modals/AddressModal.tsx b/src/components/modals/AddressModal.tsx
index 7a6a2c892ed..9821f6cc82e 100644
--- a/src/components/modals/AddressModal.tsx
+++ b/src/components/modals/AddressModal.tsx
@@ -19,7 +19,7 @@ import { FormattedText as Text } from '../legacy/FormattedText/FormattedText.ui'
import { showError } from '../services/AirshipInstance'
import { cacheStyles, Theme, ThemeProps, withTheme } from '../services/ThemeContext'
import { MainButton } from '../themed/MainButton'
-import { ModalFooter, ModalTitle } from '../themed/ModalParts'
+import { ModalTitle } from '../themed/ModalParts'
import { OutlinedTextInput } from '../themed/OutlinedTextInput'
import { ThemedModal } from '../themed/ThemedModal'
@@ -350,7 +350,6 @@ export class AddressModalComponent extends React.Component {
)}
-
)
}
diff --git a/src/components/modals/AdvancedDetailsModal.tsx b/src/components/modals/AdvancedDetailsModal.tsx
index 952aeab2836..560193f15ba 100644
--- a/src/components/modals/AdvancedDetailsModal.tsx
+++ b/src/components/modals/AdvancedDetailsModal.tsx
@@ -7,7 +7,6 @@ import { lstrings } from '../../locales/strings'
import { openBrowserUri } from '../../util/WebUtils'
import { cacheStyles, Theme, ThemeProps, withTheme } from '../services/ThemeContext'
import { EdgeText } from '../themed/EdgeText'
-import { ModalFooter } from '../themed/ModalParts'
import { ThemedModal } from '../themed/ThemedModal'
import { Tile } from '../tiles/Tile'
@@ -115,7 +114,6 @@ export class AdvancedDetailsModalComponent extends PureComponent {
{deviceDescription != null && }
-
)
}
diff --git a/src/components/modals/ButtonsModal.tsx b/src/components/modals/ButtonsModal.tsx
index b9fce3b33e0..ff122d4def9 100644
--- a/src/components/modals/ButtonsModal.tsx
+++ b/src/components/modals/ButtonsModal.tsx
@@ -5,7 +5,7 @@ import { AirshipBridge } from 'react-native-airship'
import { showError } from '../services/AirshipInstance'
import { useTheme } from '../services/ThemeContext'
import { MainButton } from '../themed/MainButton'
-import { ModalFooter, ModalMessage, ModalTitle } from '../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../themed/ModalParts'
import { ThemedModal } from '../themed/ThemedModal'
export interface ButtonInfo {
@@ -62,7 +62,7 @@ export function ButtonsModal(prop
}
return (
-
+
{title != null ? {title} : null}
@@ -95,7 +95,6 @@ export function ButtonsModal(prop
return
})}
- {closeArrow ? : null}
)
diff --git a/src/components/modals/CategoryModal.tsx b/src/components/modals/CategoryModal.tsx
index f1ff44a45bc..9d804db8bcf 100644
--- a/src/components/modals/CategoryModal.tsx
+++ b/src/components/modals/CategoryModal.tsx
@@ -14,7 +14,7 @@ import { MinimalButton } from '../buttons/MinimalButton'
import { cacheStyles, Theme, useTheme } from '../services/ThemeContext'
import { DividerLine } from '../themed/DividerLine'
import { EdgeText } from '../themed/EdgeText'
-import { ModalFooter, ModalTitle } from '../themed/ModalParts'
+import { ModalFooter, ModalFooterFade, ModalTitle } from '../themed/ModalParts'
import { OutlinedTextInput } from '../themed/OutlinedTextInput'
import { ThemedModal } from '../themed/ThemedModal'
@@ -142,15 +142,17 @@ export function CategoryModal(props: Props) {
onSubmitEditing={handleSubmit}
value={subcategory}
/>
-
-
+
+
+
+
)
}
@@ -166,6 +168,9 @@ const getStyle = cacheStyles((theme: Theme) => ({
marginHorizontal: theme.rem(1),
marginBottom: theme.rem(1)
},
+ categoryListContainer: {
+ flex: 1
+ },
rowContainer: {
flex: 1,
height: theme.rem(3.1),
diff --git a/src/components/modals/ConfirmContinueModal.tsx b/src/components/modals/ConfirmContinueModal.tsx
index 1f38732a277..a52b775c5d8 100644
--- a/src/components/modals/ConfirmContinueModal.tsx
+++ b/src/components/modals/ConfirmContinueModal.tsx
@@ -9,7 +9,7 @@ import { cacheStyles, Theme, useTheme } from '../services/ThemeContext'
import { EdgeText } from '../themed/EdgeText'
import { Fade } from '../themed/Fade'
import { MainButton } from '../themed/MainButton'
-import { ModalFooter, ModalMessage, ModalTitle } from '../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../themed/ModalParts'
import { ThemedModal } from '../themed/ThemedModal'
interface Props {
@@ -48,7 +48,7 @@ export function ConfirmContinueModal(props: Props) {
}
return (
-
+
{title != null && (
@@ -71,7 +71,6 @@ export function ConfirmContinueModal(props: Props) {
- {isSkippable && }
)
}
diff --git a/src/components/modals/FioExpiredModal.tsx b/src/components/modals/FioExpiredModal.tsx
index a7141d0052a..665fc5aa09f 100644
--- a/src/components/modals/FioExpiredModal.tsx
+++ b/src/components/modals/FioExpiredModal.tsx
@@ -3,7 +3,7 @@ import { AirshipBridge } from 'react-native-airship'
import { lstrings } from '../../locales/strings'
import { MainButton } from '../themed/MainButton'
-import { ModalFooter, ModalMessage, ModalTitle } from '../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../themed/ModalParts'
import { ThemedModal } from '../themed/ThemedModal'
export function FioExpiredModal(props: { bridge: AirshipBridge; fioName: string }) {
@@ -16,7 +16,6 @@ export function FioExpiredModal(props: { bridge: AirshipBridge; fioName
{lstrings.fio_domain_details_expired_soon}
{fioName}
bridge.resolve(true)} />
- bridge.resolve(false)} />
)
}
diff --git a/src/components/modals/FlipInputModal2.tsx b/src/components/modals/FlipInputModal2.tsx
index 73e39e214fc..456cb6bdbfb 100644
--- a/src/components/modals/FlipInputModal2.tsx
+++ b/src/components/modals/FlipInputModal2.tsx
@@ -2,7 +2,7 @@ import { div, log10, toFixed } from 'biggystring'
import { EdgeCurrencyWallet } from 'edge-core-js'
import * as React from 'react'
import { memo, useState } from 'react'
-import { Dimensions, TouchableWithoutFeedback, View } from 'react-native'
+import { Dimensions, Platform, TouchableWithoutFeedback, View } from 'react-native'
import { AirshipBridge } from 'react-native-airship'
import FontAwesomeIcon from 'react-native-vector-icons/FontAwesome'
import { sprintf } from 'sprintf-js'
@@ -240,7 +240,7 @@ const deviceHeight = Dimensions.get('window').height
const getStyles = cacheStyles((theme: Theme) => ({
hackContainer: {
- flex: deviceHeight <= 580 ? 1 : 0
+ flex: deviceHeight <= 580 || Platform.OS === 'android' ? 1 : 0
},
flipInput: {
justifyContent: 'flex-start'
diff --git a/src/components/modals/HelpModal.tsx b/src/components/modals/HelpModal.tsx
index 3b13746d5dc..d2d53ef37d9 100644
--- a/src/components/modals/HelpModal.tsx
+++ b/src/components/modals/HelpModal.tsx
@@ -15,7 +15,7 @@ import { openBrowserUri } from '../../util/WebUtils'
import { Airship } from '../services/AirshipInstance'
import { cacheStyles, Theme, useTheme } from '../services/ThemeContext'
import { EdgeText } from '../themed/EdgeText'
-import { ModalFooter, ModalTitle } from '../themed/ModalParts'
+import { ModalTitle } from '../themed/ModalParts'
import { SelectableRow } from '../themed/SelectableRow'
import { ThemedModal } from '../themed/ThemedModal'
@@ -127,8 +127,6 @@ export const HelpModal = (props: Props) => {
{versionText}
{buildText}
-
-
)
}
diff --git a/src/components/modals/ListModal.tsx b/src/components/modals/ListModal.tsx
index e14543dbdef..b344e3981c7 100644
--- a/src/components/modals/ListModal.tsx
+++ b/src/components/modals/ListModal.tsx
@@ -72,7 +72,7 @@ export function ListModal({
}, [theme])
return (
-
+
{title == null ? null : {title}}
{message == null ? null : {message}}
{textInput == null ? null : (
@@ -102,7 +102,6 @@ export function ListModal({
onScroll={() => Keyboard.dismiss()}
onViewableItemsChanged={onViewableItemsChanged}
/>
- {!closeArrow ? null : }
)
}
diff --git a/src/components/modals/LogsModal.tsx b/src/components/modals/LogsModal.tsx
index 31b29574812..1ea519ba39e 100644
--- a/src/components/modals/LogsModal.tsx
+++ b/src/components/modals/LogsModal.tsx
@@ -9,7 +9,7 @@ import { lstrings } from '../../locales/strings'
import { WarningCard } from '../cards/WarningCard'
import { showToast } from '../services/AirshipInstance'
import { MainButton } from '../themed/MainButton'
-import { ModalMessage, ModalScrollArea, ModalTitle } from '../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../themed/ModalParts'
import { OutlinedTextInput } from '../themed/OutlinedTextInput'
import { ThemedModal } from '../themed/ThemedModal'
interface Props {
@@ -71,26 +71,24 @@ export const LogsModal = (props: Props) => {
}
return (
-
-
- {lstrings.settings_button_export_logs}
- {!isDangerous ? null : }
- {isDangerous ? null : {lstrings.settings_modal_export_logs_message}}
-
- {isDangerous ? null : (
-
- )}
-
-
+
+ {lstrings.settings_button_export_logs}
+ {!isDangerous ? null : }
+ {isDangerous ? null : {lstrings.settings_modal_export_logs_message}}
+
+ {isDangerous ? null : (
+
+ )}
+
)
}
diff --git a/src/components/modals/PasswordReminderModal.tsx b/src/components/modals/PasswordReminderModal.tsx
index 8e692f393de..0c0e6f6148c 100644
--- a/src/components/modals/PasswordReminderModal.tsx
+++ b/src/components/modals/PasswordReminderModal.tsx
@@ -9,7 +9,7 @@ import { NavigationBase } from '../../types/routerTypes'
import { ButtonsContainer } from '../buttons/ButtonsContainer'
import { showError, showToast } from '../services/AirshipInstance'
import { ThemeProps, withTheme } from '../services/ThemeContext'
-import { ModalFooter, ModalMessage, ModalTitle } from '../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../themed/ModalParts'
import { OutlinedTextInput } from '../themed/OutlinedTextInput'
import { ThemedModal } from '../themed/ThemedModal'
@@ -107,7 +107,6 @@ export class PasswordReminderModalComponent extends React.PureComponent
-
)
}
diff --git a/src/components/modals/PermissionsSettingModal.tsx b/src/components/modals/PermissionsSettingModal.tsx
index 284b3f05e7c..986b55e0008 100644
--- a/src/components/modals/PermissionsSettingModal.tsx
+++ b/src/components/modals/PermissionsSettingModal.tsx
@@ -10,7 +10,7 @@ import { Permission, permissionNames } from '../../reducers/PermissionsReducer'
import { showError } from '../services/AirshipInstance'
import { checkIfDenied } from '../services/PermissionsManager'
import { MainButton } from '../themed/MainButton'
-import { ModalFooter, ModalMessage } from '../themed/ModalParts'
+import { ModalMessage } from '../themed/ModalParts'
import { ThemedModal } from '../themed/ThemedModal'
export function PermissionsSettingModal(props: {
@@ -44,7 +44,6 @@ export function PermissionsSettingModal(props: {
{message}
-
)
}
diff --git a/src/components/modals/RawTextModal.tsx b/src/components/modals/RawTextModal.tsx
index 4b17df487bc..67c92f09840 100644
--- a/src/components/modals/RawTextModal.tsx
+++ b/src/components/modals/RawTextModal.tsx
@@ -6,7 +6,7 @@ import { AirshipBridge } from 'react-native-airship'
import { lstrings } from '../../locales/strings'
import { showToast } from '../services/AirshipInstance'
import { MainButton } from '../themed/MainButton'
-import { ModalFooter, ModalMessage, ModalTitle } from '../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../themed/ModalParts'
import { ThemedModal } from '../themed/ThemedModal'
interface Props {
@@ -35,7 +35,6 @@ export function RawTextModal(props: Props) {
{disableCopy ? null : (
)}
-
)
}
diff --git a/src/components/modals/TextInputModal.tsx b/src/components/modals/TextInputModal.tsx
index b727856eda5..7b721a266f7 100644
--- a/src/components/modals/TextInputModal.tsx
+++ b/src/components/modals/TextInputModal.tsx
@@ -6,7 +6,7 @@ import { lstrings } from '../../locales/strings'
import { showError } from '../services/AirshipInstance'
import { Alert } from '../themed/Alert'
import { MainButton } from '../themed/MainButton'
-import { ModalFooter, ModalMessage, ModalTitle } from '../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../themed/ModalParts'
import { OutlinedTextInput } from '../themed/OutlinedTextInput'
import { ThemedModal } from '../themed/ThemedModal'
@@ -122,7 +122,6 @@ export function TextInputModal(props: Props) {
) : (
)}
- bridge.resolve(undefined)} />
)
}
diff --git a/src/components/modals/UpdateModal.tsx b/src/components/modals/UpdateModal.tsx
index 5a198f0c816..7235bac22f6 100644
--- a/src/components/modals/UpdateModal.tsx
+++ b/src/components/modals/UpdateModal.tsx
@@ -8,7 +8,7 @@ import { lstrings } from '../../locales/strings'
import { config } from '../../theme/appConfig'
import { cacheStyles, Theme, useTheme } from '../services/ThemeContext'
import { MainButton } from '../themed/MainButton'
-import { ModalFooter, ModalMessage, ModalTitle } from '../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../themed/ModalParts'
import { ThemedModal } from '../themed/ThemedModal'
interface Props {
@@ -31,7 +31,7 @@ export function UpdateModal(props: Props) {
const message = sprintf(lstrings.update_fresh_new_version, config.appName)
return (
- bridge.resolve()}>
+
{lstrings.update_header}
@@ -39,7 +39,6 @@ export function UpdateModal(props: Props) {
{message}
-
)
}
diff --git a/src/components/modals/WalletListMenuModal.tsx b/src/components/modals/WalletListMenuModal.tsx
index 9cdcfefbc96..5d2be491efe 100644
--- a/src/components/modals/WalletListMenuModal.tsx
+++ b/src/components/modals/WalletListMenuModal.tsx
@@ -1,7 +1,6 @@
import React from 'react'
-import { ScrollView, Text, TouchableOpacity, View } from 'react-native'
+import { Text, TouchableOpacity, View } from 'react-native'
import { AirshipBridge } from 'react-native-airship'
-import LinearGradient from 'react-native-linear-gradient'
import AntDesignIcon from 'react-native-vector-icons/AntDesign'
import { sprintf } from 'sprintf-js'
@@ -18,7 +17,7 @@ import { getWalletName } from '../../util/CurrencyWalletHelpers'
import { CryptoIcon } from '../icons/CryptoIcon'
import { showError } from '../services/AirshipInstance'
import { cacheStyles, Theme, useTheme } from '../services/ThemeContext'
-import { ModalFooter, ModalTitle } from '../themed/ModalParts'
+import { ModalScrollArea, ModalTitle } from '../themed/ModalParts'
import { ThemedModal } from '../themed/ThemedModal'
interface Option {
@@ -48,9 +47,6 @@ const icons = {
viewXPub: 'eye'
}
-const xButtonGradientStart = { x: 0, y: 0 }
-const xButtonGradientEnd = { x: 0, y: 0.75 }
-
/**
* Customizes which coins get which options on the wallet list scene.
*/
@@ -204,9 +200,6 @@ export function WalletListMenuModal(props: Props) {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [])
- const xButtonTopColor = theme.modal + '00' // Add full transparency to the modal color
- const xButtonBottomColor = theme.modal
-
return (
{wallet != null && (
@@ -220,7 +213,7 @@ export function WalletListMenuModal(props: Props) {
)}
-
+
{options.map((option: Option) => (
optionAction(option.value)} style={styles.row}>
{option.label}
))}
-
+
-
-
-
)
}
diff --git a/src/components/modals/WalletListModal.tsx b/src/components/modals/WalletListModal.tsx
index a7d842ddc51..01e1a022d08 100644
--- a/src/components/modals/WalletListModal.tsx
+++ b/src/components/modals/WalletListModal.tsx
@@ -21,7 +21,7 @@ import { Airship, showError } from '../services/AirshipInstance'
import { cacheStyles, Theme, useTheme } from '../services/ThemeContext'
import { EdgeText } from '../themed/EdgeText'
import { MainButton } from '../themed/MainButton'
-import { ModalFooter, ModalTitle } from '../themed/ModalParts'
+import { ModalFooterFade, ModalTitle } from '../themed/ModalParts'
import { OutlinedTextInput } from '../themed/OutlinedTextInput'
import { ThemedModal } from '../themed/ThemedModal'
import { WalletList } from '../themed/WalletList'
@@ -239,8 +239,8 @@ export function WalletListModal(props: Props) {
onPress={handleWalletListPress}
navigation={navigation}
/>
+
-
)
}
diff --git a/src/components/modals/WcSmartContractModal.tsx b/src/components/modals/WcSmartContractModal.tsx
index 3cf62d8bf6b..f7e056df5b2 100644
--- a/src/components/modals/WcSmartContractModal.tsx
+++ b/src/components/modals/WcSmartContractModal.tsx
@@ -19,7 +19,7 @@ import { Airship, showError } from '../services/AirshipInstance'
import { cacheStyles, Theme, useTheme } from '../services/ThemeContext'
import { Alert } from '../themed/Alert'
import { EdgeText } from '../themed/EdgeText'
-import { ModalFooter, ModalTitle } from '../themed/ModalParts'
+import { ModalFooter, ModalFooterFade, ModalTitle } from '../themed/ModalParts'
import { SafeSlider } from '../themed/SafeSlider'
import { ThemedModal } from '../themed/ThemedModal'
import { CryptoFiatAmountTile } from '../tiles/CryptoFiatAmountTile'
@@ -146,7 +146,7 @@ export const WcSmartContractModal = (props: Props) => {
{lstrings.wc_smartcontract_title}
-
+
{renderWarning()}
{zeroString(nativeAmount) ? null : (
{
)}
{slider}
-
+
)
}
@@ -188,6 +188,9 @@ const getStyles = cacheStyles((theme: Theme) => ({
resizeMode: 'contain',
padding: theme.rem(0.5)
},
+ scrollPadding: {
+ paddingBottom: theme.rem(ModalFooter.bottomRem)
+ },
slider: {
paddingVertical: theme.rem(1)
}
diff --git a/src/components/modals/WebViewModal.tsx b/src/components/modals/WebViewModal.tsx
index bdf58f24d6b..25aa3366292 100644
--- a/src/components/modals/WebViewModal.tsx
+++ b/src/components/modals/WebViewModal.tsx
@@ -3,7 +3,7 @@ import { AirshipBridge } from 'react-native-airship'
import { WebView } from 'react-native-webview'
import { Airship } from '../services/AirshipInstance'
-import { ModalFooter, ModalTitle } from '../themed/ModalParts'
+import { ModalTitle } from '../themed/ModalParts'
import { ThemedModal } from '../themed/ThemedModal'
export async function showWebViewModal(title: string, uri: string): Promise {
@@ -30,8 +30,6 @@ export const WebViewModal = (props: Props) => {
{title}
-
-
)
}
diff --git a/src/components/navigation/FlashNotification.tsx b/src/components/navigation/FlashNotification.tsx
index de80c354f92..75044811b7e 100644
--- a/src/components/navigation/FlashNotification.tsx
+++ b/src/components/navigation/FlashNotification.tsx
@@ -1,5 +1,5 @@
import * as React from 'react'
-import { Text } from 'react-native'
+import { Text, View } from 'react-native'
import { AirshipBridge } from 'react-native-airship'
import AntDesignIcon from 'react-native-vector-icons/AntDesign'
@@ -24,14 +24,19 @@ export function FlashNotification(props: Props) {
return (
-
- {message}
-
+
+
+ {message}
+
+
)
}
const getStyles = cacheStyles((theme: Theme) => ({
+ container: {
+ paddingBottom: theme.rem(1)
+ },
text: {
// @ts-expect-error
...nightText('row-center'),
diff --git a/src/components/scenes/EditTokenScene.tsx b/src/components/scenes/EditTokenScene.tsx
index 454d3413548..ec37ff77762 100644
--- a/src/components/scenes/EditTokenScene.tsx
+++ b/src/components/scenes/EditTokenScene.tsx
@@ -2,19 +2,22 @@ import { asMaybe, asObject, asString } from 'cleaners'
import { EdgeCurrencyWallet, EdgeToken } from 'edge-core-js'
import * as React from 'react'
import { ScrollView } from 'react-native'
+import { sprintf } from 'sprintf-js'
import { useHandler } from '../../hooks/useHandler'
import { lstrings } from '../../locales/strings'
+import { config } from '../../theme/appConfig'
import { useSelector } from '../../types/reactRedux'
import { EdgeSceneProps } from '../../types/routerTypes'
import { getWalletName } from '../../util/CurrencyWalletHelpers'
import { logActivity } from '../../util/logger'
+import { ButtonsContainer } from '../buttons/ButtonsContainer'
import { SceneWrapper } from '../common/SceneWrapper'
import { withWallet } from '../hoc/withWallet'
import { ButtonsModal } from '../modals/ButtonsModal'
+import { ConfirmContinueModal } from '../modals/ConfirmContinueModal'
import { Airship } from '../services/AirshipInstance'
import { cacheStyles, Theme, useTheme } from '../services/ThemeContext'
-import { MainButton } from '../themed/MainButton'
import { OutlinedTextInput } from '../themed/OutlinedTextInput'
import { SceneHeader } from '../themed/SceneHeader'
@@ -78,11 +81,8 @@ function EditTokenSceneComponent(props: Props) {
if (isNaN(decimals)) {
return await showMessage(lstrings.edittoken_invalid_decimal_places)
}
- // TODO:
- // We need to check for conflicts with the other tokens in the account,
- // both for matching contract addresses and for currency codes.
- const token: EdgeToken = {
+ const customTokenInput: EdgeToken = {
currencyCode,
displayName,
denominations: [
@@ -98,13 +98,49 @@ function EditTokenSceneComponent(props: Props) {
}
if (tokenId != null) {
- await wallet.currencyConfig.changeCustomToken(tokenId, token)
+ await wallet.currencyConfig.changeCustomToken(tokenId, customTokenInput)
+ navigation.goBack()
} else {
- const tokenId = await wallet.currencyConfig.addCustomToken(token)
- await wallet.changeEnabledTokenIds([...wallet.enabledTokenIds, tokenId])
- logActivity(`Add Custom Token: ${account.username} -- ${getWalletName(wallet)} -- ${wallet.type} -- ${tokenId} -- ${currencyCode} -- ${decimals}`)
+ const { currencyConfig } = wallet
+ const { builtinTokens } = currencyConfig
+
+ // Check if custom token input conflicts with built-in tokens.
+ // There's currently no mechanism to obtain a new custom token's tokenId
+ // for proper comparison against built-in tokens besides physically adding
+ // the new custom token first.
+ const newTokenId = await currencyConfig.addCustomToken(customTokenInput)
+
+ const matchingContractToken =
+ Object.keys(builtinTokens).find(builtinTokenId => builtinTokenId === newTokenId) == null ? undefined : builtinTokens[newTokenId]
+ const isMatchingCurrencyCode = Object.values(builtinTokens).find(builtInToken => builtInToken.currencyCode === currencyCode) != null
+
+ if (matchingContractToken != null && isMatchingCurrencyCode) {
+ await showMessage(sprintf(lstrings.warning_token_exists_1s, currencyCode))
+ return
+ }
+
+ const warningMessage =
+ isMatchingCurrencyCode && matchingContractToken == null
+ ? sprintf(lstrings.warning_token_code_override_2s, currencyCode, config.supportEmail)
+ : matchingContractToken != null && !isMatchingCurrencyCode
+ ? sprintf(lstrings.warning_token_contract_override_3s, currencyCode, matchingContractToken.currencyCode, config.supportEmail)
+ : undefined
+
+ const approveAdd =
+ warningMessage == null
+ ? true
+ : await Airship.show(bridge => (
+
+ ))
+
+ if (approveAdd) {
+ await wallet.changeEnabledTokenIds([...wallet.enabledTokenIds, newTokenId])
+ logActivity(`Add Custom Token: ${account.username} -- ${getWalletName(wallet)} -- ${wallet.type} -- ${tokenId} -- ${currencyCode} -- ${decimals}`)
+ navigation.goBack()
+ } else {
+ await currencyConfig.removeCustomToken(newTokenId)
+ }
}
- navigation.goBack()
})
return (
@@ -146,16 +182,11 @@ function EditTokenSceneComponent(props: Props) {
value={decimalPlaces}
onChangeText={setDecimalPlaces}
/>
-
- {tokenId == null ? null : (
-
- )}
+
)
diff --git a/src/components/scenes/Fio/FioStakingChangeScene.tsx b/src/components/scenes/Fio/FioStakingChangeScene.tsx
index 52175429ce2..58610831b18 100644
--- a/src/components/scenes/Fio/FioStakingChangeScene.tsx
+++ b/src/components/scenes/Fio/FioStakingChangeScene.tsx
@@ -23,7 +23,7 @@ import { FlipInputModal, FlipInputModalResult } from '../../modals/FlipInputModa
import { Airship, showToast } from '../../services/AirshipInstance'
import { cacheStyles, Theme, useTheme } from '../../services/ThemeContext'
import { EdgeText } from '../../themed/EdgeText'
-import { ModalFooter, ModalMessage, ModalTitle } from '../../themed/ModalParts'
+import { ModalMessage, ModalTitle } from '../../themed/ModalParts'
import { SceneHeader } from '../../themed/SceneHeader'
import { Slider } from '../../themed/Slider'
import { ThemedModal } from '../../themed/ThemedModal'
@@ -176,7 +176,6 @@ export const FioStakingChangeScene = withWallet((props: Props) => {
{lstrings.staking_change_unlock_explainer1}
{lstrings.staking_change_unlock_explainer2}
-
)
})
diff --git a/src/components/scenes/ManageTokensScene.tsx b/src/components/scenes/ManageTokensScene.tsx
index b3e99af5971..7af31cf051a 100644
--- a/src/components/scenes/ManageTokensScene.tsx
+++ b/src/components/scenes/ManageTokensScene.tsx
@@ -1,6 +1,7 @@
import { FlashList } from '@shopify/flash-list'
import { EdgeCurrencyWallet } from 'edge-core-js'
import * as React from 'react'
+import { View } from 'react-native'
import { PREFERRED_TOKENS, SPECIAL_CURRENCY_INFO } from '../../constants/WalletAndCurrencyConstants'
import { useHandler } from '../../hooks/useHandler'
@@ -111,7 +112,7 @@ function ManageTokensSceneComponent(props: Props) {
{lstrings.managetokens_top_instructions}
-
+ {/* TODO: Remove extra padding in ThemedModal so we don't need to compensate margins with this View */}
+
+
+
>
)}
@@ -136,6 +140,7 @@ function ManageTokensSceneComponent(props: Props) {
const keyExtractor = (tokenId: string) => tokenId
const getStyles = cacheStyles((theme: Theme) => ({
+ buttonsContainer: { marginHorizontal: theme.rem(0.5) },
rightIcon: {
color: theme.iconTappable,
marginRight: theme.rem(1)
diff --git a/src/components/scenes/SendScene2.tsx b/src/components/scenes/SendScene2.tsx
index 3c889e27854..b20f1f3e47f 100644
--- a/src/components/scenes/SendScene2.tsx
+++ b/src/components/scenes/SendScene2.tsx
@@ -155,13 +155,13 @@ const SendComponent = (props: Props) => {
memoError: ''
})
- // 0 = no max spend. 1 and higher = the spendTarget that requested the max spend. 1 = 1st, 2 = 2nd ...
- const [maxSpendSetter, setMaxSpendSetter] = useState(0)
+ // -1 = no max spend, otherwise equal to the index the spendTarget that requested the max spend.
+ const [maxSpendSetter, setMaxSpendSetter] = useState(-1)
const account = useSelector(state => state.core.account)
const exchangeRates = useSelector(state => state.exchangeRates)
const pinSpendingLimitsEnabled = useSelector(state => state.ui.settings.spendingLimits.transaction.isEnabled)
- const pinSpendingLimitsAmount = useSelector(state => state.ui.settings.spendingLimits.transaction.amount)
+ const pinSpendingLimitsAmount = useSelector(state => state.ui.settings.spendingLimits.transaction.amount ?? 0)
const defaultIsoFiat = useSelector(state => state.ui.settings.defaultIsoFiat)
const currencyWallets = useWatch(account, 'currencyWallets')
const [tokenId, setTokenId] = useState(spendInfo.tokenId ?? tokenIdProp)
@@ -285,7 +285,7 @@ const SendComponent = (props: Props) => {
// the spendInfo object
setProcessingAmountChanged(true)
setSpendInfo({ ...spendInfo })
- setMaxSpendSetter(0)
+ setMaxSpendSetter(-1)
setFieldChanged(newField)
}
@@ -298,7 +298,7 @@ const SendComponent = (props: Props) => {
navigation.navigate('changeMiningFee2', {
spendInfo,
- maxSpendSet: maxSpendSetter > 0,
+ maxSpendSet: maxSpendSetter >= 0,
wallet: coreWallet,
onSubmit: (networkFeeOption, customNetworkFee) => {
setSpendInfo({ ...spendInfo, networkFeeOption, customNetworkFee })
@@ -315,7 +315,7 @@ const SendComponent = (props: Props) => {
startNativeAmount={spendTarget.nativeAmount}
forceField={fieldChanged}
onAmountsChanged={handleAmountsChanged(spendTarget)}
- onMaxSet={handleSetMax(index + 1)}
+ onMaxSet={handleSetMax(index)}
onFeesChange={handleFeesChange}
wallet={coreWallet}
tokenId={tokenId}
@@ -796,7 +796,7 @@ const SendComponent = (props: Props) => {
for (const target of spendInfo.spendTargets) {
// Write FIO OBT per spendTarget
- await recordFioObtData(target, currencyCode, broadcastedTx.txid)
+ await recordFioObtData(target, currencyCode, broadcastedTx.txid).catch(error => showError(error))
}
playSendSound().catch(error => console.log(error)) // Fail quietly
@@ -875,11 +875,12 @@ const SendComponent = (props: Props) => {
if (spendInfo.spendTargets[0].publicAddress == null) {
setEdgeTransaction(null)
setSpendingLimitExceeded(false)
- setMaxSpendSetter(0)
+ setMaxSpendSetter(-1)
setProcessingAmountChanged(false)
return
}
- if (maxSpendSetter === 1) {
+ if (maxSpendSetter === 0) {
+ spendInfo.spendTargets[0].nativeAmount = '0' // Some currencies error without a nativeAmount
const maxSpendable = await coreWallet.getMaxSpendable(spendInfo)
spendInfo.spendTargets[0].nativeAmount = maxSpendable
}
diff --git a/src/components/scenes/SpendingLimitsScene.tsx b/src/components/scenes/SpendingLimitsScene.tsx
index c618f2b6e7b..a772a05f90c 100644
--- a/src/components/scenes/SpendingLimitsScene.tsx
+++ b/src/components/scenes/SpendingLimitsScene.tsx
@@ -31,7 +31,7 @@ export const SpendingLimitsScene = (props: Props) => {
const [password, setPassword] = React.useState('')
const [transactionAmount, setTransactionAmount] = React.useState(
- !zeroString(transactionSpendingLimit.amount.toString()) ? transactionSpendingLimit.amount.toString() : ''
+ !zeroString(transactionSpendingLimit.amount?.toString()) ? transactionSpendingLimit.amount.toString() : ''
)
const [transactionIsEnabled, setTransactionIsEnabled] = React.useState(transactionSpendingLimit.isEnabled)
diff --git a/src/components/scenes/TransactionsExportScene.tsx b/src/components/scenes/TransactionsExportScene.tsx
index d8834b9e9bd..e0daeabd8f0 100644
--- a/src/components/scenes/TransactionsExportScene.tsx
+++ b/src/components/scenes/TransactionsExportScene.tsx
@@ -1,3 +1,4 @@
+import { asBoolean, asObject, asString } from 'cleaners'
import { EdgeCurrencyWallet, EdgeTransaction } from 'edge-core-js'
import * as React from 'react'
import { Platform, ScrollView } from 'react-native'
@@ -5,15 +6,17 @@ import RNFS from 'react-native-fs'
import Share from 'react-native-share'
import EntypoIcon from 'react-native-vector-icons/Entypo'
-import { exportTransactionsToCSV, exportTransactionsToQBO, updateTxsFiat } from '../../actions/TransactionExportActions'
+import { exportTransactionsToBitwave, exportTransactionsToCSV, exportTransactionsToQBO, updateTxsFiat } from '../../actions/TransactionExportActions'
import { formatDate } from '../../locales/intl'
import { lstrings } from '../../locales/strings'
-import { getDisplayDenomination } from '../../selectors/DenominationSelectors'
+import { getDisplayDenomination, getExchangeDenomination } from '../../selectors/DenominationSelectors'
import { connect } from '../../types/reactRedux'
import { EdgeSceneProps } from '../../types/routerTypes'
+import { getTokenId } from '../../util/CurrencyInfoHelpers'
import { getWalletName } from '../../util/CurrencyWalletHelpers'
import { SceneWrapper } from '../common/SceneWrapper'
import { DateModal } from '../modals/DateModal'
+import { TextInputModal } from '../modals/TextInputModal'
import { Airship, showError } from '../services/AirshipInstance'
import { ThemeProps, withTheme } from '../services/ThemeContext'
import { SettingsHeaderRow } from '../settings/SettingsHeaderRow'
@@ -33,6 +36,9 @@ interface OwnProps extends EdgeSceneProps<'transactionsExport'> {}
interface StateProps {
multiplier: string
+ exchangeMultiplier: string
+ parentMultiplier: string
+ tokenId: string | undefined
}
interface DispatchProps {
@@ -46,8 +52,23 @@ interface State {
endDate: Date
isExportQbo: boolean
isExportCsv: boolean
+ isExportBitwave: boolean
}
+const EXPORT_TX_INFO_FILE = 'exportTxInfo.json'
+
+const asExportTxInfo = asObject({
+ bitwaveAccountId: asString,
+ isExportQbo: asBoolean,
+ isExportCsv: asBoolean,
+ isExportBitwave: asBoolean
+})
+
+const asExportTxInfoMap = asObject(asExportTxInfo)
+
+type ExportTxInfoMap = ReturnType
+type ExportTxInfo = ReturnType
+
class TransactionsExportSceneComponent extends React.PureComponent {
constructor(props: Props) {
super(props)
@@ -58,7 +79,8 @@ class TransactionsExportSceneComponent extends React.PureComponent
startDate: new Date(new Date().getFullYear() - lastYear, lastMonth.getMonth(), 1, 0, 0, 0),
endDate: new Date(new Date().getFullYear(), new Date().getMonth(), 1, 0, 0, 0),
isExportQbo: false,
- isExportCsv: true
+ isExportCsv: true,
+ isExportBitwave: false
}
}
@@ -79,8 +101,26 @@ class TransactionsExportSceneComponent extends React.PureComponent
})
}
+ async componentDidMount(): Promise {
+ try {
+ const { sourceWallet } = this.props.route.params
+ const { tokenId = sourceWallet.currencyInfo.currencyCode } = this.props
+ const { disklet } = sourceWallet
+ const result = await disklet.getText(EXPORT_TX_INFO_FILE)
+ const exportTxInfoMap = asExportTxInfoMap(JSON.parse(result))
+ const { isExportBitwave, isExportCsv, isExportQbo } = exportTxInfoMap[tokenId]
+ this.setState({
+ isExportBitwave,
+ isExportCsv,
+ isExportQbo
+ })
+ } catch (e) {
+ console.log(`Could not read ${EXPORT_TX_INFO_FILE} ${String(e)}. Failure is ok`)
+ }
+ }
+
render() {
- const { startDate, endDate, isExportCsv, isExportQbo } = this.state
+ const { startDate, endDate, isExportBitwave, isExportCsv, isExportQbo } = this.state
const { theme, route } = this.props
const { sourceWallet, currencyCode } = route.params
const iconSize = theme.rem(1.25)
@@ -88,7 +128,7 @@ class TransactionsExportSceneComponent extends React.PureComponent
const walletName = `${getWalletName(sourceWallet)} (${currencyCode})`
const startDateString = formatDate(startDate)
const endDateString = formatDate(endDate)
- const disabledExport = !isExportQbo && !isExportCsv
+ const disabledExport = !isExportQbo && !isExportCsv && !isExportBitwave
return (
@@ -108,21 +148,23 @@ class TransactionsExportSceneComponent extends React.PureComponent
}
renderAndroidSwitches() {
- const { isExportCsv, isExportQbo } = this.state
+ const { isExportBitwave, isExportCsv, isExportQbo } = this.state
return (
<>
-
-
+
+
+
>
)
}
renderIosSwitches() {
- const { isExportCsv, isExportQbo } = this.state
+ const { isExportBitwave, isExportCsv, isExportQbo } = this.state
return (
<>
+
>
)
}
@@ -139,25 +181,84 @@ class TransactionsExportSceneComponent extends React.PureComponent
this.setState({ endDate: date })
}
- handleAndroidToggle = () => {
- this.setState(state => ({
- isExportCsv: !state.isExportCsv,
- isExportQbo: !state.isExportQbo
- }))
- }
-
handleQboToggle = () => {
- this.setState(state => ({ isExportQbo: !state.isExportQbo }))
+ if (Platform.OS === 'android') {
+ this.setState({ isExportQbo: true, isExportCsv: false, isExportBitwave: false })
+ } else {
+ this.setState(state => ({ isExportQbo: !state.isExportQbo }))
+ }
}
handleCsvToggle = () => {
- this.setState(state => ({ isExportCsv: !state.isExportCsv }))
+ if (Platform.OS === 'android') {
+ this.setState({ isExportCsv: true, isExportBitwave: false, isExportQbo: false })
+ } else {
+ this.setState(state => ({ isExportCsv: !state.isExportCsv }))
+ }
+ }
+
+ handleBitwaveToggle = () => {
+ if (Platform.OS === 'android') {
+ this.setState({ isExportBitwave: true, isExportCsv: false, isExportQbo: false })
+ } else {
+ this.setState(state => ({ isExportBitwave: !state.isExportBitwave }))
+ }
}
handleSubmit = async (): Promise => {
- const { multiplier, route } = this.props
+ const { exchangeMultiplier, multiplier, parentMultiplier, route } = this.props
const { sourceWallet, currencyCode } = route.params
- const { isExportQbo, isExportCsv, startDate, endDate } = this.state
+ const { isExportBitwave, isExportQbo, isExportCsv, startDate, endDate } = this.state
+ const { tokenId = sourceWallet.currencyInfo.currencyCode } = this.props
+
+ let exportTxInfo: ExportTxInfo | undefined
+ let exportTxInfoMap: ExportTxInfoMap | undefined
+ try {
+ const result = await sourceWallet.disklet.getText(EXPORT_TX_INFO_FILE)
+ exportTxInfoMap = asExportTxInfoMap(JSON.parse(result))
+ exportTxInfo = exportTxInfoMap[tokenId]
+ } catch (e) {
+ console.log(`Could not read ${EXPORT_TX_INFO_FILE} ${String(e)}. Failure is ok`)
+ }
+
+ let accountId = ''
+ const fileAccountId = exportTxInfo?.bitwaveAccountId ?? ''
+
+ if (isExportBitwave) {
+ accountId =
+ (await Airship.show(bridge => (
+
+ ))) ?? ''
+ }
+
+ if (
+ exportTxInfo?.bitwaveAccountId !== accountId ||
+ exportTxInfo?.isExportBitwave !== isExportBitwave ||
+ exportTxInfo?.isExportCsv !== isExportCsv ||
+ exportTxInfo?.isExportQbo !== isExportQbo
+ ) {
+ if (exportTxInfoMap == null) {
+ exportTxInfoMap = {}
+ }
+ exportTxInfoMap[tokenId] = {
+ bitwaveAccountId: accountId,
+ isExportBitwave,
+ isExportQbo,
+ isExportCsv
+ }
+ await sourceWallet.disklet.setText(EXPORT_TX_INFO_FILE, JSON.stringify(exportTxInfoMap))
+ }
+
if (startDate.getTime() > endDate.getTime()) {
showError(lstrings.export_transaction_error)
return
@@ -222,6 +323,16 @@ class TransactionsExportSceneComponent extends React.PureComponent
formats.push('QBO')
}
+ if (isExportBitwave) {
+ const bitwaveFile = await exportTransactionsToBitwave(sourceWallet, accountId, txs, currencyCode, exchangeMultiplier, parentMultiplier)
+ files.push({
+ contents: bitwaveFile,
+ mimeType: 'text/comma-separated-values',
+ fileName: fileName + '.bitwave.csv'
+ })
+ formats.push('Bitwave CSV')
+ }
+
const title = 'Share Transactions ' + formats.join(', ')
if (Platform.OS === 'android') {
await this.shareAndroid(title, files[0])
@@ -268,7 +379,10 @@ class TransactionsExportSceneComponent extends React.PureComponent
export const TransactionsExportScene = connect(
(state, { route: { params } }) => ({
- multiplier: getDisplayDenomination(state, params.sourceWallet.currencyInfo.pluginId, params.currencyCode).multiplier
+ multiplier: getDisplayDenomination(state, params.sourceWallet.currencyInfo.pluginId, params.currencyCode).multiplier,
+ exchangeMultiplier: getExchangeDenomination(state, params.sourceWallet.currencyInfo.pluginId, params.currencyCode).multiplier,
+ parentMultiplier: getExchangeDenomination(state, params.sourceWallet.currencyInfo.pluginId, params.sourceWallet.currencyInfo.currencyCode).multiplier,
+ tokenId: getTokenId(state.core.account, params.sourceWallet.currencyInfo.pluginId, params.currencyCode)
}),
dispatch => ({
updateTxsFiatDispatch: async (wallet: EdgeCurrencyWallet, currencyCode: string, txs: EdgeTransaction[]) =>
diff --git a/src/components/themed/ExplorerCard.tsx b/src/components/themed/ExplorerCard.tsx
index 23a60f91de8..064324e2ddf 100644
--- a/src/components/themed/ExplorerCard.tsx
+++ b/src/components/themed/ExplorerCard.tsx
@@ -48,10 +48,12 @@ export const ExplorerCard = (props: Props) => {
return (
-
-
- {lstrings.transaction_details_advance_details_show_explorer}
-
+ {addressExplorer === '' ? null : (
+
+
+ {lstrings.transaction_details_advance_details_show_explorer}
+
+ )}
{lstrings.transaction_list_no_tx_support_yet}
diff --git a/src/components/themed/FlipInput2.tsx b/src/components/themed/FlipInput2.tsx
index ba62b600755..2f34749e8c4 100644
--- a/src/components/themed/FlipInput2.tsx
+++ b/src/components/themed/FlipInput2.tsx
@@ -80,7 +80,6 @@ export const FlipInput2 = React.forwardRef((props: Props, r
if (done === true) runOnJS(setPrimaryField)(otherField)
}
- console.log(`animating to ${otherField}`)
animatedValue.value = withTiming(
otherField,
{
@@ -107,7 +106,7 @@ export const FlipInput2 = React.forwardRef((props: Props, r
const bottomRow = useHandler((fieldNum: FieldNum) => {
const primaryAmount = amounts[fieldNum]
- const amountBlank = eq(primaryAmount, '0')
+ const amountBlank = eq(primaryAmount, '0') ? lstrings.string_amount : ''
const currencyNameStyle = amountBlank ? styles.bottomCurrencyMuted : styles.bottomCurrency
const currencyName = fieldInfos[fieldNum].currencyName
@@ -118,7 +117,10 @@ export const FlipInput2 = React.forwardRef((props: Props, r
style={styles.bottomAmount}
value={primaryAmount}
maxDecimals={fieldInfos[fieldNum].maxEntryDecimals}
- placeholder={amountBlank ? lstrings.string_amount : ''}
+ // HACK: For some reason there's no way to avoid the rightmost
+ // visual cutoff of the 'Amount' string in Android. Pad with an
+ // extra space.
+ placeholder={Platform.OS === 'android' ? amountBlank + ' ' : amountBlank}
placeholderTextColor={theme.deactivatedText}
onChangeText={onNumericInputChange}
autoCorrect={false}
@@ -177,55 +179,60 @@ export const FlipInput2 = React.forwardRef((props: Props, r
)
})
-const getStyles = cacheStyles((theme: Theme) => ({
- // Flip Input
- flipInputContainer: {
- flexDirection: 'row',
- alignItems: 'center'
- },
- flipInput: {
- flex: 1,
- paddingRight: theme.rem(0.5)
- },
- flipInputFront: {
- backfaceVisibility: 'hidden'
- },
- flipContainerBack: {
- position: 'absolute',
- top: 0,
- left: 0,
- right: 0,
- bottom: 0
- },
- flipIcon: {
- marginRight: -theme.rem(0.125)
- },
-
- // Top Amount
- bottomContainer: {
- flexDirection: 'row',
- marginRight: theme.rem(1.5),
- minHeight: theme.rem(2)
- },
- valueContainer: {
- flexDirection: 'row',
- marginRight: theme.rem(0.5),
- marginLeft: Platform.OS === 'ios' ? 0 : -3,
- marginTop: Platform.OS === 'ios' ? 0 : -theme.rem(0.75),
- marginBottom: Platform.OS === 'ios' ? 0 : -theme.rem(1)
- },
- bottomAmount: {
- paddingRight: Platform.OS === 'ios' ? 0 : theme.rem(0.25),
- color: theme.primaryText,
- includeFontPadding: false,
- fontFamily: theme.fontFaceMedium,
- fontSize: theme.rem(1.5)
- },
- bottomCurrency: {
- paddingTop: Platform.OS === 'ios' ? theme.rem(0.125) : theme.rem(1)
- },
- bottomCurrencyMuted: {
- paddingTop: Platform.OS === 'ios' ? theme.rem(0.125) : theme.rem(1),
- color: theme.deactivatedText
+const getStyles = cacheStyles((theme: Theme) => {
+ const isIos = Platform.OS === 'ios'
+ return {
+ // Flip Input
+ flipInputContainer: {
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ flipInput: {
+ flex: 1,
+ paddingRight: theme.rem(0.5)
+ },
+ flipInputFront: {
+ backfaceVisibility: 'hidden'
+ },
+ flipContainerBack: {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0
+ },
+ flipIcon: {
+ marginRight: -theme.rem(0.125)
+ },
+
+ // Top Amount
+ bottomContainer: {
+ flexDirection: 'row',
+ marginRight: theme.rem(1.5),
+ minHeight: theme.rem(2)
+ },
+ valueContainer: {
+ flexDirection: 'row',
+ marginRight: theme.rem(0.5),
+ marginLeft: isIos ? 0 : -6,
+ marginTop: isIos ? 0 : -theme.rem(0.75),
+ marginBottom: isIos ? 0 : -theme.rem(1)
+ },
+ bottomAmount: {
+ paddingRight: isIos ? 0 : theme.rem(0.25),
+ color: theme.primaryText,
+ includeFontPadding: false,
+ fontFamily: theme.fontFaceMedium,
+ fontSize: isIos ? theme.rem(1.5) : theme.rem(1.45)
+ },
+ bottomCurrency: {
+ paddingTop: isIos ? theme.rem(0.125) : theme.rem(1),
+ marginLeft: isIos ? 0 : -theme.rem(0.25)
+ },
+ bottomCurrencyMuted: {
+ paddingTop: isIos ? theme.rem(0.125) : theme.rem(1),
+ color: theme.deactivatedText,
+ marginLeft: isIos ? 0 : -theme.rem(0.25)
+ }
}
-}))
+})
diff --git a/src/components/themed/MenuTabs.tsx b/src/components/themed/MenuTabs.tsx
index fd6ff7dad48..45732e0856d 100644
--- a/src/components/themed/MenuTabs.tsx
+++ b/src/components/themed/MenuTabs.tsx
@@ -1,5 +1,6 @@
import { BottomTabBarProps } from '@react-navigation/bottom-tabs'
import * as React from 'react'
+import { useMemo } from 'react'
import { TouchableOpacity, View } from 'react-native'
import LinearGradient from 'react-native-linear-gradient'
import { useSafeAreaInsets } from 'react-native-safe-area-context'
@@ -36,7 +37,19 @@ export const MenuTabs = (props: BottomTabBarProps) => {
const colors = theme.tabBarBackground
const start = theme.tabBarBackgroundStart
const end = theme.tabBarBackgroundEnd
- let routes = state.routes
+ const routes = useMemo(
+ () =>
+ state.routes.filter(route => {
+ if (config.extraTab == null && route.name === 'extraTab') {
+ return false
+ }
+ if (config.disableSwaps === true && route.name === 'exchangeTab') {
+ return false
+ }
+ return true
+ }),
+ [state.routes]
+ )
const handleOnPress = useHandler((route: string) => {
const currentName = routes[activeTabIndex].name
@@ -56,10 +69,6 @@ export const MenuTabs = (props: BottomTabBarProps) => {
}
})
- if (config.extraTab == null) {
- routes = routes.slice(0, -1)
- }
-
const contentStyle = React.useMemo(() => {
const paddingBottom = insets.bottom === 0 ? theme.rem(0.75) : insets.bottom
return [styles.content, { paddingBottom }]
diff --git a/src/components/themed/ModalParts.tsx b/src/components/themed/ModalParts.tsx
index 7c0bdf267c6..fcf3d7e9d44 100644
--- a/src/components/themed/ModalParts.tsx
+++ b/src/components/themed/ModalParts.tsx
@@ -7,6 +7,8 @@ import { lstrings } from '../../locales/strings'
import { fixSides, mapSides, sidesToPadding } from '../../util/sides'
import { GradientFadeOut } from '../modals/GradientFadeout'
import { Theme, useTheme } from '../services/ThemeContext'
+// TODO:
+// KeyboardAwareScrollView (login) instead of ScrollView (here)
interface ModalTitleProps {
children: React.ReactNode
@@ -17,8 +19,8 @@ interface ModalTitleProps {
interface ModalFooterProps {
onPress: () => void
- fadeOut?: boolean | undefined
}
+
export function ModalTitle(props: ModalTitleProps) {
const { center, children, icon = null, paddingRem } = props
const theme = useTheme()
@@ -43,51 +45,61 @@ export function ModalMessage(props: { children: React.ReactNode; paddingRem?: nu
}
/**
- * Renders a close button and an optional fade-out gradient.
- *
- * If you use the fade-out gradient, your scroll element's
- * `contentContainerStyle` needs `theme.rem(ModalFooter.bottomRem)`
- * worth of bottom padding, so the close button does not cover your content.
+ * Renders a close button
*/
export function ModalFooter(props: ModalFooterProps) {
const theme = useTheme()
const styles = getStyles(theme)
- const { fadeOut } = props
-
- const footerFadeContainer = fadeOut === true ? styles.footerFadeContainer : undefined
- const footerFade = fadeOut === true ? styles.footerFade : undefined
return (
-
-
-
-
-
-
- {fadeOut !== true ? null : }
-
+
+
+
)
}
-ModalFooter.bottomRem = 2.5
+ModalFooter.bottomRem = 3
-export function ModalScrollArea(props: { children: React.ReactNode; onCancel: () => void }) {
- const { children, onCancel } = props
+/**
+ * A consistently styled scroll area for use in modals. Should only be used
+ * within ThemedModal.
+ */
+export function ModalScrollArea(props: { children: React.ReactNode }) {
+ const { children } = props
const theme = useTheme()
const styles = getStyles(theme)
return (
-
+
{children}
-
+
+
+ )
+}
+
+/**
+ * For fading the bottom of the modal if the modal caller has its own special
+ * scroll implementation and does not use the ThemedModal's built-in 'scroll'
+ * prop
+ */
+export const ModalFooterFade = () => {
+ const theme = useTheme()
+ const styles = getStyles(theme)
+ return (
+
+
)
}
const getStyles = cacheStyles((theme: Theme) => ({
- closeIcon: {
+ closeContainer: {
alignItems: 'center',
- padding: theme.rem(1)
+ padding: theme.rem(1),
+ marginBottom: theme.rem(-1)
+ },
+ scrollContainer: {
+ marginBottom: theme.rem(-ModalFooter.bottomRem + 0.5)
},
scrollPadding: {
paddingBottom: theme.rem(ModalFooter.bottomRem)
@@ -120,9 +132,6 @@ const getStyles = cacheStyles((theme: Theme) => ({
textAlign: 'left'
},
footerFadeContainer: {
- marginBottom: theme.rem(-1)
- },
- footerFade: {
position: 'absolute',
bottom: 0,
left: 0,
diff --git a/src/components/themed/ThemedModal.tsx b/src/components/themed/ThemedModal.tsx
index 714d104f610..fb01407e757 100644
--- a/src/components/themed/ThemedModal.tsx
+++ b/src/components/themed/ThemedModal.tsx
@@ -5,20 +5,22 @@ import { BlurView } from 'rn-id-blurview'
import { fixSides } from '../../util/sides'
import { useTheme } from '../services/ThemeContext'
+import { ModalFooter, ModalScrollArea } from './ModalParts'
interface Props {
bridge: AirshipBridge
children?: React.ReactNode
onCancel: () => void
- // Use this to create space at the top for an icon circle:
- iconRem?: number
-
// Control over the content area:
+ closeButton?: boolean
flexDirection?: ViewStyle['flexDirection']
justifyContent?: ViewStyle['justifyContent']
paddingRem?: number[] | number
+ // Scroll area with a fade
+ scroll?: boolean
+
// Gives the box a border:
warning?: boolean
}
@@ -27,12 +29,10 @@ interface Props {
* The Airship modal, but connected to our theming system.
*/
export function ThemedModal(props: Props) {
- const { bridge, children, flexDirection, iconRem = 0, justifyContent, warning = false, onCancel } = props
+ const { bridge, closeButton = true, children, flexDirection, justifyContent, warning = false, scroll = false, onCancel } = props
const paddingRem = fixSides(props.paddingRem, 1)
const theme = useTheme()
- paddingRem[0] += iconRem / 2
-
// TODO: The warning styles are incorrectly hard-coded:
const borderColor = warning ? theme.warningText : theme.modalBorderColor
const borderWidth = warning ? 4 : theme.modalBorderWidth
@@ -46,12 +46,14 @@ export function ThemedModal(props: Props) {
borderWidth={borderWidth}
flexDirection={flexDirection}
justifyContent={justifyContent}
- margin={[theme.rem(iconRem / 2), 0, 0]}
onCancel={onCancel}
padding={paddingRem.map(theme.rem)}
underlay={}
>
- {children}
+ <>
+ {scroll ? {children} : children}
+ {closeButton ? : null}
+ >
)
}
diff --git a/src/components/tiles/SwapDetailsTiles.tsx b/src/components/tiles/SwapDetailsTiles.tsx
index ded06d2b95a..baad9b96f21 100644
--- a/src/components/tiles/SwapDetailsTiles.tsx
+++ b/src/components/tiles/SwapDetailsTiles.tsx
@@ -11,7 +11,7 @@ import { lstrings } from '../../locales/strings'
import { getDisplayDenomination, getExchangeDenomination } from '../../selectors/DenominationSelectors'
import { useSelector } from '../../types/reactRedux'
import { getWalletName } from '../../util/CurrencyWalletHelpers'
-import { convertNativeToDisplay } from '../../util/utils'
+import { convertNativeToDisplay, unixToLocaleDateTime } from '../../util/utils'
import { RawTextModal } from '../modals/RawTextModal'
import { Airship, showError } from '../services/AirshipInstance'
import { cacheStyles, Theme, useTheme } from '../services/ThemeContext'
@@ -99,10 +99,11 @@ export function SwapDetailsTiles(props: Props) {
const createExchangeDataString = (newline: string = '\n') => {
const uniqueIdentifier = spendTargets[0].uniqueIdentifier ?? ''
const exchangeAddresses = spendTargets.map((target, index) => `${target.publicAddress}${index + 1 !== spendTargets.length ? newline : ''}`).toString()
+ const { dateTime } = unixToLocaleDateTime(transaction.date)
- return `${lstrings.transaction_details_exchange_service}: ${plugin.displayName}${newline}${lstrings.transaction_details_exchange_order_id}: ${
- orderId || ''
- }${newline}${lstrings.transaction_details_exchange_source_wallet}: ${walletName}${newline}${
+ return `${lstrings.fio_date_label}: ${dateTime}${newline}${lstrings.transaction_details_exchange_service}: ${plugin.displayName}${newline}${
+ lstrings.transaction_details_exchange_order_id
+ }: ${orderId || ''}${newline}${lstrings.transaction_details_exchange_source_wallet}: ${walletName}${newline}${
lstrings.fragment_send_from_label
}: ${sourceAmount} ${symbolString}${newline}${lstrings.string_to_capitalize}: ${destinationAmount} ${destinationCurrencyCode}${newline}${
lstrings.transaction_details_exchange_destination_wallet
diff --git a/src/constants/WalletAndCurrencyConstants.ts b/src/constants/WalletAndCurrencyConstants.ts
index 399b9d3d354..2b5ae7e808d 100644
--- a/src/constants/WalletAndCurrencyConstants.ts
+++ b/src/constants/WalletAndCurrencyConstants.ts
@@ -91,7 +91,9 @@ export const WALLET_TYPE_ORDER = [
'wallet:hedera',
'wallet:polygon',
'wallet:avalanche',
- 'wallet:binancesmartchain'
+ 'wallet:binancesmartchain',
+ 'wallet:liberland',
+ 'wallet:liberlandtestnet'
]
// Put these in reverse order of preference
@@ -217,6 +219,7 @@ export const SPECIAL_CURRENCY_INFO: {
maxSpendTargets: UTXO_MAX_SPEND_TARGETS,
initWalletName: lstrings.string_first_bitcoin_sv_wallet_name,
chainCode: 'BSV',
+ keysOnlyMode: true,
isImportKeySupported: true,
isPrivateKeySweepable: true,
isPaymentProtocolSupported: true
@@ -358,6 +361,17 @@ export const SPECIAL_CURRENCY_INFO: {
reference: '1'
}
},
+ filecoin: {
+ initWalletName: lstrings.string_first_filecoin_wallet_name,
+ chainCode: 'FIL',
+ allowZeroTx: false,
+ displayBuyCrypto: false,
+ isImportKeySupported: true,
+ isStakingSupported: false,
+ isCustomTokensSupported: false,
+ isPaymentProtocolSupported: false,
+ noMaxSpend: true
+ },
tron: {
initWalletName: lstrings.string_first_tron_wallet_name,
chainCode: 'TRX',
@@ -646,6 +660,36 @@ export const SPECIAL_CURRENCY_INFO: {
},
isImportKeySupported: true
},
+ liberland: {
+ initWalletName: lstrings.string_first_liberland_wallet_name,
+ chainCode: 'LLD',
+ dummyPublicAddress: '16gmDVJdCaij79PwzCisu7GRudJKABFB8fB5RWpjKX8H4Eh8',
+ noChangeMiningFee: true,
+ allowZeroTx: true,
+ minimumPopupModals: {
+ minimumNativeBalance: '1000000000000',
+ modalMessage: lstrings.request_lld_minimum_notification_body,
+ alertMessage: lstrings.request_lld_minimum_notification_alert_body
+ },
+ isCustomTokensSupported: false,
+ isTransactionListUnsupported: true,
+ isImportKeySupported: true
+ },
+ liberlandtestnet: {
+ initWalletName: lstrings.string_first_liberland_wallet_name,
+ chainCode: 'LDN',
+ dummyPublicAddress: '16gmDVJdCaij79PwzCisu7GRudJKABFB8fB5RWpjKX8H4Eh8',
+ noChangeMiningFee: true,
+ allowZeroTx: true,
+ minimumPopupModals: {
+ minimumNativeBalance: '1000000000000',
+ modalMessage: lstrings.request_lld_minimum_notification_body,
+ alertMessage: lstrings.request_lld_minimum_notification_alert_body
+ },
+ isCustomTokensSupported: false,
+ isTransactionListUnsupported: true,
+ isImportKeySupported: true
+ },
zcash: {
initWalletName: lstrings.string_first_zcash_wallet_name,
chainCode: 'ZEC',
diff --git a/src/constants/plugins/buyPluginList.json b/src/constants/plugins/buyPluginList.json
index a1501364820..d16145e27e2 100644
--- a/src/constants/plugins/buyPluginList.json
+++ b/src/constants/plugins/buyPluginList.json
@@ -69,7 +69,6 @@
"CK",
"CR",
"HR",
- "CU",
"CW",
"CY",
"CZ",
@@ -558,7 +557,6 @@
"CK",
"CR",
"HR",
- "CU",
"CW",
"CY",
"CZ",
@@ -805,7 +803,6 @@
"CK",
"CR",
"HR",
- "CU",
"CW",
"CY",
"CZ",
diff --git a/src/locales/en_US.ts b/src/locales/en_US.ts
index 27a14f4cfb7..2f96d15a482 100644
--- a/src/locales/en_US.ts
+++ b/src/locales/en_US.ts
@@ -114,6 +114,12 @@ const strings = {
warning_scam_message_unknown_recipients: 'Do not send money to people or organizations you do not know.',
warning_scam_footer_s: 'If you have any questions or concerns regarding this send, please contact %s',
+ warning_token_code_override_2s:
+ 'The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.',
+ warning_token_contract_override_3s:
+ 'The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.',
+ warning_token_exists_1s: 'The entered token already exists as a built-in token %1$s',
+
// Alert component:
alert_dropdown_alert: 'Alert! ',
alert_dropdown_warning: 'Warning! ',
@@ -175,6 +181,9 @@ const strings = {
request_dot_minimum_notification_body:
'Polkadot (DOT) wallets require a 1 DOT minimum balance. You must deposit at least 1 DOT to this address before this wallet will show a balance or transactions. 1 DOT will be unspendable for the lifetime of this wallet address.',
request_dot_minimum_notification_alert_body: 'This wallet will always require a 1 DOT minimum',
+ request_lld_minimum_notification_body:
+ 'Liberland (LLD) wallets require a 1 LLD minimum balance. You must deposit at least 1 LLD to this address before this wallet will show a balance or transactions. 1 LLD will be unspendable for the lifetime of this wallet address.',
+ request_lld_minimum_notification_alert_body: 'This wallet will always require a 1 LLD minimum',
fragment_send_address: 'Address',
fragment_send_flash: 'Flash',
fragment_send_album: 'Album',
@@ -492,6 +501,7 @@ const strings = {
string_first_ethereum_wallet_name: 'My Ether',
string_first_ethereum_classic_wallet_name: 'My Ethereum Classic',
string_first_ethereum_pow_wallet_name: 'My Ethereum POW',
+ string_first_filecoin_wallet_name: 'My Filecoin',
string_first_bitcoin_wallet_name: 'My Bitcoin',
string_first_bitcoin_testnet_wallet_name: 'My Bitcoin Testnet',
string_first_bitcoincash_wallet_name: 'My Bitcoin Cash',
@@ -529,6 +539,7 @@ const strings = {
string_first_fantom_wallet_name: 'My Fantom',
string_first_hedera_wallet_name: 'My Hedera',
string_first_polkadot_wallet_name: 'My Polkadot',
+ string_first_liberland_wallet_name: 'My Liberland',
string_first_polygon_wallet_name: 'My Polygon',
string_first_pulsechain_wallet_name: 'My PulseChain',
string_first_avalanche_wallet_name: 'My Avalanche',
@@ -1002,6 +1013,10 @@ const strings = {
string_end: 'End',
export_transaction_quickbooks_qbo: 'Quickbooks QBO',
export_transaction_csv: 'CSV',
+ export_transaction_bitwave_csv: 'Bitwave CSV',
+ export_transaction_bitwave_accountid_modal_title: 'Bitwave Account ID',
+ export_transaction_bitwave_accountid_modal_message: 'Please enter the Bitwave account ID for this wallet',
+ export_transaction_bitwave_accountid_modal_input_label: 'Account ID',
string_export: 'Export',
string_status: 'Status',
string_fee: 'Fee',
diff --git a/src/locales/strings/de.json b/src/locales/strings/de.json
index 01481879f2e..514ba10910c 100644
--- a/src/locales/strings/de.json
+++ b/src/locales/strings/de.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Cryptocurrency transactions are irreversible.",
"warning_scam_message_unknown_recipients": "Do not send money to people or organizations you do not know.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "Achtung!",
"alert_dropdown_warning": "Warnung! ",
"azteco_success": "Sie haben eine Azteco-Bitcoin-Karte eingelöst. Das Geld sollte in Kürze eintreffen.",
@@ -891,6 +893,10 @@
"string_end": "Ende",
"export_transaction_quickbooks_qbo": "Quickbooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Exportieren",
"string_status": "Status",
"string_fee": "Gebühr",
diff --git a/src/locales/strings/enUS.json b/src/locales/strings/enUS.json
index 3d02c27dd9c..e55712eddf8 100644
--- a/src/locales/strings/enUS.json
+++ b/src/locales/strings/enUS.json
@@ -72,6 +72,9 @@
"warning_scam_message_irreversibility": "Cryptocurrency transactions are irreversible.",
"warning_scam_message_unknown_recipients": "Do not send money to people or organizations you do not know.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
+ "warning_token_exists_1s": "The entered token already exists as a built-in token %1$s",
"alert_dropdown_alert": "Alert! ",
"alert_dropdown_warning": "Warning! ",
"azteco_success": "You've redeemed an Azteco bitcoin card. Funds should arrive shortly.",
@@ -123,6 +126,8 @@
"request_xlm_minimum_notification_alert_body": "This wallet will always require a 1 XLM minimum",
"request_dot_minimum_notification_body": "Polkadot (DOT) wallets require a 1 DOT minimum balance. You must deposit at least 1 DOT to this address before this wallet will show a balance or transactions. 1 DOT will be unspendable for the lifetime of this wallet address.",
"request_dot_minimum_notification_alert_body": "This wallet will always require a 1 DOT minimum",
+ "request_lld_minimum_notification_body": "Liberland (LLD) wallets require a 1 LLD minimum balance. You must deposit at least 1 LLD to this address before this wallet will show a balance or transactions. 1 LLD will be unspendable for the lifetime of this wallet address.",
+ "request_lld_minimum_notification_alert_body": "This wallet will always require a 1 LLD minimum",
"fragment_send_address": "Address",
"fragment_send_flash": "Flash",
"fragment_send_album": "Album",
@@ -428,6 +433,7 @@
"string_first_ethereum_wallet_name": "My Ether",
"string_first_ethereum_classic_wallet_name": "My Ethereum Classic",
"string_first_ethereum_pow_wallet_name": "My Ethereum POW",
+ "string_first_filecoin_wallet_name": "My Filecoin",
"string_first_bitcoin_wallet_name": "My Bitcoin",
"string_first_bitcoin_testnet_wallet_name": "My Bitcoin Testnet",
"string_first_bitcoincash_wallet_name": "My Bitcoin Cash",
@@ -465,6 +471,7 @@
"string_first_fantom_wallet_name": "My Fantom",
"string_first_hedera_wallet_name": "My Hedera",
"string_first_polkadot_wallet_name": "My Polkadot",
+ "string_first_liberland_wallet_name": "My Liberland",
"string_first_polygon_wallet_name": "My Polygon",
"string_first_pulsechain_wallet_name": "My PulseChain",
"string_first_avalanche_wallet_name": "My Avalanche",
@@ -891,6 +898,10 @@
"string_end": "End",
"export_transaction_quickbooks_qbo": "Quickbooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Export",
"string_status": "Status",
"string_fee": "Fee",
diff --git a/src/locales/strings/es.json b/src/locales/strings/es.json
index 07fcf12c623..da0888af9f5 100644
--- a/src/locales/strings/es.json
+++ b/src/locales/strings/es.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Las transacciones con criptomonedas son irreversibles.",
"warning_scam_message_unknown_recipients": "No envíes dinero a personas u organizaciones que no concoces.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "¡Alerta! ",
"alert_dropdown_warning": "¡Advertencia! ",
"azteco_success": "Has canjeado una tarjeta de bitcoin Azteco. Los fondos deberían llegar pronto.",
@@ -891,6 +893,10 @@
"string_end": "Fin",
"export_transaction_quickbooks_qbo": "QuickBooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Exportar",
"string_status": "Estado",
"string_fee": "Comisión",
diff --git a/src/locales/strings/esMX.json b/src/locales/strings/esMX.json
index 7d22484c5bd..40eb65d9ed4 100644
--- a/src/locales/strings/esMX.json
+++ b/src/locales/strings/esMX.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Las transacciones con criptomonedas son irreversibles.",
"warning_scam_message_unknown_recipients": "No envíes dinero a personas u organizaciones que no concoces.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "¡Alerta! ",
"alert_dropdown_warning": "¡Advertencia! ",
"azteco_success": "Has canjeado una tarjeta de bitcoin Azteco. Los fondos deberían llegar pronto.",
@@ -891,6 +893,10 @@
"string_end": "Fin",
"export_transaction_quickbooks_qbo": "QuickBooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Exportar",
"string_status": "Estado",
"string_fee": "Comisión",
diff --git a/src/locales/strings/fr.json b/src/locales/strings/fr.json
index 21eda895d61..65880167002 100644
--- a/src/locales/strings/fr.json
+++ b/src/locales/strings/fr.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Cryptocurrency transactions are irreversible.",
"warning_scam_message_unknown_recipients": "Do not send money to people or organizations you do not know.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "Alert! ",
"alert_dropdown_warning": "Warning! ",
"azteco_success": "You've redeemed an Azteco bitcoin card. Funds should arrive shortly.",
@@ -891,6 +893,10 @@
"string_end": "End",
"export_transaction_quickbooks_qbo": "Quickbooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Export",
"string_status": "Status",
"string_fee": "Fee",
diff --git a/src/locales/strings/it.json b/src/locales/strings/it.json
index 0c0644c8f69..b9689ec4ba3 100644
--- a/src/locales/strings/it.json
+++ b/src/locales/strings/it.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Le transazioni di criptovalute sono irreversibili.",
"warning_scam_message_unknown_recipients": "Non inviare denaro a persone o organizzazioni che non conosci.",
"warning_scam_footer_s": "Se hai domande o dubbi su questo invio, contatta %s",
+ "warning_token_code_override_2s": "L'indirizzo del contratto inserito differisce dall'indirizzo del contratto del token integrato %1$s. Si prega di procedere con cautela e verificare che il contratto sia legittimo in quanto l'uso di questo token può comportare la perdita di fondi. Se hai domande su questa funzione o sul contratto contatta %2$s.",
+ "warning_token_contract_override_3s": "Il token %1$s inserito esiste come token %2$s integrato con lo stesso indirizzo del contratto. Si prega di procedere con cautela e verificare che il contratto sia legittimo in quanto l'uso di questo token può comportare la perdita di fondi. Se hai domande su questa funzionalità, contatta %3$s.",
"alert_dropdown_alert": "Avviso! ",
"alert_dropdown_warning": "Attenzione! ",
"azteco_success": "Hai riscattato una carta bitcoin Azteco. I fondi dovrebbero arrivare a breve.",
@@ -79,7 +81,7 @@
"azteco_service_unavailable": "Errore: server Azteco non raggiungibile. Riprova più tardi.",
"reqaddr_error_unsupported_chains": "%1$s non supporta le seguenti catene elencate nella richiesta: %2$s",
"reqaddr_error_invalid_redir": "Query 'redir' non valida nella richiesta di indirizzo di pagamento",
- "reqaddr_error_no_currencies_found": "Nessuna valuta trovata nella richiesta di indirizzo di pagamento",
+ "reqaddr_error_no_currencies_found": "Nessuna valuta trovata in Request for Payment Address",
"reqaddr_error_no_wallets_selected": "Nessun portafoglio selezionato per la richiesta di indirizzo di pagamento",
"reqaddr_error_post_redir": "Indirizzo post e redir non trovato nella richiesta di indirizzo di pagamento",
"reqaddr_application_fragment": "Un'applicazione",
@@ -702,8 +704,8 @@
"edge_login_fail_message": "Impossibile connettersi alla rete. Controlla la tua connessione e riprova.",
"edge_login_fetching": "Recupero le informazioni di login di Edge...",
"modal_addressexplorer_message": "Mostra l'indirizzo in Block Explorer",
- "can_be_partial_quote_title": "Partial Quote",
- "can_be_partial_quote_message": "This quote may be partially fulfilled.",
+ "can_be_partial_quote_title": "Quota parziale",
+ "can_be_partial_quote_message": "Questa quota potrebbe essere soddisfatta solo in parte.",
"can_be_partial_quote_with_max_body": "Questo scambio creerà un ordine per scambiare fondi al tasso quotato, ma potrebbe solo soddisfare una parte del tuo ordine.\n\nL'ordine rimarrà aperto per %s minuti dopo i quali i fondi che non sono stati scambiati rimarranno nel tuo portafoglio di origine o saranno restituiti.",
"can_be_partial_quote_body": "Questo scambio creerà un ordine per scambiare fondi al tasso quotato, ma potrebbe solo soddisfare una parte del tuo ordine.\n\nI fondi che non verranno scambiati rimarranno nel tuo portafoglio d'origine o saranno restituiti.",
"fixed_quote": "Quota fissa",
@@ -891,6 +893,10 @@
"string_end": "Fine",
"export_transaction_quickbooks_qbo": "Quickbooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "ID Account Bitwave",
+ "export_transaction_bitwave_accountid_modal_message": "Inserisci l'ID dell'account Bitwave per questo portafoglio",
+ "export_transaction_bitwave_accountid_modal_input_label": "ID account",
"string_export": "Esporta",
"string_status": "Stato",
"string_fee": "Commissione",
@@ -1352,7 +1358,7 @@
"getting_started_welcome_title": "Benvenuti nella\n*libertà* finanziaria",
"app_logo_hint": "App logo",
"check_icon_hint": "Confermato",
- "close_control_panel_hint": "Close control panel",
+ "close_control_panel_hint": "Chiudi pannello di controllo",
"close_hint": "Chiudi",
"create_wallet_hint": "Crea portafoglio %s",
"edit_icon_hint": "Modifica",
diff --git a/src/locales/strings/ja.json b/src/locales/strings/ja.json
index e0b45facb37..a1a71f77fb8 100644
--- a/src/locales/strings/ja.json
+++ b/src/locales/strings/ja.json
@@ -2,14 +2,14 @@
"action_queue_display_unknown_title": "不明なアクション",
"action_queue_display_unknown_message": "Edgeは実行中のアクションの種類を識別できません。",
"aciton_queue_display_close_title": "ローンを閉じる",
- "action_queue_display_close_message": "Edgeは元本を全額支払い、残りの担保を引き出します。",
+ "action_queue_display_close_message": "Edgeは元金を全額支払い、残りの担保を引き出します。",
"action_queue_display_seq_title": "アクションステップ",
"action_queue_display_seq_message": "一連のアクションを行っています。",
"action_queue_display_par_title": "アクショングループ",
"action_queue_display_par_message": "一度に複数のアクションを実行します。",
"action_queue_display_fiat_buy_title": "購入 %s",
"action_queue_display_fiat_buy_message": "%1$s を %3$sから購入する",
- "action_queue_display_fiat_sell_title": "銀行への送金",
+ "action_queue_display_fiat_sell_title": "銀行への入金",
"action_queue_display_fiat_sell_message": "あなたの %1$s は当社のパートナーによって販売され、 %2$sを通じてあなたの銀行口座に入金されます。",
"action_queue_display_loan_borrow_title": "ローンを利用する",
"action_queue_display_loan_borrow_message_1s": "%1$s ローンがリクエストされ、ウォレットに送金中です。",
@@ -38,7 +38,7 @@
"bitcoin_received": "%1$s受け取りました",
"dialog_title": "自動ログオフ時間の設定",
"share_subject": "%sを試してみてください",
- "share_message": "1つのアプリ内で数十種類の暗号通貨を購入、保管、取引することができます。",
+ "share_message": "1つのアプリ内で数十種類の暗号資産を購入、保管、取引することができます。",
"drawer_borrow_dollars": "ドルの借り入れ",
"drawer_exchange_rate_loading": "交換レートを読み込み中です",
"drawer_exchange": "取引する",
@@ -48,12 +48,12 @@
"drawer_fio_requests": "FIOリクエスト",
"network_alert_title": "インターネットに接続されていません。",
"fio_network_alert_text": "FIOの機能にはインターネット接続が必要です。",
- "fio_address_choose_label": "FIO暗号通貨ハンドルを選択してください",
+ "fio_address_choose_label": "FIOクリプトハンドルを選択してください",
"fio_domain_choose_label": "FIOドメインを選択してください",
- "fio_address_choose_domain_label": "暗号通貨ハンドル用のFIOドメインを選択してください",
+ "fio_address_choose_domain_label": "クリプトハンドル用のFIOドメインを選択してください",
"scan_qr_label": "QR コードをスキャン",
"error_paymentprotocol_empty_output_invoice": "支払いリクエストで出力を受信しませんでした",
- "error_paymentprotocol_empty_verification_hex_req": "空のトランザクションHEXが生成されました",
+ "error_paymentprotocol_empty_verification_hex_req": "空のトランザクションhexが生成されました",
"error_paymentprotocol_currency_not_supported": "%s でのペイメント・プロトコルの請求書支払いは現在サポートされていません。別の支払い通貨を選択してください。",
"error_paymentprotocol_invalid_payment_option": "ペイメント・プロトコルの請求書にこの通貨は使用できません。使用可能な通貨: %s",
"error_paymentprotocol_fetch": "ペイメント・プロトコル %s フェッチエラー (%s)%s",
@@ -65,13 +65,15 @@
"warning_low_fee_selected": "低料金が選択されました",
"warning_custom_fee_selected": "カスタム料金が選択されました",
"warning_low_or_custom_fee": "低い手数料を選択すると、トランザクションの承認にかかる時間が増える可能性がある上、まれにトランザクションが失敗することがあります。",
- "warning_alphanumeric": "使用できるのは文字と数字のみです",
+ "warning_alphanumeric": "使用できるのはアルファベットと数字のみです",
"warning_please_wait_title": "しばらくお待ちください",
"warning_scam_title": "詐欺の警告",
"warning_scam_message_financial_advice_s": "%s は財務アドバイスをしません。",
- "warning_scam_message_irreversibility": "暗号通貨のトランザクションは元に戻すことができません。",
+ "warning_scam_message_irreversibility": "暗号資産のトランザクションは元に戻すことができません。",
"warning_scam_message_unknown_recipients": "知らない人や団体にお金を送らないでください。",
"warning_scam_footer_s": "この送信に関して質問や懸念事項がある場合は、 %s までお問い合わせください",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "警告! ",
"alert_dropdown_warning": "注意! ",
"azteco_success": "Aztecoビットコインカードを使用しました。資金はまもなく届きます。",
@@ -79,7 +81,7 @@
"azteco_service_unavailable": "Aztecoサーバーへの接続中にエラーが発生しました。しばらくしてからもう一度お試しください。",
"reqaddr_error_unsupported_chains": "%1$s はリクエストに記載されている次のチェーンをサポートしていません: %2$s",
"reqaddr_error_invalid_redir": "支払いアドレスをリクエストする'redir'クエリが無効です",
- "reqaddr_error_no_currencies_found": "支払い先のアドレスのリクエストに、通貨が見つかりません",
+ "reqaddr_error_no_currencies_found": "支払い先のアドレスのリクエストに、通貨が見つかりません。",
"reqaddr_error_no_wallets_selected": "支払い先アドレスのリクエストのために選択されたウォレットがありません。",
"reqaddr_error_post_redir": "支払先アドレスのリクエストでポストとRedirアドレスが見つかりません",
"reqaddr_application_fragment": "アプリケーション",
@@ -117,7 +119,7 @@
"fragment_request_address_uri_copied": "リクエストアドレスのURIがクリップボードにコピーされました",
"fragment_copied": "クリップボードに正常にコピーされました",
"request_minimum_notification_title": "最小残高が必要です。",
- "request_xrp_minimum_notification_body": "リップル(XRP) ウォレットには最小残高 10XRP が必要です。このウォレットに残高やトランザクションが表示されるには、あなたはこのアドレスに少なくとも 10XRP をデポジットしている必要があります。その 10XRP は今後このウォレットアドレスから取り出すことはできません。",
+ "request_xrp_minimum_notification_body": "リップル(XRP) ウォレットには最小残高10XRP が必要です。このウォレットに残高やトランザクションが表示されるには、あなたはこのアドレスに少なくとも10XRPを送っておく必要があります。その10XRPは今後このウォレットアドレスから取り出すことはできません。",
"request_xrp_minimum_notification_alert_body": "このウォレットは常に最小残高10XRPが必要です",
"request_xlm_minimum_notification_body": "ステラ(XLM) ウォレットでは最小残高 1 XLMが必要です。このウォレットに残高やトランザクションが表示されるには、あなたはこのアドレスに少なくとも 1 XLM をデポジットしている必要があります。その 1 XLM は一生このウォレットアドレスから取り出すことはできません。",
"request_xlm_minimum_notification_alert_body": "このウォレットは常に最小残高1XLMが必要です",
@@ -166,7 +168,7 @@
"fragment_wallets_resync_wallet_first_confirm_message_mobile": "本当に再同期しますか?\n",
"fragment_wallets_split_wallet_bch_to_bsv": "BCHのプライベートキーにより、BCHウォレットをスプリットしBSVウォレットを作成します。これには間違ったチェーンに資金が送られてしまうのを防ぐBCHトランザクションが必要です。わずがなBCHのネットワーク手数料をが発生します。このBCHトランザクションが承認されるのを確認してから、その後のBCHトランザクションを行うようにしてください。ウォレットをスプリットしてもよろしいですか? \n",
"fragment_wallets_split_wallet_first_confirm_message_mobile": "スプリットしてもよろしいですか? \n",
- "fragment_wallets_get_seed_title": "マスタープライベートキーを表示",
+ "fragment_wallets_get_seed_title": "マスター秘密鍵を表示",
"fragment_wallets_get_seed_warning_message": "マスター秘密鍵を共有すると、不正なトークンや資金の損失の危険にさらされる可能性があります。\n\n誰ともキーを共有しないでください。\n\nパスワードを入力することで、リスクを理解していることを確認したことになります。",
"fragment_wallets_get_raw_keys_title": "未加工キーを表示",
"fragment_wallets_get_raw_keys_warning_message": "未加工キーを共有すると、不正なトークンや資金の損失の危険にさらされる可能性があります。\n\n誰ともキーを共有しないでください。\n\nパスワードを入力することで、リスクを理解していることを確認したことになります。",
@@ -265,7 +267,7 @@
"help_knowledge_base_text": "よくある質問とFAQ",
"help_support": "サポートチケットを送信",
"help_support_text": "トラブルシューティングと技術サポート",
- "help_call": "サポートを呼ぶ",
+ "help_call": "サポートに電話する",
"help_call_text": "電話で連絡する",
"help_visit_site": "%1$s サイトを訪問",
"help_site_more_info_text": "詳しい情報はこちらから: %1$s",
@@ -304,7 +306,7 @@
"send_scan_edge_login_success_message": "続行するには、Edge Loginをリクエストしたブラウザまたはアプリケーションに戻ってください。",
"send_confirmation_fee_modal_alert_title": "高額警告",
"send_confirmation_fee_modal_alert_message_fragment": "ネットワークは現在混雑しています。取引手数料は (%s) より高価で、確認には通常よりも時間がかかる場合があります。",
- "send_confirmation_fee_modal_alert_message_fragment_eth": "手数料が低すぎると、取引が失敗し、手数料に使用した分がなくなる可能性があります。",
+ "send_confirmation_fee_modal_alert_message_fragment_eth": "手数料が低すぎると、取引が失敗し、手数料に使用した分を失う可能性があります。",
"transaction_failure": "トランザクションが失敗しました",
"transaction_failure_message": "%s",
"transaction_success": "トランザクションが成功しました",
@@ -334,12 +336,12 @@
"swap_preferred_cex": "Centralized(中央集権型) を優先",
"swap_options_header_decentralized": "分散型\n個人情報は必要ありません",
"swap_options_header_centralized": "中央集権型\n個人情報が必要な場合があります",
- "swap_preferred_instructions": "複数の取引所が注文を発注できる場合は、以下を設定します:",
+ "swap_preferred_instructions": "複数の取引所が注文を発注できる場合は、以下を優先します:",
"swap_preferred_promo_instructions": "複数の取引所が注文を成立させることができる場合、現在のプロモーションは常に下記を優先します:",
"settings_button_clear_logs": "ログを消去",
"settings_button_send_logs": "Edgeにログを送信",
"settings_button_export_logs": "ログをエクスポート",
- "settings_button_setup_two_factor": "二段階承認を設定",
+ "settings_button_setup_two_factor": "二段階認証を設定",
"settings_button_unlock_settings": "アカウント設定をロック解除するためにタップしてください",
"settings_button_use_touchID": "タッチIDを使う",
"settings_button_use_faceID": "FacelDを使用",
@@ -383,8 +385,8 @@
"settings_promotion_account_normal": "このアカウントは正常に作成されました。",
"settings_promotion_account_installer": "このアカウントは %s経由で作成されました。",
"settings_notifications": "通知",
- "settings_currency_notifications_percent_change_hour": "%1$s%%が1時間以内に変更されます",
- "settings_currency_notifications_percent_change_hours": "%1$s%%が %2$s 時間以内に変更されます",
+ "settings_currency_notifications_percent_change_hour": "1時間以内に%1$s%%の変化",
+ "settings_currency_notifications_percent_change_hours": "%2$s 時間以内に%1$s%%の変化",
"skip": "スキップ",
"staking_change_add_header": "%s をステークする",
"staking_change_add_amount_title": "ステークする量",
@@ -408,9 +410,9 @@
"staking_estimated_return": "推定リターン: %1$s APY",
"staking_estimated_return_up_to": "推定リターン: 最大 %1$s APY",
"staking_no_fio_address_error": "FIOアドレスがないとステークできません",
- "staking_no_bundled_txs_error": "FIOアドレス %1$sにバンドルされたトランザクションが不足しています",
+ "staking_no_bundled_txs_error": "FIOアドレス %1$sのバンドルトランザクションが不足しています",
"string_i_agree": "同意します",
- "string_expires": "期限切れ",
+ "string_expires": "期限",
"string_decline": "拒否する",
"string_cancel_cap": "キャンセル",
"string_cancel": "キャンセル",
@@ -451,19 +453,19 @@
"string_first_ravencoin_wallet_name": "My Ravencoin",
"string_first_zcoin_wallet_name": "My Firo",
"string_first_stellar_wallet_name": "私のStellar",
- "string_first_tezos_wallet_name": "My Telos",
+ "string_first_tezos_wallet_name": "My Tezos",
"string_first_rsk_wallet_name": "My Rootstock",
"string_first_bnb_wallet_name": "My BNB",
"string_first_binance_smart_chain_wallet_name": "My Binance Smart Chain",
"string_first_eboost_wallet_name": "My eBoost",
- "string_first_celo_wallet_name": "My Telos",
+ "string_first_celo_wallet_name": "My Celo",
"string_first_solana_wallet_name": "My Solana",
"string_first_piratechain_wallet_name": "My Pirate",
"string_first_zcash_wallet_name": "My Zcash",
"string_first_tron_wallet_name": "My Tron",
"string_first_doge_wallet_name": "My Doge",
"string_first_fantom_wallet_name": "My Fantom",
- "string_first_hedera_wallet_name": "My Fantom",
+ "string_first_hedera_wallet_name": "My Hedera",
"string_first_polkadot_wallet_name": "My Polkadot",
"string_first_polygon_wallet_name": "My Polygon",
"string_first_pulsechain_wallet_name": "My PulseChain",
@@ -510,25 +512,25 @@
"title_fio_sent_request_details": "送信済みリクエストの詳細",
"title_fio_address_settings": "アドレス設定",
"title_fio_domain_settings": "ドメイン設定",
- "title_fio_add_bundled_txs": "バンドルされたトランザクションをさらに購入",
+ "title_fio_add_bundled_txs": "バンドルトランザクションを更に購入",
"title_fio_renew_domain": "FIOドメインの更新",
"title_fio_renew": "更新",
"title_fio_make_public_domain": "ドメインを公開する",
"title_fio_make_private_domain": "ドメインを非公開にする",
- "title_fio_transfer_domain": "F IOドメインを移転する",
+ "title_fio_transfer_domain": "F IOドメインを転送する",
"title_fio_transfer_address": "FIOアドレスを転送する",
"title_fio_address": "FIOクリプトハンドル",
"title_fio_names": "FIO 名",
"title_fio_domains": "FIOドメイン",
- "title_fio_address_confirmation": "FIO Crypto Handleを登録",
+ "title_fio_address_confirmation": "FIOクリプトハンドルを登録",
"title_fio_requested": "リクエスト済み",
"title_fio_connect_to_wallet": "ウォレットに接続する",
"title_fio_disconnect_wallets": "ウォレットを切断",
"title_edit_token": "トークンを編集",
"title_add_token": "トークンを追加",
"title_password_recovery": "パスワード復元",
- "title_plugin_buy": "暗号通貨を購入",
- "title_plugin_sell": "暗号通貨を売却",
+ "title_plugin_buy": "暗号資産を買う",
+ "title_plugin_sell": "暗号資産を売却",
"title_otp": "二段階認証",
"title_register_fio_address": "FIOアドレスを登録",
"title_register_fio_domain": "FIOドメインを登録",
@@ -543,7 +545,7 @@
"no_exchanges_available": "取引所を有効化していません",
"check_exchange_settings": "エクスチェンジ設定で取引所を有効化してください。",
"amount_above_limit": "%1$s %2$sの最大限度を超えています。この最大限度は、市場の状況に基づいて変更される場合があります。",
- "amount_below_limit": "%1$s %2$sの最小限度を超えています。この最小限度は、市場の状況に基づいて変更される場合があります。",
+ "amount_below_limit": "%1$s %2$sの最小限度を下回っています。この最小限度は、市場の状況に基づいて変更される場合があります。",
"transaction_details_category_title": "カテゴリー",
"transaction_details_payee": "受取人",
"transaction_details_payer": "支払人",
@@ -552,7 +554,7 @@
"transaction_details_person_name": "%s 名前",
"transaction_details_person_input": "%sを選択",
"transaction_details_crypto_amount": "%s 金額",
- "transaction_details_amount_in_fiat": "%s の金額",
+ "transaction_details_amount_in_fiat": "%s での金額",
"transaction_details_amount_current_price": "現在の価格での金額",
"transaction_details_view_advanced_data": "高度な取引詳細を表示",
"transaction_details_tx_id_modal_title": "トランザクションID",
@@ -581,17 +583,17 @@
"transaction_details_accelerate_transaction_slider_disabled": "トランザクションを加速できません",
"transaction_details_accelerate_transaction_fee_too_low": "トランザクション手数料が低すぎます。手数料が更新されました。もう一度やり直してください。",
"transaction_details_accelerate_transaction_sent": "トランザクションが加速されました。",
- "transaction_details_exchange_details": "エクスチェンジ詳細",
- "transaction_details_exchange_service": "エクスチェンジサービス",
+ "transaction_details_exchange_details": "交換詳細",
+ "transaction_details_exchange_service": "交換サービス",
"transaction_details_exchange_order_id": "注文ID",
"transaction_details_exchange_source_wallet": "ソースウォレット",
"transaction_details_exchange_destination_wallet": "宛先ウォレット",
- "transaction_details_exchange_exchange_address": "エクスチェンジアドレス",
- "transaction_details_exchange_exchange_unique_id": "エクスチェンジユニークID",
+ "transaction_details_exchange_exchange_address": "交換アドレス",
+ "transaction_details_exchange_exchange_unique_id": "交換ユニークID",
"transaction_details_exchange_payout_address": "支払い先アドレス",
"transaction_details_exchange_refund_address": "返金アドレス",
- "transaction_details_exchange_status_page": "エクスチェンジステータスページ",
- "transaction_details_exchange_support": "エクスチェンジサポート",
+ "transaction_details_exchange_status_page": "交換ステータスページ",
+ "transaction_details_exchange_support": "交換サポート",
"transaction_details_exchange_support_request": "%s サポートリクエスト",
"transaction_details_fee_warning": "高いネットワーク手数料",
"my_receive_addresses_title": "受信アドレス",
@@ -613,12 +615,12 @@
"otp_copied_msg": "2FAコードをクリップボードにコピーしました",
"otp_modal_headline": "2段階認証を無効にしてよろしいですか?",
"otp_modal_body": "他のデバイスの不正アクセスからあなたのデバイスを守るために、2段階認証を利用することをおすすめします。",
- "title_otp_keep_modal": "2段階認証",
- "otp_modal_reset_description": "他のデバイスがあなたのアカウントにログインを試み、2段階認証のリセットがリクエストされました。\n\nもしそのリクエストに覚えがなければ、「2段階認証を保つ」をクリックしてください。\nそれから「設定」画面からパスワードとPINの再設定を行ってください。\n\nもしあなたがリセットをリクエストしたのであれば、\n「2段階認証を無効にする」をクリックしてください。",
- "otp_keep": "2段階認証を保つ",
+ "title_otp_keep_modal": "二段階認証(2FA)",
+ "otp_modal_reset_description": "他のデバイスがあなたのアカウントにログインを試み、二段階認証のリセットがリクエストされました。\n\nもしそのリクエストに覚えがなければ、「二段階認証を保つ」をクリックしてください。\nそれから「設定」画面からパスワードとPINの再設定を行ってください。\n\nもしあなたがリセットをリクエストしたのであれば、\n「二段階認証を無効にする」をクリックしてください。",
+ "otp_keep": "二段階認証を使用する",
"word_to_in_convert_from_to_string": "から",
"legacy_address_modal_title": "旧式のアドレスが検出されました",
- "legacy_address_modal_warning": "他の通貨アドレスと区別できないため、意図した通貨ではない旧式のアドレスをスキャンしました。\n\nこのアドレスに送信すると、資金が失われる可能性があります。\n\n続行しますか?",
+ "legacy_address_modal_warning": "Legacy形式のアドレスをスキャンしました。これは他の通貨アドレスと区別できないため、意図した通貨のアドレスではない可能性があります。\n\nこのアドレスに送信すると、資金が失われる可能性があります。\n\n続行しますか?",
"legacy_address_modal_continue": "続ける",
"password_reminder_remember_your_password": "パスワードを覚えていますか?",
"password_reminder_you_will_need_your_password": "デバイスの紛失・盗難・アプリがアンインストールされた場合、あなたのパスワードが必要になります。",
@@ -628,7 +630,7 @@
"password_reminder_great_job": "素晴らしい!パスワードを覚えていましたね。",
"password_reminder_invalid": "パスワードが正しくありません",
"password_recovery_reminder_modal_title": "パスワード復元セットアップ",
- "password_recovery_reminder_modal_message": "かなりの仮想通貨がたまっています。パスワードの復元セットアップをしませんか?",
+ "password_recovery_reminder_modal_message": "かなりの暗号資産がたまっています。パスワードの復元セットアップをしませんか?",
"password_recovery_reminder_modal_set_up": "いますぐセットアップ",
"password_check_check_later": "あとで",
"password_check_incorrect_password_title": "パスワードが正しくありません",
@@ -641,7 +643,7 @@
"buy_crypto_modal_exchange": "取引所",
"exchange_crypto_modal_message": "あなたの%sウォレットは空です。 別の暗号資産を%sに交換しますか?",
"private_key_modal_sweep_from_private_address": "プライベートキーから資産をスウィープする",
- "private_key_modal_sweep_from_private_key_message": "このプロセスには、元のウォレットから %1$sまでのオンチェーンのトランザクションが必要です。マイニング手数料が適用され、ネットワークの状態に依存します。",
+ "private_key_modal_sweep_from_private_key_message": "このプロセスには、元のウォレットから %1$sへのオンチェーンのトランザクションが必要です。マイニング手数料が適用され、ネットワークの状態に依存します。",
"private_key_modal_import": "インポート",
"private_key_modal_cancel": "キャンセル",
"restore_wallets_modal_title": "ウォレットを復元する",
@@ -689,7 +691,7 @@
"swap_terms_kyc_link": "AML/KYC",
"swap_terms_privacy_link": "プライバシーポリシー",
"swap_terms_terms_link": "利用規約",
- "swap_terms_statement": "このエクスチェンジでは、取引を完了するためにあなたの身元を確認する必要があるかもしれません。以下の条件を確認し、「同意」をタップして続行するか、「拒否」をタップしてこのエクスチェンジからの見積もりの受信を停止してください。",
+ "swap_terms_statement": "この取引所では、取引を完了するためにあなたの身元を確認する必要があるかもしれません。以下の条件を確認し、「同意」をタップして続行するか、「拒否」をタップしてこのエクスチェンジからの見積もりの受信を停止してください。",
"alert_deep_link_no_wallet": "%1$sをサポートするウォレットはありません。 Wallet List画面で+をタップすると、%2$s用のWalletを作成できます。",
"alert_deep_link_no_wallet_for_uri": "このリンクをサポートするウォレットは存在しません。",
"load_plugin": "プラグインを読み込み中",
@@ -727,19 +729,19 @@
"wallet_list_modal_creating_wallet": "ウォレットを作成しています。しばらくお待ちください。",
"wallet_list_modal_enabling_token": "トークンを有効にしています。お待ちください。",
"wallet_list_modal_confirm_s_bank_withdrawal": "銀行口座に直接入金するために資金を借りるには、 %1$s 取引パートナーと連携した銀行口座が必要です。 「続ける」をタップして銀行口座へのリンクを続行します(米国ユーザーのみ)",
- "fio_address_first_screen_title": "FIO Crypto Handleで簡単に送受信できます!",
+ "fio_address_first_screen_title": "FIOクリプトハンドルで簡単に送受信できます!",
"fio_address_features": "• すべてのトークンとコインで動作\n• ウォレットから保護\n• 完全に分散型",
"fio_address_first_screen_end": "ウェブサイト名のように、FIO Crypto Handleは公開鍵を見たり送信したりすることなく、トークン/コインを送信するために使用できます。",
- "fio_domain_reg_text": "カスタムドメインにCrypto Handleを登録するにはFIOを使用する必要があります。",
- "fio_domain_reg_descr": "FIO Crypto Handleは、ユーザー名とドメインで構成されています。 カスタムドメインを購入した場合、あなたのみそのドメインにFIO Crypto Handleを登録することができます。 FIO Crypto登録は、ドメインを所有しているのと同じウォレットからFIOトークンで支払われる必要があります。",
- "fio_address_reg_free": "FIO Crypto Handleを無料で登録",
+ "fio_domain_reg_text": "カスタムドメインにクリプトハンドルを登録するにはFIOを使用する必要があります。",
+ "fio_domain_reg_descr": "FIOクリプトハンドルは、ユーザー名とドメインで構成されています。 カスタムドメインを購入した場合、あなたのみそのドメインにFIOクリプトハンドルを登録することができます。 FIO Crypto登録は、ドメインを所有しているのと同じウォレットからFIOトークンで支払われる必要があります。",
+ "fio_address_reg_free": "FIOクリプトハンドルを無料で登録",
"fio_domain_label": "FIOドメイン",
"fio_domain_free": "無料",
- "fio_address_payment_required_text": "この支払いはFIOプロトコルによって必要とされ、 %1$sの要件ではありません。 各FIOのCrypto Handleには、マイニング料金が免除される支払いリクエストなど、いくつかの無料のアクションが含まれています。 以下から支払うウォレットを選択:",
+ "fio_address_payment_required_text": "この支払いはFIOプロトコルによって必要とされ、 %1$sの要件ではありません。 各FIOのクリプトハンドルには、マイニング料金が免除される支払いリクエストなど、いくつかの無料のアクションが含まれています。 以下から支払うウォレットを選択:",
"fio_domain_wallet_selection_text": "FIOドメインには年会費が必要です。この支払いはFIOプロトコルによって要求されるものであり、%1$sの要求ではありません。現在の年間費用は%2$s FIOに相当しますが、将来変動する可能性があります。支払い元のウォレットを選択してください:",
"fio_address_list": "FIOアドレスリスト",
- "fio_address_register_form_field_label": "FIO Crypto Handle",
- "fio_address_register_placeholder": "あなたのCrypto Handle名がここに入ります",
+ "fio_address_register_form_field_label": "FIOクリプトハンドル",
+ "fio_address_register_placeholder": "あなたのクリプトハンドル名がここに入ります",
"fio_address_register_screen_not_available": "利用不可",
"fio_address_register_domain_is_not_public": "ドメインは公開されていません",
"fio_address_register_screen_cant_check": "インターネット接続がありません。確認できません。",
@@ -759,13 +761,13 @@
"fio_address_details_screen_alert_message": "これであなたのFIOアドレスが登録され、使用できるようになりました。",
"fio_address_details_screen_alert_button": "詳細の表示",
"fio_address_details_screen_registered": "登録済み",
- "fio_address_details_screen_expires": "期限切れ",
- "fio_address_details_screen_bundled_txs": "バンドルされたトランザクションの残り",
- "fio_address_details_screen_manage_account_settings": "Crypto Handle設定",
- "fio_address_details_bundled_txs_out_soon": "あなたのFIOアドレスにバンドルされた、ほぼすべてのトランザクションが使われました。さらにバンドルされたトランザクションを購入しますか?",
- "fio_address_details_no_bundled_txs": "あなたのFIOアドレスにバンドルされたトランザクションはありません。さらにバンドルされたトランザクションを購入しますか?",
- "fio_address_details_connect_to_wallets": "FIO Crypto Handleに接続するウォレットを選択してください",
- "fio_address_list_screen_button_register": "新しいFIO Crypto Handleを登録する",
+ "fio_address_details_screen_expires": "期限",
+ "fio_address_details_screen_bundled_txs": "バンドルトランザクションの残り",
+ "fio_address_details_screen_manage_account_settings": "クリプトハンドル設定",
+ "fio_address_details_bundled_txs_out_soon": "あなたのFIOアドレスのほぼすべてのバンドルトランザクションを使用しました。バンドルトランザクションを追加購入しますか?",
+ "fio_address_details_no_bundled_txs": "あなたのFIOアドレスにバンドルトランザクションが残っていません。バンドルトランザクションを追加購入しますか?",
+ "fio_address_details_connect_to_wallets": "FIOクリプトハンドルに接続するウォレットを選択してください",
+ "fio_address_list_screen_button_register": "新しいFIOクリプトハンドルを登録する",
"fio_address_list_domain_register": "カスタムFIOドメインを登録",
"fio_address_list_register_domain": "新しいドメインを登録",
"fio_get_fee_err_msg": "FIO手数料を受け取る際に問題が発生しました。後でもう一度お試しください。",
@@ -774,7 +776,7 @@
"fio_get_reg_info_already_sent_err_msg": "登録リクエストは既に送信されています",
"fio_register_address_err_msg": "アドレスを登録する際に問題が発生しました。後でもう一度お試しください。",
"fio_error_invalid_address": "無効なFIOアドレス",
- "fio_add_bundled_txs_err_msg": "バンドルされたトランザクションをさらに購入する際に問題が発生しました。後ほど再試行してください。",
+ "fio_add_bundled_txs_err_msg": "バンドルトランザクションを追加購入する際に問題が発生しました。後でもう一度お試しください。",
"fio_renew_err_msg": "%sの更新の際に問題が発生しました。後でもう一度お試しください。",
"fio_action_fee_label": "オペレーション手数料",
"fio_domain_is_public_label": "FIOドメインは現在公開されています",
@@ -782,9 +784,9 @@
"fio_domain_details_expired_soon": "FIOドメインの有効期限が近づいています。\n更新しますか?",
"fio_domain_set_visibility_err": "ドメインの可視性を変更する際に問題が発生しました。後でもう一度やり直してください。",
"transfer_fio_address_exception": "既存のFIOリクエストやFIOメモを含むFIOアドレスは現在転送できません。",
- "fio_no_bundled_err_msg": "FIOアドレスのバンドルトランザクションを使い果たしました。",
+ "fio_no_bundled_err_msg": "あなたのFIOアドレスは、バンドルトランザクションが不足しています。",
"fio_no_bundled_non_fio_err_msg": "続行すると、このトランザクションのメタデータは記録されません。",
- "fio_no_bundled_add_err_msg": "続行するには、バンドルされたトランザクションをFIOアドレスに追加してください。",
+ "fio_no_bundled_add_err_msg": "続行するには、バンドルトランザクションをFIOアドレスに追加してください。",
"fio_fee_exceeds_supplied_maximum_record_obt_data": "OBTデータの記録に失敗しました。",
"fio_no_requests_label": "リクエストなし",
"fio_reject_request_title": "FIOリクエスト",
@@ -801,7 +803,7 @@
"fio_request_by_fio_address_error_invalid_amount": "FIOにリクエストする前に金額を入力してください",
"fio_request_error_header": "リクエストが失敗しました",
"fio_request_ok_body": "リクエスト送信に成功しました。",
- "fio_request_add_bundled_txs_ok_text": "バンドルされたトランザクションが正常に購入されました",
+ "fio_request_add_bundled_txs_ok_text": "バンドルトランザクションが正常に購入されました",
"fio_request_renew_domain_ok_text": "あなたのドメインは正常に更新されました",
"fio_request_sent_details_to": "リクエストがこちらに送信されました",
"fio_request_sent_details_from": "リクエストがこちらから送信されました",
@@ -853,7 +855,7 @@
"not_now_button": "後で",
"scan_address_modal_title": "受信者のFIO、ENS、または公開アドレスを入力してください",
"enter_any_title": "次のいずれかを入力します:",
- "enter_any_body": "1. 送金先の公開アドレス\n2. スイープ用のプライベートキー\n3. dAppに接続するためのWallet Connect URI\n4. 別のデバイスにログインするためのEdge Login URI\n\nEdgeはURIの形式を自動で検出するため、適切なウォレットを選択することができます。",
+ "enter_any_body": "1. 送金先の公開アドレス\n2. スイープ用の秘密鍵\n3. dAppに接続するためのWallet Connect URI\n4. 別のデバイスにログインするためのEdge Login URI\n\nEdgeはURIの形式を自動で検出するため、適切なウォレットを選択することができます。",
"enter_any_input_hint": "上記のいずれかを入力してください",
"address_modal_default_header": "アドレスを入力",
"open_url_err": "このURLを開くことができません - %s",
@@ -874,14 +876,14 @@
"price_alert": "価格アラート",
"notification_hourly_price_change_up": "過去1時間で%1$s %2$s (%3$s)は%4$s上昇し、%5$sになりました。",
"notification_hourly_price_change_down": "過去1時間で%1$s %2$s (%3$s)は%4$s下落し、%5$sになりました。",
- "notification_daily_price_change_up": "過去24時間で%1$s %2$s (%3$s)は%5$sまで%4$s上昇しています。",
+ "notification_daily_price_change_up": "過去24時間で%1$s %2$s (%3$s) は%4$s上昇し、%5$sになりました。",
"notification_daily_price_change_down": "過去24時間で%1$s %2$s (%3$s)は%4$s下落し、%5$sになりました。",
"price_change_notification": "価格の通知",
"price_change_buy_sell_trade": "%1$sを購入、販売、または交換しますか?",
"update_notice_deprecate_electrum_servers_title": "ブロックブックのアップグレード",
"update_notice_deprecate_electrum_servers_message": "%sはもうElectrumサーバーを使用しません。引き続きCUSTOM NODESを使用したい場合は、Blockbook互換のアドレスを入力してください。\n\n注意: カスタムノードが有効な場合、これらのウォレットは修正されるまで同期されません。",
"error_boundary_title": "エラーが発生しました。",
- "error_boundary_message_s": "申し訳ありません。問題が発生しました。アプリを強制終了し、再度開いてEdgeをご利用ください。\n\n問題が続く場合は、%1$s までお問い合わせいただき、問題の修正に最善を尽くします。\n\n注意: Edgeに連絡する前にアプリをアンインストールしないでください。",
+ "error_boundary_message_s": "申し訳ありません。問題が発生しました。アプリを強制終了し、再度開いてEdgeをご利用ください。\n\n問題が続く場合は、%1$s までお問い合わせください。問題の修正に最善を尽くします。\n\n注意: Edgeに連絡する前にアプリをアンインストールしないでください。",
"error_unexpected_title": "予期しないエラー",
"export_transaction_date_range": "日付範囲",
"export_transaction_export_type": "エクスポートの種類",
@@ -891,6 +893,10 @@
"string_end": "終了",
"export_transaction_quickbooks_qbo": "クイックブック",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "エクスポート",
"string_status": "ステータス",
"string_fee": "手数料",
@@ -914,7 +920,7 @@
"contacts_permission_modal_title": "連絡先へのアクセス",
"contacts_permission_modal_body_1": "%1$sは、アドレス帳の人々とのトランザクションに簡単にタグを付けるために、あなたの連絡先へのアクセスを求めています。",
"contacts_permission_modal_body_2": "%1$sやその他の団体と連絡先情報は共有されません。すべての情報は暗号化され、あなただけが見ることができます。",
- "contacts_permission_modal_body_3": "アクセスを拒否しても、%1$sは暗号通貨の購入、販売、取引、送金を行う機能は引き続き利用できます。",
+ "contacts_permission_modal_body_3": "アクセスを拒否しても、%1$sは暗号資産の購入、販売、取引、送金を行う機能は引き続き利用できます。",
"contacts_permission_modal_enable_settings": "%1$sを使用するには、%2$sの許可を有効にしてください。",
"contacts_permission_modal_enable_settings_mandatory": "%1$sを使用するためには、%2$sの権限を有効にしてください。",
"migrate_wallets_select_crypto_title": "移行する資産を選択",
@@ -951,7 +957,7 @@
"loan_borrow_details_title": "借入詳細",
"loan_borrow_more": "もっと借りる",
"loan_breakdown_title": "ローンの内訳",
- "loan_close_swap_warning": "あなたの貸付け金を閉めることはあなたの貸付け金の残りの主要なおよび利子を返済するのに十分な残高を有しなければ寄託された担保の一部を清算する。 残りの担保はあなたのウォレットに戻されます。\n\n残りの校長が返済されない場合、ほとんど場合、清算にはより高い資本コストが発生します。",
+ "loan_close_swap_warning": "ローンを終了すると、ローンの残りの元金および利子を返済するのに十分な残高を有しなければ、寄託された担保の一部が清算されます。 残りの担保はあなたのウォレットに戻されます。\n\n残りの元金が返済されない場合、ほとんど場合、清算にはより高い資本コストが発生します。",
"loan_close_loan_no_tx_needed_message": "返済する元金も、引き出すための担保もないようです。\n\nアカウントを閉じるためのトランザクションは必要ありませんが、保留中のオンチェーントランザクションがある場合、閉じた後でアカウントが再表示される可能性があります。",
"loan_close_loan_title": "ローンを閉じる",
"loan_close_multiple_asset_error": "複数の債務資産や預けられた担保資産を持つローンの終了はサポートされていません。\n\nRepayを使用してローンを返済するための資金源を指定してください。",
@@ -959,7 +965,7 @@
"loan_collateral_amount": "担保金額",
"loan_collateral_destination": "担保先",
"loan_collateral_required": "担保金額が必要です",
- "loan_collateral_source": "担保ソース",
+ "loan_collateral_source": "担保源",
"loan_collateral_value": "担保価値",
"loan_create_confirmation_title": "ローンの確認",
"loan_create_title": "Aaveで借りる",
@@ -991,9 +997,9 @@
"loan_no_active_loans": "アクティブなローンがありません。\nローンを作成し、AAVEで稼ぎ始めましょう!",
"loan_new_loan": "新規ローン",
"loan_new_collateral": "新規担保",
- "loan_new_principal": "新しいプリンシパル",
- "loan_principal_value": "プリンシパル値",
- "loan_remaining_principal": "残りのプリンシパル",
+ "loan_new_principal": "新しい元金",
+ "loan_principal_value": "元金の価値",
+ "loan_remaining_principal": "残りの元金",
"loan_apr_s": "APR: %1$s",
"loan_s_apr": "%1$s APR",
"loan_select_receiving_wallet": "受信ウォレットを選択してください",
@@ -1006,7 +1012,7 @@
"loan_status_cancel_txs_modal_msg": "トランザクションのキャンセルは現在のプロセスを停止しますが、既に実行された手順を元に戻すことはできません。アクションを元に戻したい場合は、それらの手順を手動で実行する必要があります。\n\n何か質問がある場合は、お問い合わせいただくか、%1$sにメールを送信してください。",
"loan_status_title": "ローンステータス",
"loan_status_failed_title": "アクションの処理に失敗しました",
- "loan_welcome_6s": "%3$sを売らずに利用しましょう!%2$s DeFiプロトコルを使用して、%3$sを担保として簡単に提供し、年利1.5%でUSDを借りることができます。%1$sや他の企業があなたのローンの担保を管理していないので、相手方のリスクはありません。\n\n%1$sは、%3$sを自動的に%2$sに変換・預け入れし、その価値の最大50%を%4$sで引き出し、直接銀行口座に入金することで、プロセスを簡略化します。%3$sの担保としてたった$%6$sで、$%5$sからのローンを作成することができます。",
+ "loan_welcome_6s": "%3$sを売らずに利用しましょう!%2$s DeFiプロトコルを使用して、%3$sを担保として簡単に提供し、年利1.5%でUSDを借りることができます。%1$sや他の企業があなたのローンの担保を管理していないので、カウンターパーティリスクはありません。\n\n%1$sは、%3$sを自動的に%2$sに変換・預け入れし、その価値の最大50%を%4$sで引き出し、直接銀行口座に入金することで、プロセスを簡略化します。%3$sの担保としてたった$%6$sで、$%5$sからのローンを作成することができます。",
"send_scene_send_from_wallet": "ウォレットから送信",
"send_scene_send_to_address": "アドレスへ送金する",
"send_scene_error_title": "エラー:",
@@ -1020,8 +1026,8 @@
"send_scan_modal_text_modal_hint": "公開アドレス",
"send_address_expire_title": "支払いアドレス有効期限",
"send_address_expired_error_message": "支払い先アドレスが期限切れです",
- "request_balance": "あなたは %s持っています",
- "exchange_generic_error_title": "エクスチェンジエラー",
+ "request_balance": "あなたは %sを持っています",
+ "exchange_generic_error_title": "交換エラー",
"exchange_insufficient_funds_title": "残高不足",
"exchange_insufficient_funds_message": "入力された金額と手数料がウォレット残高を超えています。",
"exchange_insufficient_funds_below_balance": "ウォレット残高が入力された金額を下回っています。",
@@ -1051,7 +1057,7 @@
"wc_scan_modal_text_modal_title": "ウォレット接続URIを入力",
"wc_scan_modal_text_modal_hint": "ウォレット接続URI",
"token_agreement_modal_title": "トークンを送信するために%sが必要です",
- "token_agreement_modal_message": "トークンを送信する際のマイニング手数料を支払うために%1$sが必要です。関連する%1$sウォレットには十分な資金が含まれている必要があります。\n\nもし%1$sを持っていない場合、%2$s内でBuyまたはエクスチェンジ機能を使用して取得することができます。",
+ "token_agreement_modal_message": "トークンを送信する際のマイニング手数料を支払うために%1$sが必要です。関連する%1$sウォレットには十分な資金が含まれている必要があります。\n\nもし%1$sを持っていない場合、%2$s内でBuyまたは交換機能を使用して取得することができます。",
"confirm_continue_modal_body": "以下を確認してください:",
"confirm_continue_modal_button_text": "利用規約を理解し、同意します",
"gateway_agreement_modal_title": "%s ゲートウェイアドレスが検出されました",
@@ -1075,21 +1081,21 @@
"stake_change_unstake_success": "ステーク解除に成功しました",
"stake_change_claim_success": "クレームトランザクションが正常に送信されました。",
"stake_disabled_slider": "金額を入力",
- "stake_warning_stake": "ステーキングした資金は、報酬の受け取りが16時間、ステーキングした資金の引き出しが36時間ブロックされます。\n\n各操作(ステーキング、アンステーキング、報酬の受け取り)ごとに、両方のタイマーがリセットされます。",
+ "stake_warning_stake": "ステーキングした資金に関しては、報酬の受け取りが16時間、ステーキングした資金の引き出しが36時間ブロックされます。\n\n各操作(ステーキング、ステーク解除、報酬の受け取り)ごとに、両方のタイマーがリセットされます。",
"stake_warning_claim": "報酬の受け取りは、ステーキングした資金の引き出しを36時間ブロックします。\n\n報酬の受け取りとステーキングした資金のアンステーキングを両方行うには、「ステーク解除して報酬を獲得する」を選択してください",
"stake_warning_unstake": "部分的なステーク解除を行うと、36時間ステーク解除できなくなります。",
"stake_modal_modify_stake_title": "%s からステーク",
"stake_modal_modify_unstake_title": "%s からステーク解除",
"stake_error_insufficient_s": "%sが足りません",
- "stake_error_stake_below_minimum": "最小以下のステーク額",
- "stake_error_unstake_below_minimum": "最小未満のステーク解除額",
+ "stake_error_stake_below_minimum": "ステーク額が最低額以下",
+ "stake_error_unstake_below_minimum": "ステーク解除額が最低額以下",
"state_error_pool_full_s": "%1$sの資産プールは現在満杯です。後でもう一度お試しください。",
"stake_estimated_staking_fee": "推定ステーキング手数料",
"stake_estimated_unstaking_fee": "推定ステーキング解除手数料",
"stake_staking_fee_message": "指定されたステーキング手数料は、預入金額から差し引かれ、ステークされる金額が減少します。",
"stake_unstaking_fee_message": "指定されたステーク解除手数料は、引き出し金額から差し引かれ、受け取る金額が減少します。",
"stake_future_unstaking_fee": "今後のステーク解除手数料の見積り",
- "stake_future_unstaking_fee_message": "これらの資金をアンステーキングする際に、指定されたアンステーキング手数料が発生します。この金額は推定であり、現在プールにステークされている資金に基づいています。ステーク解除する際の実際の手数料は異なる可能性があります。",
+ "stake_future_unstaking_fee_message": "これらの資金のステーキング解除をする際に、指定されたステーキング解除手数料が発生します。この金額は推定であり、現在プールにステークされている資金に基づいています。ステーク解除する際の実際の手数料は異なる可能性があります。",
"stake_break_even_time": "手数料回収までの時間",
"stake_break_even_time_message": "リクエストした金額のステーキングおよびステーク解除によって発生した合計手数料に基づいて、十分な報酬を得るために資金をステークし続けるための推定時間です。この時間枠は推定値であり、報酬APYの変更やステーキングプール内の総資金額の変化に基づいて変更される可能性があります",
"stake_break_even_days_s": "%1$s 日",
@@ -1112,7 +1118,7 @@
"fiat_plugin_payment_unsupported": "支払い方法はサポートされていません",
"fiat_plugin_buy_region_restricted": "この地域では %s の購入が制限されています。",
"fiat_plugin_buy_no_quote": "購入見積もりを取得できません",
- "fiat_plugin_fetching_assets": "サポートされているアセットを取得中",
+ "fiat_plugin_fetching_assets": "サポートされている資産を取得中",
"select_recv_wallet": "受取アドレスを選択",
"select_src_wallet": "ソースウォレットを選択",
"deposit_to_bank": "銀行へ入金",
@@ -1152,7 +1158,7 @@
"form_field_title_iban": "IBAN",
"form_field_title_swift_bic": "SWIFT/BIC",
"bank_info_title": "銀行情報",
- "home_address_title": "Home Address",
+ "home_address_title": "自宅住所",
"input_output_currency": "通貨",
"n_a": "n/a",
"payment_details": "支払いの詳細",
@@ -1160,9 +1166,9 @@
"buy_sell_quote_output_title": "出力",
"bank_transfer_reference": "参照",
"sepa_form_title": "銀行情報を入力",
- "sepa_transfer_prompt_s": "ご注文 %1$s が送信されました!\n\n以下の注文詳細を記録しておいて、お支払いは支払い詳細セクションの情報を使用して銀行に指示してください。",
+ "sepa_transfer_prompt_s": "ご注文 %1$s が送信されました!\n\n以下の注文詳細を記録として保存し、支払いの詳細セクションに記載されている情報を使用して、銀行に支払いを行うよう指示してください。",
"backup_account": "アカウントをバックアップ",
- "backup_delete_confirm_message": "Are you sure you want to delete this account without backing up first? You will NOT be able to recover wallets and transactions for this account!",
+ "backup_delete_confirm_message": "バックアップせずにアカウントを削除してもよろしいですか? このアカウントのウォレットと取引を復元することはできません!",
"backup_info_message": "アカウントを安全に暗号化し、バックアップするためのユーザー名とパスワードを作成してください。",
"backup_dismiss_button": "バックアップなしで続ける",
"backup_title": "アカウントをバックアップ",
@@ -1187,7 +1193,7 @@
"currency_label_BBD": "バルバドス ドル",
"currency_label_BYN": "ベラルーシ ルーブル",
"currency_label_BZD": "ベリーズ ドル",
- "currency_label_XOF": "CFAフラン BEAC",
+ "currency_label_XOF": "CFAフラン BCEAC",
"currency_label_BMD": "バミューダドル",
"currency_label_BTN": "ニュルタム",
"currency_label_INR": "インドルピー",
@@ -1338,7 +1344,7 @@
"currency_label_ZMW": "ザンビアクワチャ",
"currency_label_ZWL": "ジンバブエドル",
"getting_started_button_sign_in": "すでにアカウントをお持ちですか?サインイン",
- "getting_started_slide_1_footnote": "ユーザーはアプリ内で自己の判断でシードフレーズにアクセスすることができます。",
+ "getting_started_slide_1_footnote": "ユーザーはアプリ内で自由にシードフレーズにアクセスすることができます。",
"getting_started_slide_1_message": "紙に安全でないバックアップを書き留めるのはもうさようならです。クライアント側の暗号化、自動アカウントのバックアップ、二段階認証により、Edgeは自己保管を誰もが簡単に行えるようにします。",
"getting_started_slide_1_title": "私たちはあなたを\n*カバー*しています",
"getting_started_slide_2_message": "Edgeはユーザーの資金にアクセス権を持っていません、つまり口座の凍結や資産の没収の心配はありません。安心して購入、売却、取引が行えます。",
@@ -1347,7 +1353,7 @@
"getting_started_slide_3_title": "プライバシーは当社の最優先事項です",
"getting_started_slide_4_message": "毎日、サポートチームに、ライブ電話、ライブチャット、そしてメールでお問い合わせいただけます。",
"getting_started_slide_4_title": "必要なときはヘルプを利用してください。",
- "getting_started_welcome_message": "Edgeはあなたが必要とするオープンソースのツールです。",
+ "getting_started_welcome_message": "Edgeは、あなたが暗号通貨を投資し、保護し、アクションを起こすために必要なオープンソースのツールです",
"getting_started_welcome_prompt": "スワイプして詳細を見る",
"getting_started_welcome_title": "Financial *Freedom* へようこそ",
"app_logo_hint": "アプリのロゴ",
diff --git a/src/locales/strings/kaa.json b/src/locales/strings/kaa.json
index 38ac6c896ec..8c1032dd40c 100644
--- a/src/locales/strings/kaa.json
+++ b/src/locales/strings/kaa.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Cryptocurrency transactions are irreversible.",
"warning_scam_message_unknown_recipients": "Do not send money to people or organizations you do not know.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "Dıqqat! ",
"alert_dropdown_warning": "Dıqqat! ",
"azteco_success": "You've redeemed an Azteco bitcoin card. Funds should arrive shortly.",
@@ -891,6 +893,10 @@
"string_end": "End",
"export_transaction_quickbooks_qbo": "Quickbooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Export",
"string_status": "Status",
"string_fee": "Fee",
diff --git a/src/locales/strings/ko.json b/src/locales/strings/ko.json
index 7d4e3ba0cf8..e3907ff1cb8 100644
--- a/src/locales/strings/ko.json
+++ b/src/locales/strings/ko.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Cryptocurrency transactions are irreversible.",
"warning_scam_message_unknown_recipients": "Do not send money to people or organizations you do not know.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "Alert! ",
"alert_dropdown_warning": "Warning! ",
"azteco_success": "You've redeemed an Azteco bitcoin card. Funds should arrive shortly.",
@@ -891,6 +893,10 @@
"string_end": "End",
"export_transaction_quickbooks_qbo": "Quickbooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Export",
"string_status": "Status",
"string_fee": "Fee",
diff --git a/src/locales/strings/pt.json b/src/locales/strings/pt.json
index ae6af719ed0..46090849192 100644
--- a/src/locales/strings/pt.json
+++ b/src/locales/strings/pt.json
@@ -1,9 +1,9 @@
{
"action_queue_display_unknown_title": "Ação desconhecida",
"action_queue_display_unknown_message": "O Edge não consegue identificar o tipo de ação que está sendo concluída.",
- "aciton_queue_display_close_title": "Encerramento de empréstimo",
- "action_queue_display_close_message": "A Edge está pagando o principal integralmente e retirando a garantia restante.",
- "action_queue_display_seq_title": "Etapas da ação",
+ "aciton_queue_display_close_title": "Encerrando Empréstimo",
+ "action_queue_display_close_message": "Edge está pagando o principal integralmente e retirando a garantia restante.",
+ "action_queue_display_seq_title": "Etapas de ação",
"action_queue_display_seq_message": "Fazendo uma sequência de ações.",
"action_queue_display_par_title": "Grupo de Ação",
"action_queue_display_par_message": "Fazendo várias ações simultaneamente.",
@@ -26,7 +26,7 @@
"action_queue_push_notification_title": "Ação concluída",
"action_queue_push_notification_body": "A Edge concluiu o processamento da sua operação de empréstimo.",
"action_display_title_create": "Criando Empréstimo",
- "action_display_title_swap": "Fundos de Troca",
+ "action_display_title_swap": "Troca de Fundos",
"action_display_message_create_3s": "%1$s está criando seu empréstimo em %2$s usando os seus %3$s como garantia",
"action_display_message_swap_4s": "%1$s está trocando seus %2$s por %3$s para depositar em %4$s. Isso pode levar de alguns minutos a várias horas…",
"action_display_message_swap_fees_5s": "%1$s está trocando seus %2$s por %3$s e %4$s (para pagar taxas) para depósito em %5$s. Isso pode levar de alguns minutos a várias horas…",
@@ -37,7 +37,7 @@
"bitpay_metadata_name": "ID da fatura: %s",
"bitcoin_received": "%1$s Recebido",
"dialog_title": "Defina o Tempo de Logoff Automaticamente",
- "share_subject": "Ai, acho que você deveria tentar %s",
+ "share_subject": "Ei, acho que você deveria tentar %s",
"share_message": "Você pode comprar, armazenar e negociar dezenas de criptomoedas num único aplicativo.",
"drawer_borrow_dollars": "Pegar dólares emprestados",
"drawer_exchange_rate_loading": "Taxa de câmbio Carregando",
@@ -46,15 +46,15 @@
"drawer_sweep_private_key": "Varrer Chave Privada",
"drawer_fio_names": "FIO Names",
"drawer_fio_requests": "Solicitações FIO",
- "network_alert_title": "Sem ligação à Internet",
+ "network_alert_title": "Sem conexão à Internet",
"fio_network_alert_text": "A funcionalidade FIO requer ligação à Internet.",
- "fio_address_choose_label": "Escolha um identificador de criptografia FIO",
+ "fio_address_choose_label": "Escolha um FIO Crypto Handle",
"fio_domain_choose_label": "Escolha um Domínio FIO",
- "fio_address_choose_domain_label": "Escolha o domínio FIO para o seu identificador de criptografia",
+ "fio_address_choose_domain_label": "Escolha o domínio FIO para o seu Crypto Handle",
"scan_qr_label": "Escaneie o QR Code",
"error_paymentprotocol_empty_output_invoice": "Não foi recebida nenhuma saída no pedido de pagamento",
- "error_paymentprotocol_empty_verification_hex_req": "Generated empty transaction hex(es)",
- "error_paymentprotocol_currency_not_supported": "Pagamentos de faturas de protocolo de pagamento em %s não suportados no momento. Escolha outra moeda de pagamento.",
+ "error_paymentprotocol_empty_verification_hex_req": "Hex(es) de transação vazia gerados",
+ "error_paymentprotocol_currency_not_supported": "Pagamentos de fatura do Protocolo de Pagamento em %s não são suportados no momento. Por favor, escolha outra moeda de pagamento.",
"error_paymentprotocol_invalid_payment_option": "A fatura do protocolo de pagamento não aceita esta moeda. Moedas aceitas: %s",
"error_paymentprotocol_fetch": "Protocolo de pagamento %s erro de busca (%s)%s",
"error_paymentprotocol_multi_output_invoice": "Múltiplas saídas encontradas na solicitação de pagamento",
@@ -64,14 +64,16 @@
"error_spend_amount_less_then_min_s": "O valor gasto é menor que o mínimo de %s",
"warning_low_fee_selected": "Taxa baixa selecionada",
"warning_custom_fee_selected": "Taxa personalizada selecionada",
- "warning_low_or_custom_fee": "Usar uma taxa baixa pode aumentar o tempo necessário para a sua transação confirmar. Em raras ocasiões, sua transação pode falhar.",
+ "warning_low_or_custom_fee": "Usar uma taxa baixa pode aumentar o tempo necessário para a confirmação da sua transação. Em casos raros, sua transação pode falhar.",
"warning_alphanumeric": "Somente letras e números podem ser usados",
"warning_please_wait_title": "Por favor, aguarde",
- "warning_scam_title": "Aviso de fraude",
+ "warning_scam_title": "Alerta de Fraude",
"warning_scam_message_financial_advice_s": "%s não dará conselhos financeiros.",
"warning_scam_message_irreversibility": "As transações de criptomoedas são irreversíveis.",
"warning_scam_message_unknown_recipients": "Não envie dinheiro para pessoas ou organizações que você não conhece.",
"warning_scam_footer_s": "Se você tiver alguma dúvida ou preocupação sobre este envio, entre em contato com %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "Alerta! ",
"alert_dropdown_warning": "Atenção! ",
"azteco_success": "Você resgatou um cartão bitcoin Azteco. Os fundos devem chegar em breve.",
@@ -80,11 +82,11 @@
"reqaddr_error_unsupported_chains": "%1$s Não suporta as seguintes cadeias listadas na solicitação: %2$s",
"reqaddr_error_invalid_redir": "Consulta 'redir' inválida na solicitação de endereço de pagamento",
"reqaddr_error_no_currencies_found": "Nenhuma moeda encontrada na solicitação de endereço de pagamento",
- "reqaddr_error_no_wallets_selected": "Nenhuma carteira selecionada para o endereço de pagamento",
+ "reqaddr_error_no_wallets_selected": "Nenhuma carteira selecionada para a solicitação de endereço de pagamento",
"reqaddr_error_post_redir": "Endereço de postagem e redirecionamento não encontrado na solicitação de endereço de pagamento",
"reqaddr_application_fragment": "Uma aplicação",
"reqaddr_confirm_modal_title": "Confirmar o pedido?",
- "reqaddr_confirm_modal_message": "%1$s está a solicitar um endereço de pagamento para %2$s. Escolher carteiras para pedido?",
+ "reqaddr_confirm_modal_message": "%1$s está solicitando um endereço de pagamento para %2$s. Escolher carteiras para pedido?",
"max_spend_unavailable_modal_title": "Gasto máximo indisponível",
"max_spend_unavailable_modal_message": "Não foi possível calcular o valor máximo para gastar na moeda %s. Por favor, Insira o valor.",
"access_wallet_description": "Este aplicativo gostaria de criar ou acessar a sua carteira na sua conta %1$s.\n\n Ele não terá acesso a nenhuma outra carteira.",
@@ -96,7 +98,7 @@
"no_exchange_amount": "Nenhuma quantia selecionada",
"exchange_asset_unsupported": "%s Sem suporte no momento. Por favor, tente novamente mais tarde.",
"select_exchange_amount": "Por favor, digite uma quantia para trocar",
- "select_exchange_amount_short": "Digite uma Quantia",
+ "select_exchange_amount_short": "Informe um Valor",
"fragment_wallets_addwallet_fiat_hint": "Escolha uma moeda fiduciária",
"managetokens_top_instructions": "Selecione tokens para exibir na carteira:",
"accept_button_text": "Aceitar",
@@ -140,8 +142,8 @@
"fragment_transaction_list_sent_prefix": "Enviado ",
"fragment_transaction_transfer": "Transferir",
"fragment_wallet_unconfirmed": "Pendente",
- "fragment_transaction_list_tx_dropped": "Dropped",
- "fragment_transaction_list_tx_synchronizing": "A sincronizar",
+ "fragment_transaction_list_tx_dropped": "Descartado",
+ "fragment_transaction_list_tx_synchronizing": "Sincronizando",
"fragment_transaction_list_confirmation_progress": "%s de %s confirmações",
"fragment_transaction_list_unconfirmed_rbf": "Aguardando confirmação, pode ser cancelado",
"fragment_transaction_list_transaction": "Transações",
@@ -164,41 +166,41 @@
"fragment_wallets_export_transactions": "Exportar Transações",
"fragment_wallets_rename_wallet": "Renomear Carteira",
"fragment_wallets_resync_wallet_first_confirm_message_mobile": "Tem certeza de que deseja re-sincronizar\n",
- "fragment_wallets_split_wallet_bch_to_bsv": "Você está prestes a dividir esta carteira BCH e criar uma nova carteira BSV a partir de suas chaves privadas de BCH. Isto requer uma transação BCH para proteger seus fundos de serem gastos involuntariamente na cadeia errada. Isto incorrerá em uma pequena taxa de transação de rede na carteira BCH. Por favor certifique-se que esta transação seja confirmada antes de fazer qualquer outra transações BCH. Tem certeza que deseja dividir \n",
+ "fragment_wallets_split_wallet_bch_to_bsv": "Você está prestes a dividir esta carteira BCH e criar uma nova carteira BSV a partir das suas chaves privadas BCH. Isso requer uma transação BCH para proteger seus fundos de serem gastos acidentalmente na cadeia errada. Isso acarretará uma pequena taxa de transação de rede na carteira BCH. Por Favor, certifique-se de que esta transação seja confirmada antes de fazer qualquer outra transação BCH. Você tem certeza que deseja dividir?\n",
"fragment_wallets_split_wallet_first_confirm_message_mobile": "Tem certeza que deseja dividir\n",
- "fragment_wallets_get_seed_title": "Reveal Master Private Key",
- "fragment_wallets_get_seed_warning_message": "Sharing your master private key may put you at risk of fraudulent tokens and loss of funds.\n\nDo not share your key with anyone.\n\nBy entering your password, you are confirming that you understand the risks.",
+ "fragment_wallets_get_seed_title": "Revelar Master Private Key",
+ "fragment_wallets_get_seed_warning_message": "Compartilhar a sua master private key pode te expor ao risco de tokens fraudulentos e perda de fundos.\n\nNão compartilhe sua chave com ninguém.\n\nAo digitar a sua senha, você confirma que entende os riscos.",
"fragment_wallets_get_raw_keys_title": "Mostrar Raw Keys",
"fragment_wallets_get_raw_keys_warning_message": "Compartilhar suas raw Keys pode colocá-lo em risco de tokens fraudulentos e perda de fundos.\n\nNão compartilhe suas chaves com ninguém.\n\nAo inserir sua senha, você confirma que compreende os riscos.",
"fragmet_wallets_delete_wallet_first_confirm_message_mobile": "Tem certeza de que deseja arquivar ",
- "fragmet_wallets_delete_fio_extra_message_mobile": "Archiving this FIO wallet will remove access to any FIO addresses you have linked to this wallet.",
+ "fragmet_wallets_delete_fio_extra_message_mobile": "Arquivar esta carteira FIO removerá o acesso a quaisquer endereços FIO que você tenha vinculado a esta carteira.",
"fragmet_wallets_delete_eth_extra_message": "Arquivar esta carteira também arquivará quaisquer tokens ativados para esta carteira.",
"wallet_list_add_wallet": "Adicionar Carteira",
"wallet_list_add_token": "Adicionar Token",
"wallet_list_referral_link_currency_invalid": "A moeda a ser criada é inválida",
- "wallet_list_referral_link_currency_loading": "Hang tight. Creating wallet necessary for this promotion",
+ "wallet_list_referral_link_currency_loading": "Aguente firme. Criando a carteira necessária para esta promoção",
"wallet_list_referral_link_ask_wallet_creation": "Você precisa da carteira %s para esta promoção, deseja criar uma?",
"wallet_list_referral_link_cancelled_wallet_creation": "O usuário não aprovou a criação da carteira para a promoção",
"wallet_list_wallet_search": "Pesquisar Carteiras",
- "compromised_key_label": "Compromised Key",
- "create_wallet_choice_new_button": "Criar Carteira Nova",
+ "compromised_key_label": "Chave comprometida",
+ "create_wallet_choice_new_button": "Criar uma nova carteira",
"create_wallet_choice_new_button_fragment": "Nova Carteira",
"create_wallet_select_wallet_for_assets": "Por favor, selecione a carteira que você gostaria de adicionar os seguintes ativos: %s",
"create_wallet_import_title": "Importar Carteira",
- "create_wallet_import_options_title": "Importar Opções",
+ "create_wallet_import_options_title": "Opções de Importação",
"create_wallet_import_options_birthday_height": "Wallet Birthday Height",
- "create_wallet_import_options_birthday_height_description": "The birthday height is the network block height that your wallet will start synchronizing from.",
+ "create_wallet_import_options_birthday_height_description": "O birthday height é o número do bloco a partir do qual a sua carteira começará a sincronizar.",
"create_wallet_imports_title": "Importar carteiras",
- "create_wallet_import_all_instructions": "Enter your private seed, private key, or active key to verify and restore the associated wallet",
- "create_wallet_import_instructions": "Enter your private seed to verify and restore the associated wallet",
+ "create_wallet_import_all_instructions": "Digite a sua private seed, private key ou active key para verificar e restaurar a carteira associada",
+ "create_wallet_import_instructions": "Digite a sua private seed para verificar e restaurar a carteira associada",
"create_wallet_import_input_prompt": "Private Seed",
- "create_wallet_import_key_instructions": "Enter your private key to verify and restore the associated wallet",
+ "create_wallet_import_key_instructions": "Digite a sua private key para verificar e restaurar a carteira associada",
"create_wallet_import_input_key_prompt": "Private Key",
- "create_wallet_import_input_key_or_seed_instructions": "Enter your private seed or private key to verify and restore the associated wallet",
- "create_wallet_import_input_key_or_seed_prompt": "Private Key or Private Seed",
- "create_wallet_import_polkadot_input_key_or_seed_instructions": "Enter your private seed or private key to verify and restore the associated ed25519 wallet",
- "create_wallet_import_active_key_input_prompt": "Active Private Key",
- "create_wallet_import_active_key_instructions": "Enter your active private key to verify and restore the associated wallet:",
+ "create_wallet_import_input_key_or_seed_instructions": "Digite a sua private seed ou private key para verificar e restaurar a carteira associada",
+ "create_wallet_import_input_key_or_seed_prompt": "Private Key ou Private Seed",
+ "create_wallet_import_polkadot_input_key_or_seed_instructions": "Digite a sua private seed ou private key para verificar e restaurar a carteira ed25519 associada",
+ "create_wallet_import_active_key_input_prompt": "Private Key Ativa",
+ "create_wallet_import_active_key_instructions": "Digite a sua private key ativa para verificar e restaurar a carteira associada:",
"create_wallet_edit": "Editar",
"create_wallet_tokens": "Tokens",
"create_wallet_select_valid_crypto": "Por favor, selecione um tipo válido de carteira",
@@ -207,26 +209,26 @@
"create_wallet_crypto_type_label": "Tipo da Carteira:",
"create_wallet_fiat_type_label": "Carteira de Moeda Fiduciária:",
"create_wallet_failed_import_header": "Falha na Importação da Chave",
- "create_wallet_all_failed": "Please edit the key and try again.",
- "create_wallet_some_failed": "The following assets cannot be imported with the provided seed: %s. Would you like to continue importing all other assets?",
+ "create_wallet_all_failed": "Por Favor, edite a chave e tente novamente.",
+ "create_wallet_some_failed": "Os seguintes ativos não podem ser importados com a seed fornecida: %s. Você gostaria de continuar importando todos os outros ativos?",
"create_wallet_all_disabled_import": "Nenhum ativo selecionado pode ser importado. Você pode criar carteiras ou voltar e selecionar diferentes ativos.",
"create_wallet_some_disabled_import": "Os seguintes ativos não podem ser importados: %s.\nDeseja continuar importando todos os outros ativos?",
"create_wallet_no_assets_selected": "Nenhum ativo selecionado",
- "create_wallet_failed_message": "A criação da carteira falhou porque o limite de tempo foi ultrapassado. Por favor, verifique a ligação à Internet e tente novamente.",
- "create_wallet_create_account": "Criar Conta",
+ "create_wallet_failed_message": "A criação da carteira falhou porque o limite de tempo foi ultrapassado. Por favor, verifique a sua conexão com Internet e tente novamente mais tarde.",
+ "create_wallet_create_account": "Criar uma Conta",
"create_wallet_account_activate": "Ativar Conta",
- "create_wallet_account_handle": "Identificador de Conta",
- "create_wallet_account_select_instructions_with_cost": "Todas as novas carteiras %1$s requerem um pagamento único para ativar a conta e o nome. Este pagamento é exigido pela rede %2$s, não é uma exigência de %3$s. O custo atual é equivalente a %4$s, mas poderá flutuar no futuro. Selecione uma carteira para pagar:",
- "create_wallet_account_make_payment": "Está prestes a fazer o seguinte pagamento para ativar a sua conta %s:",
+ "create_wallet_account_handle": "Conta Handle",
+ "create_wallet_account_select_instructions_with_cost": "Todas as novas %1$s carteiras exigem um pagamento único para ativar a conta e o nome. Esse pagamento é exigido pela rede %2$s e não é um requisito do %3$s. O custo atual é equivalente a %4$s, mas pode variar no futuro. Selecione uma carteira para pagar a partir dela:",
+ "create_wallet_account_make_payment": "Você está prestes a fazer o seguinte pagamento para ativar a sua conta %s:",
"create_wallet_account_select_wallet": "Selecionar Carteira",
"create_wallet_account_review_instructions": "Crie um identificador de conta exclusivo, este também será o nome da sua carteira %s:",
- "create_wallet_account_requirements_eos": "• Tem de ter exatamente 12 caracteres\n• Tem de incluir apenas letras minúsculas a-z ou números 1-5\n",
- "create_wallet_account_invalid_account_name": "Nome de conta inválido. Não cumpre os requisitos.",
- "create_wallet_account_account_name_unavailable": "Esse nome não está disponível. Por favor escolha outro",
- "create_wallet_account_unknown_error": "Erro desconhecido ao checar o nome da conta. Por favor, tente novamente mais tarde",
+ "create_wallet_account_requirements_eos": "• Deve ter exatamente 12 caracteres\n• Deve incluir apenas letras minúsculas a-z ou números 1-5\n",
+ "create_wallet_account_invalid_account_name": "Nome de conta inválido. Não preenche os requisitos",
+ "create_wallet_account_account_name_unavailable": "Nome da conta indisponível. Escolha outro nome",
+ "create_wallet_account_unknown_error": "Erro desconhecido ao verificar o nome da conta. Por favor, tente novamente mais tarde",
"create_wallet_account_confirm": "Verifique novamente a sua carteira e informações de pagamento antes de enviar.",
"create_wallet_account_amount_due": "Valor devido:",
- "create_wallet_account_error_sending_transaction": "Erro ao enviar transação",
+ "create_wallet_account_error_sending_transaction": "Erro ao enviar a transação",
"create_wallet_account_payment_sent_title": "Pagamento Enviado",
"create_wallet_account_payment_sent_message": "Pagamento de ativação enviado. Aguarde a confirmação da sua transação antes de usar a sua nova carteira.",
"create_wallet_account_handle_unavailable_modal_title": "Identificador de conta indisponível",
@@ -234,7 +236,7 @@
"create_wallet_account_metadata_name": "%s Rede",
"create_wallet_account_metadata_category": "%s Ativação",
"create_wallet_account_metadata_notes": "Esta transação pagou pela ativação da sua carteira %s. Aguarde a confirmação desta transação antes de usar a sua carteira %s. Para problemas com a ativação da carteira, envie um e-mail para %s",
- "create_wallet_account_unfinished_activation_title": "A Carteira Não Foi Ativada",
+ "create_wallet_account_unfinished_activation_title": "Carteira não ativada",
"create_wallet_account_unfinished_activation_message": "Para concluir a ativação desta carteira %s, por favor, escolha um nome de utilizador único e complete o pagamento de ativação. Se já tiver efetuado um pagamento de ativação, por favor, aguarde a sua confirmação antes de tentar usar esta carteira.",
"activate_wallet_token_transaction_name_category_generic": "Ativação do Token",
"activate_wallet_token_transaction_notes_generic": "Ativar transação de token",
@@ -252,20 +254,20 @@
"activate_wallet_tokens_insufficient_funds_s": "Você não tem fundos suficientes para ativar esses tokens. Você precisa de pelo menos %s para prosseguir com a ativação.",
"activate_wallet_token_success": "Token ativado com sucesso. Pode levar alguns minutos para que a ativação seja reconhecida pela rede.",
"preparing_fio_wallet": "Preparando carteira FIO",
- "fio_address": "FIO Address: %s",
+ "fio_address": "Endereço FIO: %s",
"fio_pending_requests": "Solicitações Pendentes",
"fio_sent_requests": "Solicitações enviadas",
"fio_src_wallet": "Pagar da carteira",
- "submit": "Submeter",
- "login": "Entrar",
+ "submit": "Enviar",
+ "login": "Login",
"help_build": "Construir",
"help_modal_title_thanks": "Obrigado por usar %1$s!",
"help_version": "Versão",
"help_knowledge_base": "Base de conhecimento",
"help_knowledge_base_text": "Perguntas frequentes e FAQ",
- "help_support": "Envie um ticket de suporte",
+ "help_support": "Enviar um ticket para o Suporte",
"help_support_text": "Solução de problemas e suporte técnico",
- "help_call": "Pedir Ajuda",
+ "help_call": "Chamar para Assistência",
"help_call_text": "Entre em contato pelo telefone",
"help_visit_site": "Visite o site %1$s",
"help_site_more_info_text": "Mais informações sobre %1$s",
@@ -273,70 +275,70 @@
"loading": "Carregando…",
"validating": "Validando…",
"high_fee_warning_confirm_send": "Confirmar envio",
- "mining_fee_custom_label_choice": "Personalizar",
+ "mining_fee_custom_label_choice": "Personalizado",
"mining_fee_high_label_choice": "Alta",
"mining_fee_low_label_choice": "Baixa",
"mining_fee_standard_label_choice": "Ideal",
"request_deprecated_header": "O suporte para %1$s foi descontinuado.",
- "request_deprecated_currency_code": "Please extract the private keys and import into a %1$s supporting wallet. If you need assistance please submit a support ticket below.",
+ "request_deprecated_currency_code": "Por favor, extraia as private keys e importe para uma carteira que suporte %1$s. Se você precisar de assistência, por favor, envie um ticket de suporte abaixo.",
"request_qr_email_title": "Pague com %1$s:",
"request_email_subject": "%1$s %2$s Solicitação",
"request_qr_your_wallet_address": "Endereço da sua carteira",
- "request_qr_your_wrapped_segwit_address": "Your Wrapped-Segwit Address",
+ "request_qr_your_wrapped_segwit_address": "Seu endereço Wrapped-Segwit",
"request_qr_your_legacy_address": "O seu endereço Legacy",
"request_qr_your_segwit_address": "O seu endereço Segwit",
- "request_review_question_title": "Está a gostar do %1$s?",
- "request_review_question_subtitle": "Por favor, avalie-nos",
+ "request_review_question_title": "Está gostando da %1$s?",
+ "request_review_question_subtitle": "Por favor, deixe-nos uma avaliação",
"request_review_answer_no": "Não, obrigado",
"request_review_answer_yes": "Avaliar Agora",
- "request_review_android_page_link": "https://play.google.com/store/apps/details?id=co.edgesecure.app&hl=PT",
+ "request_review_android_page_link": "https://play.google.com/store/apps/details?id=co.edgesecure.app&hl=pt_BR",
"search_wallets": "Pesquisar Carteiras",
"search_tokens": "Pesquisar tokens",
"search_assets": "Pesquisar Ativos",
- "select_wallet": "Escolher Carteira",
+ "select_wallet": "Selecionar Carteira",
"send_confirmation_calculating_fee": "Calculando Taxa",
"send_confirmation_slide_to_confirm": "Deslize para Confirmar",
"send_confirmation_balance": "Saldo",
"send_confirmation_eos_error_cpu": "CPU insuficiente para enviar a transação EOS. Por favor, aguarde 1-3 dias para a CPU recarregar.",
"send_confirmation_eos_error_net": "NET insuficiente para enviar a transação EOS. Por favor, espere de 1 a 3 dias pela NET para recarregar.",
- "send_confirmation_eos_error_ram": "Insufficient RAM available to send EOS transaction. Please see edge.app/eos for details on how to resolve.",
- "send_scan_edge_login_success_title": "Início de Sessão Bem-sucedido",
- "send_scan_edge_login_success_message": "Para continuar, volte ao navegador ou à aplicação que pediu o início de sessão na Edge.",
+ "send_confirmation_eos_error_ram": "A RAM disponível não é suficiente para enviar transações EOS. Acesse edge.app/eos para obter detalhes sobre como resolver o problema.",
+ "send_scan_edge_login_success_title": "Login na Edge bem-sucedido",
+ "send_scan_edge_login_success_message": "Para continuar, por favor, retorne ao navegador ou aplicativo que solicitou o Login da Edge.",
"send_confirmation_fee_modal_alert_title": "Aviso de Taxa Alta",
"send_confirmation_fee_modal_alert_message_fragment": "A rede está congestionada no momento. As taxas de transação podem ser mais caras (%s) e podem levar mais tempo do que o normal para confirmar.",
"send_confirmation_fee_modal_alert_message_fragment_eth": "O uso de uma taxa muito baixa pode resultar em falha na transação e na perda da taxa gasta.",
"transaction_failure": "Falha na Transação",
"transaction_failure_message": "%s.",
- "transaction_success": "Sucesso na Transação",
+ "transaction_success": "Transação bem sucedida",
"transaction_success_message": "A sua transação foi enviada com sucesso.",
- "incorrect_pin": "Senha Incorreta",
+ "incorrect_pin": "PIN Incorreto",
"invalid_spend_request": "Solicitação de Gasto Inválida",
"invalid_custom_fee": "A taxa mínima personalizada é",
"missing_username": "",
"settings_account_title_cap": "Conta",
"settings_button_change_password": "Alterar Senha",
- "settings_developer_mode": "Modo de Programador",
+ "settings_developer_mode": "Modo Desenvolvedor",
"settings_verbose_logging": "Registo detalhado",
"settings_dark_theme": "Tema escuro",
- "settings_button_contacts_access_permission": "Acesso a Contatos",
+ "settings_button_contacts_access_permission": "Acesso aos contatos",
"settings_button_lock_settings": "Clique para Definir as Configurações da Conta",
"settings_button_password_recovery": "Ajuste a Recuperação de Senha",
"settings_button_logout": "Sair",
"settings_button_pin": "Alterar PIN",
- "settings_exchange_settings": "Configurações de Câmbio",
- "settings_exchange_instruction": "Habilitar ou desabilitar os provedores de câmbio disponíveis",
+ "settings_exchange_settings": "Configurações da Exchange",
+ "settings_exchange_instruction": "Habilitar ou desabilitar as exchanges disponíveis para você",
"settings_marketing_notifications_switch": "Ativar alertas de marketing",
"settings_price_notifications_switch": "Ativar Alertas de Preço",
"settings_hide_spam_transactions": "Ocultar transações de spam",
"swap_preferred_header": "Exchange Preferida",
- "swap_preferred_cheapest": "Escolher melhor preço",
+ "swap_preferred_cheapest": "Escolha o melhor preço",
"swap_preferred_dex": "Prefira Descentralizado",
"swap_preferred_cex": "Prefira Centralizado",
"swap_options_header_decentralized": "Descentralizado\nNenhuma informação pessoal necessária",
"swap_options_header_centralized": "Centralizado\nPode exigir informações pessoais",
"swap_preferred_instructions": "Quando várias exchanges puderem preencher a uma ordem, prefira:",
"swap_preferred_promo_instructions": "Quando várias exchanges podem preencher a uma ordem, a promoção atual sempre prefere:",
- "settings_button_clear_logs": "Clear Logs",
+ "settings_button_clear_logs": "Limpar Logs",
"settings_button_send_logs": "Enviar Logs para o Edge",
"settings_button_export_logs": "Exportar Logs",
"settings_button_setup_two_factor": "Configurar segurança de 2 fatores",
@@ -352,18 +354,18 @@
"settings_electrum": "Electrum",
"settings_monero": "Servidor Monero",
"settings_monero_default": "MyMonero",
- "settings_monero_custom": "Custom Light Wallet Server",
- "settings_monero_info": "Edge uses Monero light wallet servers provided by MyMonero. These servers hold the private view key, which they use to scan for transactions. For enhanced privacy, you can run your own Monero light wallet server.",
+ "settings_monero_custom": "Light Wallet Server Personalizado",
+ "settings_monero_info": "Edge utiliza servidores Monero light wallet fornecidos pela MyMonero. Esses servidores guardam a sua private view key, que eles usam para escanear transações. Para maior privacidade, você pode usar o seu o próprio servidor Monero Light Wallet.",
"settings_hours": "Hora(s)",
"settings_minutes": "Minuto(s)",
- "settings_modal_export_logs_message": "You may add any additional notes here, and select whether to share logs with Edge, or export logs to your device.",
- "settings_modal_clear_logs_message": "Are you sure you want to clear all logs on this device?",
- "settings_modal_clear_logs_success": "Logs have been cleared",
+ "settings_modal_export_logs_message": "Pode adicionar quaisquer notas adicionais aqui e selecionar se deseja compartilhar logs com a Edge ou exportar logs para o seu dispositivo.",
+ "settings_modal_clear_logs_message": "Você tem certeza que deseja limpar todos os logs neste dispositivo?",
+ "settings_modal_clear_logs_success": "Os Logs foram apagados",
"settings_modal_send_logs_success": "Logs foram enviados",
"settings_modal_send_logs_failure": "Envio de logs falhou",
- "settings_modal_share_logs_failure": "Sharing logs has failed",
- "settings_modal_send_unsafe": "These logs appear to contain sensitive information, such as private keys and addresses, that could result in the loss of funds. Therefore, it is not safe to send these logs to Edge servers.",
- "settings_modal_send_logs_label": "Type Notes Here",
+ "settings_modal_share_logs_failure": "O compartilhamento de logs falhou",
+ "settings_modal_send_unsafe": "Esses logs parecem conter informações sensíveis, como private keys e endereços, que poderiam resultar na perda de fundos. Portanto, não é seguro enviar esses registros para os servidores da Edge.",
+ "settings_modal_send_logs_label": "Escreva as notas aqui",
"settings_options_title_cap": "Opções",
"settings_seconds": "Segundo(s)",
"settings_title_auto_logoff": "Logoff automático após",
@@ -371,8 +373,8 @@
"settings_title_pin_login": "PIN Re-login",
"settings_title": "Configurações",
"settings_enable_custom_nodes": "Ativar servidores personalizados",
- "settings_add_custom_node": "Adicionar servidor customizado",
- "settings_edit_custom_node": "Editar servidor customizados",
+ "settings_add_custom_node": "Adicionar servidor personalizado",
+ "settings_edit_custom_node": "Editar servidor personalizado",
"settings_custom_node_url": "Node URL",
"settings_promotion_affiliation_header": "Programa de Afiliação",
"settings_promotion_header": "Códigos promocionais",
@@ -387,27 +389,27 @@
"settings_currency_notifications_percent_change_hours": "%1$s%% alteração em %2$s horas",
"skip": "Pular",
"staking_change_add_header": "Stake %s",
- "staking_change_add_amount_title": "Amount to stake",
- "staking_change_explaner1": "Stake your coins to earn passive income on your funds",
- "staking_change_explaner2": "Staked coins are unusable for the duration of the stake",
+ "staking_change_add_amount_title": "Valor para stake",
+ "staking_change_explaner1": "Stake as suas moedas para ganhar renda passiva nos seus fundos",
+ "staking_change_explaner2": "Moedas em staking não podem ser utilizadas durante o período de staking",
"staking_change_remove_header": "Unstake %s",
- "staking_change_remove_amount_title": "Amount to unstake",
+ "staking_change_remove_amount_title": "Valor para unstake",
"staking_change_remove_unlock_date": "Data de desbloqueio",
- "staking_change_unlock_explainer_title": "Unstaked Funds",
- "staking_change_unlock_explainer1": "Unstaked funds are not immediately available. ",
+ "staking_change_unlock_explainer_title": "Fundos Unstaked",
+ "staking_change_unlock_explainer1": "Fundos Unstaked não estão imediatamente disponíveis. ",
"staking_change_unlock_explainer2": "Eles continuam bloqueados e inutilizáveis por 7 dias após a retirada dos fundos.",
"staking_overview_header": "Stake %s",
- "staking_overview_explainer": "You have the following funds staked:",
- "staking_locked_title": "Unstaked and locked until %1$s",
- "staking_stake_funds_button": "Stake More Funds",
+ "staking_overview_explainer": "Você tem os seguintes fundos em staking:",
+ "staking_locked_title": "Unstaked e bloqueado até %1$s",
+ "staking_stake_funds_button": "Coloque mais fundos em staking",
"staking_unstake_funds_button": "Unstake",
"staking_status": "%1$s bloqueado (%2$s)",
- "staking_success": "Successfully staked",
- "staking_unstake_success": "Successfully unstaked",
+ "staking_success": "Staked com sucesso",
+ "staking_unstake_success": "Unstaked com sucesso",
"staking_estimated_rewards": "Recompensas Estimadas",
"staking_estimated_return": "Retorno Estimado: %1$s APY",
"staking_estimated_return_up_to": "Retorno Estimado: até %1$s APY",
- "staking_no_fio_address_error": "Unable to stake without a FIO addresses",
+ "staking_no_fio_address_error": "Não é possível fazer stake sem um endereço FIO",
"staking_no_bundled_txs_error": "Não há transações agrupadas suficientes para o endereço FIO %1$s",
"string_i_agree": "Eu concordo",
"string_expires": "Expira",
@@ -426,23 +428,23 @@
"string_disable": "Desativado",
"string_done_cap": "Concluído",
"string_first_ethereum_wallet_name": "Meu Ether",
- "string_first_ethereum_classic_wallet_name": "Meu Ethereum Classicista",
+ "string_first_ethereum_classic_wallet_name": "Meu Ethereum Classic",
"string_first_ethereum_pow_wallet_name": "Meu Ethereum POW",
"string_first_bitcoin_wallet_name": "Meu Bitcoin",
- "string_first_bitcoin_testnet_wallet_name": "Meu Bitcoin Teste",
+ "string_first_bitcoin_testnet_wallet_name": "Meu Bitcoin Testnet",
"string_first_bitcoincash_wallet_name": "Meu Bitcoin Cash",
"string_first_bitcoin_sv_wallet_name": "Meu Bitcoin SV",
"string_first_bitcoin_gold_wallet_name": "Meu Bitcoin Gold",
- "string_first_dash_wallet_name": "Meu Dash",
+ "string_first_dash_wallet_name": "Minha Dash",
"string_first_digibyte_wallet_name": "Meu DigiByte",
"string_first_eos_wallet_name": "Meu EOS",
"string_first_telos_wallet_name": "Meu Telos",
- "string_first_wax_wallet_name": "Meu Wax",
+ "string_first_wax_wallet_name": "Minha Wax",
"string_first_feather_coin_wallet_name": "Meu Feather Coin",
"string_first_fio_wallet_name": "Meu FIO",
"string_first_groestlcoin_wallet_name": "Meu Groestlcoin",
"string_first_litecoin_wallet_name": "Meu Litecoin",
- "string_first_monero_wallet_name": "Meu Monero",
+ "string_first_monero_wallet_name": "Minha Monero",
"string_first_qtum_wallet_name": "Meu Qtum",
"string_first_ripple_wallet_name": "Minha XRP",
"string_first_smartcash_wallet_name": "Meu SmartCash",
@@ -450,7 +452,7 @@
"string_first_vertcoin_wallet_name": "Meu Vertcoin",
"string_first_ravencoin_wallet_name": "Meu Ravencoin",
"string_first_zcoin_wallet_name": "Meu Firo",
- "string_first_stellar_wallet_name": "Meu Stellar",
+ "string_first_stellar_wallet_name": "Minha Stellar",
"string_first_tezos_wallet_name": "Meu Tezos",
"string_first_rsk_wallet_name": "Meu Rootstock",
"string_first_bnb_wallet_name": "Meu BNB",
@@ -463,14 +465,14 @@
"string_first_tron_wallet_name": "Meu Tron",
"string_first_doge_wallet_name": "Meu Doge",
"string_first_fantom_wallet_name": "Meu Fantom",
- "string_first_hedera_wallet_name": "My Hedera",
+ "string_first_hedera_wallet_name": "Meu Hedera",
"string_first_polkadot_wallet_name": "Minha Polkadot",
"string_first_polygon_wallet_name": "Meu Polygon",
"string_first_pulsechain_wallet_name": "Minha PulseChain",
"string_first_avalanche_wallet_name": "Minha Avalanche",
"string_first_optimism_wallet_name": "Meu Optimism",
"string_first_algorand_wallet_name": "Minha Algorand",
- "string_first_zksync_wallet_name": "My zkSync",
+ "string_first_zksync_wallet_name": "Meu zkSync",
"my_crypto_wallet_name": "Meu %s",
"string_help": "Ajuda",
"string_exit": "Sair",
@@ -511,16 +513,16 @@
"title_fio_address_settings": "Configurações de endereço",
"title_fio_domain_settings": "Configurações de domínio",
"title_fio_add_bundled_txs": "Comprar mais transações agrupadas",
- "title_fio_renew_domain": "Renew FIO Domain",
+ "title_fio_renew_domain": "Renovar Domínio FIO",
"title_fio_renew": "Renovar",
"title_fio_make_public_domain": "Tornar domínio público",
"title_fio_make_private_domain": "Tornar domínio privado",
"title_fio_transfer_domain": "Transferir Domínio FIO",
"title_fio_transfer_address": "Transferir Endereço FIO",
"title_fio_address": "FIO Crypto Handles",
- "title_fio_names": "FIO Names",
- "title_fio_domains": "FIO Domains",
- "title_fio_address_confirmation": "Register FIO Crypto Handle",
+ "title_fio_names": "Nomes FIO",
+ "title_fio_domains": "Domínios FIO",
+ "title_fio_address_confirmation": "Registar FIO Crypto Handle",
"title_fio_requested": "Solicitado",
"title_fio_connect_to_wallet": "Conectar à Carteira",
"title_fio_disconnect_wallets": "Desconectar Carteiras",
@@ -540,8 +542,8 @@
"title_buy": "Comprar",
"title_sell": "Vender",
"title_map": "Mapa",
- "no_exchanges_available": "Não Há Câmbios Ativos",
- "check_exchange_settings": "Por favor, habilite-os nas Configurações de Câmbio.",
+ "no_exchanges_available": "Nenhuma Exchange Habilitada",
+ "check_exchange_settings": "Por favor, habilite-os nas configurações do Exchange.",
"amount_above_limit": "O valor está acima do limite máximo de %1$s %2$s. Este limite máximo está sujeito a alterações com base nas condições do mercado",
"amount_below_limit": "O valor está abaixo do limite mínimo de %1$s %2$s. Este limite mínimo está sujeito a alterações com base nas condições do mercado",
"transaction_details_category_title": "Categoria",
@@ -551,53 +553,53 @@
"transaction_details_sender": "Remetente",
"transaction_details_person_name": "%s Nome",
"transaction_details_person_input": "Escolha um %s",
- "transaction_details_crypto_amount": "%s Amount",
- "transaction_details_amount_in_fiat": "Amount in %s",
+ "transaction_details_crypto_amount": "Quantidade de %s",
+ "transaction_details_amount_in_fiat": "Valor em %s",
"transaction_details_amount_current_price": "Valor no preço atual",
"transaction_details_view_advanced_data": "Ver os dados avançados da transação",
"transaction_details_tx_id_modal_title": "ID da Transação",
"transaction_details_show_advanced_block_explorer": "Mostrar no Block Explorer",
- "transaction_history_permission": "Gostaria de partilhar todo o historial de transações de %s com este parceiro?",
+ "transaction_history_permission": "Gostaria de compartilhar todo o histórico de transações de %s com este parceiro?",
"transaction_details_error_invalid": "Transação inválida",
"sub_category_label": "Subcategoria",
- "transaction_details_recipient_addresses": "Endereços dos Destinatários",
+ "transaction_details_recipient_addresses": "Endereços do Destinatário",
"transaction_details_advance_details_header": "Detalhes Avançados",
"transaction_details_advance_details_fee_setting": "Configuração de taxas",
"transaction_details_advance_details_device": "Dispositivo",
"transaction_details_advance_details_fee_used": "Taxa Utilizada",
"transaction_details_advance_details_show_explorer": "Mostrar no Explorer",
- "transaction_details_advance_details_raw_txbytes": "Bytes de Transação Bruta",
+ "transaction_details_advance_details_raw_txbytes": "Bytes de Transação Bruta (Raw)",
"transaction_details_advance_details_accelerate": "Acelere esta transação",
- "transaction_details_advance_details_txSecret": "Transaction Key",
+ "transaction_details_advance_details_txSecret": "Chave de Transação (Transaction Key)",
"transaction_details_advance_details_payment_proof": "Comprovante de pagamento",
"transaction_details_advance_details_satpervbyte": "Sats / VByte",
- "transaction_details_advance_details_gasprice": "Gas Price Gwei",
- "transaction_details_advance_details_gaslimit": "Gas Limit",
+ "transaction_details_advance_details_gasprice": "Preço Gas Gwei",
+ "transaction_details_advance_details_gaslimit": "Limite de Gas",
"transaction_details_accelerate_transaction_header": "Acelerar Transação",
- "transaction_details_accelerate_transaction_instructional": "Isso reenviará a sua transação com a sua taxa dobrada para ajudar a priorizá-la para confirmação da rede. Revise o valor da nova taxa antes de confirmar.",
+ "transaction_details_accelerate_transaction_instructional": "Isso reenviará a sua transação com a sua taxa dobrada para ajudar a priorizá-la para confirmação da rede. Por favor, revise o valor da nova taxa antes de confirmar.",
"confirm_finish": "Confirmar e Concluir",
"transaction_details_accelerate_transaction_old_fee_title": "Taxa Antiga",
"transaction_details_accelerate_transaction_new_fee_title": "Nova taxa",
"transaction_details_accelerate_transaction_slider_disabled": "Não foi possível acelerar a transação",
- "transaction_details_accelerate_transaction_fee_too_low": "A taxa de transação acelerada é muito baixa. A taxa foi atualizada. Por favor, tente novamente.",
+ "transaction_details_accelerate_transaction_fee_too_low": "A taxa de transação acelerada está muito baixa. A taxa foi atualizada. Por favor, tente novamente.",
"transaction_details_accelerate_transaction_sent": "A sua transação foi acelerada.",
- "transaction_details_exchange_details": "Exchange Details",
- "transaction_details_exchange_service": "Exchange Service",
- "transaction_details_exchange_order_id": "Order ID",
+ "transaction_details_exchange_details": "Detalhes da Exchange",
+ "transaction_details_exchange_service": "Serviços da Exchange",
+ "transaction_details_exchange_order_id": "ID do Pedido",
"transaction_details_exchange_source_wallet": "Carteira de Origem",
"transaction_details_exchange_destination_wallet": "Carteira de destino",
- "transaction_details_exchange_exchange_address": "Exchange Address",
- "transaction_details_exchange_exchange_unique_id": "Exchange Unique ID",
+ "transaction_details_exchange_exchange_address": "Endereço da Exchange",
+ "transaction_details_exchange_exchange_unique_id": "ID Único da Exchange",
"transaction_details_exchange_payout_address": "Endereço de Pagamento",
"transaction_details_exchange_refund_address": "Endereço de Reembolso",
- "transaction_details_exchange_status_page": "Exchange Status Page",
- "transaction_details_exchange_support": "Exchange Support",
+ "transaction_details_exchange_status_page": "Página de Status da Exchange",
+ "transaction_details_exchange_support": "Suporte da Exchange",
"transaction_details_exchange_support_request": "%sSolicitação de suporte",
"transaction_details_fee_warning": "Altas taxas de rede",
"my_receive_addresses_title": "Meus endereços de recebimento",
"category_modal_title": "Escolha uma categoria",
"transaction_details_notes_title": "Notas",
- "back_button_tap_again_to_exit": "Toque novamente para encerrar sessão",
+ "back_button_tap_again_to_exit": "Por favor, toque em VOLTAR novamente para sair",
"fragment_tx_detail_mining_fee_with_symbol": "+ %1$s Taxa",
"fragment_tx_detail_mining_fee_with_denom": "+ %1$f %2$s taxa",
"confirm_password_text": "Confirme a senha",
@@ -618,7 +620,7 @@
"otp_keep": "Manter 2FA",
"word_to_in_convert_from_to_string": "para",
"legacy_address_modal_title": "Endereço Legacy Detectado",
- "legacy_address_modal_warning": "You have scanned a legacy format address that may not be for the intended currency as it is indistinguishable from other currency addresses.\n\nSending to this address MAY result in a LOSS of funds!\n\nDo you want to continue?",
+ "legacy_address_modal_warning": "Você escaneou um endereço em formato legacia que pode não ser para a moeda pretendida, pois é indistinguível de outros endereços de moedas diferentes.\n\nEnviar para este endereço PODE resultar na PERDA de fundos!\n\nDeseja continuar?",
"legacy_address_modal_continue": "Continuar",
"password_reminder_remember_your_password": "Você se lembra da sua senha?",
"password_reminder_you_will_need_your_password": "Você precisará da sua senha caso seu dispositivo seja perdido ou roubado, ou se você desinstalar o aplicativo.",
@@ -638,7 +640,7 @@
"buy_parent_crypto_modal_message_2s": "%1$s%2$s é necessário para enviar esta transação. Gostaria de comprar %2$s ou trocar outra criptomoeda por %2$s?",
"buy_crypto_decline": "Agora não",
"buy_crypto_modal_buy_action": "Comprar %s",
- "buy_crypto_modal_exchange": "Cambiar",
+ "buy_crypto_modal_exchange": "Exchange",
"exchange_crypto_modal_message": "A sua carteira %s está vazia. Gostaria de trocar outra criptomoeda por %s?",
"private_key_modal_sweep_from_private_address": "Resgatar Fundos da Chave Privada",
"private_key_modal_sweep_from_private_key_message": "Este processo precisa de uma transação on-chain da carteira original para %1$s. As taxas de mineração são aplicadas e dependem do status da rede.",
@@ -652,12 +654,12 @@
"unique_identifier_memo": "Memo",
"unique_identifier_memo_id": "ID de memo",
"unique_identifier_destination_tag": "Tag de Destino",
- "unique_identifier_note": "Observação",
- "unique_identifier_dropdown_option_memo": "Acrescentar Memo",
+ "unique_identifier_note": "Nota",
+ "unique_identifier_dropdown_option_memo": "Adicionar nota",
"unique_identifier_dropdown_option_memo_id": "Adicione ID de Memo",
"unique_identifier_dropdown_option_destination_tag": "Adicionar Tag de Destino",
- "unique_identifier_dropdown_option_note": "Adicionar observação",
- "unique_identifier_modal_description": "Por favor, introduza o valor de %s a ser enviado para o recipiente desta transação",
+ "unique_identifier_dropdown_option_note": "Adicionar Nota",
+ "unique_identifier_modal_description": "Por favor, digite o valor de %s a ser enviado para destinatário desta transação",
"unique_identifier_modal_confirm": "Confirmar",
"cannot_delete_last_wallet_modal_title": "Não é Possível Arquivar a Carteira",
"cannot_delete_last_wallet_modal_message_part_1": "Pelo menos uma carteira é necessária nesta conta.",
@@ -671,13 +673,13 @@
"pin": "PIN",
"spending_limits_enter_pin": "Digite o PIN",
"hang_tight": "Aguente firme",
- "trying_to_find": "Nós estamos encontrando fornecedores de\ntroca disponível para você...",
+ "trying_to_find": "Procurando a melhor taxa de câmbio...",
"mining_fee": "Taxa máxima de rede",
"scan_camera_missing_qrcode": "Nenhum QR code detectado nas imagens fornecidas.",
- "scan_camera_permission_denied": "Para escanear um código QR, por favor habilite o acesso à câmera nas Configurações",
+ "scan_camera_permission_denied": "Para escanear um QR Ode, por favor habilite o acesso à câmera nas Configurações",
"scan_camera_no_matching_wallet": "Você não tem carteiras correspondentes para lidar com este link",
- "open_settings": "Configurações Abertas",
- "ss_geolock": "Localização restringida. É impossível efectuar a negociação.",
+ "open_settings": "Abrir configurações",
+ "ss_geolock": "Localização restrita. Não é possível concluir a troca.",
"ss_unable": "Nenhuma Exchange habilitada suporta %1$s para %2$s.",
"account": "Conta",
"forget_account_title": "Esquecer a conta",
@@ -688,86 +690,86 @@
"swap_terms_reject_button": "Rejeitar",
"swap_terms_kyc_link": "AML/KYC",
"swap_terms_privacy_link": "Política de Privacidade",
- "swap_terms_terms_link": "Termos de Utilização",
- "swap_terms_statement": "This exchange may require you to verify your identity to complete this trade. Please review the terms below and tap Accept to continue or Reject to stop receiving quotes from this exchange.",
- "alert_deep_link_no_wallet": "Não há carteiras que suportem %1$s. Pode criar uma carteira para %2$s tocando em + no ecrã da Lista de Carteiras.",
+ "swap_terms_terms_link": "Termos de Uso",
+ "swap_terms_statement": "Essa exchange pode exigir que você verifique a sua identidade para concluir essa negociação. Por favor, reveja os termos abaixo e toque em Aceitar para continuar ou em Rejeitar para parar de receber cotações dessa exchange.",
+ "alert_deep_link_no_wallet": "Não existem carteiras que suportem %1$s. Você pode criar uma carteira para %2$s tocando no símbolo de adição (+) na tela da Lista de Carteiras.",
"alert_deep_link_no_wallet_for_uri": "Não existem carteiras que suportem este link.",
"load_plugin": "Carregar Plugin",
"plugin_url": "URL do Plugin",
- "create_wallet_failed": "A criação da carteira falhou",
+ "create_wallet_failed": "Falha ao criar a carteira",
"choose_your_wallet": "Escolha a Sua Carteira",
- "error_creating_wallets": "Network timeout occurred trying to create and backup wallets. Please check your network connection and restart app to retry wallet creation.",
- "edge_login_failed": "Falha ao iniciar sessão",
- "edge_login_fail_stale_qr": "The scanned QR code was invalid. \n\nPlease generate a new QR code on the device you intend to log in to and try again.",
- "edge_login_fail_message": "Não foi possível ligar à rede. Por favor, verifique a sua ligação e tente novamente.",
- "edge_login_fetching": "A obter informação de início de sessão...",
- "modal_addressexplorer_message": "Mostrar Endereço no Explorador de Blocos?",
+ "error_creating_wallets": "O tempo limite da rede ocorreu ao tentar criar e fazer backup das carteiras. Por favor, verifique a sua conexão de rede e reinicie o aplicativo para tentar novamente a criação da carteira.",
+ "edge_login_failed": "Falha ao fazer login",
+ "edge_login_fail_stale_qr": "O QR code escaneado era inválido.\n\nPor favor, gere um novo QR code no dispositivo em que pretende fazer o login e tente novamente.",
+ "edge_login_fail_message": "Não foi possível conectar à rede. Por favor, verifique a sua conexão de rede e tente novamente.",
+ "edge_login_fetching": "Buscando informações de login da Edge...",
+ "modal_addressexplorer_message": "Mostrar Endereço no Block Explorer?",
"can_be_partial_quote_title": "Cotação Parcial",
"can_be_partial_quote_message": "Esta cotação pode ser parcialmente cumprida.",
- "can_be_partial_quote_with_max_body": "This swap will create an order to exchange funds at the quoted rate but might only fulfill a portion of your order.\n\nThe order will stay open for %s minutes after which funds that have not been swapped will remain in your source wallet or be returned.",
- "can_be_partial_quote_body": "This swap will create an order to exchange funds at the quoted rate but might only fulfill a portion of your order.\n\nFunds that fail to swap will remain in your source wallet or be returned.",
+ "can_be_partial_quote_with_max_body": "Esse swap criará um pedido para trocar fundos na taxa cotada, mas talvez só cumpra uma parte do seu pedido.\n\nO pedido permanecerá aberto por %s minutos, após isso os fundos que não foram trocados permanecerão na sua carteira de origem ou serão devolvidos.",
+ "can_be_partial_quote_body": "Esse swap criará um pedido para trocar fundos na taxa cotada, mas pode ser que apenas uma parte do seu pedido seja executada.\n\nOs fundos que não forem trocados permanecerão na sua carteira de origem ou serão devolvidos.",
"fixed_quote": "Cotação Fixa",
"estimated_quote": "Cotação Estimada",
"estimated_exchange_rate": "Taxa de Câmbio Estimada",
- "estimated_exchange_rate_body": "No exchange providers are able to provide a fixed quote for the exchange requested. This exchange may result in less funds received than quoted.",
- "estimated_exchange_message": "The amount above is an estimate. This exchange may result in less funds received than quoted.",
+ "estimated_exchange_rate_body": "Nenhuma exchange é capaz de fornecer uma cotação fixa para a troca solicitada. Essa troca pode resultar em receber menos fundos do que o cotado.",
+ "estimated_exchange_message": "O valor acima é uma estimativa. Essa troca pode resultar em receber menos fundos do que o indicado.",
"buy_sell_crypto_select_country_button": "Escolha a sua região",
"search_region": "Pesquisar região",
"buy_sell_crypto_no_plugin_region": "Lamentamos, mas não há plugins disponíveis para a sua região.",
- "user_closed_modal_no_wallet": "User closed modal. No wallet was selected",
+ "user_closed_modal_no_wallet": "User closed modal. Nenhuma carteira foi selecionada",
"plugin_powered_by_space": "Distribuído por ",
- "tap_to_change_provider": "Toque para Mudar de Provedor",
+ "tap_to_change_provider": "Toque para alterar o provedor",
"send_from_wallet": "Enviar de %s",
- "send_to_wallet": "Receive to %s",
- "exchange_from_wallet": "Cambiar de %s",
- "exchange_to_wallet": "Cambiar para %s",
- "exchange_slow": "Localizar uma troca está demorando mais do que o normal.\nPor favor, aguarde...",
+ "send_to_wallet": "Receber em %s",
+ "exchange_from_wallet": "Troca de %s",
+ "exchange_to_wallet": "Trocar por %s",
+ "exchange_slow": "Localizar um swap está demorando mais do que o normal.\nPor favor, aguarde...",
"wallet_list_modal_header_mru": "Carteiras Mais Recentes",
"wallet_list_modal_header_all": "Todas as Carteiras",
"wallet_list_modal_creating_wallet": "Criando Carteira. Por favor, aguarde",
"wallet_list_modal_enabling_token": "Ativando token. Por favor, aguarde",
- "wallet_list_modal_confirm_s_bank_withdrawal": "Borrowing funds for deposit directly into a bank account requires a linked bank account with an %1$s exchange partner. Tap Continue to proceed to link a bank account. (For US users only)",
- "fio_address_first_screen_title": "Send and Receive with an easy to remember FIO Crypto Handle!",
- "fio_address_features": "• Funciona com todos os tokens e moedas\n• Protegido pela sua carteira\n• Totalmente descentralizado",
- "fio_address_first_screen_end": "Similar to website names, your FIO Crypto Handle can be used to send you tokens/coins without ever having to see or send your public key.",
- "fio_domain_reg_text": "Note that you need to use FIO to register a Crypto Handle on a custom domain.",
- "fio_domain_reg_descr": "FIO Crypto Handle consist of a username and a domain. If you purchase your custom domain, only you will able to register FIO Crypto Handle on it. FIO Crypto Handle registrations will have to be paid for with FIO tokens from the same wallet which owns the domain.",
- "fio_address_reg_free": "Register Free FIO Crypto Handle",
- "fio_domain_label": "FIO Domain",
- "fio_domain_free": "Free",
- "fio_address_payment_required_text": "This payment is required by the FIO Protocol and not a requirement of %1$s. Each FIO Crypto Handle includes a number of free actions, such as payment requests, where the mining fee is waived. Select a wallet to pay from:",
- "fio_domain_wallet_selection_text": "FIO Domains require an annual fee. This payment is required by the FIO Protocol and not a requirement of %1$s. The current annual cost is equivalent to %2$s FIO, but may fluctuate in the future. Select a wallet to pay from:",
+ "wallet_list_modal_confirm_s_bank_withdrawal": "Fazer empréstimo de fundos para depositar diretamente em uma conta bancária requer uma conta bancária vinculada com uma exchange parceira %1$s. Toque em Continuar para prosseguir e vincular uma conta bancária. (Apenas para usuários dos EUA)",
+ "fio_address_first_screen_title": "Envie e receba com um FIO Crypto Handle fácil de lembrar!",
+ "fio_address_features": "• Funciona com todos os tokens e moedas\n• Protegido da sua carteira\n• Completamente descentralizado",
+ "fio_address_first_screen_end": "Similar aos nomes de sites, o seu FIO Crypto Handle pode ser usado para enviar tokens/moedas sem precisar ver ou enviar a sua public key.",
+ "fio_domain_reg_text": "Observe que você precisa usar o FIO para registrar um Crypto Handle em um domínio personalizado.",
+ "fio_domain_reg_descr": "O FIO Crypto Handle consiste em um nome de usuário e um domínio. Se você adquirir o seu domínio personalizado, apenas você poderá registrar um FIO Crypto Handle nele. As inscrições de FIO Crypto Handle deverão ser pagas com tokens FIO da mesma carteira que possui o domínio.",
+ "fio_address_reg_free": "Registrar um FIO Crypto Handle gratuitamente",
+ "fio_domain_label": "Domínio FIO",
+ "fio_domain_free": "Gratuito",
+ "fio_address_payment_required_text": "Este pagamento é exigido pelo Protocolo FIO e não é um requisito do %1$s. Cada FIO Crypto Handle inclui um número de ações gratuitas, como solicitações de pagamento, onde a taxa de mineração é dispensada. Selecione uma carteira para pagar:",
+ "fio_domain_wallet_selection_text": "Os Domínios FIO requerem uma taxa anual. Esse pagamento é exigido pelo Protocolo FIO e não é um requisito do %1$s. O custo anual atual é equivalente a %2$s FIO, mas pode variar no futuro. Selecione uma carteira para efetuar o pagamento:",
"fio_address_list": "Lista de Endereços FIO",
"fio_address_register_form_field_label": "FIO Crypto Handle",
- "fio_address_register_placeholder": "Your Crypto Handle name here",
+ "fio_address_register_placeholder": "O nome do seu Crypto Handle aqui",
"fio_address_register_screen_not_available": "Indisponível",
- "fio_address_register_domain_is_not_public": "Domain is not public",
- "fio_address_register_screen_cant_check": "Sem ligação à Internet, não é possível verificar",
+ "fio_address_register_domain_is_not_public": "O domínio não é público",
+ "fio_address_register_screen_cant_check": "Sem conexão com a internet, não é possível verificar",
"fio_address_register_default_fio_wallet_name": "Carteira FIO",
- "fio_address_register_no_wallet_name": "Sem nome de carteira",
- "fio_address_register_pending": "Your %s will be registered as soon as payment is received. Tap FIO Names in few minutes.",
- "fio_address_register_pending_free": "Your free FIO Address will be registered in a few seconds. Tap FIO Names to see your address.",
- "fio_address_register_metadata_name": "FIO Registration",
- "fio_address_register_pay_title": "You have already registered a free address for that domain.",
- "fio_address_register_pay": "Payment required to register this address.",
+ "fio_address_register_no_wallet_name": "Sem nome da carteira",
+ "fio_address_register_pending": "Seu %s será registrado assim que o pagamento for recebido. Toque em Nomes FIO em alguns minutos.",
+ "fio_address_register_pending_free": "Seu endereço FIO gratuito será registrado em alguns segundos. Toque em Nomes FIO para ver o seu endereço.",
+ "fio_address_register_metadata_name": "Registro FIO",
+ "fio_address_register_pay_title": "Você já registrou um endereço gratuito para esse domínio.",
+ "fio_address_register_pay": "Pagamento necessário para registrar este endereço.",
"fio_address_confirm_screen_label": "Endereço FIO",
"fio_address_confirm_screen_free_label": "Gratuito",
"fio_address_confirm_screen_fio_label": "FIO",
- "fio_address_confirm_screen_balance_label": "Available FIO Balance",
+ "fio_address_confirm_screen_balance_label": "Saldo FIO disponível",
"fio_address_confirm_screen_disabled_slider_label": "FIO insuficiente",
"fio_address_details_screen_alert_title": "Endereço FIO Criado",
"fio_address_details_screen_alert_message": "O seu endereço FIO foi registado e está pronto para ser usado.",
"fio_address_details_screen_alert_button": "Ver detalhes",
- "fio_address_details_screen_registered": "Registado",
- "fio_address_details_screen_expires": "Expira a",
+ "fio_address_details_screen_registered": "Registrado",
+ "fio_address_details_screen_expires": "Expira",
"fio_address_details_screen_bundled_txs": "Transações agrupadas restantes",
- "fio_address_details_screen_manage_account_settings": "Crypto Handle Settings",
+ "fio_address_details_screen_manage_account_settings": "Configurações do Crypto Handle",
"fio_address_details_bundled_txs_out_soon": "Você gastou quase todas as transações agrupadas do seu endereço FIO. Gostaria de comprar mais transações agrupadas?",
"fio_address_details_no_bundled_txs": "O seu endereço FIO não possui transações agrupadas. Gostaria de comprar mais transações agrupadas?",
- "fio_address_details_connect_to_wallets": "Choose wallets to connect to your FIO Crypto Handle",
- "fio_address_list_screen_button_register": "Register New FIO Crypto Handle",
- "fio_address_list_domain_register": "Register Custom FIO Domain",
- "fio_address_list_register_domain": "Register New Domain",
+ "fio_address_details_connect_to_wallets": "Escolha as carteiras para conectar ao seu FIO Crypto Handle",
+ "fio_address_list_screen_button_register": "Registrar Novo FIO Crypto Handle",
+ "fio_address_list_domain_register": "Registrar Domínio FIO Personalizado",
+ "fio_address_list_register_domain": "Registrar Novo Domínio",
"fio_get_fee_err_msg": "Houve um problema ao obter a taxa FIO. Por favor, tente novamente mais tarde.",
"fio_get_reg_info_err_msg": "Houve um problema ao obter as informações de registro.",
"fio_get_reg_info_domain_err_msg": "O Domínio não existe",
@@ -779,96 +781,96 @@
"fio_action_fee_label": "Taxa de operação",
"fio_domain_is_public_label": "Seu Domínio FIO está público agora",
"fio_domain_is_private_label": "Seu Domínio FIO está privado agora",
- "fio_domain_details_expired_soon": "Your FIO Domain is about to expire.\nWould you like to renew it?",
+ "fio_domain_details_expired_soon": "Seu Domínio FIO está prestes a expirar.\n Gostaria de renová-lo?",
"fio_domain_set_visibility_err": "Ocorreu um problema ao alterar a visibilidade do seu domínio. Por favor, tente novamente mais tarde.",
- "transfer_fio_address_exception": "FIO Addresses with existing FIO Requests or FIO memos can not be transferred now.",
- "fio_no_bundled_err_msg": "Your FIO Address ran out of bundled transactions.",
- "fio_no_bundled_non_fio_err_msg": "Se você continuar, os metadados desta transação não serão registrados.",
- "fio_no_bundled_add_err_msg": "Please add bundled transactions to your FIO Address to continue.",
- "fio_fee_exceeds_supplied_maximum_record_obt_data": "Falha ao gravar OBT data.",
- "fio_no_requests_label": "Nenhum pedido",
- "fio_reject_request_title": "FIO Request",
+ "transfer_fio_address_exception": "Endereços FIO com solicitações FIO existentes ou memos FIO não podem ser transferidos agora.",
+ "fio_no_bundled_err_msg": "Seu Endereço FIO esgotou as transações agrupadas.",
+ "fio_no_bundled_non_fio_err_msg": "Se você continuar, os metadados para essa transação não serão gravados.",
+ "fio_no_bundled_add_err_msg": "Por favor, adicione transações agrupadas ao seu endereço FIO para continuar.",
+ "fio_fee_exceeds_supplied_maximum_record_obt_data": "Falha ao gravar dados OBT.",
+ "fio_no_requests_label": "Sem solicitações",
+ "fio_reject_request_title": "Solicitação FIO",
"fio_reject_request_message": "Rejeitar Pedido?",
"fio_reject_status": "Rejeitado",
"fio_cancel_status": "Cancelado",
"fio_date_label": "Data",
- "send_fio_request_error_addr_not_exist": "The provided FIO address does not exist",
- "send_fio_request_error_memo_inline": "Memo must be less than 64 characters",
- "send_fio_request_error_memo_invalid_character": "Invalid character in memo",
- "fio_request_by_fio_address_error_no_address": "Before you can request funds using FIO, you must first register your own FIO Address. See side menu.",
+ "send_fio_request_error_addr_not_exist": "O endereço FIO fornecido não existe",
+ "send_fio_request_error_memo_inline": "O memorando deve ter menos de 64 caracteres",
+ "send_fio_request_error_memo_invalid_character": "Caracter inválido no memorando",
+ "fio_request_by_fio_address_error_no_address": "Antes de poder solicitar fundos usando FIO, você deve primeiro registrar seu próprio Endereço FIO. Consulte o menu lateral.",
"fio_request_amount": "Valor:",
"fio_request_by_fio_address_error_invalid_amount_header": "Quantia Inválida",
- "fio_request_by_fio_address_error_invalid_amount": "Please enter an amount before requesting with FIO",
+ "fio_request_by_fio_address_error_invalid_amount": "Por favor, insira um valor antes de fazer uma solicitação com FIO",
"fio_request_error_header": "Falha na solicitação",
"fio_request_ok_body": "A sua solicitação foi enviada com sucesso",
- "fio_request_add_bundled_txs_ok_text": "Bundled transactions have been successfully purchased",
- "fio_request_renew_domain_ok_text": "Your domain has been successfully renewed",
- "fio_request_sent_details_to": "Pedido enviado para",
- "fio_request_sent_details_from": "Pedido enviado de",
- "fio_request_unknown_chain_code": "Unknown chain code: %s",
- "fio_get_requests_error": "There was an issue fetching requests",
+ "fio_request_add_bundled_txs_ok_text": "As transações agrupadas foram compradas com sucesso",
+ "fio_request_renew_domain_ok_text": "O seu domínio foi renovado com sucesso",
+ "fio_request_sent_details_to": "Solicitação enviada para",
+ "fio_request_sent_details_from": "Solicitação enviada de",
+ "fio_request_unknown_chain_code": "Chain code desconhecido: %s",
+ "fio_get_requests_error": "Houve um problema ao buscar as solicitações",
"fio_confirm_request_error": "Ocorreu um problema durante o envio da solicitação",
- "fio_reject_request_error": "There was an issue during request rejection",
- "fio_confirm_request_header": "Send FIO Request",
- "fio_confirm_request_from": "Send Request From",
- "fio_confirm_request_to": "Send Request To",
- "fio_confirm_request_fio_title": "Choose FIO Crypto Handle",
- "fio_confirm_request_amount": "Amount",
+ "fio_reject_request_error": "Houve um problema durante a rejeição da solicitação",
+ "fio_confirm_request_header": "Enviar solicitação FIO",
+ "fio_confirm_request_from": "Enviar solicitação de",
+ "fio_confirm_request_to": "Enviar solicitação para",
+ "fio_confirm_request_fio_title": "Escolha um FIO Crypto Handle",
+ "fio_confirm_request_amount": "Valor",
"fio_confirm_request_memo": "Memo",
- "fio_confirm_request_input_title_memo": "Enter Request Memo",
- "fio_confirm_request_error_from_same": "Select a FIO address that is different from your \"Send Request To\" address",
- "fio_confirm_request_error_to_same": "Select a FIO address that is different from your \"Send Request From\" address",
+ "fio_confirm_request_input_title_memo": "Inserir Memo de Solicitação",
+ "fio_confirm_request_error_from_same": "Selecione um endereço FIO que seja diferente do seu endereço de \"Enviar solicitação para\"",
+ "fio_confirm_request_error_to_same": "Selecione um endereço FIO que seja diferente do seu endereço de \"Enviar solicitação de\"",
"fio_cancel_request_message": "Deseja cancelar a solicitação de fio?",
- "fio_cancel_request_error": "Cancel Request Failed",
- "err_token_not_in_wallet_title": "No %s Wallet",
- "err_token_not_in_wallet_msg": "A sua conta não tem carteira %s para pagar esta solicitação",
- "err_no_address_title": "No FIO Address found.",
+ "fio_cancel_request_error": "Falha ao cancelar solicitação",
+ "err_token_not_in_wallet_title": "Sem Carteira %s",
+ "err_token_not_in_wallet_msg": "A sua conta não possui uma carteira %s para pagar esta solicitação",
+ "err_no_address_title": "Nenhum endereço FIO encontrado.",
"err_address_not_linked_title": "O endereço do destinatário não tem uma carteira %s vinculada",
"fio_connect_no_wallets": "Não há carteiras",
"fio_connect_checkbox_text": "Eu reconheço que um endereço de cada carteira se tornará público. Esses endereços permanecerão públicos mesmo depois que as carteiras forem desconectadas.",
"fio_connect_wallets_err": "Ocorreu um problema durante a execução da operação. Por favor, tente mais tarde.",
- "fio_wallet_missing_for_fio_address": "Sys error. Cannot find FIO Wallet for FIO Address",
- "fio_wallet_missing_for_fio_domain": "Sys error. Cannot find FIO Wallet for FIO Domain",
- "fio_wallet_missing_for_fio_request": "Sys error. Cannot find FIO Wallet for FIO Request",
+ "fio_wallet_missing_for_fio_address": "Erro do sistema. Não foi possível encontrar a Carteira FIO para o Endereço FIO",
+ "fio_wallet_missing_for_fio_domain": "Erro do sistema. Não foi possível encontrar a Carteira FIO para o Domínio FIO",
+ "fio_wallet_missing_for_fio_request": "Erro do sistema. Não foi possível encontrar a Carteira FIO para a Solicitação FIO",
"fio_connect_wallets_success": "Carteiras conectadas. Seu endereço FIO agora está conectado às suas carteiras e pronto para uso.",
"fio_disconnect_wallets_success": "Carteiras desconectadas.",
"fio_select_address": "Selecione o Endereço FIO",
- "fio_select_address_no_wallet_err": "There is no FIO wallet found for selected fio address",
+ "fio_select_address_no_wallet_err": "Nenhuma carteira FIO foi encontrada para o endereço FIO selecionado",
"fio_sender_memo_label": "FIO Memo",
"fio_sender_memo_placeholder": "Sua Mensagem.",
"fio_address_to_transfer": "Endereço para transferência",
- "fio_domain_to_transfer": "Domain to Transfer",
+ "fio_domain_to_transfer": "Domínio para Transferir",
"fio_domain_transferred": "Transferido com sucesso",
- "fio_free_handle_complete": "Successfully created your FIO handle",
+ "fio_free_handle_complete": "Seu FIO handle foi criado com sucesso",
"fio_free_handle_congrats": "Parabéns por criar a sua conta Edge!",
- "fio_free_handle_title_m": "Get a *FIO* Handle",
- "fio_free_handle_title": "Get a FIO Handle",
- "fio_free_handle_message": "Dê à sua carteira um identificador de fácil leitura para simplificar o envio/recebimento de transações.",
- "fio_free_handle_please_wait": "Aguarde a conclusão da criação da carteira...",
- "fio_register_handle_button": "Register Handle",
- "fio_register_handle_error": "There was an issue registering your handle. Please try again later.",
- "fio_register_handle_taken_error_s": "The handle %1$s has already been taken.",
+ "fio_free_handle_title_m": "Obtenha um *FIO* Handle",
+ "fio_free_handle_title": "Obtenha um FIO Handle",
+ "fio_free_handle_message": "Dê à sua carteira um handle de fácil leitura para simplificar o envio/recebimento de transações.",
+ "fio_free_handle_please_wait": "Por favor, aguarde a conclusão da criação da carteira...",
+ "fio_register_handle_button": "Registrar Handle",
+ "fio_register_handle_error": "Houve um problema ao registrar o seu handle. Por favor, tente novamente mais tarde.",
+ "fio_register_handle_taken_error_s": "O handle %1$s já está em uso.",
"personalize_wallet_title": "Personalize Sua Carteira",
"get_started_button": "Começar",
"not_now_button": "Agora não",
- "scan_address_modal_title": "Enter Recipient FIO, ENS, or Public Address",
+ "scan_address_modal_title": "Digite o destinatário FIO, ENS ou Endereço Público",
"enter_any_title": "Digite qualquer um dos seguintes:",
- "enter_any_body": "1. Endereço público para enviar dinheiro\n2. Chave privada para varrer\n3. Wallet Connect URI para se conectar a um dApp\n4. Edge Login URI para fazer login em outro dispositivo\n\nA Edge detectará automaticamente o formato URI e permitirá que você selecione uma carteira apropriada",
+ "enter_any_body": "1. Public address para enviar dinheiro\n2. Private key para varrer\n3. Wallet Connect URI para se conectar a um dApp\n4. Edge Login URI para fazer login em outro dispositivo\n\nA Edge detectará automaticamente o formato URI e permitirá que você selecione uma carteira apropriada",
"enter_any_input_hint": "Digite qualquer um dos itens acima",
"address_modal_default_header": "Insira o endereço",
- "open_url_err": "Can not open this url - %s",
- "resolving": "A resolver...",
- "UnregisteredDomain": "O domínio %1$s não está registado",
+ "open_url_err": "Não é possível abrir esta url - %s",
+ "resolving": "Resolvendo...",
+ "UnregisteredDomain": "O domínio %1$s não está registrado",
"UnspecifiedResolver": "O domínio %1$s não está configurado",
"UnsupportedDomain": "O domínio %1$s não é suportado",
- "UnspecifiedCurrency": "O domínio %1$s não tem um endereço %2$s associado",
- "NamingServiceDown": "O DNS %3$s encontra-se momentaneamente fora de serviço",
+ "UnspecifiedCurrency": "O domínio %1$s não tem um endereço %2$s associado a ele",
+ "NamingServiceDown": "%3$s O serviço de nomeação está indisponível no momento",
"UnsupportedCurrency": "%2$s não é suportado para %1%s",
- "IncorrectResolverInterface": "Unable to resolve domain %1$s",
- "RecordNotFound": "Não foi encontrado nenhum registo %2%s para %1$s",
- "invalid_character_error": "Invalid input characters",
+ "IncorrectResolverInterface": "Não foi possível resolver o domínio %1$s",
+ "RecordNotFound": "Nenhum registro %2%s encontrado para %1$s",
+ "invalid_character_error": "Caracteres de entrada inválido",
"update_header": "Atualização disponível",
- "update_fresh_new_version": "Uma nova versão do %1$s já está disponível. Atualize para obter os nossos novos recursos e correções.",
+ "update_fresh_new_version": "Uma nova versão do %1$s já está disponível. Por Favor, atualize para obter os nossos novos recursos e correções.",
"update_now": "Atualizar Agora",
"update_later": "Eu vou fazer isso mais tarde",
"price_alert": "Alerta de preço",
@@ -879,7 +881,7 @@
"price_change_notification": "Notificação de preço",
"price_change_buy_sell_trade": "Gostaria de comprar, vender ou trocar %1$s?",
"update_notice_deprecate_electrum_servers_title": "Atualização do Blockbook",
- "update_notice_deprecate_electrum_servers_message": "%s no longer uses Electrum Servers. If you would like to continue to use CUSTOM NODES, please input Blockbook compatible addresses.\n\nNOTE: If you had custom nodes enabled, those wallets will not sync until corrected.",
+ "update_notice_deprecate_electrum_servers_message": "%s não utiliza mais Servidores Electrum. Se você deseja continuar usando NODES PERSONALIZADOS, por favor insira endereços compatíveis com o Blockbook.\n\nNOTA: Se você tinha NODES PERSONALIZADOS habilitados, essas carteiras não serão sincronizadas até que sejam corrigidas.",
"error_boundary_title": "Oops!",
"error_boundary_message_s": "Lamentamos, mas algo deu errado. Force o fechamento do aplicativo e reabra-o para continuar usando o Edge.\n\nSe o problema persistir, entre em contato conosco em %1$s e faremos o possível para resolver o problema.\n\nNOTA: Não desinstale o aplicativo antes de entrar em contato com o Edge.",
"error_unexpected_title": "Erro Inesperado",
@@ -891,11 +893,15 @@
"string_end": "Fim",
"export_transaction_quickbooks_qbo": "Quickbooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Exportar",
"string_status": "Status",
"string_fee": "Taxa",
"string_total_amount": "Valor Total",
- "string_expiration": "Vencimento",
+ "string_expiration": "Expiração",
"export_transaction_error": "A data de início deve ser anterior à data de término",
"export_transaction_export_error": "Não há transações no intervalo de datas escolhido",
"string_allow": "Permitir",
@@ -904,36 +910,36 @@
"string_max_cap": "MAX",
"string_warning": "Aviso",
"step": "Passo",
- "scan_as_in_scan_barcode": "Scan",
+ "scan_as_in_scan_barcode": "Escanear",
"enter_as_in_enter_address_with_keyboard": "Insira",
"delete_account_title": "Excluir Conta",
"delete_account_body": "Excluir sua conta %1$s tornará inacessíveis quaisquer fundos em suas carteiras. Quaisquer fundos futuros que essas carteiras possam receber também estarão inacessíveis.\n\nAs contas criadas com %1$s parceiros de compra/venda permanecerão ativas. Você precisará solicitar a exclusão de tais contas diretamente com os parceiros apropriados.\n\nSe esta conta estiver conectada a qualquer outro dispositivo, as chaves privadas e as informações desses dispositivos permanecerão acessíveis até que o aplicativo seja excluído desses dispositivos.\n\nA exclusão desta conta tornará o nome de usuário disponível para novas contas.\n\nSe você tiver alguma dúvida ou preocupação, entre em contato conosco em %2$s antes de excluir sua conta.",
"delete_account_verification_body": "Para excluir a sua conta, por favor, digite o seu nome de usuário %1$s",
"delete_account_verification_error": "O nome de usuário não corresponde",
- "delete_account_feedback": "Conta %s deletada",
+ "delete_account_feedback": "Conta %s excluída",
"contacts_permission_modal_title": "Acesso aos contatos",
- "contacts_permission_modal_body_1": "%1$s gostaria de acessar os seus contatos para facilitar a identificação das suas transações com pessoas da sua lista de endereços.",
+ "contacts_permission_modal_body_1": "%1$s gostaria de acessar os seus contatos para facilitar a marcação das suas transações com pessoas da sua lista de endereços.",
"contacts_permission_modal_body_2": "Nenhuma informação de contato é compartilhada com %1$s ou qualquer outra entidade. Todas as informações são criptografadas e vistas apenas por VOCÊ.",
"contacts_permission_modal_body_3": "Se você negar o acesso, %1$s ainda poderá funcionar para comprar, vender, negociar e transacionar criptomoedas.",
- "contacts_permission_modal_enable_settings": "Para usar %1$s, habilite a sua permissão %2$s.",
+ "contacts_permission_modal_enable_settings": "Para usar %1$s, por favor, habilite a sua permissão %2$s.",
"contacts_permission_modal_enable_settings_mandatory": "Para usar %1$s, por favor habilite a sua permissão %2$s.",
- "migrate_wallets_select_crypto_title": "Escolha os ativos para migrar",
- "migrate_wallets_calculate_fee_title": "Confirmar migração",
- "migrate_wallets_title": "Migrar carteiras",
- "migrate_wallet_instructions_fragment": "A migração de ativos para uma nova carteira incorre em uma taxa de rede para cada ativo transferido. Se você não tiver fundos suficientes, poderá retornar e desmarcar os tokens ou tocar na linha para obter mais opções.",
+ "migrate_wallets_select_crypto_title": "Escolha os Ativos para Migrar",
+ "migrate_wallets_calculate_fee_title": "Confirmar a migração",
+ "migrate_wallets_title": "Migrar Carteiras",
+ "migrate_wallet_instructions_fragment": "Migrar ativos para uma nova carteira incorre em uma taxa de rede para cada ativo transferido. Se você não tem fundos suficientes, você pode retornar e desmarcar tokens ou tocar na linha para mais opções.",
"migrate_wallet_old_fragment": " (antigo)",
"migrate_wallet_new_fragment": " (novo)",
"migrate_unknown_error_fragment": "Erro desconhecido",
- "migrate_wallets_modal_message": "As seguintes carteiras foram potencialmente afetadas por um recente incidente de segurança:\n%1$s\nÉ altamente recomendável que interrompa o uso dessas carteiras e migre os ativos para uma nova carteira na sua conta. Gostaria de usar o recurso automatizado Migrate Wallets para fazer isso?",
+ "migrate_wallets_modal_message": "As seguintes carteiras foram identificadas como potencialmente afetadas por um incidente de segurança recente:\n%1$s\nÉ altamente recomendável que interrompa o uso dessas carteiras e migre os ativos para uma nova carteira na sua conta. Gostaria de usar o recurso automatizado Migrate Wallets para fazer isso?",
"migrate_wallet_tx_notes": "Migrar fundos para %1$s",
- "wallet_list_sort_title": "Classificar Carteiras",
+ "wallet_list_sort_title": "Ordenar Carteiras",
"wallet_list_sort_manual": "Classificação manual",
"wallet_list_sort_name": "Classificar por nome",
- "wallet_list_sort_currencyCode": "Classificar por código de moeda",
- "wallet_list_sort_currencyName": "Classificar por nome da moeda",
- "wallet_list_sort_highest": "Classificar pelo valor mais alto",
+ "wallet_list_sort_currencyCode": "Ordenar por código de moeda",
+ "wallet_list_sort_currencyName": "Ordenar por nome da moeda",
+ "wallet_list_sort_highest": "Ordenar pelo valor mais alto",
"wallet_list_sort_lowest": "Classificar pelo valor mais baixo",
- "select_fio_address_address_from": "Send from FIO Crypto Handle",
+ "select_fio_address_address_from": "Enviar do FIO Crypto Handle",
"select_fio_address_address_memo": "FIO Memo",
"select_fio_address_address_memo_error": "FIO Memo Error",
"loan_action_add_collateral": "Adicionar Garantia",
@@ -951,20 +957,20 @@
"loan_borrow_details_title": "Detalhes do Empréstimo",
"loan_borrow_more": "Pegar Mais emprestado",
"loan_breakdown_title": "Detalhamento do Empréstimo",
- "loan_close_swap_warning": "O fechamento do empréstimo liquidará parte da garantia depositada se você não tiver saldo suficiente para pagar o principal e os juros restantes do seu empréstimo. A garantia restante será depositada de volta em sua carteira.\n\nA liquidação provavelmente incorrerá em um custo de capital mais alto, se o principal restante não for reembolsado.",
+ "loan_close_swap_warning": "Encerrar seu empréstimo liquidará algumas das garantias depositadas se você não tiver saldo suficiente para reembolsar o principal e os juros restantes do seu empréstimo. A garantia restante será depositada de volta para sua carteira.\n\nA Liquidação provavelmente irá incorrer em um custo de capital de higer, se o principal principal restante não for reembolsado.",
"loan_close_loan_no_tx_needed_message": "Parece não haver capital para reembolsar nem garantia para retirar.\n\nNenhuma transação é necessária para fechar a sua conta, no entanto, a conta pode reaparecer após o fechamento se houver transações pendentes na cadeia.",
- "loan_close_loan_title": "Fechar empréstimo",
- "loan_close_multiple_asset_error": "O fechamento de empréstimos com vários ativos de dívida e/ou ativos de garantia depositados não é suportado.\n\nEspecifique as fontes de financiamento para reembolsar os empréstimos usando o Repay.",
- "loan_close_insufficient_funds_4s": "Um %1$s %2$s adicional ou um depósito de %3$s %4$s é necessário para fechar o seu empréstimo.",
+ "loan_close_loan_title": "Encerrar Empréstimo",
+ "loan_close_multiple_asset_error": "O encerramento de empréstimos com vários ativos de dívida e/ou ativos de garantia depositados não é suportado.\n\nEspecifique as fontes de financiamento para reembolsar os empréstimos usando o Repay.",
+ "loan_close_insufficient_funds_4s": "Um %1$s %2$s adicional ou um depósito de %3$s %4$s é necessário para encerrar o seu empréstimo.",
"loan_collateral_amount": "Valor da garantia",
"loan_collateral_destination": "Destino da garantia",
"loan_collateral_required": "Valor de Garantia Necessário",
"loan_collateral_source": "Fonte da garantia",
"loan_collateral_value": "Valor da garantia",
"loan_create_confirmation_title": "Confirmação de Empréstimo",
- "loan_create_title": "Empréstimo Com Aave",
+ "loan_create_title": "Pegar emprestado com Aave",
"loan_current_collateral": "Garantia Atual",
- "loan_current_principal": "Current Principal",
+ "loan_current_principal": "Capital Atual",
"loan_dashboard_title": "Painel de empréstimo",
"loan_debt_destination": "Destino do Empréstimo",
"loan_deposited_collateral_s": "Garantia %1$s depositada",
@@ -974,7 +980,7 @@
"loan_estimate_fee": "Taxa estimada",
"loan_exchange_rate": "Taxa de câmbio",
"loan_failed_loan": "Falha ao carregar os dados do empréstimo",
- "loan_fiat_value": "Valor Fiduciário",
+ "loan_fiat_value": "Valor em Moeda Fiat",
"loan_fragment_deposit": "Depósito",
"loan_fragment_loan": "Empréstimo",
"loan_fragment_repay": "Pagamento",
@@ -986,23 +992,23 @@
"loan_loading_loans": "Carregando Empréstimos...",
"loan_loan_amount_input_message_s": "O empréstimo deve ser inferior a %1$s do valor total da garantia",
"loan_loan_breakdown_title": "Detalhamento do empréstimo",
- "loan_loan_to_value_ratio": "Relação entre empréstimo e valor",
- "loan_make_payment": "Faça o pagamento",
+ "loan_loan_to_value_ratio": "Relação empréstimo/valor",
+ "loan_make_payment": "Realizar Pagamento",
"loan_no_active_loans": "Você não tem empréstimos ativos.\nCrie um empréstimo e comece a ganhar com o AAVE!",
"loan_new_loan": "Novo Empréstimo",
"loan_new_collateral": "Nova garantia",
- "loan_new_principal": "New Principal",
+ "loan_new_principal": "Novo Capital",
"loan_principal_value": "Valor Principal",
- "loan_remaining_principal": "Remaining Principal",
+ "loan_remaining_principal": "Capital Restante",
"loan_apr_s": "APR: %1$s",
"loan_s_apr": "%1$s APR",
- "loan_select_receiving_wallet": "Por Favor, selecione uma carteira recetora",
+ "loan_select_receiving_wallet": "Por favor, selecione uma carteira de recebimento",
"loan_select_source_collateral": "Por favor, selecione uma fonte de garantia",
"loan_withdraw_collateral": "Sacar Garantia",
"loan_notification_ltv_threshold_alert_title": "Alerta de Liquidação de Empréstimo!",
"loan_notification_ltv_threshold_alert_message": "O seu empréstimo está perto da liquidação e requer a sua atenção imediata!",
"loan_aave_fragment": "AAVE",
- "loan_status_cancel_txs": "Cancelar Transação",
+ "loan_status_cancel_txs": "Cancelar transações",
"loan_status_cancel_txs_modal_msg": "O cancelamento de transações interromperá o processo atual, mas não poderá reverter as etapas já realizadas. Se você quiser reverter as ações, essas etapas deverão ser executadas manualmente.\n\nSe você tiver alguma dúvida, entre em contato conosco ou envie um e-mail para %1$s",
"loan_status_title": "Status do Empréstimo",
"loan_status_failed_title": "Falha ao processar ações",
@@ -1016,12 +1022,12 @@
"send_make_spend_xrp_dest_tag_format_error": "Por Favor, Insira uma Tag de destino válida",
"send_add_destination_address": "Adicionar endereço de destino",
"send_scan_modal_text_modal_title_s": "Insira o endereço %1$s",
- "send_scan_modal_text_modal_message_s": "Insira um endereço público de %1$s ou URL de protocolo de pagamento para enviar fundos",
+ "send_scan_modal_text_modal_message_s": "Insira um endereço público %1$s ou URL de protocolo de pagamento para enviar fundos",
"send_scan_modal_text_modal_hint": "Endereço Publico",
"send_address_expire_title": "Tempo de Expiração do Endereço de Pagamento",
"send_address_expired_error_message": "Endereço de pagamento expirado",
"request_balance": "Você tem %s",
- "exchange_generic_error_title": "Exchange Error",
+ "exchange_generic_error_title": "Erro na Troca",
"exchange_insufficient_funds_title": "Fundos Insuficientes",
"exchange_insufficient_funds_message": "O valor inserido mais taxas excede o saldo da carteira.",
"exchange_insufficient_funds_below_balance": "O saldo da carteira está abaixo do valor inserido.",
@@ -1037,104 +1043,104 @@
"wc_confirm_subtitle": "%s deseja conectar a sua carteira.",
"wc_confirm_body_title": "Permitir %s a:",
"wc_confirm_body": "Solicitar aprovação para transações\nVer a sua carteira e atividade de saldo",
- "wc_confirm_select_wallet": "Selecione carteira para se conectar com",
+ "wc_confirm_select_wallet": "Selecione a carteira para conectar com",
"wc_confirm_return_to_browser": "Agora você pode retornar ao navegador",
- "wc_smartcontract_title": "Smart Contract Call",
+ "wc_smartcontract_title": "Chamada Smart Contract",
"wc_smartcontract_warning_title": "Aviso",
"wc_smartcontract_warning_text": "Certifique-se de que este é um aplicativo em que você pode confiar. A execução desta transação dá ao aplicativo acesso aos seus fundos.",
"wc_smartcontract_insufficient_text": "Você não tem %s suficientes para cobrir as taxas de rede.",
"wc_smartcontract_wallet": "Carteira",
"wc_smartcontract_dapp": "DApp",
"wc_smartcontract_network_fee": "Taxa de Rede",
- "wc_smartcontract_max_total": "Max Total",
- "wc_smartcontract_confirmed": "Smart Contract Call confirmed",
+ "wc_smartcontract_max_total": "Total Máximo",
+ "wc_smartcontract_confirmed": "Chamada de Smart Contract Confirmada",
"wc_scan_modal_text_modal_title": "Insira o URI do Wallet Connect",
- "wc_scan_modal_text_modal_hint": "Wallet Connect URI",
+ "wc_scan_modal_text_modal_hint": "URI Wallet Connect",
"token_agreement_modal_title": "%s Necessário para enviar tokens",
- "token_agreement_modal_message": "%1$s é obrigado a pagar as taxas de mineração ao enviar tokens. A carteira %1$s associada deve conter uma quantia suficiente de fundos.\n\nSe você não tiver %1$s, poderá adquiri-lo em %2$s usando a função Comprar ou Trocar.",
- "confirm_continue_modal_body": "Por favor, confirme a sua compreensão abaixo:",
+ "token_agreement_modal_message": "É necessário %1$s para pagar as taxas de mineração ao enviar tokens. A carteira associada a %1$s deve conter uma quantidade suficiente de fundos.\n\nSe você não possui %1$s, pode adquiri-lo em %2$s usando a função Comprar ou Trocar.",
+ "confirm_continue_modal_body": "Por favor, confirme abaixo que você compreendeu:",
"confirm_continue_modal_button_text": "Eu entendo e concordo com os termos",
- "gateway_agreement_modal_title": "Endereço de gateway %s detectado",
+ "gateway_agreement_modal_title": "%s Endereço de Gateway Detectado",
"gateway_agreement_modal_body": "Este endereço é válido apenas por 24 horas e só pode ser usado uma vez.\n\nNão envie fundos depois que o endereço expirar e/ou envie várias transações para este endereço.",
"util_s_and_s": "%1$s e %2$s",
"util_truncate_delimeter": "...",
- "stake_estimated_return": "Retorno estimado: %s",
+ "stake_estimated_return": "Retorno Estimado: %s",
"stake_s_staked": "%s Staked",
"stake_s_earned": "%s Ganhos",
- "stake_lock_message": "locked until %s",
- "stake_select_options": "Select staking options:",
- "stake_stake_more_funds": "Stake More Funds",
+ "stake_lock_message": "bloqueado até %s",
+ "stake_select_options": "Selecione opções de staking:",
+ "stake_stake_more_funds": "Coloque mais fundos em staking",
"stake_claim_rewards": "Reivindicar recompensas",
- "stake_unstake_claim": "Unstake and Claim Rewards",
+ "stake_unstake_claim": "Unstake e Reivindicar Recompensas",
"stake_unstake": "Unstake",
- "stake_x_to_earn_y": "Stake %1$s to earn %2$s",
- "stake_amount_s_stake": "Amount of %s to Stake",
- "stake_amount_claim": "Amount of Reward to Claim",
- "stake_amount_s_unstake": "Amount of %s to Unstake",
- "stake_change_stake_success": "Funds successfully staked",
- "stake_change_unstake_success": "Funds successfully unstaked",
- "stake_change_claim_success": "Claim transactions sent successfully",
- "stake_disabled_slider": "Enter Amount",
- "stake_warning_stake": "Staking funds will block you from claiming rewards for 16 hours and withdrawing your staked funds for 36 hours.\n\nEvery interaction (stake, unstake, claim rewards) will reset both timers.",
- "stake_warning_claim": "Claiming rewards will block you from withdrawing your staked funds for 36 hours.\n\nTo claim rewards AND unstake any staked funds, choose “Claim Rewards and Unstake” instead.",
- "stake_warning_unstake": "Unstaking a partial amount will block you from unstaking more funds for 36 hours.",
- "stake_modal_modify_stake_title": "Stake from %s",
- "stake_modal_modify_unstake_title": "Unstake from %s",
+ "stake_x_to_earn_y": "Stake %1$s para ganhar %2$s",
+ "stake_amount_s_stake": "Quantidade de %s para Stake",
+ "stake_amount_claim": "Quantidade de Recompensa para Reivindicar",
+ "stake_amount_s_unstake": "Quantidade de %s para Unstake",
+ "stake_change_stake_success": "Fundos staked com sucesso",
+ "stake_change_unstake_success": "Fundos unstaked com sucesso",
+ "stake_change_claim_success": "Transações de reivindicação enviadas com sucesso",
+ "stake_disabled_slider": "Insira o Valor",
+ "stake_warning_stake": "Colocar fundos em staking bloqueará você de reivindicar recompensas por 16 horas e de retirar os seus fundos em staking por 36 horas.\n\nCada interação (stake, unstake, reivindicar recompensas) irá reiniciar ambos os cronômetros.",
+ "stake_warning_claim": "Reivindicar recompensas bloqueará você de retirar os seus fundos em staking por 36 horas.\n\nPara reivindicar recompensas E retirar quaisquer fundos em staking, escolha a opção 'Reivindicar Recompensas e Retirar'.",
+ "stake_warning_unstake": "Retirar parcialmente fundos do staking impedirá que você remova mais fundos por 36 horas.",
+ "stake_modal_modify_stake_title": "Stake de %s",
+ "stake_modal_modify_unstake_title": "Unstake de %s",
"stake_error_insufficient_s": "Insuficiente %s",
- "stake_error_stake_below_minimum": "Stake amount below minimum",
- "stake_error_unstake_below_minimum": "Unstake amount below minimum",
+ "stake_error_stake_below_minimum": "Valor do Stake abaixo do mínimo",
+ "stake_error_unstake_below_minimum": "Valor Unstake abaixo do mínimo",
"state_error_pool_full_s": "O pool de ativos %1$s está atualmente cheio. Por favor, tente novamente mais tarde.",
"stake_estimated_staking_fee": "Taxa de Staking Estimada",
- "stake_estimated_unstaking_fee": "Estimated Unstaking Fee",
- "stake_staking_fee_message": "The specified Staking Fee will be deducted from the amount deposited reducing the amount staked.",
- "stake_unstaking_fee_message": "The specified Unstaking Fee will be deducted from the amount withdrawn reducing the amount received.",
- "stake_future_unstaking_fee": "Future Unstake Fee Estimate",
- "stake_future_unstaking_fee_message": "When you unstake these funds, you will incur the estimated unstake fee specified. This amount is only an estimate and is based on the funds currently staked in the pool. The actual fees incurred may be different at the time you unstake.",
- "stake_break_even_time": "Time to Break Even from Fees",
- "stake_break_even_time_message": "Based on the total fees incurred to stake and unstake your requested amount, this is the estimated amount of time you need to keep funds staked to earn enough rewards to pay for the fees incurred. This time frame is only an estimate as is subject to change based on change in rewards APY and the total amount of funds in the staking pool.",
- "stake_break_even_days_s": "%1$s days",
- "stake_break_even_days_months_s": "%1$s days (%2$s months)",
- "stake_earn_button_label": "Earn",
- "stake_unable_to_query_locked": "Unable to query locked balance. Please try again later.",
+ "stake_estimated_unstaking_fee": "Taxa Estimada de Unstaking",
+ "stake_staking_fee_message": "A taxa de staking especificada será deduzida do valor depositado, reduzindo o valor staked.",
+ "stake_unstaking_fee_message": "A taxa de Unstaking especificada será deduzida do valor retirado, reduzindo o valor recebido.",
+ "stake_future_unstaking_fee": "Estimativa futura da taxa de Unstake",
+ "stake_future_unstaking_fee_message": "Quando esses fundos forem retirados do stake, você incorrerá na taxa de unstake estimada que foi especificada. Esse valor é apenas uma estimativa e se baseia nos fundos atualmente em stake no pool. As taxas efetivamente cobradas podem diferir no momento em que realiza o unstake.",
+ "stake_break_even_time": "Tempo necessário para recuperar o investimento por meio das taxas",
+ "stake_break_even_time_message": "Com base no total das taxas incorridas para o stake e unstake do seu valor solicitado, esta é a quantidade estimada de tempo necessária para você manter os fundos em staking a fim de ganhar recompensas suficientes para cobrir as taxas pagas. Esse período de tempo é apenas uma estimativa, pois está sujeito a alterações devido às mudanças na APY (Taxa de Rendimento Anual) das recompensas e ao valor total dos fundos no pool de staking.",
+ "stake_break_even_days_s": "%1$s Dias",
+ "stake_break_even_days_months_s": "%1$s dias (%2$s meses)",
+ "stake_earn_button_label": "Ganhar",
+ "stake_unable_to_query_locked": "Não foi possível consultar o saldo bloqueado. Por favor, tente novamente mais tarde.",
"stake_resource_display_name": "Recursos TRON",
"stake_resource_display_name_v2": "Recursos TRON v2",
"stake_resource_bandwidth": "Bandwidth",
"stake_resource_energy": "Energy",
"fiat_plugin_select_asset_to_purchase": "Selecione o ativo para comprar",
- "fiat_plugin_buy_currencycode": "Compre %s",
+ "fiat_plugin_buy_currencycode": "Comprar %s",
"fiat_plugin_sell_currencycode_s": "Vender %s",
- "fiat_plugin_amount_currencycode": "Amount %s",
+ "fiat_plugin_amount_currencycode": "Valor: %s",
"fiat_plugin_buy_amount_over_limit": "O valor máximo de compra é %s",
"fiat_plugin_buy_amount_over_undef_limit": "O valor da compra está acima do valor máximo",
"fiat_plugin_buy_amount_under_limit": "O valor mínimo da compra é %s",
"fiat_plugin_buy_amount_under_undef_limit": "O valor da compra está abaixo do mínimo",
- "fiat_plugin_asset_unsupported": "Ativo sem suporte",
+ "fiat_plugin_asset_unsupported": "Ativo não suportado",
"fiat_plugin_payment_unsupported": "Método de pagamento não suportado",
- "fiat_plugin_buy_region_restricted": "Região restrita para compra %s",
+ "fiat_plugin_buy_region_restricted": "Região restrita para a compra de %s",
"fiat_plugin_buy_no_quote": "Não foi possível obter cotação de compra",
"fiat_plugin_fetching_assets": "Buscando ativos suportados",
"select_recv_wallet": "Selecione a carteira para receber",
"select_src_wallet": "Selecione Fonte da Carteira",
- "deposit_to_bank": "Depósito no banco",
- "your_wallets": "As suas carteiras",
+ "deposit_to_bank": "Depositar no banco",
+ "your_wallets": "Suas Carteiras",
"coin_rank_price": "Preço",
"coin_rank_rank": "Classificação",
"coin_rank_title_market_cap": "Market Cap",
- "coin_rank_title_hours_1": "Alteração de % de preço (hora)",
- "coin_rank_title_hours_24": "Alteração de % de preço (dia)",
- "coin_rank_title_days_7": "Alteração de % de preço (semana)",
- "coin_rank_title_days_30": "Alteração de % de preço (mês)",
- "coin_rank_title_year_1": "Alteração de % de preço (ano)",
+ "coin_rank_title_hours_1": "Alteração de preço % (hora)",
+ "coin_rank_title_hours_24": "Alteração de Preço % (dia)",
+ "coin_rank_title_days_7": "Alteração de Preço % (semana)",
+ "coin_rank_title_days_30": "Alteração de Preço % (mês)",
+ "coin_rank_title_year_1": "Alteração de Preço % (ano)",
"coin_rank_title_volume_24h": "Volume 24h",
"coin_rank_title_high_24h": "24h Alta",
"coin_rank_title_low_24h": "24h Baixa",
"coin_rank_title_price_change_24h": "Alteração de Preço (24h)",
- "coin_rank_title_market_cap_change_24h": "Market Cap Change (24h)",
- "coin_rank_title_circulating_supply": "Circulating Supply",
- "coin_rank_title_total_supply": "Total Supply",
+ "coin_rank_title_market_cap_change_24h": "Variação Market Cap (24h)",
+ "coin_rank_title_circulating_supply": "Oferta Circulante",
+ "coin_rank_title_total_supply": "Total supply",
"coin_rank_title_max_supply": "Max Supply",
- "coin_rank_title_all_time_high": "All Time High",
- "coin_rank_title_all_time_low": "All Time Low",
+ "coin_rank_title_all_time_high": "Máxima Histórica",
+ "coin_rank_title_all_time_low": "Mínima Histórica",
"coin_rank_market_cap_abbreviation": "MCap",
"coin_rank_volume_24hr_abbreviation": "Vol. 24h",
"coin_rank_hour": "1H",
@@ -1142,12 +1148,12 @@
"coin_rank_week": "7D",
"coin_rank_month": "30D",
"coin_rank_year": "1A",
- "form_field_title_account_owner": "Proprietário da Conta",
+ "form_field_title_account_owner": "Titular da conta",
"form_field_title_address_city": "Cidade",
"form_field_title_address_country": "País",
- "form_field_title_address_line_1": "Endereço 1ª linha",
+ "form_field_title_address_line_1": "Endereço Linha 1",
"form_field_title_address_line_2": "Endereço linha 2: (opcional)",
- "form_field_title_address_state_province_region": "Province",
+ "form_field_title_address_state_province_region": "Província ou Estado",
"form_field_title_address_zip_postal_code": "Código Postal/Cep",
"form_field_title_iban": "IBAN",
"form_field_title_swift_bic": "SWIFT/BIC",
@@ -1158,14 +1164,14 @@
"payment_details": "Detalhes do Pagamento",
"buy_sell_quote_input_title": "Input",
"buy_sell_quote_output_title": "Output",
- "bank_transfer_reference": "Reference",
+ "bank_transfer_reference": "Referência",
"sepa_form_title": "Insira as informações bancárias",
"sepa_transfer_prompt_s": "O seu pedido %1$s foi enviado!\n\nSalve os detalhes do pedido abaixo para os seus registros e instrua o seu banco a efetuar o pagamento com as informações na seção Detalhes de pagamento.",
- "backup_account": "Back Up Account",
+ "backup_account": "Backup da Conta",
"backup_delete_confirm_message": "Tem certeza de que deseja excluir esta conta sem antes fazer o backup? Você NÃO poderá recuperar carteiras e transações para esta conta!",
- "backup_info_message": "Create a username and password to securely encrypt and back up your account",
+ "backup_info_message": "Crie um nome de usuário e uma senha para criptografar e fazer backup da sua conta com segurança",
"backup_dismiss_button": "Continuar sem um Backup",
- "backup_title": "Faça Backup da Sua Conta",
+ "backup_title": "Faça o Backup da Sua Conta",
"backup_warning_message": "Sem um backup, você corre o risco de perder os seus fundos!",
"tap_to_learn_more": "Toque para saber mais.",
"currency_label_AFN": "Afegão",
@@ -1178,7 +1184,7 @@
"currency_label_": "Nenhuma moeda universal",
"currency_label_ARS": "Peso Argentino",
"currency_label_AMD": "Dram Armênio",
- "currency_label_AWG": "Aruban Florin",
+ "currency_label_AWG": "Florin de Aruba",
"currency_label_AUD": "Dólar Australiano",
"currency_label_AZN": "Manat do Azerbaijão",
"currency_label_BSD": "Dólar das Bahamas",
@@ -1187,16 +1193,16 @@
"currency_label_BBD": "Dólar de Barbados",
"currency_label_BYN": "Rublo bielorrusso",
"currency_label_BZD": "Dólar do Belize",
- "currency_label_XOF": "CFA Franc BCEAO",
- "currency_label_BMD": "Dólar Bermudense",
+ "currency_label_XOF": "Franco CFA BCEAO",
+ "currency_label_BMD": "Dólar das Bermudas",
"currency_label_BTN": "Ngultrum",
- "currency_label_INR": "Indian Rupee",
+ "currency_label_INR": "Rúpia indiana",
"currency_label_BOB": "Boliviano",
"currency_label_BOV": "Mvdol",
- "currency_label_BAM": "Convertible Mark",
+ "currency_label_BAM": "Marco conversível",
"currency_label_BWP": "Pula",
"currency_label_NOK": "Coroa Norueguesa",
- "currency_label_BRL": "Real brasileiro",
+ "currency_label_BRL": "Real Brasileiro",
"currency_label_BND": "Dólar de Brunei",
"currency_label_BGN": "Lev Búlgaro",
"currency_label_BIF": "Franco do Burundi",
@@ -1205,11 +1211,11 @@
"currency_label_XAF": "Franco CFA da BEAC",
"currency_label_CAD": "Dólar Canadense",
"currency_label_KYD": "Dólar das Ilhas Cayman",
- "currency_label_CLF": "Unidad de Fomento",
+ "currency_label_CLF": "Unidade de fomento",
"currency_label_CLP": "Peso Chileno",
"currency_label_CNY": "Yuan Renminbi",
"currency_label_COP": "Peso Colombiano",
- "currency_label_COU": "Unidad de Valor Real",
+ "currency_label_COU": "Unidade de Valor Real",
"currency_label_KMF": "Franco de Comores",
"currency_label_CDF": "Franco Congolês",
"currency_label_NZD": "Dólar neozelandês",
@@ -1223,36 +1229,36 @@
"currency_label_DJF": "Franco do Djibuti",
"currency_label_DOP": "Peso Dominicano",
"currency_label_EGP": "Libra Egípcia",
- "currency_label_SVC": "El Salvador Colon",
+ "currency_label_SVC": "Colon de El Salvador",
"currency_label_ERN": "Nakfa",
- "currency_label_ETB": "Ethiopian Birr",
- "currency_label_FKP": "Falkland Islands Pound",
- "currency_label_FJD": "Fiji Dollar",
- "currency_label_XPF": "CFP Franc",
+ "currency_label_ETB": "Birr etíope",
+ "currency_label_FKP": "Libra das Ilhas Falkland",
+ "currency_label_FJD": "Dólar de Fiji",
+ "currency_label_XPF": "Franco CFP",
"currency_label_GMD": "Dalasi",
"currency_label_GEL": "Lari",
- "currency_label_GHS": "Ghana Cedi",
- "currency_label_GIP": "Gibraltar Pound",
+ "currency_label_GHS": "Cedi de Gana",
+ "currency_label_GIP": "Libra de Gibraltar",
"currency_label_GTQ": "Quetzal",
"currency_label_GBP": "Libra Esterlina",
- "currency_label_GNF": "Guinea Franc",
- "currency_label_GYD": "Guyana Dollar",
+ "currency_label_GNF": "Franco da Guiné",
+ "currency_label_GYD": "Dólar da Guiana",
"currency_label_HTG": "Gourde",
"currency_label_HNL": "Lempira",
"currency_label_HKD": "Dólar de Hong Kong",
"currency_label_HUF": "Forint",
- "currency_label_ISK": "Iceland Krona",
+ "currency_label_ISK": "Coroa Islandesa",
"currency_label_IDR": "Rupia",
- "currency_label_XDR": "SDR (Special Drawing Right)",
- "currency_label_IRR": "Iranian Rial",
- "currency_label_IQD": "Iraqi Dinar",
- "currency_label_ILS": "New Israeli Sheqel",
- "currency_label_JMD": "Jamaican Dollar",
- "currency_label_JPY": "Yen",
- "currency_label_JOD": "Jordanian Dinar",
+ "currency_label_XDR": "SDR (direitos especiais de saque)",
+ "currency_label_IRR": "Rial iraniano",
+ "currency_label_IQD": "Dinar iraquiano",
+ "currency_label_ILS": "Novo Sheqel Israelense",
+ "currency_label_JMD": "Dolar jamaicano",
+ "currency_label_JPY": "Iene",
+ "currency_label_JOD": "Dinar jordaniano",
"currency_label_KZT": "Tenge",
- "currency_label_KES": "Kenyan Shilling",
- "currency_label_KPW": "North Korean Won",
+ "currency_label_KES": "Xelim queniano",
+ "currency_label_KPW": "Won norte-coreano",
"currency_label_KRW": "Won",
"currency_label_KWD": "Dinar Kuwaitiano",
"currency_label_KGS": "Som",
@@ -1311,42 +1317,42 @@
"currency_label_SDG": "Libra Sudanesa",
"currency_label_SRD": "Dólar do Suriname",
"currency_label_SZL": "Lilangeni",
- "currency_label_SEK": "Swedish Krona",
+ "currency_label_SEK": "Coroa Sueca",
"currency_label_CHE": "WIR Euro",
- "currency_label_CHW": "WIR Franc",
- "currency_label_SYP": "Syrian Pound",
- "currency_label_TWD": "New Taiwan Dollar",
+ "currency_label_CHW": "WIR Franco",
+ "currency_label_SYP": "Libra Síria",
+ "currency_label_TWD": "Novo Dólar de Taiwan",
"currency_label_TJS": "Somoni",
- "currency_label_TZS": "Tanzanian Shilling",
+ "currency_label_TZS": "Xelim Tanzaniano",
"currency_label_THB": "Baht",
- "currency_label_TOP": "Pa’anga",
- "currency_label_TTD": "Trinidad and Tobago Dollar",
- "currency_label_TND": "Tunisian Dinar",
- "currency_label_TRY": "Turkish Lira",
- "currency_label_TMT": "Turkmenistan New Manat",
- "currency_label_UGX": "Uganda Shilling",
+ "currency_label_TOP": "Pa'anga",
+ "currency_label_TTD": "Dólar de Trindade e Tobago",
+ "currency_label_TND": "Dinar tunisino",
+ "currency_label_TRY": "Lira turca",
+ "currency_label_TMT": "Novo Manat do Turcomenistão",
+ "currency_label_UGX": "Xelim de Uganda",
"currency_label_UAH": "Hryvnia",
- "currency_label_AED": "UAE Dirham",
- "currency_label_USN": "United States Dollar (Next day)",
+ "currency_label_AED": "Dirham dos Emirados Árabes Unidos",
+ "currency_label_USN": "Dólar dos Estados Unidos (próximo dia)",
"currency_label_UYI": "Peso uruguaio em unidade indexadas (URUIURUI)",
"currency_label_UYU": "Peso Uruguaio",
- "currency_label_UZS": "Uzbekistan Sum",
+ "currency_label_UZS": "Sum do Usbequistão",
"currency_label_VUV": "Vatu",
"currency_label_VEF": "Bolivar",
"currency_label_VND": "Dong",
- "currency_label_YER": "Yemeni Rial",
- "currency_label_ZMW": "Zambian Kwacha",
+ "currency_label_YER": "Rial iemenita",
+ "currency_label_ZMW": "Kwacha da Zâmbia",
"currency_label_ZWL": "Dólar do Zimbábue",
"getting_started_button_sign_in": "Já tem uma conta? Entrar",
- "getting_started_slide_1_footnote": "Users can access seed phrases within the app at their discretion.",
+ "getting_started_slide_1_footnote": "Os usuários podem acessar frases seed dentro do aplicativo a seu critério.",
"getting_started_slide_1_message": "Diga adeus à escrita de ‘backups’ inseguros em papel. Com a criptografia do lado do cliente, backup automático de contas e 2FA, Edge simplifica a auto-custódia para todos.",
- "getting_started_slide_1_title": "We've Got You\n*Covered*",
+ "getting_started_slide_1_title": "Estamos aqui para dar suporte a você",
"getting_started_slide_2_message": "O Edge não tem acesso aos fundos do usuário, o que significa que não há congelamento de conta ou confisco de ativos. Compre, venda e negocie com tranquilidade.",
- "getting_started_slide_2_title": "They're Your Assets\nYou're in *Control*",
- "getting_started_slide_3_message": "O Edge não retém nenhuma das suas informações pessoais, nem mesmo um endereço de e-mail ou número de telefone. Não rastreamos transações de blockchain na sua conta e temos código aberto para provar isso.",
+ "getting_started_slide_2_title": "São os seus Ativos\nVocê está no *Controle*",
+ "getting_started_slide_3_message": "Edge não retém nenhuma das suas informações pessoais, nem mesmo um endereço de e-mail ou número de telefone. Não rastreamos transações de blockchain na sua conta e temos código aberto para provar isso.",
"getting_started_slide_3_title": "A Sua Privacidade\nÉ a nossa *Prioridade*",
- "getting_started_slide_4_message": "Reach our support team, made up of real humans, by live phone call, live chat, and email every day of the week.",
- "getting_started_slide_4_title": "*Help* Is Here If\nYou Need It",
+ "getting_started_slide_4_message": "Entre em contato com a nossa equipe de suporte, composta por seres humanos reais, através de chamada telefônica ao vivo, bate-papo ao vivo e e-mail todos os dias da semana.",
+ "getting_started_slide_4_title": "*Ajuda* Está aqui se\nVocê Precisa dela",
"getting_started_welcome_message": "Edge é a ferramenta de código aberto que você precisa\npara investir, proteger e colocar as suas criptomoedas em ação.",
"getting_started_welcome_prompt": "Deslize para saber mais",
"getting_started_welcome_title": "Bem-vindo à\n*Liberdade* Financeira",
@@ -1356,8 +1362,8 @@
"close_hint": "Fechar",
"create_wallet_hint": "Criar Carteira %s",
"edit_icon_hint": "Editar",
- "import_key_icon_hint": "Import Key",
- "modal_close_hint": "Close modal",
+ "import_key_icon_hint": "Importar chave",
+ "modal_close_hint": "Fechar modal",
"off_hint": "Desligado",
"on_hint": "Ligado",
"sort_wallets_hint": "Classificar Carteiras",
@@ -1366,29 +1372,29 @@
"wallet_settings_label": "Configurações da carteira",
"rewards_card_error_retrieving_cards": "Erro ao recuperar cartões Visa. Por favor, tente novamente mais tarde.",
"rewards_card_error_authenticate": "Erro ao autenticar com o programa Visa® Card. Por favor, tente novamente mais tarde.",
- "rewards_card_error_timeout_loading": "Timeout error loading Visa® Card program. Please try again later.",
+ "rewards_card_error_timeout_loading": "Erro de tempo limite ao carregar o programa do Cartão Visa®. Por favor, tente novamente mais tarde.",
"rewards_card_call_to_action": "Compre cartões pré-pagos Visa®",
"rewards_card_purchase_disclaimer": "Compra do cartão realizada com sucesso!\n\nObserve que os cartões recém-adquiridos levam alguns segundos para ficarem disponíveis.\n\nOs cartões comprados com Bitcoin requerem 1 confirmação e podem levar de 10 a 30 minutos para ficarem disponíveis.",
"rewards_card_loading": "Carregando os seus cartões Visa®...",
"rewards_card_add_new_input_amount_title": "Comprar cartão Visa®",
- "rewards_card_welcome_intro": "Adquira cartões pré-pagos Visa® que podem ser usados em milhões de comércios nos Estados Unidos. Os cartões podem ser adquiridos no valor de até $1.000, com um limite diário de $10.000.",
+ "rewards_card_welcome_intro": "Compre cartões pré-pagos Visa® que podem ser usados em milhões de comércios nos Estados Unidos. Os cartões podem ser adquiridos no valor de até $1.000, com um limite diário de $10.000.",
"rewards_card_dashboard_title": "Programa de cartão Visa®️",
"rewards_card_delete_modal_message": "Tem certeza de que deseja excluir este cartão Visa®?",
"rewards_card_terms_of_use_message": "Revise os Termos de Uso:\n\nEntendo que os cartões virtuais por meio deste programa só podem ser adquiridos por usuários residentes nos Estados Unidos.\n\nEntendo que os cartões comprados não são elegíveis para reembolso.",
"buy_new_card_button": "Comprar Novo Cartão",
"card_amount_max_error_message_s": "O valor máximo de compra do cartão é $%s",
- "card_amount_min_error_message_s": "O valor mínimo da compra do cartão é $%s",
- "delete_card_confirmation_title": "Deletar Cartão?",
- "getting_payment_invoice_message": "Obtendo fatura de pagamento",
+ "card_amount_min_error_message_s": "O valor mínimo de compra do cartão é $%s",
+ "delete_card_confirmation_title": "Excluir cartão?",
+ "getting_payment_invoice_message": "Obtendo a fatura de pagamento",
"learn_more_button": "Saiba Mais",
- "missing_provider_payment_address_message": "Missing payment address from provider",
+ "missing_provider_payment_address_message": "Endereço de pagamento ausente do provedor",
"no_active_cards_message": "Você não tem cartões ativos.",
- "purchase_asset_label": "Purchase Asset",
+ "purchase_asset_label": "Comprar Ativo",
"purchase_date_label": "Data da compra",
"purchase_price_label": "Preço de Compra",
"select_wallet_to_purchase_card_title": "Selecione a carteira a ser usada para comprar o cartão",
"unknown_error_occurred_fragment": "Ocorreu um erro desconhecido",
- "no_scan_results_message": "No scan results",
- "auto_log_off_failed_message_s": "Failed to auto-logoff: %s",
+ "no_scan_results_message": "Nenhum resultado de varredura",
+ "auto_log_off_failed_message_s": "Falha ao efetuar o auto-logoff: %s",
"contacts_load_failed_message_s": "Falha ao carregar contatos: %s"
}
\ No newline at end of file
diff --git a/src/locales/strings/ru.json b/src/locales/strings/ru.json
index 4279fcea1df..0487ea0be20 100644
--- a/src/locales/strings/ru.json
+++ b/src/locales/strings/ru.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Cryptocurrency transactions are irreversible.",
"warning_scam_message_unknown_recipients": "Do not send money to people or organizations you do not know.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "Внимание! ",
"alert_dropdown_warning": "Внимание! ",
"azteco_success": "You've redeemed an Azteco bitcoin card. Funds should arrive shortly.",
@@ -891,6 +893,10 @@
"string_end": "Конец",
"export_transaction_quickbooks_qbo": "QBO Quickbooks",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Экспорт",
"string_status": "Status",
"string_fee": "Fee",
diff --git a/src/locales/strings/vi.json b/src/locales/strings/vi.json
index 45384d23e59..f0a86936e93 100644
--- a/src/locales/strings/vi.json
+++ b/src/locales/strings/vi.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Cryptocurrency transactions are irreversible.",
"warning_scam_message_unknown_recipients": "Do not send money to people or organizations you do not know.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "Alert! ",
"alert_dropdown_warning": "Warning! ",
"azteco_success": "You've redeemed an Azteco bitcoin card. Funds should arrive shortly.",
@@ -891,6 +893,10 @@
"string_end": "End",
"export_transaction_quickbooks_qbo": "Quickbooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Export",
"string_status": "Status",
"string_fee": "Fee",
diff --git a/src/locales/strings/zh.json b/src/locales/strings/zh.json
index 24c0d80bc90..e92870dfae1 100644
--- a/src/locales/strings/zh.json
+++ b/src/locales/strings/zh.json
@@ -72,6 +72,8 @@
"warning_scam_message_irreversibility": "Cryptocurrency transactions are irreversible.",
"warning_scam_message_unknown_recipients": "Do not send money to people or organizations you do not know.",
"warning_scam_footer_s": "If you have any questions or concerns regarding this send, please contact %s",
+ "warning_token_code_override_2s": "The entered contract address differs from the contract address of built-in token %1$s. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature or contract please contact %2$s.",
+ "warning_token_contract_override_3s": "The entered token %1$s exists as a built-in token %2$s with the same contract address. Please proceed with caution and verify the contract is legitimate as use of this token can result in loss of funds. If you have questions about this feature please contact %3$s.",
"alert_dropdown_alert": "Alert! ",
"alert_dropdown_warning": "Warning! ",
"azteco_success": "You've redeemed an Azteco bitcoin card. Funds should arrive shortly.",
@@ -891,6 +893,10 @@
"string_end": "End",
"export_transaction_quickbooks_qbo": "Quickbooks QBO",
"export_transaction_csv": "CSV",
+ "export_transaction_bitwave_csv": "Bitwave CSV",
+ "export_transaction_bitwave_accountid_modal_title": "Bitwave Account ID",
+ "export_transaction_bitwave_accountid_modal_message": "Please enter the Bitwave account ID for this wallet",
+ "export_transaction_bitwave_accountid_modal_input_label": "Account ID",
"string_export": "Export",
"string_status": "Status",
"string_fee": "Fee",
diff --git a/src/modules/FioAddress/components/DomainListModal.tsx b/src/modules/FioAddress/components/DomainListModal.tsx
index 8a3a5f590ed..9e521c464e8 100644
--- a/src/modules/FioAddress/components/DomainListModal.tsx
+++ b/src/modules/FioAddress/components/DomainListModal.tsx
@@ -7,7 +7,7 @@ import { Fontello } from '../../../assets/vector'
import { cacheStyles, Theme, ThemeProps, withTheme } from '../../../components/services/ThemeContext'
import { ClickableText } from '../../../components/themed/ClickableText'
import { EdgeText } from '../../../components/themed/EdgeText'
-import { ModalFooter, ModalTitle } from '../../../components/themed/ModalParts'
+import { ModalFooter, ModalFooterFade, ModalTitle } from '../../../components/themed/ModalParts'
import { OutlinedTextInput } from '../../../components/themed/OutlinedTextInput'
import { ThemedModal } from '../../../components/themed/ThemedModal'
import { FIO_ADDRESS_DELIMITER, FIO_DOMAIN_DEFAULT } from '../../../constants/WalletAndCurrencyConstants'
@@ -150,6 +150,8 @@ class DomainListModalComponent extends React.Component {
const { bridge, theme } = this.props
const { input } = this.state
const items = this.getItems()
+ const styles = getStyles(theme)
+
return (
bridge.resolve(undefined)} paddingRem={[1, 0]}>
@@ -174,8 +176,9 @@ class DomainListModalComponent extends React.Component {
keyboardShouldPersistTaps="handled"
keyExtractor={this.keyExtractor}
renderItem={this.renderItem}
+ contentContainerStyle={styles.scrollPadding}
/>
- bridge.resolve(undefined)} />
+
)
}
@@ -211,6 +214,9 @@ const getStyles = cacheStyles((theme: Theme) => ({
},
domainRegisterIcon: {
marginTop: theme.rem(0.25)
+ },
+ scrollPadding: {
+ paddingBottom: theme.rem(ModalFooter.bottomRem)
}
}))
diff --git a/src/plugins/gui/providers/banxaProvider.ts b/src/plugins/gui/providers/banxaProvider.ts
index a5e958a4161..be0765195cc 100644
--- a/src/plugins/gui/providers/banxaProvider.ts
+++ b/src/plugins/gui/providers/banxaProvider.ts
@@ -133,6 +133,7 @@ type BanxaTxLimit = ReturnType
type BanxaCryptoCoin = ReturnType
type BanxaPaymentMethods = ReturnType
+// https://support.banxa.com/en/support/solutions/articles/44002459218-supported-cryptocurrencies-and-blockchains
// This maps the Banxa blockchain codes to Edge pluginIds
const CURRENCY_PLUGINID_MAP = {
'AVAX-C': 'avalanche',
@@ -148,6 +149,7 @@ const CURRENCY_PLUGINID_MAP = {
EOS: 'eos',
ETC: 'ethereumclassic',
ETH: 'ethereum',
+ FIL: 'filecoin',
HBAR: 'hedera',
LTC: 'litecoin',
MATIC: 'polygon',
diff --git a/src/plugins/gui/providers/simplexProvider.ts b/src/plugins/gui/providers/simplexProvider.ts
index 235af932ccd..1e92afcd1d1 100644
--- a/src/plugins/gui/providers/simplexProvider.ts
+++ b/src/plugins/gui/providers/simplexProvider.ts
@@ -20,6 +20,7 @@ const storeId = 'co.edgesecure.simplex'
const partnerIcon = 'simplex-logo-sm-square.png'
const pluginDisplayName = 'Simplex'
+// https://integrations.simplex.com/docs/supported_currencies
const SIMPLEX_ID_MAP: { [pluginId: string]: { [currencyCode: string]: string } } = {
algorand: { ALGO: 'ALGO' },
avalanche: { AVAX: 'AVAX-C' },
@@ -98,6 +99,7 @@ const SIMPLEX_ID_MAP: { [pluginId: string]: { [currencyCode: string]: string } }
XYO: 'XYO'
},
fantom: { FTM: 'FTM' },
+ filecoin: { FIL: 'FIL' },
hedera: { HBAR: 'HBAR' },
litecoin: { LTC: 'LTC' },
one: { ONE: 'ONE' },
diff --git a/src/types/types.ts b/src/types/types.ts
index cbce446187c..7534d1f4223 100644
--- a/src/types/types.ts
+++ b/src/types/types.ts
@@ -306,6 +306,7 @@ export interface AppConfig {
supportSite: string
termsOfServiceSite: string
website: string
+ disableSwaps?: boolean
extraTab?: {
webviewUrl: string
tabTitleKey: LocaleStringKey
diff --git a/src/util/corePlugins.ts b/src/util/corePlugins.ts
index 413683daeed..ccee371e25f 100644
--- a/src/util/corePlugins.ts
+++ b/src/util/corePlugins.ts
@@ -9,9 +9,12 @@ export const currencyPlugins: EdgeCorePluginsInit = {
binancesmartchain: ENV.BINANCE_SMART_CHAIN_INIT,
hedera: true,
eos: true,
+ filecoin: true,
telos: true,
wax: true,
polkadot: true,
+ liberland: true,
+ liberlandtestnet: false,
ethereum: ENV.ETHEREUM_INIT,
ethereumclassic: true,
ethereumpow: ENV.ETHEREUM_POW_INIT,
diff --git a/yarn.lock b/yarn.lock
index 756dc695d0e..8bd0ec83655 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1225,6 +1225,14 @@
dependencies:
uint8array-tools "0.0.7"
+"@bitcoinerlab/secp256k1@^1.0.2":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/@bitcoinerlab/secp256k1/-/secp256k1-1.0.5.tgz#4643ba73619c24c7c455cc63c6338c69c2cf187c"
+ integrity sha512-8gT+ukTCFN2rTxn4hD9Jq3k+UJwcprgYjfK/SQUSLgznXoIgsBnlPuARMkyyuEjycQK9VvnPiejKdszVTflh+w==
+ dependencies:
+ "@noble/hashes" "^1.1.5"
+ "@noble/secp256k1" "^1.7.1"
+
"@bugsnag/core@^7.19.0":
version "7.19.0"
resolved "https://registry.yarnpkg.com/@bugsnag/core/-/core-7.19.0.tgz#7663a4addb1322e8315a4012dc9db2aad3fea53b"
@@ -1956,6 +1964,14 @@
dependencies:
browser-headers "^0.4.0"
+"@ipld/dag-cbor@^9.0.0":
+ version "9.0.4"
+ resolved "https://registry.yarnpkg.com/@ipld/dag-cbor/-/dag-cbor-9.0.4.tgz#5e1bc63aeabf882a750be88bb6879017c5c41930"
+ integrity sha512-HBNVngk/47pKNLTAelN6ORWgKkjJtQj96Xb+jIBtRShJGCsXgghj1TzTynTTIp1dZxwPe5rVIL6yjZmvdyP2Wg==
+ dependencies:
+ cborg "^2.0.1"
+ multiformats "^12.0.1"
+
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@@ -2325,11 +2341,21 @@
dependencies:
"@noble/hashes" "1.3.1"
-"@noble/hashes@1.3.1", "@noble/hashes@^1.2.0":
+"@noble/hashes@1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9"
integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==
+"@noble/hashes@^1.1.5", "@noble/hashes@^1.2.0":
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39"
+ integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==
+
+"@noble/secp256k1@^1.7.1":
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c"
+ integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==
+
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -3074,6 +3100,11 @@
resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938"
integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==
+"@scure/base@^1.1.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.2.tgz#ff0cf51874aaf176490c9cb46e4df807a2e581d2"
+ integrity sha512-sSCrnIdaUZQHhBxZThMuk7Wm1TWzMD3uJNdGgx3JS23xSqevu0tAOsg8k66nL3R2NwQe65AI9GgqpPOgZys/eA==
+
"@shopify/flash-list@^1.4.1":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@shopify/flash-list/-/flash-list-1.4.1.tgz#145ae2527ecec008789401db5f20cdfbbc495523"
@@ -4586,6 +4617,23 @@
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
+"@zondax/izari-filecoin@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@zondax/izari-filecoin/-/izari-filecoin-1.2.0.tgz#84019247d573b915c5333f16a71c7051e570a1ff"
+ integrity sha512-pixz+VOaNy2RXbU/eUPYtoulxJ4QYKpj05rP5rzEG4yckE1WkLVMajrYH/VWJlNw48GjtxZko6cWwJAi8ZDolQ==
+ dependencies:
+ "@bitcoinerlab/secp256k1" "^1.0.2"
+ "@ipld/dag-cbor" "^9.0.0"
+ axios "^1.3.2"
+ base32-decode "^1.0.0"
+ bip32 "^4.0.0"
+ bip39 "^3.0.4"
+ blakejs "^1.2.1"
+ bn.js "^5.2.1"
+ leb128 "^0.0.5"
+ multiformats "^11.0.2"
+ secp256k1 "^5.0.0"
+
JSONStream@^1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
@@ -5147,7 +5195,7 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
-axios@0.21.1, axios@0.21.2, axios@^0.18.0, axios@^0.19.0, axios@^0.26.1:
+axios@0.21.1, axios@0.21.2, axios@^0.18.0, axios@^0.19.0, axios@^0.26.1, axios@^1.3.2:
version "0.21.1"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
@@ -5370,6 +5418,11 @@ base-x@^4.0.0:
resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a"
integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==
+base32-decode@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/base32-decode/-/base32-decode-1.0.0.tgz#2a821d6a664890c872f20aa9aca95a4b4b80e2a7"
+ integrity sha512-KNWUX/R7wKenwE/G/qFMzGScOgVntOmbE27vvc6GrniDGYb6a5+qWcuoXl8WIOQL7q0TpK7nZDm1Y04Yi3Yn5g==
+
base32.js@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.1.0.tgz#b582dec693c2f11e893cf064ee6ac5b6131a2202"
@@ -5510,6 +5563,16 @@ bip32@^2.0.5, bip32@^2.0.6:
typeforce "^1.11.5"
wif "^2.0.6"
+bip32@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/bip32/-/bip32-4.0.0.tgz#7fac3c05072188d2d355a4d6596b37188f06aa2f"
+ integrity sha512-aOGy88DDlVUhspIXJN+dVEtclhIsfAUppD43V0j40cPTld3pv/0X/MlrZSZ6jowIaQQzFwP8M6rFU2z2mVYjDQ==
+ dependencies:
+ "@noble/hashes" "^1.2.0"
+ "@scure/base" "^1.1.1"
+ typeforce "^1.11.5"
+ wif "^2.0.6"
+
bip32grs@^2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/bip32grs/-/bip32grs-2.0.6.tgz#cced74b1ff64230a83718a62b023d9939aabf1cd"
@@ -5570,10 +5633,10 @@ blake-hash@^2.0.0:
node-gyp-build "^4.2.2"
readable-stream "^3.6.0"
-blakejs@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702"
- integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==
+blakejs@^1.1.0, blakejs@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814"
+ integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==
bluebird@^3.5.0:
version "3.7.2"
@@ -5875,6 +5938,13 @@ buffer-indexof@^1.0.0:
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
+buffer-pipe@0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/buffer-pipe/-/buffer-pipe-0.0.3.tgz#242197681d4591e7feda213336af6c07a5ce2409"
+ integrity sha512-GlxfuD/NrKvCNs0Ut+7b1IHjylfdegMBxQIlZHj7bObKVQBxB5S84gtm2yu1mQ8/sSggceWBDPY0cPXgvX2MuA==
+ dependencies:
+ safe-buffer "^5.1.2"
+
buffer-to-arraybuffer@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a"
@@ -6061,6 +6131,11 @@ caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
+cborg@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/cborg/-/cborg-2.0.5.tgz#b5393c8b1843d5c1a61f2b79b4c9f752052a4d44"
+ integrity sha512-xVW1rSIw1ZXbkwl2XhJ7o/jAv0vnVoQv/QlfQxV8a7V5PlA4UU/AcIiXqmpyybwNWy/GPQU1m/aBVNIWr7/T0w==
+
chai-as-promised@^7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0"
@@ -7577,10 +7652,10 @@ ed25519@0.0.4:
bindings "^1.2.1"
nan "^2.0.9"
-edge-core-js@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/edge-core-js/-/edge-core-js-1.4.1.tgz#e86787d48874e7e6b28ca8eb9be7fc2403f8b913"
- integrity sha512-tSv6TrT5J3gFR+E5VqfSqUaJKG3LGqIwa0uCZ0IWooWN8mdLaJgfAUbAJTri1P+dESyYdypiaq47KeEMSkpeJA==
+edge-core-js@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/edge-core-js/-/edge-core-js-1.4.2.tgz#dc5b967831f9cdcdcb14aaba4e2c4c0553a87d51"
+ integrity sha512-duAMDoAsnbClaTWQEeAm5aecNnFVdYzfSUTloeWjGdqCdzyQyjZiPeDbnmbXJ1O5zqDK3Vh7yLvVUBTawdaj7w==
dependencies:
aes-js "^3.1.0"
base-x "^4.0.0"
@@ -7602,10 +7677,10 @@ edge-core-js@^1.4.1:
yaob "^0.3.11"
yavent "^0.1.3"
-edge-currency-accountbased@^1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/edge-currency-accountbased/-/edge-currency-accountbased-1.5.2.tgz#3986b10beddc67012ea4eb2b575cf3cf2133bc01"
- integrity sha512-HunyYP8Ej9fFvUT2fTXtrTWri4Sd4awWT81kJjrmASKr+C3NplXgHR9CmXPG0y4o8b7zmLvXsYnBU2qZGVpMxQ==
+edge-currency-accountbased@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/edge-currency-accountbased/-/edge-currency-accountbased-2.2.4.tgz#60f3e73dbdf564592020726ae2a2ce1088e6aacc"
+ integrity sha512-dJEsMJJDbtfxyiyQxFT19UOkVgB85ZLV68E1ryxFDi8AJUb3xLB1REwIdE7DOKBq6Vvvd0b/NTH/aa16TulHWg==
dependencies:
"@binance-chain/javascript-sdk" "^4.2.0"
"@ethereumjs/common" "^2.4.0"
@@ -7616,6 +7691,7 @@ edge-currency-accountbased@^1.5.2:
"@hashgraph/sdk" "^1.1.9"
"@polkadot/api" "^10.9.1"
"@solana/web3.js" "^1.32.0"
+ "@zondax/izari-filecoin" "^1.2.0"
algosdk "^2.1.0"
biggystring "^4.1.3"
bip39 "^3.0.2"
@@ -7678,10 +7754,10 @@ edge-currency-plugins@^2.1.0:
wifgrs "^2.0.6"
ws "^7.4.6"
-edge-exchange-plugins@^0.20.2:
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/edge-exchange-plugins/-/edge-exchange-plugins-0.20.2.tgz#d65b71cbb678bf9938d0354f5e68c76e6776a267"
- integrity sha512-MZAZkTGvEPSmoDBlJio6F3Z2GIZBTSAoRj1S/2dciE6QVV81CIbRucbRiY8waCUhuH691ceZuc4NWnJBCm/7WQ==
+edge-exchange-plugins@^0.21.4:
+ version "0.21.4"
+ resolved "https://registry.yarnpkg.com/edge-exchange-plugins/-/edge-exchange-plugins-0.21.4.tgz#375bd7da1141c0d74604f3c7ea48360947467bc8"
+ integrity sha512-9ykyQt5QVLlI4RvvdVnjvZpvVoUaSSl4kguH/yiSo17ExHMZAk2B3on+p9bff1nWy/Gvm2rjHi13PSlyydIRdw==
dependencies:
"@ethersproject/address" "^5.5.0"
"@ethersproject/contracts" "^5.5.0"
@@ -7696,10 +7772,10 @@ edge-exchange-plugins@^0.20.2:
utf8 "^3.0.0"
xrpl "^2.10.0"
-edge-login-ui-rn@^2.7.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/edge-login-ui-rn/-/edge-login-ui-rn-2.7.0.tgz#feff2c5e2c0fdfcda4a55927e5e487ed2a1438d2"
- integrity sha512-XxYSydr0mXHCyapB9oaxFdICgDkkUqyb9hCwBDTjony0f/466rsrcMi8YsMBpcd05dhM7DfLhWLyehh9na8UrQ==
+edge-login-ui-rn@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/edge-login-ui-rn/-/edge-login-ui-rn-2.8.1.tgz#fefd16428b40e2a9bccec2fd0b82df778f1a9b1f"
+ integrity sha512-1EW5EAxeEfyP1Z6FOrx+1+lVYkGnnNO+wK6dHi1gjkT/9ZeRD7VpirEVZdPhrWUrZ2mKL6ZNeRecpYffpHjmQg==
dependencies:
base-x "^4.0.0"
cleaners "^0.3.12"
@@ -11383,6 +11459,14 @@ latest-version@^7.0.0:
dependencies:
package-json "^8.1.0"
+leb128@^0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/leb128/-/leb128-0.0.5.tgz#84524a86ef7799fb3933ce41345f6490e27ac948"
+ integrity sha512-elbNtfmu3GndZbesVF6+iQAfVjOXW9bM/aax9WwMlABZW+oK9sbAZEXoewaPHmL34sxa8kVwWsru8cNE/yn2gg==
+ dependencies:
+ bn.js "^5.0.0"
+ buffer-pipe "0.0.3"
+
leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
@@ -12292,6 +12376,16 @@ multicodec@^1.0.0:
buffer "^5.6.0"
varint "^5.0.0"
+multiformats@^11.0.2:
+ version "11.0.2"
+ resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60"
+ integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==
+
+multiformats@^12.0.1:
+ version "12.1.0"
+ resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-12.1.0.tgz#0c344239c7d8dc60c8079935b1dbb12e39d22214"
+ integrity sha512-/qTOKKnU8nwcVURjRcS+UN0QYgdS5BPZzY10Aiciu2SqncyCVMGV8KtD83EBFmsuJDsSEmT4sGvzcTkCoMw0sQ==
+
multiformats@^9.4.2:
version "9.9.0"
resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37"
@@ -12441,6 +12535,11 @@ node-addon-api@^3.0.0:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
+node-addon-api@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762"
+ integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==
+
node-addon-api@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76"
@@ -13733,10 +13832,10 @@ react-native-permissions@^3.8.3:
picocolors "^1.0.0"
pkg-dir "^5.0.0"
-react-native-piratechain@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/react-native-piratechain/-/react-native-piratechain-0.3.3.tgz#5f8d7822a32ce139323f0844896ed420d419d9c8"
- integrity sha512-okHESDgnbZDQF5V3oy8L6qDnybkiXKa9VZ2uJlOSuy9uChlwv2DHERN+xkaLa3nEHVhm5XnaMGsIT8PpVVKayg==
+react-native-piratechain@^0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/react-native-piratechain/-/react-native-piratechain-0.3.5.tgz#fcfb1e4f5f0dc534579d71a78ad74a5fdded5e3d"
+ integrity sha512-8ejBjFItuglnTnsMUBD3t2j5ltWIvdh3U3Yr6/d4bGyqNypv7QhfmLizPdrlR6xLkcfreGGnk2Abzi81TfYdlg==
dependencies:
rfc4648 "^1.3.0"
@@ -14604,6 +14703,15 @@ secp256k1@^4.0.1, secp256k1@^4.0.2:
node-addon-api "^2.0.0"
node-gyp-build "^4.2.0"
+secp256k1@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.0.tgz#be6f0c8c7722e2481e9773336d351de8cddd12f7"
+ integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==
+ dependencies:
+ elliptic "^6.5.4"
+ node-addon-api "^5.0.0"
+ node-gyp-build "^4.2.0"
+
secure-random@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/secure-random/-/secure-random-1.1.2.tgz#ed103b460a851632d420d46448b2a900a41e7f7c"