diff --git a/.babelrc b/.babelrc new file mode 100755 index 000000000..9896c6f5f --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2016-node5"] +} diff --git a/.codeclimate.yml b/.codeclimate.yml old mode 100644 new mode 100755 diff --git a/.editorconfig b/.editorconfig old mode 100644 new mode 100755 diff --git a/.eslintignore b/.eslintignore old mode 100644 new mode 100755 diff --git a/.eslintrc.yml b/.eslintrc.yml old mode 100644 new mode 100755 index 59576da16..cf3b408ab --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -19,15 +19,19 @@ rules: arrow-body-style: off prefer-arrow-callback: off no-underscore-dangle: off + object-curly-spacing: off + func-names: off + global-require: off + class-methods-use-this: off comma-dangle: - error - only-multiline ## no comma after last item if one line, though allow comma if multiline import/no-extraneous-dependencies: ## checks if required modules are missing in packages.json - error - devDependencies: ## declares files, whose imports belong to devDependencies - - "**/scripts/build-dist.js" - "**/tests/_base.js" - "**/*.test.js" + - "**/gulpTasks/*.js" globals: # don't warn about missing declarations i18n: true @@ -38,3 +42,6 @@ globals: # don't warn about missing declarations Tabs: true Tracker: true _: true + window: true + location: true + document: true diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md old mode 100644 new mode 100755 index d0db9bda3..cb5101ca4 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,19 +1,37 @@ -#### System information -`````` +- [ ] I've asked for help in the [Mist Gitter](http://gitter.im/expanse-org/mist) before filing this issue. + + + +``` Version: `0.0.0` OS & Version: windows/linux/osx -Node type: `exp/gexp(default)` -`````` +Node version: `geth 0.0.0` +Number of blocks synchronized: 0 +``` -#### Please check the **already existing** issues to keep duplicates at a minimum. -Furthermore several **work-arounds** have been collected in the [Mist-Troubleshooting-Guide](https://github.com/ethereum/wiki/wiki/Mist-Troubleshooting-Guide). + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100755 index 000000000..41af470ce --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,9 @@ +#### What does it do? + +#### Any helpful background information? + +#### Which code should the reviewer start with? + +#### New dependencies? What are they used for? + +#### Relevant screenshots? diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 5daf19755..cb6595c32 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,4 @@ nodes/gexp/ config.json mist.log npm-debug.log -yarn.lock +/yarn.lock diff --git a/.gitmodules b/.gitmodules old mode 100644 new mode 100755 diff --git a/.mention-bot b/.mention-bot deleted file mode 100644 index 4e426ab8a..000000000 --- a/.mention-bot +++ /dev/null @@ -1,13 +0,0 @@ -{ - "actions": ["labeled"], - "withLabel": "please review", - "maxReviewers": 3, - "numFilesToCheck": 5, - "message": "@pullRequester, thanks! @reviewers, please review this.", - "findPotentialReviewers": true, - "fileBlacklist": ["*.md, signatures.js, interface/.meteor"], - "skipAlreadyAssignedPR": false, - "skipAlreadyMentionedPR": false, - "userBlacklist": ["hiddentao"], - "assignToReviewer": false -} diff --git a/.nvmrc b/.nvmrc new file mode 100755 index 000000000..37722ebbc --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +7.4 diff --git a/.travis.yml b/.travis.yml old mode 100644 new mode 100755 index d291cd87e..ff38caf1b --- a/.travis.yml +++ b/.travis.yml @@ -28,8 +28,6 @@ matrix: - sudo dpkg --add-architecture i386 && sudo add-apt-repository ppa:ubuntu-wine/ppa -y - sudo apt-get update -q - sudo apt-get install --no-install-recommends -y mono-devel ca-certificates-mono wine1.8 - after_script: - - makensis -V2 scripts/windows-installer.nsi # LINUX @@ -65,17 +63,32 @@ cache: yarn: true install: - - PATH=$PATH:$HOME/.meteor && curl -L https://raw.githubusercontent.com/arunoda/travis-ci-meteor-packages/master/configure.sh | /bin/sh + - echo $PATH + - PATH=$PATH:$HOME/.meteor && curl -L https://raw.githubusercontent.com/arunoda/travis-ci-meteor-packages/1390e0f96162d0d70fc1e60a6b0f4f891a0e8f42/configure.sh | /bin/sh - yarn global add gulp-cli meteor-build-client - yarn script: - - if [[ $TRAVIS_BRANCH != "master" ]]; then unset CSC_LINK CSC_KEY_PASSWORD; fi # disable macOS code-signing (production certificate) on develop branch - - travis_wait 60 gulp mist --platform $GULP_PLATFORM - - if [[ $TRAVIS_BRANCH == "master" ]]; then travis_wait 60 gulp wallet --platform $GULP_PLATFORM; fi # also build wallet if on master branch + # disable macOS code-signing (production certificate) on develop branch + - if [[ $TRAVIS_BRANCH != "master" ]]; then unset CSC_LINK CSC_KEY_PASSWORD; fi + # windows code-signing on master branch + - if [[ $GULP_PLATFORM == "win" && $TRAVIS_BRANCH == "master" ]]; then export CSC_LINK=$CSC_WIN_LINK && CSC_KEY_PASSWORD=$CSC_WIN_KEY_PASSWORD; fi + # build mist + - if [[ $GULP_PLATFORM == "mac" ]]; then travis_wait 60 gulp --$GULP_PLATFORM; fi # increase timeout for slower mac builds + - if [[ $GULP_PLATFORM != "mac" ]]; then gulp --$GULP_PLATFORM; fi + # build wallet if on master branch + - if [[ $TRAVIS_BRANCH == "master" ]]; then travis_wait 60 gulp --wallet --$GULP_PLATFORM; fi + # prepare and run integration tests - if [[ $TRAVIS_OS_NAME == "linux" ]]; then export DISPLAY=:99.0; sh -e /etc/init.d/xvfb start; sleep 3; fi - - if [[ $GULP_PLATFORM != "win" ]]; then gulp test-mist; fi + - if [[ $GULP_PLATFORM != "win" ]]; then gulp test; fi after_success: - - gulp mist-checksums --platform $GULP_PLATFORM - - if [[ $TRAVIS_BRANCH == "master" ]]; then gulp wallet-checksums --platform $GULP_PLATFORM; fi + - if [[ $TRAVIS_BRANCH == "master" ]]; then gulp uploadQueue --$GULP_PLATFORM && gulp uploadQueue --wallet --$GULP_PLATFORM; fi + +notifications: + webhooks: + urls: + - https://webhooks.gitter.im/e/33972d9e627a142c57a6 + on_success: change + on_failure: always + on_start: never diff --git a/AUTHORS b/AUTHORS old mode 100644 new mode 100755 index 2ce08a551..f5c89fcc3 --- a/AUTHORS +++ b/AUTHORS @@ -2,7 +2,4 @@ The Mist Authors Alexander Van de Sande Bas van Kervel -Fabian Vogelsteller - -Expanse Version -Daniel Conway \ No newline at end of file +Fabian Vogelsteller \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100755 index 000000000..0fba6705f --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,84 @@ +# Code of Conduct + +## 1. Purpose + +A primary goal of Mist project is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof). + +This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior. + +We invite all those who participate in Mist project to help us create safe and positive experiences for everyone. + +## 2. Open Source Citizenship + +A supplemental goal of this Code of Conduct is to increase open source citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community. + +Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society. + +If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know. + +## 3. Expected Behavior + +The following behaviors are expected and requested of all community members: + +* Participate in an authentic and active way. In doing so, you contribute to the health and longevity of this community. +* Exercise consideration and respect in your speech and actions. +* Attempt collaboration before conflict. +* Refrain from demeaning, discriminatory, or harassing behavior and speech. +* Be mindful of your surroundings and of your fellow participants. Alert community leaders if you notice a dangerous situation, someone in distress, or violations of this Code of Conduct, even if they seem inconsequential. +* Remember that community event venues may be shared with members of the public; please be respectful to all patrons of these locations. + +## 4. Unacceptable Behavior + +The following behaviors are considered harassment and are unacceptable within our community: + +* Violence, threats of violence or violent language directed against another person. +* Sexist, racist, homophobic, transphobic, ableist or otherwise discriminatory jokes and language. +* Posting or displaying sexually explicit or violent material. +* Posting or threatening to post other people’s personally identifying information ("doxing"). +* Personal insults, particularly those related to gender, sexual orientation, race, religion, or disability. +* Inappropriate photography or recording. +* Inappropriate physical contact. You should have someone’s consent before touching them. +* Unwelcome sexual attention. This includes, sexualized comments or jokes; inappropriate touching, groping, and unwelcomed sexual advances. +* Deliberate intimidation, stalking or following (online or in person). +* Advocating for, or encouraging, any of the above behavior. +* Sustained disruption of community events, including talks and presentations. + +## 5. Consequences of Unacceptable Behavior + +Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated. + +Anyone asked to stop unacceptable behavior is expected to comply immediately. + +If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event). + +## 6. Reporting Guidelines + +If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. ev@ethereum.org. + + + +Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress. + +## 7. Addressing Grievances + +If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify the Mist team with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies. + + + +## 8. Scope + +We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues–online and in-person–as well as in all one-on-one communications pertaining to community business. + +This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members. + +## 9. Contact info + +ev@ethereum.org + +## 10. License and attribution + +This Code of Conduct is distributed under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/). + +Portions of text derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy). + +Retrieved on November 22, 2016 from [http://citizencodeofconduct.org/](http://citizencodeofconduct.org/) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md old mode 100644 new mode 100755 index 7a533cac9..efe87dbb8 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,15 +2,18 @@ ## Issues / Bug reports -**Read the existing issues first, and also search in the closed issues. You may find yours already.** +**Prior to submitting, please search -and read- _both_ open and closed issues -as _it_ may already exist.** -To help make Mist-Expanse (Expanse Wallet) better please file issue with the following basic descriptions: +To help improve Mist (_Ethereum Wallet_), please include the following: -- What do you run? binary from [releases](https://github.com/expanse-org/mist/releases) or the development version from the [commandline](https://github.com/expanse-org/mist#run-mist) -- Which version do you used? You can find that in the `VERSION` file in the Mist folder +- What do you run? (_Binary version from [releases](https://github.com/expanse-org/mist/releases) or a development version from the [commandline](https://github.com/expanse-org/mist#run-mist)_) +- Which version do you use? (_Check the `VERSION` file in the Mist folder_) - What OS you're on? -- Provide a log file if necessary, you can find that in the Mist data folder (Linux: `~/.config/Mist/*.log`, Windows: `%APPDATA%/Roaming/Mist/*.log`, MacOSX: `~/Library/Application Support/Mist/*.log`) -- Ideally also a screenshot, if its an interface issue + +If applicable: + +- Log file (Linux: `~/.config/Mist/*.log`, Windows: `%APPDATA%/Roaming/Mist/*.log`, MacOSX: `~/Library/Application Support/Mist/*.log`) +- Screenshot (for GUI related issues) ## Pull Requests @@ -23,7 +26,7 @@ If you add any modules or files, please give them a module description and or a ``` /** -The IPC provider backend filter and tunnel all incoming request to the IPC gexp bridge. +The IPC provider backend filter and tunnel all incoming request to the IPC geth bridge. @module ipcProviderBackend */ diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/MISTAPI.md b/MISTAPI.md old mode 100644 new mode 100755 index eae5e34f3..dada02f62 --- a/MISTAPI.md +++ b/MISTAPI.md @@ -20,13 +20,13 @@ web3 // 2. optionally use web3 from Mist or load if outside of Mist if(typeof web3 === 'undefined') - web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); + web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:9656")); // 3. always use web3 provided by the dapp ("Web3" won't be supplied by Mist), but the provider from Mist if(typeof web3 !== 'undefined') web3 = new Web3(web3.currentProvider); else - web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")); + web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:9656")); ``` ## API @@ -64,7 +64,7 @@ Asks the user to provide, or create a new account. #### Parameters -1. `Function` The callback to be called with the new address as the second param +1. `Function` The callback to be called with the new address as the second parameter. #### Example @@ -78,7 +78,7 @@ mist.requestAccount(function(e, address){ ### mist.menu -Provides functionality to control the sub menu of your dapp, when its add to the sidebar. +Provides functionality to control the sub menu of your dapp, when its added to the sidebar. *** @@ -91,10 +91,10 @@ Adds/Updates a sub menu entry, which is placed below you dapp button in the side 1. `String` **optional** and id string to identify your sub menu entry when updating. 2. `Object` The menu options: - `name` (`String`): The name of the sub menu button. - - `badge` (`String|null`) **optional**: The badge text for the sub menu button, e.g. `50` + - `badge` (`String|null`) **optional**: The badge text for the sub menu button, e.g. `50`. - `position` (`Number`) **optional**: The position of the submenu button, `1` is on the top. - - `selected` (`Boolean`) **optional**: whether or not this sub menu entry is currently selected. -3. `Function` **optional**: The callback to be called when the sub menu entry is clicked + - `selected` (`Boolean`) **optional**: Whether or not this sub menu entry is currently selected. +3. `Function` **optional**: The callback to be called when the sub menu entry is clicked. #### Minimal example @@ -125,7 +125,7 @@ mist.menu.add('tkrzU', { ### mist.menu.clear() Removes all sub menu entries. You can use this when you reload your app, -to clear up wrong menu entries, which might got lost since the last session. +to clear up incorrect menu entries, which might have been lost since the last session. #### Parameters @@ -145,11 +145,11 @@ Removes a sub menu entry. ### mist.menu.select(id) -Selects the according sub menu entry. +Selects the respective sub menu entry. #### Parameters -1. `String` the sub menu entry identifier +1. `String` the sub menu entry identifier. *** @@ -159,23 +159,23 @@ Sets the main badge of your dapp, right below your dapps menu button. #### Parameters -1. `String` the string used as the badge text +1. `String` the string used as the badge text. *** ### mist.menu.update(id, [, options] [, callback]) -Works like `mist.menu.add()`, but all but the `id` parameters are optional. +Works like `mist.menu.add()`, but only the `id` parameter is required. #### Parameters 1. `String` and id string to identify your sub menu entry. 2. `Object` The menu options: - `name` (`String`): (optional) The name of the sub menu button. - - `badge` (`String|null`): (optional) The badge text for the sub menu button, e.g. `50` + - `badge` (`String|null`): (optional) The badge text for the sub menu button, e.g. `50`. - `position` (`Number`): (optional) The position of the submenu button, `1` is on the top. - - `selected` (`Boolean`): (optional) whether or not this sub menu entry is currently selected. -3. `Function` (optional) The callback to be called when the sub menu entry is clicked + - `selected` (`Boolean`): (optional) Whether or not this sub menu entry is currently selected. +3. `Function` (optional) The callback to be called when the sub menu entry is clicked. #### Example diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 24357a40a..5e9fd714d --- a/README.md +++ b/README.md @@ -8,10 +8,18 @@ The Mist browser is the tool of choice to browse and use Ðapps. For the Mist API see the [MISTAPI.md](MISTAPI.md). +Please note that this repository is the Electron host for the Meteor based wallet dapp whose repository is located here: https://github.com/ethereum/meteor-dapp-wallet. + +## Help and troubleshooting + +Please check the [Mist troubleshooting guide](https://github.com/expanse-org/mist/wiki). + +Or the [Gitter Channel](https://gitter.im/expanse-org/mist), to connect with the community for instant help. + ## Installation -If you want install the app from a pre-built version on the [release page](https://github.com/expanse-org/mist/releases), -you can simply run the executable after download. +If you want to install the app from a pre-built version on the [release page](https://github.com/expanse-org/mist/releases), +you can simply run the executeable after download. For updating simply download the new version and copy it over the old one (keep a backup of the old one if you want to be sure). @@ -19,35 +27,35 @@ For updating simply download the new version and copy it over the old one (keep The data folder for Mist is stored in other places: - Windows `%APPDATA%\Mist` -- macOS `~/Library/Application Support/Mist` +- macOS `~/Library/Application\ Support/Mist` - Linux `~/.config/Mist` ## Development -For development, a Meteor server will to be started to assist with live reload and CSS injection. -Once a Mist version is released the Meteor frontend part is bundled using `meteor-build-client` npm package to create pure static files. +For development, a Meteor server will need to be started to assist with live reload and CSS injection. +Once a Mist version is released the Meteor frontend part is bundled using the `meteor-build-client` npm package to create pure static files. ### Dependencies To run mist in development you need: -- [Node.js](https://nodejs.org) `v6.x` (use the prefered installation method for your OS) +- [Node.js](https://nodejs.org) `v7.x` (use the prefered installation method for your OS) - [Meteor](https://www.meteor.com/install) javascript app framework - [Yarn](https://yarnpkg.com/) package manager -- [Electron](http://electron.atom.io/) `v1.3.13` cross platform desktop app framework +- [Electron](http://electron.atom.io/) `v1.7.9` cross platform desktop app framework - [Gulp](http://gulpjs.com/) build and automation system -Install the later ones via: +Install the latter ones via: $ curl https://install.meteor.com/ | sh $ curl -o- -L https://yarnpkg.com/install.sh | bash - $ yarn global add electron@1.3.13 + $ yarn global add electron@1.7.9 $ yarn global add gulp ### Initialisation -Now you're ready to initialize Mist for development: +Now you're ready to initialise Mist for development: $ git clone https://github.com/expanse-org/mist.git $ cd mist @@ -61,7 +69,7 @@ To update Mist in the future, run: ### Run Mist -For development we start the interface with a Meteor server for auto reload etc. +For development we start the interface with a Meteor server for autoreload etc. *Start the interface in a separate terminal window:* $ cd mist/interface && meteor --no-release-check @@ -69,9 +77,9 @@ For development we start the interface with a Meteor server for auto reload etc. In the original window you can then start Mist with: $ cd mist - $ electron . + $ yarn dev:electron -*NOTE: client-binaries (e.g. [geth](https://github.com/expanse-org/go-expanse)) specified in [clientBinaries.json](https://github.com/expanse-org/mist/blob/master/clientBinaries.json) will be checked during every startup and downloaded if out-of-date, binaries are stored in the [config folder](#config-folder)* +*NOTE: client-binaries (e.g. [geth](https://github.com/ethereum/go-ethereum)) specified in [clientBinaries.json](https://github.com/expanse-org/mist/blob/master/clientBinaries.json) will be checked during every startup and downloaded if out-of-date, binaries are stored in the [config folder](#config-folder)* *NOTE: use `--help` to display available options, e.g. `--loglevel debug` (or `trace`) for verbose output* @@ -88,7 +96,7 @@ Start the wallet app for development, *in a separate terminal window:* In the original window you can then start Mist using wallet mode: $ cd mist - $ electron . --mode wallet + $ yarn dev:electron --mode wallet ### Connecting to node via HTTP instead of IPC @@ -97,99 +105,106 @@ This is useful if you have a node running on another machine, though note that it's less secure than using the default IPC method. ```bash -$ electron . --rpc http://localhost:8545 +$ yarn dev:electron --rpc http://localhost:9656 ``` -### Passing options to Gexp +### Passing options to Geth -You can pass command-line options directly to Gexp by prefixing them with `--node-` in +You can pass command-line options directly to Geth by prefixing them with `--node-` in the command-line invocation: ```bash -$ electron . --mode mist --node-rpcport 19343 --node-networkid 2 +$ yarn dev:electron --mode mist --node-rpcport 19343 --node-networkid 2 ``` The `--rpc` Mist option is a special case. If you set this to an IPC socket file path then the `--ipcpath` option automatically gets set, i.e.: ```bash -$ electron . --rpc /my/gexp.ipc +$ yarn dev:electron --rpc /my/geth.ipc ``` ...is the same as doing... ```bash -$ electron . --rpc /my/gexp.ipc --node-ipcpath /my/gexp.ipc +$ yarn dev:electron --rpc /my/geth.ipc --node-ipcpath /my/geth.ipc ``` +### Creating a local private net + +See this guide to quickly set up a local private network on your computer: +https://gist.github.com/evertonfraga/9d65a9f3ea399ac138b3e40641accf23 + + ### Using Mist with a privatenet To run a private network you will need to set the IPC path, network id and data folder: ```bash -$ electron . --rpc ~/Library/Expanse/gexp.ipc --node-networkid 1234 --node-datadir ~/Library/Expanse/privatenet +$ yarn dev:electron --rpc ~/Library/Ethereum/geth.ipc --node-networkid 1234 --node-datadir ~/Library/Ethereum/privatenet ``` _NOTE: since `ipcpath` is also a Mist option you do not need to also include a `--node-ipcpath` option._ -You can also run `gexp` separately yourself with the same options prior to start -Mist normally. +You can also launch `geth` separately with the same options prior starting +Mist. ### Deployment +Our build system relies on [gulp](http://gulpjs.com/) and [electron-builder](https://github.com/electron-userland/electron-builder/). -To create a binaries you need to install [`electron-builder` dependencies](https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build#macos): +#### Dependencies + +[meteor-build-client](https://github.com/frozeman/meteor-build-client) bundles the [meteor](https://www.meteor.com/)-based interface. Install it via: - // tools for the windows binaries - $ brew install wine --without-x11 mono makensis - // tools for the Linux binaries - $ brew install gnu-tar libicns graphicsmagick xz - // general dependencies $ npm install -g meteor-build-client -To generate the binaries simply run: +Furthermore cross-platform builds require additional [`electron-builder` dependencies](https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build#linux). On macOS those are: - $ cd mist - $ gulp + // windows deps + $ brew install wine --without-x11 mono makensis - // Or to generate the wallet (using the https://github.com/expanse-org/meteor-dapp-wallet -> master) - $ gulp wallet + // linux deps + $ brew install gnu-tar libicns graphicsmagick xz -This will generate the binaries inside the `dist_mist/release` or `dist_wallet/release` folder. +#### Generate packages -#### Options +To generate the binaries for Mist run: -##### platform + $ gulp -Additional you can only build the windows, linux, mac or all binary by using the `platform` option: +To generate the Ethereum Wallet (this will pack the one Ðapp from https://github.com/ethereum/meteor-dapp-wallet): - $ gulp update-nodes --platform mac + $ gulp --wallet - // And - $ gulp mist --platform mac +The generated binaries will be under `dist_mist/release` or `dist_wallet/release`. - // Or - $ gulp mist --platform mac,win +#### Options -Options are: +##### platform + +To build binaries for specific platforms (default: all available) use the following flags: + + // on mac + $ gulp --win --linux --mac -- `mac` (Mac OSX) -- `win` (Windows) -- `linux` (Linux) -- `all` (default) + // on linux + $ gulp --win --linux + // on win + $ gulp --win ##### walletSource -With the `walletSource` you can specify the branch to use, default ist `master`: +With the `walletSource` you can specify the Wallet branch to use, default is `master`: - $ gulp mist --walletSource develop + $ gulp --wallet --walletSource develop Options are: @@ -198,29 +213,33 @@ Options are: - `develop` - `local` Will try to build the wallet from [mist/]../meteor-dapp-wallet/app -##### mist-checksums | wallet-checksums +*Note: applicable only when combined with `--wallet`* +#### skipTasks -Spits out the SHA256 checksums of distributables. +When building a binary, you can optionally skip some tasks — generally for testing purposes. -It expects installer/zip files to be in the generated folders e.g. `dist_mist/release` + $ gulp --mac --skipTasks=bundling-interface,release-dist - $ gulp mist-checksums +#### Checksums - 3f726fff186b85c600ea2459413d0bf5ada2dbc98877764efbefa545f96eb975 ./dist_mist/release/Mist-0.8.1-ia32.exe - ab4d26d5ebc66e9aba0fa610071266bacbb83faacbb7ed0dd2acb24386190bdb ./dist_mist/release/Mist-0.8.1.exe - 909b0fb4c7b09b731b2a442c457747e04ffdd9c03b6edc06079ae05a46200d13 ./dist_mist/release/Mist-0.8.1-ia32.deb - e114d6188963dfdae0489abf4e8923da58b39ff9cdbaad26e803af27c7ce55d1 ./dist_mist/release/Mist-0.8.1.deb - 930787dd2f5ed6931068bff9244bccc01f397f552c48ded0f08e515e276dd080 ./dist_mist/release/Mist-0.8.1.dmg +Spits out the MD5 checksums of distributables. -### Code signing for production +It expects installer/zip files to be in the generated folders e.g. `dist_mist/release` -**As of [#972](https://github.com/expanse-org/mist/pull/972) we've updated the build process and thus need to redo code-signing.** + $ gulp checksums [--wallet] ## Testing +Tests are ran using [Spectron](https://github.com/electron/spectron/), a webdriver.io runner built for Electron. + First make sure to build Mist with: -`gulp mist --platform [mac,linux]` or `gulp wallet --platform [mac,linux]`. -Then run `gulp test-mist` or `gulp test-wallet`, accordingly. + $ gulp + +Then run the tests: + + $ gulp test + +*Note: Integration tests are not yet supported on Windows.* diff --git a/Wallet-README.txt b/Wallet-README.txt old mode 100644 new mode 100755 index e1561da58..13993f370 --- a/Wallet-README.txt +++ b/Wallet-README.txt @@ -1,6 +1,6 @@ -Expanse Wallet -The expanse wallet, which allows you to create simple and multisig wallets to manage your exp. +Ethereum Wallet +The Ethereum wallet, which allows you to create simple and multisig wallets to manage your ether. The wallet contains its own node, but can also use an already running one, if the IPC path of that node is the standard path. (See below) @@ -8,12 +8,12 @@ The wallet contains its own node, but can also use an already running one, if th ## Running on a testnet When you start the wallet on a testnet (e.g. different `--datadir`) you need to make sure to set the `--ipcpath` back to the original one. -On OSX its `/Users//Library/Expanse/gexp.ipc` on linux `/home//.expanse/gexp.ipc` and on windows it uses a named pipe, which doesn't need to be renamed. -Example: +On OSX its `~/Library/Ethereum/geth.ipc` on linux `~/.ethereum/geth.ipc` and on windows it uses a named pipe, which doesn't need to be renamed. - $ gexp --datadir /my/chain/ --networkid 23 --ipcpath /Users//Library/Expanse/gexp.ipc +Example: + $ geth --datadir /my/chain/ --networkid 23 --ipcpath ~/Library/Ethereum/geth.ipc @@ -25,34 +25,35 @@ which will be used by the wallet contracts you create. The point of the original wallet is that wallet contract creation is cheaper, as not the full code has to be deployed for every wallet. -You need to make sure that the account displayed for the original wallet creation is unlocked and has at least 1 exp. +You need to make sure that the account displayed for the original wallet creation is unlocked and has at least 1 ether. ## Paths The paths which store your wallets database and node are different: -The expanse wallet (Mist) stores its data at: -- Mac: ~/Library/Application Support/Mist-Expanse -- Win: C:\users\app data\roaming\Mist-Expanse -- Linux: ~/.config/Mist-Expanse +The wallet (Mist) stores its data at: +- Mac: ~/Library/Application Support/Mist +- Windows: %APPDATA%\Roaming\Mist +- Linux: ~/.config/Mist The nodes data is stored at: -- Mac: ~/Library/Expanse -- Win: C:\users\app data\roaming\Expanse -- Linux: ~/.expanse +- Mac: ~/Library/Ethereum +- Windows: %APPDATA%\Roaming\Ethereum +- Linux: ~/.ethereum + ## Issues If you find issues or have suggestion, please report them at -https://github.com/expanse-org/meteor-dapp-wallet/issues +https://github.com/ethereum/meteor-dapp-wallet/issues ## Repository The wallet code can be found at -https://github.com/expanse-org/meteor-dapp-wallet +https://github.com/ethereum/meteor-dapp-wallet And the binary application code, which wraps the wallet app can be found at https://github.com/expanse-org/mist/tree/wallet diff --git a/clientBinaries.json b/clientBinaries.json old mode 100644 new mode 100755 diff --git a/codesign b/codesign deleted file mode 100755 index 6a6f382c4..000000000 --- a/codesign +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# Name of your app. -APP="Expanse-Wallet" -# The path of you app to sign. -APP_PATH="dist_wallet/Expanse-Wallet-macosx64-0-4-0/Expanse-Wallet.app" -# The path to the location you want to put the signed package. -RESULT_PATH="dist_wallet/$APP.pkg" -# The name of certificates you requested. -APP_KEY="3rd Party Mac Developer Application: Stiftung Expanse (3W6577R383)" -#"Mac Developer: Fabian Vogelsteller (YK2P3ZENMX)" -#"3rd Party Mac Developer Application: Stiftung Expanse (3W6577R383)" -INSTALLER_KEY="3rd Party Mac Developer Installer: Stiftung Expanse (3W6577R383)" - -cd $APP_PATH && find . -name "*.DS_Store" -type f -delete -cd ../../../ - -FRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks" - -codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A" -codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper.app/" -codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper EH.app/" -codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper NP.app/" -if [ -d "$FRAMEWORKS_PATH/Squirrel.framework/Versions/A" ]; then - # Signing a non-MAS build. - codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/Mantle.framework/Versions/A" - codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/ReactiveCocoa.framework/Versions/A" - codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/Squirrel.framework/Versions/A" -fi - -codesign --deep -fs "$APP_KEY" --entitlements nodes.plist "$FRAMEWORKS_PATH/node/exp/exp" -codesign --deep -fs "$APP_KEY" --entitlements nodes.plist "$FRAMEWORKS_PATH/node/gexp/gexp" - - -codesign -fs "$APP_KEY" --entitlements parent.plist "$APP_PATH" - -# codesign --force --verify --verbose --sign "$APP_KEY" "$APP_PATH" - -#productbuild --component "$APP_PATH" /Applications --sign "$INSTALLER_KEY" "$RESULT_PATH" - - -echo "################" -echo "### verifing app" -codesign --verify -vvvv "$RESULT_PATH" -spctl -a -vvvv "$RESULT_PATH" diff --git a/config.js b/config.js deleted file mode 100644 index 877e879bf..000000000 --- a/config.js +++ /dev/null @@ -1,11 +0,0 @@ - -var config = { - name: 'Mist-Expanse', -}; - -// change for wallet -if(global.mode === 'wallet') { - config.name = 'Expanse Wallet'; -} - -module.exports = config; \ No newline at end of file diff --git a/customProtocols.js b/customProtocols.js old mode 100644 new mode 100755 index c39d4fe9a..05fd52ef0 --- a/customProtocols.js +++ b/customProtocols.js @@ -22,6 +22,8 @@ protocol.registerHttpProtocol('mist', (request, callback) => { } }); + +// protocol.registerProtocol('eth', function(request) { // var url = request.url.substr(7) // return new protocol.RequestStringJob({data: 'Hello'}); // }); @@ -31,4 +33,5 @@ protocol.registerHttpProtocol('mist', (request, callback) => { // return new protocol.RequestStringJob({data: 'Hello'}); // }); + // protocol.registerStandardSchemes(['mist','eth', 'bzz']); //'eth', 'bzz' diff --git a/errorPages/400.html b/errorPages/400.html old mode 100644 new mode 100755 diff --git a/errorPages/404.html b/errorPages/404.html old mode 100644 new mode 100755 diff --git a/errorPages/500.html b/errorPages/500.html old mode 100644 new mode 100755 diff --git a/gulpTasks/building.js b/gulpTasks/building.js new file mode 100755 index 000000000..0a0c4a0ac --- /dev/null +++ b/gulpTasks/building.js @@ -0,0 +1,260 @@ +const _ = require('underscore'); +const builder = require('electron-builder'); +const del = require('del'); +const exec = require('child_process').exec; +const fs = require('fs'); +const gulp = require('gulp'); +const babel = require('gulp-babel'); +const options = require('../gulpfile.js').options; +const path = require('path'); +const Q = require('bluebird'); +const shell = require('shelljs'); +const version = require('../package.json').version; + + +const type = options.type; +const applicationName = (options.wallet) ? 'Expanse Wallet' : 'Mist'; + + +gulp.task('clean-dist', (cb) => { + return del([ + `./dist_${type}/**/*`, + './meteor-dapp-wallet' + ], cb); +}); + + +gulp.task('copy-app-source-files', () => { + return gulp.src([ + 'node_modules/**/*', + '!node_modules/electron/', + '!node_modules/electron/**/*', + './clientBinaries.json', + './tests/**/*.*', + '!./tests/wallet/*', + `./icons/${type}/*`, + './sounds/*', + './errorPages/*', + 'customProtocols.js' + ], { + base: './' + }) + .pipe(gulp.dest(`./dist_${type}/app`)); +}); + + +gulp.task('transpile-main', () => { + return gulp.src('./main.js') + .pipe(babel({ presets: ['es2016-node5'] })) + .pipe(gulp.dest(`./dist_${type}/app`)); +}); + + +gulp.task('transpile-modules', () => { + return gulp.src('./modules/**') + .pipe(babel({ presets: ['es2016-node5'] })) + .pipe(gulp.dest(`./dist_${type}/app/modules`)); +}); + + +gulp.task('copy-build-folder-files', () => { + return gulp.src([ + `./icons/${type}/*`, + './interface/public/images/dmg-background.jpg' + ]) + .pipe(gulp.dest(`./dist_${type}/build`)); +}); + + +gulp.task('switch-production', (cb) => { + fs.writeFile(`./dist_${type}/app/config.json`, JSON.stringify({ + production: true, + mode: type + }), cb); +}); + + +gulp.task('bundling-interface', (cb) => { + const bundle = (additionalCommands) => { + exec(`cd interface \ + && meteor-build-client ${path.join('..', `dist_${type}`, 'app', 'interface')} -p "" \ + ${additionalCommands}`, + (err, stdout) => { + console.log(stdout); + cb(err); + }); + }; + + if (type === 'wallet') { + if (options.walletSource === 'local') { + console.log('Use local wallet at ../meteor-dapp-wallet/app'); + bundle(`&& cd ../../meteor-dapp-wallet/app \ + && meteor-build-client ../../mist/dist_${type}/app/interface/wallet -p ""`); + } else { + console.log(`Pulling https://github.com/expanse-org/meteor-dapp-wallet/tree/${options.walletSource} "${options.walletSource}" branch...`); + bundle(`&& cd ../dist_${type} \ + && git clone --depth 1 https://github.com/expanse-org/meteor-dapp-wallet.git \ + && cd meteor-dapp-wallet/app \ + && meteor-build-client ../../app/interface/wallet -p "" \ + && cd ../../ \ + && rm -rf meteor-dapp-wallet`); + } + } else { + bundle(); + } +}); + + +gulp.task('copy-i18n', () => { + return gulp.src([ + './interface/i18n/*.*', + './interface/project-tap.i18n' + ], { + base: './' + }) + .pipe(gulp.dest(`./dist_${type}/app`)); +}); + + +gulp.task('build-dist', (cb) => { + const appPackageJson = _.extend({}, require('../package.json'), { // eslint-disable-line global-require + name: applicationName.replace(/\s/, ''), + productName: applicationName, + description: applicationName, + homepage: 'https://github.com/expanse-org/mist', + build: { + appId: `com.expanse.${type}`, + asar: true, + directories: { + buildResources: '../build', + output: '../dist' + }, + linux: { + category: 'WebBrowser', + target: [ + 'zip', + 'deb' + ] + }, + win: { + target: [ + 'zip' + ] + }, + mac: { + category: 'public.app-category.productivity', + }, + dmg: { + background: '../build/dmg-background.jpg', + iconSize: 128, + contents: [ + { + x: 441, + y: 448, + type: 'link', + path: '/Applications' + }, + { + x: 441, + y: 142, + type: 'file' + } + ] + } + } + }); + + fs.writeFileSync( + path.join(__dirname, `../dist_${type}`, 'app', 'package.json'), + JSON.stringify(appPackageJson, null, 2), 'utf-8' + ); + + const targets = []; + if (options.mac) targets.push(builder.Platform.MAC); + if (options.win) targets.push(builder.Platform.WINDOWS); + if (options.linux) targets.push(builder.Platform.LINUX); + + builder.build({ + targets: builder.createTargets(targets, null, 'all'), + projectDir: path.join(__dirname, `../dist_${type}`, 'app'), + publish: 'never', + config: { + afterPack(params) { + return Q.try(() => { + shell.cp( + [ + path.join(__dirname, '..', 'LICENSE'), + path.join(__dirname, '..', 'README.md'), + path.join(__dirname, '..', 'AUTHORS') + ], + params.appOutDir + ); + }); + } + } + }) + .catch((err) => { + throw new Error(err); + }) + .finally(() => { + cb(); + }); +}); + + +gulp.task('release-dist', (done) => { + const distPath = path.join(__dirname, `../dist_${type}`, 'dist'); + const releasePath = path.join(__dirname, `../dist_${type}`, 'release'); + + shell.rm('-rf', releasePath); + shell.mkdir('-p', releasePath); + + const appNameHypen = applicationName.replace(/\s/, '-'); + const appNameNoSpace = applicationName.replace(/\s/, ''); + const versionDashed = version.replace(/\./g, '-'); + + const cp = (inputPath, outputPath) => { + console.info(`Copying from ${path.join(distPath, inputPath)} to ${path.join(releasePath, outputPath)}`); + shell.cp(path.join(distPath, inputPath), path.join(releasePath, outputPath)); + }; + + _.each(options.activePlatforms, (platform) => { + switch (platform) { // eslint-disable-line default-case + case 'win': + cp( + `${applicationName}-${version}-ia32-win.zip`, `${appNameHypen}-win32-${versionDashed}.zip`); + cp( + `${applicationName}-${version}-win.zip`, `${appNameHypen}-win64-${versionDashed}.zip`); + break; + case 'mac': + cp( + path.join('mac', `${applicationName}-${version}.dmg`), + `${appNameHypen}-macosx-${versionDashed}.dmg`); + break; + case 'linux': + cp( + `${appNameNoSpace}_${version}_i386.deb`, `${appNameHypen}-linux32-${versionDashed}.deb`); + cp( + `${appNameNoSpace}-${version}-ia32.zip`, `${appNameHypen}-linux32-${versionDashed}.zip`); + cp( + `${appNameNoSpace}_${version}_amd64.deb`, `${appNameHypen}-linux64-${versionDashed}.deb`); + cp( + `${appNameNoSpace}-${version}.zip`, `${appNameHypen}-linux64-${versionDashed}.zip`); + break; + } + }); + + done(); +}); + + +gulp.task('build-nsis', (cb) => { + const typeString = `-DTYPE=${type}`; + const appNameString = `-DAPPNAME=${applicationName.replace(/\s/, '-')}`; + const versionParts = version.split('.'); + const versionString = `-DVERSIONMAJOR=${versionParts[0]} -DVERSIONMINOR=${versionParts[1]} -DVERSIONBUILD=${versionParts[2]}`; + + const cmdString = `makensis ${versionString} ${typeString} ${appNameString} scripts/windows-installer.nsi`; + + exec(cmdString, cb); +}); diff --git a/gulpTasks/maintenance.js b/gulpTasks/maintenance.js new file mode 100755 index 000000000..a229e7cd1 --- /dev/null +++ b/gulpTasks/maintenance.js @@ -0,0 +1,172 @@ +/* eslint-disable +global-require +*/ + +const _ = require('underscore'); +const cmp = require('semver-compare'); +const compare = require('json-structure-diff').compareJSONObjects; +const fs = require('fs'); +const got = require('got'); +const gulp = require('gulp'); +const parseJson = require('xml2js').parseString; +const clientBinaries = require('../clientBinaries.json'); + + +gulp.task('update-nodes', (cb) => { + const clientBinariesGeth = clientBinaries.clients.Gexp; + const localGethVersion = clientBinariesGeth.version; + const newJson = clientBinaries; + const geth = newJson.clients.Gexp; + + // Query latest geth version + got('https://api.github.com/repos/expanse-org/go-expanse/releases/latest', { json: true }) + .then((response) => { + return response.body.tag_name; + }) + // Return tag name (e.g. 'v1.5.0') + .then((tagName) => { + const latestGethVersion = tagName.match(/\d+\.\d+\.\d+/)[0]; + + // Compare to current geth version in clientBinaries.json + if (cmp(latestGethVersion, localGethVersion)) { + geth.version = latestGethVersion; + + // Query commit hash (first 8 characters) + got(`https://api.github.com/repos/expanse-org/go-expanse/commits/${tagName}`, { json: true }) + .then((response) => { + return String(response.body.sha).substr(0, 8); + }) + .then((hash) => { + let blobs; // azure blobs + + // Query Azure assets for md5 hashes + got('https://gethstore.blob.core.windows.net/builds?restype=container&comp=list', { xml: true }) + .then((response) => { + parseJson(response.body, (err, data) => { // eslint-disable-line + if (err) return cb(err); + + blobs = data.EnumerationResults.Blobs[0].Blob; + }); + + // For each platform/arch in clientBinaries.json + _.keys(geth.platforms).forEach((platform) => { + _.keys(geth.platforms[platform]).forEach((arch) => { + // Update URL + let url = geth.platforms[platform][arch].download.url; + url = url.replace(/\d+\.\d+\.\d+-[a-z0-9]{8}/, `${latestGethVersion}-${hash}`); + geth.platforms[platform][arch].download.url = url; + + // Update bin name (path in archive) + let bin = geth.platforms[platform][arch].download.bin; + bin = bin.replace(/\d+\.\d+\.\d+-[a-z0-9]{8}/, `${latestGethVersion}-${hash}`); + geth.platforms[platform][arch].download.bin = bin; + + // Update expected sanity-command version output + geth.platforms[platform][arch].commands.sanity.output[1] = + String(latestGethVersion); + + // Update md5 checksum + blobs.forEach((blob) => { + if (String(blob.Name) === _.last(geth.platforms[platform][arch].download.url.split('/'))) { + const sum = new Buffer(blob.Properties[0]['Content-MD5'][0], 'base64'); + + geth.platforms[platform][arch].download.md5 = sum.toString('hex'); + } + }); + }); + }); + }) + // Update clientBinares.json + .then(() => { + fs.writeFile('./clientBinaries.json', JSON.stringify(newJson, null, 4)); + cb(); + }); + }); + } else return cb(); // Already up-to-date + }) + .catch(cb); +}); + + +gulp.task('download-signatures', (cb) => { + got('https://www.4byte.directory/api/v1/signatures/?page_size=20000&ordering=created_at', { + json: true + }) + .then((res) => { + if (res.statusCode !== 200) { + throw new Error(res.statusText); + } + + const signatures = {}; + + _.each(res.body.results, (e) => { + signatures[e.hex_signature] = signatures[e.hex_signature] || []; + signatures[e.hex_signature].push(e.text_signature); + }); + + fs.writeFileSync('interface/client/lib/signatures.js', `window.SIGNATURES = ${JSON.stringify(signatures, null, 4)};`); + + cb(); + }) + .catch(cb); +}); + + +gulp.task('update-i18n', (cb) => { + /** + * This script will update Mist's i18n files + * - adds missing english strings to all translations + * - removes obsolet keys from translations + */ + + const mistEN = require('../interface/i18n/mist.en.i18n.json'); // eslint-disable-line no-unused-vars + const appEN = require('../interface/i18n/app.en.i18n.json'); // eslint-disable-line no-unused-vars + + try { + ['mist', 'app'].forEach((mode) => { + const en = { + parent: 'en', + content: eval(`${mode}EN`) // eslint-disable-line no-eval + }; + + const files = fs.readdirSync('./interface/i18n'); + + files.forEach((file) => { + if (file.indexOf(`${mode}`) !== -1 && file.indexOf(`${mode}.en`) === -1) { + const langJson = require(`../interface/i18n/${file}`); // eslint-disable-line import/no-dynamic-require + const lang = { + parent: 'lang', + content: langJson + }; + let error; + + // remove unnecessary keys + error = compare([lang, en]); + if (error) { + error.forEach((diff) => { + if (diff.typeOfComparedParent === 'undefined') { + eval(`delete lang.content.${diff.parent.slice(diff.parent.indexOf('.') + 1)}`); // eslint-disable-line no-eval + } + }); + } + + // add missing keys + error = compare([en, lang]); + if (error) { + error.forEach((diff) => { + if (diff.typeOfComparedParent !== diff.typeOfParent && diff.parent !== 'en.mist.applicationMenu.view.languages' && diff.parent !== 'en.mist.applicationMenu.view.langCodes') { + eval(`lang.content.${diff.comparedParent.slice(diff.comparedParent.indexOf('.') + 1)} = en.content.${diff.parent.slice(diff.parent.indexOf('.') + 1)}`); // eslint-disable-line no-eval + } + }); + } + + fs.writeFileSync(`./interface/i18n/${file}`, JSON.stringify(lang.content, null, 4)); + } + }); + }); + } catch (e) { + console.log(e); + } finally { + cb(); // eslint-disable-line callback-return + } +}); diff --git a/gulpTasks/publishing.js b/gulpTasks/publishing.js new file mode 100755 index 000000000..efea6e547 --- /dev/null +++ b/gulpTasks/publishing.js @@ -0,0 +1,114 @@ +const _ = require('underscore'); +const Q = require('bluebird'); +const fs = require('fs'); +const githubUpload = Q.promisify(require('gh-release-assets')); +const got = require('got'); +const gulp = require('gulp'); +const options = require('../gulpfile.js').options; +const path = require('path'); +const shell = require('shelljs'); +const version = require('../package.json').version; + + +const checksums = []; +const type = options.type; + + +gulp.task('checksums', (cb) => { + const releasePath = `./dist_${type}/release`; + const files = fs.readdirSync(releasePath); + + let command; + let argument = ''; + + if (process.platform === 'win32') { + command = 'certUtil -hashfile'; + argument = 'SHA256'; + } else { + command = 'shasum -a 256'; + } + + files.forEach((file) => { + const sum = shell.exec(`${command} "${file}" ${argument}`, { + cwd: releasePath + }); + + if (sum.code !== 0) { + Error(`Error executing shasum: ${sum.stderr}`); + } + + // store checksums for 'upload-binaries' task + checksums.push(sum.stdout); + }); + + cb(); +}); + + +gulp.task('upload-binaries', (cb) => { + // if CI detected only upload if on master branch + if (process.env.CI && process.env.TRAVIS_BRANCH !== 'master') return; + + // personal access token (public_repo) must be set using travis' ENVs + const GITHUB_TOKEN = process.env.GITHUB_TOKEN; + + console.info('Checking Github releases...'); + + // query github releases + got(`https://api.github.com/repos/expanse-org/mist/releases?access_token=${GITHUB_TOKEN}`, { json: true }) + // filter draft with current version's tag + .then((res) => { + const draft = res.body[_.indexOf(_.pluck(res.body, 'tag_name'), `v${version}`)]; + + if (draft === undefined) throw new Error(`Couldn't find github release draft for v${version} release tag`); + + return draft; + }) + // upload binaries from release folders if in draft mode + .then((draft) => { // eslint-disable-line consistent-return + if (draft.draft === true) { + const dir = `dist_${type}/release`; + const files = fs.readdirSync(dir); + const filePaths = _.map(files, (file) => { return path.join(dir, file); }); + console.log('Upload files: ', filePaths); + // check if draft already contains target binaries + // note: github replaces spaces in filenames with dots + const existingAssets = _.intersection(files.map((file) => { return file.replace(/\s/g, '.'); }), _.pluck(draft.assets, 'name')); + if (!_.isEmpty(existingAssets)) throw new Error(`Github release draft already contains assets (${existingAssets}); will not upload, please remove and trigger rebuild`); + + return githubUpload({ + url: `https://uploads.github.com/repos/expanse-org/mist/releases/${draft.id}/assets{?name}`, + token: [GITHUB_TOKEN], + assets: filePaths + }).then((res) => { + console.log(`Successfully uploaded ${res} to v${version} release draft.`); + }) + // append checksums to draft text + .then(() => { + console.info('Appending checksums to release notes...', checksums); + if (draft.body && checksums) { + const checksumRows = checksums.map((e) => { + const line = e.replace('\n', '').split(' '); + return `${line[1]} | \`${line[0]}\``; + }).join('\n'); + got.patch(`https://api.github.com/repos/expanse-org/mist/releases/${draft.id}?access_token=${GITHUB_TOKEN}`, { + body: JSON.stringify({ + tag_name: `v${version}`, + // String manipulation to create a checksums table + body: `${draft.body}\n\nFile | Checksum (SHA256)\n-- | -- \n${checksumRows}` + }) + }); + } + }) + .catch((err) => { + console.log(err); + }); + } + }) + .catch((err) => { + console.log(err); + }) + .then(() => { + cb(); + }); +}); diff --git a/gulpTasks/testing.js b/gulpTasks/testing.js new file mode 100755 index 000000000..39efa8c99 --- /dev/null +++ b/gulpTasks/testing.js @@ -0,0 +1,14 @@ +const gulp = require('gulp'); +const mocha = require('gulp-spawn-mocha'); +const options = require('../gulpfile.js').options; + + +gulp.task('test', () => { + return gulp.src([ + `./tests/${options.type}/${options.test}.test.js` + ]).pipe(mocha({ + timeout: 60000, + ui: 'exports', + reporter: 'spec' + })); +}); diff --git a/gulpfile.js b/gulpfile.js old mode 100644 new mode 100755 index a4a5255f7..2a3f0b0fa --- a/gulpfile.js +++ b/gulpfile.js @@ -1,571 +1,99 @@ /* eslint-disable import/no-extraneous-dependencies, -no-console, strict, -prefer-spread, -arrow-body-style, -import/no-unresolved */ +prefer-spread +*/ 'use strict'; const _ = require('underscore'); -const path = require('path'); const gulp = require('gulp'); -const exec = require('child_process').exec; -const del = require('del'); -const runSeq = require('run-sequence'); -const merge = require('merge-stream'); -const flatten = require('gulp-flatten'); -const shell = require('shelljs'); -const mocha = require('gulp-spawn-mocha'); const minimist = require('minimist'); -const fs = require('fs'); -const got = require('got'); -const Q = require('bluebird'); -const githubUpload = Q.promisify(require('gh-release-assets')); -const cmp = require('semver-compare'); -const parseJson = require('xml2js').parseString; +const runSeq = require('run-sequence'); -const options = minimist(process.argv.slice(2), { - string: ['platform', 'walletSource', 'test'], +// available crossplatform builds +let platforms; +if (process.platform === 'darwin') { + platforms = ['mac', 'linux', 'win']; +} else if (process.platform === 'win32') { + platforms = ['win']; +} else { + platforms = ['linux', 'win']; +} + +// parse commandline arguments +const args = process.argv.slice(2); +const options = minimist(args, { + string: ['walletSource', 'test', 'skipTasks'], + boolean: _.flatten(['wallet', platforms]), default: { - platform: 'all', + wallet: false, walletSource: 'master', test: 'basic', + skipTasks: '', }, }); -if (options.platform.indexOf(',') !== -1) { - options.platform = options.platform.replace(/ +/g, '').split(','); -} else { - options.platform = options.platform.split(' '); -} - -// CONFIG - -let type = 'mist'; -let applicationName = 'Expanse Wallet'; -const electronVersion = require('electron/package.json').version; -const packJson = require('./package.json'); - -const version = packJson.version; - -const osArchList = [ - 'mac-x64', - 'linux-x64', - 'linux-ia32', - 'win-x64', - 'win-ia32', -]; +// echo version info and usage hints +console.log('Mist version:', require('./package.json').version); +console.log('Electron version:', require('electron/package.json').version); - -console.log('You can select a platform like: --platform '); -console.log('Mist version:', version); -console.log('Electron version:', electronVersion); - -if (_.contains(options.platform, 'all')) { - options.platform = ['win', 'linux', 'mac']; +if (_.isEmpty(_.intersection(args, ['--wallet']))) { + console.log('Many gulp tasks can be run in wallet mode using: --wallet'); } -console.log('Selected platform:', options.platform); - - -function platformIsActive(osArch) { - for (const p of options.platform) { - if (osArch.indexOf(p) >= 0) { - return true; - } - } - return false; +const platformFlags = platforms.map((platform) => { return `--${platform}`; }); +if (_.isEmpty(_.intersection(args, platformFlags))) { + console.log(`To specify a platform (default: all) use: ${platformFlags.join(' ')}`); + _.each(platforms, (platform) => { options[platform] = true; }); // activate all platform flags } -// / -------------------------------------------------------------- - -// TASKS -gulp.task('set-variables-mist', () => { - type = 'mist'; - applicationName = 'Mist-Expanse'; -}); -gulp.task('set-variables-wallet', () => { - type = 'wallet'; - applicationName = 'Expanse Wallet'; -}); - - -gulp.task('clean:dist', (cb) => { - return del([ - `./dist_${type}/**/*`, - './meteor-dapp-wallet', - ], cb); -}); - - -// BUNLDE PROCESS - -gulp.task('copy-app-source-files', ['clean:dist'], () => { - return gulp.src([ - './tests/**/*.*', - '!./tests/wallet/*.*', - `./icons/${type}/*`, - './modules/**/**/**/*', - './sounds/*', - './*.js', - './clientBinaries.json', - '!gulpfile.js', - ], { - base: './' - }) - .pipe(gulp.dest(`./dist_${type}/app`)); -}); - - -gulp.task('copy-app-folder-files', ['copy-app-source-files'], (done) => { - const ret = shell.exec( - `cp -a ${__dirname}/node_modules ${__dirname}/dist_${type}/app/node_modules` - ); - - if (ret.code !== 0) { - console.error('Error symlinking node_modules'); - - return done(ret.stderr); - } - - return done(); -}); - - -gulp.task('copy-build-folder-files', ['clean:dist', 'copy-app-folder-files'], () => { - return gulp.src([ - `./icons/${type}/*`, - './interface/public/images/dmg-background.jpg', - ], { - base: './' - }) - .pipe(flatten()) - .pipe(gulp.dest(`./dist_${type}/build`)); -}); - - -gulp.task('copy-node-folder-files', ['clean:dist'], () => { - const streams = []; - - _.each(osArchList, (osArch) => { - if (platformIsActive(osArch)) { - // copy exp node binaries - streams.push(gulp.src([ - `./nodes/exp/${osArch}/*`, - ]) - .pipe(gulp.dest(`./dist_${type}/app/nodes/exp/${osArch}`))); - } - }); - - return merge.apply(null, streams); -}); - - -gulp.task('copy-files', [ - 'clean:dist', - 'copy-app-folder-files', - 'copy-build-folder-files', - 'copy-node-folder-files', -]); - - -gulp.task('switch-production', ['copy-files'], (cb) => { - fs.writeFileSync(`${__dirname}/dist_${type}/app/config.json`, JSON.stringify({ - production: true, - mode: type, - })); - - cb(); -}); - - -gulp.task('bundling-interface', ['switch-production'], (cb) => { - if (type === 'mist') { - exec(`cd interface && meteor-build-client ../dist_${type}/app/interface -p ""`, (err, stdout) => { - console.log(stdout); - - cb(err); - }); - } - - if (type === 'wallet') { - if (options.walletSource === 'local') { - console.log('Use local wallet at ../meteor-dapp-wallet/app'); - exec(`cd interface/ && meteor-build-client ../dist_${type}/app/interface/ -p "" &&` + - `cd ../../meteor-dapp-wallet/app && meteor-build-client ../../mist/dist_${type}/app/interface/wallet -p ""`, (err, stdout) => { - console.log(stdout); - - cb(err); - }); - } else { - console.log(`Pulling https://github.com/expanse-org/meteor-dapp-wallet/tree/${options.walletSource} "${options.walletSource}" branch...`); - exec(`cd interface/ && meteor-build-client ../dist_${type}/app/interface/ -p "" &&` + - `cd ../dist_${type}/ && git clone --depth 1 https://github.com/expanse-org/meteor-dapp-wallet.git && cd meteor-dapp-wallet/app && meteor-build-client ../../app/interface/wallet -p "" && cd ../../ && rm -rf meteor-dapp-wallet`, (err, stdout) => { - console.log(stdout); - - cb(err); - }); - } - } -}); - - -// needs to be copied, so the backend can use it -gulp.task('copy-i18n', ['bundling-interface'], () => { - return gulp.src([ - './interface/i18n/*.*', - './interface/project-tap.i18n', - ], { - base: './' - }) - .pipe(gulp.dest(`./dist_${type}/app`)); -}); - -gulp.task('build-dist', ['copy-i18n'], (cb) => { - console.log('Bundling platforms: ', options.platform); - - const appPackageJson = _.extend({}, packJson, { - name: applicationName.replace(/\s/, ''), - productName: applicationName, - description: applicationName, - homepage: 'https://github.com/expanse-org/mist', - build: { - appId: `com.ethereum.${type}`, - category: 'public.app-category.productivity', - asar: true, - files: [ - '**/*', - '!nodes', - 'build-dist.js', - ], - extraFiles: [ - - 'nodes/eth/${os}-${arch}', // eslint-disable-line no-template-curly-in-string - ], - linux: { - target: [ - 'zip', - 'deb', - ], - }, - win: { - target: [ - 'zip', - //'squirrel', - ], - }, - dmg: { - background: '../build/dmg-background.jpg', - iconSize: 128, - contents: [{ - x: 441, - y: 448, - type: 'link', - path: '/Applications', - }, - { - x: 441, - y: 142, - type: 'file', - } - ], - }, - }, - directories: { - buildResources: '../build', - app: '.', - output: '../dist', - }, - }); - - fs.writeFileSync( - path.join(__dirname, `dist_${type}`, 'app', 'package.json'), - JSON.stringify(appPackageJson, null, 2), - 'utf-8' - ); - - // Copy build script - shell.cp( - path.join(__dirname, 'scripts', 'build-dist.js'), - path.join(__dirname, `dist_${type}`, 'app') - ); - - // run build script - const oses = `--${options.platform.join(' --')}`; - - const ret = shell.exec(`./build-dist.js --type ${type} ${oses}`, { - cwd: path.join(__dirname, `dist_${type}`, 'app'), - }); - - if (ret.code !== 0) { - console.error(ret.stdout); - console.error(ret.stderr); - - return cb(new Error('Error building distributables')); - } - - console.log(ret.stdout); - - return cb(); -}); - -gulp.task('release-dist', ['build-dist'], (done) => { - const distPath = path.join(__dirname, `dist_${type}`, 'dist'); - const releasePath = path.join(__dirname, `dist_${type}`, 'release'); - - shell.rm('-rf', releasePath); - shell.mkdir('-p', releasePath); - - const appNameHypen = applicationName.replace(/\s/, '-'); - const appNameNoSpace = applicationName.replace(/\s/, ''); - const versionDashed = version.replace(/\./g, '-'); - - const cp = (inputPath, outputPath) => { - shell.cp(path.join(distPath, inputPath), path.join(releasePath, outputPath)); - }; - - _.each(osArchList, (osArch) => { - if (platformIsActive(osArch)) { - switch (osArch) { // eslint-disable-line default-case - case 'win-ia32': - cp(`${applicationName}-${version}-ia32-win.zip`, `${appNameHypen}-win32-${versionDashed}.zip`); - break; - case 'win-x64': - cp(`${applicationName}-${version}-win.zip`, `${appNameHypen}-win64-${versionDashed}.zip`); - break; - case 'mac-x64': - cp(path.join('mac', `${applicationName}-${version}.dmg`), `${appNameHypen}-macosx-${versionDashed}.dmg`); - break; - case 'linux-ia32': - cp(`${appNameNoSpace}_${version}_i386.deb`, `${appNameHypen}-linux32-${versionDashed}.deb`); - cp(`${appNameNoSpace}-${version}-ia32.zip`, `${appNameHypen}-linux32-${versionDashed}.zip`); - break; - case 'linux-x64': - cp(`${appNameNoSpace}_${version}_amd64.deb`, `${appNameHypen}-linux64-${versionDashed}.deb`); - cp(`${appNameNoSpace}-${version}.zip`, `${appNameHypen}-linux64-${versionDashed}.zip`); - break; - } - } - - if (platformIsActive('win') && type === 'mist') { - runSeq('build-nsis'); - } - }); - - done(); -}); - -gulp.task('upload-binaries', () => { - // token must be set using travis' ENVs - const GITHUB_TOKEN = process.env.GITHUB_TOKEN; - - // query github releases - return got(`https://api.github.com/repos/expanse-org/mist/releases?access_token=${GITHUB_TOKEN}`, { - json: true, - }) - // filter draft with current version's tag - .then((res) => { - const draft = res.body[_.indexOf(_.pluck(res.body, 'tag_name'), `v${version}`)]; - - if (draft === undefined) throw new Error(`Couldn't find github release draft for v${version} release tag`); - - return draft; - }) - // upload binaries from release folders - .then((draft) => { - const dir = `dist_${type}/release`; - const files = fs.readdirSync(dir); - const filePaths = _.map(files, (file) => { return path.join(dir, file); }); - - // check if draft already contains target binaries - const existingAssets = _.intersection(files, _.pluck(draft.assets, 'name')); - if (!_.isEmpty(existingAssets)) throw new Error(`Github release draft already contains assets (${existingAssets}); will not upload, please remove and trigger rebuild`); - - return githubUpload({ - url: `https://uploads.github.com/repos/expanse-org/mist/releases/${draft.id}/assets{?name}`, - token: [GITHUB_TOKEN], - assets: filePaths, - }).then((res) => { - console.log(`Successfully uploaded ${res} to v${version} release draft.`); - }); - }) - .catch((err) => { - console.log(err); - }); -}); - -gulp.task('get-release-checksums', (done) => { - const releasePath = `./dist_${type}/release`; - - const files = fs.readdirSync(releasePath); - - for (const file of files) { - const sha = shell.exec(`shasum -a 256 "${file}"`, { - cwd: releasePath - }); - - if (sha.code !== 0) { - return done(new Error(`Error executing shasum: ${sha.stderr}`)); - } - } - - return done(); -}); +// prepare global variables (shared with other gulp task files) +options.type = (options.wallet) ? 'wallet' : 'mist'; +options.platforms = platforms; +options.activePlatforms = _.keys(_.pick(_.pick(options, platforms), (key) => { return key; })); -gulp.task('update-nodes', (cb) => { - const clientBinaries = require('./clientBinaries.json'); // eslint-disable-line global-require - const clientBinariesGeth = clientBinaries.clients.Geth; - const localGethVersion = clientBinariesGeth.version; - const newJson = clientBinaries; - const geth = newJson.clients.Geth; +exports.options = options; - // Query latest geth version - got('https://api.github.com/repos/ethereum/go-ethereum/releases/latest', { json: true }) - .then((response) => { - return response.body.tag_name; - }) - // Return tag name (e.g. 'v1.5.0') - .then((tagName) => { - const latestGethVersion = tagName.match(/\d+\.\d+\.\d+/)[0]; - // Compare to current geth version in clientBinaries.json - if (cmp(latestGethVersion, localGethVersion)) { - geth.version = latestGethVersion; +// import gulp tasks +require('require-dir')('./gulpTasks'); - // Query commit hash (first 8 characters) - got(`https://api.github.com/repos/ethereum/go-ethereum/commits/${tagName}`, { json: true }) - .then((response) => { - return String(response.body.sha).substr(0, 8); - }) - .then((hash) => { - let blobs; // geth blobs - // Query Azure assets for md5 hashes - got('https://gethstore.blob.core.windows.net/builds?restype=container&comp=list', { - xml: true, - }) - .then((response) => { - parseJson(response.body, (err, data) => { - blobs = data.EnumerationResults.Blobs[0].Blob; - }); +// tasks +gulp.task('default', ['buildQueue']); - // For each platform/arch in clientBinaries.json - _.keys(geth.platforms).forEach((platform) => { - _.keys(geth.platforms[platform]).forEach((arch) => { - // Update URL - let url = geth.platforms[platform][arch].download.url; - url = url.replace(/\d+\.\d+\.\d+-[a-z0-9]{8}/, `${latestGethVersion}-${hash}`); - geth.platforms[platform][arch].download.url = url; - // Update bin name (path in archive) - let bin = geth.platforms[platform][arch].download.bin; - bin = bin.replace(/\d+\.\d+\.\d+-[a-z0-9]{8}/, `${latestGethVersion}-${hash}`); - geth.platforms[platform][arch].download.bin = bin; +gulp.task('buildQueue', (cb) => { + const skipTasks = options.skipTasks.split(','); + let tasks = [ + 'clean-dist', + 'copy-app-source-files', + 'transpile-main', + 'transpile-modules', + 'copy-build-folder-files', + 'switch-production', + 'bundling-interface', + 'copy-i18n', + 'build-dist', + 'release-dist', + ]; - // Update expected sanity-command version output - geth.platforms[platform][arch].commands.sanity.output[1] = - String(latestGethVersion); + if (options.win) tasks.push('build-nsis'); - // Update md5 checksum - blobs.forEach((blob) => { - if (String(blob.Name) === _.last(geth.platforms[platform][arch].download.url.split('/'))) { - const sum = new Buffer(blob.Properties[0]['Content-MD5'][0], 'base64'); + tasks = _.difference(tasks, skipTasks); - geth.platforms[platform][arch].download.md5 = sum.toString('hex'); - } - }); - }); - }); - }) - // Update clientBinares.json - .then(() => { - fs.writeFile('./clientBinaries.json', JSON.stringify(newJson, null, 4)); - cb(); - }); - }); - } else cb(); // Already up-to-date - }) - .catch(cb); + runSeq.apply(null, _.flatten([tasks, cb])); }); -gulp.task('download-signatures', (cb) => { - got('https://www.4byte.directory/api/v1/signatures/?page_size=20000&ordering=created_at', { - json: true, - }) - .then((res) => { - if (res.statusCode !== 200) { - throw new Error(res.statusText); - } - const signatures = {}; +gulp.task('uploadQueue', (cb) => { + const tasks = []; - _.each(res.body.results, (e) => { - signatures[e.hex_signature] = signatures[e.hex_signature] || []; - signatures[e.hex_signature].push(e.text_signature); - }); - - fs.writeFileSync('interface/client/lib/signatures.js', `window.SIGNATURES = ${JSON.stringify(signatures, null, 4)};`); - - cb(); - }) - .catch(cb); -}); - -gulp.task('taskQueue', ['release-dist'], (cb) => { - if (process.env.TRAVIS_BRANCH === 'master') { - runSeq('upload-binaries', cb); - } -}); - -// MIST task -gulp.task('mist', (cb) => { - runSeq('set-variables-mist', 'taskQueue', cb); -}); + tasks.push('checksums'); + tasks.push('upload-binaries'); -// WALLET task -gulp.task('wallet', (cb) => { - runSeq('set-variables-wallet', 'taskQueue', cb); + runSeq.apply(null, _.flatten([tasks, cb])); }); - -// WALLET task -gulp.task('mist-checksums', (cb) => { - runSeq('set-variables-mist', 'get-release-checksums', cb); -}); -gulp.task('wallet-checksums', (cb) => { - runSeq('set-variables-wallet', 'get-release-checksums', cb); -}); - -gulp.task('build-nsis', (cb) => { - const versionParts = version.split('.'); - const versionString = `-DVERSIONMAJOR=${versionParts[0]} -DVERSIONMINOR=${versionParts[1]} -DVERSIONBUILD=${versionParts[2]}`; - const cmdString = `makensis -V3 ${versionString} scripts/windows-installer.nsi`; - console.log(cmdString); - shell.exec(cmdString, cb); -}); - - -const testApp = (app) => { - // gulp test-mist [--test TESTFILEPREFIX] - return gulp.src([ - `./tests/${app}/${options.test}.test.js`, - ]).pipe(mocha({ - timeout: 60000, - ui: 'exports', - reporter: 'spec', - })); -}; - -gulp.task('test-wallet', () => { - testApp('wallet'); -}); - -gulp.task('test-mist', () => { - testApp('mist'); -}); - - -gulp.task('default', ['mist']); diff --git a/interface/.eslintrc.yml b/interface/.eslintrc.yml old mode 100644 new mode 100755 diff --git a/interface/.meteor/.finished-upgraders b/interface/.meteor/.finished-upgraders old mode 100644 new mode 100755 diff --git a/interface/.meteor/.gitignore b/interface/.meteor/.gitignore old mode 100644 new mode 100755 diff --git a/interface/.meteor/.id b/interface/.meteor/.id old mode 100644 new mode 100755 diff --git a/interface/.meteor/packages b/interface/.meteor/packages index 6557550ca..a1537a79f 100644 --- a/interface/.meteor/packages +++ b/interface/.meteor/packages @@ -19,7 +19,6 @@ sacha:spin chuangbo:cookie agnito:simptip mrt:jquery-ui-sortable -ethereum:web3 expanse:elements ethereum:accounts ethereum:blocks @@ -44,3 +43,5 @@ shell-server ecmascript numeral:numeral numeral:languages +expanse:tools +expanse:web3 diff --git a/interface/.meteor/platforms b/interface/.meteor/platforms old mode 100644 new mode 100755 diff --git a/interface/.meteor/release b/interface/.meteor/release old mode 100644 new mode 100755 diff --git a/interface/bg-grid.png b/interface/bg-grid.png deleted file mode 100644 index c8dcbb52a..000000000 Binary files a/interface/bg-grid.png and /dev/null differ diff --git a/interface/client/appStart.js b/interface/client/appStart.js old mode 100644 new mode 100755 index 12df66b74..4b96c21c1 --- a/interface/client/appStart.js +++ b/interface/client/appStart.js @@ -7,6 +7,13 @@ mistInit = function () { console.info('Initialise Mist Interface'); EthBlocks.init(); + const ethBlocksInterval = setInterval(() => { + if (_.isEmpty(EthBlocks.latest)) { + EthBlocks.init(); + } else { + clearInterval(ethBlocksInterval); + } + }, 500); Tabs.onceSynced.then(function () { if (location.search.indexOf('reset-tabs') >= 0) { @@ -20,10 +27,17 @@ mistInit = function () { Tabs.insert({ _id: 'browser', - url: 'https://expanse.tech', - redirect: 'https://expanse.tech', + url: 'https://www.expanse.tech', + redirect: 'https://www.expanse.tech', position: 0 }); + } else { + Tabs.upsert( + { _id: 'browser' }, + { + $set: { position: 0 } + } + ); } // overwrite wallet on start again, but use $set to dont remove titles @@ -60,22 +74,8 @@ Meteor.startup(function () { console.debug('Setting language'); - // SET default language - if (Cookie.get('TAPi18next')) { - TAPi18n.setLanguage(Cookie.get('TAPi18next')); - } else { - const userLang = navigator.language || navigator.userLanguage; - const availLang = TAPi18n.getLanguages(); + TAPi18n.setLanguage(ipc.sendSync('backendAction_getLanguage')); - // set default language - if (_.isObject(availLang) && availLang[userLang]) { - TAPi18n.setLanguage(userLang); - } else if (_.isObject(availLang) && availLang[userLang.substr(0, 2)]) { - TAPi18n.setLanguage(userLang.substr(0, 2)); - } else { - TAPi18n.setLanguage('en'); - } - } // change moment and numeral language, when language changes Tracker.autorun(function () { if (_.isString(TAPi18n.getLanguage())) { @@ -84,7 +84,7 @@ Meteor.startup(function () { try { numeral.language(lang); } catch (err) { - console.error(`numeral.js couldn't set number formating: ${err.message}`); + console.warn(`numeral.js couldn't set number formating: ${err.message}`); } EthTools.setLocale(lang); } diff --git a/interface/client/collections.js b/interface/client/collections.js old mode 100644 new mode 100755 index acd0daf43..a58ed19e9 --- a/interface/client/collections.js +++ b/interface/client/collections.js @@ -17,6 +17,7 @@ if (typeof window.dbSync !== 'undefined') { History = window.dbSync.frontendSyncInit(History); } + // ETHEREUM RELATED // Accounts collection is add by the ethereum:accounts package @@ -25,7 +26,7 @@ if (typeof window.dbSync !== 'undefined') { // contains blockchain meta data // LastBlock = new Mongo.Collection('lastblock', {connection: null}); -// new PersistentMinimongo2(LastBlock, 'Mist-Expanse'); +// new PersistentMinimongo2(LastBlock, 'Mist'); // if(!LastBlock.findOne('latest')) // LastBlock.insert({ // _id: 'latest', diff --git a/interface/client/lib/ethereum/1_web3js_init.js b/interface/client/lib/ethereum/1_web3js_init.js old mode 100644 new mode 100755 index 270935e4b..113b9acde --- a/interface/client/lib/ethereum/1_web3js_init.js +++ b/interface/client/lib/ethereum/1_web3js_init.js @@ -6,5 +6,5 @@ if (typeof web3 !== 'undefined') { } else { console.info('Web3 not yet initialized, doing so now with HttpProvider.'); - web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545')); + web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:9656')); } diff --git a/interface/client/lib/helpers/helperFunctions.js b/interface/client/lib/helpers/helperFunctions.js old mode 100644 new mode 100755 index aa9e66226..59af00f0d --- a/interface/client/lib/helpers/helperFunctions.js +++ b/interface/client/lib/helpers/helperFunctions.js @@ -79,8 +79,20 @@ Format Urls, e.g add a default protocol if on is missing. @param {String} url **/ Helpers.formatUrl = function (url) { + if (!url) return; + // add http:// if no protocol is present - if (url && url.indexOf('://') === -1) { + if (url.length === 64 && !!url.match(/^[0-9a-f]+$/)) { + // if the url looks like a hash, add bzz + url = 'bzz://' + url; + } else if (!!url.match(/^([a-z]*:\/\/)?[^/]*\.eth(\/.*)?$/i)) { + // if uses .eth as a TLD + url = 'bzz://' + url.replace(/^([a-z]*:\/\/)?/i, ''); + } else if (!!url.match(/^[^\.\/]*$/i)) { + // doesn't have a protocol nor a TLD + url = 'bzz://' + url + '.eth'; + } else if (url.indexOf('://') === -1) { + // if it doesn't have a protocol url = 'http://' + url; } @@ -210,23 +222,31 @@ Helpers.detectNetwork = function (hash) { case '0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3': console.log('Network is mainnet'); network.type = 'mainnet'; + network.name = 'Main'; break; case '0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d': console.log('Network is Testnet #3 (Ropsten)'); network.type = 'testnet'; - network.name = 'Testnet #3 (Ropsten)'; + network.name = 'Ropsten'; + break; + + case '0x6341fd3daf94b748c72ced5a5b26028f2474f5f00d824504e4fa37a75767e177': + console.log('Network is Testnet #4 (Rinkeby)'); + network.type = 'testnet'; + network.name = 'Rinkeby'; break; case '0x0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303': console.log('Network is Testnet #2 (Morden)'); network.type = 'testnet'; - network.name = 'Testnet #2 (Morden)'; + network.name = 'Morden'; break; default: console.log('Network is privatenet'); network.type = 'privatenet'; + network.name = 'Private'; } return network; diff --git a/interface/client/lib/helpers/templateHelpers.js b/interface/client/lib/helpers/templateHelpers.js old mode 100644 new mode 100755 index 6b020f7b4..c70bbbcb7 --- a/interface/client/lib/helpers/templateHelpers.js +++ b/interface/client/lib/helpers/templateHelpers.js @@ -76,15 +76,6 @@ Template.registerHelper('appIconPath', function () { return 'file://' + window.dirname + '/icons/' + window.mistMode + '/icon2x.png'; }); -/** -Get the current user agent - -@method (useragent) -**/ -Template.registerHelper('useragent', function () { - return navigator.userAgent + ' Expanse ' + (window.mistMode === 'mist' ? 'Mist' : 'Wallet'); -}); - /** Get all accounts diff --git a/interface/client/lib/signatures.js b/interface/client/lib/signatures.js old mode 100644 new mode 100755 index df02e99e7..695c6df57 --- a/interface/client/lib/signatures.js +++ b/interface/client/lib/signatures.js @@ -10186,5 +10186,8507 @@ window.SIGNATURES = { ], "0x4e077f2a": [ "addGasEther()" + ], + "0x24804cef": [ + "Deed()" + ], + "0xfaab9d39": [ + "setRegistrar(address)" + ], + "0xfb1669ca": [ + "setBalance(uint256)" + ], + "0xbbe42771": [ + "closeDeed(uint256)" + ], + "0x0b5ab3d5": [ + "destroyDeed()" + ], + "0xa06cab79": [ + "Registrar(address,bytes32)" + ], + "0x367bbd78": [ + "strlen(string)" + ], + "0x03985426": [ + "getMode(bytes32)" + ], + "0xede8acdb": [ + "startAuction(bytes32)" + ], + "0xe27fe50f": [ + "startAuctions(bytes32[])" + ], + "0x22ec1244": [ + "shaBid(bytes32,address,uint256,bytes32)" + ], + "0xce92dced": [ + "newBid(bytes32)" + ], + "0xaefc8c72": [ + "unsealBid(bytes32,address,uint256,bytes32)" + ], + "0xdf7cec28": [ + "cancelBid(bytes32)" + ], + "0x983b94fb": [ + "finalizeAuction(bytes32)" + ], + "0x0230a07c": [ + "releaseDeed(bytes32)" + ], + "0x15f73331": [ + "invalidateName(string)" + ], + "0x5ddae283": [ + "transferRegistrars(bytes32)" + ], + "0xebb045fa": [ + "PublicResolver(address)" + ], + "0x41b9dc2b": [ + "has(bytes32,bytes32)" + ], + "0x01ffc9a7": [ + "supportsInterface(bytes4)" + ], + "0x3b3b57de": [ + "addr(bytes32)" + ], + "0xd5fa2b00": [ + "setAddr(bytes32,address)" + ], + "0x2dff6941": [ + "content(bytes32)" + ], + "0xc3d014d6": [ + "setContent(bytes32,bytes32)" + ], + "0x1d2e2cc4": [ + "ENS()" + ], + "0x02571be3": [ + "owner(bytes32)" + ], + "0x0178b8bf": [ + "resolver(bytes32)" + ], + "0x16a25cbd": [ + "ttl(bytes32)" + ], + "0x5b0fc9c3": [ + "setOwner(bytes32,address)" + ], + "0x06ab5923": [ + "setSubnodeOwner(bytes32,bytes32,address)" + ], + "0x1896f70a": [ + "setResolver(bytes32,address)" + ], + "0x14ab9038": [ + "setTTL(bytes32,uint64)" + ], + "0x9d063ed8": [ + "FIFSRegistrar(address,bytes32)" + ], + "0xd22057a9": [ + "register(bytes32,address)" + ], + "0xe8efc1a0": [ + "updatedValue(bytes32)" + ], + "0x3dfb4843": [ + "renewDeed(bytes32)" + ], + "0xd8389dc5": [ + "hash(bytes32)" + ], + "0xd7fa1007": [ + "setHash(bytes32,bytes32)" + ], + "0x003538c5": [ + "TestRegistrar(address,bytes32)" + ], + "0x267b6922": [ + "entries(bytes32)" + ], + "0x3f15457f": [ + "ens()" + ], + "0x61584936": [ + "sealedBids(bytes32)" + ], + "0xb88eef53": [ + "registryCreated()" + ], + "0xfaff50a8": [ + "rootNode()" + ], + "0x8b859409": [ + "setRelease(bytes32,bytes32,string)" + ], + "0x244fcd03": [ + "removeRelease(bytes32,string)" + ], + "0x89859b50": [ + "updateLatestTree(bytes32)" + ], + "0xa10889fa": [ + "setVersion(uint32,uint32,uint32,string,string)" + ], + "0x0ccec396": [ + "getNumReleases()" + ], + "0x57b07cd9": [ + "getReleaseHash(uint256)" + ], + "0x173cb7de": [ + "getNumReleasesForNameHash(bytes32)" + ], + "0x0c26e42e": [ + "getReleaseHashForNameHash(bytes32,uint256)" + ], + "0x3f415772": [ + "releaseExists(bytes32)" + ], + "0xbb814e9e": [ + "versionExists(bytes32)" + ], + "0x4c4aea87": [ + "getReleaseData(bytes32)" + ], + "0x0c4326a0": [ + "getMajorMinorPatch(bytes32)" + ], + "0xfac5bb92": [ + "getPreRelease(bytes32)" + ], + "0x8ca4eef6": [ + "getBuild(bytes32)" + ], + "0x2ffb8631": [ + "getReleaseLockfileURI(bytes32)" + ], + "0x0e5ffb3c": [ + "hashVersion(uint32,uint32,uint32,string,string)" + ], + "0x93d79105": [ + "hashRelease(bytes32,bytes32)" + ], + "0x3ae9b510": [ + "getLatestMajorTree(bytes32)" + ], + "0xf2f254c7": [ + "getLatestMinorTree(bytes32,uint32)" + ], + "0x5263ba87": [ + "getLatestPatchTree(bytes32,uint32,uint32)" + ], + "0xdea9c72b": [ + "getLatestPreReleaseTree(bytes32,uint32,uint32,uint32)" + ], + "0xd7cc8362": [ + "isLatestMajorTree(bytes32,bytes32)" + ], + "0xd1f59db9": [ + "isLatestMinorTree(bytes32,bytes32)" + ], + "0xc233e870": [ + "isLatestPatchTree(bytes32,bytes32)" + ], + "0x02de2cf3": [ + "isLatestPreReleaseTree(bytes32,bytes32)" + ], + "0x02556de3": [ + "updateMajorTree(bytes32)" + ], + "0x44d75fa9": [ + "updateMinorTree(bytes32)" + ], + "0xb6ac24df": [ + "updatePatchTree(bytes32)" + ], + "0x900d85fa": [ + "updatePreReleaseTree(bytes32)" + ], + "0xbed34bba": [ + "compareStrings(string,string)" + ], + "0x15398afe": [ + "compareNumericStrings(string,string)" + ], + "0xdd79e33e": [ + "splitIdentifiers(string)" + ], + "0x2fc0aad3": [ + "isNumericString(string)" + ], + "0x55ff440a": [ + "castStringToUInt(string)" + ], + "0xb7009613": [ + "canCall(address,address,bytes4)" + ], + "0xeacfc0ae": [ + "Authorized()" + ], + "0x87045369": [ + "setCanCall(address,address,bytes4,bool)" + ], + "0x02acdb44": [ + "setAnyoneCanCall(address,bytes4,bool)" + ], + "0x20d9822e": [ + "setAnyoneCanCall(address,string,bool)" + ], + "0x083ae1fe": [ + "setPackage(string)" + ], + "0x001f8d11": [ + "removePackage(bytes32,string)" + ], + "0x2406cedb": [ + "setPackageOwner(bytes32,address)" + ], + "0xa9b35240": [ + "packageExists(bytes32)" + ], + "0x7370a38d": [ + "getNumPackages()" + ], + "0x95f0684b": [ + "getPackageNameHash(uint256)" + ], + "0xb4d6d4c7": [ + "getPackageData(bytes32)" + ], + "0x06fe1fd7": [ + "getPackageName(bytes32)" + ], + "0xaf9a3f9b": [ + "hashName(string)" + ], + "0x34c0d654": [ + "setPackageDb(address)" + ], + "0xf314bf46": [ + "setReleaseDb(address)" + ], + "0x10ae4ce2": [ + "setReleaseValidator(address)" + ], + "0x5fcb568c": [ + "release(string,uint32,uint32,uint32,string,string,string)" + ], + "0x0f3d7c3e": [ + "release(string,uint32[3],string,string,string)" + ], + "0x4f197ee7": [ + "transferPackageOwner(string,address)" + ], + "0x83ea0620": [ + "packageExists(string)" + ], + "0x4188d79c": [ + "releaseExists(string,uint32,uint32,uint32,string,string)" + ], + "0xcfe9a7b8": [ + "getPackageName(uint256)" + ], + "0xc2ba5b40": [ + "getPackageData(string)" + ], + "0xcec95aa1": [ + "getReleaseHashForPackage(string,uint256)" + ], + "0xc392f5a0": [ + "getAllPackageReleaseHashes(string)" + ], + "0x12cc08f2": [ + "getPackageReleaseHashes(string,uint256,uint256)" + ], + "0x4cb71b9b": [ + "getAllReleaseHashes()" + ], + "0x79cce1c5": [ + "getReleaseHashes(uint256,uint256)" + ], + "0x1f6b0a9d": [ + "getReleaseLockfileURI(string,uint32,uint32,uint32,string,string)" + ], + "0x79c3ddc1": [ + "isPackageOwner(string,address,address)" + ], + "0x91060168": [ + "fetchString(address,bytes4,bytes32)" + ], + "0xfa28ba0d": [ + "validateReleaseLockfileURI(string)" + ], + "0xf4ea95b9": [ + "validateReleaseVersion(uint32[3])" + ], + "0x6f0cfab6": [ + "DNSResolver()" + ], + "0x126a710e": [ + "dnsrr(bytes32)" + ], + "0x76196c88": [ + "setDnsrr(bytes32,bytes)" + ], + "0x61d585da": [ + "state(bytes32)" + ], + "0xe571c35e": [ + "ReverseRegistrar(address,bytes32)" + ], + "0x1e83409a": [ + "claim(address)" + ], + "0xbffbe61c": [ + "node(address)" + ], + "0x27b752b8": [ + "sha3HexAddress(address)" + ], + "0xe1fa8e84": [ + "register(bytes32)" + ], + "0xa31d5580": [ + "Registrar(address,bytes32,address)" + ], + "0x3ea3f6c5": [ + "activateRegistrar()" + ], + "0x271cd760": [ + "getPackageDb()" + ], + "0xfb3a1fb2": [ + "getReleaseDb()" + ], + "0x4961b40c": [ + "getReleaseValidator()" + ], + "0x2d34ba79": [ + "setup(address,address)" + ], + "0x30b9af98": [ + "withdrawFunding()" + ], + "0x92a781d8": [ + "changeBaseValue(uint256)" + ], + "0xb60d4288": [ + "fund()" + ], + "0xc062f578": [ + "updateStage()" + ], + "0xf3a44fe1": [ + "withdrawForWorkshop()" + ], + "0x99e0021f": [ + "mergencyCall()" + ], + "0x299ed37a": [ + "emergencyCall()" + ], + "0x0b7abf77": [ + "TOTAL_TOKENS()" + ], + "0x17f5de95": [ + "MAX_TOKENS_SOLD()" + ], + "0x39f64b52": [ + "calcTokenPrice()" + ], + "0x48c54b9d": [ + "claimTokens()" + ], + "0x48cd4cb1": [ + "startBlock()" + ], + "0x521eb273": [ + "wallet()" + ], + "0x60fd902c": [ + "gnosisToken()" + ], + "0x62ea82db": [ + "bids(address)" + ], + "0x6f85c7e4": [ + "WAITING_PERIOD()" + ], + "0x8da5cb5b": [ + "owner()" + ], + "0xa3c2c462": [ + "totalReceived()" + ], + "0xa6b513ee": [ + "finalPrice()" + ], + "0xc040e6b8": [ + "stage()" + ], + "0xc51bf934": [ + "CEILING()" + ], + "0xd9f8a4e2": [ + "calcCurrentTokenPrice()" + ], + "0xdd9dd688": [ + "calcStopPrice()" + ], + "0xde78e78a": [ + "tokenLaunched()" + ], + "0x4c6b25b1": [ + "results(bytes32)" + ], + "0x69347990": [ + "ownerWithdrawl()" + ], + "0x7b1aa45f": [ + "ownerDeposit()" + ], + "0x996a8046": [ + "__callback(bytes32,string,bool)" + ], + "0xb964608d": [ + "get_return_by_level(uint256)" + ], + "0xcddbe729": [ + "game(uint256)" + ], + "0x0674763c": [ + "assert(bool)" + ], + "0xe21608be": [ + "ReserveToken()" + ], + "0x1cbd0519": [ + "accountLevel(address)" + ], + "0x8abadb6b": [ + "setAccountLevel(address,uint256)" + ], + "0x4c7f74df": [ + "EtherDelta(address,address,address,uint256,uint256,uint256)" + ], + "0x8f283970": [ + "changeAdmin(address)" + ], + "0xe8f6bc2e": [ + "changeAccountLevelsAddr(address)" + ], + "0x71ffcb16": [ + "changeFeeAccount(address)" + ], + "0x54d03b5c": [ + "changeFeeMake(uint256)" + ], + "0x8823a9c0": [ + "changeFeeTake(uint256)" + ], + "0x5e1d7ae4": [ + "changeFeeRebate(uint256)" + ], + "0x0b927666": [ + "order(address,uint256,address,uint256,uint256,uint256)" + ], + "0x05888fcd": [ + "tradeBalances(address,uint256,address,uint256,address,uint256)" + ], + "0x46be96c3": [ + "amountFilled(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)" + ], + "0x278b8c0e": [ + "cancelOrder(address,uint256,address,uint256,uint256,uint256,uint8,bytes32,bytes32)" + ], + "0x60116397": [ + "Registrar(address,bytes32,uint256)" + ], + "0xf4dc2d21": [ + "Deed(uint256)" + ], + "0x06fdde03": [ + "name()" + ], + "0x313ce567": [ + "decimals()" + ], + "0x40275f85": [ + "getPersonalDepositAddress(address)" + ], + "0x5a3b7e42": [ + "standard()" + ], + "0x89d59ee5": [ + "createPersonalDepositAddress()" + ], + "0x8c546f81": [ + "GNT()" + ], + "0x8f70bfa0": [ + "processDeposit()" + ], + "0x95d89b41": [ + "symbol()" + ], + "0xb414d4b6": [ + "frozenAccount(address)" + ], + "0xdc3080f2": [ + "spentAllowance(address,address)" + ], + "0x366a68dc": [ + "setBlockLock(uint256)" + ], + "0xa39a45b7": [ + "replaceOwner(address)" + ], + "0xa4e2d634": [ + "isLocked()" + ], + "0xd8162db7": [ + "lockedUntilBlock()" + ], + "0x1593a8c7": [ + "endLottery()" + ], + "0x53aab434": [ + "buyIn()" + ], + "0x5ec01e4d": [ + "random()" + ], + "0x6939864b": [ + "lotteryState()" + ], + "0xd366fbab": [ + "startLottery(bytes32,uint256,uint256,uint256,uint256,bool)" + ], + "0xfd7c460d": [ + "ciberLottery()" + ], + "0x2525f5c1": [ + "cancelBid(address,bytes32)" + ], + "0xc01a8c84": [ + "confirmTransaction(uint256)" + ], + "0x1209b1f6": [ + "ticketPrice()" + ], + "0x50b44712": [ + "tickets(uint256)" + ], + "0x5c3f9765": [ + "endDateClose()" + ], + "0x984ac378": [ + "lotteryTitle()" + ], + "0xb8851fea": [ + "endDateStart()" + ], + "0xc179520c": [ + "ManageAccount()" + ], + "0x12494160": [ + "isHolder()" + ], + "0x42ce1488": [ + "upload(string)" + ], + "0x3c925f16": [ + "getAccountHolder()" + ], + "0x83f7b8e1": [ + "getNumberOfPhotos()" + ], + "0xe2a71f12": [ + "accountDelete()" + ], + "0x009b9369": [ + "getVoteNumber(uint256)" + ], + "0x0ee79fb3": [ + "closeReferendums()" + ], + "0x291e6777": [ + "sendVote(uint256,uint256)" + ], + "0x32d2fb9f": [ + "getRefRemainingTime(uint256)" + ], + "0x3b0506f7": [ + "getVoteByAddress(address,uint256)" + ], + "0x62fb09b2": [ + "getRefDescr(uint256)" + ], + "0x77a7e6be": [ + "getRefTotal(uint256)" + ], + "0x80dcaf27": [ + "getRefNumber()" + ], + "0x8736fd16": [ + "getRefStatus(uint256)" + ], + "0xace523c4": [ + "createReferendum(string,string,uint256,uint256)" + ], + "0xb29d7914": [ + "getRefResults(uint256)" + ], + "0xc0df77d0": [ + "getRefName(uint256)" + ], + "0x94d9cf8f": [ + "CreateProxyWithControllerAndRecovery(address,address[],uint256,uint256)" + ], + "0x4a3a87e2": [ + "CreateProxyWithControllerAndRecoveryKey(address,address,uint256,uint256)" + ], + "0x4fcf8210": [ + "eraseRecord(bytes32)" + ], + "0xde10f04b": [ + "eraseNode(bytes32[])" + ], + "0x3a76abff": [ + "_eraseNode(uint256,bytes32[],bytes32)" + ], + "0x1cda37f2": [ + "eraseRecords(bytes32)" + ], + "0x00e43ee9": [ + "setMigrationStatus(uint256,address)" + ], + "0x984413b8": [ + "_eraseNode(bytes32)" + ], + "0xb0c80972": [ + "setBalance(uint256,bool)" + ], + "0xfebefd61": [ + "startAuctionsAndBid(bytes32[],bytes32)" + ], + "0x77bc222c": [ + "_eraseSingleNode(bytes32)" + ], + "0x57aee888": [ + "_eraseNodeHierarchy(uint256,bytes32[],bytes32)" + ], + "0xdce293a7": [ + "minLength(uint256)" + ], + "0xaf92a693": [ + "addRegistrar(address)" + ], + "0xba904eed": [ + "removeRegistrar(address)" + ], + "0x081780f4": [ + "clearRecord(bytes32)" + ], + "0xb0349184": [ + "clearRecords(bytes32[])" + ], + "0xf62cce34": [ + "_clearRecordHierarchy(uint256,bytes32[],bytes32)" + ], + "0x36b81feb": [ + "Deed(address)" + ], + "0x4a617faa": [ + "shaBid(bytes32,uint256,bytes32)" + ], + "0x47872b42": [ + "unsealBid(bytes32,uint256,bytes32)" + ], + "0x93503337": [ + "isAllowed(bytes32,uint256)" + ], + "0x8a4068dd": [ + "transfer()" + ], + "0x13c89a8f": [ + "getAllowedTime(bytes32)" + ], + "0xa360b26f": [ + "Migrations()" + ], + "0xfdacd576": [ + "setCompleted(uint256)" + ], + "0x99a88ec4": [ + "upgrade(address,address)" + ], + "0x8e7fd292": [ + "trySetSubnodeOwner(bytes32,address)" + ], + "0x29cd5777": [ + "_tryEraseSingleNode(bytes32)" + ], + "0x5e431709": [ + "sealedBids(address,bytes32)" + ], + "0x9c67f06f": [ + "registryStarted()" + ], + "0xea9e107a": [ + "acceptRegistrarTransfer(bytes32,address,uint256)" + ], + "0x05b34410": [ + "creationDate()" + ], + "0x2b20e397": [ + "registrar()" + ], + "0x3fa4f245": [ + "value()" + ], + "0x674f220f": [ + "previousOwner()" + ], + "0x2203ab56": [ + "ABI(bytes32,uint256)" + ], + "0x623195b0": [ + "setABI(bytes32,uint256,bytes)" + ], + "0xc8690233": [ + "pubkey(bytes32)" + ], + "0x29cd62ea": [ + "setPubkey(bytes32,bytes32,bytes32)" + ], + "0x691f3431": [ + "name(bytes32)" + ], + "0x77372213": [ + "setName(bytes32,string)" + ], + "0x20d8741f": [ + "Feed()" + ], + "0xdd114c22": [ + "publish(address,uint256,address,uint256)" + ], + "0xfb279ef3": [ + "tip(uint256,address,uint256)" + ], + "0x96c824a8": [ + "createAccountFundContract()" + ], + "0x33397816": [ + "withdrawAccountBalance(address)" + ], + "0x6ebbe863": [ + "updatePublishContract(address)" + ], + "0xfad4b99a": [ + "updateChannelMinimum(address,uint256)" + ], + "0x0b7ad54c": [ + "getContent(uint256)" + ], + "0xda9c6a46": [ + "getReplyCount(uint256)" + ], + "0x47372325": [ + "getChannelSize(address)" + ], + "0x2ca6d2c0": [ + "getAccountSize(address)" + ], + "0x73f93a48": [ + "getAccountContentTip(address,uint256)" + ], + "0x0a7f4239": [ + "getAccountFundContract(address)" + ], + "0x0fcda174": [ + "getAccountTokenBalance(address,address)" + ], + "0x79be02af": [ + "Read(address)" + ], + "0x27fbcac5": [ + "getChannelFeed(address,uint256,uint256)" + ], + "0xdd90c403": [ + "getAccountFeed(address,uint256,uint256)" + ], + "0xbff974e8": [ + "getContentReplies(uint256)" + ], + "0xb3822da8": [ + "getContents(uint256[])" + ], + "0x2a45a39a": [ + "Post(address)" + ], + "0xe3579ea5": [ + "publish(string,string,address,uint256)" + ], + "0x4c8cc20b": [ + "toContentID(address,string,string,address,uint256)" + ], + "0x6ce1417e": [ + "Fund()" + ], + "0xea46193e": [ + "getEtherBalance()" + ], + "0x55291dbd": [ + "claimEther()" + ], + "0xe9e99d81": [ + "getChannelFeed(address,uint256,uint256,uint256)" + ], + "0x05a17fc6": [ + "getAccountFeed(address,uint256,uint256,uint256)" + ], + "0xd90a88cd": [ + "getContentReplies(uint256,uint256)" + ], + "0x49e347ae": [ + "getContents(uint256[],uint256)" + ], + "0xbac1e9f6": [ + "getChannelSize(address,uint256)" + ], + "0x048e2e94": [ + "getAccountSize(address,uint256)" + ], + "0x9f181b5e": [ + "tokenCount()" + ], + "0xf446c1d0": [ + "A()" + ], + "0x314e99a2": [ + "abdicate()" + ], + "0x9b0b9c07": [ + "acceptBankDraft()" + ], + "0xbdfdb519": [ + "accept(string,uint256,uint16)" + ], + "0x8f5e9ca7": [ + "acceptTOS(address,bool)" + ], + "0xa79deb4f": [ + "acceptTradeDeal()" + ], + "0x5a28340a": [ + "accessOperatingBudget(uint256)" + ], + "0xa8b60b93": [ + "ackMsg(uint256,string)" + ], + "0x7ec0f30d": [ + "ack(string)" + ], + "0x82a62137": [ + "activateAccount(address)" + ], + "0x1e9fcc77": [ + "activateAllowance(address,address)" + ], + "0x6bd92f7c": [ + "activateAllowanceRecord(address,address)" + ], + "0x0651844e": [ + "activateBalance(address)" + ], + "0xc8e49707": [ + "activateExportFee(address)" + ], + "0x2cd78450": [ + "activateExportFeeChargeRecord(address)" + ], + "0xd532e481": [ + "activateFrozenAccount(address)" + ], + "0x1d2b7155": [ + "activateImportFeeChargeRecord(address)" + ], + "0xcf03f5f4": [ + "activateMasterKey(address)" + ], + "0x1917ab5c": [ + "activate(string)" + ], + "0x0b2acb3f": [ + "add(address,bytes)" + ], + "0xec97cff7": [ + "addCertificationDocument(address,bytes32)" + ], + "0xa0d605c6": [ + "addCertificationDocumentInternal(address,bytes32)" + ], + "0xe80bd3e5": [ + "addCertificationDocumentToSelf(bytes32)" + ], + "0x2b198366": [ + "addCertifier(address)" + ], + "0xac3e7d24": [ + "addChainyData(string)" + ], + "0x9450b1c8": [ + "addCharityFundation(string,string,string)" + ], + "0x6ac6205c": [ + "addDataPoint(int256,uint256,bool,string)" + ], + "0x4094ef5e": [ + "addDataRequest(string)" + ], + "0xd3118a5a": [ + "addDoc(string,string)" + ], + "0x20339891": [ + "addGridMember(address)" + ], + "0x61bffe01": [ + "addIdentities(bytes32[],bytes32[])" + ], + "0x17b3a34b": [ + "_addIdentities(uint256,bytes32[])" + ], + "0x17e1bfb7": [ + "addInstitution(address,string)" + ], + "0xf824384a": [ + "addInvestorAtID(uint256)" + ], + "0x202d6eaf": [ + "addInvestorsValue(uint256)" + ], + "0x2fe9541f": [ + "addIssueBounty(string,uint256)" + ], + "0x2d06177a": [ + "addManager(address)" + ], + "0x2ba0b09f": [ + "AddNewCategory(bytes4,uint8,uint8,address)" + ], + "0x29dfdded": [ + "addNewDonkey(address)" + ], + "0x74bfb965": [ + "addNewProxy(address)" + ], + "0x755f99c2": [ + "AddNewSmallContract(address)" + ], + "0xc1d5e84f": [ + "addNewUser(address)" + ], + "0x76849376": [ + "addNode(bytes32,address)" + ], + "0x7d380265": [ + "addOptionChain(uint256,string,uint256,uint256,bytes32,address,int256[])" + ], + "0x227f9633": [ + "addOption(string,address,uint256)" + ], + "0xdf5dd1a5": [ + "addOracle(address)" + ], + "0x3c0dde1c": [ + "_addPools(address,address)" + ], + "0x3d90d44d": [ + "addPowerSource(address,uint256,uint256)" + ], + "0x49bf66d3": [ + "addRegistryIntoNameIndex(address)" + ], + "0xb796a339": [ + "addRegistryIntoOwnerIndex(address,address)" + ], + "0x7cdbae63": [ + "addRegistryIntoTagsIndex(address)" + ], + "0x3e82055a": [ + "addSignature(uint256,bytes16,bytes)" + ], + "0xd1feca67": [ + "addSpendingRequest(address)" + ], + "0xdab80d6f": [ + "addSponsor(address)" + ], + "0xb0c8f9dc": [ + "add(string)" + ], + "0x8396392d": [ + "add(string,string,string,address)" + ], + "0x36555b85": [ + "add(string,uint256)" + ], + "0xd2dc0869": [ + "add(string,uint256,string,string,address)" + ], + "0x0f3eb785": [ + "add(string,uint256,uint256,uint256)" + ], + "0x38178fbe": [ + "addString(string,string)" + ], + "0x45590ec8": [ + "addTag(uint256,string)" + ], + "0x0e1d88fc": [ + "addTender(uint256,uint256,address,uint256)" + ], + "0x7f0899f2": [ + "AddTicket(bytes5[])" + ], + "0xd48bfca7": [ + "addToken(address)" + ], + "0x75c4aaa6": [ + "addUnderDog(uint256)" + ], + "0x213ac932": [ + "addUser(address,uint256,uint8,bytes32,bytes32)" + ], + "0x9da680f3": [ + "adjustRegistrationFee(uint256)" + ], + "0x5b6a54bc": [ + "adjustTransactionFee(uint256)" + ], + "0x40fdef80": [ + "administration(uint256,string,uint256,uint256,address)" + ], + "0xbc21ce9d": [ + "Aggregation()" + ], + "0x98688a95": [ + "Ai()" + ], + "0xbd3f0965": [ + "AiraEtherFunds(string,string)" + ], + "0xe1efda6d": [ + "airaSend(address,address,uint256)" + ], + "0x6d2cb794": [ + "airaTransfer(address,address,uint256)" + ], + "0xa9f8ec6c": [ + "AlarmClockTipFaucet()" + ], + "0x4a8b5389": [ + "allocateBountyAndEcosystemTokens()" + ], + "0xbcfcb03e": [ + "allocateFounderTokens()" + ], + "0xd526b9bd": [ + "_allow()" + ], + "0x1c8d5d38": [ + "allowance(address,address,bytes32)" + ], + "0xeb06e65e": [ + "allowanceFromProxy(address,address,address)" + ], + "0x9c0a4bbc": [ + "AlwaysFail()" + ], + "0x3b591ea7": [ + "AmountToForgeTheNextBlock()" + ], + "0x6056969b": [ + "announce(bytes32)" + ], + "0x3ef8ec78": [ + "announce_numbers(uint8,uint8,uint8,uint8,uint32,bytes32)" + ], + "0xea0a5237": [ + "announce(string)" + ], + "0xac04f5a7": [ + "append(address)" + ], + "0x94ed9b77": [ + "append(address,address)" + ], + "0x9aaf442c": [ + "applyCensorship(uint256)" + ], + "0x691d58e7": [ + "_applyRefund(uint256)" + ], + "0x7b7d7225": [ + "_approve(address,uint256)" + ], + "0x6d1669e1": [ + "approveAndCall(address,address,uint256,bytes)" + ], + "0xf11c4482": [ + "approveFromProxy(address,address,uint256)" + ], + "0x7df52ba8": [ + "Arbitrate(uint32,uint32,bool)" + ], + "0x99154b49": [ + "ARK()" + ], + "0x014e5fde": [ + "ARKController_1_00()" + ], + "0xfb32f4f5": [ + "ARK_FLAGGER_1_00()" + ], + "0x2be6d43c": [ + "ARKTagger_1_00()" + ], + "0xae30d35d": [ + "ARK_TROGLOg_1_00()" + ], + "0x97709cde": [ + "ARK_VOTER_1_00(uint256,uint256,uint256,uint256,uint256,uint256)" + ], + "0xdba21657": [ + "askForEther(uint256)" + ], + "0x8a3e44d4": [ + "assetMoveInformation(address,address)" + ], + "0x0399c357": [ + "assignFreeReadings(address,uint8)" + ], + "0x7fe0518a": [ + "asyncSend(address,uint256)" + ], + "0xa843c97f": [ + "attack(uint256,uint256,uint256[])" + ], + "0xe0886f90": [ + "at(uint256)" + ], + "0x373c98a2": [ + "authCall(address,bytes32)" + ], + "0x39b35753": [ + "authCancel(address)" + ], + "0x4a5db3b5": [ + "authorizeAddress(address)" + ], + "0x2db89533": [ + "Auth(uint8,address)" + ], + "0x10cf5d47": [ + "awaitingPayout()" + ], + "0x3d79d1c8": [ + "bal()" + ], + "0x0a6be0e7": [ + "BalancedPonzi()" + ], + "0x4d30b6be": [ + "balanceOf(address,bytes32)" + ], + "0x61a00f6d": [ + "Ballot(bytes32[])" + ], + "0x940f851c": [ + "Ballot(uint8)" + ], + "0x97c3ccd8": [ + "ban(address)" + ], + "0xb5deeca7": [ + "BaseRegistry()" + ], + "0xcbe9ef39": [ + "BasicCoin(uint256,address)" + ], + "0xd767aee0": [ + "bbb()" + ], + "0x738486bd": [ + "BeerCoin(uint256)" + ], + "0xf79b22e0": [ + "betOnATeam(uint256)" + ], + "0xd30a512e": [ + "betOnColumnOrDozen(bool,bool,bool)" + ], + "0x86314af9": [ + "BetOnHashV84()" + ], + "0x3adb2de7": [ + "bet_this_spin()" + ], + "0x416c8701": [ + "beyond()" + ], + "0x934db458": [ + "Big()" + ], + "0x71dd99fe": [ + "BigRisk()" + ], + "0xf67a1d37": [ + "BlockChainChallenge()" + ], + "0x8a519fb9": [ + "BlockChainEnterprise()" + ], + "0x9ad4f98e": [ + "BlocksureInfo()" + ], + "0x48d9a374": [ + "blockTransfer(address,uint256)" + ], + "0x00601d6c": [ + "board(uint256,uint8,uint8)" + ], + "0xd1100691": [ + "BookCafe()" + ], + "0xbb00fc55": [ + "bookEarnings()" + ], + "0x9eee85fe": [ + "bookEarnings(address,uint256)" + ], + "0xdba7ef7d": [ + "Bookie(address,address)" + ], + "0x60913244": [ + "botOnSale(uint256,uint256)" + ], + "0x4cb85356": [ + "BranchSender(uint256,bytes32)" + ], + "0x0ad95b44": [ + "bribery()" + ], + "0xb0ad38c4": [ + "buildCity(string,uint256[2],uint256[2])" + ], + "0xdad99989": [ + "burnCoins(address)" + ], + "0x5fc5d48b": [ + "burnUnsoldCoins(address)" + ], + "0x3824d8ee": [ + "buy100DaoFor1Eth()" + ], + "0x561a4873": [ + "buyAd(string,string,string,uint256,uint8,address)" + ], + "0x5f8f0483": [ + "buyBankerAgreementFromImporterBank()" + ], + "0x29274fe1": [ + "buyBOTx(uint256,string,string,address,uint256)" + ], + "0xe75528cc": [ + "buyBuilding(uint256,uint256)" + ], + "0xe7e2aa0e": [ + "buyer_cancel()" + ], + "0xd04bfc9c": [ + "buyer_pay()" + ], + "0x29cbdc86": [ + "buyin(address,uint256)" + ], + "0x4ea66c38": [ + "buyinInternal(address,uint256)" + ], + "0xd24ddcfe": [ + "buyKissBTC()" + ], + "0x854f4817": [ + "buyKissBTCWithCallback(address,uint256)" + ], + "0xdda44b10": [ + "buyRecipient(address,uint8,bytes32,bytes32)" + ], + "0xcef8d343": [ + "buyShare(uint256,bool)" + ], + "0x90cb04e1": [ + "buy(string,uint256,uint16)" + ], + "0xedca914c": [ + "buyTicket()" + ], + "0x920c94df": [ + "BuyTicketForOther(address,uint8,uint8,uint8)" + ], + "0x378c0605": [ + "buyTickets(address)" + ], + "0x46f7a883": [ + "BuyTicket(uint8,uint8,uint8)" + ], + "0xaaf9d13e": [ + "buyTopDog(uint256,uint256)" + ], + "0xe5fe4f31": [ + "buy(uint8,bytes32,bytes32)" + ], + "0x4b8772c1": [ + "buyUnit(uint256,uint256)" + ], + "0xb412d4d6": [ + "CafeDelivered()" + ], + "0x4dda1764": [ + "CafeMaker()" + ], + "0x4dc3141b": [ + "CalcAll()" + ], + "0xea295ec2": [ + "calcRevenue(address)" + ], + "0xc1cc0775": [ + "calculateFeeDynamic(uint256,uint256)" + ], + "0xc03e382f": [ + "calculateShare()" + ], + "0x671dacdc": [ + "CalculateSqrt(uint256)" + ], + "0xdcf8113e": [ + "campaignEndedSuccessfully()" + ], + "0x74e60a48": [ + "cancelOrder(address,uint256,address,uint256,uint256,uint256,address,uint8,bytes32,bytes32)" + ], + "0xdc419fd8": [ + "cancelOrder(bool,uint256)" + ], + "0x3fb0b2c9": [ + "CancelRoundAndRefundAll()" + ], + "0x9d1bbd7e": [ + "CancelRoundAndRefundAll(uint256)" + ], + "0x6618b008": [ + "cancelSellOrder(address)" + ], + "0x39b50688": [ + "cancelSellOrder()" + ], + "0x06909f69": [ + "cancel(string,uint256)" + ], + "0x1d3390a1": [ + "carefulSendWithFixedGas(address,uint256,uint256)" + ], + "0x5cff876b": [ + "carrotsCaught()" + ], + "0x4bb4b260": [ + "cashAllOut()" + ], + "0xe2861c8d": [ + "cashOutProfit()" + ], + "0x4a30f976": [ + "censorship(uint256,bool,bool)" + ], + "0x05b2b03a": [ + "CertificationCentre(address)" + ], + "0x35d79fad": [ + "CertificationDb(address,uint256,address)" + ], + "0xf72457af": [ + "CertifierDb()" + ], + "0x5103a5a3": [ + "certify(address,bytes32)" + ], + "0x0f096163": [ + "Chainy()" + ], + "0xdabdc1f2": [ + "ChangeActiveDigger(address)" + ], + "0x839849c0": [ + "changeBaseMultiplier(uint256)" + ], + "0x1ed6f423": [ + "changeDescription(address,string)" + ], + "0x75090ebf": [ + "changeDomain(uint256,uint256,uint256,address)" + ], + "0x3fd94686": [ + "changeEligibleDonkeys(uint256)" + ], + "0x6a1db1bf": [ + "changeFee(uint256)" + ], + "0x93c32e06": [ + "changeFounder(address)" + ], + "0xd21d7950": [ + "changeGasLimitOfSafeSend(uint256)" + ], + "0x62ee6d29": [ + "changeHashtoLowOrHigh(uint256)" + ], + "0x1efb17ee": [ + "changeHouseAddress(address)" + ], + "0xeb1ff845": [ + "changeId(uint256,uint256,uint256)" + ], + "0x07a9574a": [ + "changeLeaderMessage(string)" + ], + "0x53fefd7d": [ + "changeMaxDeposit(uint256)" + ], + "0xa51aea2d": [ + "changeMaxMultiplier(uint256)" + ], + "0x45ca25ed": [ + "changeName(address,string)" + ], + "0x85eac05f": [ + "changeOwnerAddress(address)" + ], + "0x244ded7a": [ + "ChangeOwnership(address)" + ], + "0xc0b92612": [ + "changePig(address)" + ], + "0x0fffbb54": [ + "changeRankingSize(uint256)" + ], + "0x1982ed58": [ + "ChangeReuseCashInHarware(bool,uint16,uint16)" + ], + "0xcdcb7c8f": [ + "chase()" + ], + "0x919840ad": [ + "check()" + ], + "0xc23697a8": [ + "check(address)" + ], + "0xede8ebf3": [ + "checkApprove(address,uint256)" + ], + "0x20e647e1": [ + "checkBetColor(uint8,address,bytes32,bytes32)" + ], + "0xf2b904c3": [ + "checkBetColumn(uint8,address,bytes32,bytes32)" + ], + "0x74388347": [ + "checkBetDozen(uint8,address,bytes32,bytes32)" + ], + "0x75830463": [ + "checkBetLowhigh(uint8,address,bytes32,bytes32)" + ], + "0x40c0bcb9": [ + "checkBetNumber(uint8,address,bytes32,bytes32)" + ], + "0xe9c31315": [ + "checkBetParity(uint8,address,bytes32,bytes32)" + ], + "0x1e5330ca": [ + "checkBetResult(uint8,address,bytes32,bytes32)" + ], + "0x90a85119": [ + "checkBetResult(uint8)" + ], + "0xc67146a5": [ + "check_bet(uint256,address,uint8)" + ], + "0xf062e26b": [ + "check_darkdao()" + ], + "0x1a9360dd": [ + "checkDate()" + ], + "0x32921690": [ + "checkDepth(address,uint256)" + ], + "0xdc3ab866": [ + "checkEarnings(address)" + ], + "0x51fdaf92": [ + "checkExpiredfunds()" + ], + "0x46b207b8": [ + "checkExpiry()" + ], + "0xe95bee59": [ + "checkFormat(string)" + ], + "0x119aa5c8": [ + "checkForward(bytes)" + ], + "0x19483cd1": [ + "checkHash()" + ], + "0x0382c254": [ + "CheckHash(uint8,uint8,uint8,uint8,bytes32)" + ], + "0x255016c8": [ + "checkIfExploded()" + ], + "0x0343dfa0": [ + "checkInvariants()" + ], + "0x4c7a2254": [ + "checkMyWithdraw()" + ], + "0x33893071": [ + "checkMyWithdraw(address)" + ], + "0xb2bfd948": [ + "checkNumbers(uint8[3])" + ], + "0xbed411a0": [ + "CheckPrize(address)" + ], + "0xb623f5e5": [ + "checkSetCosignerAddress(address)" + ], + "0xef19c332": [ + "_checkSigned(bytes32,uint256,uint8,bytes32,bytes32)" + ], + "0x3c959aca": [ + "CheckTickets()" + ], + "0xe0c6190d": [ + "checkTime()" + ], + "0x5329c681": [ + "checkTimeout(uint256)" + ], + "0x88e072b2": [ + "checkTransfer(address,uint256)" + ], + "0xc5575ef0": [ + "checkTransferFrom(address,address,uint256)" + ], + "0x00a7d6b3": [ + "checkTransferFromToICAP(address,bytes32,uint256)" + ], + "0xbd8c1d33": [ + "checkTransferFromToICAPWithReference(address,bytes32,uint256,string)" + ], + "0xc6e0c908": [ + "checkTransferFromWithReference(address,address,uint256,string)" + ], + "0x8e4afa51": [ + "checkTransferToICAP(bytes32,uint256)" + ], + "0x058026d0": [ + "checkTransferToICAPWithReference(bytes32,uint256,string)" + ], + "0xcbcaacab": [ + "checkTransferWithReference(address,uint256,string)" + ], + "0x5f72f450": [ + "check(uint256)" + ], + "0x22d8cf5b": [ + "CheckUserVote(uint8,uint8)" + ], + "0xefdecd9b": [ + "check_withdrawdao()" + ], + "0xbd66528a": [ + "claim(bytes32)" + ], + "0x008a745d": [ + "claimDividendShare(uint256)" + ], + "0x0b3ed536": [ + "claimDonations(uint256)" + ], + "0xb88a802f": [ + "claimReward()" + ], + "0x3b751f7f": [ + "claimThroneRP(string)" + ], + "0xe6e7237f": [ + "claim_time_victory(uint256)" + ], + "0x4a1aa767": [ + "claim_victory(uint256,uint8,uint8,uint8)" + ], + "0x4e05ded6": [ + "ClassicCheck()" + ], + "0x565a2ecf": [ + "classicTransfer(address)" + ], + "0x2526d960": [ + "clawback()" + ], + "0x01775f23": [ + "_closeBooks()" + ], + "0xee1b4828": [ + "closeBooks()" + ], + "0x31a3a506": [ + "closeFunding()" + ], + "0xc71b583b": [ + "closeRequest()" + ], + "0x203c03fa": [ + "Coinflip()" + ], + "0x7879e19e": [ + "CollectAllFees()" + ], + "0xaf8b7525": [ + "CollectAndReduceFees(uint256)" + ], + "0xc27b2c2d": [ + "collectEarnings()" + ], + "0xd4d5d32a": [ + "collectFee()" + ], + "0xb17acdcd": [ + "collectFees(uint256)" + ], + "0xeeb57139": [ + "CollectMoney(uint256)" + ], + "0x4a71d469": [ + "collectRev()" + ], + "0xd9fcb31f": [ + "comm_channel()" + ], + "0xf14fcbc8": [ + "commit(bytes32)" + ], + "0xf3bb9741": [ + "commitmentCampaign(uint256,bytes32)" + ], + "0x355474d2": [ + "commitReading(address)" + ], + "0xbe4054b9": [ + "commitReading(address,uint256,uint256,string)" + ], + "0xf2f03877": [ + "commit(uint256,bytes32)" + ], + "0x3da0ac79": [ + "compare()" + ], + "0x3a96fdd7": [ + "compare(string,string)" + ], + "0x4f139314": [ + "compensateLatestMonarch(uint256)" + ], + "0xbfbc793c": [ + "computeNameFuzzyHash(string)" + ], + "0x5aa94a68": [ + "computeResultVoteExtraInvestFeesRate()" + ], + "0x6bdbf8e6": [ + "concat()" + ], + "0x89c19ddb": [ + "concat(string,string)" + ], + "0xc8f8d75d": [ + "Config(uint8,address)" + ], + "0x75cb2672": [ + "configure(address)" + ], + "0x305b73d9": [ + "configure(address,address,uint256,uint8,bytes32,bytes32)" + ], + "0x3773930e": [ + "ConfigureFunction(address,uint256,uint16,uint16,uint16)" + ], + "0x47f3d794": [ + "configure(uint256,uint8,uint256,uint256,uint256,uint256)" + ], + "0x4746cef8": [ + "_confirmAndCheck(address,bytes32)" + ], + "0xffb4c857": [ + "_confirmAndCheck(bytes32)" + ], + "0x0ae08793": [ + "confirmAndCheck(bytes32)" + ], + "0x3f3935d1": [ + "confirmReverse(string)" + ], + "0x0afa9fb9": [ + "contains(int256,address)" + ], + "0x5dbe47e8": [ + "contains(address)" + ], + "0xda4b5e29": [ + "contains()" + ], + "0x1747dfd4": [ + "ContractPlay()" + ], + "0x7e7a2fbf": [ + "contribute_toTheGame()" + ], + "0x1aadcc34": [ + "convertGreyGreen(uint8,uint8)" + ], + "0xc618d15f": [ + "ConvertNumbers(bytes5)" + ], + "0x11cd98ed": [ + "convertToAllTable(uint256,string)" + ], + "0x5020dcf4": [ + "convertToEach(uint256,string,uint256)" + ], + "0xbed1b8b9": [ + "convertToInt(string)" + ], + "0x3733ffca": [ + "convertTo(uint256,string,string)" + ], + "0x90f2c86d": [ + "convertToWei(uint256,string)" + ], + "0x276b94e1": [ + "copypaste()" + ], + "0x60726abb": [ + "copy()" + ], + "0x061ea8cc": [ + "countByOwner(address)" + ], + "0x135128c2": [ + "CounterPartyDeposit()" + ], + "0x1840f0ca": [ + "countVotes(uint256)" + ], + "0xe10e274a": [ + "CrazyEarning()" + ], + "0x4a82534b": [ + "create(address,address,address,uint256,uint8,uint8,uint256)" + ], + "0x66e98c31": [ + "createCoin(string,uint256,uint256,string,string,address)" + ], + "0x0eb0afa6": [ + "createDebt(address,address,uint256)" + ], + "0xf463edd1": [ + "createDocument(uint256)" + ], + "0xe9794dc1": [ + "CreateHash(uint8,string)" + ], + "0x5fe27ab0": [ + "createHKG(address)" + ], + "0xc88961da": [ + "createKingdom(string,address,address,address)" + ], + "0xeac116c4": [ + "createKingdom(string,address,address,address,address)" + ], + "0xa21931ea": [ + "CreateProposal(string,string,string,uint32,string,string,string,uint32,uint32)" + ], + "0xa753d6f2": [ + "CreateProposal(string,string,string,string,string,string,uint32,uint32)" + ], + "0x35cc59a9": [ + "createSchema(bytes)" + ], + "0x4156fdb7": [ + "createSwap(uint256)" + ], + "0x16d960b5": [ + "createThing(bytes32[],bytes32[],uint88)" + ], + "0x8ea822d8": [ + "createThings(bytes32[],uint16[],bytes32[],uint16[],uint88)" + ], + "0x72479140": [ + "CreateTicket(address,uint8,uint8,uint8)" + ], + "0x3d6a32bd": [ + "createTradeContract(address,uint256,uint256,uint256,bool,bool)" + ], + "0x6f9a5eab": [ + "createTx(uint256,address,uint256)" + ], + "0xe1c66292": [ + "Create(uint32,address)" + ], + "0x77863b61": [ + "CrossWhitehatWithdraw(uint256,address)" + ], + "0x26a4861c": [ + "CROWDFUNDING_PERIOD()" + ], + "0xec5c9036": [ + "Crowdsale(address,uint256,uint256)" + ], + "0xe42def21": [ + "CryptoHill()" + ], + "0xeccf1b29": [ + "CrystalDoubler()" + ], + "0xbfc3d84b": [ + "CT()" + ], + "0xce845d1d": [ + "currentBalance()" + ], + "0x80c951bf": [ + "currentClaimPriceInFinney()" + ], + "0x85528394": [ + "currentClaimPriceWei()" + ], + "0xbab2f552": [ + "currentCycle()" + ], + "0x0295d71b": [ + "currentDepositLimit()" + ], + "0xda3c300d": [ + "currentFee()" + ], + "0xb8aca90b": [ + "CurrentGame()" + ], + "0xac4bd53a": [ + "currentLeader()" + ], + "0x499af77c": [ + "current_spin_number()" + ], + "0x06961560": [ + "DAO(address,uint256,uint256,uint256,address)" + ], + "0xcaed4f9f": [ + "DataService()" + ], + "0xd8915fc5": [ + "DCAssetBackend(bytes32,bytes32)" + ], + "0x306387a4": [ + "dealStatus(uint256)" + ], + "0x95669952": [ + "debtor(address,uint256)" + ], + "0xaa6be303": [ + "debtors(address)" + ], + "0x54107401": [ + "declareLove(string,string)" + ], + "0x5c19a95c": [ + "delegate(address)" + ], + "0x928a00d2": [ + "deleteCoin(uint256)" + ], + "0xe4dedc7f": [ + "DeleteContract()" + ], + "0xc0f5a9cb": [ + "deleteThing(bytes32[])" + ], + "0x07ef99a0": [ + "demintTokens(int256,address,uint8)" + ], + "0x4abb9d39": [ + "depletable()" + ], + "0xacfdfd1c": [ + "deploy(uint256,string,string,address)" + ], + "0xec2ac54e": [ + "deposit(address,uint256,bytes32,uint256)" + ], + "0xb7482509": [ + "deposit(address,string)" + ], + "0x47e7ef24": [ + "deposit(address,uint256)" + ], + "0xc5b1a53c": [ + "deposit(bytes16[],uint64)" + ], + "0xaa67c919": [ + "depositFor(address)" + ], + "0xbb3ce7fe": [ + "DepositHolder()" + ], + "0xb47fa7e0": [ + "DepositLimit(uint256)" + ], + "0x44e43cb8": [ + "depositRevenue()" + ], + "0xe241c1d9": [ + "deriveKey(uint256,uint256,uint256)" + ], + "0x9b1ad792": [ + "destroyToken(address,uint256)" + ], + "0x67fbd289": [ + "destroyTokens(uint256)" + ], + "0x2b68b9c6": [ + "destruct()" + ], + "0x41395efa": [ + "dgxBalance()" + ], + "0x56105a08": [ + "DgxSwap()" + ], + "0x594151e0": [ + "Dice()" + ], + "0x5e855f14": [ + "Dice(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)" + ], + "0x6545bed3": [ + "Dice(uint256,uint256,uint256,uint256,uint256,uint256,uint256)" + ], + "0x0f06670a": [ + "didWin(bytes32)" + ], + "0x91b4a0e7": [ + "Difficulty()" + ], + "0x1b3a8e6f": [ + "directionCount(int256,int256,int256,int256)" + ], + "0x0d17bc2e": [ + "_disallow()" + ], + "0x7f3bd56e": [ + "disburse(address,uint256)" + ], + "0x1f0f711f": [ + "discontinue()" + ], + "0x423e7e79": [ + "_dispatchEarnings()" + ], + "0xf240f7c3": [ + "dispute()" + ], + "0x44691f2b": [ + "Dispute()" + ], + "0x4ecd73e2": [ + "DistributeDividends(uint256)" + ], + "0x76577eae": [ + "distributeEarnings()" + ], + "0x2ef875fb": [ + "div10(uint256,uint8)" + ], + "0x058aace1": [ + "divest()" + ], + "0x11af3c68": [ + "divest(address)" + ], + "0xbb504317": [ + "divest(address,uint256)" + ], + "0x8ca17995": [ + "divest(uint256)" + ], + "0x8df554b3": [ + "Dividend()" + ], + "0x4a2b0c38": [ + "DividendProfit()" + ], + "0x0d48e8d0": [ + "doBalance()" + ], + "0xe916d0f0": [ + "doBalance(address)" + ], + "0x33fd066d": [ + "doBalanceFor(address)" + ], + "0xdfdb5f17": [ + "doBurn(address,uint256)" + ], + "0x60c311fd": [ + "doBurnFromContract(address,uint256)" + ], + "0xf1bca7a4": [ + "doCall(uint256)" + ], + "0x7fd238ba": [ + "doCoinage(address[],uint256[],uint256,uint256,uint256)" + ], + "0x8ac78c80": [ + "Docsign()" + ], + "0xddf187b0": [ + "dogFight()" + ], + "0x7997b997": [ + "doMelt(uint256,uint256)" + ], + "0xad1ef61e": [ + "donkeyInvested(address)" + ], + "0xc9bbc8c0": [ + "donkeyName(address)" + ], + "0x26161670": [ + "donkeyRanking(uint256)" + ], + "0x23509e69": [ + "donkeysEligibleForFees()" + ], + "0x37751b35": [ + "doTransfer(address,address,uint256)" + ], + "0x13220305": [ + "doTransferOther(address,address,address,uint256)" + ], + "0xdc583801": [ + "doubleyour5()" + ], + "0x4974bc27": [ + "download()" + ], + "0x9890220b": [ + "drain()" + ], + "0x0eecae21": [ + "draw()" + ], + "0x89d8ca67": [ + "drawPot(bytes32,bytes32)" + ], + "0x18433bb7": [ + "DrawPrepare()" + ], + "0xe436bdf3": [ + "Draws(uint256)" + ], + "0x4f39ca59": [ + "drop(bytes32)" + ], + "0x200538c6": [ + "DTE()" + ], + "0x5e0e2957": [ + "dumpOut()" + ], + "0xef5daf01": [ + "_dumpToCompany()" + ], + "0xaca66aec": [ + "DVIP()" + ], + "0xf245b9e4": [ + "DVIP(address)" + ], + "0xe570be18": [ + "DVIPBackend(address,address)" + ], + "0xa08b3367": [ + "EC()" + ], + "0xdb318833": [ + "_ecAdd(uint256,uint256,uint256,uint256,uint256,uint256)" + ], + "0xf47289e1": [ + "_ecDouble(uint256,uint256,uint256)" + ], + "0x913f424c": [ + "_ecMul(uint256,uint256,uint256,uint256)" + ], + "0x0c7de59d": [ + "edit(address,bytes,bool)" + ], + "0xf63da25b": [ + "Emailer()" + ], + "0x23385089": [ + "emitApprove(address,address,uint256)" + ], + "0xe3a9b508": [ + "EnableDisableTokenProxy()" + ], + "0x2c46d8d5": [ + "EndRound(uint256)" + ], + "0xacbf98a7": [ + "endsWith()" + ], + "0xf67abd87": [ + "entryDetails(uint256)" + ], + "0xd4625a3a": [ + "equals()" + ], + "0x46bdca9a": [ + "equal(string,string)" + ], + "0xfc72c1ef": [ + "ERC20Base(uint256)" + ], + "0x0bd2ae1c": [ + "ERW()" + ], + "0x22f607f6": [ + "Escrow()" + ], + "0x0bad342a": [ + "EscrowContract(address,address,address,address,uint256,uint256,uint256,uint256)" + ], + "0x8383bfc8": [ + "EscrowFoundry()" + ], + "0x1768b436": [ + "ETCSurvey()" + ], + "0xdbf45aa3": [ + "EthBank()" + ], + "0x838445e8": [ + "EtherAds(address,address,address)" + ], + "0x1df5e755": [ + "Etherandom()" + ], + "0x384e5018": [ + "etherandomCallbackAddress()" + ], + "0xd216d55d": [ + "etherandomExec(bytes32,bytes32,uint256)" + ], + "0x1f201e39": [ + "etherandomExecWithGasLimit(bytes32,bytes32,uint256,uint256)" + ], + "0xa715ff59": [ + "EtherandomProxy()" + ], + "0x36f9f49c": [ + "etherandomSeed()" + ], + "0x70e71ea3": [ + "etherandomSeedWithGasLimit(uint256)" + ], + "0x4d561721": [ + "etherandomSetNetwork()" + ], + "0x7ca55e00": [ + "etherandomVerify(bytes32,bytes32,bytes32,uint256,uint256)" + ], + "0x29bed3bf": [ + "EthereumRoulette()" + ], + "0xd81f53fd": [ + "EtherId()" + ], + "0x50e06b57": [ + "Etherization()" + ], + "0xd409ddda": [ + "EtherizationUtils()" + ], + "0xff7f5f2a": [ + "EtherizationUtils2()" + ], + "0xf9a794ad": [ + "EtherLovers()" + ], + "0x1558ae4d": [ + "Etheroll()" + ], + "0xa08d3f83": [ + "Etheropt(uint256,string,uint256,uint256,bytes32,address,int256[])" + ], + "0xadd43c59": [ + "EtherTopDog()" + ], + "0x356594ab": [ + "EtherTransfer()" + ], + "0x0da3e613": [ + "EthFactory()" + ], + "0xf5f6ea26": [ + "EthOne()" + ], + "0x3023d0c4": [ + "Ethstick()" + ], + "0x6f13e01b": [ + "EthVenturePlugin()" + ], + "0x4054f5de": [ + "EthVentures3()" + ], + "0x9c172f87": [ + "EthVentures4()" + ], + "0xd5171523": [ + "euroteambet()" + ], + "0x9f87acd0": [ + "exec(bytes32,bytes32,uint256)" + ], + "0xf4993bbd": [ + "executeEmergencyWithdrawal()" + ], + "0x38557648": [ + "executeSellOrder(address)" + ], + "0x4d782cbc": [ + "executeSellOrder()" + ], + "0x140b4465": [ + "executeSpendingRequests()" + ], + "0x3462f32d": [ + "execWithGasLimit(bytes32,bytes32,uint256,uint256)" + ], + "0xd4649fde": [ + "expire(uint256,uint8,bytes32,bytes32,bytes32)" + ], + "0x03cf4fd6": [ + "expire(uint256,uint256,uint8,bytes32,bytes32,bytes32)" + ], + "0x419945f8": [ + "ExpiringMarket(uint256)" + ], + "0x37930615": [ + "extend(bytes16[],uint64)" + ], + "0x6a6d31db": [ + "externalEnter()" + ], + "0xf55b23c0": [ + "externalLeave()" + ], + "0xe2056c46": [ + "ExtraBalToken()" + ], + "0x7ef95c6f": [ + "extractAccountAllowanceRecordLength(address)" + ], + "0x4de162e4": [ + "extractAccountLength()" + ], + "0x727089f1": [ + "extractAllowanceLength()" + ], + "0x8f731077": [ + "extractAllowanceRecordLength(address)" + ], + "0xc8117b5b": [ + "extractBalanceOfLength()" + ], + "0x1cf43b63": [ + "extractExportFeeChargeLength()" + ], + "0xa056469a": [ + "extractFeeLength()" + ], + "0xb5a6c525": [ + "extractFrozenAccountLength()" + ], + "0xd1da09ee": [ + "extractImportFeeChargeLength()" + ], + "0x2885b593": [ + "extractMasterKeyIndexLength()" + ], + "0x981a60f5": [ + "extractNameFromData(bytes)" + ], + "0xb764e273": [ + "failSend()" + ], + "0xc57a050e": [ + "fairandeasy()" + ], + "0xa5e62f02": [ + "fallbackRP()" + ], + "0x93e02d13": [ + "FallenLeaders()" + ], + "0xd3732642": [ + "FastRealisticPyramid()" + ], + "0xc5096a69": [ + "feeFor(address,address,uint256)" + ], + "0x6860fd58": [ + "Fees(uint256)" + ], + "0x5b151fd2": [ + "fifty_fifty()" + ], + "0x75438e49": [ + "fillGas()" + ], + "0x884b5dc2": [ + "fill(uint256[])" + ], + "0x7ff729fc": [ + "fillUpProject(uint256,uint256)" + ], + "0xbf12165e": [ + "fillUpSlot(uint256,uint256)" + ], + "0x5fa513d5": [ + "findPtr(uint256,uint256,uint256,uint256)" + ], + "0x70d53be5": [ + "find()" + ], + "0xc9bd2893": [ + "fines()" + ], + "0x2cce4abe": [ + "_finishNoCallback()" + ], + "0x113e6b66": [ + "fipsAddToLedger(bytes20,address)" + ], + "0xaa8dea8c": [ + "fipsAddToLedger(bytes20,address,bytes)" + ], + "0xa289673b": [ + "fipsChangeOwner(bytes20,address,address)" + ], + "0x1dcb304b": [ + "fipsGenerate()" + ], + "0x7910085d": [ + "fipsIsRegistered(bytes20)" + ], + "0x3ae7cdfa": [ + "fipsLegacyRegister(bytes20[],address)" + ], + "0xdfce8ac3": [ + "fipsLegacyRegister(bytes20,address,bytes)" + ], + "0x5cb18a6d": [ + "fipsLegacyRegisterMulti(bytes20[],address,bytes)" + ], + "0x3def449b": [ + "FipsNotary()" + ], + "0x7620f4bb": [ + "fipsNotaryLegacy68b4()" + ], + "0x5084da18": [ + "fipsOwner(bytes20)" + ], + "0x3df76482": [ + "fipsPublishData(bytes20,bytes)" + ], + "0xfba06849": [ + "fipsPublishDataMulti(bytes20[],bytes)" + ], + "0x74d4ab27": [ + "fipsRegister()" + ], + "0x419ffa03": [ + "fipsRegister(address)" + ], + "0xb16562fe": [ + "fipsRegister(address,bytes)" + ], + "0x1531c267": [ + "fipsRegisterMulti(uint256,address,bytes)" + ], + "0x3dc02266": [ + "fipsRegister(uint256)" + ], + "0x2f62a6ff": [ + "fipsRegister(uint256,address,bytes)" + ], + "0xc12af1ce": [ + "fipsRegister(uint256,bytes)" + ], + "0x2fa00e58": [ + "fipsTransfer(bytes20,address)" + ], + "0x42402c2c": [ + "fipsTransferMulti(bytes20[],address)" + ], + "0x9e9d3aa4": [ + "FirstBloodToken(address,address,uint256,uint256)" + ], + "0x3df4ddf4": [ + "first()" + ], + "0xe87df70e": [ + "fivetimes()" + ], + "0x912de8de": [ + "fixBalance()" + ], + "0xf1c760ae": [ + "fixBalanceInternal(address)" + ], + "0x3369dace": [ + "flipTheCoinAndWin()" + ], + "0x6b9f96ea": [ + "flush()" + ], + "0x446a7974": [ + "Fokitol()" + ], + "0x6a5da6e5": [ + "followCampaign(uint256)" + ], + "0x384b1393": [ + "follow(uint256)" + ], + "0x7cf0ffcb": [ + "forceDivestAll()" + ], + "0x29e206bd": [ + "forceDivestAll(bool)" + ], + "0x232523e8": [ + "forceDivestOfAllInvestors()" + ], + "0x51404cbe": [ + "forceDivestOfOneInvestor(address)" + ], + "0x93feb13b": [ + "ForceSendHelper(address)" + ], + "0x11b9fee8": [ + "ForkChecker(uint256,bytes32)" + ], + "0x16c72721": [ + "forked()" + ], + "0xd264e05e": [ + "forward()" + ], + "0xa4d575ce": [ + "_forward(address,bytes)" + ], + "0xac562666": [ + "freezeCoin()" + ], + "0xb466b76f": [ + "fresh()" + ], + "0xb72e717d": [ + "fromAddress(address)" + ], + "0x891de9ed": [ + "fromTLA(string)" + ], + "0x3c067945": [ + "fundBalance()" + ], + "0x43243797": [ + "fundsOf(address)" + ], + "0xca708230": [ + "funnel()" + ], + "0xfc108f70": [ + "GamblerPerAddress(address)" + ], + "0xefa7e56b": [ + "GameEnds()" + ], + "0x2143da91": [ + "GameOfThrones()" + ], + "0xa10edc55": [ + "GeneralPurposeProfitSplitter()" + ], + "0x4d70d1d7": [ + "generateId(uint256)" + ], + "0x6f6c0244": [ + "generateShortLink()" + ], + "0x419db07b": [ + "generousFee()" + ], + "0xfa7d68f1": [ + "getAccountInfo(uint256,uint256)" + ], + "0x10082bff": [ + "getActorBillXdetail(address,uint256,bool)" + ], + "0x04fc11d5": [ + "getActual()" + ], + "0x21f8a721": [ + "getAddress(bytes32)" + ], + "0x6795dbcd": [ + "getAddress(bytes32,string)" + ], + "0x42c69566": [ + "get_address(address,string)" + ], + "0xe7b48f74": [ + "get(int256,address)" + ], + "0x579cdf17": [ + "getAdminName(address)" + ], + "0xc8edf65e": [ + "GetAndReduceFeesByFraction(uint256)" + ], + "0xc6ed8e1b": [ + "getApprovedProxys()" + ], + "0xf9cc0605": [ + "getAvailable()" + ], + "0x12065fe0": [ + "getBalance()" + ], + "0x1177892f": [ + "getBalanceByAdress(address)" + ], + "0x565a2e2c": [ + "getBeneficiary()" + ], + "0xa6afd5fd": [ + "getBets()" + ], + "0x061e494f": [ + "getBet(uint256)" + ], + "0x8c98117c": [ + "getBill(uint256,uint256)" + ], + "0xe422ebe9": [ + "getBot()" + ], + "0x618fa9ce": [ + "getBotBillingIndex(uint256,uint256)" + ], + "0x4ae9af61": [ + "getBotStats(uint256,uint256)" + ], + "0x5f70d9ac": [ + "getBot(uint256)" + ], + "0xc06c4474": [ + "get_burned(bytes32)" + ], + "0xc00ca383": [ + "getByOwner(address,uint256)" + ], + "0x8eaa6ac0": [ + "get(bytes32)" + ], + "0xd120a284": [ + "getBytesFromNumbers(uint8[3])" + ], + "0x1f6e5117": [ + "getCallbackAddress()" + ], + "0x769dc523": [ + "GetCategoryNumber(bytes4)" + ], + "0x7281854d": [ + "GetCategoryValue(uint8)" + ], + "0xc88cc6ac": [ + "getCertification(address)" + ], + "0x777feff5": [ + "getCertificationDbAtIndex(uint256)" + ], + "0x808ab1d6": [ + "getCertificationDbCount()" + ], + "0xfd260dfc": [ + "getCertificationDbStatus(address)" + ], + "0xde629235": [ + "getCertificationDocumentAtIndex(address,uint256)" + ], + "0xd5582205": [ + "getCertifiedStudentAtIndex(uint256)" + ], + "0x038461ea": [ + "getCertifiedStudentsCount()" + ], + "0x2f695053": [ + "getCertifierAtIndex(uint256)" + ], + "0x56d73ad1": [ + "getCertifierDb()" + ], + "0x6e63015c": [ + "getCertifiersCount()" + ], + "0x05b765ea": [ + "getCertifierStatus(address)" + ], + "0x045236b4": [ + "getChainyData(string)" + ], + "0x919edc7c": [ + "getChainySender(string)" + ], + "0xe8b13c44": [ + "getChainyTimestamp(string)" + ], + "0x233120aa": [ + "getChainyURL()" + ], + "0xd7130651": [ + "getCity(uint256)" + ], + "0xd0068f80": [ + "getClient(uint256)" + ], + "0x3aa94b1d": [ + "getCoinStats(uint256)" + ], + "0xda311588": [ + "getCoin(uint256)" + ], + "0xe65d6b49": [ + "getCommission()" + ], + "0x69bcdb7d": [ + "getCommitment(uint256)" + ], + "0xf896503a": [ + "getConfigAddress(bytes32)" + ], + "0xea3ebae6": [ + "getConfigBool(bytes32)" + ], + "0x62c7855b": [ + "getConfigBytes(bytes32)" + ], + "0xb44bd51d": [ + "getConfig(string)" + ], + "0x5c1b3ca1": [ + "getConfigUint(int256,bytes32)" + ], + "0xd408746a": [ + "GetContractAddr()" + ], + "0xd3edcb5b": [ + "getCreditorAddresses()" + ], + "0x81064e2d": [ + "getCreditorAmounts()" + ], + "0x77c78df9": [ + "getCurrentLevel()" + ], + "0x2bf4e53d": [ + "getCurrentShareholders()" + ], + "0x329bfc33": [ + "getCurrentWinner()" + ], + "0x152cf9db": [ + "getDataPoint(int256,uint256,uint256)" + ], + "0xcf69df28": [ + "getDataRequestLength()" + ], + "0x88f53db1": [ + "getDataRequest(uint256)" + ], + "0xd2b0d554": [ + "getDisclaimer()" + ], + "0x80ede329": [ + "getDocumentDetails(uint256)" + ], + "0x16e55626": [ + "getDogName(address)" + ], + "0x1a7a98e2": [ + "getDomain(uint256)" + ], + "0xbe6307c8": [ + "getDraw(uint256)" + ], + "0x2fa7cbfb": [ + "getExecCost(uint256)" + ], + "0x752bacce": [ + "getExecPrice()" + ], + "0xba1162d7": [ + "getFmLength()" + ], + "0xd63547e6": [ + "GetFreeCnt()" + ], + "0x4a7e049e": [ + "getFullCompany(address,uint256)" + ], + "0x3e853128": [ + "getGasForXau(address)" + ], + "0x455259cb": [ + "getGasPrice()" + ], + "0x75608264": [ + "get_hash(uint8,bytes32)" + ], + "0xbba91ea7": [ + "getHomeadvIndex(uint256)" + ], + "0x24fc65ed": [ + "getId(uint256,uint256)" + ], + "0xb7de47d3": [ + "getIndex(uint256,uint256)" + ], + "0x2b98222e": [ + "getInstitutionByAddress(address)" + ], + "0x6da1833c": [ + "getInstitutionByName(string)" + ], + "0x728af7ec": [ + "getInterest(uint256,uint256)" + ], + "0x0a80ef45": [ + "getIsClosed()" + ], + "0x0ed21029": [ + "getIssueAssignee(uint256,bytes32)" + ], + "0x706dfe54": [ + "getIssueState(uint256,bytes32)" + ], + "0xc5bf339c": [ + "getLastNonPublished()" + ], + "0x65fa2f7f": [ + "getLastPrice(uint256)" + ], + "0x89f4ed7a": [ + "getLastTag(uint256)" + ], + "0x29a065bd": [ + "getLOg(uint256)" + ], + "0xe0e3ba5a": [ + "getLosesShare(address)" + ], + "0x550ed1f0": [ + "getMaxBetAmount()" + ], + "0x82a5285d": [ + "getMinBetAmount()" + ], + "0x5af73f3f": [ + "getMinimalBalance(uint256,address)" + ], + "0x90daaf67": [ + "getMinimalDeposit()" + ], + "0xf909d60d": [ + "getMinimumGasLimit()" + ], + "0x724ae9d0": [ + "getMinInvestment()" + ], + "0xa538d287": [ + "getMinMax()" + ], + "0x686e8aaa": [ + "GetMoney()" + ], + "0x3cc86b80": [ + "GetMoney(uint256,address)" + ], + "0x50ab6f7f": [ + "getMsgs()" + ], + "0xc1d4f708": [ + "getMwLength()" + ], + "0xcfb3a493": [ + "getMyBounty(uint256)" + ], + "0xb484e532": [ + "getMyMsg()" + ], + "0xc003b082": [ + "getMyPlayerID()" + ], + "0x36ffa905": [ + "getMyProposals()" + ], + "0x0645b5d5": [ + "getMyShareholderID()" + ], + "0x3e83fe36": [ + "getMyShares()" + ], + "0xea1bf386": [ + "getNextSellerBOTdata(uint256)" + ], + "0x2ade6c36": [ + "getNodeAddress(bytes32)" + ], + "0xbbe4fd50": [ + "getNow()" + ], + "0x1c895915": [ + "getNumberOfPayments(uint256)" + ], + "0x5819dde2": [ + "getNumbersFromBytes(bytes3)" + ], + "0x017972af": [ + "getNumbersFromHash(bytes32)" + ], + "0x06638e92": [ + "GetNumbersFromHash(bytes32)" + ], + "0x57ee24af": [ + "getNum(bytes32,uint256)" + ], + "0xb39a64cd": [ + "getNumCalled()" + ], + "0x52200a13": [ + "getNumHolders(uint256)" + ], + "0x72ea4b8c": [ + "getNumInvestors()" + ], + "0xa8893a6e": [ + "getNumOfSalesWithSameId(bytes16)" + ], + "0x531c1b33": [ + "getOperatingBudget()" + ], + "0x09574810": [ + "getOperationsNumber()" + ], + "0x202e3924": [ + "getOperation(uint256)" + ], + "0xfaa1a8ff": [ + "getOwnedBot(address,uint256)" + ], + "0x0ae50a39": [ + "GetOwner()" + ], + "0xe74ffbd5": [ + "getPart(bytes32,uint256)" + ], + "0xd085e66e": [ + "GetPart(bytes32,uint256)" + ], + "0xe42d5be0": [ + "getPaymentOf(address)" + ], + "0x5a825cbb": [ + "getPayment(uint256,uint256)" + ], + "0xe56556a9": [ + "getPlayerID(address)" + ], + "0x953aa435": [ + "GetPrice(uint8)" + ], + "0x116c6eab": [ + "getProfitShare(address)" + ], + "0x7486a8e3": [ + "get_publisher(bytes32)" + ], + "0x6a28db13": [ + "getQrLength()" + ], + "0x163aba3c": [ + "getQueryFee()" + ], + "0xf1b3f968": [ + "getRaceEndBlock()" + ], + "0xcd4b6914": [ + "getRandom(uint256)" + ], + "0x7bcd7fad": [ + "getRecordAtIndex(uint256)" + ], + "0xb719d1d0": [ + "getRegInfo(address)" + ], + "0x052b2aa7": [ + "getRegistrants()" + ], + "0xadd4c784": [ + "getResult(bytes32)" + ], + "0x7332b520": [ + "getRewardsCount(uint256)" + ], + "0x85dd2148": [ + "getSaleDate(bytes16)" + ], + "0xac92fdb5": [ + "getSaleDate(bytes16,uint256)" + ], + "0xd239ea8b": [ + "getSchemasLenght()" + ], + "0x288c6ed2": [ + "getSeedCost(uint256)" + ], + "0x9183fd01": [ + "getSeedPrice()" + ], + "0x347632e8": [ + "getShareholderAdressByID(uint256)" + ], + "0x308d6613": [ + "getSignData(uint256,uint8)" + ], + "0xb36a0b15": [ + "getSignDetails(uint256,uint8)" + ], + "0x28dcfdac": [ + "getSignsCount(uint256)" + ], + "0x842bc37b": [ + "GetSmallCotractIndex(address)" + ], + "0xafa293d4": [ + "getSource()" + ], + "0xe9e7a667": [ + "get_stake(bytes32)" + ], + "0x22b0f6ee": [ + "getStatusOfPayout(uint256)" + ], + "0x9a0af2ec": [ + "getStLength()" + ], + "0x693ec85e": [ + "get(string)" + ], + "0x4a0d89ba": [ + "getSwap(uint256)" + ], + "0x7ac26aeb": [ + "getTag(string,uint256)" + ], + "0xdf300b46": [ + "getThing(bytes32[])" + ], + "0x55b62dcf": [ + "getThresold(uint256)" + ], + "0x002a5cc9": [ + "getTicketHolders(uint256)" + ], + "0x9f0e3107": [ + "get_timestamp(bytes32)" + ], + "0x82b2e257": [ + "getTokenBalance()" + ], + "0xacab021c": [ + "getTOS(address)" + ], + "0x12b58349": [ + "getTotalBalance()" + ], + "0xc4e41b22": [ + "getTotalSupply()" + ], + "0xcaa648b4": [ + "getTotalValue()" + ], + "0xf709dd51": [ + "getTrademark()" + ], + "0x9bb0e4df": [ + "getUint(int256,bytes32,string)" + ], + "0x74e4435f": [ + "getUserAddress(uint256,bytes32)" + ], + "0xa2bb5d48": [ + "get_username(address)" + ], + "0x6de00927": [ + "GetUserRank(uint8,address)" + ], + "0xff981099": [ + "getVotes(uint256)" + ], + "0xffb1a6cb": [ + "getWins(address)" + ], + "0x4ae8c55f": [ + "getWwLength()" + ], + "0xfb9a4595": [ + "GitHubBounty()" + ], + "0x0b7373d6": [ + "giveAllBack()" + ], + "0x04706fdf": [ + "giveContributionsBackProfitBugged()" + ], + "0xb5299ca6": [ + "giveMeat()" + ], + "0x9e7b8d61": [ + "giveRightToVote(address)" + ], + "0x35ae41c9": [ + "godAutomaticCollectFee()" + ], + "0x691bfc89": [ + "goods(uint16,uint256)" + ], + "0x7c25f260": [ + "Government()" + ], + "0xbb6a0853": [ + "GreedPit()" + ], + "0x92ba4ba6": [ + "GridMember(string,uint256,bool,address,address)" + ], + "0x3cc7790a": [ + "GSI()" + ], + "0xa1c95ac2": [ + "GSIToken(uint256,string,uint8,string,address)" + ], + "0x75f96ead": [ + "Guess(uint256)" + ], + "0xdf143fb7": [ + "HackerGold(address)" + ], + "0x5ed7ca5b": [ + "halt()" + ], + "0x4f28af6a": [ + "handleBet(uint256)" + ], + "0xcb96012e": [ + "hashTo256(bytes32)" + ], + "0x650955d4": [ + "HashToken()" + ], + "0xa1add510": [ + "hasRelation(bytes32,bytes32,address)" + ], + "0x06f36cc9": [ + "helpBlue()" + ], + "0x353928d8": [ + "helpRed()" + ], + "0xce373b95": [ + "heroOfThePit()" + ], + "0xaeeb96af": [ + "Highlander()" + ], + "0x7eb69ba1": [ + "hint(int256,bytes32,string,bytes20)" + ], + "0xc98031be": [ + "hintURL(int256,bytes32,string)" + ], + "0xef4ffee2": [ + "Honestgamble()" + ], + "0xa6027d53": [ + "IconomiTokenTest(uint256,string,uint8,string,uint256)" + ], + "0xb98fdc36": [ + "IconomiToken(uint256,string,uint8,string,uint256)" + ], + "0xdaf22f4d": [ + "identify(bytes32)" + ], + "0xaf640d0f": [ + "id()" + ], + "0xf7c3ee7a": [ + "immortality()" + ], + "0x602acca1": [ + "InchainICO(address[],uint256)" + ], + "0xa4beffa7": [ + "increaseInvestment()" + ], + "0xcab5c0f1": [ + "_incrementState()" + ], + "0x1e8c72b4": [ + "incrUserAvailBal(address,uint256,bool)" + ], + "0x3d5db1c2": [ + "incrUserOnholdBal(address,uint256,bool)" + ], + "0x22686250": [ + "index(int256,uint256)" + ], + "0x1f13de92": [ + "inEther(uint256)" + ], + "0x9334ab61": [ + "Infos()" + ], + "0x4a1f0bf6": [ + "inheritToNextGeneration(address)" + ], + "0x2cc0b254": [ + "init(address,bytes32)" + ], + "0x87ebd76c": [ + "initContract(string,string,uint256,uint256)" + ], + "0x23584a21": [ + "initStats(string,address,uint256)" + ], + "0x98eaca94": [ + "inKissBTC(uint256)" + ], + "0xa0469b02": [ + "inputToDigit(uint256)" + ], + "0xfeaa29d8": [ + "insertProfitHere()" + ], + "0x46af23f5": [ + "InstantLottery(address,address,bool,address)" + ], + "0xf83d96c1": [ + "InsuranceAgent()" + ], + "0x8cecf66e": [ + "_inverse(uint256)" + ], + "0xadfe6b80": [ + "InvestAdd()" + ], + "0x391f2e96": [ + "InvestCancel()" + ], + "0x4f013184": [ + "investInTheSystem()" + ], + "0xc4321adb": [ + "investInTheSystem(uint256)" + ], + "0x2afb21bc": [ + "InvestWithdraw()" + ], + "0x76285b5b": [ + "_is360thDay()" + ], + "0x74eb9b68": [ + "isAccountLocked(address)" + ], + "0x1cf52f2b": [ + "isActiveRegistrant(address)" + ], + "0x24d7806c": [ + "isAdmin(address)" + ], + "0xfc1f7652": [ + "_isBoardMember(address)" + ], + "0xda7d0082": [ + "isCertification(address,bytes32)" + ], + "0x5afa5036": [ + "isCertified(address)" + ], + "0x1c2353e1": [ + "isCertifier(address)" + ], + "0x37b0574a": [ + "isClassic()" + ], + "0xc2b6b58c": [ + "isClosed()" + ], + "0x57eaeddf": [ + "_isContract()" + ], + "0x2f553d31": [ + "isCreated(bytes32)" + ], + "0x5445e38c": [ + "_isCycleValid(uint256)" + ], + "0x88eb7af7": [ + "_isHuman()" + ], + "0xaa51793c": [ + "isLosingBet(uint256)" + ], + "0x42f6e389": [ + "isModule(address)" + ], + "0x6534b4e2": [ + "IsPayoutReady__InfoFunction(bytes32)" + ], + "0x245a6f74": [ + "isProxyLegit(address)" + ], + "0x3e5cee05": [ + "issueIOU(string,uint256,address)" + ], + "0x05d87fe2": [ + "issueLetterOfCredit(uint256,uint256,uint256)" + ], + "0x40fdf515": [ + "issuetender(address,uint256,uint256)" + ], + "0x475a9fa9": [ + "issueTokens(address,uint256)" + ], + "0x4adcbd19": [ + "isThisHardforkedVersion()" + ], + "0xaf5610dd": [ + "isThisPreforkVersion()" + ], + "0x7c4c27c8": [ + "isThisPuritanicalVersion()" + ], + "0x4209fff1": [ + "isUser(address)" + ], + "0x04d10f1c": [ + "isValidChainyJson(string)" + ], + "0x6662e4be": [ + "isWinningBet(uint256)" + ], + "0x99aeade3": [ + "iterateTable(uint256,uint256)" + ], + "0x3b46a7df": [ + "ivote(bool)" + ], + "0x0138e31b": [ + "_jAdd(uint256,uint256,uint256,uint256)" + ], + "0xed64bea4": [ + "JamCoin()" + ], + "0x5f972df8": [ + "_jDiv(uint256,uint256,uint256,uint256)" + ], + "0x9743dfc1": [ + "jesterAutomaticCollectFee()" + ], + "0x5b764811": [ + "_jMul(uint256,uint256,uint256,uint256)" + ], + "0x4a7b26ec": [ + "join_game(uint256)" + ], + "0x1ecfe64d": [ + "_jSub(uint256,uint256,uint256,uint256)" + ], + "0x691fb8ea": [ + "jumpIn()" + ], + "0xc53ad76f": [ + "Kardashian()" + ], + "0x775dec49": [ + "keccak()" + ], + "0xbe26733c": [ + "Kill()" + ], + "0x73abecbb": [ + "kill1()" + ], + "0x2bb685bc": [ + "kill2()" + ], + "0x179b73da": [ + "killBoardProposal(uint256,address)" + ], + "0xb0c7f709": [ + "kingAutomaticCollectFee()" + ], + "0x7e81b6aa": [ + "KingdomFactory()" + ], + "0x5e68ac2c": [ + "Kingdom(string,address,address,address,uint256,uint256,uint256,uint256,uint256)" + ], + "0x31ae0019": [ + "KissBTC()" + ], + "0x07e00bcb": [ + "kissBTCCallback(uint256,uint256)" + ], + "0x47799da8": [ + "last()" + ], + "0x7075b1d8": [ + "latestMonarchInternal()" + ], + "0xfa6d373c": [ + "LeaderHash()" + ], + "0x9fb25d9e": [ + "LeaderMessage()" + ], + "0x166c4b85": [ + "len(bytes32)" + ], + "0xd95a2d42": [ + "lendGovernmentMoney(address)" + ], + "0x56d88e27": [ + "len()" + ], + "0xfe71aec5": [ + "LittleCactus()" + ], + "0x7b647652": [ + "LittleEthereumDoubler()" + ], + "0xf83d08ba": [ + "lock()" + ], + "0xe8d1e961": [ + "lockAccount(uint256)" + ], + "0x3a7d280c": [ + "login(string)" + ], + "0x4cbee813": [ + "logout(string)" + ], + "0x41304fac": [ + "log(string)" + ], + "0x71e2d919": [ + "lol()" + ], + "0x3fd1f232": [ + "LookAtAllTheseTastyFees()" + ], + "0xf7bd2361": [ + "LookAtBalance()" + ], + "0x25d4bdeb": [ + "LookAtCollectedFees()" + ], + "0x7ee65635": [ + "LookAtDepositsToPlay()" + ], + "0xb0ecca8f": [ + "LookAtLastTimePerZone(uint256)" + ], + "0xb1c6517a": [ + "LookAtNumberOfPlayers()" + ], + "0xdfca2f53": [ + "LookAtPrizes()" + ], + "0xa9fbc614": [ + "lookupTicketHolder(uint256)" + ], + "0xba13a572": [ + "lottery()" + ], + "0x21bb79fe": [ + "luckyDogInfo()" + ], + "0xb74bc710": [ + "LuckyDoubler()" + ], + "0x5a2ee019": [ + "m()" + ], + "0x8af49ab7": [ + "maintain(uint256,uint256)" + ], + "0x561e91a1": [ + "makeBet()" + ], + "0x1077f06c": [ + "makeClaim(uint256)" + ], + "0x059a500c": [ + "makeDeposit(uint256)" + ], + "0x3df16377": [ + "make_move_and_claim_victory(uint256,uint8,uint8,uint8,uint8,uint8,uint8,uint8)" + ], + "0xa35cfa22": [ + "make_move(uint256,uint8,uint8,uint8,uint8)" + ], + "0x2f1e4968": [ + "makeNewProposal(string,uint256)" + ], + "0x8b543b80": [ + "maximumCredit(address)" + ], + "0x11fe773d": [ + "memcpy(uint256,uint256,uint256)" + ], + "0x62be3172": [ + "Message(address,address,address,string)" + ], + "0x0257c48c": [ + "meta(bytes32,bytes32)" + ], + "0x7958533a": [ + "meta(uint256,bytes32)" + ], + "0x8f8bde82": [ + "MicroDAO()" + ], + "0x1e701780": [ + "MICRODAO(address,uint256,uint256,uint256,address)" + ], + "0x026993e0": [ + "Midas(address,address)" + ], + "0xfa968eea": [ + "minBetAmount()" + ], + "0xd10e99fe": [ + "mint(int256,bytes32)" + ], + "0x3a7fb796": [ + "mintGreen(int256,address,uint256)" + ], + "0x77ceded8": [ + "mintGrey(int256,address,uint256)" + ], + "0xf41bfa9e": [ + "mint(int256,uint256,string)" + ], + "0x411c4e72": [ + "ModifyFeeFraction(uint256)" + ], + "0xa20c404f": [ + "ModifySettings(uint256,uint256,uint256,uint256,uint256,uint256,uint256)" + ], + "0x689b3e2d": [ + "Moonraker(address,address)" + ], + "0x5837e083": [ + "move_history(uint256)" + ], + "0xd8a8e03a": [ + "move(uint256,address)" + ], + "0x231944e2": [ + "moveUnits(uint256,uint256,uint256[])" + ], + "0x33f472b9": [ + "MPO()" + ], + "0xf714de9c": [ + "MultiAccess()" + ], + "0x4f60f334": [ + "multiAccessAddOwner(address)" + ], + "0x092a2e37": [ + "multiAccessAddOwnerD(address,address)" + ], + "0x69a5e902": [ + "multiAccessCall(address,uint256,bytes)" + ], + "0x8b9726c1": [ + "multiAccessCallD(address,uint256,bytes,address)" + ], + "0x9bd99195": [ + "multiAccessChangeOwner(address,address)" + ], + "0x6c494843": [ + "multiAccessChangeOwnerD(address,address,address)" + ], + "0x6d522b19": [ + "multiAccessChangeRequirementD(uint256,address)" + ], + "0x62891b5d": [ + "multiAccessChangeRequirement(uint256)" + ], + "0x446294ad": [ + "multiAccessGetOwners()" + ], + "0xeb7402f5": [ + "multiAccessHasConfirmed(bytes32,address)" + ], + "0xe419f189": [ + "multiAccessIsOwner(address)" + ], + "0x73f310df": [ + "multiAccessRemoveOwner(address)" + ], + "0x5a74dee5": [ + "multiAccessRemoveOwnerD(address,address)" + ], + "0x7ed19af9": [ + "multiAccessRevoke(bytes32)" + ], + "0xd1b4ff7e": [ + "multiAccessRevokeD(bytes32,address)" + ], + "0xd1cf113e": [ + "multiAccessSetRecipient(address)" + ], + "0x7429f1eb": [ + "multiAccessSetRecipientD(address,address)" + ], + "0x30677b83": [ + "multiplierFactor()" + ], + "0x9d7d6667": [ + "multipliers()" + ], + "0xfbeaebc6": [ + "murder()" + ], + "0x98391c94": [ + "muteMe(bool)" + ], + "0x0bd089ab": [ + "MyAdvancedToken(uint256,string,uint8,string,address)" + ], + "0xc95e81cb": [ + "MyBet(uint8,address)" + ], + "0x6e658fbe": [ + "myFundsExpireIn(uint256)" + ], + "0x089327de": [ + "MyToken()" + ], + "0x041d0c0b": [ + "MyTokenLoad(uint256,string,uint8,string,address)" + ], + "0x1d2bca17": [ + "MyToken(uint256,string,uint8,string)" + ], + "0x2e52d606": [ + "n()" + ], + "0x19350aea": [ + "nameFor(address)" + ], + "0x3bcf7d22": [ + "newBribedCitizen(address)" + ], + "0xba487e62": [ + "newCampaign(uint32,uint96,uint16,uint16)" + ], + "0x927ed13a": [ + "newClient(uint256,address)" + ], + "0x1df473bc": [ + "newContract(bytes)" + ], + "0xf3dd3d8a": [ + "newCurrency(string,string,uint8)" + ], + "0x78ae88d1": [ + "newDeal(uint256,uint256,uint256,uint256,uint256)" + ], + "0x7c69b5d1": [ + "NewDeposit(uint256)" + ], + "0xc853c03d": [ + "newDraw(uint256,uint8[3],uint256,uint256,uint256,uint256)" + ], + "0xdcff5581": [ + "NewFeeAddress(address)" + ], + "0x66ad484c": [ + "newfirst_player(address)" + ], + "0x7d03f5f3": [ + "newGame()" + ], + "0xd9e7ee1c": [ + "new_game(uint256,uint256)" + ], + "0x1d71a1cd": [ + "newIncome(string)" + ], + "0xfb099c84": [ + "newInvestor()" + ], + "0x4316abbb": [ + "newJester(address)" + ], + "0x9a8f09bd": [ + "newKing(address)" + ], + "0x9229c504": [ + "new_mainPlayer(address)" + ], + "0x2fac1a54": [ + "newOrder(bool,uint256,uint256,uint256,uint256)" + ], + "0x85952454": [ + "newOwner(address)" + ], + "0x3baf4e1e": [ + "newPayment(uint256,uint256)" + ], + "0x71589d6b": [ + "newponzi()" + ], + "0x4f24186a": [ + "newProposal(string)" + ], + "0xa07daa65": [ + "newRequest(uint256)" + ], + "0x025bbbe5": [ + "newSale(bytes16,uint256,uint256)" + ], + "0x97bb2a63": [ + "newvow(uint256,address)" + ], + "0xf28386bf": [ + "Nexium()" + ], + "0xab73e316": [ + "next(address)" + ], + "0x727b1cd6": [ + "next_draw(bytes32,uint256,uint256,uint256,uint256,uint256)" + ], + "0x332f93a9": [ + "nextPayoutGoal()" + ], + "0x47e40553": [ + "nextRound()" + ], + "0xd1bf9aba": [ + "nextRune()" + ], + "0xb3cb8885": [ + "nextUnderdogPayout()" + ], + "0xb3a2a999": [ + "nextWithdrawal(bytes16)" + ], + "0xa668d7c9": [ + "NiceGuyPonzi()" + ], + "0x0908178f": [ + "NoFeePonzi()" + ], + "0xac20902e": [ + "NormalizeMoney()" + ], + "0x305075db": [ + "NormalizeRanks()" + ], + "0xecb4136e": [ + "NotAnotherPonzi()" + ], + "0x58d3b617": [ + "Notifier(string)" + ], + "0xfa4e5e5a": [ + "notify(uint8,string,string)" + ], + "0xdea06188": [ + "NumberOfBlockAlreadyMined()" + ], + "0x892c0214": [ + "NumberOfCurrentBlockMiners()" + ], + "0x85233869": [ + "NumberOfMiners()" + ], + "0xdf811d7d": [ + "numberOfPlayersInCurrentRound()" + ], + "0xdf06f906": [ + "numBets()" + ], + "0xca35271c": [ + "numDebtors(address)" + ], + "0x902e64e5": [ + "Oath()" + ], + "0xa1920586": [ + "offer(uint256,uint256)" + ], + "0x901717d1": [ + "one()" + ], + "0xe671f510": [ + "onEtherandomExec(bytes32,bytes32,uint256)" + ], + "0x041fe13d": [ + "onEtherandomSeed(bytes32,bytes32)" + ], + "0xa5eb7a4e": [ + "operated()" + ], + "0x9549355e": [ + "oracalizeReading(uint256)" + ], + "0x9a828a71": [ + "oracalizeReading(uint256,string)" + ], + "0x053c351b": [ + "oraclize_getPrice(string)" + ], + "0xabe9f569": [ + "oraclize_getPrice(string,uint256)" + ], + "0xc8e55708": [ + "oraclize_query(string,string[1])" + ], + "0x871113c3": [ + "oraclize_query(string,string[1],uint256)" + ], + "0x044d0b06": [ + "oraclize_query(string,string[2])" + ], + "0xa6bf3df0": [ + "oraclize_query(string,string[2],uint256)" + ], + "0x9b9ba572": [ + "oraclize_query(string,string[3])" + ], + "0xae404996": [ + "oraclize_query(string,string[3],uint256)" + ], + "0x16d9356f": [ + "oraclize_query(string,string[4])" + ], + "0xbc5ff5e1": [ + "oraclize_query(string,string[4],uint256)" + ], + "0xbd9a5673": [ + "oraclize_query(string,string[5])" + ], + "0xb6ce5581": [ + "oraclize_query(string,string[5],uint256)" + ], + "0x14167bf0": [ + "oraclize_query(string,string[])" + ], + "0xe50a3bb1": [ + "oraclize_query(string,string[],uint256)" + ], + "0x0ff4f160": [ + "oraclize_query(uint256,string,string[1])" + ], + "0x77ac3da5": [ + "oraclize_query(uint256,string,string[1],uint256)" + ], + "0xa8c3ec48": [ + "oraclize_query(uint256,string,string[2])" + ], + "0x29a6f31b": [ + "oraclize_query(uint256,string,string[2],uint256)" + ], + "0xec6afc22": [ + "oraclize_query(uint256,string,string[3])" + ], + "0xfb114f57": [ + "oraclize_query(uint256,string,string[3],uint256)" + ], + "0x2ff92323": [ + "oraclize_query(uint256,string,string[4])" + ], + "0x0494630f": [ + "oraclize_query(uint256,string,string[4],uint256)" + ], + "0x6510ef4d": [ + "oraclize_query(uint256,string,string[5])" + ], + "0x00a94b6e": [ + "oraclize_query(uint256,string,string[5],uint256)" + ], + "0xdc206e5f": [ + "oraclize_query(uint256,string,string[])" + ], + "0xa2b5591c": [ + "oraclize_query(uint256,string,string[],uint256)" + ], + "0x83a51ad0": [ + "oraclize_setConfig(bytes32)" + ], + "0x01095962": [ + "oraclize_setCustomGasPrice(uint256)" + ], + "0x6b1cb549": [ + "orderMatch(uint256,uint256,uint256,int256,uint256,uint256,address,uint8,bytes32,bytes32,int256)" + ], + "0xbd858288": [ + "orderMatch(uint256,uint256,int256,uint256,uint256,address,uint8,bytes32,bytes32,int256)" + ], + "0x17961d0f": [ + "ord()" + ], + "0x16bac350": [ + "overthrow(string)" + ], + "0xe2894a8a": [ + "OwnerAnnounce(string)" + ], + "0x4f44728d": [ + "ownerChangeOwner(address)" + ], + "0xad04592e": [ + "owner_deposit()" + ], + "0xd6e0bf29": [ + "OwnerDeposit()" + ], + "0xd263b7eb": [ + "ownerkill()" + ], + "0x6eacd48a": [ + "ownerPauseGame(bool)" + ], + "0x4b7fcee7": [ + "ownerPausePayouts(bool)" + ], + "0xcf832ce2": [ + "ownerRefundPlayer(bytes32,address,uint256,uint256)" + ], + "0xa27c672a": [ + "owner_reveal_and_commit(uint8,bytes32,bytes32)" + ], + "0x392327b5": [ + "owner_set_fraction(uint256)" + ], + "0x268d50fe": [ + "ownerSetHouseEdge(uint256)" + ], + "0x5e968a49": [ + "ownerSetMaxProfitAsPercentOfHouse(uint256)" + ], + "0x6cdf4c90": [ + "ownerSetMinBet(uint256)" + ], + "0xd207e757": [ + "ownerSetOraclizeSafeGas(uint32)" + ], + "0x8b64d70e": [ + "owner_set_time_limit(uint256)" + ], + "0x31375242": [ + "ownerSetTreasury(address)" + ], + "0xf738e5ca": [ + "ownerTakeProfit()" + ], + "0x758971e8": [ + "ownerTakeProfit(bool)" + ], + "0x7ac37d58": [ + "ownerTransferEther(address,uint256)" + ], + "0x150ad2a8": [ + "owner_transfer_ownership(address)" + ], + "0x26da8e17": [ + "ownerUpdateCostToCallOraclize(uint256)" + ], + "0xb33926cb": [ + "owner_withdraw(uint256)" + ], + "0xf7bc39bf": [ + "owns(address)" + ], + "0x88c3ba85": [ + "ParallelGambling()" + ], + "0xf65c4d42": [ + "Participate(uint256)" + ], + "0x1b9265b8": [ + "pay()" + ], + "0x18b749c4": [ + "payEther(uint256)" + ], + "0x4d268ddd": [ + "payImporterBankForGoodsBought()" + ], + "0xff08d2b0": [ + "PayMiners()" + ], + "0x85db2dda": [ + "PayoutQueueSize()" + ], + "0xe0fe075e": [ + "payoutReady()" + ], + "0x081e806d": [ + "PayOut(uint256)" + ], + "0xb2310cc5": [ + "payRequstedSum(uint256,uint256)" + ], + "0xb821f815": [ + "pay_winner(uint256)" + ], + "0xabf74a93": [ + "pitFee()" + ], + "0x43046844": [ + "placeBet(uint8)" + ], + "0xa4406bcd": [ + "placeSellOrder(uint256,uint256)" + ], + "0xb1cc4348": [ + "placeWager()" + ], + "0x71b6663e": [ + "play1(address,uint256)" + ], + "0x2ddbc04a": [ + "play2(address,uint256)" + ], + "0xdb18c972": [ + "play4(address,uint256)" + ], + "0xf0e10c0d": [ + "play(address,uint256)" + ], + "0xc7a1865b": [ + "play(bytes32)" + ], + "0x3e4c0c82": [ + "player_1(uint256)" + ], + "0x1ef0625b": [ + "player_2(uint256)" + ], + "0xc068eae0": [ + "player_collect_winnings(uint256)" + ], + "0xa4fde8bc": [ + "player_declare_taking_too_long()" + ], + "0x3c314a91": [ + "playerGetPendingTxByAddress(address)" + ], + "0x46b04e53": [ + "PlayerInfoPerZone(uint256,uint256)" + ], + "0x63aea3e0": [ + "PlayerInfo(uint256)" + ], + "0xeace4827": [ + "player_make_bet(uint8)" + ], + "0xdc6dd152": [ + "playerRollDice(uint256)" + ], + "0x24fb563f": [ + "PlayerTickets(address,uint256,uint256)" + ], + "0xa5f4af33": [ + "playerWithdrawPendingTransactions()" + ], + "0x39b333d9": [ + "Play(uint8,uint8,uint8,uint8)" + ], + "0x4c0eceb5": [ + "plusOnePonzi()" + ], + "0xe6cbcba9": [ + "PlusOnePonzi()" + ], + "0xd1f0bb2d": [ + "populateAllowedFreeExchanges()" + ], + "0x3570c2ee": [ + "PosRewards()" + ], + "0xb45105b2": [ + "post(string,address,string)" + ], + "0xc6a17d2b": [ + "pow10(uint256,uint8)" + ], + "0x2c02d622": [ + "precalculate()" + ], + "0x13bd4e2c": [ + "_prepareAndSendReward()" + ], + "0xf81d087d": [ + "prepareLottery()" + ], + "0xe6c1beb4": [ + "prepend(address)" + ], + "0xf8018a79": [ + "prepend(address,address)" + ], + "0x6bae05cf": [ + "preRegister(address)" + ], + "0x45788ce2": [ + "prev(address)" + ], + "0xa035b1fe": [ + "price()" + ], + "0x1288c42a": [ + "Prism()" + ], + "0x22dc36e2": [ + "processed(uint64)" + ], + "0x61aa8d93": [ + "processFee()" + ], + "0x5c52e51e": [ + "processPayout()" + ], + "0x80acaafb": [ + "profitDistribution()" + ], + "0xe1f5ebc5": [ + "_projectAddNew(address,uint256)" + ], + "0x6a3c1198": [ + "_projectCancelNew()" + ], + "0xa055fe64": [ + "_projectCommitNew(address)" + ], + "0x87914c6f": [ + "prolongateContract()" + ], + "0x9801cb8e": [ + "ProofOfExistence()" + ], + "0x4671e65e": [ + "proposeEmergencyWithdrawal(address)" + ], + "0xac4e73f9": [ + "proposeReverse(string,address)" + ], + "0x1fdf6e0c": [ + "protectKingdom()" + ], + "0xa9b8f7b8": [ + "ProtectTheCastle()" + ], + "0x4f09eba7": [ + "proxyApprove(address,uint256,bytes32)" + ], + "0xe82b7cb2": [ + "proxySetCosignerAddress(address,bytes32)" + ], + "0xea98e540": [ + "proxyTransferFromToICAPWithReference(address,bytes32,uint256,string)" + ], + "0xf0cbe059": [ + "proxyTransferFromWithReference(address,address,uint256,bytes32,string)" + ], + "0xc5487661": [ + "proxyTransferToICAPWithReference(bytes32,uint256,string)" + ], + "0x64ef212e": [ + "proxyTransferWithReference(address,uint256,bytes32,string)" + ], + "0xd94073d4": [ + "PT()" + ], + "0x8940aebe": [ + "publicKey(uint256)" + ], + "0x8b2e6dcf": [ + "publish(bytes32)" + ], + "0x57e25a79": [ + "PullPaymentCapable()" + ], + "0x0eb495c2": [ + "pushCity()" + ], + "0x4616caa9": [ + "pushCoin(uint256,address,string)" + ], + "0xacc8cb18": [ + "pushTerm(string)" + ], + "0xafd09bab": [ + "quadrupler()" + ], + "0x4306cc3f": [ + "queryEarnings(address)" + ], + "0x83eed3d5": [ + "queryN(uint256,string,bytes)" + ], + "0xc55c1cb6": [ + "queryN_withGasLimit(uint256,string,bytes,uint256)" + ], + "0xfdd3a879": [ + "quick()" + ], + "0xf28a7912": [ + "quick2()" + ], + "0xe0c7c117": [ + "Randao()" + ], + "0x0b15650b": [ + "randInt(uint256,uint256)" + ], + "0x8e3957d9": [ + "RandomNumber()" + ], + "0x7741b4ec": [ + "RandomNumberFromSeed(uint256)" + ], + "0xb863bd37": [ + "random(uint256)" + ], + "0xeb7cdb56": [ + "rankDown(uint256,uint256)" + ], + "0x74fbbc86": [ + "rate(uint256,uint256,string)" + ], + "0xba344743": [ + "_rawTransfer(address,address,uint256)" + ], + "0x2d2800f1": [ + "react()" + ], + "0xb7213bd4": [ + "readLog(uint256)" + ], + "0x7d7c2a1c": [ + "rebalance()" + ], + "0x248582b0": [ + "receivePaymentForGoodsSoldEarly()" + ], + "0x743e0c9b": [ + "receiveTokens(uint256)" + ], + "0x49d55d9d": [ + "receiveTransfer(uint256)" + ], + "0xc864e760": [ + "recordCommissionEarned(uint256)" + ], + "0xe51ace16": [ + "record(string)" + ], + "0xf06d335e": [ + "_recoverAccount(address,address)" + ], + "0x648bf774": [ + "recover(address,address)" + ], + "0x0cd865ec": [ + "recover(address)" + ], + "0x0ca35682": [ + "recover(uint256)" + ], + "0xf32efd3c": [ + "recoverUser(address,address,uint256,uint8,bytes32,bytes32)" + ], + "0xe20bbd8d": [ + "RecoveryWithTenant()" + ], + "0x0f23cbaa": [ + "recycle()" + ], + "0x578bcc20": [ + "reduceDebt(address,address,uint256)" + ], + "0x538e0759": [ + "refill()" + ], + "0x58b1f29c": [ + "refundBounty(uint256)" + ], + "0x847f8a10": [ + "Refund(uint32)" + ], + "0x5af36e3e": [ + "refund(uint256,uint256)" + ], + "0x66b42dcb": [ + "register(address,string,uint256,string)" + ], + "0xeeda149c": [ + "Register(address)" + ], + "0x4420e486": [ + "register(address)" + ], + "0x8d59cc02": [ + "register(address,string,string)" + ], + "0x8b7f0ddd": [ + "register(address,address,string,string,bytes32[],uint256,string)" + ], + "0x7b1a547c": [ + "registerAs(address,string,uint256,string,address)" + ], + "0x3facd57c": [ + "registerBill(uint256,address,address,uint256,uint256,uint256)" + ], + "0x84c344fe": [ + "_register(bytes4,string)" + ], + "0xb0fd935b": [ + "registerCertificationDb(address)" + ], + "0x4cd995da": [ + "registerCompany(address,string)" + ], + "0x669ee827": [ + "RegisterDevice()" + ], + "0xfe63300a": [ + "registerExternalBill(uint256,address,address,uint256,uint256,uint256)" + ], + "0x68af4971": [ + "registerListening()" + ], + "0x00e7d289": [ + "registerListening(address)" + ], + "0x7f6d8955": [ + "RegisterOne(uint32,address,address)" + ], + "0xf2c298be": [ + "register(string)" + ], + "0x3ffbd47f": [ + "register(string,string)" + ], + "0xaeb4f0d3": [ + "RegisterTwo(address,address)" + ], + "0x8ae986cf": [ + "registrantApprove(address)" + ], + "0xe9fe799e": [ + "registrantRemove(address)" + ], + "0x7db9743b": [ + "Registry()" + ], + "0x6d15f208": [ + "reject(string,uint256,uint16,address,uint256)" + ], + "0xc76a4bfb": [ + "relayReceiveApproval(address,address,uint256,bytes)" + ], + "0xd67cbec9": [ + "release(uint32,uint32,uint32,bytes20)" + ], + "0xa7b2d4cb": [ + "remove(int256,address)" + ], + "0xf3ee6305": [ + "removeCertificationDocument(address,bytes32)" + ], + "0x9c30936f": [ + "removeCertificationDocumentFromSelf(bytes32)" + ], + "0xba4c206e": [ + "removeCertificationDocumentInternal(address,bytes32)" + ], + "0x0066753e": [ + "removeCertifier(address)" + ], + "0xd5df7559": [ + "removeDocument(uint256)" + ], + "0xac18de43": [ + "removeManager(address)" + ], + "0xba7dc45f": [ + "_removeOperation(bytes32)" + ], + "0x2c4cb4be": [ + "removeRegistryFromNameIndex(address)" + ], + "0x669459a7": [ + "removeRegistryFromOwnerIndex(address)" + ], + "0xaf55bba0": [ + "removeRegistryFromTagsIndex(address)" + ], + "0xf25eb5c1": [ + "removeReverse()" + ], + "0x80599e4b": [ + "remove(string)" + ], + "0x7e32a592": [ + "repairTheCastle()" + ], + "0x631de4d6": [ + "replace(address,address)" + ], + "0x9fd4f7d1": [ + "replaceWizard(address)" + ], + "0xce87f626": [ + "replaceWizardRP(address)" + ], + "0xeaa1f9fe": [ + "reqisterListening(address)" + ], + "0x27f06fff": [ + "requestFillUp(uint256)" + ], + "0x2e5d1042": [ + "requestPayout(uint256,uint256,bytes32,uint256,uint256)" + ], + "0xe9c63b9c": [ + "requestPeerBalance()" + ], + "0x4c9ed763": [ + "requestTokensBack()" + ], + "0x0ac28725": [ + "requestTradeDeal(uint256,uint256,string)" + ], + "0xf802075f": [ + "requiredEndowment()" + ], + "0x432ced04": [ + "reserve(bytes32)" + ], + "0x92698814": [ + "reserved(bytes32)" + ], + "0x6676871d": [ + "reserved_funds()" + ], + "0x6423db34": [ + "Reset()" + ], + "0x478e25bf": [ + "resetAction(bytes32)" + ], + "0x769796fe": [ + "resetAction(uint256)" + ], + "0xb181a8fc": [ + "resetContract()" + ], + "0xf50d3914": [ + "resetFoundationtList()" + ], + "0xd337616e": [ + "resetLottery()" + ], + "0x5cfd8c24": [ + "ResetPonzi()" + ], + "0x433d4aab": [ + "resolve(uint8,uint8)" + ], + "0xa6403636": [ + "resolve(uint8,bytes32,bytes32,bytes32)" + ], + "0x1ef3755d": [ + "restart()" + ], + "0xa987d654": [ + "restoreItem(uint256)" + ], + "0xc4bc5da5": [ + "resumeContract()" + ], + "0x61b20d8c": [ + "retrieveFunds()" + ], + "0x85c78fac": [ + "retryOraclizeRequest(uint256)" + ], + "0x5cbc85d0": [ + "returnBounty(uint256)" + ], + "0xcff2fa42": [ + "_returnFee(address,uint256)" + ], + "0x0ca7395f": [ + "returnFund(address,uint256)" + ], + "0xec81e22e": [ + "returnmoneycreator(uint8,uint256)" + ], + "0x7ac4b05e": [ + "returnMyMoney(uint256)" + ], + "0x9ec35352": [ + "returnRandom()" + ], + "0xebaf7f2f": [ + "returnReward(uint256)" + ], + "0x66d8c463": [ + "reveal(bytes32,string)" + ], + "0x32d5fe98": [ + "revealCampaign(uint256,uint256)" + ], + "0x9348cef7": [ + "reveal(uint256,uint256)" + ], + "0x84ad6ff3": [ + "ReversibleDemo()" + ], + "0x05f8b6f5": [ + "_rewireIdentities(bytes32[],uint256,uint256,uint32)" + ], + "0x8390b02a": [ + "rfindPtr(uint256,uint256,uint256,uint256)" + ], + "0xe1108706": [ + "rfind()" + ], + "0xf7149220": [ + "RNG()" + ], + "0x4e1053cc": [ + "RobinHoodPonzi()" + ], + "0xd2602930": [ + "RockPaperScissors()" + ], + "0x8d216186": [ + "roll(uint256,bytes32)" + ], + "0x5a7a8850": [ + "rollWithSeed(bytes32)" + ], + "0xb73405a9": [ + "roundMoneyDownNicely(uint256)" + ], + "0x5ccc3eaa": [ + "roundMoneyUpToWholeFinney(uint256)" + ], + "0x96d02099": [ + "rsplit()" + ], + "0xdd727ea6": [ + "runJackpot()" + ], + "0x5674a3ed": [ + "runLottery()" + ], + "0x4d366398": [ + "runPeerBalance()" + ], + "0x677cee54": [ + "SafeConditionalHFTransfer()" + ], + "0x2baf4f22": [ + "_safeFalse()" + ], + "0x4401a6e4": [ + "safeSend(address)" + ], + "0x4269d8ef": [ + "_safeSend(address,uint256)" + ], + "0xa97ffd5e": [ + "safeToSell(uint256)" + ], + "0x38e48f06": [ + "save(string)" + ], + "0x3fb27b85": [ + "seal()" + ], + "0xddbbc35c": [ + "searchByName(string)" + ], + "0x42cf0e72": [ + "searchByOwner(address)" + ], + "0xc82aac47": [ + "searchByTag(bytes32)" + ], + "0x40a49a96": [ + "searchSmallestInvestor()" + ], + "0xf7c2b38c": [ + "seconds_left()" + ], + "0xcf1cd249": [ + "secureSend(address)" + ], + "0x85e5bb3a": [ + "Security_AddPasswordSha3HashToBankAccount(bytes32)" + ], + "0x7d94792a": [ + "seed()" + ], + "0xe4cc1161": [ + "seedWithGasLimit(uint256)" + ], + "0x88b9e10e": [ + "seizeTokens(address,uint256)" + ], + "0x6be505f5": [ + "selectWinner(bytes32)" + ], + "0x9cb8a26a": [ + "selfDestruct()" + ], + "0x2aa3177a": [ + "self_store()" + ], + "0x514dcfe3": [ + "seller_accept()" + ], + "0x2d592a34": [ + "sellKissBTC(uint256)" + ], + "0x41524433": [ + "sellKissBTCWithCallback(uint256,address,uint256)" + ], + "0xddb5b3ac": [ + "SellTokens()" + ], + "0xe4849b32": [ + "sell(uint256)" + ], + "0x227185d6": [ + "Send1Get2()" + ], + "0xd6006e88": [ + "send(address[],uint256[],uint256)" + ], + "0x3e58c58c": [ + "send(address)" + ], + "0x35d13969": [ + "SendAllMoney()" + ], + "0x3d21aa42": [ + "sendApproval(address,uint256,address)" + ], + "0xd1e15045": [ + "sendBack()" + ], + "0x5292af1f": [ + "sendBalance(address)" + ], + "0xeb455dc6": [ + "sendBitcoin(string,uint256)" + ], + "0xb938bf42": [ + "sendBounty(bytes32)" + ], + "0x9894221a": [ + "SendCashForHardwareReturn()" + ], + "0x010731c0": [ + "sendCryptedHand(bytes32)" + ], + "0x78ec81a0": [ + "sendEarnings(address)" + ], + "0xb1d05422": [ + "SendEmail(string,string)" + ], + "0xbb6b4619": [ + "SendETC(address)" + ], + "0x3a314b24": [ + "SendETH(address)" + ], + "0x9c6034a7": [ + "sendIfNotForked()" + ], + "0x7b02b2c9": [ + "sendMsg(address,string)" + ], + "0x76d438b0": [ + "sendReward(uint256,uint256)" + ], + "0xbf8fc670": [ + "sendToAggregation(uint256)" + ], + "0x6620a935": [ + "sendToOwner()" + ], + "0x03750d94": [ + "serverSeed(address,bytes32)" + ], + "0x7eff1465": [ + "setAccountAllowance(address,address,uint256)" + ], + "0x5e03d393": [ + "setAccountFrozenStatus(address,bool)" + ], + "0xf6d339e4": [ + "setAddress(bytes32,string,address)" + ], + "0x3c84f868": [ + "set(int256,address,uint256)" + ], + "0x213b9eb8": [ + "setAddr(string,address)" + ], + "0x5d96ec65": [ + "setAdministrator(address,string,bool)" + ], + "0xf8af9e6f": [ + "setAdv(uint256,string,string)" + ], + "0x058d7433": [ + "setAlliesContract(address)" + ], + "0x7a837213": [ + "setAllowedAccount(address)" + ], + "0xf8ec4bf2": [ + "setAllowTransactions(bool)" + ], + "0x7948f523": [ + "setAmbiAddress(address,bytes32)" + ], + "0x9fa5e5d5": [ + "setARKowner(address)" + ], + "0xd0d552dd": [ + "setAsset(address)" + ], + "0x9f203255": [ + "setAuditor(address)" + ], + "0xda7fc24f": [ + "setBackend(address)" + ], + "0x754dea40": [ + "setBackendOwner(address)" + ], + "0x5c89c10d": [ + "setBannedCycles(uint256[])" + ], + "0x1c31f710": [ + "setBeneficiary(address)" + ], + "0xcf09e6e1": [ + "SetBigContract(address)" + ], + "0xc1441172": [ + "setBlackFlagRequest(uint256,uint256)" + ], + "0x2ffda1e0": [ + "setBlackflag(uint256,bool)" + ], + "0x6b5caec4": [ + "setBot(address)" + ], + "0x23e9c216": [ + "setBounty(address,string,uint256)" + ], + "0x16ce8a69": [ + "setBuilding(uint256,uint256)" + ], + "0x47448e8a": [ + "set(bytes32,string,bytes32)" + ], + "0x37881810": [ + "setCallbackAddress(address)" + ], + "0x8702735c": [ + "setCapitol(uint256,uint256)" + ], + "0x951b01c5": [ + "setCertifierDb(address)" + ], + "0xeef8e35f": [ + "setChainyURL(string)" + ], + "0xf8bd526e": [ + "setCoinageContract(address)" + ], + "0xa510f776": [ + "setCompany()" + ], + "0x4c2d71b3": [ + "setConfigAddress(bytes32,address)" + ], + "0x1e0c7ed4": [ + "setConfigBool(bytes32,bool)" + ], + "0xe8a5282d": [ + "setConfig(bytes32)" + ], + "0x810a882f": [ + "setConfigBytes(bytes32,bytes32)" + ], + "0x3e8f5b90": [ + "setConfig(string,uint256)" + ], + "0xbc45d789": [ + "setConfigUint(int256,bytes32,uint256)" + ], + "0xfd6f5430": [ + "setContent(string,bytes32)" + ], + "0x92eefe9b": [ + "setController(address)" + ], + "0x5e6ad49d": [ + "_setCosignerAddress(address)" + ], + "0x82fc49b8": [ + "setCosignerAddress(address)" + ], + "0x986dcd4d": [ + "setCycleLimit(uint256)" + ], + "0xe73a914c": [ + "setDAO(address)" + ], + "0xc52bd836": [ + "setDappOwner(bytes32,address)" + ], + "0x03959bb7": [ + "setDataContract(address)" + ], + "0x4a994eef": [ + "setDelegate(address,bool)" + ], + "0x90c3f38f": [ + "setDescription(string)" + ], + "0x172d8a30": [ + "setDirectorLock(uint256,uint256)" + ], + "0xa1b7ae62": [ + "setdirectorName(string)" + ], + "0x38eaf913": [ + "setDirectorNode(string)" + ], + "0x423e1298": [ + "setDoNotAutoRefundTo(bool)" + ], + "0x6716a692": [ + "setDVIP(address)" + ], + "0x74331be7": [ + "sete(address)" + ], + "0xb56e1bca": [ + "setExchangeToken()" + ], + "0xfe4a3ac9": [ + "setExecPrice(uint256)" + ], + "0x01cceb38": [ + "setExpiry(uint256)" + ], + "0xb35893f3": [ + "setExporter()" + ], + "0x87cc1e1c": [ + "setExporterBank()" + ], + "0xa4502cb8": [ + "setExportFee(address,uint256)" + ], + "0xe5782fd5": [ + "setFeeStructure(uint256,uint256,uint256)" + ], + "0x69fe0e2d": [ + "setFee(uint256)" + ], + "0x02aa274b": [ + "setForward(bytes4,address)" + ], + "0x69569a51": [ + "setFrontend(address)" + ], + "0x576eac66": [ + "setFundingGoal(uint256)" + ], + "0x711953ef": [ + "setGameAddress(address)" + ], + "0x2187a833": [ + "setGreenToken()" + ], + "0x78f0161a": [ + "setGreyGreenPrice(uint8)" + ], + "0xad9ec17e": [ + "setGreyToken()" + ], + "0xd148288f": [ + "setHoldingPeriod(uint256)" + ], + "0xa37fd390": [ + "setHomeAdv(uint256,string)" + ], + "0x9fb755d7": [ + "setHotWallet(address)" + ], + "0x0a3b1cd2": [ + "setHotwallet(address)" + ], + "0x1bd9c46e": [ + "setImporter()" + ], + "0xae2df7b3": [ + "setImporterBank()" + ], + "0xe2c61114": [ + "setImportFee(address,uint256)" + ], + "0xa8659216": [ + "setInitialLockinDays(uint256)" + ], + "0x26b916b4": [ + "Set_Interest_Rate(uint256)" + ], + "0x9fcbc738": [ + "setIntermediate(address)" + ], + "0x18f303a1": [ + "SetInternalValues(uint8,uint256)" + ], + "0x7f0c949c": [ + "setJurisdication(string)" + ], + "0x74f519db": [ + "setLastTimestamp(uint256,uint256)" + ], + "0x27ea6f2b": [ + "setLimit(uint256)" + ], + "0x9cb31079": [ + "setLowLimit(uint256)" + ], + "0x73ffd969": [ + "setMap(uint256,uint256,uint256)" + ], + "0x457dd8b3": [ + "setMasterKey(address)" + ], + "0x5e404de3": [ + "setMaximumCredit(uint256)" + ], + "0xee8ff562": [ + "setMaxProfit()" + ], + "0x3b91ceef": [ + "setMax(uint256,uint256)" + ], + "0x1ca60aeb": [ + "setMeltingContract(address)" + ], + "0x50944a8f": [ + "setMembership(address)" + ], + "0x91cd242d": [ + "setMeta(bytes32,bytes32,bytes32)" + ], + "0xdd93890b": [ + "setMeta(uint256,bytes32,bytes32)" + ], + "0x35930e13": [ + "setMinimalRewardedBalance(uint256)" + ], + "0xb0414a2d": [ + "setMinimumGasLimit(uint256)" + ], + "0x03251a08": [ + "setMin(uint256,uint256)" + ], + "0xb1662d58": [ + "setModule(address,bool)" + ], + "0x29de91db": [ + "setMsg(address,uint256)" + ], + "0x8aa33776": [ + "setMsgPrice(uint256)" + ], + "0x5ac801fe": [ + "setName(bytes32)" + ], + "0xfe55932a": [ + "setName(uint256,string)" + ], + "0x4b3b6168": [ + "SetNewBigContract(address)" + ], + "0xc4d9102f": [ + "setNextID(uint256,int256)" + ], + "0xfc9e53df": [ + "setNextRegistrar(address)" + ], + "0x8389f353": [ + "setNumCities(uint256)" + ], + "0x8173b813": [ + "setNumCities(uint256,uint256)" + ], + "0x755b5b75": [ + "setNumUnits(uint256,uint256)" + ], + "0x65228934": [ + "setOperationsCallGas(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)" + ], + "0x7adbf973": [ + "setOracle(address)" + ], + "0xc7e22ac4": [ + "setOracleGas(uint256)" + ], + "0x89ed0b30": [ + "setOraclizeGas(uint32)" + ], + "0x18f3fae1": [ + "setOversight(address)" + ], + "0xd62b255b": [ + "setOwner(address,string)" + ], + "0x167d3e9c": [ + "SetOwner(address)" + ], + "0x7acbfb65": [ + "setOwner(uint256,uint256)" + ], + "0xffe302d1": [ + "setPlz(string)" + ], + "0x2e3be78d": [ + "setPrecisionDirect(uint8)" + ], + "0x3f9f5b68": [ + "setPreviousID(uint256,int256)" + ], + "0x36f7cd70": [ + "setPricePerStake(uint256)" + ], + "0x5e983d08": [ + "setPrices()" + ], + "0x05fefda7": [ + "setPrices(uint256,uint256)" + ], + "0xf7d97577": [ + "setPrice(uint256,uint256)" + ], + "0x53d97e65": [ + "setPrizes(uint32[])" + ], + "0x6e0d98fe": [ + "setProbabilities(uint32[])" + ], + "0x7137ed47": [ + "setProxyContract(address)" + ], + "0x8e25071a": [ + "setProxyCurrator(address)" + ], + "0xc24924d6": [ + "setQueryFee(uint256)" + ], + "0xe50d0473": [ + "SetRank(uint8,address,uint16)" + ], + "0x50b7b7a2": [ + "setRating(bytes32,uint256)" + ], + "0x50f07cf9": [ + "setReadingDelay(uint256)" + ], + "0x8279c7db": [ + "setReceiverAddress(address)" + ], + "0xa0a2f629": [ + "setReferralId(uint256,address)" + ], + "0xe0117441": [ + "setRegistrationPrice(uint256)" + ], + "0x718bd6dd": [ + "setRequestUntil(uint8)" + ], + "0xaf030d2c": [ + "setResult(uint256,uint256,bytes32)" + ], + "0x0381cb3b": [ + "setRowcol(uint256,uint256[2])" + ], + "0xe1a9109d": [ + "setSeedPrice(uint256)" + ], + "0x09d2d0b9": [ + "setServiceAccount(address,bool)" + ], + "0xa8026912": [ + "setSource(address)" + ], + "0x81183633": [ + "setStandard(bytes32)" + ], + "0x3e0a322d": [ + "setStartTime(uint256)" + ], + "0x49e65440": [ + "setSymbol(bytes32)" + ], + "0xb1233451": [ + "setTerm(uint256,string)" + ], + "0xb950556a": [ + "setThingValid(bytes32[],bool)" + ], + "0xce592586": [ + "setThresold(uint256,uint256)" + ], + "0xaee84f6b": [ + "setTime(address,uint256)" + ], + "0x9a9c29f6": [ + "settle(uint256,uint256)" + ], + "0xb33a8a11": [ + "setTokenReference(address)" + ], + "0x55db4092": [ + "setTOS(address,bool)" + ], + "0x506e106c": [ + "setToS(string)" + ], + "0xf7ea7a3d": [ + "setTotalSupply(uint256)" + ], + "0xa33dd801": [ + "setTreasuryBalance(uint256)" + ], + "0x4dc43eaf": [ + "setTreasury(uint256,uint256)" + ], + "0xdd57d5c5": [ + "setTrust(address)" + ], + "0xacb6c69b": [ + "setTrustedClient(address)" + ], + "0x1d7b5baf": [ + "setUint(int256,bytes32,string,uint256)" + ], + "0x2f30c6f6": [ + "set(uint256,address)" + ], + "0x468129a5": [ + "setUnit(uint256,uint256,uint256)" + ], + "0x7bc0ff20": [ + "setupExportFee(address,uint256)" + ], + "0x26881518": [ + "setupFee(address)" + ], + "0x92d8c8cf": [ + "setupImportFee(address,uint256)" + ], + "0x294f3d4d": [ + "setUpLimit(uint256)" + ], + "0xce8d054e": [ + "_setupNoCallback()" + ], + "0x12ab7242": [ + "setupStackDepthLib(address)" + ], + "0x1d124fe4": [ + "setUtils2(address)" + ], + "0x69953501": [ + "setUtils(address)" + ], + "0x4bc2a657": [ + "setVoter(address)" + ], + "0x7318b453": [ + "setVotetUntil(uint8)" + ], + "0x4173b181": [ + "setWeiPrice(uint256)" + ], + "0x0df71602": [ + "setWinner(uint256)" + ], + "0x12819817": [ + "setXauForGasCurrator(address)" + ], + "0xef4bdfdd": [ + "Set_your_game_number_between_1_15(string)" + ], + "0xb3ade772": [ + "shipProducts(string,string)" + ], + "0x83d852d9": [ + "shutdownTransactions()" + ], + "0x95d5a1be": [ + "SignatureReg()" + ], + "0x76cd7cbc": [ + "sign(bytes)" + ], + "0x5f68804e": [ + "SimpleLotto()" + ], + "0x152fb125": [ + "SimpleMixer()" + ], + "0x4ac7becf": [ + "SimpleSign()" + ], + "0xc83be888": [ + "single_move(uint256,uint8,uint8)" + ], + "0x70d084c0": [ + "SingularDTVCrowdfunding()" + ], + "0x0ab58ead": [ + "SingularDTVFund()" + ], + "0x0b590c6b": [ + "SingularDTVToken()" + ], + "0x1ff13086": [ + "size(int256)" + ], + "0x9c4baf27": [ + "Skywalker(address,address)" + ], + "0x1a88bc66": [ + "slot()" + ], + "0x853552d7": [ + "_slotAddNew(address)" + ], + "0xee564544": [ + "_slotCancelNew()" + ], + "0x16f9ce49": [ + "_slotCommitNew(address)" + ], + "0x6fe665e9": [ + "SlotMachine()" + ], + "0x22593300": [ + "Small(address)" + ], + "0x5503a659": [ + "smallponzi()" + ], + "0xe3b26a8c": [ + "SocialNetwork()" + ], + "0x5d0be9de": [ + "softWithdrawRevenueFor(address)" + ], + "0xd5dbb1ad": [ + "solveBet(address,uint8,bool,uint8,bytes32,bytes32)" + ], + "0xb2f2588b": [ + "sortNumbers(uint8[3])" + ], + "0xface030b": [ + "SpinTheWheel(address)" + ], + "0x56fa47f0": [ + "split(address)" + ], + "0x0f2c9329": [ + "split(address,address)" + ], + "0x9c709343": [ + "split(bool,address)" + ], + "0xf7654176": [ + "split()" + ], + "0xd9d2d058": [ + "Splitter()" + ], + "0x2672b3e2": [ + "SplitterEtcToEth()" + ], + "0x8946d33f": [ + "SplitterEthToEtc()" + ], + "0xb7266456": [ + "StandardToken()" + ], + "0x70983e91": [ + "startBoardProposal(uint256,address)" + ], + "0x9f35d3b2": [ + "start(string,string,uint256,uint256,uint256,uint256)" + ], + "0x0fbf7151": [ + "startsWith()" + ], + "0xa1cb31b7": [ + "_state()" + ], + "0x12253a6c": [ + "stopContract()" + ], + "0x975057e7": [ + "store()" + ], + "0xdda9939c": [ + "Store(address[])" + ], + "0x877653f0": [ + "_storeBalanceRecord(address)" + ], + "0xf60381a1": [ + "stra2cbor(string[])" + ], + "0x2fcb6628": [ + "_stringGas(string,string)" + ], + "0xfc01abbe": [ + "stringToBytes32(string,string)" + ], + "0x9077dcfd": [ + "submitCoding(string,uint256)" + ], + "0x2da8f764": [ + "submitVideo(string,string)" + ], + "0xb71c47a2": [ + "surrender()" + ], + "0xcd57a448": [ + "SwapContract(address,uint256)" + ], + "0x6b76484e": [ + "swap(address,address)" + ], + "0xd60dcb5d": [ + "Switch()" + ], + "0xb660d77c": [ + "switchMPO(address,address)" + ], + "0xd422e4e0": [ + "takeFee(address,uint256,string)" + ], + "0x4f073130": [ + "takeOrder(bool,uint256,uint256)" + ], + "0xbf55486b": [ + "Tanya()" + ], + "0xe2ee9941": [ + "tap(bytes20)" + ], + "0x420ef2b3": [ + "TargetHash()" + ], + "0x922fc84b": [ + "taskProcessedNoCosting(uint256)" + ], + "0x36e6b92e": [ + "taskProcessedWithCosting(uint256,uint256)" + ], + "0x93cc9162": [ + "taskRejected(uint256,uint256)" + ], + "0x4dc7cc55": [ + "terminateAlt()" + ], + "0x08714bfa": [ + "TestContract()" + ], + "0x1465aa97": [ + "testingContract()" + ], + "0x2af7ceff": [ + "testPrice(uint256)" + ], + "0xbab86ea8": [ + "test(string,string)" + ], + "0x4cad42d3": [ + "testWager()" + ], + "0xc96593a0": [ + "The10ETHPyramid()" + ], + "0x83d8a90f": [ + "theDonkeyKing()" + ], + "0x87fd0421": [ + "TheEthereumLottery()" + ], + "0x0e3f732a": [ + "TheGame()" + ], + "0xafbec8df": [ + "TheGrid()" + ], + "0x7399646a": [ + "theRun()" + ], + "0x83c51a38": [ + "thesimplegame()" + ], + "0x6f9a023c": [ + "theultimatepyramid()" + ], + "0x3c6e03d7": [ + "thewhalegame()" + ], + "0x18489f50": [ + "thingExist(bytes32[])" + ], + "0xe3848e5b": [ + "thing(string,string,string)" + ], + "0xda25c0cd": [ + "ThisExternalAssembly()" + ], + "0x857d4c07": [ + "throwScraps(uint256)" + ], + "0x18253234": [ + "ticketsAvailable()" + ], + "0xd7f746ce": [ + "tickingBomb()" + ], + "0x5f17114e": [ + "TimeDeposit()" + ], + "0x2f5a5c5b": [ + "timegame()" + ], + "0xcfed9199": [ + "timePassed(uint256)" + ], + "0xdd137b5d": [ + "toBase58(uint256,uint8)" + ], + "0xb05e390a": [ + "TokenEther(string,string)" + ], + "0x7ff9b596": [ + "tokenPrice()" + ], + "0x31380c89": [ + "TokenSale()" + ], + "0x4da47ba0": [ + "TokenSale(address,uint256)" + ], + "0xd5089396": [ + "Token(string,string,uint8,uint256)" + ], + "0x6c1a5b8c": [ + "TOKEN_TARGET()" + ], + "0xb29c2493": [ + "token(uint256,string,uint8,string)" + ], + "0xf2022905": [ + "toldYouItWouldWork()" + ], + "0x283a4576": [ + "Tomeka()" + ], + "0x51560da9": [ + "topDogInfo()" + ], + "0x43ec3f38": [ + "toSliceB32(bytes32)" + ], + "0xafed762b": [ + "toSlice(string)" + ], + "0x15a03930": [ + "TossMyCoin()" + ], + "0x47e46806": [ + "toString()" + ], + "0xfc7b9c18": [ + "totalDebt()" + ], + "0x1ff517ff": [ + "totalDebt(address)" + ], + "0x7fef036e": [ + "totalEntries()" + ], + "0x5216aeec": [ + "totalInvested()" + ], + "0xdc19266f": [ + "Total_of_Players()" + ], + "0x6831c169": [ + "totalPayedOut()" + ], + "0x6a8c2437": [ + "totalRescues()" + ], + "0xb524abcf": [ + "totalSupply(bytes32)" + ], + "0xbff1f9e1": [ + "totalUsers()" + ], + "0x8caaaae6": [ + "totalWeiPrice()" + ], + "0x637e86eb": [ + "totBOTs()" + ], + "0xbb39a960": [ + "trade(address,uint256,address,uint256)" + ], + "0x04bb754c": [ + "TradeFinancing()" + ], + "0x4847a79c": [ + "_transfer(address,uint256)" + ], + "0x57cfeeee": [ + "transfer(address,uint256,bytes32)" + ], + "0xdeb80111": [ + "transfer_asset(address,uint256)" + ], + "0x22e803c2": [ + "transferBounty()" + ], + "0x60063887": [ + "transferDebt(address,address,address,uint256)" + ], + "0xddd41ef6": [ + "transferDirector(address)" + ], + "0x30e0789e": [ + "_transfer(address,address,uint256)" + ], + "0x63334c58": [ + "transferETC(address)" + ], + "0xd50f6bf0": [ + "transferETH(address)" + ], + "0x97fcb54e": [ + "transfer_eth(address,uint256)" + ], + "0xa0eda9f2": [ + "_transferFee(address,uint256,string)" + ], + "0xcb712535": [ + "_transferFrom(address,address,uint256)" + ], + "0xc204f9f1": [ + "_transferFromToICAP(address,bytes32,uint256)" + ], + "0xa525f42c": [ + "transferFromToICAP(address,bytes32,uint256)" + ], + "0xcac77df7": [ + "__transferFromToICAPWithReference(address,bytes32,uint256,string)" + ], + "0x0b1e400a": [ + "_transferFromToICAPWithReference(address,bytes32,uint256,string)" + ], + "0xa48a663c": [ + "transferFromToICAPWithReference(address,bytes32,uint256,string)" + ], + "0x48a490fb": [ + "transferFromTreasury(address,uint256)" + ], + "0xcacc24eb": [ + "transferFromViaProxy(address,address,address,uint256)" + ], + "0x31c6c4cf": [ + "transferFromWithReference(address,address,uint256,bytes32,string)" + ], + "0x3de9e4c6": [ + "__transferFromWithReference(address,address,uint256,string)" + ], + "0xa10bee85": [ + "_transferFromWithReference(address,address,uint256,string)" + ], + "0x6461fe39": [ + "transferFromWithReference(address,address,uint256,string)" + ], + "0x752a3df6": [ + "transferIfHardForked(address)" + ], + "0xd6a619e3": [ + "transferIfPuritanical(address)" + ], + "0x29605e77": [ + "transferOperator(address)" + ], + "0x235c002d": [ + "transferOther(address,address,uint256)" + ], + "0x67af26fb": [ + "transferOtherFrom(address,address,address,uint256)" + ], + "0x1301ee02": [ + "transferringETC(address)" + ], + "0xd4245e5b": [ + "transferringETH(address)" + ], + "0xfbf58b3e": [ + "transfer(string,address)" + ], + "0xd3aa22c7": [ + "transferTLA(string,address)" + ], + "0xa25057de": [ + "_transferToICAP(bytes32,uint256)" + ], + "0x733480b7": [ + "transferToICAP(bytes32,uint256)" + ], + "0x3bf2313d": [ + "__transferToICAPWithReference(bytes32,uint256,string)" + ], + "0x078c3fa4": [ + "_transferToICAPWithReference(bytes32,uint256,string)" + ], + "0x77fe38a4": [ + "transferToICAPWithReference(bytes32,uint256,string)" + ], + "0xe7dafdb6": [ + "transfer_token(address,address,uint256)" + ], + "0x12514bba": [ + "transfer(uint256)" + ], + "0x240ecad5": [ + "transferViaProxy(address,address,uint256)" + ], + "0x6d16f79c": [ + "__transferWithReference(address,uint256,string)" + ], + "0x51b3d7b9": [ + "_transferWithReference(address,uint256,string)" + ], + "0xac35caee": [ + "transferWithReference(address,uint256,string)" + ], + "0x1d065dde": [ + "_transferWithReward(address,address,uint256)" + ], + "0xe99543aa": [ + "Trash(uint256)" + ], + "0x8fe58eb9": [ + "Triger()" + ], + "0x54204ad4": [ + "triple()" + ], + "0x432c685f": [ + "trustClient(address)" + ], + "0x464f37c9": [ + "trustedChildRefund()" + ], + "0x866f6736": [ + "trustedChildWithdraw()" + ], + "0x2e6e504a": [ + "trusteeWithdraw()" + ], + "0x65343fcb": [ + "TrustEth()" + ], + "0x5fdf05d7": [ + "two()" + ], + "0x0d0c2008": [ + "TwoAndAHalfPonzi()" + ], + "0x49cc954b": [ + "twoYearsPassed()" + ], + "0x4dd850fb": [ + "UfoPonzi()" + ], + "0xf76f950e": [ + "uint2str(uint256)" + ], + "0x9e1e6528": [ + "uncertify(address)" + ], + "0x734d8287": [ + "unclaimedFees()" + ], + "0xf0d474f9": [ + "underdogCount()" + ], + "0x6eb7b4c2": [ + "underdogInfo(uint256)" + ], + "0x75f40f40": [ + "underdogPayoutFund()" + ], + "0x2880ebe7": [ + "underdogPayoutMarkup()" + ], + "0xcb3e64fd": [ + "unhalt()" + ], + "0xff81fb91": [ + "unhint(int256,bytes32)" + ], + "0xd4859dbc": [ + "UniversalFunctionSecure(uint8,bytes32,bytes32,bytes32,bytes32,bytes32)" + ], + "0x579badf6": [ + "UniversalFunction(uint8,bytes32,bytes32,bytes32,bytes32,bytes32)" + ], + "0x2ec2c246": [ + "unregister(address)" + ], + "0x1a0919dc": [ + "unregister(bytes32)" + ], + "0x4e116eb8": [ + "unRegisterCertificationDb(address)" + ], + "0xf1a00a53": [ + "unregisterListening(address)" + ], + "0xf295206f": [ + "_unsafeSend(address,uint256)" + ], + "0x9447fd0a": [ + "until()" + ], + "0x63def590": [ + "untrustClient(address)" + ], + "0x6a4b6aa5": [ + "untrustedChildWithdraw()" + ], + "0x0e38901a": [ + "unvault(uint256)" + ], + "0xe0b1cccb": [ + "updateBalance(address,uint256)" + ], + "0xfd8055d2": [ + "updateBOTBillingInfo(uint256,string,address,string,string,uint256)" + ], + "0xb4a5ef58": [ + "updateDefaultTimeoutPeriod(uint256)" + ], + "0x2ffb9e64": [ + "updateGasForXaurData(uint256,uint256)" + ], + "0x4f10acc1": [ + "updateGoldFeeData(uint256)" + ], + "0x7c582304": [ + "updateInvestmentTotal(address,uint256)" + ], + "0xf2016a4f": [ + "updateMinEthPerNotification(uint256)" + ], + "0x10f41715": [ + "updateMintingData(uint256,uint256)" + ], + "0xb3485dca": [ + "UpdatePrice(uint8,uint32)" + ], + "0x482961e1": [ + "updateReading(uint256,uint256)" + ], + "0x9dc35799": [ + "updateReading(uint256)" + ], + "0x71e11354": [ + "updateRegistration(string,string)" + ], + "0x645dce72": [ + "updateRelease(uint32,uint32,uint32,bytes20,bool)" + ], + "0x5dddea66": [ + "updateState(uint256,uint8,uint256)" + ], + "0xbc058968": [ + "updateThingData(bytes32[],bytes32[],uint88)" + ], + "0x4ca7fbd0": [ + "updateTokenPriceWeekTwo()" + ], + "0x1d4b0796": [ + "updateTxStats()" + ], + "0x5a6c787e": [ + "updateWithMPO()" + ], + "0x1aa86370": [ + "updateXIPFSPublicKey(string)" + ], + "0xac7ffae3": [ + "updt(uint256,string,uint256,uint256,string,string,address)" + ], + "0x0900f010": [ + "upgrade(address)" + ], + "0xf597a499": [ + "UserDatabase(uint256)" + ], + "0x376fe102": [ + "userId(address)" + ], + "0xe6b972f5": [ + "userName(address)" + ], + "0x7b12df39": [ + "userProfits()" + ], + "0xe28fed1e": [ + "userRescues(address)" + ], + "0x8a65d874": [ + "userStats(address)" + ], + "0xed498fa8": [ + "userTokens(address)" + ], + "0xccf1ab9b": [ + "usurpation()" + ], + "0x83f6d9a4": [ + "validateNameInternal(string)" + ], + "0xb8d4efb5": [ + "validate_percent(uint8)" + ], + "0x67fc1c6a": [ + "validateProposedMonarchName(string)" + ], + "0xd22c391a": [ + "validateProposedThroneRules(uint256,uint256,uint256,uint256,uint256)" + ], + "0x8f7fe231": [ + "ValidetherOracle()" + ], + "0xc0a239e3": [ + "valuePerShare()" + ], + "0xcc189d00": [ + "Vault(address,uint256)" + ], + "0xe820a32f": [ + "vetoPayout(uint256,uint256)" + ], + "0x4228974c": [ + "Videos()" + ], + "0x226685ee": [ + "Visit()" + ], + "0x6bf52ffa": [ + "Vote()" + ], + "0x5f09952e": [ + "voteAllowTransactions(bool)" + ], + "0x52a554a1": [ + "voteBoardProposal(uint256,address,bool)" + ], + "0x187a62d5": [ + "voteEmergencyWithdrawal(bool)" + ], + "0x045c6ce0": [ + "voteForProposal(uint256)" + ], + "0x58ae8bcf": [ + "voteInMasterKey(address)" + ], + "0x901d7775": [ + "voteOutMasterKey(address)" + ], + "0x23637e60": [ + "votePrice(uint256,bool)" + ], + "0x76e4ca0d": [ + "voteQuorum(uint256,bool)" + ], + "0xf2561a43": [ + "voteSuicide(address)" + ], + "0x0bf75567": [ + "voteSuperQuorum(uint256,bool)" + ], + "0xb3f98adc": [ + "vote(uint8)" + ], + "0xe2cdd42a": [ + "vote(uint256,address,bool)" + ], + "0x0121b93f": [ + "vote(uint256)" + ], + "0x655388be": [ + "walkTowardsBlock()" + ], + "0x5d5483b3": [ + "WatchAppliedFeePercentage()" + ], + "0xd628e0a6": [ + "WatchBalance()" + ], + "0xe0834ea4": [ + "WatchBalanceInEther()" + ], + "0x252786e4": [ + "WatchBlockSizeInEther()" + ], + "0xcf6b3822": [ + "WatchCollectedFeesInSzabo()" + ], + "0x82381c96": [ + "WatchCurrentMultiplier()" + ], + "0x20bfec70": [ + "WatchFees()" + ], + "0xc9734ebd": [ + "WatchLastPayout()" + ], + "0x61ba3377": [ + "WatchLastTime()" + ], + "0xfb34fc6f": [ + "WatchNextBlockReward()" + ], + "0x4ef5710a": [ + "WatchNumberOfPlayerInCurrentRound()" + ], + "0x6b3a87d2": [ + "WatchWinningPot()" + ], + "0xbe0638e4": [ + "WealthShare()" + ], + "0x05459f42": [ + "WeeklyLotteryB(address)" + ], + "0x836d6d66": [ + "WeeklyLotteryB(address,uint256)" + ], + "0x856f3080": [ + "WhatWasMyHash(bytes32)" + ], + "0x06e53f47": [ + "whichChainIsThis()" + ], + "0x9b19251a": [ + "whitelist(address)" + ], + "0xd6d02c51": [ + "whois(string)" + ], + "0x609ff1bd": [ + "winningProposal()" + ], + "0x95ceb4b3": [ + "winningProtocal()" + ], + "0x5ca3400c": [ + "WithBeneficiary(address)" + ], + "0x31e3e2fe": [ + "WithDraw()" + ], + "0x07bc6fad": [ + "withdraw(address,uint256,bytes32,uint256)" + ], + "0x8d92fdf3": [ + "withdrawAsset(uint256)" + ], + "0x5f52e9fd": [ + "WithdrawCashForHardwareReturn(uint256)" + ], + "0x1dd4914b": [ + "withdrawEtherOrThrow(uint256)" + ], + "0x24600fc3": [ + "withdrawFunds()" + ], + "0xf4aa1291": [ + "withdrawFundsAdvanced(address,uint256,uint256)" + ], + "0xceeafd9d": [ + "withdrawFundsAdvancedRP(address,uint256,uint256)" + ], + "0xc7f86c37": [ + "withdrawFundsRP()" + ], + "0x6103d70b": [ + "withdrawPayments()" + ], + "0x770c6cbb": [ + "WithDrawPreForkChildDAO()" + ], + "0x4f573cb2": [ + "withdrawRevenue()" + ], + "0xf108a7d2": [ + "withdraw(uint256,address,string)" + ], + "0x5b6b431d": [ + "Withdraw(uint256)" + ], + "0x44faa139": [ + "Withdraw(uint32)" + ], + "0xe63697c8": [ + "withdraw(uint256,address,uint256)" + ], + "0xf359671c": [ + "withdrawWithReference(address,uint256,string)" + ], + "0x89790192": [ + "WithFee(address,uint256)" + ], + "0x0d87a7c0": [ + "WLBDrawsDB()" + ], + "0xd08275f1": [ + "WolframAlpha()" + ], + "0x720c4798": [ + "workshop()" + ], + "0x214c9d50": [ + "WritedrawStatus()" + ], + "0xc0a1a949": [ + "x15()" + ], + "0x7266f4a4": [ + "X3()" + ], + "0xdb7ca38a": [ + "XaurmProxyContract()" + ], + "0x4f052648": [ + "XaurumDataContract()" + ], + "0xc1be4031": [ + "XaurumProxyERC20()" + ], + "0x71f297cc": [ + "XaurumToken(address)" + ], + "0x648621ec": [ + "xnotify(string)" + ], + "0xe3ceb06d": [ + "YesNo(bytes32,address,string,address,uint256)" + ], + "0xbc8f3bcb": [ + "ZeroDollarHomePage()" + ], + "0xbd02e4f6": [ + "calcRandomNumberAndGetPreliminaryGameResult(uint256,uint64)" + ], + "0x8f4fb958": [ + "calculateRandomNumberByBlockhash(uint256,address)" + ], + "0xae47a290": [ + "changeMaxBet(uint256)" + ], + "0x06394c9b": [ + "changeOperator(address)" + ], + "0x3aa5f4f7": [ + "changeTokenSettings(uint16,uint256,uint256)" + ], + "0x9a969768": [ + "distributeProfits(uint256)" + ], + "0x0f590c36": [ + "emergencyFixGameResult(uint64,uint256)" + ], + "0x364f4896": [ + "emission(address,address,uint256,uint16,uint16)" + ], + "0x7a8df1b9": [ + "getAffiliateInfo(address)" + ], + "0x9eb9dd3b": [ + "getBetsProcessed()" + ], + "0x2fd6d40b": [ + "getBetValueByGamble(uint8)" + ], + "0x6d12301c": [ + "getBetValue(bytes32,uint8)" + ], + "0x03ee8f08": [ + "getCoeff(uint16)" + ], + "0x38f77d69": [ + "getDistributeProfitsInfo()" + ], + "0xd02528e6": [ + "GetGameIndexesToProcess()" + ], + "0xb3fb14ad": [ + "getGameResult()" + ], + "0x49041903": [ + "getGame(uint64)" + ], + "0x824d5603": [ + "getIndex(uint16,uint16)" + ], + "0xf84f420b": [ + "getRandomNumber(address,uint256)" + ], + "0x267127ec": [ + "getTokenSettings()" + ], + "0x3cf885c4": [ + "isBitSet(uint256,uint8)" + ], + "0x15cff546": [ + "isOperationBlocked()" + ], + "0x257bcd6a": [ + "placeBet(uint256,bytes32,bytes32)" + ], + "0xfe73e3ec": [ + "preliminaryGameResult(uint64)" + ], + "0x89abeb19": [ + "ProcessGameExt(uint256)" + ], + "0x665bcc32": [ + "ProcessGames(uint256[],bool)" + ], + "0xa24d23eb": [ + "ProcessGame(uint256,uint256)" + ], + "0xaa677354": [ + "register(address,address)" + ], + "0xeb5904c0": [ + "setProfitDistributionContract(address)" + ], + "0x53c84526": [ + "setSmartAffiliateContract(address)" + ], + "0xf0caea2b": [ + "SmartRoulette()" + ], + "0xb599afc8": [ + "totalBetCount()" + ], + "0x4ce01d86": [ + "totalBetValue()" + ], + "0x2c4e591b": [ + "totalGames()" + ], + "0x37bdc99b": [ + "release(uint256)" + ], + "0x25fda176": [ + "notify(address,uint256)" + ], + "0x545e7c61": [ + "deploy(address,address)" + ], + "0xd3017193": [ + "addUser(address,uint256)" + ], + "0x2d580ef6": [ + "add(address,bytes32)" + ], + "0x79716e43": [ + "confirmTransaction(bytes32)" + ], + "0xca1d209d": [ + "fund(uint256)" + ], + "0x8b147245": [ + "update(bytes32)" + ], + "0x329ce29e": [ + "buyTile(uint256)" + ], + "0xa3908e1b": [ + "convert(uint256)" + ], + "0xdef2489b": [ + "convert(address)" + ], + "0x1e9a6950": [ + "redeem(address,uint256)" + ], + "0x74a93e6c": [ + "setTokenHolder(address,address)" + ], + "0xac940823": [ + "betOnLowHigh(bool)" + ], + "0x5521d17b": [ + "betOnColor(bool)" + ], + "0x338cdca1": [ + "request()" + ], + "0x59c87d70": [ + "request(bytes32)" + ], + "0x2bffc7ed": [ + "add(string,address)" + ], + "0x58d9fa04": [ + "addUser(uint256,address)" + ], + "0x64371977": [ + "set(uint256,string)" + ], + "0xf09ea2a6": [ + "offer(uint256,address,uint256,address)" + ], + "0x77fcb91d": [ + "forward(address,bool)" + ], + "0x53d9d910": [ + "create(address[],uint256,uint256)" + ], + "0xa8d95fb2": [ + "claim(address,string)" + ], + "0x591c515f": [ + "append(string,string)" + ], + "0xa7abc124": [ + "activate(bool,bool)" + ], + "0xc7f2e6af": [ + "Contribute(bytes20)" + ], + "0xebf6e91d": [ + "hit(uint256)" + ], + "0x7183616c": [ + "notarize(string)" + ], + "0x3da5c3ce": [ + "puzzle(address,bytes32)" + ], + "0x4b59e880": [ + "puzzle(address,bytes32,bytes32)" + ], + "0xae0a6b28": [ + "signature(string,bytes32)" + ], + "0x96b76c23": [ + "stand(uint256)" + ], + "0x6ea056a9": [ + "sweep(address,uint256)" + ], + "0x4637d827": [ + "trust(address)" + ], + "0x3af39c21": [ + "undefined()" + ], + "0x776d1a01": [ + "unvest(uint256,uint256,uint256,uint256,uint256,bool)" + ], + "0xb6608467": [ + "updateShares(uint256)" + ], + "0xf04da65b": [ + "getShares(address)" + ], + "0x90fa337d": [ + "storeBlockWithFeeAndRecipient(bytes,int256,int256)" + ], + "0x59d1d43c": [ + "text(bytes32,string)" + ], + "0x10f13a8c": [ + "setText(bytes32,string,string)" + ], + "0xa21174bb": [ + "DefaultReverseResolver(address)" + ], + "0x4e543b26": [ + "setResolver(address)" + ], + "0x0f5a5466": [ + "claimWithResolver(address,address)" + ], + "0xc0ee0b8a": [ + "tokenFallback(address,uint256,bytes)" + ], + "0x5a6b26ba": [ + "withdrawal(address,uint256)" + ], + "0x690e7c09": [ + "open(uint256)" + ], + "0x09fd018e": [ + "setClaimer(uint256,address,uint256)" + ], + "0x596c8976": [ + "close(uint256,uint256)" + ], + "0xdd0d74ff": [ + "IssueBank(address)" + ], + "0x228cb733": [ + "reward()" + ], + "0x99b721a5": [ + "rewardEthAnd(address[])" + ], + "0xeacccaf0": [ + "setReward(address,uint256)" + ], + "0x85eddeea": [ + "setReward(address[],uint256[])" + ], + "0xeb4dd8f2": [ + "confirm(address)" + ], + "0x342b7e71": [ + "setTokenList(address[])" + ], + "0xbd5dec98": [ + "withdraw(address[])" + ], + "0x640a4d0c": [ + "_deposited(address,address,uint256)" + ], + "0xc0b4fa6d": [ + "_reward(address[])" + ], + "0x18573bf9": [ + "calculeReward(uint256,uint256)" + ], + "0x73053f70": [ + "tokenDeposit(address)" + ], + "0x58e2cd76": [ + "watch(address)" + ], + "0xd9caed12": [ + "withdraw(address,address,uint256)" + ], + "0xb4427263": [ + "createTokens()" + ], + "0x01a7a8c0": [ + "batFundDeposit()" + ], + "0x229a4978": [ + "batFund()" + ], + "0x4172d080": [ + "tokenExchangeRate()" + ], + "0x6f7920fd": [ + "tokenCreationCap()" + ], + "0x8d4e4083": [ + "isFinalized()" + ], + "0x91b43d13": [ + "fundingEndBlock()" + ], + "0xa81c3bdf": [ + "ethFundDeposit()" + ], + "0xc039daf6": [ + "tokenCreationMin()" + ], + "0xd648a647": [ + "fundingStartBlock()" + ], + "0x3a1a635e": [ + "createNewRevision(bytes20,bytes32)" + ], + "0x7b760537": [ + "updateLatestRevision(bytes20,bytes32)" + ], + "0xa4b8c2e7": [ + "restart(bytes20,bytes32)" + ], + "0x22fa85ca": [ + "testFailRegisterContractAgain()" + ], + "0xcb56d626": [ + "testFailBlobStoreNotRegistered()" + ], + "0x6ec99dd0": [ + "testGetBlobStore()" + ], + "0x7604b6d7": [ + "testGetBlobStoreFromFullBlobId()" + ], + "0xc28bfe5a": [ + "testFailCreateSameIpfsHashAndNonce()" + ], + "0xded04fe9": [ + "testFailCreateNewRevisionNotOwner()" + ], + "0x9a93e940": [ + "testFailCreateNewRevisionNotUpdatable()" + ], + "0x960d8cd3": [ + "testFailUpdateLatestRevisionNotOwner()" + ], + "0x3ce1f4e7": [ + "testFailUpdateLatestRevisionNotUpdatable()" + ], + "0xf99ebb71": [ + "testFailUpdateLatestRevisionEnforceRevisions()" + ], + "0x251fa3b1": [ + "testFailRetractLatestRevisionNotOwner()" + ], + "0xb2ab530e": [ + "testFailRetractLatestRevisionNotUpdatable()" + ], + "0xc57a99e5": [ + "testFailRetractLatestRevisionEnforceRevisions()" + ], + "0xc204505a": [ + "testFailRetractLatestRevisionDoesntHaveAdditionalRevisions()" + ], + "0x617f8666": [ + "testFailRestartNotOwner()" + ], + "0xd2c5c368": [ + "testFailRestartNotUpdatable()" + ], + "0xcf984f16": [ + "testFailRestartEnforceRevisions()" + ], + "0x3cc0fb45": [ + "testFailRetractNotOwner()" + ], + "0xa9888148": [ + "testFailRetractNotRetractable()" + ], + "0x71e60fe6": [ + "testFailTransferEnableNotTransferable()" + ], + "0x9acade7e": [ + "testFailTransferDisableNotEnabled()" + ], + "0xe2b8766c": [ + "testFailTransferNotTransferable()" + ], + "0x615f9f1f": [ + "testFailTransferNotEnabled()" + ], + "0x19ea61db": [ + "testFailTransferDisabled()" + ], + "0x776df027": [ + "testFailDisownNotOwner()" + ], + "0xeddce76b": [ + "testFailDisownNotTransferable()" + ], + "0x32d8eee5": [ + "testFailSetNotUpdatableNotOwner()" + ], + "0x6fe5b536": [ + "testFailSetEnforceRevisionsNotOwner()" + ], + "0xf2c2dff2": [ + "testFailSetNotRetractableNotOwner()" + ], + "0x5cc501ce": [ + "testFailSetNotTransferableNotOwner()" + ], + "0xf38e5ca2": [ + "getBlobStoreFromFullBlobId(bytes32)" + ], + "0x01e3d346": [ + "create(bytes1,bytes32,uint256)" + ], + "0x147a5640": [ + "_getAllRevisionIpfsHashes(bytes20)" + ], + "0x64d12ec6": [ + "getRevisionIpfsHash(bytes20,uint256)" + ], + "0x540c97c8": [ + "getAllRevisionIpfsHashes(bytes20)" + ], + "0xb7c38d02": [ + "testControlCreateSameIpfsHashAndNonce()" + ], + "0x6e1479c0": [ + "testControlCreateNewRevisionNotOwner()" + ], + "0xe73b7d77": [ + "testControlCreateNewRevisionNotUpdatable()" + ], + "0x8cdcdae1": [ + "testControlUpdateLatestRevisionNotOwner()" + ], + "0x69c5c229": [ + "testControlUpdateLatestRevisionNotUpdatable()" + ], + "0x80e74b04": [ + "testControlUpdateLatestRevisionEnforceRevisions()" + ], + "0x86602b6b": [ + "testControlRetractLatestRevisionNotOwner()" + ], + "0xc7a3778f": [ + "testControlRetractLatestRevisionNotUpdatable()" + ], + "0x6c712471": [ + "testControlRetractLatestRevisionEnforceRevisions()" + ], + "0x610285d2": [ + "testControlRetractLatestRevisionDoesntHaveAdditionalRevisions()" + ], + "0xebc697d1": [ + "testControlRestartNotOwner()" + ], + "0x2d985cfb": [ + "testControlRestartNotUpdatable()" + ], + "0xcebb8bb0": [ + "testControlRestartEnforceRevisions()" + ], + "0xe37e60d1": [ + "testControlRetractNotOwner()" + ], + "0xcefdfcf3": [ + "testControlRetractNotRetractable()" + ], + "0x490825a9": [ + "testControlTransferEnableNotTransferable()" + ], + "0x20d615c2": [ + "testControlTransferDisableNotEnabled()" + ], + "0xe18c52ae": [ + "testControlTransferNotTransferable()" + ], + "0xe71d7bf0": [ + "testControlTransferNotEnabled()" + ], + "0x32bf775d": [ + "testControlTransferDisabled()" + ], + "0xb47784d9": [ + "testControlDisownNotOwner()" + ], + "0x98a29a58": [ + "testControlDisownNotTransferable()" + ], + "0x50a9eddb": [ + "testControlSetNotUpdatableNotOwner()" + ], + "0x0ec3b247": [ + "testControlSetEnforceRevisionsNotOwner()" + ], + "0xc3689f01": [ + "testControlSetNotRetractableNotOwner()" + ], + "0x9bf68006": [ + "testControlSetNotTransferableNotOwner()" + ], + "0x0ab03e1b": [ + "testControlRegisterContractAgain()" + ], + "0x895224db": [ + "testControlBlobStoreNotRegistered()" + ], + "0x81accd0b": [ + "create(bytes1,bytes32,bytes32)" + ], + "0x6013aa44": [ + "testControlCreateSameNonce()" + ], + "0x94106200": [ + "testFailCreateSameNonce()" + ], + "0x396ed0ab": [ + "Burn()" + ], + "0xd89135cd": [ + "totalBurned()" + ], + "0xf24e4a15": [ + "Purge()" + ], + "0x1caba41f": [ + "decimalUnits()" + ], + "0xc0463711": [ + "lastUpdate()" + ], + "0xe5a6b10f": [ + "currency()" + ], + "0x1820b575": [ + "Team(uint256,address,uint256)" + ], + "0x8a78f5e2": [ + "changeMember(address,bool,bool,uint256)" + ], + "0x30b0faab": [ + "changeSettings(uint256,address,uint256)" + ], + "0x03048a42": [ + "createRequest(address,uint256,string,bytes,bytes)" + ], + "0x17fb6c6e": [ + "approveRequest(uint256,bool,string)" + ], + "0x03ef2a2c": [ + "tryExecuteProposal(uint256,bytes)" + ], + "0x4ff6aa46": [ + "deactivateTeam()" + ], + "0x3f2885cb": [ + "publish(string,string,address,bytes32)" + ], + "0x50692d9a": [ + "toContentID(address,string,string,address,bytes32)" + ], + "0x7115c988": [ + "Batch(address)" + ], + "0x64eb7327": [ + "_getContent(bytes32)" + ], + "0x7ff0346b": [ + "getContents(bytes32[])" + ], + "0x2625e2e1": [ + "post(address,address,bytes32)" + ], + "0x534878fb": [ + "reply(address,address,bytes32,bytes32)" + ], + "0x7f602231": [ + "tip(bytes32,address,uint256)" + ], + "0x816e24b0": [ + "setupDeposits()" + ], + "0x68e7bdba": [ + "disableApi(address)" + ], + "0xbd322b77": [ + "enableApi(address)" + ], + "0x5cc15001": [ + "getContent(bytes32)" + ], + "0x9a01b4d5": [ + "getChannel(address)" + ], + "0xfbcbc0f1": [ + "getAccount(address)" + ], + "0xae9a0785": [ + "getChannelPostCount(address)" + ], + "0x5a17aa41": [ + "getContentTip(bytes32,address)" + ], + "0xd83a7f67": [ + "getDepositAddress(address)" + ], + "0xc489744b": [ + "getTokenBalance(address,address)" + ], + "0xe5c46944": [ + "MultiSigWallet(address[],uint256)" + ], + "0xe20056e6": [ + "replaceOwner(address,address)" + ], + "0xc6427474": [ + "submitTransaction(address,uint256,bytes)" + ], + "0x20ea8d86": [ + "revokeConfirmation(uint256)" + ], + "0xee22610b": [ + "executeTransaction(uint256)" + ], + "0x784547a7": [ + "isConfirmed(uint256)" + ], + "0xec096f8d": [ + "addTransaction(address,uint256,bytes)" + ], + "0x8b51d13f": [ + "getConfirmationCount(uint256)" + ], + "0x54741525": [ + "getTransactionCount(bool,bool)" + ], + "0xb5dc40c3": [ + "getConfirmations(uint256)" + ], + "0xa8abe69a": [ + "getTransactionIds(uint256,uint256,bool,bool)" + ], + "0x1914427f": [ + "MultiSigWalletWithDailyLimit(address[],uint256,uint256)" + ], + "0xcea08621": [ + "changeDailyLimit(uint256)" + ], + "0x811de206": [ + "isConfirmedByOwners(uint256)" + ], + "0x11c91914": [ + "isUnderLimit(uint256)" + ], + "0x4bc9fdc2": [ + "calcMaxWithdraw()" + ], + "0xae1a0b0c": [ + "launchLength()" + ], + "0x0a40f15f": [ + "fundDeal(string,address)" + ], + "0x1504ce95": [ + "payout(string)" + ], + "0x2de90801": [ + "hashtagToken()" + ], + "0x2e788443": [ + "resolve(string,address,uint256)" + ], + "0x5e717e2d": [ + "readDeal(string,address)" + ], + "0xac56c52b": [ + "makeDealForTwo(string,uint256)" + ], + "0xcdcf0c4a": [ + "dispute(string,address)" + ], + "0xf089b7dd": [ + "hashtag()" + ], + "0xf3227dc4": [ + "cancelDeal(string)" + ], + "0x3cebb823": [ + "changeController(address)" + ], + "0xf77c4791": [ + "controller()" + ], + "0x085d4883": [ + "provider()" + ], + "0x0e429ecc": [ + "providerValue()" + ], + "0x117de2fd": [ + "payout(address,uint256)" + ], + "0x200d2ed2": [ + "status()" + ], + "0x2e49d78b": [ + "setStatus(uint8)" + ], + "0x30cfac6c": [ + "assignTo(uint256,address,uint256)" + ], + "0xf3ab7ea9": [ + "seeker()" + ], + "0xfef1dc7d": [ + "seekerValue()" + ], + "0x0e4355d4": [ + "validFactories(address)" + ], + "0x10fe9ae8": [ + "getTokenAddress()" + ], + "0x29ce1ec5": [ + "addFactory(address)" + ], + "0x355e6b43": [ + "setCommission(uint256)" + ], + "0x4b37c73f": [ + "removeFactory(address)" + ], + "0x6985e46e": [ + "getConflictResolver()" + ], + "0x7f301b83": [ + "setMetadataHash(string)" + ], + "0x24664106": [ + "mintRep(int256,address,uint256)" + ], + "0xa4a75edc": [ + "registerDeal(address,address)" + ], + "0xaaf73ef7": [ + "registeredDeals()" + ], + "0xc5a1d7f0": [ + "metadataHash()" + ], + "0xcffee328": [ + "successfulDeals()" + ], + "0xe1489191": [ + "commission()" + ], + "0xf34f43f6": [ + "getRepTokenAddress()" + ], + "0xf6b44d03": [ + "validFactories()" + ], + "0x2dc2dbf2": [ + "makeSimpleDeal(address,address,uint256,bytes32)" + ], + "0x12424e3f": [ + "approve()" + ], + "0xb85477c5": [ + "dealStatus()" + ], + "0xe344606b": [ + "hashtagCommission()" + ], + "0x4a393149": [ + "onTransfer(address,address,uint256)" + ], + "0xda682aeb": [ + "onApprove(address,address,uint256)" + ], + "0xf48c3054": [ + "proxyPayment(address)" + ], + "0x55a373d6": [ + "tokenContract()" + ], + "0xc0112678": [ + "arcToken()" + ], + "0x921b2d64": [ + "mintTokens(int256,address,uint256)" + ], + "0x3290ce29": [ + "purchaseTokens()" + ], + "0x38cde380": [ + "changeWeight(uint256)" + ], + "0x4f995d08": [ + "getPeople()" + ], + "0x74607d91": [ + "patient(uint256)" + ], + "0x7b464e93": [ + "prescriptions(bytes32)" + ], + "0x86590955": [ + "changeHeight(uint256)" + ], + "0xd72dec33": [ + "changeVaccinHistory(address)" + ], + "0xdc3d4203": [ + "createPatient(bytes32,bytes32,uint256,uint256,uint256,bytes32,uint256)" + ], + "0xe571fd2d": [ + "addPrescription(uint256,string)" + ], + "0xfbbf93a0": [ + "getDetails()" + ], + "0x077dadb2": [ + "coinBalanceMultisig(address)" + ], + "0x249b4d4f": [ + "transferContractUser(address)" + ], + "0x388f3cd3": [ + "cashin(address,uint256)" + ], + "0x527f4ff1": [ + "setTransferAddressUser(address,address)" + ], + "0x6ba2aefc": [ + "transferMultisig(address,address,uint256)" + ], + "0x9d16aca6": [ + "changeExchangeContract(address)" + ], + "0xd126dac4": [ + "cashout(address,address,uint256)" + ], + "0xf1679095": [ + "getTransferAddressUser(address)" + ], + "0x0bf77989": [ + "debug_coinbaseTxSha(bytes,uint256)" + ], + "0x107b1f8c": [ + "debug_verifyShare(bytes,uint256[],uint256[],bytes,uint256,uint256)" + ], + "0x14ca5398": [ + "submitFullBlock(bytes,uint256[],uint256[],bytes,bytes,bytes,bytes,bytes,bytes,uint256)" + ], + "0x2850c72a": [ + "debug_extendCoinbaseTxOutput(uint256,uint256)" + ], + "0x3e2ee39e": [ + "debug_resetuser()" + ], + "0x43c33ac9": [ + "submitShares(uint256,uint256)" + ], + "0x579d5fba": [ + "debug_hash3Int(uint256)" + ], + "0x83cd5e13": [ + "debug_multiplehash(uint256,uint256)" + ], + "0x88702cc4": [ + "debug_hash256Double(bytes)" + ], + "0x88f6d5a4": [ + "constructCoinbaseTx(uint256,uint256)" + ], + "0x9559225c": [ + "debug_hash3Byte(bytes)" + ], + "0x99d1d002": [ + "debug_blockHeaderMerkle(bytes)" + ], + "0xa68393a2": [ + "debug_getCoinbaseTxOutputLen(uint256)" + ], + "0xad076bfc": [ + "debug_hash256Double_concat(bytes,bytes,bytes)" + ], + "0xb2b0aefb": [ + "verifyPendingShares(uint256[],uint256[],uint256,uint256[],uint256[],bytes,bytes,uint256)" + ], + "0xed47ca94": [ + "debug_verifySharesTreeSubmission(uint256[],uint256[],uint256,uint256,uint256,uint256)" + ], + "0xf16fa954": [ + "debug_resizeRealPrefix(uint256,uint256)" + ], + "0x6104464f": [ + "previousPublishedVersion()" + ], + "0x6737c877": [ + "setAttributes(bytes)" + ], + "0x884179d8": [ + "ipfsAttributeLookup(address)" + ], + "0x9352fad2": [ + "run(string)" + ], + "0x98e7ea43": [ + "reward(uint32[],address[])" + ], + "0x0456860a": [ + "acceptAtCommunity(address,uint256)" + ], + "0x0a90c704": [ + "createCommunity(string,string,string,string,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool,uint256,uint256,uint256)" + ], + "0x197f3c29": [ + "notLike(address)" + ], + "0x1b7db340": [ + "sysAdmin()" + ], + "0x2925ffc2": [ + "modifyCommunityTaxes(uint256,uint256,uint256,uint256)" + ], + "0x33b85b73": [ + "modifyCommunityRates(uint256,uint256,uint256,uint256,uint256,bool,uint256,uint256,uint256)" + ], + "0x3500a48d": [ + "transferCommunityCommune(uint256,address)" + ], + "0x36b33415": [ + "modifyMemberInfo(string,string,string,string)" + ], + "0x47c66140": [ + "getProposalVotes(uint256)" + ], + "0x519a078f": [ + "getCommunitybyIndex(uint256)" + ], + "0x526b91d1": [ + "transferSysAdmin(address)" + ], + "0x52ea5667": [ + "getMPbyIndex(uint256)" + ], + "0x67a09c23": [ + "payment(address,uint256)" + ], + "0x71efeff1": [ + "transferCommunityBank(uint256,address)" + ], + "0x721a1f57": [ + "endorseCredit(address,uint256,uint256)" + ], + "0x84e10a90": [ + "getTotals()" + ], + "0x8b343e8f": [ + "getMemberCredit(address)" + ], + "0x9431e412": [ + "getCommunityRates(uint256)" + ], + "0xa5496e60": [ + "newProposal(uint256,string,string,uint256,uint256)" + ], + "0xad71c687": [ + "registerSystem(string,string,string,string)" + ], + "0xb122a0ef": [ + "joinCommunity(uint256)" + ], + "0xbcabb54c": [ + "modifyCommunityInfo(uint256,string,string,string,string)" + ], + "0xbfb04c60": [ + "proposeAcceptanceAsMember(uint256)" + ], + "0xd21cbffc": [ + "getIfVoted(uint256,address)" + ], + "0xd95ab72d": [ + "getMemberWallet(address)" + ], + "0xdde8535f": [ + "getMemberStatus(address)" + ], + "0xe05e3028": [ + "getCommunityManagement(uint256)" + ], + "0xe465c465": [ + "like(address)" + ], + "0xee650248": [ + "vote(uint256,int8)" + ], + "0xf47efbca": [ + "getMemberLinks(address)" + ], + "0xf6df26d2": [ + "kickOutCommunity(address,uint256)" + ], + "0xf82c2301": [ + "resignFromCommunity()" + ], + "0xfba6651c": [ + "getCommunityTaxes(uint256)" + ], + "0xfcc101ba": [ + "getCommunityDescription(uint256)" + ], + "0x04029f23": [ + "_setBugFixVersion(string,uint32,bytes32,uint32)" + ], + "0x1f9ea25d": [ + "_setDepositAccount(address)" + ], + "0x49593f53": [ + "submit(string,uint64,uint32,uint32,bytes32)" + ], + "0x569aa0d8": [ + "getPlayerSubmissionFromCompetition(string,uint8,address)" + ], + "0x59a4669f": [ + "increaseJackpot(string)" + ], + "0x656104f5": [ + "_setOrganiser(address)" + ], + "0x70de8c6e": [ + "start(string,uint64,uint8,uint32)" + ], + "0x71bde852": [ + "_startNextCompetition(string,uint32,uint88,uint8,uint8,uint16,uint64,uint32,bytes32,uint32[])" + ], + "0x8d909ad9": [ + "getSeedAndState(string,address)" + ], + "0x8f30435d": [ + "getCompetitionValues(string,uint8)" + ], + "0x916dbc17": [ + "getPlayersFromCompetition(string,uint8)" + ], + "0xc91540f6": [ + "getCurrentCompetitionValues(string)" + ], + "0xfedc2a28": [ + "_rewardWinners(string,uint8,address[])" + ], + "0x224ccc49": [ + "chainLastMessageHash(bytes32)" + ], + "0x482f63b0": [ + "postMessage(bytes32,bytes)" + ], + "0x590a4595": [ + "createNewChain(bytes)" + ], + "0x858c7559": [ + "chainIDSeed()" + ], + "0x52c98e33": [ + "checkClaim(address,uint256,uint256)" + ], + "0x598aa1fc": [ + "checkEndorsement(address,uint256,address)" + ], + "0xa16c6a73": [ + "setClaim(uint256,uint256)" + ], + "0xa1bdd146": [ + "setEndorsement(address,uint256,uint256)" + ], + "0xa3a48785": [ + "unsetClaim(uint256)" + ], + "0xd7789a9f": [ + "unsetEndorsement(address,uint256)" + ], + "0xa9d0ddc7": [ + "addContractWithInfo(string,string)" + ], + "0xfa3559f7": [ + "attestToContract(uint256,bool,string)" + ], + "0x179fc99f": [ + "etherBalanceOf(address)" + ], + "0x3b0c197e": [ + "getBook()" + ], + "0x42da3b6b": [ + "getAmount(uint256,address)" + ], + "0x6dee2032": [ + "getOpenOrdersOf(address)" + ], + "0x836e4158": [ + "numOrdersOf(address)" + ], + "0x8ab1a5d4": [ + "sell(uint256,uint256,bool)" + ], + "0x8b7afe2e": [ + "contractBalance()" + ], + "0x8c3f914a": [ + "spread(bool)" + ], + "0x8f70ccf7": [ + "setTrading(bool)" + ], + "0x975289fd": [ + "getPriceVolume(uint256)" + ], + "0xc3434883": [ + "buy(uint256,uint256,bool)" + ], + "0xd07866d2": [ + "sizeOf(uint256)" + ], + "0xe1725c92": [ + "decimalPlaces()" + ], + "0xe2dede94": [ + "getNode(uint256,uint256)" + ], + "0xec44acf2": [ + "trading()" + ], + "0x11456b47": [ + "addName(string)" + ], + "0x14bfd6d0": [ + "admins(uint256)" + ], + "0x4deb68a3": [ + "auctionStart(bytes32,uint256,uint256)" + ], + "0x663e90d9": [ + "setBuyNowListing(bytes32,uint256,bool)" + ], + "0x71c79588": [ + "releaseName(bytes32)" + ], + "0x7c72e273": [ + "auctionFinalize(bytes32)" + ], + "0x9bdd7cdb": [ + "forceRelease(bytes32)" + ], + "0xbfcf63b0": [ + "claimEther(address,uint256)" + ], + "0xc415b95c": [ + "feeCollector()" + ], + "0xd7ad4931": [ + "buyNow(bytes32)" + ], + "0xe2acf75d": [ + "auctionCancel(bytes32)" + ], + "0xf747a5eb": [ + "auctionBid(bytes32)" + ], + "0x13831693": [ + "getLevitatingUnicorns(bytes32,uint64)" + ], + "0x50fe533b": [ + "getLevitatingBirds(bytes32,uint64)" + ], + "0xc9aa71b8": [ + "getFlyingUnicorns(bytes32,uint64)" + ], + "0xfeb50430": [ + "getLevitatingKittens(bytes32,uint64)" + ], + "0x78c2c849": [ + "burnUnicorns()" + ], + "0xbd8b452e": [ + "eatUnicorns()" + ], + "0x4b06fb28": [ + "eatUnicornsAlive()" + ], + "0x5b303e16": [ + "eatUnicorns(uint256)" + ], + "0xa1e95792": [ + "eatUnicornsAlive(uint256)" + ], + "0x10867877": [ + "eatUnicornWithoutCorn()" + ], + "0x4b269a00": [ + "withdraw(int256[])" + ], + "0x2c7cce9e": [ + "auctionMinPriceIncrease()" + ], + "0x801c334e": [ + "auctionIncreaseBid(bytes32)" + ], + "0x95e911a8": [ + "feeBase()" + ], + "0xb4628c8a": [ + "ENSRegistrar()" + ], + "0xddca3f43": [ + "fee()" + ], + "0xe765cb44": [ + "auctionMinPrice()" + ], + "0x69f30401": [ + "bid(address,uint256[],uint256[])" + ], + "0x6e67b803": [ + "bid3(address,uint256[],uint256[])" + ], + "0x21462191": [ + "bid3(address,uint8[],uint8[])" + ], + "0x92584d80": [ + "finalize(bytes32)" + ], + "0xf3bf93a0": [ + "forceReleaseAdmin(bytes32)" + ], + "0x5b372532": [ + "press()" + ], + "0x9f095e88": [ + "asdf()" + ], + "0xb0459d49": [ + "LoanStandard(address,address,uint256,uint256,uint256,uint256,uint256)" + ], + "0xa2fb342d": [ + "lend(address,uint256)" + ], + "0xd334d75b": [ + "expireLoan()" + ], + "0xb7019744": [ + "payBack(address,uint256)" + ], + "0x60aeac18": [ + "neverPayBack()" + ], + "0xaad3ec96": [ + "claim(address,uint256)" + ], + "0x4c123019": [ + "tokenFallback(address,address,uint256,bytes)" + ], + "0xcb7acdd9": [ + "hola()" + ], + "0xacb6e9b1": [ + "testControlItemStoreNotRegistered()" + ], + "0xac767539": [ + "testFailItemStoreNotRegistered()" + ], + "0x1649cdcd": [ + "testGetItemStore()" + ], + "0xe41cc093": [ + "getItemStore(bytes12)" + ], + "0x79ba5097": [ + "acceptOwnership()" + ], + "0x58e9b208": [ + "Controlled()" + ], + "0x30311898": [ + "Account(address)" + ], + "0xce3f865f": [ + "collect(uint256)" + ], + "0x55ee6afb": [ + "Wallet(address,address)" + ], + "0x2268a358": [ + "changeMultisig(address)" + ], + "0xea2c23da": [ + "createAccounts(uint256)" + ], + "0xa5e8c5d6": [ + "setVoteRight(address,uint256)" + ], + "0x9cc0c5e3": [ + "experty_io()" + ], + "0x5022e940": [ + "experty()" + ], + "0xb7090bb5": [ + "www_experty_io()" + ], + "0x0edfb0f7": [ + "withdrawCollectedInterest()" + ], + "0x21856b36": [ + "interestOwed()" + ], + "0x402d8883": [ + "repay()" + ], + "0x4665096d": [ + "expiration()" + ], + "0x58f33e98": [ + "isTaker(address)" + ], + "0x5eda5b9a": [ + "interestCollected()" + ], + "0x6cbdb7d0": [ + "takers(uint256)" + ], + "0x7c3a00fd": [ + "interestRate()" + ], + "0xaa8116be": [ + "fundedPrincipal()" + ], + "0xbc99c8be": [ + "takerAddressAt(uint256)" + ], + "0xc41f4cc0": [ + "takerStatus(address)" + ], + "0xc537a210": [ + "principalOutstanding()" + ], + "0xc5ebeaec": [ + "borrow(uint256)" + ], + "0xcb6da9da": [ + "takerCount()" + ], + "0xfb775b46": [ + "giver()" + ], + "0xe1a27ad3": [ + "needsAdministration()" + ], + "0xb6253539": [ + "needsInitialization()" + ], + "0xb6f98e53": [ + "needsAllowancePayment()" + ], + "0xb5931f7c": [ + "safeDiv(uint256,uint256)" + ], + "0x3a4faf7f": [ + "max64(uint64,uint64)" + ], + "0x36b1315c": [ + "min64(uint64,uint64)" + ], + "0x0c255c94": [ + "max256(uint256,uint256)" + ], + "0xb1e9292f": [ + "min256(uint256,uint256)" + ], + "0x1d3b9edf": [ + "times(uint256,uint256)" + ], + "0xf4f3bdc1": [ + "minus(uint256,uint256)" + ], + "0x66098d4f": [ + "plus(uint256,uint256)" + ], + "0x8afc3605": [ + "Ownable()" + ], + "0x04bbc255": [ + "isPricingStrategy()" + ], + "0x8e768288": [ + "isSane(address)" + ], + "0x18a4155e": [ + "calculatePrice(uint256,uint256,uint256,address,uint256)" + ], + "0x614cb904": [ + "isFinalizeAgent()" + ], + "0x82771c8e": [ + "isSane()" + ], + "0x0bf318a3": [ + "finalizeCrowdsale()" + ], + "0x96f47800": [ + "investInternal(address,uint128)" + ], + "0x32013ac3": [ + "preallocate(address,uint256,uint256)" + ], + "0x1a49803b": [ + "investWithSignedAddress(address,uint128,uint8,bytes32,bytes32)" + ], + "0xef869443": [ + "investWithCustomerId(address,uint128)" + ], + "0x03f9c793": [ + "invest(address)" + ], + "0xf4869726": [ + "buyWithSignedAddress(uint128,uint8,bytes32,bytes32)" + ], + "0x99e9376c": [ + "buyWithCustomerId(uint128)" + ], + "0x7f7d711e": [ + "setRequireCustomerId(bool)" + ], + "0xed68ff2c": [ + "setRequireSignedAddress(bool,address)" + ], + "0xeac24932": [ + "setEarlyParicipantWhitelist(address,bool)" + ], + "0x6e50eb3f": [ + "setEndsAt(uint256)" + ], + "0xf3283fba": [ + "setMultisig(address)" + ], + "0x87612102": [ + "loadRefund()" + ], + "0x7c2e08a3": [ + "isMinimumGoalReached()" + ], + "0xa7ba44c3": [ + "isFinalizerSane()" + ], + "0x062b01ce": [ + "isPricingSane()" + ], + "0x1865c57d": [ + "getState()" + ], + "0x8d51faec": [ + "setOwnerTestValue(uint256)" + ], + "0x4551dd59": [ + "isCrowdsale()" + ], + "0x9d3c663f": [ + "isBreakingCap(uint256,uint256,uint256,uint256)" + ], + "0xd5d09021": [ + "isCrowdsaleFull()" + ], + "0x4d7edc15": [ + "assignTokens(address,uint256)" + ], + "0xeefa597b": [ + "isToken()" + ], + "0x09ae9452": [ + "PreICOProxyBuyer(address,uint256,uint256,uint256,uint256)" + ], + "0x21df0da7": [ + "getToken()" + ], + "0xbaeb91ae": [ + "invest(uint128)" + ], + "0x1fb00cdc": [ + "investWithId(uint128)" + ], + "0xdbb833df": [ + "investWithoutId()" + ], + "0xd4607048": [ + "buyForEverybody()" + ], + "0xdde070e8": [ + "getClaimAmount(address)" + ], + "0x3c67b6b7": [ + "getClaimLeft(address)" + ], + "0xd1058e59": [ + "claimAll()" + ], + "0x4042b66f": [ + "weiRaised()" + ], + "0xf6368f8a": [ + "transfer(address,uint256,bytes,string)" + ], + "0x3ef13367": [ + "flushTokens(address)" + ], + "0x083c6323": [ + "endBlock()" + ], + "0x7055060f": [ + "bulkStoreHeader(bytes)" + ], + "0x3115b4c4": [ + "bulkStoreHeader(bytes,uint256)" + ], + "0x01725a0b": [ + "demo()" + ], + "0xdce5c757": [ + "cool()" + ], + "0x939a79ac": [ + "demo(string)" + ], + "0x071bd079": [ + "demo(uint256)" + ], + "0x43b1c529": [ + "getSig(string,bytes4)" + ], + "0x1d03842f": [ + "onePlus(uint256)" + ], + "0x42966c68": [ + "burn(uint256)" + ], + "0x457f4d41": [ + "hammer()" + ], + "0x58292a3d": [ + "emission(uint256)" + ], + "0xd31fdffd": [ + "setHammer(address)" + ], + "0xb8c48f8c": [ + "setInitialParent(int256,int256,int256)" + ], + "0x08f75d17": [ + "move_reveal(bytes32,uint8)" + ], + "0x2e9c91a8": [ + "getStartParams(bytes32)" + ], + "0x497777d5": [ + "collect(bytes32)" + ], + "0x5598c576": [ + "reveal_move(bytes32,uint8,bytes32,bytes32)" + ], + "0x5cf34bcf": [ + "getMinFee()" + ], + "0x6a7bf76a": [ + "create_game(bytes32,uint32,uint32,uint8,uint16,uint8,address,uint256,bool)" + ], + "0x73931bbf": [ + "getGame(bytes32)" + ], + "0x87287fd7": [ + "setMinFee(uint8)" + ], + "0x89d61d77": [ + "setOrganizer(address)" + ], + "0xa361b184": [ + "move(bytes32,bytes32)" + ], + "0xe4083daf": [ + "create_game_invite(bytes32,address,uint32,uint32,uint8,uint16,uint8,address,uint256)" + ], + "0xf223446c": [ + "start_game(bytes32,uint8,uint32,uint16,address,uint256,uint8)" + ], + "0x3a4de190": [ + "repost(bytes32)" + ], + "0x4b91ab35": [ + "unfollow(bytes32)" + ], + "0x66e34dc6": [ + "registerUsername(bytes32)" + ], + "0x699f200f": [ + "addresses(bytes32)" + ], + "0x7e93163b": [ + "tip(bytes32,bytes32)" + ], + "0x8ee93cf3": [ + "post(string)" + ], + "0x9d7eb375": [ + "updateUserDetails(string)" + ], + "0xa66b7748": [ + "follow(bytes32)" + ], + "0xa83b1e21": [ + "reply(string,bytes32)" + ], + "0xd38d0f28": [ + "updateSplit(uint256)" + ], + "0xee91877c": [ + "usernames(address)" + ], + "0xf59823cf": [ + "Congress(uint256,uint256,int256)" + ], + "0xb3bb9b58": [ + "LiquidDemocracy(address,string,uint256)" + ], + "0x6dd7d8ea": [ + "vote(address)" + ], + "0xc0d061f4": [ + "execute(address,uint256,bytes32)" + ], + "0xf2ba18ed": [ + "calculateVotes()" + ], + "0xb154224e": [ + "TimeLockMultisig(address,address[],uint256)" + ], + "0x15bef9cd": [ + "changeMembers(address[],bool)" + ], + "0xc01f9e37": [ + "proposalDeadline(uint256)" + ], + "0x159887d1": [ + "calculateFactor(uint256,uint256)" + ], + "0x7207c19f": [ + "MyToken(uint256)" + ], + "0x73e9f3e6": [ + "Crowdsale(address,uint256,uint256,uint256,address,address)" + ], + "0xfd6b7ef8": [ + "safeWithdrawal()" + ], + "0x9dbf0087": [ + "TokenERC20(uint256,string,string)" + ], + "0x79cc6790": [ + "burnFrom(address,uint256)" + ], + "0x7e4f6b95": [ + "MyAdvancedToken(uint256,string,string)" + ], + "0xbc0c868c": [ + "stocksOf(uint256)" + ], + "0x8262fc7d": [ + "addrBalance(address)" + ], + "0x6dfe869b": [ + "Preallocation(address,uint256)" + ], + "0xa357880d": [ + "whitelistedAddrs(address)" + ], + "0x54da5393": [ + "Utils()" + ], + "0xe4edf852": [ + "transferManagement(address)" + ], + "0xc8c2fe6c": [ + "acceptManagement()" + ], + "0x67cc4882": [ + "TokenHolder()" + ], + "0x21e6b53d": [ + "transferTokenOwnership(address)" + ], + "0x38a5e016": [ + "acceptTokenOwnership()" + ], + "0x85d5e631": [ + "disableTokenTransfers(bool)" + ], + "0x205c2878": [ + "withdrawTo(address,uint256)" + ], + "0x1608f18f": [ + "disableTransfers(bool)" + ], + "0x29a00e7c": [ + "calculatePurchaseReturn(uint256,uint256,uint32,uint256)" + ], + "0x49f9b0f7": [ + "calculateSaleReturn(uint256,uint256,uint32,uint256)" + ], + "0x59f8714b": [ + "changeableTokenCount()" + ], + "0x503adbf6": [ + "changeableToken(uint16)" + ], + "0x9b99a8e2": [ + "reserveTokenCount()" + ], + "0x4e2280c4": [ + "clearQuickBuyPath()" + ], + "0x9396a7f0": [ + "getQuickBuyPathLength()" + ], + "0xabeb5f9f": [ + "hasQuickBuyEtherToken()" + ], + "0xb3a9afb7": [ + "getQuickBuyEtherToken()" + ], + "0x0b3f191a": [ + "disableChanging(bool)" + ], + "0x88c0b8a7": [ + "setChangeFee(uint32)" + ], + "0x48d6ca55": [ + "getChangeFeeAmount(uint256)" + ], + "0x7758c4f8": [ + "quickBuy(uint256)" + ], + "0x74214c92": [ + "StandardERC223Token(uint256)" + ], + "0x16279055": [ + "isContract(address)" + ], + "0x03ba3a88": [ + "notifyContract(address,address,uint256,bytes)" + ], + "0x27e235e3": [ + "balances(address)" + ], + "0x3f4ba83a": [ + "unpause()" + ], + "0x5c658165": [ + "allowed(address,address)" + ], + "0x5c975abb": [ + "paused()" + ], + "0x8456cb59": [ + "pause()" + ], + "0xa0821be3": [ + "availableBalance(address)" + ], + "0xe9ed8667": [ + "balanceLocks(address)" + ], + "0xf339c504": [ + "lockBalance(uint256)" + ], + "0x1d4d691d": [ + "fill(address,uint256,address,address,uint256,address,uint256,uint256,uint8,bytes32,bytes32)" + ], + "0x20158c44": [ + "fills(bytes32)" + ], + "0x66a26419": [ + "cancel(address,uint256,address,address,uint256,address,uint256,uint256,uint8,bytes32,bytes32)" + ], + "0x673a5ae3": [ + "Sale(address,address,uint256,string,uint8,string,uint256,uint256,uint256,uint256,uint256,uint256)" + ], + "0x94b5255b": [ + "distributePreBuyersRewards(address[],uint256[])" + ], + "0x555c4758": [ + "distributeTimelockedTokens(address[],uint256[],uint256[],uint256[])" + ], + "0x8b9b1cbd": [ + "withdrawRemainder()" + ], + "0xa2b40d19": [ + "changePrice(uint256)" + ], + "0x98b9a2dc": [ + "changeWallet(address)" + ], + "0x5437f098": [ + "changeStartBlock(uint256)" + ], + "0x82222674": [ + "changeEndBlock(uint256)" + ], + "0x00a53598": [ + "emergencyToggle()" + ], + "0xe382b854": [ + "_setPackedTimestamp(bytes20,uint256)" + ], + "0x31861423": [ + "_deleteAllPackedRevisionTimestamps(bytes20)" + ], + "0x4ae6ab70": [ + "_getRevisionTimestamp(bytes20,uint256)" + ], + "0x4e57d27d": [ + "_getAllRevisionTimestamps(bytes20)" + ], + "0xc5cd3bec": [ + "getRevisionTimestamp(bytes20,uint256)" + ], + "0x261c42dd": [ + "getAllRevisionTimestamps(bytes20)" + ], + "0x50035eb8": [ + "getInUse(bytes20)" + ], + "0xf25e7bb4": [ + "getState(bytes20)" + ], + "0x634bc7db": [ + "create(bytes32,bytes32)" + ], + "0xb0673d57": [ + "getItemStore(bytes32)" + ], + "0x455ea98c": [ + "getInUse(bytes32)" + ], + "0xa6c09381": [ + "_setPackedTimestamp(bytes32,uint256)" + ], + "0x001a4f5e": [ + "createNewRevision(bytes32,bytes32)" + ], + "0x032b0824": [ + "updateLatestRevision(bytes32,bytes32)" + ], + "0x1b5710ed": [ + "_deleteAllPackedRevisionTimestamps(bytes32)" + ], + "0x165ffd10": [ + "restart(bytes32,bytes32)" + ], + "0x2ab7d104": [ + "_getAllRevisionIpfsHashes(bytes32)" + ], + "0xf50f1ba9": [ + "_getRevisionTimestamp(bytes32,uint256)" + ], + "0xcd22f418": [ + "_getAllRevisionTimestamps(bytes32)" + ], + "0x09648a9d": [ + "getState(bytes32)" + ], + "0x72cef34b": [ + "getRevisionIpfsHash(bytes32,uint256)" + ], + "0x7c699401": [ + "getAllRevisionIpfsHashes(bytes32)" + ], + "0x05664cea": [ + "getRevisionTimestamp(bytes32,uint256)" + ], + "0x8cb3728c": [ + "getAllRevisionTimestamps(bytes32)" + ], + "0x93c8b0d4": [ + "addForeignChild(bytes32,bytes32)" + ], + "0x4048c449": [ + "getParent(bytes32)" + ], + "0x31230e23": [ + "createWithParent(bytes32,bytes32,bytes32)" + ], + "0x2eaad0b0": [ + "_getAllChildren(bytes32)" + ], + "0xa09e3d0a": [ + "getChildCount(bytes32)" + ], + "0x958d1725": [ + "getChild(bytes32,uint256)" + ], + "0xfbdf0378": [ + "getAllChildren(bytes32)" + ], + "0x9643aef4": [ + "testControlCreateWithParentSameNonce()" + ], + "0x8dc1c44d": [ + "testFailCreateWithParentSameNonce()" + ], + "0x2aaf1685": [ + "testControlCreateWithParentSameItemId()" + ], + "0xa121d8df": [ + "testFailCreateWithParentSameItemId()" + ], + "0x64d0d64c": [ + "testControlCreateWithParentNotInUse()" + ], + "0x75f208bf": [ + "testFailCreateWithParentNotInUse()" + ], + "0x473ae9fe": [ + "testCreateWithParent()" + ], + "0x59e1667d": [ + "testControlCreateWithForeignParentNotInUse()" + ], + "0xca615662": [ + "testFailCreateWithForeignParentNotInUse()" + ], + "0x121f2081": [ + "testCreateWithForeignParent()" + ], + "0xfc13a76a": [ + "testFailAddForeignChildNotInUse()" + ], + "0x4e6c61aa": [ + "testFailAddForeignChildNotChild()" + ], + "0x590ba734": [ + "getUint(int256)" + ], + "0x732e632e": [ + "assemblyTest()" + ], + "0x215de48a": [ + "getParentCount(bytes32)" + ], + "0x33ac7256": [ + "getParent(bytes32,uint256)" + ], + "0x32c4903d": [ + "getAllParents(bytes32)" + ], + "0x6844ab43": [ + "testControlCreateSameItemId()" + ], + "0x343f40a0": [ + "testFailCreateSameItemId()" + ], + "0x9d9c9a0d": [ + "testControlCreateWithParentParentSameItemId()" + ], + "0x3ce54ac3": [ + "testFailCreateWithParentParentSameItemId()" + ], + "0xbca9e546": [ + "testControlCreateWithParentParentNotInUse()" + ], + "0xbab9fc63": [ + "testFailCreateWithParentParentNotInUse()" + ], + "0x30840c31": [ + "testControlCreateWithParentForeignNotInUse()" + ], + "0x3d6b0cb7": [ + "testFailCreateWithParentForeignNotInUse()" + ], + "0x0de04691": [ + "testCreateWithParentForeign()" + ], + "0x3d608572": [ + "testControlCreateWithParentsSameItemId()" + ], + "0xba907b7e": [ + "testFailCreateWithParentsSameItemId()" + ], + "0x015689c6": [ + "testControlCreateWithParentsParentSameItemId()" + ], + "0x28e47076": [ + "testFailCreateWithParentsParentSameItemId0()" + ], + "0x8a7ef3df": [ + "testFailCreateWithParentsParentSameItemId1()" + ], + "0x041dd3f6": [ + "testControlCreateWithParentsParentNotInUse()" + ], + "0x46d47cdf": [ + "testFailCreateWithParentsParentNotInUse0()" + ], + "0x89a45223": [ + "testFailCreateWithParentsParentNotInUse1()" + ], + "0x44019db3": [ + "testCreateWithParents()" + ], + "0xbf0d44d5": [ + "testControlCreateWithParentsForeignNotInUse()" + ], + "0x0ee8e338": [ + "testFailCreateWithParentsForeignNotInUse0()" + ], + "0xdddb983b": [ + "testFailCreateWithParentsForeignNotInUse1()" + ], + "0xf94497fe": [ + "testCreateWithParentsForeign0()" + ], + "0xf6951038": [ + "testCreateWithParentsForeign1()" + ], + "0x26d3e889": [ + "testCreateWithParentsForeign2()" + ], + "0x98f69aeb": [ + "_addChildToParent(bytes32,bytes32)" + ], + "0x7fdd458d": [ + "createWithParents(bytes32,bytes32,bytes32[])" + ], + "0xa300eadf": [ + "_getAllParents(bytes32)" + ], + "0xa172045d": [ + "PUSH1()" + ], + "0x22a7118d": [ + "buyTokensFor(uint256,address,uint256,bool)" + ], + "0x9e1a00aa": [ + "sendTo(address,uint256)" + ], + "0x00b172d7": [ + "buyTokensForProposal(uint256,address)" + ], + "0x4913732e": [ + "buyTokenFromModerator(uint256,address,uint256,bool)" + ], + "0xdb6a3652": [ + "addOrder(address,uint256)" + ], + "0x9645337a": [ + "removeOrder(uint256)" + ], + "0x709ef231": [ + "sellTokens(uint256,uint256,uint256)" + ], + "0x868eb6bf": [ + "removeOrders(uint256,uint256)" + ], + "0x02d05d3f": [ + "creator()" + ], + "0x1f21f9af": [ + "marketMaker()" + ], + "0x28c05d32": [ + "shortSell(uint8,uint256,uint256)" + ], + "0x46280a80": [ + "sell(uint8,uint256,uint256)" + ], + "0x476343ee": [ + "withdrawFees()" + ], + "0x59acb42c": [ + "createdAtBlock()" + ], + "0xa157979c": [ + "netOutcomeTokensSold(uint256)" + ], + "0xb0011509": [ + "calcMarketFee(uint256)" + ], + "0xcb4c86b7": [ + "funding()" + ], + "0xe274fd24": [ + "eventContract()" + ], + "0xf6d956df": [ + "buy(uint8,uint256,uint256)" + ], + "0xfbde47f6": [ + "FEE_RANGE()" + ], + "0x27793f87": [ + "outcome()" + ], + "0x717a195a": [ + "setOutcome(int256)" + ], + "0x7e7e4b47": [ + "getOutcome()" + ], + "0xc623674f": [ + "ipfsHash()" + ], + "0xc65fb380": [ + "isSet()" + ], + "0xccdf68f3": [ + "isOutcomeSet()" + ], + "0x4e2f220c": [ + "createCentralizedOracle(bytes)" + ], + "0x5ea194a3": [ + "createScalarEvent(address,address,int256,int256)" + ], + "0x8d1d2c21": [ + "categoricalEvents(bytes32)" + ], + "0x9897e8a5": [ + "scalarEvents(bytes32)" + ], + "0x9df0c176": [ + "createCategoricalEvent(address,address,uint8)" + ], + "0xeac449d9": [ + "revoke(address,uint256)" + ], + "0x7abeb6a0": [ + "createMarket(address,address,uint24)" + ], + "0x42958b54": [ + "issue(address[],uint256)" + ], + "0x061a85c7": [ + "forwardedOracle()" + ], + "0x0853f7eb": [ + "frontRunnerPeriod()" + ], + "0x0f3e9438": [ + "frontRunner()" + ], + "0x1a39d8ef": [ + "totalAmount()" + ], + "0x1a4f5b67": [ + "isFrontRunnerPeriodOver()" + ], + "0x1ff14311": [ + "totalOutcomeAmounts(int256)" + ], + "0x466ae314": [ + "forwardedOutcomeSetTimestamp()" + ], + "0x72b8de14": [ + "isChallengePeriodOver()" + ], + "0x739b8c48": [ + "setForwardedOutcome()" + ], + "0x8ef8125e": [ + "frontRunnerSetTimestamp()" + ], + "0x984a470a": [ + "forwardedOutcome()" + ], + "0x9d89e7d4": [ + "challengeAmount()" + ], + "0x9df4d0fe": [ + "isChallenged()" + ], + "0x9f0de490": [ + "challengeOutcome(int256)" + ], + "0xb2016bd4": [ + "collateralToken()" + ], + "0xc427af9b": [ + "outcomeAmounts(address,int256)" + ], + "0xd84d2a47": [ + "spreadMultiplier()" + ], + "0xf3f480d9": [ + "challengePeriod()" + ], + "0xf7553098": [ + "voteForOutcome(int256,uint256)" + ], + "0xce70faec": [ + "createUltimateOracle(address,address,uint8,uint256,uint256,uint256)" + ], + "0x91e8609f": [ + "getParentId(bytes32,uint256)" + ], + "0xb4a39dfd": [ + "getChildId(bytes32,uint256)" + ], + "0x5de4381b": [ + "_addItemToParent(bytes32,bytes32)" + ], + "0x059417da": [ + "_getAllParentIds(bytes32)" + ], + "0xeca85419": [ + "_getAllChildIds(bytes32)" + ], + "0xaa0372e7": [ + "getItem(bytes32)" + ], + "0xdcf946c2": [ + "getAllParentIds(bytes32)" + ], + "0x1733043f": [ + "getAllChildIds(bytes32)" + ], + "0x025e7c27": [ + "owners(uint256)" + ], + "0x0cbe1eb8": [ + "USDDOWNLOADPRICE()" + ], + "0x11851b5e": [ + "BOARD_3()" + ], + "0x1e9be6a1": [ + "usdEthPrice()" + ], + "0x3c540687": [ + "txCount()" + ], + "0x436da5fe": [ + "transferLog(uint256)" + ], + "0x44fddeb7": [ + "BLOCKAPPS()" + ], + "0x52aaead8": [ + "priceLastUpdated()" + ], + "0x6695b592": [ + "stemPriceInWei()" + ], + "0x7dc0d1d0": [ + "oracle()" + ], + "0x7fa28d75": [ + "transferRightIfApproved(address,bytes32)" + ], + "0x83db0680": [ + "TOTALSHARES()" + ], + "0x977eda79": [ + "txLog(uint256)" + ], + "0xb9488546": [ + "ownersCount()" + ], + "0xcc445611": [ + "purchase(bytes32)" + ], + "0xda60d7e8": [ + "BOARD_2()" + ], + "0xe347a773": [ + "shares(bytes32,bytes32)" + ], + "0xe3d33fc9": [ + "transferCount()" + ], + "0xe80d47dd": [ + "USDSTEMPRICE()" + ], + "0xf267035f": [ + "BOARD_1()" + ], + "0xf7701b47": [ + "downloadPriceInWei()" + ], + "0xf851a440": [ + "admin()" + ], + "0x8a252194": [ + "betGanjilGenap(bool)" + ], + "0xa89171e3": [ + "checkHasilBet(address)" + ], + "0xdd365b8b": [ + "pwn()" + ], + "0x0537665d": [ + "setOutcome()" + ], + "0x28da850b": [ + "buyAllOutcomes(uint256)" + ], + "0x69c19d4c": [ + "getOutcomeTokenDistribution(address)" + ], + "0x6fb1edcd": [ + "sellAllOutcomes(uint256)" + ], + "0x7dc8f086": [ + "getOutcomeCount()" + ], + "0x8abe59ea": [ + "outcomeTokens(uint256)" + ], + "0xad0b2bec": [ + "redeemWinnings()" + ], + "0xe96e5950": [ + "getEventHash()" + ], + "0xf21a1468": [ + "getOutcomeTokens()" + ], + "0x561cce0a": [ + "LONG()" + ], + "0x6e5452fe": [ + "OUTCOME_RANGE()" + ], + "0xa384d6ff": [ + "lowerBound()" + ], + "0xa871da91": [ + "SHORT()" + ], + "0xb09ad8a0": [ + "upperBound()" + ], + "0x0a6fbb05": [ + "SetPass(bytes32)" + ], + "0x31fd725a": [ + "PassHasBeenSet(bytes32)" + ], + "0x6cd5c39b": [ + "deployContract()" + ], + "0xe79487da": [ + "checkInvariant()" ] -}; +}; \ No newline at end of file diff --git a/interface/client/lib/thirdParty.js b/interface/client/lib/thirdParty.js old mode 100644 new mode 100755 diff --git a/interface/client/mistAPIBackend.js b/interface/client/mistAPIBackend.js old mode 100644 new mode 100755 index 7a0f057e7..3fa29b03c --- a/interface/client/mistAPIBackend.js +++ b/interface/client/mistAPIBackend.js @@ -67,10 +67,9 @@ mistAPIBackend = function (event) { appBar: (_.contains(allowedBrowserBarStyles, appBarClass) ? appBarClass : null) }}); } - if (event.channel === 'mistAPI_sound') { sound.pause(); - sound.src = Blaze._escape(arg); + sound.src = Blaze._escape('file://'+ dirname +'/sounds/' + arg + '.mp3'); sound.play(); } diff --git a/interface/client/styles/animations.import.less b/interface/client/styles/animations.import.less old mode 100644 new mode 100755 index 83e8766b9..c60b81f4a --- a/interface/client/styles/animations.import.less +++ b/interface/client/styles/animations.import.less @@ -20,22 +20,12 @@ aside.sidebar { // ANIMATION transition: max-width @animationSpeed; } - - } - } - - &.full-tabs { - nav > ul > li:not(.selected) { - transform: translate3d(-100%,0,0); - } - nav > ul > li.selected button.slide-out { - transition: none; } } } -// Browser bar +// Browser bar .browser-bar { .url-input { transition: opacity 0.1s; @@ -52,7 +42,7 @@ aside.sidebar { transition-timing-function: ease-out; transition-timing-function: cubic-bezier(0.000, 1.125, 0.335, 1.650); height: @gridHeight*1.5; - + &>* { position: absolute; left: @gridWidth*2; @@ -61,11 +51,11 @@ aside.sidebar { } .password-repeat { - transform: rotateX( 180deg ); + transform: rotateX( 180deg ); } - + &.repeat-field { - transform: rotateX( 180deg ); + transform: rotateX( 180deg ); } } -} \ No newline at end of file +} diff --git a/interface/client/styles/browserbar.import.less b/interface/client/styles/browserbar.import.less old mode 100644 new mode 100755 index 4eef85d96..4b35d1a28 --- a/interface/client/styles/browserbar.import.less +++ b/interface/client/styles/browserbar.import.less @@ -4,10 +4,10 @@ top: @gridHeight * 1.5; left: @widthSideBar; right: 0; - z-index: 100; + z-index: 3; height: @gridHeight * 2; font-family: @sourceSansPro; - + button.icon { padding: @gridHeight/4 @gridWidth/4; @@ -15,7 +15,7 @@ border: 0; color: @colorLinkFocus; } - } + } .app-bar { position: relative; @@ -26,7 +26,7 @@ background: #fff;//#F6F6F6; // border-radius: 3px; // box-shadow: 0 2px 0 rgba(0, 0, 0, 0.25); - height: @gridHeight*1.7; + height: @gridHeight*1.7; overflow: hidden; // ANIMATION @@ -45,7 +45,7 @@ line-height: 21px; white-space: nowrap; margin-top: -1px; - + &.has-icon { padding-left: @gridWidth * 0.84; } @@ -73,7 +73,7 @@ float: left; margin-right: 8px; text-transform: uppercase; - } + } .connect-button, .dapp-info span { line-height: 21px; display: inline-block; @@ -144,17 +144,17 @@ span { color: @colorLinkBlur; - } + } } &:hover > .url-input { opacity: 1; - transition: opacity 0.2s ease-in-out 0.1s; + transition: opacity 0.2s ease-in-out 0.1s; } &:hover > .url-breadcrumb { opacity: 0; - word-spacing: -3px; + word-spacing: -3px; transition: opacity 0.2s ease-in-out 0.1s, word-spacing 0.2s ease-in-out; } } @@ -216,7 +216,7 @@ button.cancel { font-weight: 300; - } + } } } } @@ -235,7 +235,7 @@ margin-left: @gridWidth /2; margin-right: @gridWidth /2; } - + } } .linux .browser-bar { @@ -252,7 +252,7 @@ } .url-breadcrumb { visibility: hidden; - word-spacing: -3px; + word-spacing: -3px; transition: word-spacing 0.5s ease-in-out; } .reload { @@ -262,12 +262,12 @@ .color-pulse { animation-name: color-pulse; - animation-duration: 0.5s; + animation-duration: 0.5s; animation-iteration-count: infinite; - animation-timing-function: linear; - background: linear-gradient(to left, + animation-timing-function: linear; + background: linear-gradient(to left, darken(@colorLinkActive, 30%) 0, - saturate(@colorLinkActive, 100%), + saturate(@colorLinkActive, 100%), darken(@colorLinkActive, 30%)) !important; background-size: 200px !important; background-repeat: repeat-x; @@ -278,72 +278,72 @@ @keyframes color-pulse { 0% { transform: scale(0.992) translateZ(0); - opacity: 0.7; + opacity: 0.7; background-position-x:0px; } 50% { transform: scale(1) translateZ(0); - opacity: 1; - } + opacity: 1; + } 100% { transform: scale(0.992) translateZ(0); - opacity: 0.7; + opacity: 0.7; background-position-x:-200px; - } + } } @colorBlockchain: #c3d825; .color-ping { animation-name: color-ping; - animation-duration: 12s; + animation-duration: 12s; animation-iteration-count: infinite; - animation-timing-function: ease-out; - background-image: linear-gradient(to top, - saturate(@colorLinkActive, 100%), + animation-timing-function: ease-out; + background-image: linear-gradient(to top, + saturate(@colorLinkActive, 100%), @colorGrayDark) !important; background-size: 150px 150px; background-position-y:0; - + -webkit-background-clip: text !important; -webkit-text-fill-color: transparent; } @keyframes color-ping { - 0% { - transform: scale(1) translateZ(0); + 0% { + transform: scale(1) translateZ(0); background-position-y:0; } - 5% { - transform: scale(0.95) translateZ(0); + 5% { + transform: scale(0.95) translateZ(0); background-position-y:30px; } 100% { background-color: @colorGrayDark; - transform: scale(1) translateZ(0); + transform: scale(1) translateZ(0); background-position-y:150px; - } + } } .rotating { animation-name: rotating; - animation-duration: 0.5s; + animation-duration: 0.5s; animation-iteration-count: infinite; - animation-timing-function: linear; + animation-timing-function: linear; } @keyframes rotating { 0% { transform: rotate(0deg) translate3d(0, 0, 0); - } + } 100% { transform: rotate(-180deg) translate3d(0, 1px, 0); - } + } } @media screen and (max-width: 960px ) { @@ -351,12 +351,12 @@ width: 0; text-overflow: clip; padding-left: @gridWidth * 0.75; - } + } } @media screen and (max-width: 800px ) { .browser-bar div.dapp-info { width: 0; text-overflow: clip; - } + } } diff --git a/interface/client/styles/constants.import.less b/interface/client/styles/constants.import.less old mode 100644 new mode 100755 index 663f84bdc..a20b979a7 --- a/interface/client/styles/constants.import.less +++ b/interface/client/styles/constants.import.less @@ -1,4 +1,4 @@ -@widthSideBar: @gridWidth * 6.5; +@widthSideBar: 78px; @colorLinkActive: #4A90E2; @colorLinkBlur: #494949; diff --git a/interface/client/styles/elements.import.less b/interface/client/styles/elements.import.less old mode 100644 new mode 100755 index b13114551..f30f22bd9 --- a/interface/client/styles/elements.import.less +++ b/interface/client/styles/elements.import.less @@ -33,19 +33,10 @@ ul.no-bullets { } } - -.node-info { - position: absolute; - right: @defaultMargin; - font-size: 0.9em; - color: @colorTextSecondary; -} - - .danger { display: inline-block; padding: 1px 2px; border-radius: 3px; color: @colorWhite; background-color: @colorError; -} \ No newline at end of file +} diff --git a/interface/client/styles/layout.import.less b/interface/client/styles/layout.import.less old mode 100644 new mode 100755 index 14c49b1ef..d18215bdf --- a/interface/client/styles/layout.import.less +++ b/interface/client/styles/layout.import.less @@ -32,6 +32,7 @@ .darwin { aside { top: @gridHeight * 2; + height: calc(100% - @gridHeight * 2); } div.browser-bar { @@ -75,31 +76,6 @@ button h1, button h2, button h3, button p { cursor: pointer; } -aside { - z-index: 4; - position: absolute; - top: @gridHeight * 2; - left: 0; - bottom: 0; - // padding-top: @gridHeight/2; - width: @widthSideBar; - - - &:before { - content: " "; - display: block; - position: absolute; - z-index: 2; - top: 0; - left: @widthSideBar; - width: 10px; - bottom: 0; - // box-shadow: @shadowStandard; - } -} -.linux aside { - top: 0; -} main { @@ -141,26 +117,19 @@ html { left: 0; right: 0; bottom: 0; - box-shadow: @shadowStandard; + border-left: 1px solid #E2E2E2; background: #FFF; overflow: hidden; opacity: 1; - z-index:10; - border-top-left-radius: 3px; + z-index: 10; &.hidden { - visibility: hidden; - z-index: 1; - webview { - height: 0; - } + z-index: 0; } &.app-bar-transparent webview { top: 0; margin-top: 0; - // Temporary fix. See https://github.com/electron/electron/issues/5110 - flex: 0 1; } } @@ -177,3 +146,53 @@ webview { .linux webview { top: 0; } + + +// Scrollbars +// Reference: https://gist.github.com/devinrhode2/2573411 +aside.sidebar { + ::-webkit-scrollbar { + width: 7px; + background-color: rgba(0,0,0,0); + -webkit-border-radius: 100px; + } + ::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.09); + } + + ::-webkit-scrollbar-thumb:vertical { + background: rgba(0,0,0,0.5); + -webkit-border-radius: 100px; + } + ::-webkit-scrollbar-thumb:vertical:active { + background: rgba(0,0,0,0.61); + -webkit-border-radius: 100px; + background-clip: padding-box; + border: 2px solid rgba(0, 0, 0, 0); + } + + ::-webkit-scrollbar { + width: 10px; + } + + ::-webkit-scrollbar-thumb:vertical { + background-clip: padding-box; + border: 2px solid rgba(0, 0, 0, 0); + min-height: 30px; + } + + .submenu-container { + ::-webkit-scrollbar-thumb:vertical { + background: rgba(255,255,255,0.5); + border: 2px solid rgba(0, 0, 0, 0); + background-clip: padding-box; + } + ::-webkit-scrollbar-thumb:vertical:active { + background: rgba(255,255,255,0.61); + border: 2px solid rgba(0, 0, 0, 0); + background-clip: padding-box; + } + + } + +} diff --git a/interface/client/styles/menu.import.less b/interface/client/styles/menu.import.less old mode 100644 new mode 100755 index 5f2abf841..387749c2a --- a/interface/client/styles/menu.import.less +++ b/interface/client/styles/menu.import.less @@ -1,342 +1,316 @@ +.gradient-tip { + content: ''; + display: block; + width: 100%; + height: @gridHeight * 0.75; + left: 0px; + position: absolute; + pointer-events: none; +} -aside.sidebar { - overflow: hidden; - - ul { - z-index: 10; - position: relative; - .dapp-vertical-menu; - top: 0; - padding-left: @gridWidth/4; - - li { - position: relative; - display: block; - padding-left: @gridWidth/4; - margin-top: 0; - overflow: hidden; - height: @gridHeight * 2; - - &.ui-sortable-helper { - height: @gridHeight*2 !important; - opacity: 0.5; - } - &.ui-sortable-placeholder { - visibility: visible !important; - height: 0 !important; //@gridHeight*3 - border-bottom: 2px solid @colorLinkActive; - margin: 5px 0; - } - - &.selected, - &.slided-out { - height: 100%; - - - ul.sub-menu li { - height: floor(@gridHeight * 2); - opacity: 1; - } - } - - &.selected { - color: @colorLinkActive; - background: #FFF; - border-radius: 3px 0 0 3px; - box-shadow: @shadowStandard; - border-top: 0; +.sidePadding { + padding-left: 11px; + padding-right: 11px; +} - .slide-out, .slide-out.arrow-down { - transform: rotate(90deg) translate3d(-1px, -10px, 0); - } - - ul.sub-menu .see-all { - display: block; - } - - button.selected { - font-weight: 600; - } - } +// OS-specific styles +html.darwin aside.sidebar { + top: @gridHeight; + &::after { + top: @gridHeight; + } + nav { + margin-top: @gridHeight; + } +} - &.selected + li, - &:first-child { - border-top: 0; - margin-top: 1px; - } +aside.sidebar { + display: flex; + flex-flow: column nowrap; + justify-content: space-between; + + z-index: 4; + position: absolute; + top: @gridHeight / 2; + left: 0; + bottom: 0; + width: @widthSideBar; + + &::after { + .gradient-tip(); + top: @gridHeight / 2; + height: 8px; + background-image: linear-gradient(to top, rgba(241, 241, 241, 0) 0%, rgba(241, 241, 241, 1) 100%); + } + nav { + position: relative; + margin-top: @gridHeight / 2; + padding: 0 12px 0; + overflow: hidden; + min-height: 0; + &:hover { + overflow-y: auto; + } - &.browser { - .sub-menu { - li:first-child button { - color: @colorLinkFocus; + > ul { + margin: 6px 0; + padding: 0; + width: 54px; + + > li { + overflow: hidden; + margin-bottom: 14px; + transition-delay: 200ms; + + // draggable LI + &.ui-sortable-helper { + transform: scale(1.1); + .submenu-container { + display: none; } } - } - button.main { - position: relative; - padding: 0; - width: 85%; - height: @gridHeight*2; - color: @colorLinkBlur; - text-align: left; - text-transform: uppercase; - font-family: @sourceSansPro; - font-size: @fontSizeNormal; - font-weight: 500; - - - &:focus { - border: 0; - color: @colorLinkFocus; - } - - img, .icon-globe { - position: absolute; - top: 12px; - left: 2px; - height: @gridHeight; - width: @gridHeight; - border-radius: 10px; + &:hover { + .submenu-container { + opacity: 1; + visibility: visible; + } } - .icon-globe { - top: 13px; + &.selected, &:active, &:hover, &:focus { + button.main { + opacity: 1; + } } - - span, .badge { - .dapp-shorten-text; + button.main { + height: 55px; + width: 54px; display: block; - position: absolute; - width: 86%; - top: @gridHeight/2 + 2px; - left: 15px + @defaultPaddingVertical; - display: inline-block; - } + opacity: .6; + transition: 100ms opacity linear; - &.has-badge span { - position: relative; - top: -4px; - } + &:focus { + outline: 0; + border: none; + } - > .badge { - top: @gridHeight; - font-size: @fontSizeSmall; - font-weight: 200; - text-transform: none; - } - } + .icon-globe { + font-size: 32px; + text-align: center; + display: block; + background-color: #fff; + padding-top: 10px; + } - // Remove tab button - button.main { - img, .icon-globe { - transition: 0.25s ease-in-out transform; - transform: rotateY(0deg) translate3d(0, 0, 0); - backface-visibility: hidden; - color: @colorGray; + img, .icon-globe { + width: 54px; + height: 54px; + -webkit-mask-image: url('icons/mask-icon.svg'); + -webkit-mask-size: cover; + } } } + } - &:not(.browser):not(.wallet) header:hover { - button.main img, button.main .icon-globe { - transform: rotateY(-180deg) translate3d(0, 0, 0); - } - - button.remove-tab { - transform: rotateY(0deg) translate3d(0px, 0px, 0); - &:hover { - background: @colorLink; - color: @colorWhite; - } - } - } - - button.remove-tab { - box-sizing: border-box; + .submenu-container { + width: 185px; + position: fixed; + left: 90px; + top: 120px; + border-radius: 5px; + z-index: 1000; + visibility: hidden; + opacity: 0; + cursor: default; + + transition: 150ms linear all, 1ms linear top; + transition-delay: 200ms; + transform: translateY(-11px); + // backdrop-filter: blur(0); + + &::before { + @tipSize: 8px; + content: ''; + margin-left: -@tipSize; + margin-top: 19px + 11px; + display: block; position: absolute; - padding: 6px 8px 0px 2px; - transition: 0.25s ease-in-out transform; - left: 8px; - top: 11px; - color: @colorLink; - height: @gridHeight - 1px; - width: @gridHeight; - border-radius: 50%; - padding: 0; - z-index: 2; - backface-visibility: hidden; - transform: rotateY(180deg) translate3d(0px, 0px, 0); - &:focus { - border: none; - } + width: 0px; + height: @tipSize * 2.25; + border: 0px solid transparent; + border-width: @tipSize; + border-left: 0; + border-right-color: rgba(0,0,0,0.78); } - button.slide-out { - position: absolute; - right: @gridHeight/2; - top: @gridHeight/1.75; - width: 30px; - height: 20px; - background: url('icons/expand-icon.png') no-repeat center; - background-size: 15px 10px; - border: none; - transform: translate3d(10px, -1px, 0); - - &.arrow-down { - transform: rotate(180deg) translate3d(-10px, 1px, 0); + button { + &:active, &:focus { + transform: none; + border: none; } } - - // SUB MENU - ul.sub-menu { - padding-left: @gridWidth/2; - border-top: 0; - max-height: @gridHeight*12; - - li { - height: 0; - opacity: 0; - line-height: floor(@gridHeight * 2) - 1px; // -1px fixes an issue, where fonts shift up by 1px - - border-top: 1px solid rgba(0, 0, 0, 0.04); + section { + padding: 8px 0 0; + background-color: rgba(0, 0, 0, 0.78); + // backdrop-filter: blur(5px); + width: 100%; + border-radius: 5px; + color: #fff; + position: relative; - button:not(.slide-out) { - font-size: @fontSizeSmall; - font-weight: 400; - text-transform: none; - } + header { + .sidePadding(); + padding-bottom: 11px; } - - li:nth-child(6), li:nth-child(7) { - visibility: hidden; + span { + font-weight: 400; } - - button { - .dapp-shorten-text; - padding: floor(@gridHeight / 2) 0; - width: @gridWidth*3.6; - color: @colorLinkActive; - text-align: left; - border: 0; - - &:focus { - border: 0; - color: @colorLinkFocus; - } - - - &.selected { - color: @colorLinkBlur; - } - - + a, button { + color: #fff; } - .badge { - .dapp-shorten-text; + font-size: 11px; + } + .remove-tab { + color: #A6A6A6; position: absolute; - max-width: @gridWidth*1.5; - right: 0; - top: 0; - bottom: 0; - padding: 0 @gridWidth/6; - background-color: rgba(0, 0, 0, 0.05); - text-align: center; - line-height: floor(@gridHeight * 2); - font-size: @fontSizeSmall; - + right: 5px; + top: 4px; + width: 14px; &:hover { - max-width: @gridWidth*4; + color: #fff; } } - .see-all { - position: absolute; - margin-top: -4px; - top: @gridHeight * 10; - width: 100%; - + .accounts { + margin-top: 11px; button { - font-style: italic; + font-size: 12px; + font-weight: 300; + text-transform: uppercase; + width: 100%; + } + .connect { + background-color: #4C92E6; + border-radius: 4px; + padding: 3px 0; + } + .display { + @identiconHeight: 17px; + text-align: left; + line-height: @identiconHeight; + + .dapp-identicon-container { + float: right; + height: @identiconHeight; + } + + .dapp-identicon { + margin-right: 0px; + width: @identiconHeight; + height: @identiconHeight; + &:not(:last-child) { + margin-right: 4px; + } + } } } - } - } - - } - - &.full-tabs { - nav > ul > li:not(.selected) { - visibility: hidden; - height: 0; - transform: translate3d(-100%,0,0); - } - nav > ul > li.selected { - img { - opacity: 0; - } - button.slide-out { - transform: rotate(-90deg); - left: 1px; - right: auto; - } - - ul { - max-height: none; } - li:nth-child(6), li:nth-child(7) { - visibility: visible; - } - - .see-all { - display: none; + .sub-menu { + margin: 6px 0; + padding: 0; + border-top: 1px solid rgba(255, 255, 255, 0.2); + overflow-y: auto; + overflow-x: hidden; + padding-bottom: 0.1em; + margin-top: 2px; + margin-bottom: 0; + li { + opacity: 1; + font-weight: normal; + font-size: 14px; + margin-bottom: 0; + button { + padding: 8px 0 6px; + .sidePadding(); + box-sizing: border-box; + width: 100%; + text-align: left; + background-color: rgba(255, 255, 255, 0); + transition: 150ms linear background-color; + + margin: 5px 0; + display: -webkit-box; + -webkit-line-clamp: 2; // 2 lines max + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + &:hover { + background-color: rgba(255, 255, 255, 0.2); + } + .badge { + display: block; + opacity: .8; + } + } + } } } - - & + .browser-bar + main .webview { - border-top-left-radius: 0; - } } .node-info { + position: relative; + cursor: default; + + &::after { + .gradient-tip(); + height: 20px; + top: -(20px - 1); + background-image: linear-gradient(to bottom, rgba(241, 241, 241, 0) 0%, rgba(241, 241, 241, 1) 100%); + } + display: flex; - top: initial; - bottom: @gridHeight; - left: @gridWidth/2; flex-flow: row wrap; - + flex-shrink: 0; + padding: 8px; + font-size: 0.9em; + color: @colorTextSecondary; + div, span { padding: @gridHeight/2 1px; flex: 1; text-align: center; } + i { + display: block; + margin-bottom: 2px; + } + progress { flex: 1 100%; } - .mining-indicator { + .mining-indicator { flex: 3; } .block-number { flex: 2; + white-space: nowrap; } .test-chain { flex: 1 100%; padding: 1px 5px 2px; - margin: @gridHeight/2 @gridWidth/4; } } } -// Remove tab button related code -aside.full-tabs button.remove-tab { - display: none; +.app-blur aside.newsidebar nav::after { + background-image: linear-gradient(to bottom, rgba(246, 246, 246, 0) 0%, rgba(246, 246, 246, 1) 100%); } - diff --git a/interface/client/styles/mixins.import.less b/interface/client/styles/mixins.import.less old mode 100644 new mode 100755 diff --git a/interface/client/styles/networkIndicator.import.less b/interface/client/styles/networkIndicator.import.less old mode 100644 new mode 100755 diff --git a/interface/client/styles/onboardingScreen.import.less b/interface/client/styles/onboardingScreen.import.less old mode 100644 new mode 100755 index 32b1d4736..53e2cb75f --- a/interface/client/styles/onboardingScreen.import.less +++ b/interface/client/styles/onboardingScreen.import.less @@ -41,13 +41,14 @@ .onboarding-start { padding: @gridHeight @gridWidth @gridHeight @gridWidth * 10; - background-image: url('/images/onboarding-logo-exp.png'); + background-image: url('/images/onboarding-logo-metal.png'); background-repeat: no-repeat; background-position-y: @gridHeight*4; background-size: 255px 257px; button, a.button { font-size: 110%; + text-align: left; } } diff --git a/interface/client/styles/popupWindows.import.less b/interface/client/styles/popupWindows.import.less old mode 100644 new mode 100755 diff --git a/interface/client/styles/splashScreen.import.less b/interface/client/styles/splashScreen.import.less old mode 100644 new mode 100755 index 019661e5e..105a9b06d --- a/interface/client/styles/splashScreen.import.less +++ b/interface/client/styles/splashScreen.import.less @@ -107,7 +107,7 @@ } img { - margin-top: 15px; + margin-top: 7px; width: 110px; transition: width 0.5s ease-in-out; } diff --git a/interface/client/styles/styles.less b/interface/client/styles/styles.less old mode 100644 new mode 100755 diff --git a/interface/client/templates/elements/img.html b/interface/client/templates/elements/img.html old mode 100644 new mode 100755 diff --git a/interface/client/templates/elements/img.js b/interface/client/templates/elements/img.js old mode 100644 new mode 100755 diff --git a/interface/client/templates/elements/networkIndicator.html b/interface/client/templates/elements/networkIndicator.html old mode 100644 new mode 100755 index 1c0f80621..20e47a642 --- a/interface/client/templates/elements/networkIndicator.html +++ b/interface/client/templates/elements/networkIndicator.html @@ -8,7 +8,7 @@ {{#if $eq (TemplateVar.get "network") "testnet"}}
- {{i18n "mist.nodeInfo.testNetwork"}} + {{TemplateVar.get "networkName"}}
{{/if}} diff --git a/interface/client/templates/elements/networkIndicator.js b/interface/client/templates/elements/networkIndicator.js old mode 100644 new mode 100755 index f1f66fce2..0f720b0bc --- a/interface/client/templates/elements/networkIndicator.js +++ b/interface/client/templates/elements/networkIndicator.js @@ -28,6 +28,7 @@ var checkNetworkType = function (template) { console.error('Got error fetching block 0', e); } else { TemplateVar.set(template, 'network', Helpers.detectNetwork(res.hash).type); + TemplateVar.set(template, 'networkName', Helpers.detectNetwork(res.hash).name); } }); } catch (err) { @@ -51,9 +52,7 @@ Template['elements_networkIndicator'].onRendered(function () { case 'stopping': case 'connected': console.debug('Node status changing, reset network type indicator'); - TemplateVar.set(template, 'network', 'unknown'); - break; } }); @@ -68,5 +67,3 @@ Template['elements_networkIndicator'].onRendered(function () { } }); }); - - diff --git a/interface/client/templates/elements/nodeInfo.html b/interface/client/templates/elements/nodeInfo.html old mode 100644 new mode 100755 index 90bf0142a..6a259b431 --- a/interface/client/templates/elements/nodeInfo.html +++ b/interface/client/templates/elements/nodeInfo.html @@ -11,27 +11,24 @@
{{TemplateVar.get "peerCount"}}
-
+
{{progress}}%
{{else}}
- {{formattedBlockNumber}} + {{formattedBlockNumber}}
{{TemplateVar.get "peerCount"}}
-
+
{{{timeSinceBlock}}}
{{/with}} - {{#if $eq (TemplateVar.get "network") "testnet"}} - {{i18n 'mist.nodeInfo.testNetwork'}} - {{/if}} - {{#if $eq (TemplateVar.get "network") "privatenet"}} - {{i18n 'mist.nodeInfo.privateNetwork'}} + {{#if $neq (TemplateVar.get "network") "mainnet"}} + {{TemplateVar.get "networkName"}} {{/if}}
- \ No newline at end of file + diff --git a/interface/client/templates/elements/nodeInfo.js b/interface/client/templates/elements/nodeInfo.js old mode 100644 new mode 100755 index df3fc8c3b..ab7467559 --- a/interface/client/templates/elements/nodeInfo.js +++ b/interface/client/templates/elements/nodeInfo.js @@ -49,8 +49,8 @@ Template['elements_nodeInfo'].onCreated(function(){ web3.eth.getBlock(0, function(e, res){ if(!e){ const network = Helpers.detectNetwork(res.hash); - TemplateVar.set(template, 'network', network.type); - TemplateVar.set(template, 'networkName', network.name); + TemplateVar.set(template, 'network', network.type); + TemplateVar.set(template, 'networkName', network.name); } }); @@ -63,12 +63,12 @@ Template['elements_nodeInfo'].onCreated(function(){ web3.reset(true); } else if(_.isObject(syncing)) { - + syncing.progress = Math.floor(((syncing.currentBlock - syncing.startingBlock) / (syncing.highestBlock - syncing.startingBlock)) * 100); syncing.blockDiff = numeral(syncing.highestBlock - syncing.currentBlock).format('0,0'); TemplateVar.set(template, 'syncing', syncing); - + } else { console.log('Restart app operation again'); @@ -105,11 +105,12 @@ Template['elements_nodeInfo'].onCreated(function(){ }); -Template['elements_nodeInfo'].onDestroyed(function(){ +Template['elements_nodeInfo'].onDestroyed(function() { Meteor.clearInterval(this.peerCountIntervalId); - if(this.syncFilter) + if (this.syncFilter) { this.syncFilter.stopWatching(); + } }); @@ -120,7 +121,7 @@ Template['elements_nodeInfo'].helpers({ @method (formattedBlockNumber) @return {String} */ - 'formattedBlockNumber': function() { + formattedBlockNumber: function () { return numeral(EthBlocks.latest.number).format('0,0'); }, /** @@ -128,23 +129,24 @@ Template['elements_nodeInfo'].helpers({ @method (timeSinceBlock) */ - 'timeSinceBlock': function () { - var timeSince = moment(EthBlocks.latest.timestamp, "X"); + timeSinceBlock: function () { + var timeSince = moment(EthBlocks.latest.timestamp, 'X'); var now = moment(); - var diff = now.diff(timeSince, "seconds"); + var diff = now.diff(timeSince, 'seconds'); + + if (!EthBlocks.latest.timestamp) { + return '-'; + } - if (diff>60) { - Helpers.rerun["10s"].tick(); + if (diff > 60) { + Helpers.rerun['10s'].tick(); return timeSince.fromNow(true); - } else if (diff<2) { - Helpers.rerun["1s"].tick(); - return ' ' + TAPi18n.__('mist.nodeInfo.blockReceived') + '' - } else { - Helpers.rerun["1s"].tick(); - return diff + "s"; + } else if (diff < 2) { + Helpers.rerun['1s'].tick(); + return ' ' + TAPi18n.__('mist.nodeInfo.blockReceivedShort') + ''; } + + Helpers.rerun['1s'].tick(); + return diff + 's'; } }); - - - diff --git a/interface/client/templates/index.html b/interface/client/templates/index.html old mode 100644 new mode 100755 diff --git a/interface/client/templates/index.js b/interface/client/templates/index.js old mode 100644 new mode 100755 diff --git a/interface/client/templates/layout/browserBar.html b/interface/client/templates/layout/browserBar.html old mode 100644 new mode 100755 diff --git a/interface/client/templates/layout/browserBar.js b/interface/client/templates/layout/browserBar.js old mode 100644 new mode 100755 index 335d0f672..b4f1110ee --- a/interface/client/templates/layout/browserBar.js +++ b/interface/client/templates/layout/browserBar.js @@ -114,6 +114,7 @@ Template['layout_browserBar'].events({ @event click .app-bar > button.accounts' */ 'click .app-bar > button.accounts': function (e, template) { + LocalStore.set('chosenTab', LocalStore.get('selectedTab')); // needed by connectAccount mist.requestAccount(function (e, addresses) { var tabId = LocalStore.get('selectedTab'); @@ -123,7 +124,6 @@ Template['layout_browserBar'].events({ 'permissions.accounts': addresses } }); }); - }); }, /* diff --git a/interface/client/templates/layout/main.html b/interface/client/templates/layout/main.html old mode 100644 new mode 100755 diff --git a/interface/client/templates/layout/sidebar.html b/interface/client/templates/layout/sidebar.html old mode 100644 new mode 100755 index 677d865b5..71203a750 --- a/interface/client/templates/layout/sidebar.html +++ b/interface/client/templates/layout/sidebar.html @@ -1,49 +1,71 @@ \ No newline at end of file + diff --git a/interface/client/templates/layout/sidebar.js b/interface/client/templates/layout/sidebar.js old mode 100644 new mode 100755 index 21e232d00..56b3e49d0 --- a/interface/client/templates/layout/sidebar.js +++ b/interface/client/templates/layout/sidebar.js @@ -21,7 +21,7 @@ Template['layout_sidebar'].onRendered(function () { // tolerance: 'pointer', items: '> li:not(.browser)', handle: 'button.main', - cancel: '', + cancel: '.browser', cursor: 'move', delay: 150, revert: 200, @@ -29,7 +29,6 @@ Template['layout_sidebar'].onRendered(function () { $ul.sortable('refreshPositions'); }, update: function (e) { - console.log('UPDATED'); // iterate over the lis and reposition the items $ul.find('> li').each(function (index, test) { var id = $(this).data('tab-id'); @@ -39,6 +38,9 @@ Template['layout_sidebar'].onRendered(function () { }); } }); + + template.$('[data-tab-id]').on('mouseover', function () { + }); }); @@ -96,27 +98,35 @@ Template['layout_sidebar'].helpers({ } }, /** + Returns connected accounts for dapp + + @method (dappAccounts) + */ + 'dappAccounts': function (limit) { + if (this.permissions) { + if (limit) { + return EthAccounts.find({ address: { $in: this.permissions.accounts || [] } }, + { limit: limit }); + } + return EthAccounts.find({ address: { $in: this.permissions.accounts || [] } }); + } + }, + /** Determines if the current tab is visible @method (isSelected) */ 'isSelected': function () { - var selected = (LocalStore.get('selectedTab') === (this._id || 'browser')) ? 'selected' : ''; - - if (this.menuVisible) { - selected += ' slided-out'; - } - - return selected; + return (LocalStore.get('selectedTab') === (this._id || 'browser')) ? 'selected' : ''; }, /** - Determines if the current tab is visible + It defines which tabs will have a remove button on the interface - @method (fullTabs) + @method (tabShouldBeRemovable) */ - 'fullTabs': function () { - return (LocalStore.get('fullTabs')) ? 'full-tabs' : ''; - } + 'tabShouldBeRemovable': function () { + return !_.contains(['browser', 'wallet'], this._id); + }, }); @@ -149,36 +159,6 @@ Template['layout_sidebar'].events({ } }, /** - Slide out - - @event button.slide-out - */ - 'click button.slide-out': function (e, template) { - var isSelected = (LocalStore.get('selectedTab') === (this._id || 'browser')); - - if (isSelected && LocalStore.get('fullTabs')) { - LocalStore.set('fullTabs', false); - } else if (isSelected) { - LocalStore.set('fullTabs', true); - } else { - Tabs.update(this._id, { $set: { menuVisible: !this.menuVisible } }); - } - }, - /** - See all - - @event .see-all button - */ - 'click li.see-all > button': function (e, template) { - var isSelected = (LocalStore.get('selectedTab') === (this._id || 'browser')); - - if (isSelected && LocalStore.get('fullTabs')) { - LocalStore.set('fullTabs', false); - } else if (isSelected) { - LocalStore.set('fullTabs', true); - } - }, - /** Remove the current selected tab // TODO show popup before to confirm @@ -192,4 +172,49 @@ Template['layout_sidebar'].events({ Tabs.remove(this._id); }, + /** + Show connect account popup + + @event click .accounts button' + */ + 'click .accounts button': function (e, template) { + var initialTabCount = Tabs.find().fetch().length; + LocalStore.set('selectedTab', this._id); + var initialTabId = this._id; + + mist.requestAccount(function (ev, addresses) { + dbSync.syncDataFromBackend(LastVisitedPages); + dbSync.syncDataFromBackend(Tabs).then(function () { + var tabCount = Tabs.find().fetch().length; + var tabId; + if (tabCount > initialTabCount) { // browse tab was pinned + tabId = Tabs.findOne({}, { sort: { position: -1 }, limit: 1 }); + } else { + tabId = initialTabId; + } + Tabs.update(tabId, { + $set: { + 'permissions.accounts': addresses + } + }); + }); + }); + }, + + /** + Shows dapp submenu + + @event mouseenter .sidebar-menu > li + */ + 'mouseenter .sidebar-menu > li': function (e, template) { + var $this = $(e.currentTarget); + var tabTopOffset = $this.offset().top; + var $submenuContainer = $this.find('.submenu-container'); + var $submenu = $this.find('.sub-menu'); + var submenuHeaderHeight = $this.find('header').outerHeight(); + var windowHeight = $(window).outerHeight(); + + $submenuContainer.css('top', tabTopOffset + 'px'); + $submenu.css('max-height', (windowHeight - tabTopOffset - submenuHeaderHeight - 30) + 'px'); + }, }); diff --git a/interface/client/templates/layout/webviews.html b/interface/client/templates/layout/webviews.html old mode 100644 new mode 100755 diff --git a/interface/client/templates/layout/webviews.js b/interface/client/templates/layout/webviews.js old mode 100644 new mode 100755 diff --git a/interface/client/templates/popupWindows/about.html b/interface/client/templates/popupWindows/about.html old mode 100644 new mode 100755 index 31c084286..bfe71139e --- a/interface/client/templates/popupWindows/about.html +++ b/interface/client/templates/popupWindows/about.html @@ -10,7 +10,7 @@

{{appName}}

License {{mist.license}}
GitHub github.com/expanse-org/mist

- Copyright 2016 Ethereum Foundation
Copyright 2016 Expanse Org
+ Copyright 2016 Ethereum Foundation & 2018 Expanse.tech
diff --git a/interface/client/templates/popupWindows/about.js b/interface/client/templates/popupWindows/about.js old mode 100644 new mode 100755 index 220d62eb6..3be06a553 --- a/interface/client/templates/popupWindows/about.js +++ b/interface/client/templates/popupWindows/about.js @@ -14,3 +14,4 @@ The about template Template['popupWindows_about'].onCreated(function () { }); + diff --git a/interface/client/templates/popupWindows/clientUpdateAvailable.html b/interface/client/templates/popupWindows/clientUpdateAvailable.html old mode 100644 new mode 100755 diff --git a/interface/client/templates/popupWindows/clientUpdateAvailable.js b/interface/client/templates/popupWindows/clientUpdateAvailable.js old mode 100644 new mode 100755 diff --git a/interface/client/templates/popupWindows/connectAccount.html b/interface/client/templates/popupWindows/connectAccount.html old mode 100644 new mode 100755 diff --git a/interface/client/templates/popupWindows/connectAccount.js b/interface/client/templates/popupWindows/connectAccount.js old mode 100644 new mode 100755 index 90314a7e1..a7207476e --- a/interface/client/templates/popupWindows/connectAccount.js +++ b/interface/client/templates/popupWindows/connectAccount.js @@ -1,21 +1,17 @@ var pinToSidebar = function () { - var selectedTab = Tabs.findOne(LocalStore.get('selectedTab')); + var selectedTab = TemplateVar.get('tab'); if (selectedTab) { var existingUserTab = Helpers.getTabIdByUrl(selectedTab.url); - console.log(existingUserTab); - console.log(selectedTab); - if (existingUserTab === 'browser') { var newTabId = Tabs.insert({ url: selectedTab.url, redirect: selectedTab.url, name: selectedTab.name, menu: {}, - menuVisible: false, position: Tabs.find().count() + 1 }); LocalStore.set('selectedTab', newTabId); @@ -45,7 +41,7 @@ var pinToSidebar = function () { }; var updateSelectedTabAccounts = function (accounts) { - var tabId = LocalStore.get('selectedTab'); + var tabId = TemplateVar.get('selectedTab')._id; Tabs.update(tabId, { $set: { 'permissions.accounts': accounts } }); @@ -53,7 +49,9 @@ var updateSelectedTabAccounts = function (accounts) { Template['popupWindows_connectAccount'].onCreated(function () { this.autorun(function () { - var tab = Tabs.findOne(LocalStore.get('selectedTab'), { fields: { 'permissions.accounts': 1 } }); + TemplateVar.set('tab', Tabs.findOne(LocalStore.get('selectedTab'))); + + var tab = TemplateVar.get('tab'); var accounts = (tab && tab.permissions && tab.permissions.accounts) ? tab.permissions.accounts : []; TemplateVar.set('accounts', accounts); }); @@ -67,7 +65,7 @@ Template['popupWindows_connectAccount'].helpers({ @method (dapp) */ dapp: function () { - return Tabs.findOne(LocalStore.get('selectedTab')); + return TemplateVar.get('tab'); }, /** Returns a cleaner version of URL @@ -75,7 +73,7 @@ Template['popupWindows_connectAccount'].helpers({ @method (dappFriendlyURL) */ dappFriendlyURL: function () { - var currentTab = Tabs.findOne(LocalStore.get('selectedTab')); + var currentTab = TemplateVar.get('tab'); if (currentTab && currentTab.url) { return currentTab.url.replace(/^https?:\/\/(www\.)?/, '').replace(/\/$/, ''); } diff --git a/interface/client/templates/popupWindows/importAccount.html b/interface/client/templates/popupWindows/importAccount.html old mode 100644 new mode 100755 diff --git a/interface/client/templates/popupWindows/loadingWindow.html b/interface/client/templates/popupWindows/loadingWindow.html old mode 100644 new mode 100755 diff --git a/interface/client/templates/popupWindows/onboardingScreen.html b/interface/client/templates/popupWindows/onboardingScreen.html old mode 100644 new mode 100755 index 296c3c677..fcdb30124 --- a/interface/client/templates/popupWindows/onboardingScreen.html +++ b/interface/client/templates/popupWindows/onboardingScreen.html @@ -7,12 +7,12 @@

{{i18n "mist.popupWindows.onboarding.description"}}

- - {{i18n "mist.popupWindows.onboarding.goToTestnetDescription"}} + + {{i18n "mist.popupWindows.onboarding.gotoMainnetDescription"}}

- - {{i18n "mist.popupWindows.onboarding.gotoMainnetDescription"}} + + {{i18n "mist.popupWindows.onboarding.goToTestnetDescription"}}

@@ -35,7 +35,7 @@ @@ -88,7 +85,7 @@

{{i18n "mist.popupWindows.onboarding.learnIt"}}

{{i18n "mist.popupWindows.onboarding.learnIt"}}