Browse Source

init gitea

tags/v3.3.0
jojapoppa 11 months ago
parent
commit
24df5cc374
9 changed files with 7227 additions and 0 deletions
  1. +7
    -0
      LICENSE.md
  2. +109
    -0
      README.md
  3. +29
    -0
      afterPackLinux.js
  4. +1863
    -0
      main.js
  5. +4913
    -0
      package-lock.json
  6. +150
    -0
      package.json
  7. +153
    -0
      package_apkdeb.json
  8. +2
    -0
      runwalletd.sh
  9. +1
    -0
      zip.sh

+ 7
- 0
LICENSE.md View File

@@ -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.

+ 109
- 0
README.md View File

@@ -0,0 +1,109 @@
![WalletShell](docs/walletshell.png)
WalletShell is a GUI wallet for FED Coin.

# ![WalletShell Screens](https://i.imgur.com/41Ujq0S.aaaagif "WalletShell Screens")

### 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.

+ 29
- 0
afterPackLinux.js View File

@@ -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);
}

+ 1863
- 0
main.js
File diff suppressed because it is too large
View File


+ 4913
- 0
package-lock.json
File diff suppressed because it is too large
View File


+ 150
- 0
package.json View File

@@ -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"
}

+ 153
- 0
package_apkdeb.json View File

@@ -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"
}

+ 2
- 0
runwalletd.sh View File

@@ -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 &


+ 1
- 0
zip.sh View File

@@ -0,0 +1 @@
zip -r FedoraGoldWalletMac.zip FedoraGoldWallet.app

Loading…
Cancel
Save