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

Commit

Permalink
Merge Hard Fork choice - Mist into master (#979)
Browse files Browse the repository at this point in the history
* bump version to 0.7.6

* updated os timesync

* adding setting to change UI language (fixes #813) (#896)

* simple language setting menu

* use i18n label in menu

* simple language setting menu

* use i18n label in menu

* change language of menu bar by triggering 'backendAction_setLanguage'

* adds translations for language names

* remove duplicate 'gulp update-nodes' (#897)

* add i18n entry for OSX's 'Services' (#887)

* add i18n entry for OSX's 'Services'

* update missing osx menu strings

* update-popup-window: prevent maximize (#885)

* update-popup-window prevent maximize

* add resizable:false

* added shrinkwrap (#903)

* fixed webview tagd and updated electrong to 1.2.5 (#905)

* Fixes the node start IPC connection (#841)

* fixed eth start, but crash is not graceful

* better socket connection logic, remove master ps logic for eth

* fix splash screen display of state text for eth

* better gulp download plugin, remove master passwd stuff once and for all

* Adds Toggle password visibility to on boarding screen (#909)

* add password visibilty toggle to onboarding

* replaced 'showPassword' with 'passwordInputType'

* changed id into class

* 18n cleanup (former #889) (#910)

* Renamed Korean and Albanian to ISO standards
* Added menu items to set to Dutch,  Farsi, Albanian and Italian (these three are rather incomplete)

* changed log error to warn

* fixed ipcBackend notifications

* Fixing wallet tab insertion (#911)

* small cleanup

* added admin:true permission

* removed webview duplicate

* Fully automated UI testing (#788)


* got app launching via test

* work towards testing - private net integration

* change how we name options to pass directly to geth, so that test suite works

* refactor preloader scripts

* cleanly quitting the app at the end of tests

* trying to get electron working properly, upgrade to 1.2.2

* upgrade spectron

* work towards getting tests to work

* dont use NODE_ENV var as Meteor production uses it

* fixed eth start, but crash is not graceful

* better socket connection logic, remove master ps logic for eth

* fix splash screen display of state text for eth

* better gulp download plugin, remove master passwd stuff once and for all

* got basic test working

* update travis build

* trigger build

* update readme, travis

* fix gulp-download-stream use

* fix build command

* testing account creation

* added account creation test

* only do a shallow clone

* final deposit test

* should be able to find geth executable now

* adds the wallet as the default tab (#924)

* Text updates

Fix typos and make writing more clear and accurate

* Capitalization consistency

* adds the wallet as the default tab

* always upsert

* Update version to 0.8 (#930)

* update to 0.8

* fixes menu margin clipping

* remove comma

* work towards new minimonogo sync

* fix ipcpath bug

* got basic persistence working

* minor error

* refactor sendTransaction error alerts (#959)

* "Change language" translated in mist.nb.i18n.json (#953)

"Change language" translated in mist.nb.i18n.json

* timer delay on menu refreshing from tab updates

* rename 'passwordError' to 'wrongPassword' for consistency (#951)

* sync not specific to a window

* refactor to enable access to mongo sync from all windows

* update .meteor paths on .gitignore (#977)

* DAO fork support (#970)

* created DAO fork dummy code

* text update

* added node flags choice 

* changed DAO fork texts

* disable eth-node switch until hardfork is supported (#975)

* disable eth-node until hardfork is supported

* remove test function

* reworded the disclaimer link
  • Loading branch information
frozeman authored and Alex Van de Sande committed Jul 17, 2016
1 parent 0e66660 commit 6d58bff
Show file tree
Hide file tree
Showing 46 changed files with 2,141 additions and 194 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ node_modules/
packages/
interface_build/
interface/public/i18n/
interface/.meteor/dev_bundle
interface/.meteor/public/
dist_wallet/
dist_mist/
config.json
Expand Down
12 changes: 6 additions & 6 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ var filenameLowercase = 'mist';
var filenameUppercase = 'Mist';
var applicationName = 'Mist';
var electronVersion = '1.2.5';
var gethVersion = '1.4.7';
var gethVersion = '1.4.10';
var nodeUrls = {
'darwin-x64': 'https://github.com/ethereum/go-ethereum/releases/download/v1.4.7/geth-OSX-2016061509421-1.4.7-667a386.zip',
'linux-x64': 'https://github.com/ethereum/go-ethereum/releases/download/v1.4.7/geth-Linux64-20160615125500-1.4.7-667a386.tar.bz2',
'win32-x64': 'https://github.com/ethereum/go-ethereum/releases/download/v1.4.7/Geth-Win64-20160615094032-1.4.7-667a386.zip',
'linux-ia32': 'https://bintray.com/karalabe/ethereum/download_file?file_path=geth-1.4.7-stable-667a386-linux-386.tar.bz2',
'win32-ia32': 'https://bintray.com/karalabe/ethereum/download_file?file_path=geth-1.4.7-stable-667a386-windows-4.0-386.exe.zip'
'darwin-x64': 'https://github.com/ethereum/go-ethereum/releases/download/v1.4.10/geth-OSX-20160716155225-1.4.10-5f55d95.zip',
'linux-x64': 'https://github.com/ethereum/go-ethereum/releases/download/v1.4.10/geth-Linux64-20160716160600-1.4.10-5f55d95.tar.bz2',
'win32-x64': 'https://github.com/ethereum/go-ethereum/releases/download/v1.4.10/Geth-Win64-20160716155900-1.4.10-5f55d95.zip',
'linux-ia32': 'https://bintray.com/karalabe/ethereum/download_file?file_path=geth-1.4.10-stable-5f55d95-linux-386.tar.bz2',
'win32-ia32': 'https://bintray.com/karalabe/ethereum/download_file?file_path=geth-1.4.10-stable-5f55d95-windows-4.0-386.exe.zip'
};

var osVersions = [];
Expand Down
1 change: 1 addition & 0 deletions interface/.meteor/dev_bundle
2 changes: 1 addition & 1 deletion interface/.meteor/versions
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ ecmascript-runtime@0.2.11
ejson@1.0.12
ethereum:accounts@0.3.10
ethereum:blocks@0.3.1
ethereum:dapp-styles@0.5.5
ethereum:dapp-styles@0.5.6
ethereum:elements@0.7.1
ethereum:tools@0.5.2
ethereum:web3@0.15.3
Expand Down
7 changes: 4 additions & 3 deletions interface/client/collections.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@
*/



// BROWSER RELATED
// Contains the accounts
Tabs = new Mongo.Collection('tabs', {connection: null});
pers = new PersistentMinimongo2(Tabs, 'Mist');

if(typeof syncMinimongo !== 'undefined')
syncMinimongo(Tabs);
if (typeof window.mist.syncMinimongo !== 'undefined') {
window.mist.syncMinimongo.frontendSync(Tabs);
}


// Contains the address book
Expand Down
2 changes: 0 additions & 2 deletions interface/client/lib/thirdParty.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


// set spinner options
Meteor.Spinner.options = {
lines: 12, // The number of lines to draw
Expand Down
35 changes: 35 additions & 0 deletions interface/client/styles/forkChoice.import.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
.fork-choice {
padding: @gridHeight @gridWidth;
text-align: justify;

h1 {
line-height: 1.2;
font-size: 180%;
padding-top: @gridHeight;
}

.dapp-block-button {
margin-top: @gridHeight;
width: 100%;
}

h3 {
color: @colorGrayDark;
}

.row p {
text-align: center;
}

.fork-whatever {
text-align: center;
font-weight: 500;
text-transform: uppercase;
padding-top: @gridHeight*1.5;
}

a {
font-weight: 600;
}

}
3 changes: 2 additions & 1 deletion interface/client/styles/styles.less
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@
@import 'menu.import.less';
@import 'browserbar.import.less';
@import 'popupWindows.import.less';
@import 'animations.import.less';
@import 'animations.import.less';
@import 'forkChoice.import.less';
37 changes: 7 additions & 30 deletions interface/client/templates/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,36 +21,13 @@ Template.body.helpers({
if(_.isEmpty(location.hash)) {
$('title').text('Mist');
return 'layout_main';
}
if(~location.hash.indexOf('#loadingWindow')) {
return 'popupWindows_loadingWindow';
}
if(~location.hash.indexOf('#updateAvailable')) {
return 'popupWindows_updateAvailable';
}
if(~location.hash.indexOf('#splashScreen')) {
return 'popupWindows_splashScreen';
}
if(~location.hash.indexOf('#onboardingScreen')) {
return 'popupWindows_onboardingScreen';
}
if(~location.hash.indexOf('#importAccount')) {
return 'popupWindows_importAccount';
}
if(~location.hash.indexOf('#about')) {
return 'popupWindows_about';
}
if(location.hash === '#requestAccount') {
// $('title').text(TAPi18n.__('mist.popupWindows.requestAccount.title')
return 'popupWindows_requestAccount';
}
if(location.hash === '#unlockMasterPassword') {
// $('title').text(TAPi18n.__('mist.popupWindows.requestAccount.title')
return 'popupWindows_unlockMasterPassword';
}
if(location.hash === '#sendTransactionConfirmation') {
// $('title').text(TAPi18n.__('mist.popupWindows.requestAccount.title')
return 'popupWindows_sendTransactionConfirmation';
} else {
var renderWindow = location.hash.match(/#([a-zA-Z]*)_?/);

if (renderWindow.length>0)
return 'popupWindows_' + renderWindow[1];
else
return false;
}
}
});
Expand Down
33 changes: 33 additions & 0 deletions interface/client/templates/popupWindows/forkChoice.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<template name="popupWindows_forkChoice">
<div class="fork-choice main-content">
<div class="col col-12">
<h1> {{i18n "mist.popupWindows.daoFork.title"}} </h1>
<p> {{{i18n "mist.popupWindows.daoFork.overview"}}} </p>
<p> {{{i18n "mist.popupWindows.daoFork.choice"}}} </p>
<p> <a href="https://www.ethereum.org/agreement" target="_blank">{{i18n "mist.popupWindows.daoFork.disclaimer"}} </a> </p>
<h3> {{i18n "mist.popupWindows.daoFork.question"}} </h3>
</div>

{{#if randomizer}}
<div class="row clear">
<div class="col col-6 fork-no">
<button class="dapp-block-button"> {{{i18n "mist.popupWindows.daoFork.no"}}} </button>
</div>
<div class="col col-6 fork-yes">
<button class="dapp-block-button"> {{{i18n "mist.popupWindows.daoFork.yes"}}} </button>
</div>
</div>
{{else}}
<div class="row clear">
<div class="col col-6 fork-yes">
<button class="dapp-block-button"> {{{i18n "mist.popupWindows.daoFork.yes"}}} </button>
</div>
<div class="col col-6 fork-no">
<button class="dapp-block-button"> {{{i18n "mist.popupWindows.daoFork.no"}}} </button>
</div>
</div>
{{/if}}

</div>
</template>

34 changes: 34 additions & 0 deletions interface/client/templates/popupWindows/forkChoice.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

Template['popupWindows_forkChoice'].onCreated(function(){


})


Template['popupWindows_forkChoice'].events({
/**
Select DAO fork
@events
*/
'click .fork-yes button': function(){
ipc.send('forkChoice_choosen', 'true');
},
/**
Reject DAO fork
@events
*/
'click .fork-no button': function(){
ipc.send('forkChoice_choosen', 'false');
},
/**
Follow default
@events
*/
'click .fork-whatever a': function(e){
e.preventDefault();
ipc.send('forkChoice_choosen', null);
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ Template['popupWindows_onboardingScreen_importAccount'].events({

if(error === 'Decryption Failed') {
GlobalNotification.warning({
content: TAPi18n.__('mist.popupWindows.onboarding.errors.passwordError'),
content: TAPi18n.__('mist.popupWindows.onboarding.errors.wrongPassword'),
duration: 4
});
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,19 +215,34 @@ Template['popupWindows_sendTransactionConfirmation'].events({
template.find('input[type="password"]').value = '';
template.$('input[type="password"]').focus();
});

if(e.message.indexOf('CONNECTION ERROR') !== -1) {
if(e.message.indexOf('Unable to connect to socket: timeout') !== -1) {
GlobalNotification.warning({
content: TAPi18n.__('mist.popupWindows.sendTransactionConfirmation.errors.connectionTimeout'),
duration: 3
duration: 5
});
} else {
} else if(e.message.indexOf('could not decrypt key with given passphrase') !== -1) {
GlobalNotification.warning({
content: TAPi18n.__('mist.popupWindows.sendTransactionConfirmation.errors.wrongPassword'),
duration: 3
});
} else if(e.message.indexOf('multiple keys match address') !== -1) {
GlobalNotification.warning({
content: TAPi18n.__('mist.popupWindows.sendTransactionConfirmation.errors.multipleKeysMatchAddress'),
duration: 10
});
} else if(e.message.indexOf('Insufficient funds for gas * price + value') !== -1) {
GlobalNotification.warning({
content: TAPi18n.__('mist.popupWindows.sendTransactionConfirmation.errors.insufficientFundsForGas'),
duration: 5
});
} else {
GlobalNotification.warning({
content: e.message,
duration: 5
});
}
}
});
}
});

2 changes: 1 addition & 1 deletion interface/client/templates/popupWindows/splashScreen.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<button class="start-app">{{{TemplateVar.get "startAppButtonText"}}}</button>
{{/if}}

<img id="image" src="{{iconPath}}">
<img id="image" src="{{appIconPath}}">
<h1>
{{{TemplateVar.get "text"}}}

Expand Down
2 changes: 1 addition & 1 deletion interface/i18n/mist.de.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@
"errors": {
"nodeNotStartedYet": "Warten Sie noch einige Sekunden, bis der Node gestartet ist, und versuchen Sie es dann noch einmal",
"unknownFile": "Datei nicht erkannt.",
"passwordError": "Falsches Passwort.",
"wrongPassword": "Falsches Passwort.",
"importFailed": "Beim Import der Datei ist folgender Fehler aufgetreten: __error__"
}
}
Expand Down
16 changes: 14 additions & 2 deletions interface/i18n/mist.en.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,9 @@
},
"errors": {
"connectionTimeout": "Couldn't connect to the node, did it crash in the background?",
"wrongPassword": "Wrong password"
"wrongPassword": "Wrong password",
"multipleKeysMatchAddress": "Multiple keys match address, please remove duplicates from keystore (menu -> accounts -> backup -> accounts)",
"insufficientFundsForGas": "Insufficient funds in main account (etherbase) to pay for gas"
}
},
"onboarding": {
Expand Down Expand Up @@ -228,10 +230,20 @@
"errors": {
"nodeNotStartedYet": "Wait a few more seconds until your node is fully started and try again",
"unknownFile": "File not recognised.",
"passwordError": "Wrong password.",
"wrongPassword": "Wrong password.",
"importFailed": "Couldn't import the file, got: __error__"
}
},
"daoFork" : {
"title": "Important decision affecting your app",
"overview": "A new community-created blockchain will be available for activation at block <strong>#1920000</strong>, which is expected to arrive on <strong>July 20th 2016</strong>, in which the Ether balance of contract <strong>0xbb9bc244d798123fde783fcc1c72d3bb8c189413</strong> (commonly referred to as \"The DAO\") and all of its descendants will be moved to a withdraw contract due to an exploited bug in the original contract. This should restore funds from all contracts linked to the exploit and allow authenticated holders of \"The DAO\" tokens to redeem it for ether.",
"choice" : "<strong> This is a settings configuration, <em>not a vote</em></strong>, meaning that your wallet will operate on the blockchain of your choosing regardless of any other user's choice. Your ether and assets will exist in both chains and you will be able to switch back at a later date by resyncing your wallet.",
"question": "Do you want to activate the chain in which funds linked to the exploit are restored to a contract where they can be withdrawn by \"The DAO\" token holders?",
"disclaimer": "READ THE ETHEREUM DISCLAIMER FIRST",
"yes": "yes",
"no": "no"
}

}
},
"elements": {
Expand Down
2 changes: 1 addition & 1 deletion interface/i18n/mist.es.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@
"errors": {
"nodeNotStartedYet": "Espere unos segundos más hasta que su nodo esté completamente iniciado y vuelva a intentarlo",
"unknownFile": "Archivo no reconocido.",
"passwordError": "Contraseña incorrecta.",
"wrongPassword": "Contraseña incorrecta.",
"importFailed": "No se pudo importar el archivo por el error: __error__"
}
}
Expand Down
2 changes: 1 addition & 1 deletion interface/i18n/mist.fr.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@
"errors": {
"nodeNotStartedYet": "Attendez quelques secondes de plus avant que votre nœud soit initialisé et essayez de nouveau",
"unknownFile": "Fichier non reconnu.",
"passwordError": "Mauvais mot de passe.",
"wrongPassword": "Mauvais mot de passe.",
"importFailed": "Echec à l'importation du fichier avec l'erreur : __error__"
}
}
Expand Down
2 changes: 1 addition & 1 deletion interface/i18n/mist.it.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@
"errors": {
"nodeNotStartedYet": "Attendi qualche secondo ancora finché il tuo nodo non é completamente avviato e riprova",
"unknownFile": "File non riconosciuto.",
"passwordError": "Password errata.",
"wrongPassword": "Password errata.",
"importFailed": "Impossibile importare il file: __error__"
}
}
Expand Down
2 changes: 1 addition & 1 deletion interface/i18n/mist.ja.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@
"errors": {
"nodeNotStartedYet": "ノードが開始して再度起動する迄もう少し待つ",
"unknownFile": "ファイルが認識できませんでした.",
"passwordError": "passwordが間違っています",
"wrongPassword": "passwordが間違っています",
"importFailed": "ファイルが読み込めませんでした: __error__のエラーです"
}
}
Expand Down
2 changes: 1 addition & 1 deletion interface/i18n/mist.ko.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@
"errors": {
"nodeNotStartedYet": "노드가 완전히 구동될 때까지 몇초 기다렸다 다시 시도해 보세요.",
"unknownFile": "파일을 인식할 수 없습니다.",
"passwordError": "암호가 틀렸습니다.",
"wrongPassword": "암호가 틀렸습니다.",
"importFailed": "파일을 가져올 수 없습니다: __error__"
}
}
Expand Down
2 changes: 1 addition & 1 deletion interface/i18n/mist.kr.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@
"errors": {
"nodeNotStartedYet": "노드가 완전히 구동될 때까지 몇초 기다렸다 다시 시도해 보세요.",
"unknownFile": "파일을 인식할 수 없습니다.",
"passwordError": "암호가 틀렸습니다.",
"wrongPassword": "암호가 틀렸습니다.",
"importFailed": "파일을 가져올 수 없습니다: __error__"
}
}
Expand Down
4 changes: 2 additions & 2 deletions interface/i18n/mist.nb.i18n.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"view": {
"label": "Vis",
"fullscreen": "Veksle Mellom Fullskjerm",
"languages": "Change language"
"languages": "Skift språk"
},
"accounts": {
"label": "Kontoer",
Expand Down Expand Up @@ -201,7 +201,7 @@
"errors": {
"nodeNotStartedYet": "Vent noen sekunder til noden er fullt i gang og prøv igjen",
"unknownFile": "Fil ikke gjenkjent.",
"passwordError": "Feil passord.",
"wrongPassword": "Feil passord.",
"importFailed": "Kunne ikke importere filen, fikk: __error__"
}
}
Expand Down
Loading

0 comments on commit 6d58bff

Please sign in to comment.