Skip to content

Commit

Permalink
prepare to release iotex-wallet
Browse files Browse the repository at this point in the history
  • Loading branch information
puncsky committed May 3, 2019
1 parent 2d60801 commit 8c9b1b4
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 48 deletions.
47 changes: 10 additions & 37 deletions src/electron/README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,18 @@
# electron-quick-start
# iotex-wallet

**Clone and run for a quick way to see Electron in action.**
This is a desktop version of iotex wallet.

This is a minimal Electron application based on the [Quick Start Guide](https://electronjs.org/docs/tutorial/quick-start) within the Electron documentation.
## Development

**Use this app along with the [Electron API Demos](https://electronjs.org/#get-started) app for API code examples to help you get started.**

A basic Electron application needs just these files:

- `package.json` - Points to the app's main file and lists its details and dependencies.
- `main.js` - Starts the app and creates a browser window to render HTML. This is the app's **main process**.
- `index.html` - A web page to render. This is the app's **renderer process**.

You can learn more about each of these components within the [Quick Start Guide](https://electronjs.org/docs/tutorial/quick-start).

## To Use

To clone and run this repository you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line:
Watch the server first.

```bash
# Clone this repository
git clone https://github.com/electron/electron-quick-start
# Go into the repository
cd electron-quick-start
# Install dependencies
npm install
# Run the app
npm start
cd ../../
npm run watch
```

Note: If you're using Linux Bash for Windows, [see this guide](https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/) or use `node` from the command prompt.
Then open another terminal window.

## Resources for Learning Electron

- [electronjs.org/docs](https://electronjs.org/docs) - all of Electron's documentation
- [electronjs.org/community#boilerplates](https://electronjs.org/community#boilerplates) - sample starter apps created by the community
- [electron/electron-quick-start](https://github.com/electron/electron-quick-start) - a very basic starter Electron app
- [electron/simple-samples](https://github.com/electron/simple-samples) - small applications with ideas for taking them further
- [electron/electron-api-demos](https://github.com/electron/electron-api-demos) - an Electron app that teaches you how to use Electron
- [hokein/electron-sample-apps](https://github.com/hokein/electron-sample-apps) - small demo apps for the various Electron APIs

## License

[CC0 1.0 (Public Domain)](LICENSE.md)
```bash
npm run start
```
21 changes: 18 additions & 3 deletions src/electron/package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
{
"name": "iotex-wallet",
"version": "0.1.1",
"version": "0.1.2",
"description": "IoTeX Wallet App",
"main": "dist/app/main.js",
"scripts": {
"start": "electron src/main.js",
"build": "npm run build:js && npm run build:electron",
"build:js": "NODE_OPTIONS=\"--max-old-space-size=20148\" webpack --config ./webpack.app.config.js",
"build:electron": "electron-builder -mwl"
"build:electron": "electron-builder -mwl",
"publish": "build --mac --win --linux -p always"
},
"repository": {
"type": "git",
"url": "[email protected]:iotexproject/iotex-explorer.git"
},
"build": {
"appId": "io.iotex.wallet",
Expand All @@ -19,7 +24,13 @@
"directories": {
"buildResources": "resources"
},
"publish": null
"publish": [
{
"provider": "github",
"owner": "iotexproject",
"repo": "iotex-explorer"
}
]
},
"author": "Tian Pan (https://tianpan.co)",
"license": "Apache",
Expand All @@ -30,5 +41,9 @@
"friendly-errors-webpack-plugin": "^1.7.0",
"webpack-merge": "^4.2.1",
"webpack-node-externals": "^1.7.2"
},
"Dependencies": {
"electron-log": "^3.0.5",
"electron-updater": "^4.0.6"
}
}
2 changes: 1 addition & 1 deletion src/electron/src/index.html

Large diffs are not rendered by default.

39 changes: 38 additions & 1 deletion src/electron/src/main.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Modules to control application life and create native browser window
const { app, BrowserWindow } = require("electron");
const { app, BrowserWindow, Menu } = require("electron");
const path = require("path");

// Keep a global reference of the window object, if you don't, the window will
Expand Down Expand Up @@ -56,3 +56,40 @@ app.on("activate", function() {
// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.
// refresh
const { autoUpdater } = require("electron-updater");
const log = require("electron-log");
autoUpdater.logger = log;
autoUpdater.logger.transports.file.level = "info";
log.info("App starting...");

//-------------------------------------------------------------------
// Define the menu
//
// THIS SECTION IS NOT REQUIRED
//-------------------------------------------------------------------
let template = [];
if (process.platform === "darwin") {
// OS X
const name = app.getName();
template.unshift({
label: name,
submenu: [
{
label: "About " + name,
role: "about"
},
{
label: "Quit",
accelerator: "Command+Q",
click() {
app.quit();
}
}
]
});
}

// check for updates
app.on("ready", function() {
autoUpdater.checkForUpdatesAndNotify();
});
25 changes: 21 additions & 4 deletions src/shared/common/rules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,24 +20,41 @@ export const rules: Rules = {
},
number: {
type: "number",
message: t("wallet.error.number"),
transform: (value: string) => {
return Number(value);
},
validator: (_, value, callback) => {
if (typeof value === "number") {
callback();
} else {
callback(t("wallet.error.number"));
}
}
},
boolean: {
type: "boolean",
message: t("wallet.error.boolean"),
transform: (value: string) => {
return value === "true";
},
validator: (_, value, callback) => {
if (typeof value === "boolean") {
callback();
} else {
callback(t("wallet.error.boolean"));
}
}
},
abi: {
message: t("wallet.interact.invalidABI")
},
addressLength: {
len: 41,
message: t("input.error.raw_address.length")
validator: (_, value, callback) => {
if (String(value).trim().length === 41) {
callback();
} else {
callback(t("input.error.raw_address.length"));
}
}
},
strongPassword: {
validator: (_, value, callback) => {
Expand Down
6 changes: 5 additions & 1 deletion src/shared/wallet/unlock-by-keystore-file.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,11 @@ class UnlockByKeystoreFileInner extends PureComponent<

<PasswordFormInputItem form={form} />

<Button onClick={this.unlockWallet} loading={isDecrypting}>
<Button
htmlType="submit"
onClick={this.unlockWallet}
loading={isDecrypting}
>
{t("wallet.account.unlock")}
</Button>
</Form>
Expand Down
6 changes: 5 additions & 1 deletion src/shared/wallet/unlock-by-private-key.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,11 @@ class UnlockByPrivateKeyInner extends PureComponent<
/>
)}
</Form.Item>
<Button disabled={!validPrikey} onClick={this.unlockWallet}>
<Button
htmlType="submit"
disabled={!validPrikey}
onClick={this.unlockWallet}
>
{t("wallet.account.unlock")}
</Button>
</Form>
Expand Down

0 comments on commit 8c9b1b4

Please sign in to comment.