Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

Commit

Permalink
Backporting to beta (#4175)
Browse files Browse the repository at this point in the history
* verification: check if server is running (#4140)

* verification: check if server is running

See also ethcore/email-verification#67c6466 and ethcore/sms-verification#a585e42.

* verification: show in the UI if server is running

* verification: code style ✨, more i18n

* fix i18n key

* Optimized hash lookups (#4144)

* Optimize hash comparison

* Use libc

* Ropsten fork detection (#4163)

* Stop flickering + added loader in AddressSelector (#4149)

* Stop UI flickering + added loader to AddressSelector #4103

* PR Grumbles

* Add a password strength component (#4153)

* Added new PasswordStrength Component

* Added tests

* PR Grumbles

* icarus -> update, increase web timeout. (#4165)

* icarus -> update, increase web timeout.

* Fix estimate gas

* Fix token images // Error in Contract Queries (#4169)

* Fix dapps not loading (#4170)

* Add secure to dappsreg

* Remove trailing slash // fix dapps
  • Loading branch information
arkpar authored and gavofyork committed Jan 16, 2017
1 parent 5b30a61 commit 65594b8
Show file tree
Hide file tree
Showing 36 changed files with 589 additions and 112 deletions.
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dapps/src/handlers/fetch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ use endpoint::EndpointPath;
use handlers::{ContentHandler, StreamingHandler};
use page::{LocalPageEndpoint, PageHandlerWaiting};

const FETCH_TIMEOUT: u64 = 30;
const FETCH_TIMEOUT: u64 = 300;

pub enum ValidatorResponse {
Local(LocalPageEndpoint),
Expand Down
4 changes: 3 additions & 1 deletion ethcore/res/ethereum/ropsten.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"accountStartNonce": "0x0",
"maximumExtraDataSize": "0x20",
"minGasLimit": "0x1388",
"networkID" : "0x3"
"networkID" : "0x3",
"forkBlock": 333922,
"forkCanonHash": "0x8737eb141d4f05db57af63fc8d3b4d4d8f9cddb0c4e1ab855de8c288fdc1924f"
},
"genesis": {
"seal": {
Expand Down
2 changes: 1 addition & 1 deletion ethcore/src/client/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -908,7 +908,7 @@ impl BlockChainClient for Client {

Executive::new(&mut state, &env_info, &*self.engine, &self.factories.vm)
.transact(&tx, options.clone())
.map(|r| r.exception.is_some())
.map(|r| r.exception.is_none())
.unwrap_or(false)
};

Expand Down
3 changes: 2 additions & 1 deletion js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@
"valid-url": "1.0.9",
"validator": "6.2.0",
"web3": "0.17.0-beta",
"whatwg-fetch": "2.0.1"
"whatwg-fetch": "2.0.1",
"zxcvbn": "4.4.1"
}
}
13 changes: 13 additions & 0 deletions js/src/3rdparty/email-verification/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,19 @@

import { stringify } from 'querystring';

export const isServerRunning = (isTestnet = false) => {
const port = isTestnet ? 28443 : 18443;
return fetch(`https://email-verification.parity.io:${port}/health`, {
mode: 'cors', cache: 'no-store'
})
.then((res) => {
return res.ok;
})
.catch(() => {
return false;
});
};

export const postToServer = (query, isTestnet = false) => {
const port = isTestnet ? 28443 : 18443;
query = stringify(query);
Expand Down
13 changes: 13 additions & 0 deletions js/src/3rdparty/sms-verification/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,19 @@

import { stringify } from 'querystring';

export const isServerRunning = (isTestnet = false) => {
const port = isTestnet ? 8443 : 443;
return fetch(`https://sms-verification.parity.io:${port}/health`, {
mode: 'cors', cache: 'no-store'
})
.then((res) => {
return res.ok;
})
.catch(() => {
return false;
});
};

export const postToServer = (query, isTestnet = false) => {
const port = isTestnet ? 8443 : 443;
query = stringify(query);
Expand Down
2 changes: 1 addition & 1 deletion js/src/dapps/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

module.exports = [
{ name: 'basiccoin', entry: 'basiccoin.js', title: 'Basic Token Deployment' },
{ name: 'dappreg', entry: 'dappreg.js', title: 'Dapp Registry' },
{ name: 'dappreg', entry: 'dappreg.js', title: 'Dapp Registry', secure: true },
{ name: 'githubhint', entry: 'githubhint.js', title: 'GitHub Hint', secure: true },
{ name: 'localtx', entry: 'localtx.js', title: 'Local transactions Viewer', secure: true },
{ name: 'registry', entry: 'registry.js', title: 'Registry' },
Expand Down
2 changes: 1 addition & 1 deletion js/src/modals/CreateAccount/NewAccount/newAccount.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// along with Parity. If not, see <http://www.gnu.org/licenses/>.

import React, { Component, PropTypes } from 'react';
import IconButton from 'material-ui/IconButton';
import { IconButton } from 'material-ui';
import { RadioButton, RadioButtonGroup } from 'material-ui/RadioButton';
import ActionAutorenew from 'material-ui/svg-icons/action/autorenew';

Expand Down
11 changes: 6 additions & 5 deletions js/src/modals/CreateAccount/RecoveryPhrase/recoveryPhrase.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,13 @@ export default class RecoveryPhrase extends Component {
value={ password2 }
onChange={ this.onEditPassword2 } />
</div>
<Checkbox
className={ styles.checkbox }
label='Key was created with Parity <1.4.5 on Windows'
checked={ windowsPhrase }
onCheck={ this.onToggleWindowsPhrase } />
</div>
<Checkbox
className={ styles.checkbox }
label='Key was created with Parity <1.4.5 on Windows'
checked={ windowsPhrase }
onCheck={ this.onToggleWindowsPhrase }
/>
</Form>
);
}
Expand Down
56 changes: 32 additions & 24 deletions js/src/modals/CreateAccount/createAccount.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import React, { Component, PropTypes } from 'react';
import { FormattedMessage } from 'react-intl';

import ActionDone from 'material-ui/svg-icons/action/done';
import ActionDoneAll from 'material-ui/svg-icons/action/done-all';
import ContentClear from 'material-ui/svg-icons/content/clear';
Expand Down Expand Up @@ -100,52 +101,54 @@ export default class CreateAccount extends Component {
switch (stage) {
case 0:
return (
<CreationType
onChange={ this.onChangeType } />
<CreationType onChange={ this.onChangeType } />
);

case 1:
if (createType === 'fromNew') {
return (
<NewAccount
onChange={ this.onChangeDetails } />
<NewAccount onChange={ this.onChangeDetails } />
);
} else if (createType === 'fromGeth') {
}

if (createType === 'fromGeth') {
return (
<NewGeth
accounts={ accounts }
onChange={ this.onChangeGeth } />
onChange={ this.onChangeGeth }
/>
);
} else if (createType === 'fromPhrase') {
}

if (createType === 'fromPhrase') {
return (
<RecoveryPhrase
onChange={ this.onChangeDetails } />
<RecoveryPhrase onChange={ this.onChangeDetails } />
);
} else if (createType === 'fromRaw') {
}

if (createType === 'fromRaw') {
return (
<RawKey
onChange={ this.onChangeDetails } />
<RawKey onChange={ this.onChangeDetails } />
);
}

return (
<NewImport
onChange={ this.onChangeWallet } />
<NewImport onChange={ this.onChangeWallet } />
);

case 2:
if (createType === 'fromGeth') {
return (
<AccountDetailsGeth
addresses={ this.state.gethAddresses } />
<AccountDetailsGeth addresses={ this.state.gethAddresses } />
);
}

return (
<AccountDetails
address={ this.state.address }
name={ this.state.name }
phrase={ this.state.phrase } />
phrase={ this.state.phrase }
/>
);
}
}
Expand Down Expand Up @@ -210,11 +213,14 @@ export default class CreateAccount extends Component {
}

return (
<Warning warning={
<FormattedMessage
id='createAccount.warning.insecurePassword'
defaultMessage='It is recommended that a strong password be used to secure your accounts. Empty and trivial passwords are a security risk.' />
} />
<Warning
warning={
<FormattedMessage
id='createAccount.warning.insecurePassword'
defaultMessage='It is recommended that a strong password be used to secure your accounts. Empty and trivial passwords are a security risk.'
/>
}
/>
);
}

Expand Down Expand Up @@ -371,7 +377,7 @@ export default class CreateAccount extends Component {
}

onChangeDetails = (canCreate, { name, passwordHint, address, password, phrase, rawKey, windowsPhrase }) => {
this.setState({
const nextState = {
canCreate,
name,
passwordHint,
Expand All @@ -380,7 +386,9 @@ export default class CreateAccount extends Component {
phrase,
windowsPhrase: windowsPhrase || false,
rawKey
});
};

this.setState(nextState);
}

onChangeRaw = (canCreate, rawKey) => {
Expand Down
6 changes: 4 additions & 2 deletions js/src/modals/PasswordManager/passwordManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';

import { newError, openSnackbar } from '~/redux/actions';
import { Button, Modal, IdentityName, IdentityIcon } from '~/ui';
import { Button, Modal, IdentityName, IdentityIcon, PasswordStrength } from '~/ui';
import Form, { Input } from '~/ui/Form';
import { CancelIcon, CheckIcon, SendIcon } from '~/ui/Icons';

Expand Down Expand Up @@ -120,7 +120,7 @@ class PasswordManager extends Component {
}

renderPage () {
const { busy, isRepeatValid, passwordHint } = this.store;
const { busy, isRepeatValid, newPassword, passwordHint } = this.store;

return (
<Tabs
Expand Down Expand Up @@ -236,6 +236,8 @@ class PasswordManager extends Component {
type='password' />
</div>
</div>

<PasswordStrength input={ newPassword } />
</div>
</Form>
</Tab>
Expand Down
18 changes: 18 additions & 0 deletions js/src/modals/Transfer/store.js
Original file line number Diff line number Diff line change
Expand Up @@ -220,13 +220,27 @@ export default class TransferStore {
}

@action _attachWalletOperation = (txhash) => {
if (!txhash || /^(0x)?0*$/.test(txhash)) {
return;
}

let ethSubscriptionId = null;

// Number of blocks left to look-up (unsub after 15 blocks if nothing)
let nBlocksLeft = 15;

return this.api.subscribe('eth_blockNumber', () => {
this.api.eth
.getTransactionReceipt(txhash)
.then((tx) => {
if (nBlocksLeft <= 0) {
this.api.unsubscribe(ethSubscriptionId);
ethSubscriptionId = null;
return;
}

if (!tx) {
nBlocksLeft--;
return;
}

Expand All @@ -239,6 +253,10 @@ export default class TransferStore {
this.operation = operations[0];
}

this.api.unsubscribe(ethSubscriptionId);
ethSubscriptionId = null;
})
.catch(() => {
this.api.unsubscribe(ethSubscriptionId);
ethSubscriptionId = null;
});
Expand Down
Loading

0 comments on commit 65594b8

Please sign in to comment.