on master help sign in
Merge branch 'master' into mino-onboarding-invites
92feccfFang
CHANGELOG+11
@@ -1,6 +1,17 @@
1
1
2# Changelog
2# Changelog
3
3
4+- 1.3.0 (2019-04-18)
5+ This release simplifies the flows surrounding networking keys and brings many other quality of life improvements.
6+
7+ * Simplify the network key generation & download flows (#85, #92)
8+ * Allow viewing points without logging in (#80)
9+ * Display transaction confirmation status after submission (#99)
10+ * Support the optional BIP39 mnemonic passphrase (#94)
11+ * Makes the browser back button work for navigating in Bridge (#86)
12+ * Various smaller UI improvements (#87, #100, #104, #106, #113, #116)
13+ * Various smaller code improvements (#82, #91, #95, #96, #108, #115)
14+
4- 1.2.1 (2019-03-21)
15- 1.2.1 (2019-03-21)
5 This release fixes an issue with the spawning of child points.
16 This release fixes an issue with the spawning of child points.
6
17
README.md+19−1
@@ -4,7 +4,25 @@ An application for interacting with Azimuth.
4
4
5## Usage
5## Usage
6
6
7−To run Bridge, follow the instructions on the [latest release][rele] page.
7+### Requirements
8+
9+Python 3.7.2
10+
11+### Instructions
12+
13+1. To use Bridge, [download a release](https://github.com/urbit/bridge/releases) and unzip it (`bridge-$version.zip`).
14+2. Open up your command line interface (Terminal on MacOS, Command Prompt on Windows).
15+3. `cd` into the `bridge-$version` directory.
16+4. Run this command: `python3 -m http.server 5000 --bind 127.0.0.1`
17+5. You can then use Bridge by navigating to http://localhost:5000 using a web browser.
18+
19+### Verify checksums
20+
21+To validate your downloaded file's integrity, compare the lines in checksum.txt to SHA-256 hashes of the `bridge-$version` directory's contents.
22+
23+- On MacOS: `shasum -a 256 -c checksums.txt .`
24+- On Linux: `sha256sum -c checksums.txt .`
25+- On Windows: Go into the `build` directory and verify files individually with `CertUtil -hashFile [file_name] SHA256`
8
26
9## Development Notes
27## Development Notes
10
28
package-lock.json+1−1
@@ -1,6 +1,6 @@
1{
1{
2 "name": "bridge",
2 "name": "bridge",
3− "version": "1.2.1",
3+ "version": "1.3.0",
4 "lockfileVersion": 1,
4 "lockfileVersion": 1,
5 "requires": true,
5 "requires": true,
6 "dependencies": {
6 "dependencies": {
package.json+3−4
@@ -1,6 +1,6 @@
1{
1{
2 "name": "bridge",
2 "name": "bridge",
3− "version": "1.2.1",
3+ "version": "1.3.0",
4 "description": "An application for interacting with Azimuth",
4 "description": "An application for interacting with Azimuth",
5 "repository": {
5 "repository": {
6 "type": "git",
6 "type": "git",
@@ -53,9 +53,8 @@
53 "build": "react-scripts build",
53 "build": "react-scripts build",
54 "test": "react-scripts test --env=jsdom",
54 "test": "react-scripts test --env=jsdom",
55 "eject": "react-scripts eject",
55 "eject": "react-scripts eject",
56− "checksum": "find build -exec shasum -a256 {} ';' > checksums.txt",
56+ "checksum": "cd build && find . -exec shasum -a256 {} ';' > ../checksums.txt && cd ..",
57− "tar": "tar -czvf bridge-$npm_package_version.tar.gz README.md bridge-https.py checksums.txt build",
57+ "zip": "zip -ur bridge-$npm_package_version.zip README.md bridge-https.py checksums.txt && cd build && zip -ur ../bridge-$npm_package_version.zip ./* && cd ..",
58− "zip": "zip -FSr bridge-$npm_package_version.zip README.md bridge-https.py checksums.txt build",
59 "release": "npm install && npm run build && npm run checksum && npm run zip",
58 "release": "npm install && npm run build && npm run checksum && npm run zip",
60 "pilot:ganache": "ganache-cli -m 'benefit crew supreme gesture quantum web media hazard theory mercy wing kitten' > /dev/null &",
59 "pilot:ganache": "ganache-cli -m 'benefit crew supreme gesture quantum web media hazard theory mercy wing kitten' > /dev/null &",
61 "pilot:deploy": "cd node_modules/azimuth-solidity && truffle deploy",
60 "pilot:deploy": "cd node_modules/azimuth-solidity && truffle deploy",
src/Root.js−5
@@ -9,7 +9,6 @@ import { AppNavigation } from './common/components/AppNavigation'
9
9
10import './common/style/index.css'
10import './common/style/index.css'
11import './bridge/style/index.css'
11import './bridge/style/index.css'
12−import './walletgen/style/index.css'
13
12
14class Root extends React.Component {
13class Root extends React.Component {
15 constructor(props) {
14 constructor(props) {
@@ -88,10 +87,6 @@ class Root extends React.Component {
88 return (
87 return (
89 <React.Fragment>
88 <React.Fragment>
90 {appComponent}
89 {appComponent}
91− <AppNavigation
92− setView={this.setView}
93− appView={this.state.appView}
94− />
95 </React.Fragment>
90 </React.Fragment>
96 )
91 )
97 }
92 }
src/bridge/components/ReactSVGComponents.js+24−24
@@ -2,59 +2,59 @@ import React from 'react'
2import { get, map } from 'lodash'
2import { get, map } from 'lodash'
3
3
4const ReactSVGComponents = {
4const ReactSVGComponents = {
5− svg: p => {
5+ svg: (p, key) => {
6 return (
6 return (
7− <svg {...p.attr} version={'1.1'} xmlns={'http://www.w3.org/2000/svg'}>
7+ <svg {...p.attr} version={'1.1'} xmlns={'http://www.w3.org/2000/svg'} key={key}>
8− { map(get(p, 'children', []), child => ReactSVGComponents[child.tag](child)) }
8+ { map(get(p, 'children', []), (child, idx) => ReactSVGComponents[child.tag](child, idx)) }
9 </svg>
9 </svg>
10 )
10 )
11 },
11 },
12− circle: p => {
12+ circle: (p, key) => {
13 return (
13 return (
14− <circle {...p.attr}>
14+ <circle {...p.attr} key={key}>
15− { map(get(p, 'children', []), child => ReactSVGComponents[child.tag](child)) }
15+ { map(get(p, 'children', []), (child, idx) => ReactSVGComponents[child.tag](child, idx)) }
16 </circle>
16 </circle>
17 )
17 )
18 },
18 },
19− rect: p => {
19+ rect: (p, key) => {
20 return (
20 return (
21− <rect {...p.attr}>
21+ <rect {...p.attr} key={key}>
22− { map(get(p, 'children', []), child => ReactSVGComponents[child.tag](child)) }
22+ { map(get(p, 'children', []), (child, idx) => ReactSVGComponents[child.tag](child, idx)) }
23 </rect>
23 </rect>
24 )
24 )
25 },
25 },
26− path: p => {
26+ path: (p, key) => {
27 return (
27 return (
28− <path {...p.attr}>
28+ <path {...p.attr} key={key}>
29− { map(get(p, 'children', []), child => ReactSVGComponents[child.tag](child)) }
29+ { map(get(p, 'children', []), (child, idx) => ReactSVGComponents[child.tag](child, idx)) }
30 </path>
30 </path>
31 )
31 )
32 },
32 },
33− g: p => {
33+ g: (p, key) => {
34 return (
34 return (
35− <g {...p.attr}>
35+ <g {...p.attr} key={key}>
36− { map(get(p, 'children', []), child => ReactSVGComponents[child.tag](child)) }
36+ { map(get(p, 'children', []), (child, idx) => ReactSVGComponents[child.tag](child, idx)) }
37 </g>
37 </g>
38 )
38 )
39 },
39 },
40− polygon: p => {
40+ polygon: (p, key) => {
41 return (
41 return (
42− <polygon {...p.attr}>
42+ <polygon {...p.attr} key={key}>
43− { map(get(p, 'children', []), child => ReactSVGComponents[child.tag](child)) }
43+ { map(get(p, 'children', []), (child, idx) => ReactSVGComponents[child.tag](child, idx)) }
44 </polygon>
44 </polygon>
45 )
45 )
46 },
46 },
47− line: p => {
47+ line: (p, key) => {
48 return (
48 return (
49− <line {...p.attr}>
49+ <line {...p.attr} key={key}>
50− { map(get(p, 'children', []), child => ReactSVGComponents[child.tag](child)) }
50+ { map(get(p, 'children', []), (child, idx) => ReactSVGComponents[child.tag](child, idx)) }
51 </line>
51 </line>
52 )
52 )
53 },
53 },
54− polyline: p => {
54+ polyline: (p, key) => {
55 return (
55 return (
56− <polyline {...p.attr}>
56+ <polyline {...p.attr} key={key}>
57− { map(get(p, 'children', []), child => ReactSVGComponents[child.tag](child)) }
57+ { map(get(p, 'children', []), (child, idx) => ReactSVGComponents[child.tag](child, idx)) }
58 </polyline>
58 </polyline>
59 )
59 )
60 }
60 }
src/bridge/views/CreateGalaxy.js+1−1
@@ -167,7 +167,7 @@ class CreateGalaxy extends React.Component {
167 <ValidatedSigil
167 <ValidatedSigil
168 className='tr-0 mt-05 mr-0 abs'
168 className='tr-0 mt-05 mr-0 abs'
169 patp={state.galaxyName}
169 patp={state.galaxyName}
170− size={76}
170+ size={68}
171 margin={8} />
171 margin={8} />
172 </GalaxyInput>
172 </GalaxyInput>
173
173
src/bridge/views/IssueChild.js+1−1
@@ -253,7 +253,7 @@ class IssueChild extends React.Component {
253 <ValidatedSigil
253 <ValidatedSigil
254 className={'tr-0 mt-05 mr-0 abs'}
254 className={'tr-0 mt-05 mr-0 abs'}
255 patp={state.desiredPoint}
255 patp={state.desiredPoint}
256− size={76}
256+ size={68}
257 margin={8}
257 margin={8}
258 validator={() => this.validatePoint(state.desiredPoint)} />
258 validator={() => this.validatePoint(state.desiredPoint)} />
259 </PointInput>
259 </PointInput>