chore: refactor Linux and macOS build/packaging steps
Replaces PR #105. Implement a `pkg-macos` target that ultimately results in `Status.dmg` being written to `pkg/`. Due to [limitations][limits] of the OpenSSL `.dylib`s in `/usr/lib/` on macOS, `libssl.a` and `libcrypto.a` are statically linked into `bin/nim_status_client` from a [Homebrew][brew] "bottle" that is compatible with macOS 10.13 (the oldest macOS version compatible with Qt v5.14). `pkg-macos` creates an `.app` bundle layout in `tmp/macos/dist` based partly on information in a very helpful [StackOverflow answer][so-answer]. Note the part of the answer (toward the end) that explains a problem with the working directory and how to fix it. That's the reason for the `nim_status_client.sh` script introduced in this commit (it gets copied into the bundle). It's also the reason for having `Info.plist` copied into the bundle before `macdeployqt` is run (see below) and then overwriting it with `Info.runner.plist` before creating the `.dmg` file. The app icons file `status-icon.icns` was taken from `deployment/macos/` in the [status-react][sr] repo. The [`macdeployqt`][macdeployqt] tool is used to copy the needed portions of Qt into the bundle; it automatically updates `rpath`, etc. so the `nim_status_client` executable in the bundle can locate the libs within the bundle. `macdeployqt` is run twice, for the "outer" and "inner" `.app` bundles, because of an apparent bug in `macdeployqt` that results in QtWebEngine related resources not being processed correctly on the first pass. This results in some bloat in the final bundle but it seems unavoidable at present. The [create-dmg][cdmg] tool is used to package the bundle into a `.dmg` file. There are two reasons for this: 1. It produces a nice looking icon for the `.dmg` that overlays the Status logo on an external disk icon. 2. `Info.plist` needs to be overwritten after running `macdeployqt` (see explanation above) but before creating the `.dmg` file. If we passed the `-dmg` cli option to `macdeployqt` to have it generate the `.dmg` file then it wouldn't be possible to overwrite `Info.plist`. So there is a cosmetic reason and a practical reason for using another tool. Probably the biggest downside is that `create-dmg` is implemented in Node.js so it needs to be installed with `npm`; that's the reason this commit introduces `package.json`, etc. Note that zero code from `node_modules` ends up in the `.app` bundle or the `.dmg` file. Code signing of the macOS `.app` bundle and `.dmg` is attempted if the environment variable `MACOS_CODESIGN_IDENT` is defined. In that case, the environment variable `MACOS_KEYCHAIN_OPT` may optionally be defined with the path to a preferred keychain database file. Refactor a number of sections in the Makefile for consistency's sake, e.g. the `appimage` target becomes `pkg-linux` and ultimately results in `NimStatusClient-x86_64.AppImage` being written to `pkg/`. Make a number of changes to bring the Linux packaging steps up-to-date and use the `-qmlimport` cli option of `linuxdeployqt` to simplify resolution of Qt plugins. Note that `make pkg` will correctly resolve to `make pkg-linux` or `make pkg-macos` depending on the OS in use. Consistently use lower-case "c" in the name of *components* directories and imports. [limits]: https://developer.apple.com/forums/thread/124782 [brew]: https://brew.sh/ [so-answer]: https://stackoverflow.com/a/3251285 [sr]: https://github.com/status-im/status-react/tree/develop/deployment/macos [macdeployqt]: https://doc.qt.io/qt-5/macos-deployment.html [cdmg]: https://github.com/sindresorhus/create-dmg
This commit is contained in:
parent
92862ef7ae
commit
ce7e6b8d51
|
@ -6,8 +6,18 @@ noBackup/
|
||||||
*.qml.autosave
|
*.qml.autosave
|
||||||
.vscode
|
.vscode
|
||||||
bin/
|
bin/
|
||||||
|
/bottles/
|
||||||
|
pkg/
|
||||||
vendor/.nimble
|
vendor/.nimble
|
||||||
*.AppImage
|
*.AppImage
|
||||||
tmp
|
tmp
|
||||||
nimcache
|
nimcache
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
nim-status-client*.tgz
|
||||||
|
node_modules
|
||||||
|
npm-debug.log*
|
||||||
|
npm-shrinkwrap.json
|
||||||
|
/package/
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
yarn.lock
|
||||||
|
|
2
AppRun
2
AppRun
|
@ -1,5 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
APPDIR="$(dirname "$(readlink -f "${0}")")"
|
APPDIR="$(dirname "$(readlink -f "${0}")")"
|
||||||
export LD_LIBRARY_PATH=${APPDIR}/usr/lib/:$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH="${APPDIR}/usr/lib/:${LD_LIBRARY_PATH}"
|
||||||
|
|
||||||
exec "${APPDIR}/usr/bin/nim_status_client" "$@"
|
exec "${APPDIR}/usr/bin/nim_status_client" "$@"
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>Status Desktop</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>nim_status_client</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>status-icon.icns</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>im.Status.NimStatusClient</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>Status</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>IFMajorVersion</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>IFMinorVersion</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>Status Desktop</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>nim_status_client.sh</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>status-icon.icns</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>im.Status.NimStatusClient</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>Status</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>IFMajorVersion</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>IFMinorVersion</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
232
Makefile
232
Makefile
|
@ -15,10 +15,15 @@ BUILD_SYSTEM_DIR := vendor/nimbus-build-system
|
||||||
|
|
||||||
.PHONY: \
|
.PHONY: \
|
||||||
all \
|
all \
|
||||||
appimage \
|
bottles \
|
||||||
|
bottles-dummy \
|
||||||
|
bottles-macos \
|
||||||
clean \
|
clean \
|
||||||
deps \
|
deps \
|
||||||
nim_status_client \
|
nim_status_client \
|
||||||
|
pkg \
|
||||||
|
pkg-linux \
|
||||||
|
pkg-macos \
|
||||||
run \
|
run \
|
||||||
update
|
update
|
||||||
|
|
||||||
|
@ -48,11 +53,52 @@ else
|
||||||
detected_OS := $(strip $(shell uname))
|
detected_OS := $(strip $(shell uname))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(detected_OS), Darwin)
|
||||||
|
BOTTLES_TARGET := bottles-macos
|
||||||
|
PKG_TARGET := pkg-macos
|
||||||
|
MACOSX_DEPLOYMENT_TARGET := 10.13
|
||||||
|
export MACOSX_DEPLOYMENT_TARGET
|
||||||
|
CGO_CFLAGS := -mmacosx-version-min=10.13
|
||||||
|
export CGO_CFLAGS
|
||||||
|
CFLAGS := -mmacosx-version-min=10.13
|
||||||
|
export CFLAGS
|
||||||
|
else
|
||||||
|
BOTTLES_TARGET := bottles-dummy
|
||||||
|
PKG_TARGET := pkg-linux
|
||||||
|
endif
|
||||||
|
|
||||||
|
bottles: $(BOTTLES_TARGET)
|
||||||
|
|
||||||
|
bottles-dummy: ;
|
||||||
|
|
||||||
|
BOTTLE_OPENSSL := bottles/openssl/INSTALL_RECEIPT.json
|
||||||
|
|
||||||
|
$(BOTTLE_OPENSSL):
|
||||||
|
rm -rf bottles/Downloads/openssl* bottles/openssl*
|
||||||
|
mkdir -p bottles/Downloads
|
||||||
|
cd bottles/Downloads && \
|
||||||
|
wget -O openssl.tar.gz "https://bintray.com/homebrew/bottles/download_file?file_path=openssl%401.1-1.1.1g.high_sierra.bottle.tar.gz" && \
|
||||||
|
tar xzf openssl* && \
|
||||||
|
mv openssl@1.1/1.1.1g ../openssl
|
||||||
|
|
||||||
|
BOTTLE_PCRE := bottles/pcre/INSTALL_RECEIPT.json
|
||||||
|
|
||||||
|
$(BOTTLE_PCRE):
|
||||||
|
rm -rf bottles/Downloads/pcre* bottles/pcre*
|
||||||
|
mkdir -p bottles/Downloads
|
||||||
|
cd bottles/Downloads && \
|
||||||
|
wget -O pcre.tar.gz "https://bintray.com/homebrew/bottles/download_file?file_path=pcre-8.44.high_sierra.bottle.tar.gz" && \
|
||||||
|
tar xzf pcre* && \
|
||||||
|
mv pcre/8.44 ../pcre
|
||||||
|
|
||||||
|
bottles-macos: | $(BOTTLE_OPENSSL) $(BOTTLE_PCRE)
|
||||||
|
rm -rf bottles/Downloads
|
||||||
|
|
||||||
ifeq ($(detected_OS), Darwin)
|
ifeq ($(detected_OS), Darwin)
|
||||||
NIM_PARAMS := $(NIM_PARAMS) -L:"-framework Foundation -framework Security -framework IOKit -framework CoreServices"
|
NIM_PARAMS := $(NIM_PARAMS) -L:"-framework Foundation -framework Security -framework IOKit -framework CoreServices"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
DOTHERSIDE := vendor/DOtherSide/lib/libDOtherSideStatic.a
|
DOTHERSIDE := vendor/DOtherSide/build/lib/libDOtherSideStatic.a
|
||||||
|
|
||||||
# Qt5 dirs (we can't indent with tabs here)
|
# Qt5 dirs (we can't indent with tabs here)
|
||||||
QT5_PCFILEDIR := $(shell pkg-config --variable=pcfiledir Qt5Core 2>/dev/null)
|
QT5_PCFILEDIR := $(shell pkg-config --variable=pcfiledir Qt5Core 2>/dev/null)
|
||||||
|
@ -75,7 +121,7 @@ ifeq ($(QT5_PCFILEDIR),)
|
||||||
endif
|
endif
|
||||||
export QT5_LIBDIR
|
export QT5_LIBDIR
|
||||||
# order matters here, due to "-Wl,-as-needed"
|
# order matters here, due to "-Wl,-as-needed"
|
||||||
NIM_PARAMS += --passL:"$(DOTHERSIDE) $(shell PKG_CONFIG_PATH="$(QT5_PCFILEDIR)" pkg-config --libs Qt5Core Qt5Qml Qt5Gui Qt5Quick Qt5QuickControls2 Qt5Widgets)"
|
NIM_PARAMS += --passL:"$(DOTHERSIDE) $(shell PKG_CONFIG_PATH="$(QT5_PCFILEDIR)" pkg-config --libs Qt5Core Qt5Qml Qt5Gui Qt5Quick Qt5QuickControls2 Qt5Widgets Qt5Svg)"
|
||||||
|
|
||||||
# TODO: control debug/release builds with a Make var
|
# TODO: control debug/release builds with a Make var
|
||||||
# We need `-d:debug` to get Nim's default stack traces.
|
# We need `-d:debug` to get Nim's default stack traces.
|
||||||
|
@ -84,21 +130,17 @@ NIM_PARAMS += --outdir:./bin -d:debug
|
||||||
CFLAGS += -g
|
CFLAGS += -g
|
||||||
CXXFLAGS += -g
|
CXXFLAGS += -g
|
||||||
|
|
||||||
deps: | deps-common
|
deps: | deps-common bottles
|
||||||
|
|
||||||
update: | update-common
|
update: | update-common
|
||||||
|
|
||||||
APPIMAGETOOL := appimagetool-x86_64.AppImage
|
|
||||||
|
|
||||||
$(APPIMAGETOOL):
|
|
||||||
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/$(APPIMAGETOOL)
|
|
||||||
chmod +x $(APPIMAGETOOL)
|
|
||||||
|
|
||||||
$(DOTHERSIDE): | deps
|
$(DOTHERSIDE): | deps
|
||||||
echo -e $(BUILD_MSG) "DOtherSide"
|
echo -e $(BUILD_MSG) "DOtherSide"
|
||||||
+ cd vendor/DOtherSide && \
|
+ cd vendor/DOtherSide && \
|
||||||
|
mkdir -p build && \
|
||||||
|
cd build && \
|
||||||
rm -f CMakeCache.txt && \
|
rm -f CMakeCache.txt && \
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_DOCS=OFF -DENABLE_TESTS=OFF -DENABLE_DYNAMIC_LIBS=OFF -DENABLE_STATIC_LIBS=ON . $(HANDLE_OUTPUT) && \
|
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_DOCS=OFF -DENABLE_TESTS=OFF -DENABLE_DYNAMIC_LIBS=OFF -DENABLE_STATIC_LIBS=ON .. $(HANDLE_OUTPUT) && \
|
||||||
$(MAKE) VERBOSE=$(V) $(HANDLE_OUTPUT)
|
$(MAKE) VERBOSE=$(V) $(HANDLE_OUTPUT)
|
||||||
|
|
||||||
STATUSGO := vendor/status-go/build/bin/libstatus.a
|
STATUSGO := vendor/status-go/build/bin/libstatus.a
|
||||||
|
@ -112,47 +154,135 @@ nim_status_client: | $(DOTHERSIDE) $(STATUSGO) deps
|
||||||
echo -e $(BUILD_MSG) "$@" && \
|
echo -e $(BUILD_MSG) "$@" && \
|
||||||
$(ENV_SCRIPT) nim c $(NIM_PARAMS) --passL:"$(STATUSGO)" --passL:"-lm" src/nim_status_client.nim
|
$(ENV_SCRIPT) nim c $(NIM_PARAMS) --passL:"$(STATUSGO)" --passL:"-lm" src/nim_status_client.nim
|
||||||
|
|
||||||
|
_APPIMAGE_TOOL := appimagetool-x86_64.AppImage
|
||||||
|
APPIMAGE_TOOL := tmp/linux/tools/$(_APPIMAGE_TOOL)
|
||||||
|
|
||||||
|
$(APPIMAGE_TOOL):
|
||||||
|
rm -rf tmp/linux
|
||||||
|
mkdir -p tmp/linux/tools
|
||||||
|
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/$(_APPIMAGE_TOOL)
|
||||||
|
mv $(_APPIMAGE_TOOL) tmp/linux/tools/
|
||||||
|
chmod +x $(APPIMAGE_TOOL)
|
||||||
|
|
||||||
|
APPIMAGE := pkg/NimStatusClient-x86_64.AppImage
|
||||||
|
|
||||||
|
$(APPIMAGE): nim_status_client $(APPIMAGE_TOOL) nim-status.desktop
|
||||||
|
rm -rf pkg/*.AppImage
|
||||||
|
mkdir -p tmp/linux/dist/usr/bin
|
||||||
|
mkdir -p tmp/linux/dist/usr/lib
|
||||||
|
mkdir -p tmp/linux/dist/usr/qml
|
||||||
|
|
||||||
|
# General Files
|
||||||
|
cp bin/nim_status_client tmp/linux/dist/usr/bin
|
||||||
|
cp nim-status.desktop tmp/linux/dist/.
|
||||||
|
cp status.svg tmp/linux/dist/status.svg
|
||||||
|
cp -R ui tmp/linux/dist/usr/.
|
||||||
|
|
||||||
|
echo -e $(BUILD_MSG) "AppImage"
|
||||||
|
linuxdeployqt tmp/linux/dist/nim-status.desktop -no-translations -no-copy-copyright-files -qmldir=tmp/linux/dist/usr/ui -qmlimport=${QTDIR}/gcc_64/qml -bundle-non-qt-libs
|
||||||
|
|
||||||
|
rm tmp/linux/dist/AppRun
|
||||||
|
cp AppRun tmp/linux/dist/.
|
||||||
|
|
||||||
|
mkdir -p pkg
|
||||||
|
$(APPIMAGE_TOOL) tmp/linux/dist $(APPIMAGE)
|
||||||
|
|
||||||
|
DMG_TOOL := node_modules/.bin/create-dmg
|
||||||
|
|
||||||
|
$(DMG_TOOL):
|
||||||
|
npm i
|
||||||
|
|
||||||
|
MACOS_OUTER_BUNDLE := tmp/macos/dist/Status.app
|
||||||
|
MACOS_INNER_BUNDLE := $(MACOS_OUTER_BUNDLE)/Contents/Frameworks/QtWebEngineCore.framework/Versions/Current/Helpers/QtWebEngineProcess.app
|
||||||
|
|
||||||
|
DMG := pkg/Status.dmg
|
||||||
|
|
||||||
|
# it's not required to set MACOS_KEYCHAIN if MACOS_CODESIGN_IDENT can be found
|
||||||
|
# in e.g. your login keychain; this environment variable is primarily useful
|
||||||
|
# for CI; when specified MACOS_KEYCHAIN should be the path to a preferred
|
||||||
|
# keychain database file
|
||||||
|
ifneq ($(MACOS_KEYCHAIN),)
|
||||||
|
MACOS_KEYCHAIN_OPT := --keychain "$(MACOS_KEYCHAIN)"
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(DMG): nim_status_client $(DMG_TOOL)
|
||||||
|
rm -rf tmp/macos pkg/*.dmg
|
||||||
|
mkdir -p $(MACOS_OUTER_BUNDLE)/Contents/MacOS
|
||||||
|
mkdir -p $(MACOS_OUTER_BUNDLE)/Contents/Resources
|
||||||
|
cp Info.plist $(MACOS_OUTER_BUNDLE)/Contents/
|
||||||
|
cp bin/nim_status_client $(MACOS_OUTER_BUNDLE)/Contents/MacOS/
|
||||||
|
cp nim_status_client.sh $(MACOS_OUTER_BUNDLE)/Contents/MacOS/
|
||||||
|
chmod +x $(MACOS_OUTER_BUNDLE)/Contents/MacOS/nim_status_client.sh
|
||||||
|
cp status-icon.icns $(MACOS_OUTER_BUNDLE)/Contents/Resources/
|
||||||
|
cp -R ui $(MACOS_OUTER_BUNDLE)/Contents/
|
||||||
|
|
||||||
|
macdeployqt \
|
||||||
|
$(MACOS_OUTER_BUNDLE) \
|
||||||
|
-executable=$(MACOS_OUTER_BUNDLE)/Contents/MacOS/nim_status_client \
|
||||||
|
-qmldir=ui
|
||||||
|
cp Info.runner.plist $(MACOS_OUTER_BUNDLE)/Contents/Info.plist
|
||||||
|
macdeployqt \
|
||||||
|
$(MACOS_INNER_BUNDLE) \
|
||||||
|
-executable=$(MACOS_INNER_BUNDLE)/Contents/MacOS/QtWebEngineProcess
|
||||||
|
|
||||||
|
# if MACOS_CODESIGN_IDENT is not set then the outer and inner .app
|
||||||
|
# bundles are not signed
|
||||||
|
[ -z "$(MACOS_CODESIGN_IDENT)" ] || \
|
||||||
|
codesign \
|
||||||
|
--sign "$(MACOS_CODESIGN_IDENT)" \
|
||||||
|
$(MACOS_KEYCHAIN_OPT) \
|
||||||
|
--options runtime \
|
||||||
|
--deep \
|
||||||
|
--force \
|
||||||
|
--verbose=4 \
|
||||||
|
$(MACOS_OUTER_BUNDLE)
|
||||||
|
[ -z "$(MACOS_CODESIGN_IDENT)" ] || \
|
||||||
|
codesign \
|
||||||
|
--sign "$(MACOS_CODESIGN_IDENT)" \
|
||||||
|
$(MACOS_KEYCHAIN_OPT) \
|
||||||
|
--entitlements QtWebEngineProcess.plist \
|
||||||
|
--options runtime \
|
||||||
|
--deep \
|
||||||
|
--force \
|
||||||
|
--verbose=4 \
|
||||||
|
$(MACOS_INNER_BUNDLE)
|
||||||
|
|
||||||
|
mkdir -p pkg
|
||||||
|
# See: https://github.com/sindresorhus/create-dmg#dmg-icon
|
||||||
|
# GraphicsMagick must be installed for create-dmg to make the custom
|
||||||
|
# DMG icon based on app icon, but should otherwise work without it
|
||||||
|
npx create-dmg \
|
||||||
|
--identity="NOBODY" \
|
||||||
|
$(MACOS_OUTER_BUNDLE) \
|
||||||
|
pkg || true
|
||||||
|
# `|| true` is used above because code signing will be done manually
|
||||||
|
# below (to allow for MACOS_KEYCHAIN_OPT) but create-dmg doesn't have
|
||||||
|
# an option to not attempt signing. To work around that limitation an
|
||||||
|
# unlikely identity (NOBODY) is specified; this results in a non-zero
|
||||||
|
# exit code even though the .dmg is created successfully (just not code
|
||||||
|
# signed); if the above command failed to create a .dmg then the
|
||||||
|
# following command should result in a non-zero exit code
|
||||||
|
mv "`ls pkg/*.dmg`" pkg/Status.dmg
|
||||||
|
|
||||||
|
# if MACOS_CODESIGN_IDENT is not set then the .dmg is not signed
|
||||||
|
[ -z "$(MACOS_CODESIGN_IDENT)" ] || \
|
||||||
|
codesign \
|
||||||
|
--sign "$(MACOS_CODESIGN_IDENT)" \
|
||||||
|
$(MACOS_KEYCHAIN_OPT) \
|
||||||
|
--verbose=4 \
|
||||||
|
pkg/Status.dmg
|
||||||
|
|
||||||
|
pkg: $(PKG_TARGET)
|
||||||
|
|
||||||
|
pkg-linux: $(APPIMAGE)
|
||||||
|
|
||||||
|
pkg-macos: $(DMG)
|
||||||
|
|
||||||
|
clean: | clean-common
|
||||||
|
rm -rf bin/* node_modules pkg/* tmp/* $(STATUSGO)
|
||||||
|
+ $(MAKE) -C vendor/DOtherSide/build --no-print-directory clean
|
||||||
|
|
||||||
run:
|
run:
|
||||||
LD_LIBRARY_PATH="$(QT5_LIBDIR)" ./bin/nim_status_client
|
LD_LIBRARY_PATH="$(QT5_LIBDIR)" ./bin/nim_status_client
|
||||||
|
|
||||||
APPIMAGE := NimStatusClient-x86_64.AppImage
|
|
||||||
|
|
||||||
$(APPIMAGE): $(DEFAULT_TARGET) $(APPIMAGETOOL) nim-status.desktop
|
|
||||||
rm -rf tmp/dist
|
|
||||||
mkdir -p tmp/dist/usr/bin
|
|
||||||
mkdir -p tmp/dist/usr/lib
|
|
||||||
mkdir -p tmp/dist/usr/qml
|
|
||||||
|
|
||||||
# General Files
|
|
||||||
cp bin/nim_status_client tmp/dist/usr/bin
|
|
||||||
cp nim-status.desktop tmp/dist/.
|
|
||||||
cp status.svg tmp/dist/status.svg
|
|
||||||
cp -R ui tmp/dist/usr/.
|
|
||||||
|
|
||||||
# Libraries
|
|
||||||
cp vendor/DOtherSide/build/lib/libDOtherSide* tmp/dist/usr/lib/.
|
|
||||||
|
|
||||||
# QML Plugins due to bug with linuxdeployqt finding qmlimportscanner
|
|
||||||
# This list is obtained with qmlimportscanner -rootPath ui/ -importPath /opt/qt/5.12.6/gcc_64/qml/
|
|
||||||
mkdir -p tmp/dist/usr/qml/Qt/labs/
|
|
||||||
mkdir -p tmp/dist/usr/qml/QtQuick
|
|
||||||
cp -R /opt/qt/5.12.6/gcc_64/qml/Qt/labs/platform tmp/dist/usr/qml/Qt/labs/.
|
|
||||||
cp -R /opt/qt/5.12.6/gcc_64/qml/QtQuick.2 tmp/dist/usr/qml/.
|
|
||||||
cp -R /opt/qt/5.12.6/gcc_64/qml/QtGraphicalEffects tmp/dist/usr/qml/.
|
|
||||||
cp -R /opt/qt/5.12.6/gcc_64/qml/QtQuick/{Controls,Controls.2,Extras,Layouts,Templates.2,Window.2} tmp/dist/usr/qml/QtQuick/.
|
|
||||||
|
|
||||||
echo -e $(BUILD_MSG) "AppImage"
|
|
||||||
linuxdeployqt tmp/dist/nim-status.desktop -no-translations -no-copy-copyright-files -qmldir=tmp/dist/usr/ui -bundle-non-qt-libs
|
|
||||||
|
|
||||||
rm tmp/dist/AppRun
|
|
||||||
cp AppRun tmp/dist/.
|
|
||||||
|
|
||||||
./$(APPIMAGETOOL) tmp/dist
|
|
||||||
|
|
||||||
appimage: $(APPIMAGE)
|
|
||||||
|
|
||||||
clean: | clean-common
|
|
||||||
rm -rf $(APPIMAGE) bin/* tmp/dist $(STATUSGO)
|
|
||||||
+ $(MAKE) -C vendor/DOtherSide --no-print-directory clean
|
|
||||||
|
|
||||||
endif # "variables.mk" was not included
|
endif # "variables.mk" was not included
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.security.cs.disable-executable-page-protection</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -1,8 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script assumes $PWD is the same dir in which this script is located
|
||||||
|
|
||||||
docker run -it --rm --device /dev/fuse \
|
docker run -it --rm --device /dev/fuse \
|
||||||
-v $PWD:/nim-status-client:Z \
|
-v "${PWD}:/nim-status-client:Z" \
|
||||||
-w /nim-status-client \
|
-w /nim-status-client \
|
||||||
--cap-add SYS_ADMIN \
|
--cap-add SYS_ADMIN \
|
||||||
--privileged \
|
--privileged \
|
||||||
a12e/docker-qt:5.12-gcc_64 \
|
a12e/docker-qt:5.14-gcc_64 \
|
||||||
sh docker-linux-app-image.sh
|
./docker-linux-app-image.sh
|
||||||
|
|
40
config.nims
40
config.nims
|
@ -6,28 +6,6 @@ if defined(release):
|
||||||
else:
|
else:
|
||||||
switch("nimcache", "nimcache/debug/$projectName")
|
switch("nimcache", "nimcache/debug/$projectName")
|
||||||
|
|
||||||
proc linkLib(name: string): string =
|
|
||||||
var resLib = name
|
|
||||||
|
|
||||||
when defined(macosx):
|
|
||||||
# In macOS Catalina, unversioned libraries may be broken stubs, so we need to
|
|
||||||
# find a versioned one: https://github.com/status-im/nim-status-client/pull/209
|
|
||||||
var matches: seq[string]
|
|
||||||
for path in listFiles("/usr/lib"):
|
|
||||||
# /usr/lib/libcrypto.0.9.8.dylib
|
|
||||||
let file = path[9..^1]
|
|
||||||
# libcrypto.0.9.8.dylib
|
|
||||||
if file.startsWith("lib" & name) and file != "lib" & name & ".dylib":
|
|
||||||
matches.add(path)
|
|
||||||
matches.sort(order = SortOrder.Descending)
|
|
||||||
if matches.len > 0:
|
|
||||||
resLib = matches[0]
|
|
||||||
# Passing "/usr/lib/libcrypto.44.dylib" directly to the linker works for
|
|
||||||
# dynamic linking.
|
|
||||||
return resLib
|
|
||||||
|
|
||||||
return "-l" & resLib
|
|
||||||
|
|
||||||
--threads:on
|
--threads:on
|
||||||
--opt:speed # -O3
|
--opt:speed # -O3
|
||||||
--debugger:native # passes "-g" to the C compiler
|
--debugger:native # passes "-g" to the C compiler
|
||||||
|
@ -36,16 +14,22 @@ proc linkLib(name: string): string =
|
||||||
|
|
||||||
if defined(macosx):
|
if defined(macosx):
|
||||||
--tlsEmulation:off
|
--tlsEmulation:off
|
||||||
|
switch("passL", "-lstdc++")
|
||||||
# DYLD_LIBRARY_PATH doesn't seem to work with Qt5
|
# DYLD_LIBRARY_PATH doesn't seem to work with Qt5
|
||||||
switch("passL", "-rpath" & " " & getEnv("QT5_LIBDIR"))
|
switch("passL", "-rpath" & " " & getEnv("QT5_LIBDIR"))
|
||||||
switch("passL", "-lstdc++")
|
# statically linke these libs
|
||||||
# dynamically link these libs, since we're opting out of dlopen()
|
switch("passL", "bottles/openssl/lib/libcrypto.a")
|
||||||
switch("passL", linkLib("crypto"))
|
switch("passL", "bottles/openssl/lib/libssl.a")
|
||||||
switch("passL", linkLib("ssl"))
|
switch("passL", "bottles/pcre/lib/libpcre.a")
|
||||||
# https://code.videolan.org/videolan/VLCKit/-/issues/232
|
# https://code.videolan.org/videolan/VLCKit/-/issues/232
|
||||||
switch("passL", "-Wl,-no_compact_unwind")
|
switch("passL", "-Wl,-no_compact_unwind")
|
||||||
|
# set the minimum supported macOS version to 10.13
|
||||||
|
switch("passC", "-mmacosx-version-min=10.13")
|
||||||
else:
|
else:
|
||||||
switch("passL", linkLib("crypto") & " " & linkLib("ssl")) # dynamically link these libs, since we're opting out of dlopen()
|
# dynamically link these libs, since we're opting out of dlopen()
|
||||||
switch("passL", "-Wl,-as-needed") # don't link libraries we're not actually using
|
switch("passL", "-lcrypto")
|
||||||
|
switch("passL", "-lssl")
|
||||||
|
# don't link libraries we're not actually using
|
||||||
|
switch("passL", "-Wl,-as-needed")
|
||||||
|
|
||||||
--define:chronicles_line_numbers # useful when debugging
|
--define:chronicles_line_numbers # useful when debugging
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Installing prerequisites
|
||||||
# Probably should be part of a dockerfile
|
# Probably should be part of a dockerfile
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y software-properties-common
|
sudo apt install -y software-properties-common
|
||||||
sudo add-apt-repository -y ppa:git-core/ppa
|
sudo add-apt-repository -y ppa:git-core/ppa
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y --fix-missing cmake build-essential git libpcre3-dev libssl-dev git
|
sudo apt install -y --fix-missing build-essential cmake git libpcre3-dev
|
||||||
|
|
||||||
rm -Rf tmp
|
|
||||||
make clean
|
|
||||||
|
|
||||||
# Installing GO
|
# Installing GO
|
||||||
# Probably should be part of a dockerfile
|
# Probably should be part of a dockerfile
|
||||||
wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz
|
wget https://dl.google.com/go/go1.14.4.linux-amd64.tar.gz
|
||||||
sudo tar -C /usr/local -xzf go1.14.2.linux-amd64.tar.gz
|
sudo tar -C /usr/local -xzf go1.14.4.linux-amd64.tar.gz
|
||||||
rm ./go1.14.2.linux-amd64.tar.gz
|
rm ./go1.14.4.linux-amd64.tar.gz
|
||||||
export PATH=$PATH:/usr/local/go/bin
|
export PATH="/usr/local/go/bin:${PATH}"
|
||||||
|
|
||||||
# the minor Qt version keeps getting updated inside the Docker image
|
# $QT_PATH and $QT_PLATFORM are provided by the docker image
|
||||||
cd /nim-status-client/
|
# $QT_PATH/$QT_VERSION/$QT_PLATFORM/bin is already prepended to $PATH
|
||||||
export PKG_CONFIG_PATH="$(echo /opt/qt/*/gcc_64/lib/pkgconfig)"
|
# However $QT_VERSION is not exposed to environment so set it here
|
||||||
export LD_LIBRARY_PATH="$(echo /opt/qt/*/gcc_64/lib/)"
|
export QT_VERSION=$(basename $(echo "${QT_PATH}/*"))
|
||||||
|
export QTDIR="${QT_PATH}/${QT_VERSION}"
|
||||||
make appimage
|
# $OPENSSL_PREFIX is provided by the docker image
|
||||||
|
export LIBRARY_PATH="${OPENSSL_PREFIX}/lib:${LIBRARY_PATH}"
|
||||||
rm -Rf tmp
|
export LD_LIBRARY_PATH="${QTDIR}/${QT_PLATFORM}/lib:${LD_LIBRARY_PATH}"
|
||||||
|
make clean; git clean -dfx && rm -rf vendor/*
|
||||||
|
make pkg V=1
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cd "${0%/*}"
|
||||||
|
./nim_status_client
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"name": "nim-status-client",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"files": [],
|
||||||
|
"devDependencies": {
|
||||||
|
"create-dmg": "5.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
import QtQuick 2.13
|
import QtQuick 2.13
|
||||||
import "./Components"
|
import "./components"
|
||||||
import "../../../imports"
|
import "../../../imports"
|
||||||
import "../../../shared"
|
import "../../../shared"
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import QtQuick.Layouts 1.13
|
||||||
import QtGraphicalEffects 1.13
|
import QtGraphicalEffects 1.13
|
||||||
import "../../../imports"
|
import "../../../imports"
|
||||||
import "../../../shared"
|
import "../../../shared"
|
||||||
import "./Components"
|
import "./components"
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
property int selectedAccount: 0
|
property int selectedAccount: 0
|
||||||
|
|
|
@ -4,7 +4,7 @@ import QtQuick.Controls 2.13
|
||||||
//import Qt.labs.platform 1.1
|
//import Qt.labs.platform 1.1
|
||||||
import "../../../imports"
|
import "../../../imports"
|
||||||
import "../../../shared"
|
import "../../../shared"
|
||||||
import "./Components"
|
import "./components"
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
function open() {
|
function open() {
|
||||||
|
|
|
@ -4,7 +4,7 @@ import QtQuick.Controls 2.13
|
||||||
//import Qt.labs.platform 1.1
|
//import Qt.labs.platform 1.1
|
||||||
import "../../../imports"
|
import "../../../imports"
|
||||||
import "../../../shared"
|
import "../../../shared"
|
||||||
import "./Components"
|
import "./components"
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
function open() {
|
function open() {
|
||||||
|
|
|
@ -2,7 +2,7 @@ import QtQuick 2.13
|
||||||
import QtQuick.Controls 2.13
|
import QtQuick.Controls 2.13
|
||||||
import "../../../imports"
|
import "../../../imports"
|
||||||
import "../../../shared"
|
import "../../../shared"
|
||||||
import "./Components"
|
import "./components"
|
||||||
|
|
||||||
ModalPopup {
|
ModalPopup {
|
||||||
id: popup
|
id: popup
|
||||||
|
|
|
@ -24,7 +24,7 @@ Item {
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: 16
|
anchors.rightMargin: 16
|
||||||
anchors.topMargin: 16
|
anchors.topMargin: 16
|
||||||
source: "../../img/close.svg"
|
source: "../../../../shared/img/close.svg"
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: closeModalMouseArea
|
id: closeModalMouseArea
|
||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
|
@ -27,7 +27,7 @@ SOURCES = *.qml \
|
||||||
app/AppLayouts/Profile/Sections/*.qml \
|
app/AppLayouts/Profile/Sections/*.qml \
|
||||||
app/AppLayouts/Profile/Sections/Contacts/*.qml \
|
app/AppLayouts/Profile/Sections/Contacts/*.qml \
|
||||||
app/AppLayouts/Wallet/*.qml \
|
app/AppLayouts/Wallet/*.qml \
|
||||||
app/AppLayouts/Wallet/Components/*.qml \
|
app/AppLayouts/Wallet/components/*.qml \
|
||||||
app/AppLayouts/Wallet/data/*.qml \
|
app/AppLayouts/Wallet/data/*.qml \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,17 +108,17 @@ DISTFILES += \
|
||||||
app/AppLayouts/Wallet/AddCustomTokenModal.qml \
|
app/AppLayouts/Wallet/AddCustomTokenModal.qml \
|
||||||
app/AppLayouts/Wallet/AssetsTab.qml \
|
app/AppLayouts/Wallet/AssetsTab.qml \
|
||||||
app/AppLayouts/Wallet/CollectiblesTab.qml \
|
app/AppLayouts/Wallet/CollectiblesTab.qml \
|
||||||
app/AppLayouts/Wallet/Components/AccountSettingsModal.qml \
|
app/AppLayouts/Wallet/components/AccountSettingsModal.qml \
|
||||||
app/AppLayouts/Wallet/Components/AddAccount.qml \
|
app/AppLayouts/Wallet/components/AddAccount.qml \
|
||||||
app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml \
|
app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml \
|
||||||
app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml \
|
app/AppLayouts/Wallet/components/AddAccountWithSeed.qml \
|
||||||
app/AppLayouts/Wallet/Components/AddWatchOnlyAccount \
|
app/AppLayouts/Wallet/components/AddWatchOnlyAccount \
|
||||||
app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml \
|
app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml \
|
||||||
app/AppLayouts/Wallet/Components/GenerateAccountModal.qml \
|
app/AppLayouts/Wallet/components/GenerateAccountModal.qml \
|
||||||
app/AppLayouts/Wallet/Components/SendModalContent.qml \
|
app/AppLayouts/Wallet/components/SendModalContent.qml \
|
||||||
app/AppLayouts/Wallet/Components/SetCurrencyModalContent.qml \
|
app/AppLayouts/Wallet/components/SetCurrencyModalContent.qml \
|
||||||
app/AppLayouts/Wallet/Components/TokenSettingsModalContent.qml \
|
app/AppLayouts/Wallet/components/TokenSettingsModalContent.qml \
|
||||||
app/AppLayouts/Wallet/Components/qmldir \
|
app/AppLayouts/Wallet/components/qmldir \
|
||||||
app/AppLayouts/Wallet/HistoryTab.qml \
|
app/AppLayouts/Wallet/HistoryTab.qml \
|
||||||
app/AppLayouts/Profile/Sections/AboutContainer.qml \
|
app/AppLayouts/Profile/Sections/AboutContainer.qml \
|
||||||
app/AppLayouts/Profile/Sections/AdvancedContainer.qml \
|
app/AppLayouts/Profile/Sections/AdvancedContainer.qml \
|
||||||
|
@ -149,7 +149,6 @@ DISTFILES += \
|
||||||
app/img/arrow-btn-inactive.svg \
|
app/img/arrow-btn-inactive.svg \
|
||||||
app/img/compass.svg \
|
app/img/compass.svg \
|
||||||
app/img/compassActive.svg \
|
app/img/compassActive.svg \
|
||||||
app/img/close.svg \
|
|
||||||
app/img/group_chat.svg \
|
app/img/group_chat.svg \
|
||||||
app/img/hash.svg \
|
app/img/hash.svg \
|
||||||
app/img/message.svg \
|
app/img/message.svg \
|
||||||
|
@ -211,5 +210,6 @@ DISTFILES += \
|
||||||
shared/StyledTextEdit.qml \
|
shared/StyledTextEdit.qml \
|
||||||
shared/StyledTextField.qml \
|
shared/StyledTextField.qml \
|
||||||
shared/TextWithLabel.qml \
|
shared/TextWithLabel.qml \
|
||||||
|
shared/img/close.svg \
|
||||||
|
shared/img/status-logo.png \
|
||||||
shared/qmldir
|
shared/qmldir
|
||||||
|
|
||||||
|
|
|
@ -115,22 +115,22 @@
|
||||||
<context>
|
<context>
|
||||||
<name>AddAccount</name>
|
<name>AddAccount</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccount.qml" line="94"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccount.qml" line="94"/>
|
||||||
<source>Generate an account</source>
|
<source>Generate an account</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccount.qml" line="101"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccount.qml" line="101"/>
|
||||||
<source>Add a watch-only address</source>
|
<source>Add a watch-only address</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccount.qml" line="108"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccount.qml" line="108"/>
|
||||||
<source>Enter a seed phrase</source>
|
<source>Enter a seed phrase</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccount.qml" line="115"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccount.qml" line="115"/>
|
||||||
<source>Enter a private key</source>
|
<source>Enter a private key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -138,47 +138,47 @@
|
||||||
<context>
|
<context>
|
||||||
<name>AddAccountWithPrivateKey</name>
|
<name>AddAccountWithPrivateKey</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="7"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="7"/>
|
||||||
<source>Add account from private key</source>
|
<source>Add account from private key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="20"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="20"/>
|
||||||
<source>Enter your password…</source>
|
<source>Enter your password…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="21"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="30"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="30"/>
|
||||||
<source>Paste the contents of your private key</source>
|
<source>Paste the contents of your private key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="31"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="31"/>
|
||||||
<source>Private key</source>
|
<source>Private key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="39"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="39"/>
|
||||||
<source>Enter an account name...</source>
|
<source>Enter an account name...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="40"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="40"/>
|
||||||
<source>Account name</source>
|
<source>Account name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="48"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="48"/>
|
||||||
<source>Account color</source>
|
<source>Account color</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="66"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="66"/>
|
||||||
<source>Add account ></source>
|
<source>Add account ></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -186,42 +186,42 @@
|
||||||
<context>
|
<context>
|
||||||
<name>AddAccountWithSeed</name>
|
<name>AddAccountWithSeed</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="17"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="17"/>
|
||||||
<source>Add account with a seed phrase</source>
|
<source>Add account with a seed phrase</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="21"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="21"/>
|
||||||
<source>Enter your password…</source>
|
<source>Enter your password…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="22"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="22"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="31"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="31"/>
|
||||||
<source>Enter your seed phrase, separate words with commas or spaces...</source>
|
<source>Enter your seed phrase, separate words with commas or spaces...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="32"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="32"/>
|
||||||
<source>Seed phrase</source>
|
<source>Seed phrase</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="40"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="40"/>
|
||||||
<source>Enter an account name...</source>
|
<source>Enter an account name...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="41"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="41"/>
|
||||||
<source>Account name</source>
|
<source>Account name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="49"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="49"/>
|
||||||
<source>Account color</source>
|
<source>Account color</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -277,32 +277,32 @@
|
||||||
<context>
|
<context>
|
||||||
<name>AddWatchOnlyAccount</name>
|
<name>AddWatchOnlyAccount</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="7"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="7"/>
|
||||||
<source>Add a watch-only account</source>
|
<source>Add a watch-only account</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="20"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="20"/>
|
||||||
<source>Enter address...</source>
|
<source>Enter address...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="21"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="21"/>
|
||||||
<source>Account address</source>
|
<source>Account address</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="28"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="28"/>
|
||||||
<source>Enter an account name...</source>
|
<source>Enter an account name...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="29"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="29"/>
|
||||||
<source>Account name</source>
|
<source>Account name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="37"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="37"/>
|
||||||
<source>Account color</source>
|
<source>Account color</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -396,32 +396,32 @@
|
||||||
<context>
|
<context>
|
||||||
<name>GenerateAccountModal</name>
|
<name>GenerateAccountModal</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="7"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="7"/>
|
||||||
<source>Generate an account</source>
|
<source>Generate an account</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="19"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="19"/>
|
||||||
<source>Enter your password…</source>
|
<source>Enter your password…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="20"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="20"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="28"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="28"/>
|
||||||
<source>Enter an account name...</source>
|
<source>Enter an account name...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="29"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="29"/>
|
||||||
<source>Account name</source>
|
<source>Account name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="37"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="37"/>
|
||||||
<source>Account color</source>
|
<source>Account color</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -694,17 +694,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>SendModalContent</name>
|
<name>SendModalContent</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/SendModalContent.qml" line="59"/>
|
<location filename="app/AppLayouts/Wallet/components/SendModalContent.qml" line="59"/>
|
||||||
<source>Enter ETH</source>
|
<source>Enter ETH</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/SendModalContent.qml" line="66"/>
|
<location filename="app/AppLayouts/Wallet/components/SendModalContent.qml" line="66"/>
|
||||||
<source>Send from (account)</source>
|
<source>Send from (account)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/SendModalContent.qml" line="79"/>
|
<location filename="app/AppLayouts/Wallet/components/SendModalContent.qml" line="79"/>
|
||||||
<source>Send to</source>
|
<source>Send to</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -790,57 +790,57 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TransactionModal</name>
|
<name>TransactionModal</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="8"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="8"/>
|
||||||
<source>Transaction Details</source>
|
<source>Transaction Details</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="22"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="22"/>
|
||||||
<source>9999 Confirmations</source>
|
<source>9999 Confirmations</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="28"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="28"/>
|
||||||
<source>When the transaction has 12 confirmations you can consider it settled.</source>
|
<source>When the transaction has 12 confirmations you can consider it settled.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="57"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="57"/>
|
||||||
<source>Block</source>
|
<source>Block</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="82"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="82"/>
|
||||||
<source>Hash</source>
|
<source>Hash</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="109"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="109"/>
|
||||||
<source>From</source>
|
<source>From</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="136"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="136"/>
|
||||||
<source>To</source>
|
<source>To</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="163"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="163"/>
|
||||||
<source>Gas limit</source>
|
<source>Gas limit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="188"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="188"/>
|
||||||
<source>Gas price</source>
|
<source>Gas price</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="213"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="213"/>
|
||||||
<source>Gas used</source>
|
<source>Gas used</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="238"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="238"/>
|
||||||
<source>Nonce</source>
|
<source>Nonce</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
@ -115,22 +115,22 @@
|
||||||
<context>
|
<context>
|
||||||
<name>AddAccount</name>
|
<name>AddAccount</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccount.qml" line="94"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccount.qml" line="94"/>
|
||||||
<source>Generate an account</source>
|
<source>Generate an account</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccount.qml" line="101"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccount.qml" line="101"/>
|
||||||
<source>Add a watch-only address</source>
|
<source>Add a watch-only address</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccount.qml" line="108"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccount.qml" line="108"/>
|
||||||
<source>Enter a seed phrase</source>
|
<source>Enter a seed phrase</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccount.qml" line="115"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccount.qml" line="115"/>
|
||||||
<source>Enter a private key</source>
|
<source>Enter a private key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -138,47 +138,47 @@
|
||||||
<context>
|
<context>
|
||||||
<name>AddAccountWithPrivateKey</name>
|
<name>AddAccountWithPrivateKey</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="7"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="7"/>
|
||||||
<source>Add account from private key</source>
|
<source>Add account from private key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="20"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="20"/>
|
||||||
<source>Enter your password…</source>
|
<source>Enter your password…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="21"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="21"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="30"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="30"/>
|
||||||
<source>Paste the contents of your private key</source>
|
<source>Paste the contents of your private key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="31"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="31"/>
|
||||||
<source>Private key</source>
|
<source>Private key</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="39"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="39"/>
|
||||||
<source>Enter an account name...</source>
|
<source>Enter an account name...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="40"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="40"/>
|
||||||
<source>Account name</source>
|
<source>Account name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="48"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="48"/>
|
||||||
<source>Account color</source>
|
<source>Account color</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithPrivateKey.qml" line="66"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml" line="66"/>
|
||||||
<source>Add account ></source>
|
<source>Add account ></source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -186,42 +186,42 @@
|
||||||
<context>
|
<context>
|
||||||
<name>AddAccountWithSeed</name>
|
<name>AddAccountWithSeed</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="17"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="17"/>
|
||||||
<source>Add account with a seed phrase</source>
|
<source>Add account with a seed phrase</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="21"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="21"/>
|
||||||
<source>Enter your password…</source>
|
<source>Enter your password…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="22"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="22"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="31"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="31"/>
|
||||||
<source>Enter your seed phrase, separate words with commas or spaces...</source>
|
<source>Enter your seed phrase, separate words with commas or spaces...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="32"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="32"/>
|
||||||
<source>Seed phrase</source>
|
<source>Seed phrase</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="40"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="40"/>
|
||||||
<source>Enter an account name...</source>
|
<source>Enter an account name...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="41"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="41"/>
|
||||||
<source>Account name</source>
|
<source>Account name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddAccountWithSeed.qml" line="49"/>
|
<location filename="app/AppLayouts/Wallet/components/AddAccountWithSeed.qml" line="49"/>
|
||||||
<source>Account color</source>
|
<source>Account color</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -277,32 +277,32 @@
|
||||||
<context>
|
<context>
|
||||||
<name>AddWatchOnlyAccount</name>
|
<name>AddWatchOnlyAccount</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="7"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="7"/>
|
||||||
<source>Add a watch-only account</source>
|
<source>Add a watch-only account</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="20"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="20"/>
|
||||||
<source>Enter address...</source>
|
<source>Enter address...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="21"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="21"/>
|
||||||
<source>Account address</source>
|
<source>Account address</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="28"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="28"/>
|
||||||
<source>Enter an account name...</source>
|
<source>Enter an account name...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="29"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="29"/>
|
||||||
<source>Account name</source>
|
<source>Account name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/AddWatchOnlyAccount.qml" line="37"/>
|
<location filename="app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml" line="37"/>
|
||||||
<source>Account color</source>
|
<source>Account color</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -396,32 +396,32 @@
|
||||||
<context>
|
<context>
|
||||||
<name>GenerateAccountModal</name>
|
<name>GenerateAccountModal</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="7"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="7"/>
|
||||||
<source>Generate an account</source>
|
<source>Generate an account</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="19"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="19"/>
|
||||||
<source>Enter your password…</source>
|
<source>Enter your password…</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="20"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="20"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="28"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="28"/>
|
||||||
<source>Enter an account name...</source>
|
<source>Enter an account name...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="29"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="29"/>
|
||||||
<source>Account name</source>
|
<source>Account name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/GenerateAccountModal.qml" line="37"/>
|
<location filename="app/AppLayouts/Wallet/components/GenerateAccountModal.qml" line="37"/>
|
||||||
<source>Account color</source>
|
<source>Account color</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -694,17 +694,17 @@
|
||||||
<context>
|
<context>
|
||||||
<name>SendModalContent</name>
|
<name>SendModalContent</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/SendModalContent.qml" line="59"/>
|
<location filename="app/AppLayouts/Wallet/components/SendModalContent.qml" line="59"/>
|
||||||
<source>Enter ETH</source>
|
<source>Enter ETH</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/SendModalContent.qml" line="66"/>
|
<location filename="app/AppLayouts/Wallet/components/SendModalContent.qml" line="66"/>
|
||||||
<source>Send from (account)</source>
|
<source>Send from (account)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/SendModalContent.qml" line="79"/>
|
<location filename="app/AppLayouts/Wallet/components/SendModalContent.qml" line="79"/>
|
||||||
<source>Send to</source>
|
<source>Send to</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -790,57 +790,57 @@
|
||||||
<context>
|
<context>
|
||||||
<name>TransactionModal</name>
|
<name>TransactionModal</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="8"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="8"/>
|
||||||
<source>Transaction Details</source>
|
<source>Transaction Details</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="22"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="22"/>
|
||||||
<source>9999 Confirmations</source>
|
<source>9999 Confirmations</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="28"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="28"/>
|
||||||
<source>When the transaction has 12 confirmations you can consider it settled.</source>
|
<source>When the transaction has 12 confirmations you can consider it settled.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="57"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="57"/>
|
||||||
<source>Block</source>
|
<source>Block</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="82"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="82"/>
|
||||||
<source>Hash</source>
|
<source>Hash</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="109"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="109"/>
|
||||||
<source>From</source>
|
<source>From</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="136"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="136"/>
|
||||||
<source>To</source>
|
<source>To</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="163"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="163"/>
|
||||||
<source>Gas limit</source>
|
<source>Gas limit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="188"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="188"/>
|
||||||
<source>Gas price</source>
|
<source>Gas price</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="213"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="213"/>
|
||||||
<source>Gas used</source>
|
<source>Gas used</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="app/AppLayouts/Wallet/Components/TransactionModal.qml" line="238"/>
|
<location filename="app/AppLayouts/Wallet/components/TransactionModal.qml" line="238"/>
|
||||||
<source>Nonce</source>
|
<source>Nonce</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
Loading…
Reference in New Issue