├── .bowerrc ├── .editorconfig ├── .gitignore ├── .io-config.json ├── LICENSE ├── README.md ├── bower.json ├── config.xml ├── gulpfile.js ├── hooks ├── README.md └── after_prepare │ └── 010_add_platform_class.js ├── ionic.project ├── package.json ├── resources ├── ._icon.png ├── ._splash.png ├── android │ ├── icon │ │ ├── drawable-hdpi-icon.png │ │ ├── drawable-ldpi-icon.png │ │ ├── drawable-mdpi-icon.png │ │ ├── drawable-xhdpi-icon.png │ │ ├── drawable-xxhdpi-icon.png │ │ └── drawable-xxxhdpi-icon.png │ └── splash │ │ ├── drawable-land-hdpi-screen.png │ │ ├── drawable-land-ldpi-screen.png │ │ ├── drawable-land-mdpi-screen.png │ │ ├── drawable-land-xhdpi-screen.png │ │ ├── drawable-land-xxhdpi-screen.png │ │ ├── drawable-land-xxxhdpi-screen.png │ │ ├── drawable-port-hdpi-screen.png │ │ ├── drawable-port-ldpi-screen.png │ │ ├── drawable-port-mdpi-screen.png │ │ ├── drawable-port-xhdpi-screen.png │ │ ├── drawable-port-xxhdpi-screen.png │ │ └── drawable-port-xxxhdpi-screen.png ├── icon.png ├── ios │ ├── icon │ │ ├── icon-40.png │ │ ├── icon-40@2x.png │ │ ├── icon-50.png │ │ ├── icon-50@2x.png │ │ ├── icon-60.png │ │ ├── icon-60@2x.png │ │ ├── icon-60@3x.png │ │ ├── icon-72.png │ │ ├── icon-72@2x.png │ │ ├── icon-76.png │ │ ├── icon-76@2x.png │ │ ├── icon-small.png │ │ ├── icon-small@2x.png │ │ ├── icon-small@3x.png │ │ ├── icon.png │ │ └── icon@2x.png │ └── splash │ │ ├── Default-568h@2x~iphone.png │ │ ├── Default-667h.png │ │ ├── Default-736h.png │ │ ├── Default-Landscape-736h.png │ │ ├── Default-Landscape@2x~ipad.png │ │ ├── Default-Landscape~ipad.png │ │ ├── Default-Portrait@2x~ipad.png │ │ ├── Default-Portrait~ipad.png │ │ ├── Default@2x~iphone.png │ │ └── Default~iphone.png └── splash.png ├── scss └── ionic.app.scss └── www ├── README.md ├── css ├── ionic.app.css ├── ionic.app.min.css └── style.css ├── img └── ionic.png ├── index.html ├── js ├── app.js ├── clipboard.js ├── controllers.js └── services.js ├── lib ├── Chart.js │ ├── .bower.json │ ├── .gitignore │ ├── .travis.yml │ ├── CONTRIBUTING.md │ ├── Chart.js │ ├── Chart.min.js │ ├── LICENSE.md │ ├── README.md │ ├── bower.json │ ├── docs │ │ ├── 00-Getting-Started.md │ │ ├── 01-Line-Chart.md │ │ ├── 02-Bar-Chart.md │ │ ├── 03-Radar-Chart.md │ │ ├── 04-Polar-Area-Chart.md │ │ ├── 05-Pie-Doughnut-Chart.md │ │ ├── 06-Advanced.md │ │ └── 07-Notes.md │ ├── gulpfile.js │ ├── package.json │ ├── samples │ │ ├── bar.html │ │ ├── doughnut.html │ │ ├── line-customTooltips.html │ │ ├── line.html │ │ ├── pie-customTooltips.html │ │ ├── pie.html │ │ ├── polar-area.html │ │ └── radar.html │ └── src │ │ ├── Chart.Bar.js │ │ ├── Chart.Core.js │ │ ├── Chart.Doughnut.js │ │ ├── Chart.Line.js │ │ ├── Chart.PolarArea.js │ │ └── Chart.Radar.js ├── CordovaClipboard │ ├── .bower.json │ └── index ├── angular-animate │ ├── .bower.json │ ├── README.md │ ├── angular-animate.js │ ├── angular-animate.min.js │ ├── angular-animate.min.js.map │ ├── bower.json │ ├── index.js │ └── package.json ├── angular-chart.js │ ├── .bower.json │ ├── LICENSE │ ├── README.md │ ├── angular-chart.js │ ├── angular-chart.less │ ├── bower.json │ ├── dist │ │ ├── angular-chart.css │ │ ├── angular-chart.js │ │ ├── angular-chart.js.tar.gz │ │ ├── angular-chart.min.css │ │ ├── angular-chart.min.css.map │ │ ├── angular-chart.min.js │ │ └── angular-chart.min.js.map │ ├── gulpfile.js │ └── package.json ├── angular-sanitize │ ├── .bower.json │ ├── README.md │ ├── angular-sanitize.js │ ├── angular-sanitize.min.js │ ├── angular-sanitize.min.js.map │ ├── bower.json │ ├── index.js │ └── package.json ├── angular-ui-router │ ├── .bower.json │ ├── CHANGELOG.md │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── api │ │ └── angular-ui-router.d.ts │ ├── bower.json │ ├── release │ │ ├── angular-ui-router.js │ │ └── angular-ui-router.min.js │ └── src │ │ ├── common.js │ │ ├── resolve.js │ │ ├── state.js │ │ ├── stateDirectives.js │ │ ├── stateFilters.js │ │ ├── templateFactory.js │ │ ├── urlMatcherFactory.js │ │ ├── urlRouter.js │ │ ├── view.js │ │ ├── viewDirective.js │ │ └── viewScroll.js ├── angular │ ├── .bower.json │ ├── README.md │ ├── angular-csp.css │ ├── angular.js │ ├── angular.min.js │ ├── angular.min.js.gzip │ ├── angular.min.js.map │ ├── bower.json │ ├── index.js │ └── package.json ├── ionic-native-transitions │ └── ionic-native-transitions.min.js ├── ionic │ ├── css │ │ ├── ionic.css │ │ └── ionic.min.css │ ├── fonts │ │ ├── ionicons.eot │ │ ├── ionicons.svg │ │ ├── ionicons.ttf │ │ └── ionicons.woff │ ├── js │ │ ├── angular-ui │ │ │ ├── angular-ui-router.js │ │ │ └── angular-ui-router.min.js │ │ ├── angular │ │ │ ├── angular-animate.js │ │ │ ├── angular-animate.min.js │ │ │ ├── angular-resource.js │ │ │ ├── angular-resource.min.js │ │ │ ├── angular-sanitize.js │ │ │ ├── angular-sanitize.min.js │ │ │ ├── angular.js │ │ │ └── angular.min.js │ │ ├── ionic-angular.js │ │ ├── ionic-angular.min.js │ │ ├── ionic.bundle.js │ │ ├── ionic.bundle.min.js │ │ ├── ionic.js │ │ └── ionic.min.js │ ├── scss │ │ ├── _action-sheet.scss │ │ ├── _animations.scss │ │ ├── _backdrop.scss │ │ ├── _badge.scss │ │ ├── _bar.scss │ │ ├── _button-bar.scss │ │ ├── _button.scss │ │ ├── _checkbox.scss │ │ ├── _form.scss │ │ ├── _grid.scss │ │ ├── _items.scss │ │ ├── _list.scss │ │ ├── _loading.scss │ │ ├── _menu.scss │ │ ├── _mixins.scss │ │ ├── _modal.scss │ │ ├── _platform.scss │ │ ├── _popover.scss │ │ ├── _popup.scss │ │ ├── _progress.scss │ │ ├── _radio.scss │ │ ├── _range.scss │ │ ├── _refresher.scss │ │ ├── _reset.scss │ │ ├── _scaffolding.scss │ │ ├── _select.scss │ │ ├── _slide-box.scss │ │ ├── _slides.scss │ │ ├── _spinner.scss │ │ ├── _tabs.scss │ │ ├── _toggle.scss │ │ ├── _transitions.scss │ │ ├── _type.scss │ │ ├── _util.scss │ │ ├── _variables.scss │ │ ├── ionic.scss │ │ └── ionicons │ │ │ ├── _ionicons-font.scss │ │ │ ├── _ionicons-icons.scss │ │ │ ├── _ionicons-variables.scss │ │ │ └── ionicons.scss │ └── version.json ├── ngCordova │ ├── .bower.json │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── dist │ │ ├── lightwallet.min.js │ │ ├── ng-cordova-mocks.js │ │ ├── ng-cordova-mocks.min.js │ │ ├── ng-cordova.js │ │ ├── ng-cordova.min.js │ │ ├── web3-light.js │ │ ├── web3-light.min.js │ │ ├── web3.js │ │ ├── web3.js.map │ │ └── web3.min.js │ └── package.json ├── ngstorage │ ├── .bower.json │ ├── .editorconfig │ ├── .gitattributes │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── ngStorage.js │ ├── ngStorage.min.js │ └── package.js ├── thirdparty │ ├── .DS_Store │ ├── angular-qr.js │ ├── angular-sanitize.js │ ├── async.js │ ├── bignumber.min.js │ ├── chance.min.js │ ├── elliptic.min.js │ ├── ethereumjs-tx.js │ ├── hooked-web3-provider.js │ ├── ionic.swipecards.js │ ├── keystore.js │ ├── lightwallet.min.js │ ├── qrcode.js │ ├── txutils.js │ ├── web3.js │ ├── web3.js.map │ └── xml2json.min.js └── web3 │ ├── .bower.json │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── dist │ ├── web3-light.js │ ├── web3-light.min.js │ ├── web3.js │ ├── web3.js.map │ └── web3.min.js │ ├── package-init.js │ ├── styleguide.md │ └── test │ ├── async.js │ ├── batch.js │ ├── coder.decodeParam.js │ ├── coder.encodeParam.js │ ├── contract.js │ ├── errors.js │ ├── event.decode.js │ ├── event.encode.js │ ├── formatters.inputAddressFormatter.js │ ├── formatters.inputDefaultBlockFormatter.js │ ├── formatters.inputPostFormatter.js │ ├── formatters.inputTransactionFormatter.js │ ├── formatters.outputBlockFormatter.js │ ├── formatters.outputLogFormatter.js │ ├── formatters.outputPostFormatter.js │ ├── formatters.outputTransactionFormatter.js │ ├── helpers │ ├── FakeHttpProvider.js │ ├── FakeHttpProvider2.js │ ├── FakeIpcRequest.js │ ├── FakeQtNavigator.js │ ├── FakeXMLHttpRequest.js │ ├── test.method.js │ └── test.utils.js │ ├── httpprovider.js │ ├── iban.createIndirect.js │ ├── iban.fromAddress.js │ ├── iban.isValid.js │ ├── iban.toAddress.js │ ├── ipcprovider.js │ ├── jsonrpc.id.js │ ├── jsonrpc.isValidResponse.js │ ├── jsonrpc.toBatchPayload.js │ ├── jsonrpc.toPayload.js │ ├── method.extractCallback.js │ ├── method.formatInput.js │ ├── method.formatOutput.js │ ├── method.getCall.js │ ├── method.validateArgs.js │ ├── mocha.opts │ ├── node │ └── app.js │ ├── polling.js │ ├── requestmanager.js │ ├── sha3.js │ ├── utils.extractDisplayName.js │ ├── utils.extractTypeName.js │ ├── utils.fromAscii.js │ ├── utils.fromDecimal.js │ ├── utils.fromUtf8.js │ ├── utils.fromWei.js │ ├── utils.isAddress.js │ ├── utils.isBigNumber.js │ ├── utils.isFunction.js │ ├── utils.isJson.js │ ├── utils.isStrictAddress.js │ ├── utils.isString.js │ ├── utils.toAscii.js │ ├── utils.toBigNumber.js │ ├── utils.toDecimal.js │ ├── utils.toHex.js │ ├── utils.toUtf8.js │ ├── utils.toWei.js │ ├── web3.db.getHex.js │ ├── web3.db.getString.js │ ├── web3.db.methods.js │ ├── web3.db.putHex.js │ ├── web3.db.putString.js │ ├── web3.eth.accounts.js │ ├── web3.eth.blockNumber.js │ ├── web3.eth.call.js │ ├── web3.eth.coinbase.js │ ├── web3.eth.contract.js │ ├── web3.eth.defaultBlock.js │ ├── web3.eth.estimateGas.js │ ├── web3.eth.filter.js │ ├── web3.eth.gasPrice.js │ ├── web3.eth.getBalance.js │ ├── web3.eth.getBlock.js │ ├── web3.eth.getBlockTransactionCount.js │ ├── web3.eth.getBlockUncleCount.js │ ├── web3.eth.getCode.js │ ├── web3.eth.getCompilers.js │ ├── web3.eth.getStorageAt.js │ ├── web3.eth.getTransaction.js │ ├── web3.eth.getTransactionFromBlock.js │ ├── web3.eth.getTransactionReceipt.js │ ├── web3.eth.getUncle.js │ ├── web3.eth.getWork.js │ ├── web3.eth.hashRate.js │ ├── web3.eth.isSyncing.js │ ├── web3.eth.methods.js │ ├── web3.eth.mining.js │ ├── web3.eth.sendIBANTransaction.js │ ├── web3.eth.submitWork.js │ ├── web3.extend.js │ ├── web3.fromICAP.js │ ├── web3.methods.js │ ├── web3.net.listening.js │ ├── web3.net.methods.js │ ├── web3.net.peerCount.js │ ├── web3.shh.filter.js │ ├── web3.shh.hasIdentity.js │ ├── web3.shh.methods.js │ └── web3.shh.post.js └── templates ├── block.html ├── checkbalance.html ├── credits.html ├── marketcap.html ├── price.html ├── send.html ├── tabs.html └── wallet.html /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "www/lib" 3 | } 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | insert_final_newline = false 14 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Specifies intentionally untracked files to ignore when using Git 2 | # http://git-scm.com/docs/gitignore 3 | 4 | node_modules/ 5 | platforms/ 6 | plugins/ 7 | 8 | www.zip 9 | -------------------------------------------------------------------------------- /.io-config.json: -------------------------------------------------------------------------------- 1 | {"app_id":"0f5ba7c6","api_key":"e409e272833472ceaad544d4edcdc83aeab2f955cc6ce400"} -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Lightrains Technolabs Pvt Ltd 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ethereum Wallet 2 | An Ethereum Wallet, is a simple app to check ethereum balance. But we are integrating some more features to it. 3 | 4 | ## Features 5 | * Check your Balance 6 | * Check Block Statistics 7 | * Price Statistics 8 | 9 | ![Ethereum Wallet](https://dl.dropboxusercontent.com/s/wbzt3g3y9c24ic2/feature-12.jpg) 10 | 11 | ## Platform 12 | The app is built on [ionic framework](http://ionicframework.com), feel free to fork away and submit your changes. 13 | 14 | ## Donations? 15 | * ETH: 0xc2593b43eef66488d45b014fc8f86830f08c48fd 16 | * BTC: 1Fj87rtZ7KvjXkoLY5wbgMN4A5H6QiuxpZ 17 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "HelloIonic", 3 | "private": "true", 4 | "devDependencies": { 5 | "ionic": "driftyco/ionic-bower#1.2.4" 6 | }, 7 | "dependencies": { 8 | "angular-chart.js": "~0.8.8", 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var gutil = require('gulp-util'); 3 | var bower = require('bower'); 4 | var concat = require('gulp-concat'); 5 | var sass = require('gulp-sass'); 6 | var minifyCss = require('gulp-minify-css'); 7 | var rename = require('gulp-rename'); 8 | var sh = require('shelljs'); 9 | 10 | var paths = { 11 | sass: ['./scss/**/*.scss'] 12 | }; 13 | 14 | gulp.task('default', ['sass']); 15 | 16 | gulp.task('sass', function(done) { 17 | gulp.src('./scss/ionic.app.scss') 18 | .pipe(sass()) 19 | .on('error', sass.logError) 20 | .pipe(gulp.dest('./www/css/')) 21 | .pipe(minifyCss({ 22 | keepSpecialComments: 0 23 | })) 24 | .pipe(rename({ extname: '.min.css' })) 25 | .pipe(gulp.dest('./www/css/')) 26 | .on('end', done); 27 | }); 28 | 29 | gulp.task('watch', function() { 30 | gulp.watch(paths.sass, ['sass']); 31 | }); 32 | 33 | gulp.task('install', ['git-check'], function() { 34 | return bower.commands.install() 35 | .on('log', function(data) { 36 | gutil.log('bower', gutil.colors.cyan(data.id), data.message); 37 | }); 38 | }); 39 | 40 | gulp.task('git-check', function(done) { 41 | if (!sh.which('git')) { 42 | console.log( 43 | ' ' + gutil.colors.red('Git is not installed.'), 44 | '\n Git, the version control system, is required to download Ionic.', 45 | '\n Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.', 46 | '\n Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.' 47 | ); 48 | process.exit(1); 49 | } 50 | done(); 51 | }); 52 | -------------------------------------------------------------------------------- /ionic.project: -------------------------------------------------------------------------------- 1 | { 2 | "name": "etherwallet", 3 | "app_id": "0f5ba7c6" 4 | } 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic-project", 3 | "version": "1.1.1", 4 | "description": "An Ionic project", 5 | "dependencies": { 6 | "gulp": "^3.5.6", 7 | "gulp-concat": "^2.2.0", 8 | "gulp-minify-css": "^0.3.0", 9 | "gulp-rename": "^1.2.0", 10 | "gulp-sass": "^2.0.4", 11 | "ionic-native-transitions": "^1.0.0-rc9" 12 | }, 13 | "devDependencies": { 14 | "bower": "^1.3.3", 15 | "gulp-util": "^2.2.14", 16 | "shelljs": "^0.3.0" 17 | }, 18 | "cordovaPlugins": [ 19 | "cordova-plugin-device", 20 | "cordova-plugin-console", 21 | "cordova-plugin-whitelist", 22 | "cordova-plugin-splashscreen", 23 | "cordova-plugin-statusbar", 24 | "ionic-plugin-keyboard", 25 | "com.verso.cordova.clipboard" 26 | ], 27 | "cordovaPlatforms": [ 28 | "ios", 29 | "android" 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /resources/._icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/._icon.png -------------------------------------------------------------------------------- /resources/._splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/._splash.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-hdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/icon/drawable-hdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-ldpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/icon/drawable-ldpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-mdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/icon/drawable-mdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/icon/drawable-xhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/icon/drawable-xxhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/icon/drawable-xxxhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-land-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-land-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-land-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-land-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-land-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-land-xxxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-port-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-port-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-port-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-port-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-port-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/android/splash/drawable-port-xxxhdpi-screen.png -------------------------------------------------------------------------------- /resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/icon.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-40.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-40@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-50.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-50@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-60.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-60@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-60@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-72.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-72@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-76.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-76@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-small.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-small@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon-small@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon.png -------------------------------------------------------------------------------- /resources/ios/icon/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/icon/icon@2x.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-568h@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default-568h@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-667h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default-667h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default-Landscape-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default-Landscape@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default-Landscape~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default-Portrait@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default-Portrait~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/ios/splash/Default~iphone.png -------------------------------------------------------------------------------- /resources/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/resources/splash.png -------------------------------------------------------------------------------- /scss/ionic.app.scss: -------------------------------------------------------------------------------- 1 | /* 2 | To customize the look and feel of Ionic, you can override the variables 3 | in ionic's _variables.scss file. 4 | 5 | For example, you might change some of the default colors: 6 | 7 | $light: #fff !default; 8 | $stable: #f8f8f8 !default; 9 | $positive: #387ef5 !default; 10 | $calm: #11c1f3 !default; 11 | $balanced: #33cd5f !default; 12 | $energized: #ffc900 !default; 13 | $assertive: #ef473a !default; 14 | $royal: #886aea !default; 15 | $dark: #444 !default; 16 | */ 17 | 18 | // The path for our ionicons font files, relative to the built CSS in www/css 19 | $ionicons-font-path: "../lib/ionic/fonts" !default; 20 | 21 | // Include all of Ionic 22 | @import "www/lib/ionic/scss/ionic"; 23 | 24 | .center-middle { 25 | -webkit-background-size: cover; 26 | -moz-background-size: cover; 27 | -o-background-size: cover; 28 | background-size: cover; 29 | position: fixed; 30 | top: 30%; 31 | } 32 | .centered { 33 | text-align: center; 34 | } 35 | .muted { 36 | opacity: 0.6; 37 | } 38 | .balancetxt { 39 | font-size: 30px; 40 | font-weight: bold; 41 | line-height: 35px; 42 | } 43 | .red, .down { 44 | color: red; 45 | } 46 | .green, .up { 47 | color: green; 48 | } 49 | canvas#line.chart.chart-line { 50 | width: 100% !important; 51 | max-width: 100%; 52 | } 53 | .selectable { 54 | -webkit-user-select: auto !important; 55 | -khtml-user-select: auto !important; 56 | -moz-user-select: auto !important; 57 | -ms-user-select: auto !important; 58 | -o-user-select: auto !important; 59 | user-select: auto !important; 60 | } 61 | .cbf { 62 | .item-toggle { 63 | border: 0 none; 64 | } 65 | } 66 | .mcapVal{ 67 | color: #3d3d3d; 68 | font-size: 16px; 69 | } 70 | .donate { 71 | font-size: 1.3rem; 72 | } 73 | .tab-item.tab-item-active, .tab-item.active, .tab-item.activated { 74 | color: red; 75 | } 76 | -------------------------------------------------------------------------------- /www/README.md: -------------------------------------------------------------------------------- 1 | This is an addon starter template for the [Ionic Framework](http://ionicframework.com/). 2 | 3 | ## How to use this template 4 | 5 | *This template does not work on its own*. It is missing the Ionic library, and AngularJS. 6 | 7 | To use this, either create a new ionic project using the ionic node.js utility, or copy and paste this into an existing Cordova project and download a release of Ionic separately. 8 | 9 | ### With the Ionic tool: 10 | 11 | Take the name after `ionic-starter-`, and that is the name of the template to be used when using the `ionic start` command below: 12 | 13 | ```bash 14 | $ sudo npm install -g ionic cordova 15 | $ ionic start myApp sidemenu 16 | ``` 17 | 18 | Then, to run it, cd into `myApp` and run: 19 | 20 | ```bash 21 | $ ionic platform add ios 22 | $ ionic build ios 23 | $ ionic emulate ios 24 | ``` 25 | 26 | Substitute ios for android if not on a Mac, but if you can, the ios development toolchain is a lot easier to work with until you need to do anything custom to Android. 27 | 28 | ## Demo 29 | http://plnkr.co/edit/0RXSDB?p=preview 30 | 31 | ## Issues 32 | Issues have been disabled on this repo, if you do find an issue or have a question consider posting it on the [Ionic Forum](http://forum.ionicframework.com/). Or else if there is truly an error, follow our guidelines for [submitting an issue](http://ionicframework.com/contribute/#issues) to the main Ionic repository. On the other hand, pull requests are welcome here! 33 | -------------------------------------------------------------------------------- /www/css/style.css: -------------------------------------------------------------------------------- 1 | /* Empty. Add your own CSS if you like */ 2 | 3 | 4 | .center-middle { 5 | -webkit-background-size: cover; 6 | -moz-background-size: cover; 7 | -o-background-size: cover; 8 | background-size: cover; 9 | position: fixed; 10 | top: 35%; 11 | } 12 | .centered { 13 | text-align: center; 14 | } 15 | .muted { 16 | opacity: 0.6; 17 | } 18 | .balancetxt { 19 | font-size: 30px; 20 | font-weight: bold; 21 | line-height: 35px; 22 | } 23 | .red { 24 | color: red; 25 | } 26 | -------------------------------------------------------------------------------- /www/img/ionic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/www/img/ionic.png -------------------------------------------------------------------------------- /www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /www/js/clipboard.js: -------------------------------------------------------------------------------- 1 | var cordova = require('cordova'); 2 | 3 | /** 4 | * Clipboard plugin for Cordova 5 | * 6 | * @constructor 7 | */ 8 | function Clipboard () {} 9 | 10 | /** 11 | * Sets the clipboard content 12 | * 13 | * @param {String} text The content to copy to the clipboard 14 | * @param {Function} onSuccess The function to call in case of success (takes the copied text as argument) 15 | * @param {Function} onFail The function to call in case of error 16 | */ 17 | Clipboard.prototype.copy = function (text, onSuccess, onFail) { 18 | if (typeof text === "undefined" || text === null) text = ""; 19 | cordova.exec(onSuccess, onFail, "Clipboard", "copy", [text]); 20 | }; 21 | 22 | /** 23 | * Gets the clipboard content 24 | * 25 | * @param {Function} onSuccess The function to call in case of success 26 | * @param {Function} onFail The function to call in case of error 27 | */ 28 | Clipboard.prototype.paste = function (onSuccess, onFail) { 29 | cordova.exec(onSuccess, onFail, "Clipboard", "paste", []); 30 | }; 31 | 32 | // Register the plugin 33 | var clipboard = new Clipboard(); 34 | module.exports = clipboard; 35 | -------------------------------------------------------------------------------- /www/lib/Chart.js/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Chart.js", 3 | "version": "1.0.2", 4 | "description": "Simple HTML5 Charts using the canvas element", 5 | "homepage": "https://github.com/nnnick/Chart.js", 6 | "author": "nnnick", 7 | "main": [ 8 | "Chart.js" 9 | ], 10 | "dependencies": {}, 11 | "_release": "1.0.2", 12 | "_resolution": { 13 | "type": "version", 14 | "tag": "v1.0.2", 15 | "commit": "930b16a0af59201dcfcd1594b0e7540db4d04c9f" 16 | }, 17 | "_source": "git://github.com/nnnick/Chart.js.git", 18 | "_target": "~1.0.1", 19 | "_originalSource": "Chart.js" 20 | } -------------------------------------------------------------------------------- /www/lib/Chart.js/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | 4 | node_modules/* 5 | custom/* 6 | 7 | docs/index.md 8 | -------------------------------------------------------------------------------- /www/lib/Chart.js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.11" 4 | - "0.10" 5 | 6 | before_script: 7 | - npm install 8 | 9 | script: 10 | - gulp test 11 | 12 | notifications: 13 | slack: chartjs:pcfCZR6ugg5TEcaLtmIfQYuA 14 | -------------------------------------------------------------------------------- /www/lib/Chart.js/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2015 Nick Downie 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /www/lib/Chart.js/README.md: -------------------------------------------------------------------------------- 1 | # Chart.js 2 | 3 | [![Build Status](https://travis-ci.org/nnnick/Chart.js.svg?branch=master)](https://travis-ci.org/nnnick/Chart.js) [![Code Climate](https://codeclimate.com/github/nnnick/Chart.js/badges/gpa.svg)](https://codeclimate.com/github/nnnick/Chart.js) 4 | 5 | 6 | *Simple HTML5 Charts using the canvas element* [chartjs.org](http://www.chartjs.org) 7 | 8 | ## Documentation 9 | 10 | You can find documentation at [chartjs.org/docs](http://www.chartjs.org/docs/). The markdown files that build the site are available under `/docs`. Please note - in some of the json examples of configuration you might notice some liquid tags - this is just for the generating the site html, please disregard. 11 | 12 | ## Bugs, issues and contributing 13 | 14 | Before submitting an issue or a pull request to the project, please take a moment to look over the [contributing guidelines](https://github.com/nnnick/Chart.js/blob/master/CONTRIBUTING.md) first. 15 | 16 | For support using Chart.js, please post questions with the [`chartjs` tag on Stack Overflow](http://stackoverflow.com/questions/tagged/chartjs). 17 | 18 | ## License 19 | 20 | Chart.js is available under the [MIT license](http://opensource.org/licenses/MIT). 21 | -------------------------------------------------------------------------------- /www/lib/Chart.js/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Chart.js", 3 | "version": "1.0.2", 4 | "description": "Simple HTML5 Charts using the canvas element", 5 | "homepage": "https://github.com/nnnick/Chart.js", 6 | "author": "nnnick", 7 | "main": [ 8 | "Chart.js" 9 | ], 10 | "dependencies": {} 11 | } -------------------------------------------------------------------------------- /www/lib/Chart.js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chart.js", 3 | "homepage": "http://www.chartjs.org", 4 | "description": "Simple HTML5 charts using the canvas element.", 5 | "version": "1.0.2", 6 | "main": "Chart.js", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/nnnick/Chart.js.git" 10 | }, 11 | "dependences": {}, 12 | "devDependencies": { 13 | "gulp": "3.5.x", 14 | "gulp-concat": "~2.1.x", 15 | "gulp-connect": "~2.0.5", 16 | "gulp-jshint": "~1.5.1", 17 | "gulp-replace": "^0.4.0", 18 | "gulp-size": "~0.4.0", 19 | "gulp-uglify": "~0.2.x", 20 | "gulp-util": "~2.2.x", 21 | "gulp-html-validator": "^0.0.2", 22 | "inquirer": "^0.5.1", 23 | "semver": "^3.0.1" 24 | }, 25 | "spm": { 26 | "main": "Chart.js" 27 | } 28 | } -------------------------------------------------------------------------------- /www/lib/Chart.js/samples/bar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Bar Chart 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | 13 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /www/lib/Chart.js/samples/doughnut.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Doughnut Chart 5 | 6 | 15 | 16 | 17 |
18 | 19 |
20 | 21 | 22 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /www/lib/Chart.js/samples/line.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Line Chart 5 | 6 | 7 | 8 |
9 |
10 | 11 |
12 |
13 | 14 | 15 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /www/lib/Chart.js/samples/pie.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Pie Chart 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | 13 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /www/lib/Chart.js/samples/polar-area.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Polar Area Chart 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | 13 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /www/lib/Chart.js/samples/radar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Radar Chart 5 | 6 | 7 | 11 | 12 | 13 |
14 | 15 |
16 | 17 | 18 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /www/lib/CordovaClipboard/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CordovaClipboard", 3 | "_cacheHeaders": { 4 | "Content-Type": "text/html; charset=utf-8" 5 | }, 6 | "main": "index", 7 | "_source": "https://github.com/VersoSolutions/CordovaClipboard", 8 | "_target": "*", 9 | "_originalSource": "https://github.com/VersoSolutions/CordovaClipboard", 10 | "_direct": true 11 | } -------------------------------------------------------------------------------- /www/lib/angular-animate/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.3", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-animate", 10 | "_release": "1.4.3", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.4.3", 14 | "commit": "4ce2a76359401102d2e0146ccf69e6c060799ff8" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-animate.git", 17 | "_target": "1.4.3", 18 | "_originalSource": "angular-animate" 19 | } -------------------------------------------------------------------------------- /www/lib/angular-animate/README.md: -------------------------------------------------------------------------------- 1 | # packaged angular-animate 2 | 3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the 4 | [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAnimate). 5 | Please file issues and pull requests against that repo. 6 | 7 | ## Install 8 | 9 | You can install this package either with `npm` or with `bower`. 10 | 11 | ### npm 12 | 13 | ```shell 14 | npm install angular-animate 15 | ``` 16 | 17 | Then add `ngAnimate` as a dependency for your app: 18 | 19 | ```javascript 20 | angular.module('myApp', [require('angular-animate')]); 21 | ``` 22 | 23 | ### bower 24 | 25 | ```shell 26 | bower install angular-animate 27 | ``` 28 | 29 | Then add a ` 33 | ``` 34 | 35 | Then add `ngAnimate` as a dependency for your app: 36 | 37 | ```javascript 38 | angular.module('myApp', ['ngAnimate']); 39 | ``` 40 | 41 | ## Documentation 42 | 43 | Documentation is available on the 44 | [AngularJS docs site](http://docs.angularjs.org/api/ngAnimate). 45 | 46 | ## License 47 | 48 | The MIT License 49 | 50 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org 51 | 52 | Permission is hereby granted, free of charge, to any person obtaining a copy 53 | of this software and associated documentation files (the "Software"), to deal 54 | in the Software without restriction, including without limitation the rights 55 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 56 | copies of the Software, and to permit persons to whom the Software is 57 | furnished to do so, subject to the following conditions: 58 | 59 | The above copyright notice and this permission notice shall be included in 60 | all copies or substantial portions of the Software. 61 | 62 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 63 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 64 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 65 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 66 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 67 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 68 | THE SOFTWARE. 69 | -------------------------------------------------------------------------------- /www/lib/angular-animate/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.3", 4 | "main": "./angular-animate.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/lib/angular-animate/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-animate'); 2 | module.exports = 'ngAnimate'; 3 | -------------------------------------------------------------------------------- /www/lib/angular-animate/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-animate", 3 | "version": "1.4.3", 4 | "description": "AngularJS module for animations", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "animation", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /www/lib/angular-chart.js/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-chart.js", 3 | "version": "0.8.8", 4 | "main": [ 5 | "./dist/angular-chart.js", 6 | "./dist/angular-chart.css" 7 | ], 8 | "authors": [ 9 | "Jerome Touffe-Blin " 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "git://github.com/jtblin/angular-chart.js.git" 14 | }, 15 | "description": "An angular.js wrapper for Chart.js - reactive, responsive, beautiful charts.", 16 | "moduleType": [ 17 | "globals" 18 | ], 19 | "keywords": [ 20 | "angular", 21 | "angular.js", 22 | "chartjs", 23 | "chart", 24 | "reactive", 25 | "responsive", 26 | "graph", 27 | "bar", 28 | "line", 29 | "area", 30 | "donut" 31 | ], 32 | "license": "BSD", 33 | "ignore": [ 34 | "**/.*", 35 | "node_modules", 36 | "bower_components", 37 | "examples", 38 | "test", 39 | "tests" 40 | ], 41 | "dependencies": { 42 | "angular": "1.x", 43 | "Chart.js": "~1.0.1" 44 | }, 45 | "devDependencies": { 46 | "Chart.StackedBar.js": "~1.0.1", 47 | "angular-bootstrap": "~0.11.0", 48 | "angular-mocks": "1.x", 49 | "font-awesome": "~4.1.0", 50 | "rainbow": "~1.1.9", 51 | "requirejs": "~2.1.20" 52 | }, 53 | "resolutions": { 54 | "Chart.js": "~1.0.1", 55 | "angular": "1.x", 56 | "angular-mocks": "1.3.10" 57 | }, 58 | "homepage": "https://github.com/jtblin/angular-chart.js", 59 | "_release": "0.8.8", 60 | "_resolution": { 61 | "type": "version", 62 | "tag": "0.8.8", 63 | "commit": "25739e972b519676fed7e0bd4c9d1ec6b8bb92f0" 64 | }, 65 | "_source": "git://github.com/jtblin/angular-chart.js.git", 66 | "_target": "~0.8.8", 67 | "_originalSource": "angular-chart.js", 68 | "_direct": true 69 | } -------------------------------------------------------------------------------- /www/lib/angular-chart.js/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) Jerome Touffe-Blin ("Author") 2 | All rights reserved. 3 | 4 | The BSD License 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions 8 | are met: 9 | 10 | 1. Redistributions of source code must retain the above copyright 11 | notice, this list of conditions and the following disclaimer. 12 | 13 | 2. Redistributions in binary form must reproduce the above copyright 14 | notice, this list of conditions and the following disclaimer in the 15 | documentation and/or other materials provided with the distribution. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 21 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 24 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 26 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27 | IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /www/lib/angular-chart.js/angular-chart.less: -------------------------------------------------------------------------------- 1 | .chart-legend, .bar-legend, .line-legend, .pie-legend, .radar-legend, .polararea-legend, .doughnut-legend { 2 | list-style-type: none; 3 | margin-top: 5px; 4 | text-align: center; 5 | /* NOTE: Browsers automatically add 40px of padding-left to all lists, so we should offset that, otherwise the legend is off-center */ 6 | -webkit-padding-start:0; /* Webkit */ 7 | -moz-padding-start:0; /* Mozilla */ 8 | padding-left:0; /* IE (handles all cases, really, but we should also include the vendor-specific properties just to be safe) */ 9 | 10 | li { 11 | display: inline-block; 12 | white-space: nowrap; 13 | position: relative; 14 | margin-bottom: 4px; 15 | border-radius: 5px; 16 | padding: 2px 8px 2px 28px; 17 | font-size: smaller; 18 | cursor: default; 19 | 20 | span { 21 | display: block; 22 | position: absolute; 23 | left: 0; 24 | top: 0; 25 | width: 20px; 26 | height: 20px; 27 | border-radius: 5px; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /www/lib/angular-chart.js/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-chart.js", 3 | "version": "0.8.8", 4 | "main": [ 5 | "./dist/angular-chart.js", 6 | "./dist/angular-chart.css" 7 | ], 8 | "authors": [ 9 | "Jerome Touffe-Blin " 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "git://github.com/jtblin/angular-chart.js.git" 14 | }, 15 | "description": "An angular.js wrapper for Chart.js - reactive, responsive, beautiful charts.", 16 | "moduleType": [ 17 | "globals" 18 | ], 19 | "keywords": [ 20 | "angular", 21 | "angular.js", 22 | "chartjs", 23 | "chart", 24 | "reactive", 25 | "responsive", 26 | "graph", 27 | "bar", 28 | "line", 29 | "area", 30 | "donut" 31 | ], 32 | "license": "BSD", 33 | "ignore": [ 34 | "**/.*", 35 | "node_modules", 36 | "bower_components", 37 | "examples", 38 | "test", 39 | "tests" 40 | ], 41 | "dependencies": { 42 | "angular": "1.x", 43 | "Chart.js": "~1.0.1" 44 | }, 45 | "devDependencies": { 46 | "Chart.StackedBar.js": "~1.0.1", 47 | "angular-bootstrap": "~0.11.0", 48 | "angular-mocks": "1.x", 49 | "font-awesome": "~4.1.0", 50 | "rainbow": "~1.1.9", 51 | "requirejs": "~2.1.20" 52 | }, 53 | "resolutions": { 54 | "Chart.js": "~1.0.1", 55 | "angular": "1.x", 56 | "angular-mocks": "1.3.10" 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /www/lib/angular-chart.js/dist/angular-chart.css: -------------------------------------------------------------------------------- 1 | .chart-legend, 2 | .bar-legend, 3 | .line-legend, 4 | .pie-legend, 5 | .radar-legend, 6 | .polararea-legend, 7 | .doughnut-legend { 8 | list-style-type: none; 9 | margin-top: 5px; 10 | text-align: center; 11 | /* NOTE: Browsers automatically add 40px of padding-left to all lists, so we should offset that, otherwise the legend is off-center */ 12 | -webkit-padding-start: 0; 13 | /* Webkit */ 14 | -moz-padding-start: 0; 15 | /* Mozilla */ 16 | padding-left: 0; 17 | /* IE (handles all cases, really, but we should also include the vendor-specific properties just to be safe) */ 18 | } 19 | .chart-legend li, 20 | .bar-legend li, 21 | .line-legend li, 22 | .pie-legend li, 23 | .radar-legend li, 24 | .polararea-legend li, 25 | .doughnut-legend li { 26 | display: inline-block; 27 | white-space: nowrap; 28 | position: relative; 29 | margin-bottom: 4px; 30 | border-radius: 5px; 31 | padding: 2px 8px 2px 28px; 32 | font-size: smaller; 33 | cursor: default; 34 | } 35 | .chart-legend li span, 36 | .bar-legend li span, 37 | .line-legend li span, 38 | .pie-legend li span, 39 | .radar-legend li span, 40 | .polararea-legend li span, 41 | .doughnut-legend li span { 42 | display: block; 43 | position: absolute; 44 | left: 0; 45 | top: 0; 46 | width: 20px; 47 | height: 20px; 48 | border-radius: 5px; 49 | } 50 | -------------------------------------------------------------------------------- /www/lib/angular-chart.js/dist/angular-chart.js.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/www/lib/angular-chart.js/dist/angular-chart.js.tar.gz -------------------------------------------------------------------------------- /www/lib/angular-chart.js/dist/angular-chart.min.css: -------------------------------------------------------------------------------- 1 | .chart-legend,.bar-legend,.line-legend,.pie-legend,.radar-legend,.polararea-legend,.doughnut-legend{list-style-type:none;margin-top:5px;text-align:center;-webkit-padding-start:0;-moz-padding-start:0;padding-left:0}.chart-legend li,.bar-legend li,.line-legend li,.pie-legend li,.radar-legend li,.polararea-legend li,.doughnut-legend li{display:inline-block;white-space:nowrap;position:relative;margin-bottom:4px;border-radius:5px;padding:2px 8px 2px 28px;font-size:smaller;cursor:default}.chart-legend li span,.bar-legend li span,.line-legend li span,.pie-legend li span,.radar-legend li span,.polararea-legend li span,.doughnut-legend li span{display:block;position:absolute;left:0;top:0;width:20px;height:20px;border-radius:5px} 2 | /*# sourceMappingURL=angular-chart.min.css.map */ 3 | -------------------------------------------------------------------------------- /www/lib/angular-chart.js/dist/angular-chart.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"names":[],"mappings":"","sources":["angular-chart.css"],"sourcesContent":[".chart-legend,\n.bar-legend,\n.line-legend,\n.pie-legend,\n.radar-legend,\n.polararea-legend,\n.doughnut-legend {\n list-style-type: none;\n margin-top: 5px;\n text-align: center;\n /* NOTE: Browsers automatically add 40px of padding-left to all lists, so we should offset that, otherwise the legend is off-center */\n -webkit-padding-start: 0;\n /* Webkit */\n -moz-padding-start: 0;\n /* Mozilla */\n padding-left: 0;\n /* IE (handles all cases, really, but we should also include the vendor-specific properties just to be safe) */\n}\n.chart-legend li,\n.bar-legend li,\n.line-legend li,\n.pie-legend li,\n.radar-legend li,\n.polararea-legend li,\n.doughnut-legend li {\n display: inline-block;\n white-space: nowrap;\n position: relative;\n margin-bottom: 4px;\n border-radius: 5px;\n padding: 2px 8px 2px 28px;\n font-size: smaller;\n cursor: default;\n}\n.chart-legend li span,\n.bar-legend li span,\n.line-legend li span,\n.pie-legend li span,\n.radar-legend li span,\n.polararea-legend li span,\n.doughnut-legend li span {\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 20px;\n height: 20px;\n border-radius: 5px;\n}\n"],"file":"angular-chart.min.css","sourceRoot":"/source/"} -------------------------------------------------------------------------------- /www/lib/angular-chart.js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-chart.js", 3 | "version": "0.8.8", 4 | "description": "An angular.js wrapper for Chart.js", 5 | "main": "dist/angular-chart.js", 6 | "directories": { 7 | "example": "examples" 8 | }, 9 | "scripts": { 10 | "test": "gulp check" 11 | }, 12 | "author": "Jerome Touffe-Blin ", 13 | "repository": { 14 | "type": "git", 15 | "url": "git://github.com/jtblin/angular-chart.js.git" 16 | }, 17 | "license": "BSD-2-Clause", 18 | "devDependencies": { 19 | "chai": "^3.4.1", 20 | "chai-string": "^1.1.1", 21 | "codeclimate-test-reporter": "^0.1.0", 22 | "cp": "^0.2.0", 23 | "gm": "^1.17.0", 24 | "gulp": "^3.9.0", 25 | "gulp-bump": "^1.0.0", 26 | "gulp-csso": "^1.0.1", 27 | "gulp-git": "^1.6.0", 28 | "gulp-gzip": "^1.2.0", 29 | "gulp-istanbul": "^0.10.3", 30 | "gulp-istanbul-report": "^0.0.1", 31 | "gulp-jscs": "^3.0.2", 32 | "gulp-jshint": "^1.9.2", 33 | "gulp-less": "^3.0.3", 34 | "gulp-mocha-phantomjs": "^0.10.1", 35 | "gulp-ng-annotate": "^1.1.0", 36 | "gulp-rename": "^1.2.0", 37 | "gulp-rimraf": "^0.2.0", 38 | "gulp-sequence": "^0.4.1", 39 | "gulp-shell": "^0.5.1", 40 | "gulp-sourcemaps": "^1.0.0", 41 | "gulp-spawn-mocha": "^2.0.1", 42 | "gulp-tar": "^1.5.0", 43 | "gulp-uglify": "^1.4.2", 44 | "imgur-node-api": "^0.1.0", 45 | "jshint-stylish": "^2.0.1", 46 | "mkdirp": "^0.5.0", 47 | "mocha": "^2.1.0", 48 | "mocha-phantomjs-istanbul": "^0.0.2", 49 | "sinon": "^1.12.2", 50 | "sinon-chai": "^2.7.0", 51 | "testatic": "^0.1.0", 52 | "tmp-sync": "^1.1.0", 53 | "webpack": "^1.12.0", 54 | "webshot": "^0.16.0" 55 | }, 56 | "dependencies": { 57 | "angular": "^1.4.5", 58 | "chart.js": "^1.0.2" 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.4.3", 4 | "main": "./angular-sanitize.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | }, 9 | "homepage": "https://github.com/angular/bower-angular-sanitize", 10 | "_release": "1.4.3", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "v1.4.3", 14 | "commit": "0367ee4c3f9cb8af5d1da9ec35b71a8b523d9fc0" 15 | }, 16 | "_source": "git://github.com/angular/bower-angular-sanitize.git", 17 | "_target": "1.4.3", 18 | "_originalSource": "angular-sanitize" 19 | } -------------------------------------------------------------------------------- /www/lib/angular-sanitize/README.md: -------------------------------------------------------------------------------- 1 | # packaged angular-sanitize 2 | 3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the 4 | [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngSanitize). 5 | Please file issues and pull requests against that repo. 6 | 7 | ## Install 8 | 9 | You can install this package either with `npm` or with `bower`. 10 | 11 | ### npm 12 | 13 | ```shell 14 | npm install angular-sanitize 15 | ``` 16 | 17 | Then add `ngSanitize` as a dependency for your app: 18 | 19 | ```javascript 20 | angular.module('myApp', [require('angular-sanitize')]); 21 | ``` 22 | 23 | ### bower 24 | 25 | ```shell 26 | bower install angular-sanitize 27 | ``` 28 | 29 | Add a ` 33 | ``` 34 | 35 | Then add `ngSanitize` as a dependency for your app: 36 | 37 | ```javascript 38 | angular.module('myApp', ['ngSanitize']); 39 | ``` 40 | 41 | ## Documentation 42 | 43 | Documentation is available on the 44 | [AngularJS docs site](http://docs.angularjs.org/api/ngSanitize). 45 | 46 | ## License 47 | 48 | The MIT License 49 | 50 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org 51 | 52 | Permission is hereby granted, free of charge, to any person obtaining a copy 53 | of this software and associated documentation files (the "Software"), to deal 54 | in the Software without restriction, including without limitation the rights 55 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 56 | copies of the Software, and to permit persons to whom the Software is 57 | furnished to do so, subject to the following conditions: 58 | 59 | The above copyright notice and this permission notice shall be included in 60 | all copies or substantial portions of the Software. 61 | 62 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 63 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 64 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 65 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 66 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 67 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 68 | THE SOFTWARE. 69 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.4.3", 4 | "main": "./angular-sanitize.js", 5 | "ignore": [], 6 | "dependencies": { 7 | "angular": "1.4.3" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/index.js: -------------------------------------------------------------------------------- 1 | require('./angular-sanitize'); 2 | module.exports = 'ngSanitize'; 3 | -------------------------------------------------------------------------------- /www/lib/angular-sanitize/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-sanitize", 3 | "version": "1.4.3", 4 | "description": "AngularJS module for sanitizing HTML", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "html", 18 | "client-side" 19 | ], 20 | "author": "Angular Core Team ", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/angular/angular.js/issues" 24 | }, 25 | "homepage": "http://angularjs.org" 26 | } 27 | -------------------------------------------------------------------------------- /www/lib/angular-ui-router/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-router", 3 | "version": "0.2.13", 4 | "main": "./release/angular-ui-router.js", 5 | "dependencies": { 6 | "angular": ">= 1.0.8" 7 | }, 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "bower_components", 12 | "component.json", 13 | "package.json", 14 | "lib", 15 | "config", 16 | "sample", 17 | "test", 18 | "tests", 19 | "ngdoc_assets", 20 | "Gruntfile.js", 21 | "files.js" 22 | ], 23 | "homepage": "https://github.com/angular-ui/ui-router", 24 | "_release": "0.2.13", 25 | "_resolution": { 26 | "type": "version", 27 | "tag": "0.2.13", 28 | "commit": "c3d543aae43d4600512520a0d70723ac31f2cb62" 29 | }, 30 | "_source": "git://github.com/angular-ui/ui-router.git", 31 | "_target": "0.2.13", 32 | "_originalSource": "angular-ui-router" 33 | } -------------------------------------------------------------------------------- /www/lib/angular-ui-router/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2014 The AngularUI Team, Karsten Sperling 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /www/lib/angular-ui-router/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular-ui-router", 3 | "version": "0.2.13", 4 | "main": "./release/angular-ui-router.js", 5 | "dependencies": { 6 | "angular": ">= 1.0.8" 7 | }, 8 | "ignore": [ 9 | "**/.*", 10 | "node_modules", 11 | "bower_components", 12 | "component.json", 13 | "package.json", 14 | "lib", 15 | "config", 16 | "sample", 17 | "test", 18 | "tests", 19 | "ngdoc_assets", 20 | "Gruntfile.js", 21 | "files.js" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /www/lib/angular-ui-router/src/stateFilters.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc filter 3 | * @name ui.router.state.filter:isState 4 | * 5 | * @requires ui.router.state.$state 6 | * 7 | * @description 8 | * Translates to {@link ui.router.state.$state#methods_is $state.is("stateName")}. 9 | */ 10 | $IsStateFilter.$inject = ['$state']; 11 | function $IsStateFilter($state) { 12 | var isFilter = function (state) { 13 | return $state.is(state); 14 | }; 15 | isFilter.$stateful = true; 16 | return isFilter; 17 | } 18 | 19 | /** 20 | * @ngdoc filter 21 | * @name ui.router.state.filter:includedByState 22 | * 23 | * @requires ui.router.state.$state 24 | * 25 | * @description 26 | * Translates to {@link ui.router.state.$state#methods_includes $state.includes('fullOrPartialStateName')}. 27 | */ 28 | $IncludedByStateFilter.$inject = ['$state']; 29 | function $IncludedByStateFilter($state) { 30 | var includesFilter = function (state) { 31 | return $state.includes(state); 32 | }; 33 | includesFilter.$stateful = true; 34 | return includesFilter; 35 | } 36 | 37 | angular.module('ui.router.state') 38 | .filter('isState', $IsStateFilter) 39 | .filter('includedByState', $IncludedByStateFilter); 40 | -------------------------------------------------------------------------------- /www/lib/angular-ui-router/src/view.js: -------------------------------------------------------------------------------- 1 | 2 | $ViewProvider.$inject = []; 3 | function $ViewProvider() { 4 | 5 | this.$get = $get; 6 | /** 7 | * @ngdoc object 8 | * @name ui.router.state.$view 9 | * 10 | * @requires ui.router.util.$templateFactory 11 | * @requires $rootScope 12 | * 13 | * @description 14 | * 15 | */ 16 | $get.$inject = ['$rootScope', '$templateFactory']; 17 | function $get( $rootScope, $templateFactory) { 18 | return { 19 | // $view.load('full.viewName', { template: ..., controller: ..., resolve: ..., async: false, params: ... }) 20 | /** 21 | * @ngdoc function 22 | * @name ui.router.state.$view#load 23 | * @methodOf ui.router.state.$view 24 | * 25 | * @description 26 | * 27 | * @param {string} name name 28 | * @param {object} options option object. 29 | */ 30 | load: function load(name, options) { 31 | var result, defaults = { 32 | template: null, controller: null, view: null, locals: null, notify: true, async: true, params: {} 33 | }; 34 | options = extend(defaults, options); 35 | 36 | if (options.view) { 37 | result = $templateFactory.fromConfig(options.view, options.params, options.locals); 38 | } 39 | if (result && options.notify) { 40 | /** 41 | * @ngdoc event 42 | * @name ui.router.state.$state#$viewContentLoading 43 | * @eventOf ui.router.state.$view 44 | * @eventType broadcast on root scope 45 | * @description 46 | * 47 | * Fired once the view **begins loading**, *before* the DOM is rendered. 48 | * 49 | * @param {Object} event Event object. 50 | * @param {Object} viewConfig The view config properties (template, controller, etc). 51 | * 52 | * @example 53 | * 54 | *
55 |          * $scope.$on('$viewContentLoading',
56 |          * function(event, viewConfig){
57 |          *     // Access to all the view config properties.
58 |          *     // and one special property 'targetView'
59 |          *     // viewConfig.targetView
60 |          * });
61 |          * 
62 | */ 63 | $rootScope.$broadcast('$viewContentLoading', options); 64 | } 65 | return result; 66 | } 67 | }; 68 | } 69 | } 70 | 71 | angular.module('ui.router.state').provider('$view', $ViewProvider); 72 | -------------------------------------------------------------------------------- /www/lib/angular-ui-router/src/viewScroll.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @ngdoc object 3 | * @name ui.router.state.$uiViewScrollProvider 4 | * 5 | * @description 6 | * Provider that returns the {@link ui.router.state.$uiViewScroll} service function. 7 | */ 8 | function $ViewScrollProvider() { 9 | 10 | var useAnchorScroll = false; 11 | 12 | /** 13 | * @ngdoc function 14 | * @name ui.router.state.$uiViewScrollProvider#useAnchorScroll 15 | * @methodOf ui.router.state.$uiViewScrollProvider 16 | * 17 | * @description 18 | * Reverts back to using the core [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll) service for 19 | * scrolling based on the url anchor. 20 | */ 21 | this.useAnchorScroll = function () { 22 | useAnchorScroll = true; 23 | }; 24 | 25 | /** 26 | * @ngdoc object 27 | * @name ui.router.state.$uiViewScroll 28 | * 29 | * @requires $anchorScroll 30 | * @requires $timeout 31 | * 32 | * @description 33 | * When called with a jqLite element, it scrolls the element into view (after a 34 | * `$timeout` so the DOM has time to refresh). 35 | * 36 | * If you prefer to rely on `$anchorScroll` to scroll the view to the anchor, 37 | * this can be enabled by calling {@link ui.router.state.$uiViewScrollProvider#methods_useAnchorScroll `$uiViewScrollProvider.useAnchorScroll()`}. 38 | */ 39 | this.$get = ['$anchorScroll', '$timeout', function ($anchorScroll, $timeout) { 40 | if (useAnchorScroll) { 41 | return $anchorScroll; 42 | } 43 | 44 | return function ($element) { 45 | $timeout(function () { 46 | $element[0].scrollIntoView(); 47 | }, 0, false); 48 | }; 49 | }]; 50 | } 51 | 52 | angular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider); 53 | -------------------------------------------------------------------------------- /www/lib/angular/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.3", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": {}, 7 | "homepage": "https://github.com/angular/bower-angular", 8 | "_release": "1.4.3", 9 | "_resolution": { 10 | "type": "version", 11 | "tag": "v1.4.3", 12 | "commit": "dbd689e8103a6366e53e1f6786727f7c65ccfd75" 13 | }, 14 | "_source": "git://github.com/angular/bower-angular.git", 15 | "_target": "1.4.3", 16 | "_originalSource": "angular" 17 | } -------------------------------------------------------------------------------- /www/lib/angular/README.md: -------------------------------------------------------------------------------- 1 | # packaged angular 2 | 3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the 4 | [main AngularJS repo](https://github.com/angular/angular.js). 5 | Please file issues and pull requests against that repo. 6 | 7 | ## Install 8 | 9 | You can install this package either with `npm` or with `bower`. 10 | 11 | ### npm 12 | 13 | ```shell 14 | npm install angular 15 | ``` 16 | 17 | Then add a ` 21 | ``` 22 | 23 | Or `require('angular')` from your code. 24 | 25 | ### bower 26 | 27 | ```shell 28 | bower install angular 29 | ``` 30 | 31 | Then add a ` 35 | ``` 36 | 37 | ## Documentation 38 | 39 | Documentation is available on the 40 | [AngularJS docs site](http://docs.angularjs.org/). 41 | 42 | ## License 43 | 44 | The MIT License 45 | 46 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org 47 | 48 | Permission is hereby granted, free of charge, to any person obtaining a copy 49 | of this software and associated documentation files (the "Software"), to deal 50 | in the Software without restriction, including without limitation the rights 51 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 52 | copies of the Software, and to permit persons to whom the Software is 53 | furnished to do so, subject to the following conditions: 54 | 55 | The above copyright notice and this permission notice shall be included in 56 | all copies or substantial portions of the Software. 57 | 58 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 59 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 60 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 61 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 62 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 63 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 64 | THE SOFTWARE. 65 | -------------------------------------------------------------------------------- /www/lib/angular/angular-csp.css: -------------------------------------------------------------------------------- 1 | /* Include this file in your html if you are using the CSP mode. */ 2 | 3 | @charset "UTF-8"; 4 | 5 | [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], 6 | .ng-cloak, .x-ng-cloak, 7 | .ng-hide:not(.ng-hide-animate) { 8 | display: none !important; 9 | } 10 | 11 | ng\:form { 12 | display: block; 13 | } 14 | 15 | .ng-animate-shim { 16 | visibility:hidden; 17 | } 18 | 19 | .ng-anchor { 20 | position:absolute; 21 | } 22 | -------------------------------------------------------------------------------- /www/lib/angular/angular.min.js.gzip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/www/lib/angular/angular.min.js.gzip -------------------------------------------------------------------------------- /www/lib/angular/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.3", 4 | "main": "./angular.js", 5 | "ignore": [], 6 | "dependencies": { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /www/lib/angular/index.js: -------------------------------------------------------------------------------- 1 | require('./angular'); 2 | module.exports = angular; 3 | -------------------------------------------------------------------------------- /www/lib/angular/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "angular", 3 | "version": "1.4.3", 4 | "description": "HTML enhanced for web apps", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/angular/angular.js.git" 12 | }, 13 | "keywords": [ 14 | "angular", 15 | "framework", 16 | "browser", 17 | "client-side" 18 | ], 19 | "author": "Angular Core Team ", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/angular/angular.js/issues" 23 | }, 24 | "homepage": "http://angularjs.org" 25 | } 26 | -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/www/lib/ionic/fonts/ionicons.eot -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/www/lib/ionic/fonts/ionicons.ttf -------------------------------------------------------------------------------- /www/lib/ionic/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/www/lib/ionic/fonts/ionicons.woff -------------------------------------------------------------------------------- /www/lib/ionic/scss/_animations.scss: -------------------------------------------------------------------------------- 1 | 2 | // Slide up from the bottom, used for modals 3 | // ------------------------------- 4 | 5 | .slide-in-up { 6 | @include translate3d(0, 100%, 0); 7 | } 8 | .slide-in-up.ng-enter, 9 | .slide-in-up > .ng-enter { 10 | @include transition(all cubic-bezier(.1, .7, .1, 1) 400ms); 11 | } 12 | .slide-in-up.ng-enter-active, 13 | .slide-in-up > .ng-enter-active { 14 | @include translate3d(0, 0, 0); 15 | } 16 | 17 | .slide-in-up.ng-leave, 18 | .slide-in-up > .ng-leave { 19 | @include transition(all ease-in-out 250ms); 20 | } 21 | 22 | 23 | // Scale Out 24 | // Scale from hero (1 in this case) to zero 25 | // ------------------------------- 26 | 27 | @-webkit-keyframes scaleOut { 28 | from { -webkit-transform: scale(1); opacity: 1; } 29 | to { -webkit-transform: scale(0.8); opacity: 0; } 30 | } 31 | @keyframes scaleOut { 32 | from { transform: scale(1); opacity: 1; } 33 | to { transform: scale(0.8); opacity: 0; } 34 | } 35 | 36 | 37 | // Super Scale In 38 | // Scale from super (1.x) to duper (1 in this case) 39 | // ------------------------------- 40 | 41 | @-webkit-keyframes superScaleIn { 42 | from { -webkit-transform: scale(1.2); opacity: 0; } 43 | to { -webkit-transform: scale(1); opacity: 1 } 44 | } 45 | @keyframes superScaleIn { 46 | from { transform: scale(1.2); opacity: 0; } 47 | to { transform: scale(1); opacity: 1; } 48 | } 49 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_backdrop.scss: -------------------------------------------------------------------------------- 1 | 2 | .backdrop { 3 | position: fixed; 4 | top: 0; 5 | left: 0; 6 | z-index: $z-index-backdrop; 7 | 8 | width: 100%; 9 | height: 100%; 10 | 11 | background-color: $loading-backdrop-bg-color; 12 | 13 | visibility: hidden; 14 | opacity: 0; 15 | 16 | &.visible { 17 | visibility: visible; 18 | } 19 | &.active { 20 | opacity: 1; 21 | } 22 | 23 | @include transition($loading-backdrop-fadein-duration opacity linear); 24 | } 25 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Badges 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .badge { 8 | @include badge-style($badge-default-bg, $badge-default-text); 9 | z-index: $z-index-badge; 10 | display: inline-block; 11 | padding: 3px 8px; 12 | min-width: 10px; 13 | border-radius: $badge-border-radius; 14 | vertical-align: baseline; 15 | text-align: center; 16 | white-space: nowrap; 17 | font-weight: $badge-font-weight; 18 | font-size: $badge-font-size; 19 | line-height: $badge-line-height; 20 | 21 | &:empty { 22 | display: none; 23 | } 24 | } 25 | 26 | //Be sure to override specificity of rule that 'badge color matches tab color by default' 27 | .tabs .tab-item .badge, 28 | .badge { 29 | &.badge-light { 30 | @include badge-style($badge-light-bg, $badge-light-text); 31 | } 32 | &.badge-stable { 33 | @include badge-style($badge-stable-bg, $badge-stable-text); 34 | } 35 | &.badge-positive { 36 | @include badge-style($badge-positive-bg, $badge-positive-text); 37 | } 38 | &.badge-calm { 39 | @include badge-style($badge-calm-bg, $badge-calm-text); 40 | } 41 | &.badge-assertive { 42 | @include badge-style($badge-assertive-bg, $badge-assertive-text); 43 | } 44 | &.badge-balanced { 45 | @include badge-style($badge-balanced-bg, $badge-balanced-text); 46 | } 47 | &.badge-energized { 48 | @include badge-style($badge-energized-bg, $badge-energized-text); 49 | } 50 | &.badge-royal { 51 | @include badge-style($badge-royal-bg, $badge-royal-text); 52 | } 53 | &.badge-dark { 54 | @include badge-style($badge-dark-bg, $badge-dark-text); 55 | } 56 | } 57 | 58 | // Quick fix for labels/badges in buttons 59 | .button .badge { 60 | position: relative; 61 | top: -1px; 62 | } 63 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_button-bar.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Button Bar 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .button-bar { 8 | @include display-flex(); 9 | @include flex(1); 10 | width: 100%; 11 | 12 | &.button-bar-inline { 13 | display: block; 14 | width: auto; 15 | 16 | @include clearfix(); 17 | 18 | > .button { 19 | width: auto; 20 | display: inline-block; 21 | float: left; 22 | } 23 | } 24 | } 25 | 26 | .button-bar > .button { 27 | @include flex(1); 28 | display: block; 29 | 30 | overflow: hidden; 31 | 32 | padding: 0 16px; 33 | 34 | width: 0; 35 | 36 | border-width: 1px 0px 1px 1px; 37 | border-radius: 0; 38 | text-align: center; 39 | text-overflow: ellipsis; 40 | white-space: nowrap; 41 | 42 | &:before, 43 | .icon:before { 44 | line-height: 44px; 45 | } 46 | 47 | &:first-child { 48 | border-radius: $button-border-radius 0px 0px $button-border-radius; 49 | } 50 | &:last-child { 51 | border-right-width: 1px; 52 | border-radius: 0px $button-border-radius $button-border-radius 0px; 53 | } 54 | &:only-child { 55 | border-radius: $button-border-radius; 56 | } 57 | } 58 | 59 | .button-bar > .button-small { 60 | &:before, 61 | .icon:before { 62 | line-height: 28px; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_loading.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Loading 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .loading-container { 8 | position: absolute; 9 | left: 0; 10 | top: 0; 11 | right: 0; 12 | bottom: 0; 13 | 14 | z-index: $z-index-loading; 15 | 16 | @include display-flex(); 17 | @include justify-content(center); 18 | @include align-items(center); 19 | 20 | @include transition(0.2s opacity linear); 21 | visibility: hidden; 22 | opacity: 0; 23 | 24 | &:not(.visible) .icon, 25 | &:not(.visible) .spinner{ 26 | display: none; 27 | } 28 | &.visible { 29 | visibility: visible; 30 | } 31 | &.active { 32 | opacity: 1; 33 | } 34 | 35 | .loading { 36 | padding: $loading-padding; 37 | 38 | border-radius: $loading-border-radius; 39 | background-color: $loading-bg-color; 40 | 41 | color: $loading-text-color; 42 | 43 | text-align: center; 44 | text-overflow: ellipsis; 45 | font-size: $loading-font-size; 46 | 47 | h1, h2, h3, h4, h5, h6 { 48 | color: $loading-text-color; 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_menu.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Menus 4 | * -------------------------------------------------- 5 | * Side panel structure 6 | */ 7 | 8 | .menu { 9 | position: absolute; 10 | top: 0; 11 | bottom: 0; 12 | z-index: $z-index-menu; 13 | overflow: hidden; 14 | 15 | min-height: 100%; 16 | max-height: 100%; 17 | width: $menu-width; 18 | 19 | background-color: $menu-bg; 20 | 21 | .scroll-content { 22 | z-index: $z-index-menu-scroll-content; 23 | } 24 | 25 | .bar-header { 26 | z-index: $z-index-menu-bar-header; 27 | } 28 | } 29 | 30 | .menu-content { 31 | @include transform(none); 32 | box-shadow: $menu-side-shadow; 33 | } 34 | 35 | .menu-open .menu-content .pane, 36 | .menu-open .menu-content .scroll-content { 37 | pointer-events: none; 38 | } 39 | .menu-open .menu-content .scroll-content .scroll { 40 | pointer-events: none; 41 | } 42 | .menu-open .menu-content .scroll-content:not(.overflow-scroll) { 43 | overflow: hidden; 44 | } 45 | 46 | .grade-b .menu-content, 47 | .grade-c .menu-content { 48 | @include box-sizing(content-box); 49 | right: -1px; 50 | left: -1px; 51 | border-right: 1px solid #ccc; 52 | border-left: 1px solid #ccc; 53 | box-shadow: none; 54 | } 55 | 56 | .menu-left { 57 | left: 0; 58 | } 59 | 60 | .menu-right { 61 | right: 0; 62 | } 63 | 64 | .aside-open.aside-resizing .menu-right { 65 | display: none; 66 | } 67 | 68 | .menu-animated { 69 | @include transition-transform($menu-animation-speed ease); 70 | } 71 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_platform.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Platform 4 | * -------------------------------------------------- 5 | * Platform specific tweaks 6 | */ 7 | 8 | .platform-ios.platform-cordova { 9 | // iOS has a status bar which sits on top of the header. 10 | // Bump down everything to make room for it. However, if 11 | // if its in Cordova, and set to fullscreen, then disregard the bump. 12 | &:not(.fullscreen) { 13 | .bar-header:not(.bar-subheader) { 14 | height: $bar-height + $ios-statusbar-height; 15 | 16 | &.item-input-inset .item-input-wrapper { 17 | margin-top: 19px !important; 18 | } 19 | 20 | > * { 21 | margin-top: $ios-statusbar-height; 22 | } 23 | } 24 | .tabs-top > .tabs, 25 | .tabs.tabs-top { 26 | top: $bar-height + $ios-statusbar-height; 27 | } 28 | 29 | .has-header, 30 | .bar-subheader { 31 | top: $bar-height + $ios-statusbar-height; 32 | } 33 | .has-subheader { 34 | top: $bar-height + $bar-subheader-height + $ios-statusbar-height; 35 | } 36 | .has-header.has-tabs-top { 37 | top: $bar-height + $tabs-height + $ios-statusbar-height; 38 | } 39 | .has-header.has-subheader.has-tabs-top { 40 | top: $bar-height + $bar-subheader-height + $tabs-height + $ios-statusbar-height; 41 | } 42 | } 43 | .popover{ 44 | .bar-header:not(.bar-subheader) { 45 | height: $bar-height; 46 | &.item-input-inset .item-input-wrapper { 47 | margin-top: -1px; 48 | } 49 | > * { 50 | margin-top: 0; 51 | } 52 | } 53 | .has-header, 54 | .bar-subheader { 55 | top: $bar-height; 56 | } 57 | .has-subheader { 58 | top: $bar-height + $bar-subheader-height; 59 | } 60 | } 61 | &.status-bar-hide { 62 | // Cordova doesn't adjust the body height correctly, this makes up for it 63 | margin-bottom: 20px; 64 | } 65 | } 66 | 67 | @media (orientation:landscape) { 68 | .platform-ios.platform-browser.platform-ipad { 69 | position: fixed; // required for iPad 7 Safari 70 | } 71 | } 72 | 73 | .platform-c:not(.enable-transitions) * { 74 | // disable transitions on grade-c devices (Android 2) 75 | -webkit-transition: none !important; 76 | transition: none !important; 77 | } 78 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_progress.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Progress 4 | * -------------------------------------------------- 5 | */ 6 | 7 | progress { 8 | display: block; 9 | margin: $progress-margin; 10 | width: $progress-width; 11 | } 12 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_radio.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Radio Button Inputs 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .item-radio { 8 | padding: 0; 9 | 10 | &:hover { 11 | cursor: pointer; 12 | } 13 | } 14 | 15 | .item-radio .item-content { 16 | /* give some room to the right for the checkmark icon */ 17 | padding-right: $item-padding * 4; 18 | } 19 | 20 | .item-radio .radio-icon { 21 | /* checkmark icon will be hidden by default */ 22 | position: absolute; 23 | top: 0; 24 | right: 0; 25 | z-index: $z-index-item-radio; 26 | visibility: hidden; 27 | padding: $item-padding - 2; 28 | height: 100%; 29 | font-size: 24px; 30 | } 31 | 32 | .item-radio input { 33 | /* hide any radio button inputs elements (the ugly circles) */ 34 | position: absolute; 35 | left: -9999px; 36 | 37 | &:checked + .radio-content .item-content { 38 | /* style the item content when its checked */ 39 | background: #f7f7f7; 40 | } 41 | 42 | &:checked + .radio-content .radio-icon { 43 | /* show the checkmark icon when its checked */ 44 | visibility: visible; 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/_slide-box.scss: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * Slide Box 4 | * -------------------------------------------------- 5 | */ 6 | 7 | .slider { 8 | position: relative; 9 | visibility: hidden; 10 | // Make sure items don't scroll over ever 11 | overflow: hidden; 12 | } 13 | 14 | .slider-slides { 15 | position: relative; 16 | height: 100%; 17 | } 18 | 19 | .slider-slide { 20 | position: relative; 21 | display: block; 22 | float: left; 23 | width: 100%; 24 | height: 100%; 25 | vertical-align: top; 26 | } 27 | 28 | .slider-slide-image { 29 | > img { 30 | width: 100%; 31 | } 32 | } 33 | 34 | .slider-pager { 35 | position: absolute; 36 | bottom: 20px; 37 | z-index: $z-index-slider-pager; 38 | width: 100%; 39 | height: 15px; 40 | text-align: center; 41 | 42 | .slider-pager-page { 43 | display: inline-block; 44 | margin: 0px 3px; 45 | width: 15px; 46 | color: #000; 47 | text-decoration: none; 48 | 49 | opacity: 0.3; 50 | 51 | &.active { 52 | @include transition(opacity 0.4s ease-in); 53 | opacity: 1; 54 | } 55 | } 56 | } 57 | 58 | //Disable animate service animations 59 | .slider-slide, 60 | .slider-pager-page { 61 | &.ng-enter, 62 | &.ng-leave, 63 | &.ng-animate { 64 | -webkit-transition: none !important; 65 | transition: none !important; 66 | } 67 | &.ng-animate { 68 | -webkit-animation: none 0s; 69 | animation: none 0s; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/ionic.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | @import 4 | // Ionicons 5 | "ionicons/ionicons.scss", 6 | 7 | // Variables 8 | "mixins", 9 | "variables", 10 | 11 | // Base 12 | "reset", 13 | "scaffolding", 14 | "type", 15 | 16 | // Components 17 | "action-sheet", 18 | "backdrop", 19 | "bar", 20 | "tabs", 21 | "menu", 22 | "modal", 23 | "popover", 24 | "popup", 25 | "loading", 26 | "items", 27 | "list", 28 | "badge", 29 | "slide-box", 30 | "slides", 31 | "refresher", 32 | "spinner", 33 | 34 | // Forms 35 | "form", 36 | "checkbox", 37 | "toggle", 38 | "radio", 39 | "range", 40 | "select", 41 | "progress", 42 | 43 | // Buttons 44 | "button", 45 | "button-bar", 46 | 47 | // Util 48 | "grid", 49 | "util", 50 | "platform", 51 | 52 | // Animations 53 | "animations", 54 | "transitions"; 55 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/ionicons/_ionicons-font.scss: -------------------------------------------------------------------------------- 1 | // Ionicons Font Path 2 | // -------------------------- 3 | 4 | @font-face { 5 | font-family: $ionicons-font-family; 6 | src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}"); 7 | src:url("#{$ionicons-font-path}/ionicons.eot?v=#{$ionicons-version}#iefix") format("embedded-opentype"), 8 | url("#{$ionicons-font-path}/ionicons.ttf?v=#{$ionicons-version}") format("truetype"), 9 | url("#{$ionicons-font-path}/ionicons.woff?v=#{$ionicons-version}") format("woff"), 10 | url("#{$ionicons-font-path}/ionicons.woff") format("woff"), /* for WP8 */ 11 | url("#{$ionicons-font-path}/ionicons.svg?v=#{$ionicons-version}#Ionicons") format("svg"); 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | 16 | .ion { 17 | display: inline-block; 18 | font-family: $ionicons-font-family; 19 | speak: none; 20 | font-style: normal; 21 | font-weight: normal; 22 | font-variant: normal; 23 | text-transform: none; 24 | text-rendering: auto; 25 | line-height: 1; 26 | -webkit-font-smoothing: antialiased; 27 | -moz-osx-font-smoothing: grayscale; 28 | } 29 | -------------------------------------------------------------------------------- /www/lib/ionic/scss/ionicons/ionicons.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | @import "ionicons-variables"; 3 | /*! 4 | Ionicons, v2.0.1 5 | Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ 6 | https://twitter.com/benjsperry https://twitter.com/ionicframework 7 | MIT License: https://github.com/driftyco/ionicons 8 | 9 | Android-style icons originally built by Google’s 10 | Material Design Icons: https://github.com/google/material-design-icons 11 | used under CC BY http://creativecommons.org/licenses/by/4.0/ 12 | Modified icons to fit ionicon’s grid from original. 13 | */ 14 | 15 | @import "ionicons-font"; 16 | @import "ionicons-icons"; 17 | -------------------------------------------------------------------------------- /www/lib/ionic/version.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.2.4", 3 | "codename": "", 4 | "date": "2016-01-03", 5 | "time": "19:55:51" 6 | } 7 | -------------------------------------------------------------------------------- /www/lib/ngCordova/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngCordova", 3 | "version": "0.1.24-alpha", 4 | "homepage": "http://ngCordova.com/", 5 | "authors": [ 6 | "Max Lynch ", 7 | "Paolo Bernasconi ", 8 | "Chad Campbell " 9 | ], 10 | "description": "AngularJS Cordova wrappers for common Cordova plugins.", 11 | "main": [ 12 | "./dist/ng-cordova.js" 13 | ], 14 | "ignore": [ 15 | "**/.*", 16 | "gulpfile.js", 17 | "test", 18 | "src", 19 | "config", 20 | "demo", 21 | "CONTRIBUTING.md", 22 | "CODE_OF_CONDUCT.md" 23 | ], 24 | "dependencies": { 25 | "angular": ">= 1.2.23" 26 | }, 27 | "keywords": [ 28 | "ngCordova", 29 | "ng-cordova", 30 | "ngcordova", 31 | "ng cordova", 32 | "cordova", 33 | "phonegap", 34 | "angular", 35 | "angularjs", 36 | "ionic", 37 | "cordova plugin" 38 | ], 39 | "license": "MIT", 40 | "private": false, 41 | "devDependencies": { 42 | "angular": ">= 1.2.23", 43 | "angular-mocks": ">= 1.2.23", 44 | "jquery": "~2.1.1" 45 | }, 46 | "_release": "0.1.24-alpha", 47 | "_resolution": { 48 | "type": "version", 49 | "tag": "v0.1.24-alpha", 50 | "commit": "9de37ab18b41cc5d03b74148306372d408bfcbb0" 51 | }, 52 | "_source": "git://github.com/driftyco/ng-cordova.git", 53 | "_target": "~0.1.24-alpha", 54 | "_originalSource": "ngCordova", 55 | "_direct": true 56 | } -------------------------------------------------------------------------------- /www/lib/ngCordova/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | Please refer to the [Github ngCordova Releases file](https://github.com/driftyco/ng-cordova/releases) for detailed information. 2 | -------------------------------------------------------------------------------- /www/lib/ngCordova/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Drifty 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /www/lib/ngCordova/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngCordova", 3 | "version": "0.1.24-alpha", 4 | "homepage": "http://ngCordova.com/", 5 | "authors": [ 6 | "Max Lynch ", 7 | "Paolo Bernasconi ", 8 | "Chad Campbell " 9 | ], 10 | "description": "AngularJS Cordova wrappers for common Cordova plugins.", 11 | "main": [ 12 | "./dist/ng-cordova.js" 13 | ], 14 | "ignore": [ 15 | "**/.*", 16 | "gulpfile.js", 17 | "test", 18 | "src", 19 | "config", 20 | "demo", 21 | "CONTRIBUTING.md", 22 | "CODE_OF_CONDUCT.md" 23 | ], 24 | "dependencies": { 25 | "angular": ">= 1.2.23" 26 | }, 27 | "keywords": [ 28 | "ngCordova", 29 | "ng-cordova", 30 | "ngcordova", 31 | "ng cordova", 32 | "cordova", 33 | "phonegap", 34 | "angular", 35 | "angularjs", 36 | "ionic", 37 | "cordova plugin" 38 | ], 39 | "license": "MIT", 40 | "private": false, 41 | "devDependencies": { 42 | "angular": ">= 1.2.23", 43 | "angular-mocks": ">= 1.2.23", 44 | "jquery": "~2.1.1" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /www/lib/ngCordova/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ng-cordova", 3 | "private": false, 4 | "main": "dist/ng-cordova", 5 | "version": "0.1.24-alpha", 6 | "repository": { 7 | "url": "git://github.com/driftyco/ng-cordova.git" 8 | }, 9 | "devDependencies": { 10 | "gulp": "^3.7.0", 11 | "gulp-concat": "^2.2.0", 12 | "gulp-footer": "^1.0.4", 13 | "gulp-header": "^1.0.2", 14 | "gulp-jscs": "^1.6.0", 15 | "gulp-jshint": "^1.6.1", 16 | "gulp-prettify": "^0.3.0", 17 | "gulp-rename": "^1.2.0", 18 | "gulp-shell": "^0.2.10", 19 | "gulp-uglify": "^0.2.1", 20 | "jshint-stylish": "^0.4.0", 21 | "karma": "^0.12.16", 22 | "karma-chrome-launcher": "~0.1.2", 23 | "karma-coverage": "~0.2.6", 24 | "karma-jasmine": "~0.1.5", 25 | "karma-phantomjs-launcher": "~0.1.2", 26 | "minimist": "^0.1.0" 27 | }, 28 | "licenses": [ 29 | { 30 | "type": "MIT" 31 | } 32 | ], 33 | "scripts": { 34 | "test": "gulp lint && gulp karma --browsers=PhantomJS --reporters=progress" 35 | }, 36 | "dependencies": { 37 | "conventional-changelog": "0.0.11", 38 | "fs": "0.0.2", 39 | "gulp-git": "^1.2.4", 40 | "q": "^1.1.2" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /www/lib/ngstorage/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngstorage", 3 | "version": "0.3.10", 4 | "main": "./ngStorage.js", 5 | "keywords": [ 6 | "angular", 7 | "cookie", 8 | "storage", 9 | "local", 10 | "localstorage", 11 | "session", 12 | "sessionstorage" 13 | ], 14 | "ignore": [ 15 | "CHANGELOG.md", 16 | "components", 17 | "node_modules", 18 | "test", 19 | "package.json", 20 | "Gruntfile.js", 21 | ".bowerrc", 22 | ".gitignore", 23 | ".travis.yml" 24 | ], 25 | "dependencies": { 26 | "angular": ">=1.0.8" 27 | }, 28 | "devDependencies": { 29 | "angular-mocks": ">=1.0.8", 30 | "chai": "^2.0.0" 31 | }, 32 | "repository": { 33 | "type": "git", 34 | "url": "git://github.com/gsklee/ngStorage.git" 35 | }, 36 | "homepage": "https://github.com/gsklee/ngStorage", 37 | "_release": "0.3.10", 38 | "_resolution": { 39 | "type": "version", 40 | "tag": "0.3.10", 41 | "commit": "3cd5ffaff77bebda910b94ca2a657ac44f4aac79" 42 | }, 43 | "_source": "git://github.com/gsklee/ngStorage.git", 44 | "_target": "~0.3.10", 45 | "_originalSource": "ngstorage", 46 | "_direct": true 47 | } -------------------------------------------------------------------------------- /www/lib/ngstorage/.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /www/lib/ngstorage/.gitattributes: -------------------------------------------------------------------------------- 1 | # http://git-scm.com/docs/gitattributes 2 | 3 | * text=auto 4 | -------------------------------------------------------------------------------- /www/lib/ngstorage/.npmignore: -------------------------------------------------------------------------------- 1 | # https://docs.npmjs.com/misc/developers 2 | 3 | * 4 | !.gitignore 5 | !LICENSE 6 | !ngStorage.js 7 | !ngStorage.min.js 8 | -------------------------------------------------------------------------------- /www/lib/ngstorage/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Gias Kay Lee 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /www/lib/ngstorage/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngstorage", 3 | "version": "0.3.10", 4 | "main": "./ngStorage.js", 5 | "keywords": [ 6 | "angular", 7 | "cookie", 8 | "storage", 9 | "local", 10 | "localstorage", 11 | "session", 12 | "sessionstorage" 13 | ], 14 | "ignore": [ 15 | "CHANGELOG.md", 16 | "components", 17 | "node_modules", 18 | "test", 19 | "package.json", 20 | "Gruntfile.js", 21 | ".bowerrc", 22 | ".gitignore", 23 | ".travis.yml" 24 | ], 25 | "dependencies": { 26 | "angular": ">=1.0.8" 27 | }, 28 | "devDependencies": { 29 | "angular-mocks": ">=1.0.8", 30 | "chai": "^2.0.0" 31 | }, 32 | "repository": { 33 | "type": "git", 34 | "url": "git://github.com/gsklee/ngStorage.git" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /www/lib/ngstorage/ngStorage.min.js: -------------------------------------------------------------------------------- 1 | /*! ngstorage 0.3.10 | Copyright (c) 2015 Gias Kay Lee | MIT License */!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["angular"],b):a.hasOwnProperty("angular")?b(a.angular):"object"==typeof exports&&(module.exports=b(require("angular")))}(this,function(a){"use strict";function b(b){return function(){var c="ngStorage-";this.setKeyPrefix=function(a){if("string"!=typeof a)throw new TypeError("[ngStorage] - "+b+"Provider.setKeyPrefix() expects a String.");c=a};var d=a.toJson,e=a.fromJson;this.setSerializer=function(a){if("function"!=typeof a)throw new TypeError("[ngStorage] - "+b+"Provider.setSerializer expects a function.");d=a},this.setDeserializer=function(a){if("function"!=typeof a)throw new TypeError("[ngStorage] - "+b+"Provider.setDeserializer expects a function.");e=a},this.get=function(a){return e(window[b].getItem(c+a))},this.set=function(a,e){return window[b].setItem(c+a,d(e))},this.$get=["$rootScope","$window","$log","$timeout","$document",function(f,g,h,i,j){function k(a){var b;try{b=g[a]}catch(c){b=!1}if(b&&"localStorage"===a){var d="__"+Math.round(1e7*Math.random());try{localStorage.setItem(d,d),localStorage.removeItem(d)}catch(c){b=!1}}return b}var l,m,n=c.length,o=k(b)||(h.warn("This browser does not support Web Storage!"),{setItem:a.noop,getItem:a.noop,removeItem:a.noop}),p={$default:function(b){for(var c in b)a.isDefined(p[c])||(p[c]=a.copy(b[c]));return p.$sync(),p},$reset:function(a){for(var b in p)"$"===b[0]||delete p[b]&&o.removeItem(c+b);return p.$default(a)},$sync:function(){for(var a,b=0,d=o.length;d>b;b++)(a=o.key(b))&&c===a.slice(0,n)&&(p[a.slice(n)]=e(o.getItem(a)))},$apply:function(){var b;if(m=null,!a.equals(p,l)){b=a.copy(l),a.forEach(p,function(e,f){a.isDefined(e)&&"$"!==f[0]&&(o.setItem(c+f,d(e)),delete b[f])});for(var e in b)o.removeItem(c+e);l=a.copy(p)}}};return p.$sync(),l=a.copy(p),f.$watch(function(){m||(m=i(p.$apply,100,!1))}),g.addEventListener&&g.addEventListener("storage",function(b){if(b.key){var d=j[0];d.hasFocus&&d.hasFocus()||c!==b.key.slice(0,n)||(b.newValue?p[b.key.slice(n)]=e(b.newValue):delete p[b.key.slice(n)],l=a.copy(p),f.$apply())}}),g.addEventListener&&g.addEventListener("beforeunload",function(){p.$apply()}),p}]}}return a=a&&a.module?a:window.angular,a.module("ngStorage",[]).provider("$localStorage",b("localStorage")).provider("$sessionStorage",b("sessionStorage"))}); -------------------------------------------------------------------------------- /www/lib/ngstorage/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | name: 'gsklee:ngstorage', 3 | version: '0.3.10', 4 | summary: 'ngStorage package for Meteor', 5 | git: 'https://github.com/gsklee/ngStorage', 6 | documentation: 'README.md' 7 | }); 8 | 9 | Package.onUse(function(api) { 10 | api.versionsFrom('METEOR@0.9.0.1'); 11 | api.use('urigo:angular@0.8.4', 'client'); 12 | api.addFiles('ngStorage.js', 'client'); 13 | }); 14 | -------------------------------------------------------------------------------- /www/lib/thirdparty/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/www/lib/thirdparty/.DS_Store -------------------------------------------------------------------------------- /www/lib/thirdparty/lightwallet.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lightrainstech/etherwallet/8b71a1024c33da79d9f43b22aaca75fd4695e9db/www/lib/thirdparty/lightwallet.min.js -------------------------------------------------------------------------------- /www/lib/web3/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web3", 3 | "namespace": "ethereum", 4 | "version": "0.15.0", 5 | "description": "Ethereum Compatible JavaScript API", 6 | "main": [ 7 | "./dist/web3.js", 8 | "./dist/web3.min.js" 9 | ], 10 | "dependencies": { 11 | "bignumber.js": ">=2.0.0", 12 | "crypto-js": "~3.1.4" 13 | }, 14 | "repository": { 15 | "type": "git", 16 | "url": "https://github.com/ethereum/web3.js.git" 17 | }, 18 | "homepage": "https://github.com/ethereum/web3.js", 19 | "bugs": { 20 | "url": "https://github.com/ethereum/web3.js/issues" 21 | }, 22 | "keywords": [ 23 | "ethereum", 24 | "javascript", 25 | "API" 26 | ], 27 | "authors": [ 28 | { 29 | "name": "Marek Kotewicz", 30 | "email": "marek@ethdev.com", 31 | "homepage": "https://github.com/debris" 32 | }, 33 | { 34 | "name": "Marian Oancea", 35 | "email": "marian@ethdev.com", 36 | "homepage": "https://github.com/cubedro" 37 | }, 38 | { 39 | "name": "Fabian Vogelsteller", 40 | "email": "fabian@ethdev.com", 41 | "homepage": "https://github.com/frozeman" 42 | } 43 | ], 44 | "license": "LGPL-3.0", 45 | "ignore": [ 46 | "example", 47 | "lib", 48 | "node_modules", 49 | "package.json", 50 | "package.js", 51 | ".versions", 52 | ".bowerrc", 53 | ".editorconfig", 54 | ".gitignore", 55 | ".jshintrc", 56 | ".npmignore", 57 | ".travis.yml", 58 | "gulpfile.js", 59 | "index.js", 60 | "**/*.txt" 61 | ], 62 | "_release": "0.15.0", 63 | "_resolution": { 64 | "type": "version", 65 | "tag": "0.15.0", 66 | "commit": "29e3efb8d88d41e1a7ef0fdfba0d652b503d63e0" 67 | }, 68 | "_source": "git://github.com/ethereum/ethereum.js.git", 69 | "_target": "~0.15.0", 70 | "_originalSource": "web3", 71 | "_direct": true 72 | } -------------------------------------------------------------------------------- /www/lib/web3/LICENSE: -------------------------------------------------------------------------------- 1 | This file is part of web3.js. 2 | 3 | web3.js is free software: you can redistribute it and/or modify 4 | it under the terms of the GNU Lesser General Public License as published by 5 | the Free Software Foundation, either version 3 of the License, or 6 | (at your option) any later version. 7 | 8 | web3.js is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU Lesser General Public License for more details. 12 | 13 | You should have received a copy of the GNU Lesser General Public License 14 | along with web3.js. If not, see . 15 | -------------------------------------------------------------------------------- /www/lib/web3/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web3", 3 | "namespace": "ethereum", 4 | "version": "0.15.0", 5 | "description": "Ethereum Compatible JavaScript API", 6 | "main": [ 7 | "./dist/web3.js", 8 | "./dist/web3.min.js" 9 | ], 10 | "dependencies": { 11 | "bignumber.js": ">=2.0.0", 12 | "crypto-js": "~3.1.4" 13 | }, 14 | "repository": { 15 | "type": "git", 16 | "url": "https://github.com/ethereum/web3.js.git" 17 | }, 18 | "homepage": "https://github.com/ethereum/web3.js", 19 | "bugs": { 20 | "url": "https://github.com/ethereum/web3.js/issues" 21 | }, 22 | "keywords": [ 23 | "ethereum", 24 | "javascript", 25 | "API" 26 | ], 27 | "authors": [ 28 | { 29 | "name": "Marek Kotewicz", 30 | "email": "marek@ethdev.com", 31 | "homepage": "https://github.com/debris" 32 | }, 33 | { 34 | "name": "Marian Oancea", 35 | "email": "marian@ethdev.com", 36 | "homepage": "https://github.com/cubedro" 37 | }, 38 | { 39 | "name": "Fabian Vogelsteller", 40 | "email": "fabian@ethdev.com", 41 | "homepage": "https://github.com/frozeman" 42 | } 43 | ], 44 | "license": "LGPL-3.0", 45 | "ignore": [ 46 | "example", 47 | "lib", 48 | "node_modules", 49 | "package.json", 50 | "package.js", 51 | ".versions", 52 | ".bowerrc", 53 | ".editorconfig", 54 | ".gitignore", 55 | ".jshintrc", 56 | ".npmignore", 57 | ".travis.yml", 58 | "gulpfile.js", 59 | "index.js", 60 | "**/*.txt" 61 | ] 62 | } 63 | -------------------------------------------------------------------------------- /www/lib/web3/package-init.js: -------------------------------------------------------------------------------- 1 | /* jshint ignore:start */ 2 | 3 | 4 | // Browser environment 5 | if(typeof window !== 'undefined') { 6 | Web3 = (typeof window.Web3 !== 'undefined') ? window.Web3 : require('web3'); 7 | BigNumber = (typeof window.BigNumber !== 'undefined') ? window.BigNumber : require('bignumber.js'); 8 | } 9 | 10 | 11 | // Node environment 12 | if(typeof global !== 'undefined') { 13 | Web3 = (typeof global.Web3 !== 'undefined') ? global.Web3 : require('web3'); 14 | BigNumber = (typeof global.BigNumber !== 'undefined') ? global.BigNumber : require('bignumber.js'); 15 | } 16 | 17 | /* jshint ignore:end */ -------------------------------------------------------------------------------- /www/lib/web3/test/errors.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var errors = require('../lib/web3/errors'); 4 | 5 | describe('lib/web3/method', function () { 6 | describe('getCall', function () { 7 | 8 | for(var key in errors) { 9 | it('should return and error', function () { 10 | 11 | assert.instanceOf(errors[key](), Error); 12 | }); 13 | } 14 | 15 | }); 16 | }); 17 | 18 | -------------------------------------------------------------------------------- /www/lib/web3/test/formatters.inputAddressFormatter.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var formatters = require('../lib/web3/formatters.js'); 4 | var BigNumber = require('bignumber.js'); 5 | 6 | var tests = [ 7 | { input: 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS', result: '0x00c5496aee77c1ba1f0854206a26dda82a81d6d8' }, 8 | { input: '0x00c5496aee77c1ba1f0854206a26dda82a81d6d8', result: '0x00c5496aee77c1ba1f0854206a26dda82a81d6d8'}, 9 | { input: '00c5496aee77c1ba1f0854206a26dda82a81d6d8', result: '0x00c5496aee77c1ba1f0854206a26dda82a81d6d8'}, 10 | { input: '0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae', result: '0x11f4d0a3c12e86b4b5f39b213f7e19d048276dae' } 11 | ]; 12 | 13 | var errorTests = [ 14 | '0x0c5496aee77c1ba1f0854206a26dda82a81d6d8', 15 | '0x0c5496aee77c1ba1f0854206a26dda82a81d6d8', 16 | '00c5496aee77c1ba1f0854206a26dda82a81d6d', 17 | 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZE', 18 | '0x' 19 | ] 20 | 21 | describe('formatters', function () { 22 | describe('inputAddressFormatter', function () { 23 | tests.forEach(function(test){ 24 | it('should return the correct value', function () { 25 | assert.deepEqual(formatters.inputAddressFormatter(test.input), test.result); 26 | }); 27 | }); 28 | }); 29 | }); 30 | 31 | 32 | describe('formatters', function () { 33 | describe('inputAddressFormatter', function () { 34 | errorTests.forEach(function(test){ 35 | it('should throw an exception', function () { 36 | assert.throws(function () { 37 | formatters.inputAddressFormatter(test); 38 | }); 39 | }); 40 | }); 41 | }); 42 | }); 43 | -------------------------------------------------------------------------------- /www/lib/web3/test/formatters.inputDefaultBlockFormatter.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var formatters = require('../lib/web3/formatters'); 4 | 5 | var tests = [ 6 | { value: 'latest', expected: 'latest' }, 7 | { value: 'pending', expected: 'pending' }, 8 | { value: 'earliest', expected: 'earliest' }, 9 | { value: 1, expected: '0x1' }, 10 | { value: '0x1', expected: '0x1' } 11 | ]; 12 | 13 | describe('lib/web3/formatters', function () { 14 | describe('inputDefaultBlockNumberFormatter', function () { 15 | tests.forEach(function (test) { 16 | it('should turn ' + test.value + ' to ' + test.expected, function () { 17 | assert.strictEqual(formatters.inputDefaultBlockNumberFormatter(test.value), test.expected); 18 | }); 19 | }); 20 | }); 21 | }); 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /www/lib/web3/test/formatters.inputPostFormatter.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var formatters = require('../lib/web3/formatters.js'); 4 | 5 | describe('formatters', function () { 6 | describe('inputPostFormatter', function () { 7 | it('should return the correct value', function () { 8 | 9 | // input as strings and numbers 10 | assert.deepEqual(formatters.inputPostFormatter({ 11 | from: '0x00000', 12 | to: '0x00000', 13 | payload: {test: 'test'}, 14 | ttl: 200, 15 | priority: 1000, 16 | topics: ['hello','mytopics'] 17 | }), { 18 | from: '0x00000', 19 | to: '0x00000', 20 | payload: '0x7b2274657374223a2274657374227d', 21 | ttl: '0xc8', 22 | priority: '0x3e8', 23 | topics: ['0x68656c6c6f','0x6d79746f70696373'], 24 | workToProve: '0x0' 25 | }); 26 | 27 | }); 28 | }); 29 | }); 30 | 31 | -------------------------------------------------------------------------------- /www/lib/web3/test/formatters.outputLogFormatter.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var formatters = require('../lib/web3/formatters.js'); 3 | 4 | describe('formatters', function () { 5 | describe('outputLogFormatter', function () { 6 | it('should return the correct value', function () { 7 | 8 | assert.deepEqual(formatters.outputLogFormatter({ 9 | transactionIndex: '0x3e8', 10 | logIndex: '0x3e8', 11 | blockNumber: '0x3e8', 12 | transactionHash: '0xd6960376d6c6dea93647383ffb245cfced97ccc5c7525397a543a72fdaea5265', 13 | blockHash: '0xd6960376d6c6dea93647383ffb245cfced97ccc5c7525397a543a72fdaea5265', 14 | data: '0x7b2274657374223a2274657374227', 15 | topics: ['0x68656c6c6f','0x6d79746f70696373'] 16 | }), { 17 | transactionIndex: 1000, 18 | logIndex: 1000, 19 | blockNumber: 1000, 20 | transactionHash: '0xd6960376d6c6dea93647383ffb245cfced97ccc5c7525397a543a72fdaea5265', 21 | blockHash: '0xd6960376d6c6dea93647383ffb245cfced97ccc5c7525397a543a72fdaea5265', 22 | data: '0x7b2274657374223a2274657374227', 23 | topics: ['0x68656c6c6f','0x6d79746f70696373'] 24 | }); 25 | }); 26 | it('should return the correct value, when null values are present', function () { 27 | 28 | assert.deepEqual(formatters.outputLogFormatter({ 29 | transactionIndex: null, 30 | logIndex: null, 31 | blockNumber: null, 32 | transactionHash: null, 33 | blockHash: null, 34 | data: '0x7b2274657374223a2274657374227', 35 | topics: ['0x68656c6c6f','0x6d79746f70696373'] 36 | }), { 37 | transactionIndex: null, 38 | logIndex: null, 39 | blockNumber: null, 40 | transactionHash: null, 41 | blockHash: null, 42 | data: '0x7b2274657374223a2274657374227', 43 | topics: ['0x68656c6c6f','0x6d79746f70696373'] 44 | }); 45 | }); 46 | }); 47 | }); 48 | -------------------------------------------------------------------------------- /www/lib/web3/test/formatters.outputPostFormatter.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var formatters = require('../lib/web3/formatters.js'); 3 | 4 | describe('formatters', function () { 5 | describe('outputPostFormatter', function () { 6 | it('should return the correct value', function () { 7 | 8 | assert.deepEqual(formatters.outputPostFormatter({ 9 | expiry: '0x3e8', 10 | sent: '0x3e8', 11 | ttl: '0x3e8', 12 | workProved: '0x3e8', 13 | payload: '0x7b2274657374223a2274657374227d', 14 | topics: ['0x68656c6c6f','0x6d79746f70696373'] 15 | }), { 16 | expiry: 1000, 17 | sent: 1000, 18 | ttl: 1000, 19 | workProved: 1000, 20 | payload: {test: 'test'}, 21 | payloadRaw: '0x7b2274657374223a2274657374227d', 22 | topics: ['hello','mytopics'] 23 | }); 24 | }); 25 | }); 26 | }); 27 | -------------------------------------------------------------------------------- /www/lib/web3/test/formatters.outputTransactionFormatter.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var formatters = require('../lib/web3/formatters.js'); 3 | var BigNumber = require('bignumber.js'); 4 | 5 | describe('formatters', function () { 6 | describe('outputTransactionFormatter', function () { 7 | it('should return the correct value', function () { 8 | 9 | assert.deepEqual(formatters.outputTransactionFormatter({ 10 | input: '0x3454645634534', 11 | from: '0x00000', 12 | to: '0x00000', 13 | value: '0x3e8', 14 | gas: '0x3e8', 15 | gasPrice: '0x3e8', 16 | nonce: '0xb', 17 | transactionIndex: '0x1', 18 | blockNumber: '0x3e8', 19 | blockHash: '0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9' 20 | }), { 21 | input: '0x3454645634534', 22 | from: '0x00000', 23 | to: '0x00000', 24 | value: new BigNumber(1000), 25 | gas: 1000, 26 | gasPrice: new BigNumber(1000), 27 | nonce: 11, 28 | blockNumber: 1000, 29 | blockHash: '0xc9b9cdc2092a9d6589d96662b1fd6949611163fb3910cf8a173cd060f17702f9', 30 | transactionIndex: 1 31 | }); 32 | }); 33 | 34 | it('should return the correct value, when null values are present', function () { 35 | 36 | assert.deepEqual(formatters.outputTransactionFormatter({ 37 | input: '0x3454645634534', 38 | from: '0x00000', 39 | to: null, 40 | value: '0x3e8', 41 | gas: '0x3e8', 42 | gasPrice: '0x3e8', 43 | nonce: '0xb', 44 | transactionIndex: null, 45 | blockNumber: null, 46 | blockHash: null 47 | }), { 48 | input: '0x3454645634534', 49 | from: '0x00000', 50 | to: null, 51 | value: new BigNumber(1000), 52 | gas: 1000, 53 | gasPrice: new BigNumber(1000), 54 | nonce: 11, 55 | blockNumber: null, 56 | blockHash: null, 57 | transactionIndex: null 58 | }); 59 | }); 60 | }); 61 | }); 62 | -------------------------------------------------------------------------------- /www/lib/web3/test/helpers/FakeHttpProvider2.js: -------------------------------------------------------------------------------- 1 | var FakeHttpProvider = require('./FakeHttpProvider'); 2 | 3 | var FakeHttpProvider2 = function () { 4 | this.counter = 0; 5 | this.resultList = []; 6 | }; 7 | 8 | FakeHttpProvider2.prototype = new FakeHttpProvider(); 9 | FakeHttpProvider2.prototype.constructor = FakeHttpProvider2; 10 | 11 | FakeHttpProvider2.prototype.injectResultList = function (list) { 12 | this.resultList = list; 13 | }; 14 | 15 | FakeHttpProvider2.prototype.getResponse = function () { 16 | var result = this.resultList[this.counter]; 17 | this.counter++; 18 | 19 | // add fallback result value 20 | if(!result) 21 | result = { 22 | result: undefined 23 | }; 24 | 25 | if (result.type === 'batch') { 26 | this.injectBatchResults(result.result); 27 | } else { 28 | this.injectResult(result.result); 29 | } 30 | 31 | this.counter = 0; 32 | 33 | return this.response; 34 | }; 35 | 36 | module.exports = FakeHttpProvider2; 37 | 38 | -------------------------------------------------------------------------------- /www/lib/web3/test/helpers/FakeIpcRequest.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | 4 | var FakeIpcRequest = function () { 5 | this._handle = {fd: {}}; 6 | this.callbacks = []; 7 | 8 | return this 9 | }; 10 | 11 | FakeIpcRequest.prototype.connect = function (path) { 12 | assert.notEqual(path, undefined); 13 | 14 | return this; 15 | }; 16 | 17 | FakeIpcRequest.prototype.on = function(name, callback) { 18 | if(name === 'data'){ 19 | this.callbacks.push(callback); 20 | } 21 | }; 22 | 23 | FakeIpcRequest.prototype.writeSync = function (payload) { 24 | assert.equal(typeof payload, 'string'); 25 | return payload; 26 | }; 27 | 28 | FakeIpcRequest.prototype.write = function (payload) { 29 | assert.equal(typeof payload, 'string'); 30 | 31 | this.callbacks.forEach(function(cb){ 32 | setTimeout(function(){ 33 | cb(payload); 34 | }, 100); 35 | }); 36 | 37 | }; 38 | 39 | module.exports = FakeIpcRequest; 40 | 41 | -------------------------------------------------------------------------------- /www/lib/web3/test/helpers/FakeQtNavigator.js: -------------------------------------------------------------------------------- 1 | 2 | var navigator = { 3 | qt: { 4 | callMethod: function (payload) { 5 | return "{}"; 6 | } 7 | } 8 | }; 9 | 10 | module.exports = navigator; 11 | 12 | -------------------------------------------------------------------------------- /www/lib/web3/test/helpers/FakeXMLHttpRequest.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | 4 | var FakeXMLHttpRequest = function () { 5 | this.responseText = "{}"; 6 | this.readyState = 4; 7 | this.onreadystatechange = null; 8 | this.async = false; 9 | this.headers = { 10 | 'Content-Type': 'text/plain' 11 | }; 12 | }; 13 | 14 | FakeXMLHttpRequest.prototype.open = function (method, host, async) { 15 | assert.equal(method, 'POST'); 16 | assert.notEqual(host, null); 17 | assert.equal(async === false || async === true, true); 18 | this.async = async; 19 | }; 20 | 21 | FakeXMLHttpRequest.prototype.setRequestHeader = function(name, value) { 22 | this.headers[name] = value; 23 | }; 24 | 25 | FakeXMLHttpRequest.prototype.send = function (payload) { 26 | assert.equal(typeof payload, 'string'); 27 | if (this.async) { 28 | assert.equal(typeof this.onreadystatechange, 'function'); 29 | this.onreadystatechange(); 30 | return; 31 | } 32 | return this.responseText; 33 | }; 34 | 35 | module.exports = { 36 | XMLHttpRequest: FakeXMLHttpRequest 37 | }; 38 | 39 | -------------------------------------------------------------------------------- /www/lib/web3/test/helpers/test.utils.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | //var web3 = require('../../index'); 4 | 5 | var FakeHttpProvider = require('./FakeHttpProvider'); 6 | 7 | var methodExists = function (object, method) { 8 | it('should have method ' + method + ' implemented', function() { 9 | //web3.setProvider(null); 10 | assert.equal('function', typeof object[method], 'method ' + method + ' is not implemented'); 11 | }); 12 | }; 13 | 14 | var propertyExists = function (object, property) { 15 | it('should have property ' + property + ' implemented', function() { 16 | // set dummy providor, to prevent error 17 | //web3.setProvider(new FakeHttpProvider()); 18 | assert.notEqual('undefined', typeof object[property], 'property ' + property + ' is not implemented'); 19 | }); 20 | }; 21 | 22 | module.exports = { 23 | methodExists: methodExists, 24 | propertyExists: propertyExists 25 | }; 26 | 27 | -------------------------------------------------------------------------------- /www/lib/web3/test/httpprovider.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var SandboxedModule = require('sandboxed-module'); 4 | 5 | SandboxedModule.registerBuiltInSourceTransformer('istanbul'); 6 | var HttpProvider = SandboxedModule.require('../lib/web3/httpprovider', { 7 | requires: { 8 | 'xmlhttprequest': require('./helpers/FakeXMLHttpRequest') 9 | } 10 | }); 11 | 12 | describe('lib/web3/httpprovider', function () { 13 | describe('send', function () { 14 | it('should send basic request', function () { 15 | var provider = new HttpProvider(); 16 | var result = provider.send({}); 17 | 18 | assert.equal(typeof result, 'object'); 19 | }); 20 | }); 21 | 22 | describe('sendAsync', function () { 23 | it('should send basic async request', function (done) { 24 | var provider = new HttpProvider(); 25 | 26 | provider.sendAsync({}, function (err, result) { 27 | assert.equal(typeof result, 'object'); 28 | done(); 29 | }); 30 | }); 31 | }); 32 | 33 | describe('isConnected', function () { 34 | it('should return a boolean', function () { 35 | var provider = new HttpProvider(); 36 | 37 | assert.isBoolean(provider.isConnected()); 38 | }); 39 | }); 40 | }); 41 | 42 | -------------------------------------------------------------------------------- /www/lib/web3/test/iban.createIndirect.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var Iban = require('../lib/web3/iban.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { institution: 'XREG', identifier: 'GAVOFYORK', expected: 'XE81ETHXREGGAVOFYORK'} 7 | ]; 8 | 9 | describe('lib/web3/iban', function () { 10 | describe('createIndirect', function () { 11 | tests.forEach(function (test) { 12 | it('shoud create indirect iban: ' + test.expected, function () { 13 | assert.deepEqual(Iban.createIndirect({ 14 | institution: test.institution, 15 | identifier: test.identifier 16 | }), new Iban(test.expected)); 17 | }); 18 | }); 19 | }); 20 | }); 21 | 22 | -------------------------------------------------------------------------------- /www/lib/web3/test/iban.fromAddress.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var Iban = require('../lib/web3/iban.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { address: '00c5496aee77c1ba1f0854206a26dda82a81d6d8', expected: 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS'}, 7 | { address: '0x00c5496aee77c1ba1f0854206a26dda82a81d6d8', expected: 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS'}, 8 | { address: '0x11c5496aee77c1ba1f0854206a26dda82a81d6d8', expected: 'XE1222Q908LN1QBBU6XUQSO1OHWJIOS46OO'}, 9 | { address: '0x52dc504a422f0e2a9e7632a34a50f1a82f8224c7', expected: 'XE499OG1EH8ZZI0KXC6N83EKGT1BM97P2O7'}, 10 | { address: '0x0000a5327eab78357cbf2ae8f3d49fd9d90c7d22', expected: 'XE0600DQK33XDTYUCRI0KYM5ELAKXDWWF6'} 11 | ]; 12 | 13 | describe('lib/web3/iban', function () { 14 | describe('fromAddress', function () { 15 | tests.forEach(function (test) { 16 | it('shoud create indirect iban: ' + test.expected, function () { 17 | assert.deepEqual(Iban.fromAddress(test.address), new Iban(test.expected)); 18 | }); 19 | }); 20 | }); 21 | }); 22 | 23 | -------------------------------------------------------------------------------- /www/lib/web3/test/iban.isValid.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var Iban = require('../lib/web3/iban.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { obj: function () {}, is: false}, 7 | { obj: new Function(), is: false}, 8 | { obj: 'function', is: false}, 9 | { obj: {}, is: false}, 10 | { obj: '[]', is: false}, 11 | { obj: '[1, 2]', is: false}, 12 | { obj: '{}', is: false}, 13 | { obj: '{"a": 123, "b" :3,}', is: false}, 14 | { obj: '{"c" : 2}', is: false}, 15 | { obj: 'XE81ETHXREGGAVOFYORK', is: true}, 16 | { obj: 'XE82ETHXREGGAVOFYORK', is: false}, // control number is invalid 17 | { obj: 'XE81ETCXREGGAVOFYORK', is: false}, 18 | { obj: 'XE81ETHXREGGAVOFYORKD', is: false}, 19 | { obj: 'XE81ETHXREGGaVOFYORK', is: false}, 20 | { obj: 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS', is: true}, 21 | { obj: 'XE7438O073KYGTWWZN0F2WZ0R8PX5ZPPZS', is: false}, // control number is invalid 22 | { obj: 'XD7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS', is: false}, 23 | { obj: 'XE1222Q908LN1QBBU6XUQSO1OHWJIOS46OO', is: true} 24 | ]; 25 | 26 | describe('lib/web3/iban', function () { 27 | describe('isValid', function () { 28 | tests.forEach(function (test) { 29 | it('shoud test if value ' + test.obj + ' is iban: ' + test.is, function () { 30 | assert.equal(Iban.isValid(test.obj), test.is); 31 | }); 32 | }); 33 | }); 34 | }); 35 | 36 | -------------------------------------------------------------------------------- /www/lib/web3/test/iban.toAddress.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var Iban = require('../lib/web3/iban.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { direct: 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS', address: '00c5496aee77c1ba1f0854206a26dda82a81d6d8'} 7 | ]; 8 | 9 | describe('lib/web3/iban', function () { 10 | describe('toAddress', function () { 11 | tests.forEach(function (test) { 12 | it('shoud transform iban to address: ' + test.address, function () { 13 | var iban = new Iban(test.direct); 14 | assert.deepEqual(iban.address(), test.address); 15 | }); 16 | }); 17 | }); 18 | }); 19 | 20 | -------------------------------------------------------------------------------- /www/lib/web3/test/ipcprovider.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var SandboxedModule = require('sandboxed-module'); 4 | var FakeIpcRequest = require('./helpers/FakeIpcRequest') 5 | var net = new FakeIpcRequest(); 6 | 7 | SandboxedModule.registerBuiltInSourceTransformer('istanbul'); 8 | var IpcProvider = SandboxedModule.require('../lib/web3/ipcprovider', { 9 | requires: { 10 | 'bignumber.js': require('bignumber.js'), 11 | } 12 | }); 13 | 14 | describe('lib/web3/ipcprovider', function () { 15 | describe('send', function () { 16 | it('should send basic request', function () { 17 | var provider = new IpcProvider('', net); 18 | var result = provider.send({id: 1, method: 'eth_test'}); 19 | 20 | assert.isObject(result); 21 | }); 22 | }); 23 | 24 | describe('sendAsync', function () { 25 | it('should send basic async request', function (done) { 26 | var provider = new IpcProvider('', net); 27 | provider.sendAsync({id: 1, method: 'eth_test'}, function (err, result) { 28 | assert.isObject(result); 29 | done(); 30 | }); 31 | }); 32 | }); 33 | 34 | describe('isConnected', function () { 35 | it('should return a boolean', function () { 36 | var provider = new IpcProvider('', net); 37 | 38 | assert.isBoolean(provider.isConnected()); 39 | }); 40 | 41 | it('should return false', function () { 42 | var provider = new IpcProvider('', net); 43 | 44 | provider.connection.writable = false; 45 | 46 | assert.isFalse(provider.isConnected()); 47 | }); 48 | 49 | it('should return true, when a net handle is set', function () { 50 | var provider = new IpcProvider('', net); 51 | 52 | provider.connection.writable = true; 53 | 54 | assert.isTrue(provider.isConnected()); 55 | }); 56 | }); 57 | }); 58 | 59 | -------------------------------------------------------------------------------- /www/lib/web3/test/jsonrpc.id.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Jsonrpc = require('../lib/web3/jsonrpc'); 4 | 5 | describe('lib/web3/jsonrpc', function () { 6 | describe('id', function () { 7 | it('should increment the id', function () { 8 | 9 | // given 10 | var a = Jsonrpc.getInstance(); 11 | var b = Jsonrpc.getInstance(); 12 | var method = 'm'; 13 | 14 | // when 15 | var p1 = a.toPayload(method); 16 | var p2 = b.toPayload(method); 17 | 18 | // then 19 | assert.equal(p2.id, p1.id + 1); 20 | }); 21 | }); 22 | }); 23 | 24 | -------------------------------------------------------------------------------- /www/lib/web3/test/jsonrpc.toBatchPayload.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var jsonrpc = require('../lib/web3/jsonrpc'); 3 | jsonrpc = new jsonrpc(); 4 | 5 | describe('jsonrpc', function () { 6 | describe('toBatchPayload', function () { 7 | it('should create basic batch payload', function () { 8 | 9 | // given 10 | var messages = [{ 11 | method: 'helloworld' 12 | }, { 13 | method: 'test2', 14 | params: [1] 15 | }]; 16 | 17 | // when 18 | var payload = jsonrpc.toBatchPayload(messages); 19 | 20 | // then 21 | assert.equal(payload instanceof Array, true); 22 | assert.equal(payload.length, 2); 23 | assert.equal(payload[0].jsonrpc, '2.0'); 24 | assert.equal(payload[1].jsonrpc, '2.0'); 25 | assert.equal(payload[0].method, 'helloworld'); 26 | assert.equal(payload[1].method, 'test2'); 27 | assert.equal(payload[0].params instanceof Array, true); 28 | assert.equal(payload[1].params.length, 1); 29 | assert.equal(payload[1].params[0], 1); 30 | assert.equal(typeof payload[0].id, 'number'); 31 | assert.equal(typeof payload[1].id, 'number'); 32 | assert.equal(payload[0].id + 1, payload[1].id); 33 | }); 34 | 35 | it('should create batch payload for empty input array', function () { 36 | 37 | // given 38 | var messages = []; 39 | 40 | // when 41 | var payload = jsonrpc.toBatchPayload(messages); 42 | 43 | // then 44 | assert.equal(payload instanceof Array, true); 45 | assert.equal(payload.length, 0); 46 | }); 47 | }); 48 | }); 49 | -------------------------------------------------------------------------------- /www/lib/web3/test/jsonrpc.toPayload.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var jsonrpc = require('../lib/web3/jsonrpc'); 4 | jsonrpc = new jsonrpc(); 5 | 6 | describe('jsonrpc', function () { 7 | describe('toPayload', function () { 8 | it('should create basic payload', function () { 9 | 10 | // given 11 | var method = 'helloworld'; 12 | 13 | // when 14 | var payload = jsonrpc.toPayload(method); 15 | 16 | // then 17 | assert.equal(payload.jsonrpc, '2.0'); 18 | assert.equal(payload.method, method); 19 | assert.equal(payload.params instanceof Array, true); 20 | assert.equal(payload.params.length, 0); 21 | assert.equal(typeof payload.id, 'number'); 22 | }); 23 | 24 | it('should create payload with params', function () { 25 | 26 | // given 27 | var method = 'helloworld1'; 28 | var params = [123, 'test']; 29 | 30 | // when 31 | var payload = jsonrpc.toPayload(method, params); 32 | 33 | // then 34 | assert.equal(payload.jsonrpc, '2.0'); 35 | assert.equal(payload.method, method); 36 | assert.equal(payload.params.length, 2); 37 | assert.equal(payload.params[0], params[0]); 38 | assert.equal(payload.params[1], params[1]); 39 | assert.equal(typeof payload.id, 'number'); 40 | }); 41 | }); 42 | }); 43 | -------------------------------------------------------------------------------- /www/lib/web3/test/method.extractCallback.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Method = require('../lib/web3/method'); 4 | 5 | describe('lib/web3/method', function () { 6 | describe('extractCallback', function () { 7 | it('should extract callback', function () { 8 | 9 | // given 10 | var method = new Method({}); 11 | var callback = function () { }; 12 | var args = [1, callback] 13 | 14 | // when 15 | var result = method.extractCallback(args); 16 | 17 | // then 18 | assert.equal(args.length, 1); 19 | assert.equal(callback, result); 20 | }); 21 | 22 | it('should extract callback created using newFunction', function () { 23 | 24 | // given 25 | var method = new Method({}); 26 | var callback = new Function (); 27 | var args = [1, callback] 28 | 29 | // when 30 | var result = method.extractCallback(args); 31 | 32 | // then 33 | assert.equal(args.length, 1); 34 | assert.equal(callback, result); 35 | }); 36 | 37 | it('should not extract the callback', function () { 38 | 39 | // given 40 | var method = new Method({}); 41 | var args = [1, 2] 42 | 43 | // when 44 | var result = method.extractCallback(args); 45 | 46 | // then 47 | assert.equal(args.length, 2); 48 | assert.equal(result, null); 49 | }); 50 | }); 51 | }); 52 | 53 | -------------------------------------------------------------------------------- /www/lib/web3/test/method.formatInput.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Method = require('../lib/web3/method'); 4 | 5 | describe('lib/web3/method', function () { 6 | describe('formatInput', function () { 7 | it('should format plain input', function () { 8 | 9 | // given 10 | var star = function (arg) { 11 | return arg + '*'; 12 | }; 13 | 14 | var method = new Method({ 15 | inputFormatter: [star, star, star] 16 | }); 17 | var args = ['1','2','3']; 18 | var expectedArgs = ['1*', '2*', '3*']; 19 | 20 | // when 21 | var result = method.formatInput(args); 22 | 23 | // then 24 | assert.deepEqual(result, expectedArgs); 25 | }); 26 | 27 | it('should do nothing if there is no formatter', function () { 28 | 29 | // given 30 | var method = new Method({}); 31 | var args = [1,2,3]; 32 | 33 | // when 34 | var result = method.formatInput(args); 35 | 36 | // then 37 | assert.deepEqual(result, args); 38 | }); 39 | }); 40 | }); 41 | 42 | -------------------------------------------------------------------------------- /www/lib/web3/test/method.formatOutput.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Method = require('../lib/web3/method'); 4 | 5 | describe('lib/web3/method', function () { 6 | describe('formatOutput', function () { 7 | it('should format plain output', function () { 8 | 9 | // given 10 | var formatter = function (args) { 11 | return args.map(function (arg) { 12 | return arg + '*'; 13 | }); 14 | }; 15 | 16 | var method = new Method({ 17 | outputFormatter: formatter 18 | }); 19 | var args = ['1','2','3']; 20 | var expectedArgs = ['1*', '2*', '3*']; 21 | 22 | // when 23 | var result = method.formatOutput(args); 24 | 25 | // then 26 | assert.deepEqual(result, expectedArgs); 27 | }); 28 | 29 | it('should do nothing if there is no formatter', function () { 30 | 31 | // given 32 | var method = new Method({}); 33 | var args = [1,2,3]; 34 | 35 | // when 36 | var result = method.formatOutput(args); 37 | 38 | // then 39 | assert.deepEqual(result, args); 40 | }); 41 | }); 42 | }); 43 | 44 | -------------------------------------------------------------------------------- /www/lib/web3/test/method.getCall.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Method = require('../lib/web3/method'); 4 | 5 | describe('lib/web3/method', function () { 6 | describe('getCall', function () { 7 | it('should return call name', function () { 8 | 9 | // given 10 | var call = 'hello_call_world'; 11 | var method = new Method({ 12 | call: call 13 | }); 14 | 15 | // when 16 | var result = method.getCall(); 17 | 18 | // then 19 | assert.equal(call, result); 20 | }); 21 | 22 | it('should return call based on args', function () { 23 | 24 | // given 25 | var call = function (args) { 26 | return args ? args.length.toString() : '0'; 27 | }; 28 | 29 | var method = new Method({ 30 | call: call 31 | }); 32 | 33 | // when 34 | var r0 = method.getCall(); 35 | var r1 = method.getCall([1]); 36 | var r2 = method.getCall([1, 2]); 37 | 38 | // then 39 | assert.equal(r0, '0'); 40 | assert.equal(r1, '1'); 41 | assert.equal(r2, '2'); 42 | 43 | }); 44 | }); 45 | }); 46 | 47 | -------------------------------------------------------------------------------- /www/lib/web3/test/method.validateArgs.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Method = require('../lib/web3/method'); 4 | var errors = require('../lib/web3/errors'); 5 | 6 | describe('lib/web3/method', function () { 7 | describe('validateArgs', function () { 8 | it('should pass', function () { 9 | 10 | // given 11 | var method = new Method({ 12 | params: 1 13 | }); 14 | 15 | var args = [1]; 16 | var args2 = ['heloas']; 17 | 18 | // when 19 | var test = function () { method.validateArgs(args); }; 20 | var test2 = function () { method.validateArgs(args2); }; 21 | 22 | // then 23 | assert.doesNotThrow(test); 24 | assert.doesNotThrow(test2); 25 | }); 26 | 27 | it('should return call based on args', function () { 28 | 29 | // given 30 | var method = new Method({ 31 | params: 2 32 | }); 33 | 34 | var args = [1]; 35 | var args2 = ['heloas', '12', 3]; 36 | 37 | // when 38 | var test = function () { method.validateArgs(args); }; 39 | var test2 = function () { method.validateArgs(args2); }; 40 | 41 | // then 42 | assert.throws(test, errors.InvalidNumberOfParams().message); 43 | assert.throws(test2, errors.InvalidNumberOfParams().message); 44 | }); 45 | }); 46 | }); 47 | 48 | -------------------------------------------------------------------------------- /www/lib/web3/test/mocha.opts: -------------------------------------------------------------------------------- 1 | --reporter spec 2 | -------------------------------------------------------------------------------- /www/lib/web3/test/node/app.js: -------------------------------------------------------------------------------- 1 | var web3 = require('web3'); 2 | 3 | console.log(web3.version.api); 4 | 5 | 6 | -------------------------------------------------------------------------------- /www/lib/web3/test/requestmanager.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var RequestManager = require('../lib/web3/requestmanager'); 4 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 5 | 6 | // TODO: handling errors! 7 | // TODO: validation of params! 8 | 9 | describe('lib/web3/requestmanager', function () { 10 | describe('send', function () { 11 | it('should return expected result synchronously', function () { 12 | var provider = new FakeHttpProvider(); 13 | var manager = new RequestManager(provider); 14 | var expected = 'hello_world'; 15 | provider.injectResult(expected); 16 | 17 | var result = manager.send({ 18 | method: 'test', 19 | params: [1,2,3] 20 | }); 21 | 22 | assert.equal(expected, result); 23 | }); 24 | 25 | it('should return expected result asynchronously', function (done) { 26 | var provider = new FakeHttpProvider(); 27 | var manager = new RequestManager(provider); 28 | var expected = 'hello_world'; 29 | provider.injectResult(expected); 30 | 31 | manager.sendAsync({ 32 | method: 'test', 33 | params: [1,2,3] 34 | }, function (error, result) { 35 | assert.equal(error, null); 36 | assert.equal(expected, result); 37 | done(); 38 | }); 39 | }); 40 | }); 41 | }); 42 | 43 | -------------------------------------------------------------------------------- /www/lib/web3/test/sha3.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var sha3 = require('../lib/utils/sha3'); 4 | var web3 = require('../index'); 5 | 6 | describe('lib/utils/sha3', function () { 7 | var test = function (v, e, o) { 8 | it('should encode ' + v + ' to ' + e, function () { 9 | assert.equal(sha3(v, o), e); 10 | }); 11 | }; 12 | 13 | test('test123', 'f81b517a242b218999ec8eec0ea6e2ddbef2a367a14e93f4a32a39e260f686ad'); 14 | test('test(int)', 'f4d03772bec1e62fbe8c5691e1a9101e520e8f8b5ca612123694632bf3cb51b1'); 15 | test('0x80', '56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421', { encoding: 'hex' }); 16 | test('0x80', '6b03a5eef7706e3fb52a61c19ab1122fad7237726601ac665bd4def888f0e4a0'); 17 | test('0x3c9229289a6125f7fdf1885a77bb12c37a8d3b4962d936f7e3084dece32a3ca1', '82ff40c0a986c6a5cfad4ddf4c3aa6996f1a7837f9c398e17e5de5cbd5a12b28', { encoding: 'hex' }); 18 | }); 19 | 20 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.extractDisplayName.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var utils = require('../lib/utils/utils.js'); 3 | 4 | describe('lib/utils/utils', function () { 5 | describe('extractDisplayName', function () { 6 | it('should extract display name from method with no params', function () { 7 | 8 | // given 9 | var test = 'helloworld()'; 10 | 11 | // when 12 | var displayName = utils.extractDisplayName(test); 13 | 14 | // then 15 | assert.equal(displayName, 'helloworld'); 16 | }); 17 | 18 | it('should extract display name from method with one param' , function () { 19 | 20 | // given 21 | var test = 'helloworld1(int)'; 22 | 23 | // when 24 | var displayName = utils.extractDisplayName(test); 25 | 26 | // then 27 | assert.equal(displayName, 'helloworld1'); 28 | }); 29 | 30 | it('should extract display name from method with two params' , function () { 31 | 32 | // given 33 | var test = 'helloworld2(int,string)'; 34 | 35 | // when 36 | var displayName = utils.extractDisplayName(test); 37 | 38 | // then 39 | assert.equal(displayName, 'helloworld2'); 40 | }); 41 | }); 42 | }); 43 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.extractTypeName.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var utils = require('../lib/utils/utils.js'); 3 | 4 | describe('lib/utils/utils', function () { 5 | describe('extractTypeName', function () { 6 | it('should extract type name from method with no params', function () { 7 | 8 | // given 9 | var test = 'helloworld()'; 10 | 11 | // when 12 | var typeName = utils.extractTypeName(test); 13 | 14 | // then 15 | assert.equal(typeName, ''); 16 | }); 17 | 18 | it('should extract type name from method with one param', function () { 19 | 20 | // given 21 | var test = 'helloworld1(int)'; 22 | 23 | // when 24 | var typeName = utils.extractTypeName(test); 25 | 26 | // then 27 | assert.equal(typeName, 'int'); 28 | }); 29 | 30 | it('should extract type name from method with two params', function () { 31 | 32 | // given 33 | var test = 'helloworld2(int,string)'; 34 | 35 | // when 36 | var typeName = utils.extractTypeName(test); 37 | 38 | // then 39 | assert.equal(typeName, 'int,string'); 40 | }); 41 | 42 | it('should extract type name from method with spaces between params', function () { 43 | 44 | // given 45 | var test = 'helloworld3(int, string)'; 46 | 47 | // when 48 | var typeName = utils.extractTypeName(test); 49 | 50 | // then 51 | assert.equal(typeName, 'int,string'); 52 | }); 53 | 54 | }); 55 | }); 56 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.fromAscii.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var BigNumber = require('bignumber.js'); 3 | var utils = require('../lib/utils/utils.js'); 4 | var assert = chai.assert; 5 | 6 | var tests = [ 7 | { value: 'myString', expected: '0x6d79537472696e67'}, 8 | { value: 'myString\x00', expected: '0x6d79537472696e6700'}, 9 | { value: '\u0003\u0000\u0000\u00005èÆÕL]\u0012|Î¾ž\u001a7«›\u00052\u0011(ЗY\n<\u0010\u0000\u0000\u0000\u0000\u0000\u0000e!ßd/ñõì\f:z¦Î¦±ç·÷Í¢Ëß\u00076*…\bŽ—ñžùC1ÉUÀé2\u001aӆBŒ', 10 | expected: '0x0300000035e8c6d54c5d127c9dcebe9e1a37ab9b05321128d097590a3c100000000000006521df642ff1f5ec0c3a7aa6cea6b1e7b7f7cda2cbdf07362a85088e97f19ef94331c955c0e9321ad386428c'} 11 | ]; 12 | 13 | describe('lib/utils/utils', function () { 14 | describe('fromAscii', function () { 15 | tests.forEach(function (test) { 16 | it('should turn ' + test.value + ' to ' + test.expected, function () { 17 | assert.strictEqual(utils.fromAscii(test.value), test.expected); 18 | }); 19 | }); 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.fromDecimal.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var utils = require('../lib/utils/utils.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { value: 1, expected: '0x1' }, 7 | { value: '1', expected: '0x1' }, 8 | { value: '0x1', expected: '0x1'}, 9 | { value: '0x01', expected: '0x1'}, 10 | { value: 15, expected: '0xf'}, 11 | { value: '15', expected: '0xf'}, 12 | { value: '0xf', expected: '0xf'}, 13 | { value: '0x0f', expected: '0xf'}, 14 | { value: -1, expected: '-0x1'}, 15 | { value: '-1', expected: '-0x1'}, 16 | { value: '-0x1', expected: '-0x1'}, 17 | { value: '-0x01', expected: '-0x1'}, 18 | { value: -15, expected: '-0xf'}, 19 | { value: '-15', expected: '-0xf'}, 20 | { value: '-0xf', expected: '-0xf'}, 21 | { value: '-0x0f', expected: '-0xf'}, 22 | { value: '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', expected: '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'}, 23 | { value: '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd', expected: '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd'}, 24 | { value: '-0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', expected: '-0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'}, 25 | { value: '-0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd', expected: '-0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd'}, 26 | { value: 0, expected: '0x0'}, 27 | { value: '0', expected: '0x0'}, 28 | { value: '0x0', expected: '0x0'}, 29 | { value: -0, expected: '0x0'}, 30 | { value: '-0', expected: '0x0'}, 31 | { value: '-0x0', expected: '0x0'} 32 | ]; 33 | 34 | describe('lib/utils/utils', function () { 35 | describe('fromDecimal', function () { 36 | tests.forEach(function (test) { 37 | it('should turn ' + test.value + ' to ' + test.expected, function () { 38 | assert.equal(utils.fromDecimal(test.value), test.expected); 39 | }); 40 | }); 41 | }); 42 | }); 43 | 44 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.fromUtf8.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var BigNumber = require('bignumber.js'); 3 | var utils = require('../lib/utils/utils.js'); 4 | var assert = chai.assert; 5 | 6 | var tests = [ 7 | { value: 'myString', expected: '0x6d79537472696e67'}, 8 | { value: 'myString\x00', expected: '0x6d79537472696e67'}, 9 | { value: 'expected value\u0000\u0000\u0000', expected: '0x65787065637465642076616c7565'} 10 | ]; 11 | 12 | describe('lib/utils/utils', function () { 13 | describe('fromUtf8', function () { 14 | tests.forEach(function (test) { 15 | it('should turn ' + test.value + ' to ' + test.expected, function () { 16 | assert.strictEqual(utils.fromUtf8(test.value), test.expected); 17 | }); 18 | }); 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.fromWei.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var utils = require('../lib/utils/utils.js'); 3 | 4 | describe('lib/utils/utils', function () { 5 | describe('fromWei', function () { 6 | it('should return the correct value', function () { 7 | 8 | assert.equal(utils.fromWei(1000000000000000000, 'wei'), '1000000000000000000'); 9 | assert.equal(utils.fromWei(1000000000000000000, 'kwei'), '1000000000000000'); 10 | assert.equal(utils.fromWei(1000000000000000000, 'mwei'), '1000000000000'); 11 | assert.equal(utils.fromWei(1000000000000000000, 'gwei'), '1000000000'); 12 | assert.equal(utils.fromWei(1000000000000000000, 'szabo'), '1000000'); 13 | assert.equal(utils.fromWei(1000000000000000000, 'finney'), '1000'); 14 | assert.equal(utils.fromWei(1000000000000000000, 'ether'), '1'); 15 | assert.equal(utils.fromWei(1000000000000000000, 'kether'), '0.001'); 16 | assert.equal(utils.fromWei(1000000000000000000, 'grand'), '0.001'); 17 | assert.equal(utils.fromWei(1000000000000000000, 'mether'), '0.000001'); 18 | assert.equal(utils.fromWei(1000000000000000000, 'gether'), '0.000000001'); 19 | assert.equal(utils.fromWei(1000000000000000000, 'tether'), '0.000000000001'); 20 | }); 21 | }); 22 | }); 23 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.isAddress.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var utils = require('../lib/utils/utils.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { value: function () {}, is: false}, 7 | { value: new Function(), is: false}, 8 | { value: 'function', is: false}, 9 | { value: {}, is: false}, 10 | { value: '0xc6d9d2cd449a754c494264e1809c50e34d64562b', is: true }, 11 | { value: 'c6d9d2cd449a754c494264e1809c50e34d64562b', is: true } 12 | ]; 13 | 14 | describe('lib/utils/utils', function () { 15 | describe('isAddress', function () { 16 | tests.forEach(function (test) { 17 | it('shoud test if value ' + test.value + ' is address: ' + test.is, function () { 18 | assert.equal(utils.isAddress(test.value), test.is); 19 | }); 20 | }); 21 | }); 22 | }); 23 | 24 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.isBigNumber.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var utils = require('../lib/utils/utils.js'); 3 | var BigNumber = require('bignumber.js'); 4 | var assert = chai.assert; 5 | 6 | var tests = [ 7 | { value: function () {}, is: false}, 8 | { value: new Function(), is: false}, 9 | { value: 'function', is: false}, 10 | { value: {}, is: false}, 11 | { value: new String('hello'), is: false}, 12 | { value: new BigNumber(0), is: true}, 13 | { value: 132, is: false}, 14 | { value: '0x12', is: false}, 15 | 16 | ]; 17 | 18 | describe('lib/utils/utils', function () { 19 | describe('isBigNumber', function () { 20 | tests.forEach(function (test) { 21 | it('shoud test if value ' + test.func + ' is BigNumber: ' + test.is, function () { 22 | assert.equal(utils.isBigNumber(test.value), test.is); 23 | }); 24 | }); 25 | }); 26 | }); 27 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.isFunction.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var utils = require('../lib/utils/utils.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { func: function () {}, is: true}, 7 | { func: new Function(), is: true}, 8 | { func: 'function', is: false}, 9 | { func: {}, is: false} 10 | ]; 11 | 12 | describe('lib/utils/utils', function () { 13 | describe('isFunction', function () { 14 | tests.forEach(function (test) { 15 | it('shoud test if value ' + test.func + ' is function: ' + test.is, function () { 16 | assert.equal(utils.isFunction(test.func), test.is); 17 | }); 18 | }); 19 | }); 20 | }); 21 | 22 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.isJson.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var utils = require('../lib/utils/utils.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { obj: function () {}, is: false}, 7 | { obj: new Function(), is: false}, 8 | { obj: 'function', is: false}, 9 | { obj: {}, is: false}, 10 | { obj: '[]', is: true}, 11 | { obj: '[1, 2]', is: true}, 12 | { obj: '{}', is: true}, 13 | { obj: '{"a": 123, "b" :3,}', is: false}, 14 | { obj: '{"c" : 2}', is: true} 15 | ]; 16 | 17 | describe('lib/utils/utils', function () { 18 | describe('isJson', function () { 19 | tests.forEach(function (test) { 20 | it('shoud test if value ' + test.obj + ' is json: ' + test.is, function () { 21 | assert.equal(utils.isJson(test.obj), test.is); 22 | }); 23 | }); 24 | }); 25 | }); 26 | 27 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.isStrictAddress.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var utils = require('../lib/utils/utils.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { value: function () {}, is: false}, 7 | { value: new Function(), is: false}, 8 | { value: 'function', is: false}, 9 | { value: {}, is: false}, 10 | { value: '0xc6d9d2cd449a754c494264e1809c50e34d64562b', is: true }, 11 | { value: 'c6d9d2cd449a754c494264e1809c50e34d64562b', is: false } 12 | ]; 13 | 14 | describe('lib/utils/utils', function () { 15 | describe('isStrictAddress', function () { 16 | tests.forEach(function (test) { 17 | it('shoud test if value ' + test.value + ' is address: ' + test.is, function () { 18 | assert.equal(utils.isStrictAddress(test.value), test.is); 19 | }); 20 | }); 21 | }); 22 | }); 23 | 24 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.isString.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var utils = require('../lib/utils/utils.js'); 3 | var assert = chai.assert; 4 | 5 | var tests = [ 6 | { value: function () {}, is: false}, 7 | { value: new Function(), is: false}, 8 | { value: 'function', is: true}, 9 | { value: {}, is: false}, 10 | { value: new String('hello'), is: true} 11 | ]; 12 | 13 | describe('lib/utils/utils', function () { 14 | describe('isString', function () { 15 | tests.forEach(function (test) { 16 | it('shoud test if value ' + test.func + ' is string: ' + test.is, function () { 17 | assert.equal(utils.isString(test.value), test.is); 18 | }); 19 | }); 20 | }); 21 | }); 22 | 23 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.toAscii.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var BigNumber = require('bignumber.js'); 3 | var utils = require('../lib/utils/utils.js'); 4 | var assert = chai.assert; 5 | 6 | var tests = [ 7 | { value: '0x6d79537472696e67', expected: 'myString'}, 8 | { value: '0x6d79537472696e6700', expected: 'myString\u0000'}, 9 | { value: "0x0300000035e8c6d54c5d127c9dcebe9e1a37ab9b05321128d097590a3c100000000000006521df642ff1f5ec0c3a7aa6cea6b1e7b7f7cda2cbdf07362a85088e97f19ef94331c955c0e9321ad386428c", 10 | expected: '\u0003\u0000\u0000\u00005èÆÕL]\u0012|Î¾ž\u001a7«›\u00052\u0011(ЗY\n<\u0010\u0000\u0000\u0000\u0000\u0000\u0000e!ßd/ñõì\f:z¦Î¦±ç·÷Í¢Ëß\u00076*…\bŽ—ñžùC1ÉUÀé2\u001aӆBŒ'} 11 | ]; 12 | 13 | describe('lib/utils/utils', function () { 14 | describe('toAscii', function () { 15 | tests.forEach(function (test) { 16 | it('should turn ' + test.value + ' to ' + test.expected, function () { 17 | assert.strictEqual(utils.toAscii(test.value), test.expected); 18 | }); 19 | }); 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.toBigNumber.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var utils = require('../lib/utils/utils.js'); 3 | var BigNumber = require('bignumber.js'); 4 | var assert = chai.assert; 5 | 6 | var tests = [ 7 | { value: 1, expected: '1' }, 8 | { value: '1', expected: '1' }, 9 | { value: '0x1', expected: '1'}, 10 | { value: '0x01', expected: '1'}, 11 | { value: 15, expected: '15'}, 12 | { value: '15', expected: '15'}, 13 | { value: '0xf', expected: '15'}, 14 | { value: '0x0f', expected: '15'}, 15 | { value: new BigNumber('f', 16), expected: '15'}, 16 | { value: -1, expected: '-1'}, 17 | { value: '-1', expected: '-1'}, 18 | { value: '-0x1', expected: '-1'}, 19 | { value: '-0x01', expected: '-1'}, 20 | { value: -15, expected: '-15'}, 21 | { value: '-15', expected: '-15'}, 22 | { value: '-0xf', expected: '-15'}, 23 | { value: '-0x0f', expected: '-15'}, 24 | { value: '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', expected: '115792089237316195423570985008687907853269984665640564039457584007913129639935'}, 25 | { value: '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd', expected: '115792089237316195423570985008687907853269984665640564039457584007913129639933'}, 26 | { value: '-0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', expected: '-115792089237316195423570985008687907853269984665640564039457584007913129639935'}, 27 | { value: '-0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd', expected: '-115792089237316195423570985008687907853269984665640564039457584007913129639933'}, 28 | { value: 0, expected: '0'}, 29 | { value: '0', expected: '0'}, 30 | { value: '0x0', expected: '0'}, 31 | { value: -0, expected: '0'}, 32 | { value: '-0', expected: '0'}, 33 | { value: '-0x0', expected: '0'}, 34 | { value: new BigNumber(0), expected: '0'} 35 | ]; 36 | 37 | describe('lib/utils/utils', function () { 38 | describe('toBigNumber', function () { 39 | tests.forEach(function (test) { 40 | it('should turn ' + test.value + ' to ' + test.expected, function () { 41 | assert.equal(utils.toBigNumber(test.value).toString(10), test.expected); 42 | }); 43 | }); 44 | }); 45 | }); 46 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.toDecimal.js: -------------------------------------------------------------------------------- 1 | var assert = require('assert'); 2 | var utils = require('../lib/utils/utils.js'); 3 | 4 | describe('lib/utils/utils', function () { 5 | describe('toDecimal', function () { 6 | it('should return the correct value', function () { 7 | 8 | assert.equal(utils.toDecimal("0x3e8"), '1000'); 9 | // allow compatiblity 10 | assert.equal(utils.toDecimal(100000), '100000'); 11 | assert.equal(utils.toDecimal('100000'), '100000'); 12 | }); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.toUtf8.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var BigNumber = require('bignumber.js'); 3 | var utils = require('../lib/utils/utils.js'); 4 | var assert = chai.assert; 5 | 6 | var tests = [ 7 | { value: '0x6d79537472696e67', expected: 'myString'}, 8 | { value: '0x6d79537472696e6700', expected: 'myString'}, 9 | { value: '0x65787065637465642076616c7565000000000000000000000000000000000000', expected: 'expected value'} 10 | ]; 11 | 12 | describe('lib/utils/utils', function () { 13 | describe('toUtf8', function () { 14 | tests.forEach(function (test) { 15 | it('should turn ' + test.value + ' to ' + test.expected, function () { 16 | assert.strictEqual(utils.toUtf8(test.value), test.expected); 17 | }); 18 | }); 19 | }); 20 | }); 21 | -------------------------------------------------------------------------------- /www/lib/web3/test/utils.toWei.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var utils = require('../lib/utils/utils'); 3 | var assert = chai.assert; 4 | 5 | describe('lib/utils/utils', function () { 6 | describe('toWei', function () { 7 | it('should return the correct value', function () { 8 | 9 | assert.equal(utils.toWei(1, 'wei'), '1'); 10 | assert.equal(utils.toWei(1, 'kwei'), '1000'); 11 | assert.equal(utils.toWei(1, 'mwei'), '1000000'); 12 | assert.equal(utils.toWei(1, 'gwei'), '1000000000'); 13 | assert.equal(utils.toWei(1, 'szabo'), '1000000000000'); 14 | assert.equal(utils.toWei(1, 'finney'), '1000000000000000'); 15 | assert.equal(utils.toWei(1, 'ether'), '1000000000000000000'); 16 | assert.equal(utils.toWei(1, 'kether'), '1000000000000000000000'); 17 | assert.equal(utils.toWei(1, 'grand'), '1000000000000000000000'); 18 | assert.equal(utils.toWei(1, 'mether'), '1000000000000000000000000'); 19 | assert.equal(utils.toWei(1, 'gether'), '1000000000000000000000000000'); 20 | assert.equal(utils.toWei(1, 'tether'), '1000000000000000000000000000000'); 21 | 22 | assert.equal(utils.toWei(1, 'kwei'), utils.toWei(1, 'femtoether')); 23 | assert.equal(utils.toWei(1, 'babbage'), utils.toWei(1, 'picoether')); 24 | assert.equal(utils.toWei(1, 'shannon'), utils.toWei(1, 'nanoether')); 25 | assert.equal(utils.toWei(1, 'szabo'), utils.toWei(1, 'microether')); 26 | assert.equal(utils.toWei(1, 'finney'), utils.toWei(1, 'milliether')); 27 | assert.equal(utils.toWei(1, 'milli'), utils.toWei(1, 'milliether')); 28 | assert.equal(utils.toWei(1, 'milli'), utils.toWei(1000, 'micro')); 29 | 30 | assert.throws(function () {utils.toWei(1, 'wei1');}, Error); 31 | }); 32 | }); 33 | }); 34 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.db.getHex.js: -------------------------------------------------------------------------------- 1 | var testMethod = require('./helpers/test.method.js'); 2 | 3 | var method = 'getHex'; 4 | 5 | var tests = [{ 6 | args: ['myDB', 'myKey'], 7 | formattedArgs: ['myDB', 'myKey'], 8 | result: '0xf', 9 | formattedResult: '0xf', 10 | call: 'db_'+ method 11 | }]; 12 | 13 | testMethod.runTests('db', method, tests); 14 | 15 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.db.getString.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var testMethod = require('./helpers/test.method.js'); 3 | 4 | var method = 'getString'; 5 | 6 | var tests = [{ 7 | args: ['myDB', 'myKey'], 8 | formattedArgs: ['myDB', 'myKey'], 9 | result: 'myValue', 10 | formattedResult: 'myValue', 11 | call: 'db_'+ method 12 | }]; 13 | 14 | testMethod.runTests('db', method, tests); 15 | 16 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.db.methods.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index.js'); 4 | var web3 = new Web3(); 5 | var u = require('./helpers/test.utils.js'); 6 | 7 | describe('web3.db', function() { 8 | describe('methods', function() { 9 | u.methodExists(web3.db, 'putHex'); 10 | u.methodExists(web3.db, 'getHex'); 11 | u.methodExists(web3.db, 'putString'); 12 | u.methodExists(web3.db, 'getString'); 13 | }); 14 | }); 15 | 16 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.db.putHex.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var testMethod = require('./helpers/test.method.js'); 4 | 5 | var method = 'putHex'; 6 | 7 | var tests = [{ 8 | args: ['myDB', 'myKey', '0xb'], 9 | formattedArgs: ['myDB', 'myKey', '0xb'], 10 | result: true, 11 | formattedResult: true, 12 | call: 'db_'+ method 13 | }]; 14 | 15 | testMethod.runTests('db', method, tests); 16 | 17 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.db.putString.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var testMethod = require('./helpers/test.method.js'); 4 | 5 | var method = 'putString'; 6 | 7 | var tests = [{ 8 | args: ['myDB', 'myKey', 'myValue'], 9 | formattedArgs: ['myDB', 'myKey', 'myValue'], 10 | result: true, 11 | formattedResult: true, 12 | call: 'db_'+ method 13 | }]; 14 | 15 | testMethod.runTests('db', method, tests); 16 | 17 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.accounts.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 6 | 7 | var method = 'accounts'; 8 | 9 | var tests = [{ 10 | result: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855'], 11 | formattedResult: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855'], 12 | call: 'eth_'+ method 13 | }]; 14 | 15 | describe('web3.eth', function () { 16 | describe(method, function () { 17 | tests.forEach(function (test, index) { 18 | it('property test: ' + index, function () { 19 | 20 | // given 21 | var provider = new FakeHttpProvider(); 22 | web3.setProvider(provider); 23 | provider.injectResult(test.result); 24 | provider.injectValidation(function (payload) { 25 | assert.equal(payload.jsonrpc, '2.0'); 26 | assert.equal(payload.method, test.call); 27 | assert.deepEqual(payload.params, []); 28 | }); 29 | 30 | // when 31 | var result = web3.eth[method]; 32 | 33 | // then 34 | assert.deepEqual(test.formattedResult, result); 35 | }); 36 | }); 37 | }); 38 | }); 39 | 40 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.blockNumber.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 6 | 7 | var method = 'blockNumber'; 8 | 9 | var tests = [{ 10 | result: '0xb', 11 | formattedResult: 11, 12 | call: 'eth_'+ method 13 | }]; 14 | 15 | describe('web3.eth', function () { 16 | describe(method, function () { 17 | tests.forEach(function (test, index) { 18 | it('property test: ' + index, function () { 19 | 20 | // given 21 | var provider = new FakeHttpProvider(); 22 | web3.setProvider(provider); 23 | provider.injectResult(test.result); 24 | provider.injectValidation(function (payload) { 25 | assert.equal(payload.jsonrpc, '2.0'); 26 | assert.equal(payload.method, test.call); 27 | assert.deepEqual(payload.params, []); 28 | }); 29 | 30 | // when 31 | var result = web3.eth[method]; 32 | 33 | // then 34 | assert.strictEqual(test.formattedResult, result); 35 | }); 36 | 37 | it('async get property test: ' + index, function (done) { 38 | 39 | // given 40 | var provider = new FakeHttpProvider(); 41 | web3.setProvider(provider); 42 | provider.injectResult(test.result); 43 | provider.injectValidation(function (payload) { 44 | assert.equal(payload.jsonrpc, '2.0'); 45 | assert.equal(payload.method, test.call); 46 | assert.deepEqual(payload.params, []); 47 | }); 48 | 49 | // when 50 | web3.eth.getBlockNumber(function (err, result) { 51 | assert.strictEqual(test.formattedResult, result); 52 | done(); 53 | }); 54 | 55 | }); 56 | }); 57 | }); 58 | }); 59 | 60 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.call.js: -------------------------------------------------------------------------------- 1 | var testMethod = require('./helpers/test.method.js'); 2 | 3 | var method = 'call'; 4 | 5 | var tests = [{ 6 | args: [{ 7 | to: '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b', 8 | data: '0x23455654', 9 | gas: 11, 10 | gasPrice: 11 11 | }], 12 | formattedArgs: [{ 13 | to: '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b', 14 | data: '0x23455654', 15 | gas: '0xb', 16 | gasPrice: '0xb' 17 | }, 'latest'], 18 | result: '0x31981', 19 | formattedResult: '0x31981', 20 | call: 'eth_'+ method 21 | },{ 22 | args: [{ 23 | to: '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b', 24 | data: '0x23455654', 25 | gas: 11, 26 | gasPrice: 11 27 | }, 11], 28 | formattedArgs: [{ 29 | to: '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b', 30 | data: '0x23455654', 31 | gas: '0xb', 32 | gasPrice: '0xb' 33 | }, '0xb'], 34 | result: '0x31981', 35 | formattedResult: '0x31981', 36 | call: 'eth_'+ method 37 | }]; 38 | 39 | testMethod.runTests('eth', method, tests); 40 | 41 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.coinbase.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 6 | 7 | var method = 'coinbase'; 8 | 9 | var tests = [{ 10 | result: '0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', 11 | formattedResult: '0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', 12 | call: 'eth_'+ method 13 | }]; 14 | 15 | describe('web3.eth', function () { 16 | describe(method, function () { 17 | tests.forEach(function (test, index) { 18 | it('property test: ' + index, function () { 19 | 20 | // given 21 | var provider = new FakeHttpProvider(); 22 | web3.setProvider(provider); 23 | provider.injectResult(test.result); 24 | provider.injectValidation(function (payload) { 25 | assert.equal(payload.jsonrpc, '2.0'); 26 | assert.equal(payload.method, test.call); 27 | assert.deepEqual(payload.params, []); 28 | }); 29 | 30 | // when 31 | var result = web3.eth[method]; 32 | 33 | // then 34 | assert.deepEqual(test.formattedResult, result); 35 | }); 36 | }); 37 | }); 38 | }); 39 | 40 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.defaultBlock.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | 6 | describe('web3.eth', function () { 7 | describe('defaultBlock', function () { 8 | it('should check if defaultBlock is set to proper value', function () { 9 | assert.equal(web3.eth.defaultBlock, 'latest'); 10 | }); 11 | }); 12 | }); 13 | 14 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.estimateGas.js: -------------------------------------------------------------------------------- 1 | var web3 = require('../index'); 2 | var testMethod = require('./helpers/test.method.js'); 3 | 4 | var method = 'estimateGas'; 5 | 6 | var tests = [{ 7 | args: [{ 8 | to: '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b', 9 | data: '0x23455654', 10 | gas: 11, 11 | gasPrice: 11 12 | }], 13 | formattedArgs: [{ 14 | to: '0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b', 15 | data: '0x23455654', 16 | gas: '0xb', 17 | gasPrice: '0xb' 18 | }], 19 | result: '0x31981', 20 | formattedResult: 203137, 21 | call: 'eth_'+ method 22 | }]; 23 | 24 | testMethod.runTests('eth', method, tests); 25 | 26 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.gasPrice.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | var BigNumber = require('bignumber.js'); 6 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 7 | 8 | var method = 'gasPrice'; 9 | 10 | var tests = [{ 11 | result: '0x15f90', 12 | formattedResult: new BigNumber(90000), 13 | call: 'eth_'+ method 14 | }]; 15 | 16 | describe('web3.eth', function () { 17 | describe(method, function () { 18 | tests.forEach(function (test, index) { 19 | it('property test: ' + index, function () { 20 | 21 | // given 22 | var provider = new FakeHttpProvider(); 23 | web3.setProvider(provider); 24 | provider.injectResult(test.result); 25 | provider.injectValidation(function (payload) { 26 | assert.equal(payload.jsonrpc, '2.0'); 27 | assert.equal(payload.method, test.call); 28 | assert.deepEqual(payload.params, []); 29 | }); 30 | 31 | // when 32 | var result = web3.eth[method]; 33 | 34 | // then 35 | assert.deepEqual(test.formattedResult, result); 36 | }); 37 | }); 38 | }); 39 | }); 40 | 41 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.getBlockTransactionCount.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var testMethod = require('./helpers/test.method.js'); 4 | 5 | var method = 'getBlockTransactionCount'; 6 | 7 | 8 | var tests = [{ 9 | args: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855'], 10 | formattedArgs: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855'], 11 | result: '0xb', 12 | formattedResult: 11, 13 | call: 'eth_getBlockTransactionCountByHash' 14 | },{ 15 | args: [436], 16 | formattedArgs: ['0x1b4'], 17 | result: '0xb', 18 | formattedResult: 11, 19 | call: 'eth_getBlockTransactionCountByNumber' 20 | },{ 21 | args: ['pending'], 22 | formattedArgs: ['pending'], 23 | result: '0xb', 24 | formattedResult: 11, 25 | call: 'eth_getBlockTransactionCountByNumber' 26 | }]; 27 | 28 | testMethod.runTests('eth', method, tests); 29 | 30 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.getBlockUncleCount.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var method = 'getBlockUncleCount'; 4 | var testMethod = require('./helpers/test.method.js'); 5 | 6 | 7 | var tests = [{ 8 | args: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855'], 9 | formattedArgs: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855'], 10 | result: '0xb', 11 | formattedResult: 11, 12 | call: 'eth_getUncleCountByBlockHash' 13 | },{ 14 | args: [436], 15 | formattedArgs: ['0x1b4'], 16 | result: '0xb', 17 | formattedResult: 11, 18 | call: 'eth_getUncleCountByBlockNumber' 19 | },{ 20 | args: ['pending'], 21 | formattedArgs: ['pending'], 22 | result: '0xb', 23 | formattedResult: 11, 24 | call: 'eth_getUncleCountByBlockNumber' 25 | }]; 26 | 27 | testMethod.runTests('eth', method, tests); 28 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.getCode.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var Web3 = require('../index'); 3 | var web3 = new Web3(); 4 | var testMethod = require('./helpers/test.method.js'); 5 | 6 | var method = 'getCode'; 7 | 8 | 9 | var tests = [{ 10 | args: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855'], 11 | formattedArgs: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', web3.eth.defaultBlock], 12 | result: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 13 | formattedResult: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 14 | call: 'eth_'+ method 15 | },{ 16 | args: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', 2], 17 | formattedArgs: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', '0x2'], 18 | result: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 19 | formattedResult: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 20 | call: 'eth_'+ method 21 | }]; 22 | 23 | testMethod.runTests('eth', method, tests); 24 | 25 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.getCompilers.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var testMethod = require('./helpers/test.method.js'); 4 | 5 | var method = 'getCompilers'; 6 | 7 | 8 | var tests = [{ 9 | args: [], 10 | formattedArgs: [], 11 | result: ['solidity'], 12 | formattedResult: ['solidity'], 13 | call: 'eth_'+ method 14 | },{ 15 | args: [], 16 | formattedArgs: [], 17 | result: ['solidity'], 18 | formattedResult: ['solidity'], 19 | call: 'eth_'+ method 20 | }]; 21 | 22 | testMethod.runTests('eth', method, tests); 23 | 24 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.getStorageAt.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var Web3 = require('../index'); 3 | var web3 = new Web3(); 4 | var testMethod = require('./helpers/test.method.js'); 5 | 6 | var method = 'getStorageAt'; 7 | 8 | 9 | var tests = [{ 10 | args: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', 2], 11 | formattedArgs: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', '0x2', web3.eth.defaultBlock], 12 | result: '0x47d33b2', 13 | formattedResult: '0x47d33b2', 14 | call: 'eth_'+ method 15 | },{ 16 | args: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', 2, 0], 17 | formattedArgs: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', '0x2', '0x0'], 18 | result: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 19 | formattedResult: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 20 | call: 'eth_'+ method 21 | },{ 22 | args: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', 0xb, 0x0], 23 | formattedArgs: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', '0xb', '0x0'], 24 | result: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 25 | formattedResult: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 26 | call: 'eth_'+ method 27 | }, { 28 | args: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', 0xb, 'latest'], 29 | formattedArgs: ['0x47d33b27bb249a2dbab4c0612bf9caf4c1950855', '0xb', 'latest'], 30 | result: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 31 | formattedResult: '0x47d33b27bb249a2dbab4c0612bf9caf4747d33b27bb249a2dbab4c0612bf9cafd33b27bb249a2dbab4c0612bf9caf4c1950855', 32 | call: 'eth_'+ method 33 | }]; 34 | 35 | testMethod.runTests('eth', method, tests); 36 | 37 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.getTransaction.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var BigNumber = require('bignumber.js'); 4 | var testMethod = require('./helpers/test.method.js'); 5 | 6 | var method = 'getTransaction'; 7 | 8 | var txResult = { 9 | "hash":"0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", 10 | "nonce":"0x5", 11 | "blockHash": "0x6fd9e2a26ab", 12 | "blockNumber": "0x15df", 13 | "transactionIndex": "0x1", 14 | "from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1", 15 | "to":"0x85h43d8a49eeb85d32cf465507dd71d507100c1", 16 | "value":"0x7f110", 17 | "gas": "0x7f110", 18 | "gasPrice":"0x09184e72a000", 19 | "input":"0x603880600c6000396000f30060" 20 | }; 21 | var formattedTxResult = { 22 | "hash":"0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", 23 | "nonce":5, 24 | "blockHash": "0x6fd9e2a26ab", 25 | "blockNumber": 5599, 26 | "transactionIndex": 1, 27 | "from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1", 28 | "to":"0x85h43d8a49eeb85d32cf465507dd71d507100c1", 29 | "value": new BigNumber(520464), 30 | "gas": 520464, 31 | "gasPrice": new BigNumber(10000000000000), 32 | "input":"0x603880600c6000396000f30060" 33 | }; 34 | 35 | var tests = [{ 36 | args: ['0x2dbab4c0612bf9caf4c195085547dc0612bf9caf4c1950855'], 37 | formattedArgs: ['0x2dbab4c0612bf9caf4c195085547dc0612bf9caf4c1950855'], 38 | result: txResult, 39 | formattedResult: formattedTxResult, 40 | call: 'eth_'+ method + 'ByHash' 41 | }]; 42 | 43 | testMethod.runTests('eth', method, tests); 44 | 45 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.getTransactionFromBlock.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var BigNumber = require('bignumber.js'); 4 | var testMethod = require('./helpers/test.method.js'); 5 | 6 | var method = 'getTransactionFromBlock'; 7 | 8 | var txResult = { 9 | "status": "mined", 10 | "hash":"0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", 11 | "nonce":"0xb", 12 | "blockHash": "0x6fd9e2a26ab", 13 | "blockNumber": "0x15df", 14 | "transactionIndex": "0x1", 15 | "from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1", 16 | "to":"0x85h43d8a49eeb85d32cf465507dd71d507100c1", 17 | "value":"0x7f110", 18 | "gas": "0x7f110", 19 | "gasPrice":"0x09184e72a000", 20 | "input":"0x603880600c6000396000f30060" 21 | }; 22 | var formattedTxResult = { 23 | "status": "mined", 24 | "hash":"0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", 25 | "nonce":11, 26 | "blockHash": "0x6fd9e2a26ab", 27 | "blockNumber": 5599, 28 | "transactionIndex": 1, 29 | "from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1", 30 | "to":"0x85h43d8a49eeb85d32cf465507dd71d507100c1", 31 | "value": new BigNumber(520464), 32 | "gas": 520464, 33 | "gasPrice": new BigNumber(10000000000000), 34 | "input":"0x603880600c6000396000f30060" 35 | }; 36 | 37 | var tests = [{ 38 | args: ['0x2dbab4c0612bf9caf4c195085547dc0612bf9caf4c1950855', 2], 39 | formattedArgs: ['0x2dbab4c0612bf9caf4c195085547dc0612bf9caf4c1950855', '0x2'], 40 | result: txResult, 41 | formattedResult: formattedTxResult, 42 | call: 'eth_getTransactionByBlockHashAndIndex' 43 | },{ 44 | args: [436, 11], 45 | formattedArgs: ['0x1b4', '0xb'], 46 | result: txResult, 47 | formattedResult: formattedTxResult, 48 | call: 'eth_getTransactionByBlockNumberAndIndex' 49 | }]; 50 | 51 | testMethod.runTests('eth', method, tests); 52 | 53 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.getWork.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var testMethod = require('./helpers/test.method.js'); 4 | 5 | var method = 'getWork'; 6 | 7 | var tests = [{ 8 | args: [], 9 | formattedArgs: [], 10 | result: true, 11 | formattedResult: true, 12 | call: 'eth_'+ method 13 | }]; 14 | 15 | testMethod.runTests('eth', method, tests); 16 | 17 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.hashRate.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 6 | 7 | var method = 'hashrate'; 8 | 9 | var tests = [{ 10 | result: '0x788a8', 11 | formattedResult: 493736, 12 | call: 'eth_'+ method 13 | }]; 14 | 15 | describe('web3.eth', function () { 16 | describe(method, function () { 17 | tests.forEach(function (test, index) { 18 | it('property test: ' + index, function () { 19 | 20 | // given 21 | var provider = new FakeHttpProvider(); 22 | web3.setProvider(provider); 23 | provider.injectResult(test.result); 24 | provider.injectValidation(function (payload) { 25 | assert.equal(payload.jsonrpc, '2.0'); 26 | assert.equal(payload.method, test.call); 27 | assert.deepEqual(payload.params, []); 28 | }); 29 | 30 | // when 31 | var result = web3.eth[method]; 32 | 33 | // then 34 | assert.strictEqual(test.formattedResult, result); 35 | 36 | // clear the validation 37 | provider.injectValidation(function () {}); 38 | web3.reset(); 39 | }); 40 | }); 41 | }); 42 | }); 43 | 44 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.isSyncing.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var Web3 = require('../index'); 3 | var assert = chai.assert; 4 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 5 | 6 | var method = 'isSyncing'; 7 | 8 | var tests = [{ 9 | args: [], 10 | formattedArgs: [], 11 | result: [{ 12 | startingBlock: '0xb', 13 | currentBlock: '0xb', 14 | highestBlock: '0xb' 15 | }], 16 | formattedResult: { 17 | startingBlock: 11, 18 | currentBlock: 11, 19 | highestBlock: 11 20 | }, 21 | call: 'eth_syncing' 22 | }]; 23 | 24 | describe('eth', function () { 25 | describe(method, function () { 26 | tests.forEach(function (test, index) { 27 | it('property test: ' + index, function (done) { 28 | // given 29 | var provider = new FakeHttpProvider(); 30 | var web3 = new Web3(provider); 31 | provider.injectBatchResults(test.result); 32 | provider.injectValidation(function(payload) { 33 | assert.equal(payload[0].jsonrpc, '2.0', 'failed'); 34 | assert.equal(payload[0].method, test.call); 35 | assert.deepEqual(payload[0].params, test.formattedArgs); 36 | }); 37 | 38 | var count = 1; 39 | 40 | // TODO results seem to be overwritten 41 | 42 | 43 | // call 44 | var syncing = web3.eth[method](function(e, res){ 45 | if(count === 1) { 46 | assert.isTrue(res); 47 | count++; 48 | } else { 49 | assert.deepEqual(res, test.formattedResult); 50 | syncing.stopWatching(); 51 | done(); 52 | } 53 | }); 54 | 55 | }); 56 | }); 57 | }); 58 | }); 59 | 60 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.methods.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index.js'); 4 | var web3 = new Web3(); 5 | var u = require('./helpers/test.utils.js'); 6 | 7 | describe('web3.eth', function() { 8 | describe('methods', function() { 9 | u.methodExists(web3.eth, 'getBalance'); 10 | u.methodExists(web3.eth, 'getStorageAt'); 11 | u.methodExists(web3.eth, 'getTransactionCount'); 12 | u.methodExists(web3.eth, 'getCode'); 13 | u.methodExists(web3.eth, 'sendTransaction'); 14 | u.methodExists(web3.eth, 'call'); 15 | u.methodExists(web3.eth, 'getBlock'); 16 | u.methodExists(web3.eth, 'getTransaction'); 17 | u.methodExists(web3.eth, 'getUncle'); 18 | u.methodExists(web3.eth, 'getCompilers'); 19 | u.methodExists(web3.eth.compile, 'lll'); 20 | u.methodExists(web3.eth.compile, 'solidity'); 21 | u.methodExists(web3.eth.compile, 'serpent'); 22 | u.methodExists(web3.eth, 'getBlockTransactionCount'); 23 | u.methodExists(web3.eth, 'getBlockUncleCount'); 24 | u.methodExists(web3.eth, 'filter'); 25 | u.methodExists(web3.eth, 'contract'); 26 | 27 | u.propertyExists(web3.eth, 'coinbase'); 28 | u.propertyExists(web3.eth, 'mining'); 29 | u.propertyExists(web3.eth, 'gasPrice'); 30 | u.propertyExists(web3.eth, 'accounts'); 31 | u.propertyExists(web3.eth, 'defaultBlock'); 32 | u.propertyExists(web3.eth, 'blockNumber'); 33 | }); 34 | }); 35 | 36 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.mining.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 6 | 7 | var method = 'mining'; 8 | 9 | var tests = [{ 10 | result: true, 11 | formattedResult: true, 12 | call: 'eth_'+ method 13 | }]; 14 | 15 | describe('web3.eth', function () { 16 | describe(method, function () { 17 | tests.forEach(function (test, index) { 18 | it('property test: ' + index, function () { 19 | 20 | // given 21 | var provider = new FakeHttpProvider(); 22 | web3.setProvider(provider); 23 | provider.injectResult(test.result); 24 | provider.injectValidation(function (payload) { 25 | assert.equal(payload.jsonrpc, '2.0'); 26 | assert.equal(payload.method, test.call); 27 | assert.deepEqual(payload.params, []); 28 | }); 29 | 30 | // when 31 | var result = web3.eth[method]; 32 | 33 | // then 34 | assert.deepEqual(test.formattedResult, result); 35 | }); 36 | }); 37 | }); 38 | }); 39 | 40 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.sendIBANTransaction.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | var FakeHttpProvider2 = require('./helpers/FakeHttpProvider2'); 6 | 7 | describe('web3.eth.sendIBANTransaction', function () { 8 | it('should send transaction', function () { 9 | 10 | var iban = 'XE81ETHXREGGAVOFYORK'; 11 | var address = '0x1234567890123456789012345678901234500000'; 12 | var exAddress = '0x1234567890123456789012345678901234567890' 13 | 14 | var provider = new FakeHttpProvider2(); 15 | web3.setProvider(provider); 16 | web3.reset(); 17 | 18 | provider.injectResultList([{ 19 | result: exAddress 20 | }, { 21 | result: '' 22 | }]); 23 | 24 | var step = 0; 25 | provider.injectValidation(function (payload) { 26 | if (step === 0) { 27 | step++; 28 | assert.equal(payload.method, 'eth_call'); 29 | assert.deepEqual(payload.params, [{ 30 | data: "0x3b3b57de5852454700000000000000000000000000000000000000000000000000000000", 31 | to: web3.eth.icapNamereg().address 32 | }, "latest"]); 33 | 34 | return; 35 | } 36 | assert.equal(payload.method, 'eth_sendTransaction'); 37 | assert.deepEqual(payload.params, [{ 38 | data: '0xb214faa54741564f46594f524b0000000000000000000000000000000000000000000000', 39 | from: address, 40 | to: exAddress, 41 | value: payload.params[0].value // don't check this 42 | }]); 43 | }); 44 | 45 | web3.eth.sendIBANTransaction(address, iban, 10000); 46 | 47 | }); 48 | }); 49 | 50 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.eth.submitWork.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var testMethod = require('./helpers/test.method.js'); 4 | 5 | var method = 'submitWork'; 6 | 7 | var tests = [ 8 | { 9 | args: ['0x567890abcdef5555', '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', '0xcdef1234567890abcdef1234567890abcdef0x1234567890abcf1234567890ab'], 10 | formattedArgs: ['0x567890abcdef5555', '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef', '0xcdef1234567890abcdef1234567890abcdef0x1234567890abcf1234567890ab'], 11 | result: true, 12 | formattedResult: true, 13 | call: 'eth_'+ method 14 | }]; 15 | 16 | testMethod.runTests('eth', method, tests); 17 | 18 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.fromICAP.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var Web3 = require('../index'); 3 | var web3 = new Web3(); 4 | var assert = chai.assert; 5 | 6 | var tests = [ 7 | { direct: 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS', address: '00c5496aee77c1ba1f0854206a26dda82a81d6d8'} 8 | ]; 9 | 10 | describe('web3', function () { 11 | describe('fromICAP', function () { 12 | tests.forEach(function (test) { 13 | it('shoud transform iban to address: ' + test.address, function () { 14 | assert.deepEqual(web3.fromICAP(test.direct), test.address); 15 | }); 16 | }); 17 | }); 18 | }); 19 | 20 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.methods.js: -------------------------------------------------------------------------------- 1 | var Web3 = require('../index.js'); 2 | var web3 = new Web3(); 3 | var u = require('./helpers/test.utils.js'); 4 | 5 | describe('web3', function() { 6 | describe('methods', function () { 7 | u.methodExists(web3, 'sha3'); 8 | u.methodExists(web3, 'toAscii'); 9 | u.methodExists(web3, 'fromAscii'); 10 | u.methodExists(web3, 'toDecimal'); 11 | u.methodExists(web3, 'fromDecimal'); 12 | u.methodExists(web3, 'fromWei'); 13 | u.methodExists(web3, 'toWei'); 14 | u.methodExists(web3, 'toBigNumber'); 15 | u.methodExists(web3, 'isAddress'); 16 | u.methodExists(web3, 'setProvider'); 17 | u.methodExists(web3, 'reset'); 18 | 19 | u.propertyExists(web3, 'providers'); 20 | u.propertyExists(web3, 'eth'); 21 | u.propertyExists(web3, 'db'); 22 | u.propertyExists(web3, 'shh'); 23 | }); 24 | }); 25 | 26 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.net.listening.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 6 | 7 | var method = 'listening'; 8 | 9 | var tests = [{ 10 | result: true, 11 | formattedResult: true, 12 | call: 'net_'+ method 13 | }]; 14 | 15 | describe('web3.net', function () { 16 | describe(method, function () { 17 | tests.forEach(function (test, index) { 18 | it('property test: ' + index, function () { 19 | 20 | // given 21 | var provider = new FakeHttpProvider(); 22 | web3.setProvider(provider); 23 | provider.injectResult(test.result); 24 | provider.injectValidation(function (payload) { 25 | assert.equal(payload.jsonrpc, '2.0'); 26 | assert.equal(payload.method, test.call); 27 | assert.deepEqual(payload.params, []); 28 | }); 29 | 30 | // when 31 | var result = web3.net[method]; 32 | 33 | // then 34 | assert.deepEqual(test.formattedResult, result); 35 | }); 36 | }); 37 | }); 38 | }); 39 | 40 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.net.methods.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index.js'); 4 | var web3 = new Web3(); 5 | var u = require('./helpers/test.utils.js'); 6 | 7 | describe('web3.net', function() { 8 | describe('methods', function() { 9 | u.propertyExists(web3.net, 'listening'); 10 | u.propertyExists(web3.net, 'peerCount'); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.net.peerCount.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index'); 4 | var web3 = new Web3(); 5 | var FakeHttpProvider = require('./helpers/FakeHttpProvider'); 6 | 7 | var method = 'peerCount'; 8 | 9 | var tests = [{ 10 | result: '0xf', 11 | formattedResult: 15, 12 | call: 'net_'+ method 13 | }]; 14 | 15 | describe('web3.net', function () { 16 | describe(method, function () { 17 | tests.forEach(function (test, index) { 18 | it('property test: ' + index, function () { 19 | 20 | // given 21 | var provider = new FakeHttpProvider(); 22 | web3.setProvider(provider); 23 | provider.injectResult(test.result); 24 | provider.injectValidation(function (payload) { 25 | assert.equal(payload.jsonrpc, '2.0'); 26 | assert.equal(payload.method, test.call); 27 | assert.deepEqual(payload.params, []); 28 | }); 29 | 30 | // when 31 | var result = web3.net[method]; 32 | 33 | // then 34 | assert.deepEqual(test.formattedResult, result); 35 | }); 36 | }); 37 | }); 38 | }); 39 | 40 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.shh.hasIdentity.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var web3 = require('../index'); 3 | var testMethod = require('./helpers/test.method.js'); 4 | 5 | var method = 'hasIdentity'; 6 | 7 | var tests = [{ 8 | args: ['0x2dbab4c0612bf9caf4c195085547dc0612bf9caf4c1950855'], 9 | formattedArgs: ['0x2dbab4c0612bf9caf4c195085547dc0612bf9caf4c1950855'], 10 | result: true, 11 | formattedResult: true, 12 | call: 'shh_'+ method 13 | }]; 14 | 15 | testMethod.runTests('shh', method, tests); 16 | 17 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.shh.methods.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var assert = chai.assert; 3 | var Web3 = require('../index.js'); 4 | var web3 = new Web3(); 5 | var u = require('./helpers/test.utils.js'); 6 | 7 | describe('web3.shh', function() { 8 | describe('methods', function() { 9 | u.methodExists(web3.shh, 'post'); 10 | u.methodExists(web3.shh, 'newIdentity'); 11 | u.methodExists(web3.shh, 'hasIdentity'); 12 | u.methodExists(web3.shh, 'newGroup'); 13 | u.methodExists(web3.shh, 'addToGroup'); 14 | u.methodExists(web3.shh, 'filter'); 15 | }); 16 | }); 17 | 18 | -------------------------------------------------------------------------------- /www/lib/web3/test/web3.shh.post.js: -------------------------------------------------------------------------------- 1 | var chai = require('chai'); 2 | var Web3 = require('../index'); 3 | var web3 = new Web3(); 4 | var testMethod = require('./helpers/test.method.js'); 5 | 6 | var method = 'post'; 7 | 8 | var tests = [{ 9 | args: [{ 10 | from: '0x123123123', 11 | topics: ['hello_world'], 12 | payload: '12345', 13 | ttl: 100, 14 | workToProve: 101 15 | }], 16 | formattedArgs: [{ 17 | from: '0x123123123', 18 | topics: [web3.fromAscii('hello_world')], 19 | payload: web3.toHex('12345'), 20 | ttl: web3.toHex('100'), 21 | workToProve: web3.toHex('101'), 22 | priority: '0x0' 23 | }], 24 | result: true, 25 | formattedResult: true, 26 | call: 'shh_'+ method 27 | }, { 28 | args: [{ 29 | from: '0x21312', 30 | topics: ['hello_world'], 31 | payload: '0x12345', 32 | ttl: 0x100, 33 | workToProve: 0x101, 34 | priority: 0x15 35 | }], 36 | formattedArgs: [{ 37 | from: '0x21312', 38 | topics: [web3.fromAscii('hello_world')], 39 | payload: '0x12345', 40 | ttl: '0x100', 41 | workToProve: '0x101', 42 | priority: '0x15' 43 | }], 44 | result: true, 45 | formattedResult: true, 46 | call: 'shh_'+ method 47 | }]; 48 | 49 | testMethod.runTests('shh', method, tests); 50 | 51 | -------------------------------------------------------------------------------- /www/templates/block.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Playlist

4 |
5 |
6 | -------------------------------------------------------------------------------- /www/templates/checkbalance.html: -------------------------------------------------------------------------------- 1 |
2 |

Check Balance

3 |
4 | 5 | 6 |
7 |
8 | 12 |
13 |
14 | Save Address 15 | 21 |
22 |
23 | 24 |
25 |
26 |
27 | {{ response }} 28 |
29 |
30 | {{ error }} 31 |
32 |
33 |
34 | -------------------------------------------------------------------------------- /www/templates/credits.html: -------------------------------------------------------------------------------- 1 |
2 |

Credits

3 |
4 | 5 | 6 | 7 |
8 |
9 | API 10 |
11 | 12 | etherchain.org 13 | 14 | 15 | CoinCap.io 16 | 17 | 18 | shapeshift.io 19 | 20 |
21 | Development Sponsors 22 |
23 | 24 | Pegke Loyalty 25 | 26 |
27 | 28 |
29 |
30 |

31 | Donations are welcome. 32 |

33 | ETH: 34 | 35 | BTC: 36 | {{copied}} 37 |
38 |
39 | 40 |
41 |
42 | This project etherwallet is Open Source under MIT.
43 | Please feel free to fork and add your changes. 44 |
45 |
46 |
47 |
48 | -------------------------------------------------------------------------------- /www/templates/marketcap.html: -------------------------------------------------------------------------------- 1 |
2 |

ETH Market Capital

3 |
4 | 5 | 6 | 7 | 8 |
    9 |
  • 10 | Market Capital 11 | 12 | {{values.mktcap | currency:'USD' }} 13 | 14 |
  • 15 |
  • 16 | Price 17 | 18 | {{values.price | currency:'USD' }} 19 | 20 |
  • 21 |
  • 22 | Volume (24h) 23 | 24 | {{values.volume | currency:'USD' }} 25 | 26 |
  • 27 |
  • 28 | Available Supply 29 | 30 | {{values.supply }} ETH 31 | 32 |
  • 33 |
34 |
35 |
36 | -------------------------------------------------------------------------------- /www/templates/price.html: -------------------------------------------------------------------------------- 1 |
2 |

Price Statitics

3 |
4 | 5 | 6 | 7 | 8 |
9 | 12 | 13 |
14 |
15 |
16 |
17 |
18 | 19 | 20 |

{{ item.usd | currency:'USD' }}

21 |

{{ item.time | date:'MM-dd-yyyy HH:MM:ss' }}

22 |
23 |
24 |
25 |
26 | -------------------------------------------------------------------------------- /www/templates/send.html: -------------------------------------------------------------------------------- 1 |
2 |

Send Ether

3 |
4 | 5 | 6 | 20 | 21 | 22 | 23 | 24 | 25 |
26 |
27 | 28 | Send ETH 29 |
30 |
31 | 35 | 36 |
37 | 40 | 44 | 45 | 49 | 50 | 53 | 54 |
55 | 56 |
57 | 58 |
59 |
60 | 61 |
62 | -------------------------------------------------------------------------------- /www/templates/tabs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /www/templates/wallet.html: -------------------------------------------------------------------------------- 1 |
2 |

Wallet

3 |
4 | 5 | 6 | 7 | 8 | 9 |
10 |
11 |
12 |

Choose a strong password to encrypt
13 | your wallet.
14 | Set a 4 digit password for rapid access

15 |
16 | 19 | 22 | 25 | 28 |
29 |
30 | 31 | 32 | 33 |
34 |
35 |

{{ balance }}

36 |
37 | 38 |
39 | 40 | Transactions 41 |
42 |
43 |
No saved transaction
44 |
45 | 46 | 47 | 48 |

{{t.id}}

49 |

Value: {{t.value}}

50 |

To: {{t.to}}

51 |

Date: {{t.time}}

52 |

From: {{t.from}}

53 | CheckStatus 54 |
55 | 56 |
57 | 58 |
59 |
60 | --------------------------------------------------------------------------------