@@ -0,0 +1,7 @@ | |||
ISC License (ISC) | |||
Copyright (c) 2018, 2019, FedoraGold, Macroshock, Rixombea, TurtleCoin Developers | |||
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. | |||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
@@ -0,0 +1,109 @@ | |||
 | |||
WalletShell is a GUI wallet for FED Coin. | |||
#  | |||
### Features: | |||
This wallet contains the basic functions required to manage your FED Coin assets: | |||
* Wallet creation | |||
* Create new wallet | |||
* Import from private keys | |||
* Import from mnemonic seed | |||
* Basic wallet operation | |||
* Open an existing wallet | |||
* Display wallet address & balance | |||
* Display private keys/seed | |||
* Export private keys/seed | |||
* Transactions listing/sorting/searching | |||
* Display transaction detail | |||
* Export incoming, outgoing, or all transactions to csv file. | |||
* Incoming Transaction notification | |||
* Send FED Coin to single recipient address, allow to set payment id and custom fee. Provides address lookup from addressbook. | |||
* Perform wallet optimization by creating fusion transactions | |||
* Provides utility to generate payment id and integrated address | |||
* Address book | |||
* Add/Edit/Delete address entry (label/name, address and payment id) | |||
* Listing/sorting/searching existing entries | |||
* Allow to store same wallet address with different payment id | |||
* Autosave address after sending to new/unknown recipient | |||
* Misc | |||
* Provides setting to set local or public node address | |||
* Option to use system tray (on closing/minimizing wallet) | |||
* Provides list of public nodes, fetch/updated daily from fedcoin-nodes-json repo. | |||
* Custom node address that is not on the list will be added/remembered for future use | |||
* Theme: Dark & Light Mode | |||
* [Keyboard shortcuts](docs/shortcut.md) | |||
### Notes | |||
WalletShell relies on `service` to manage wallet container & rpc communication. | |||
Release installer & packaged archived includes a ready to use `service` binary, which is unmodified copy FED Coin release archive. | |||
On first launch, WalletShell will try to detect location/path of bundled `service` binary, but if it's failed, you can manually set path to the `service` binary on the Settings screen. | |||
If you don't trust the bundled `service` file, you can compare the checksum (sha256sum) against one from the official release, or simply download and use the binary from official FED Coin release, which is available here: https://github.com/jojapoppa/fedoragold-release. Then, make sure to update your `service` path setting. | |||
### Download & Run WalletShell | |||
#### Windows: | |||
1. Download the latest installer here: https://github.com/jojapoppa/fedoragold-wallet-electron | |||
2. Run the installer (`walletshell-<version>-win-setup.exe`) and follow the installation wizard. | |||
3. Launch WalletShell via start menu or desktop shortcut. | |||
#### GNU/Linux (AppImage): | |||
1. Download latest AppImage bundle here: https://github.com/jojapoppa/fedoragold-wallet-electron | |||
2. Make it executable, either via GUI file manager or command line, e.g. `chmod +x walletshell-<version>-linux.AppImage` | |||
3. Run/execute the file, double click in file manager, or run via shell/command line. | |||
See: https://docs.appimage.org/user-guide/run-appimages.html | |||
#### macOS (TBD/Untested) | |||
1. Download latest archive here: https://github.com/jojapoppa/fedoragold-wallet-electron | |||
2. Extract downloaded tar archived | |||
3. Run the executable binary (`WalletShell.app/Contents/MacOs/WalletShell`) ?? | |||
### Build | |||
You need to have `Node.js` and `npm` installed, go to https://nodejs.org and find out how to get it installed on your platform. | |||
Once you have Node+npm installed: | |||
``` | |||
# first, download service binary for each platform | |||
# from FED Coin official repo | |||
# extract the service executable somewhere | |||
# clone the repo | |||
$ git clone https://github.com/jojapoppa/fedoragold-wallet-electron | |||
$ cd fedoragold-wallet-electron | |||
# install dependencies | |||
$ npm install | |||
# create build+dist directory | |||
$ mkdir -p ./build && mkdir -p ./dist | |||
# copy/symlink icons from assets, required for packaging | |||
$ cp ./src/assets/icon.* ./build/ | |||
# build GNU/Linux package | |||
$ mkdir -p ./bin/lin | |||
$ cp /path/to/linux-version-of/service ./bin/lin/ | |||
$ npm run dist-lin | |||
# build Windows package | |||
$ mkdir -p ./bin/win | |||
$ cp /path/to/win-version-of/service.exe ./bin/win/ | |||
$ npm run dist-win | |||
# build OSX package | |||
$ mkdir -p ./bin/osx | |||
$ cp /path/to/osx-version-of/service ./bin/osx/ | |||
$ npm run dist-mac | |||
``` | |||
Resulting packages or installer can be found inside `dist/` directory. | |||
### Porting for other coin | |||
Please see [this guide](docs/porting.md) if you want to adapt WalletShell to be use for your own Coin fork. |
@@ -0,0 +1,29 @@ | |||
const fs = require('fs'); | |||
const path = require('path'); | |||
const chdir = require('process').chdir; | |||
const exec = require('child_process').exec; | |||
exports.default = async function (context) { | |||
console.log(context) | |||
const isLinux = context.targets.find(target => target.name === 'appImage') | |||
if (!isLinux) { | |||
console.log("It's not Linux: No afterPack needed to apply --no-sandbox option"); | |||
return; | |||
} | |||
const originalDir = process.cwd(); | |||
const dirname = context.appOutDir; | |||
chdir(dirname); | |||
console.log("repacking in folder: "+dirname); | |||
fs.rename(dirname+'/fedoragoldwallet', dirname+'/fedoragoldwallet.bin', () => { | |||
const wrapperScript = `#!/bin/bash | |||
"\${BASH_SOURCE%/*}"/fedoragoldwallet.bin "$@" --no-sandbox | |||
`; | |||
console.log("repack script: "+wrapperScript); | |||
fs.writeFileSync(dirname+'/fedoragoldwallet', wrapperScript); | |||
fs.chmod(dirname+'/fedoragoldwallet', 0o770, ()=>{console.log('repacked with --no-sandbox');}); | |||
}); | |||
chdir(originalDir); | |||
} |
@@ -0,0 +1,150 @@ | |||
{ | |||
"name": "FedoraGoldWallet", | |||
"productName": "FedoraGoldWallet", | |||
"description": "FedoraGold (FED) GUI Wallet", | |||
"version": "v3.2.5", | |||
"homepage": "https://github.com/jojapoppa/fedoragold-wallet-electron", | |||
"repository": "https://github.com/jojapoppa/fedoragold-wallet-electron", | |||
"main": "main.js", | |||
"nodejs": true, | |||
"scripts": { | |||
"start": "electron . --max-old-space-size=6076 ", | |||
"debug": "electron . debug", | |||
"dev": "electron . dev", | |||
"dist-win": "./node_modules/.bin/electron-builder --x64 --win", | |||
"dist-mac": "./node_modules/.bin/electron-builder --x64 --mac", | |||
"dist-lin": "./node_modules/.bin/electron-builder --x64 --linux" | |||
}, | |||
"engines": { | |||
"node": "v12.18.3", | |||
"npm": "7.14.0" | |||
}, | |||
"keywords": [], | |||
"author": "FedoraGold (FED), Rixombea, Macroshock & TurtleCoin Developers", | |||
"license": "ISC", | |||
"devDependencies": { | |||
"devtron": "^1.4.0", | |||
"electron": "^9.4.4", | |||
"electron-builder": "^22.10.5", | |||
"eslint": "^6.8.0", | |||
"eslint-plugin-react": "^7.23.2", | |||
"jshint": "^2.12.0" | |||
}, | |||
"dependencies": { | |||
"@trodi/electron-splashscreen": "^0.3.4", | |||
"alert": "^5.0.10", | |||
"associative-array": "^1.0.2", | |||
"axios": "^0.21.1", | |||
"blake2s": "^1.1.0", | |||
"bottleneck": "^2.19.5", | |||
"cross-spawn": "^7.0.3", | |||
"csv-writer": "^1.6.0", | |||
"diskusage": "^1.1.3", | |||
"electron-log": "^2.2.17", | |||
"electron-store": "^2.0.0", | |||
"electron-updater": "^4.3.9", | |||
"forge": "^2.3.0", | |||
"fs-extra": "^9.1.0", | |||
"ip2int": "^1.0.1", | |||
"is-running": "^2.1.0", | |||
"keypair": "^1.0.3", | |||
"navigator": "^1.0.1", | |||
"node-forge": "^0.10.0", | |||
"nthen": "^0.1.10", | |||
"pidusage-tree": "^2.0.5", | |||
"ps-node": "^0.1.6", | |||
"qr-image": "^3.2.0", | |||
"randombytes": "^2.1.0", | |||
"request": "^2.88.2", | |||
"screen": "^0.2.10", | |||
"semver": "^5.7.1", | |||
"set-interval-async": "^1.0.34", | |||
"source-map-support": "^0.5.19", | |||
"ssh2": "^0.8.9", | |||
"system-sleep": "^1.3.7", | |||
"tree-kill": "^1.2.2", | |||
"ts-socks": "^0.9.3", | |||
"typescript": "^4.3.2", | |||
"util": "^0.12.3" | |||
}, | |||
"build": { | |||
"appId": "fed.fedoragold.walletshell", | |||
"copyright": "Copyright (c) 2018-2020 FedoraGold, Rixombea, Macroshock, TurtleCoin Developers", | |||
"directories": { | |||
"output": "dist", | |||
"buildResources": "build" | |||
}, | |||
"afterPack": "./afterPackLinux.js", | |||
"files": [ | |||
"**/*", | |||
"build/icon.*" | |||
], | |||
"publish": [ | |||
{ | |||
"provider": "github", | |||
"owner": "jojapoppa", | |||
"releaseType": "release", | |||
"repo": "fedoragold-wallet-electron" | |||
} | |||
], | |||
"extraFiles": [ | |||
{ | |||
"from": "./bin/linux", | |||
"to": "resources/bin/linux", | |||
"filter": [ | |||
"**/*" | |||
] | |||
}, | |||
{ | |||
"from": "./bin/mac", | |||
"to": "Resources/bin/mac", | |||
"filter": [ | |||
"**/*" | |||
] | |||
}, | |||
{ | |||
"from": "./bin/win", | |||
"to": "Resources/bin/win", | |||
"filter": [ | |||
"**/*" | |||
] | |||
} | |||
], | |||
"linux": { | |||
"artifactName": "${productName}-v${version}-${os}.${ext}", | |||
"target": [ | |||
"AppImage" | |||
], | |||
"publish": [ | |||
"github" | |||
], | |||
"maintainer": "jojapoppa", | |||
"category": "Office", | |||
"vendor": "FedoraGold", | |||
"synopsis": "FedoraGold GUI Wallet" | |||
}, | |||
"win": { | |||
"target": "nsis", | |||
"publish": [ | |||
"github" | |||
], | |||
"publisherName": "FedoraGold", | |||
"legalTrademarks": "FedoraGold (FED)", | |||
"icon": "build/icon.ico" | |||
}, | |||
"nsis": { | |||
"artifactName": "${productName}-v${version}-${os}-${arch}-setup.${ext}", | |||
"oneClick": true, | |||
"perMachine": false | |||
}, | |||
"mac": { | |||
"publish": [ | |||
"github" | |||
], | |||
"artifactName": "${productName}-v${version}-${os}-${arch}.${ext}", | |||
"category": "public.app-category.business", | |||
"target": "zip" | |||
} | |||
}, | |||
"postinstall": "./node_modules/.bin/electron-builder install-app-deps" | |||
} |
@@ -0,0 +1,153 @@ | |||
{ | |||
"name": "FedoraGoldWallet", | |||
"productName": "FedoraGoldWallet", | |||
"description": "FedoraGold (FED) GUI Wallet", | |||
"version": "v2.2.0", | |||
"homepage": "https://github.com/jojapoppa/fedoragold-wallet-electron", | |||
"repository": "https://github.com/jojapoppa/fedoragold-wallet-electron", | |||
"main": "main.js", | |||
"scripts": { | |||
"start": "electron .", | |||
"debug": "electron . debug", | |||
"dev": "electron . dev", | |||
"dist-win": "./node_modules/.bin/electron-builder --x64 --win", | |||
"dist-mac": "./node_modules/.bin/electron-builder --x64 --mac", | |||
"dist-lin": "./node_modules/.bin/electron-builder --x64 --linux" | |||
}, | |||
"engines": { | |||
"node": "v10.15.2", | |||
"npm": "5.8.0" | |||
}, | |||
"keywords": [], | |||
"author": "FedoraGold (FED), Rixombea, Macroshock & TurtleCoin Developers", | |||
"license": "ISC", | |||
"devDependencies": { | |||
"devtron": "^1.4.0", | |||
"electron": "^3.1.13", | |||
"electron-builder": "^22.1.0", | |||
"eslint": "^6.6.0", | |||
"eslint-plugin-react": "^7.16.0", | |||
"jshint": "^2.10.2" | |||
}, | |||
"dependencies": { | |||
"@trodi/electron-splashscreen": "^0.3.4", | |||
"ansi_up": "^4.0.4", | |||
"csv-writer": "^1.5.0", | |||
"electron-log": "^2.2.17", | |||
"electron-store": "^2.0.0", | |||
"electron-updater": "^4.1.2", | |||
"is-running": "^2.1.0", | |||
"navigator": "^1.0.1", | |||
"ps-node": "^0.1.6", | |||
"qr-image": "^3.2.0", | |||
"request": "^2.88.0", | |||
"request-promise-native": "^1.0.7", | |||
"screen": "^0.2.10", | |||
"semver": "^5.7.1", | |||
"set-interval-async": "1.0.29", | |||
"system-sleep": "^1.3.6", | |||
"tree-kill": "^1.2.1" | |||
}, | |||
"build": { | |||
"appId": "fed.fedoragold.walletshell", | |||
"copyright": "Copyright (c) 2018, 2019, 2020 FedoraGold, Rixombea, Macroshock, TurtleCoin Developers", | |||
"directories": { | |||
"output": "dist", | |||
"buildResources": "build" | |||
}, | |||
"files": [ | |||
"**/*", | |||
"build/icon.*" | |||
], | |||
"publish": [ | |||
{ | |||
"provider": "github", | |||
"owner": "jojapoppa", | |||
"releaseType": "release", | |||
"repo": "fedoragold-wallet-electron" | |||
} | |||
], | |||
"extraFiles": [ | |||
{ | |||
"from": "./bin/linux", | |||
"to": "resources/bin/linux", | |||
"filter": [ | |||
"**/*" | |||
] | |||
}, | |||
{ | |||
"from": "./bin/android", | |||
"to": "resources/bin/android", | |||
"filter": [ | |||
"**/*" | |||
] | |||
}, | |||
{ | |||
"from": "./bin/mac", | |||
"to": "Resources/bin/mac", | |||
"filter": [ | |||
"**/*" | |||
] | |||
}, | |||
{ | |||
"from": "./bin/win", | |||
"to": "Resources/bin/win", | |||
"filter": [ | |||
"**/*" | |||
] | |||
} | |||
], | |||
"linux": { | |||
"icon": "./build", | |||
"target": [{ | |||
"target": "appImage", | |||
"arch": "x64" | |||
},{ | |||
"target": "apk", | |||
"arch": "arm64" | |||
},{ | |||
"target": "deb", | |||
"arch": ["x64","arm64"] | |||
}], | |||
"publish": [ | |||
"github" | |||
], | |||
"maintainer": "jojapoppa", | |||
"category": "Office", | |||
"vendor": "FedoraGold", | |||
"synopsis": "FedoraGold GUI Wallet" | |||
}, | |||
"appImage": { | |||
"artifactName": "${productName}-v${version}-${os}.${ext}" | |||
}, | |||
"apk": { | |||
"artifactName": "${productName}-v${version}-android.${ext}" | |||
}, | |||
"deb": { | |||
"artifactName": "${productName}-v${version}-${os}.${arch}.${ext}" | |||
}, | |||
"win": { | |||
"target": "nsis", | |||
"publish": [ | |||
"github" | |||
], | |||
"publisherName": "FedoraGold", | |||
"legalTrademarks": "FedoraGold (FED)", | |||
"icon": "build/icon.ico" | |||
}, | |||
"nsis": { | |||
"artifactName": "${productName}-v${version}-${os}-${arch}-setup.${ext}", | |||
"oneClick": true, | |||
"perMachine": false | |||
}, | |||
"mac": { | |||
"publish": [ | |||
"github" | |||
], | |||
"artifactName": "${productName}-v${version}-${os}-${arch}.${ext}", | |||
"category": "public.app-category.business", | |||
"target": "zip" | |||
} | |||
}, | |||
"postinstall": "./node_modules/.bin/electron-builder install-app-deps" | |||
} |
@@ -0,0 +1,2 @@ | |||
./fedoragold_walletd --data-dir /home/fedoragold/.fedoragold --container-file /home/fedoragold/FEDWallet.wallet --container-password *** --bind-address 127.0.0.1 --bind-port 9090 --local --rpc-user feduser --rpc-password *** --daemon & | |||
@@ -0,0 +1 @@ | |||
zip -r FedoraGoldWalletMac.zip FedoraGoldWallet.app |