Showing preview only (5,690K chars total). Download the full file or copy to clipboard to get everything.
Repository: petejkim/metamask-mobile
Branch: master
Commit: d307dd64939d
Files: 79
Total size: 5.4 MB
Directory structure:
gitextract_v8ksmv8r/
├── .babelrc
├── .buckconfig
├── .flowconfig
├── .gitattributes
├── .gitignore
├── .watchmanconfig
├── LICENSE
├── README.md
├── android/
│ ├── app/
│ │ ├── BUCK
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── nabi/
│ │ │ ├── MainActivity.java
│ │ │ └── MainApplication.java
│ │ └── res/
│ │ └── values/
│ │ ├── strings.xml
│ │ └── styles.xml
│ ├── build.gradle
│ ├── gradle/
│ │ └── wrapper/
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── keystores/
│ │ ├── BUCK
│ │ └── debug.keystore.properties
│ └── settings.gradle
├── app.json
├── index.android.js
├── index.ios.js
├── ios/
│ ├── Nabi/
│ │ ├── AppDelegate.swift
│ │ ├── AppProtocol.swift
│ │ ├── Assets.xcassets/
│ │ │ └── AppIcon.appiconset/
│ │ │ └── Contents.json
│ │ ├── Base.lproj/
│ │ │ └── LaunchScreen.xib
│ │ ├── Info.plist
│ │ └── Nabi-Bridging-Header.h
│ ├── Nabi.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── xcshareddata/
│ │ └── xcschemes/
│ │ └── Nabi.xcscheme
│ ├── NabiTests/
│ │ ├── Info.plist
│ │ └── NabiTests.swift
│ ├── NabiUITests/
│ │ ├── Info.plist
│ │ └── NabiUITests.swift
│ └── vendor/
│ └── WKWebViewWithURLProtocol/
│ ├── NSURLProtocol+WKWebViewSupport.h
│ └── NSURLProtocol+WKWebViewSupport.m
├── package.json
├── rn-cli.config.js
├── src/
│ ├── @types/
│ │ ├── react-native-navigation.d.ts
│ │ └── react-native-wkwebview-reborn.d.ts
│ ├── components/
│ │ ├── BrowserWindow.tsx
│ │ ├── LocationBar.tsx
│ │ ├── MetaMaskBackground.tsx
│ │ └── PageLoadProgress.tsx
│ ├── constants.ts
│ ├── index.ts
│ ├── injections/
│ │ ├── contentScript.ts
│ │ ├── metaMaskBackground.ts
│ │ ├── metaMaskPopup.ts
│ │ └── types.ts
│ ├── ipc.ts
│ ├── screens/
│ │ ├── MetaMaskScreen.tsx
│ │ ├── RootScreen.tsx
│ │ └── index.ts
│ ├── util.test.ts
│ └── util.ts
├── tsconfig.json
├── tslint.json
└── web/
├── metamask/
│ ├── _locales/
│ │ ├── en/
│ │ │ └── messages.json
│ │ ├── es/
│ │ │ └── messages.json
│ │ ├── es_419/
│ │ │ └── messages.json
│ │ ├── ja/
│ │ │ └── messages.json
│ │ └── zh_CN/
│ │ └── messages.json
│ ├── background.html
│ ├── fonts/
│ │ └── Montserrat/
│ │ └── OFL.txt
│ ├── manifest.json
│ ├── popup.html
│ └── scripts/
│ ├── background.js
│ ├── contentscript.js
│ ├── inpage.js
│ └── popup.js
└── vendor/
├── asmcrypto-0.0.11.js
└── webcrypto-liner.shim-0.1.22.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .babelrc
================================================
{
"presets": ["react-native"]
}
================================================
FILE: .buckconfig
================================================
[android]
target = Google Inc.:Google APIs:23
[maven_repositories]
central = https://repo1.maven.org/maven2
================================================
FILE: .flowconfig
================================================
[ignore]
; We fork some components by platform
.*/*[.]android.js
; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/
; Ignore unexpected extra "@providesModule"
.*/node_modules/.*/node_modules/fbjs/.*
; Ignore duplicate module providers
; For RN Apps installed via npm, "Libraries" folder is inside
; "node_modules/react-native" but in the source repo it is in the root
.*/Libraries/react-native/React.js
.*/Libraries/react-native/ReactNative.js
[include]
[libs]
node_modules/react-native/Libraries/react-native/react-native-interface.js
node_modules/react-native/flow
flow/
[options]
emoji=true
module.system=haste
experimental.strict_type_args=true
munge_underscores=true
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FixMe
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(4[0-5]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(4[0-5]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
unsafe.enable_getters_and_setters=true
[version]
^0.45.0
================================================
FILE: .gitattributes
================================================
*.pbxproj -text
================================================
FILE: .gitignore
================================================
# OSX
#
.DS_Store
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace
# Android/IntelliJ
#
build/
.idea
.gradle
local.properties
*.iml
# node.js
#
node_modules/
npm-debug.log
yarn-error.log
# BUCK
buck-out/
\.buckd/
*.keystore
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
================================================
FILE: .watchmanconfig
================================================
{}
================================================
FILE: LICENSE
================================================
The Ethereum Project Contributor Asset Distribution Terms ( MIT + Share-alike )
Copyright (c) 2016-2017 MetaMask
Copyright (c) 2017 Peter Jihoon Kim
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
These licence terms have been adapted from the MIT licence.
================================================
FILE: README.md
================================================
MetaMask for Mobile
===================

**This project is very EXPERIMENTAL, use it at your own risk.**
A mobile port of MetaMask. Only built/tested for iOS at the moment.
### Requirements
* Xcode >= 8.x
* Node.js >= 8.x
### Instructions
```
$ cd metamask-mobile
$ npm -g install yarn
$ yarn install
$ yarn run-ios
```
================================================
FILE: android/app/BUCK
================================================
# To learn about Buck see [Docs](https://buckbuild.com/).
# To run your application with Buck:
# - install Buck
# - `npm start` - to start the packager
# - `cd android`
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
# - `buck install -r android/app` - compile, install and run application
#
lib_deps = []
for jarfile in glob(['libs/*.jar']):
name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')]
lib_deps.append(':' + name)
prebuilt_jar(
name = name,
binary_jar = jarfile,
)
for aarfile in glob(['libs/*.aar']):
name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')]
lib_deps.append(':' + name)
android_prebuilt_aar(
name = name,
aar = aarfile,
)
android_library(
name = "all-libs",
exported_deps = lib_deps,
)
android_library(
name = "app-code",
srcs = glob([
"src/main/java/**/*.java",
]),
deps = [
":all-libs",
":build_config",
":res",
],
)
android_build_config(
name = "build_config",
package = "com.nabi",
)
android_resource(
name = "res",
package = "com.nabi",
res = "src/main/res",
)
android_binary(
name = "app",
keystore = "//android/keystores:debug",
manifest = "src/main/AndroidManifest.xml",
package_type = "debug",
deps = [
":app-code",
],
)
================================================
FILE: android/app/build.gradle
================================================
apply plugin: "com.android.application"
import com.android.build.OutputFile
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation
* entryFile: "index.android.js",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
* nodeExecutableAndArgs: ["node"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
* ]
*/
apply from: "../../node_modules/react-native/react.gradle"
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.nabi"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
compile project(':react-native-navigation')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:23.0.1"
compile "com.facebook.react:react-native:+" // From node_modules
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
================================================
FILE: android/app/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Disabling obfuscation is useful if you collect stack traces from production crashes
# (unless you are using a system that supports de-obfuscate the stack traces).
-dontobfuscate
# React Native
# Keep our interfaces so they can be used by other ProGuard rules.
# See http://sourceforge.net/p/proguard/bugs/466/
-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters
-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
# Do not strip any method/class that is annotated with @DoNotStrip
-keep @com.facebook.proguard.annotations.DoNotStrip class *
-keep @com.facebook.common.internal.DoNotStrip class *
-keepclassmembers class * {
@com.facebook.proguard.annotations.DoNotStrip *;
@com.facebook.common.internal.DoNotStrip *;
}
-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
void set*(***);
*** get*();
}
-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
-keepclassmembers,includedescriptorclasses class * { native <methods>; }
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; }
-dontwarn com.facebook.react.**
# TextLayoutBuilder uses a non-public Android constructor within StaticLayout.
# See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details.
-dontwarn android.text.StaticLayout
# okhttp
-keepattributes Signature
-keepattributes *Annotation*
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
# okio
-keep class sun.misc.Unsafe { *; }
-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.**
================================================
FILE: android/app/src/main/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nabi"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="22" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
================================================
FILE: android/app/src/main/java/com/nabi/MainActivity.java
================================================
package com.nabi;
import com.facebook.react.ReactActivity;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "Nabi";
}
}
================================================
FILE: android/app/src/main/java/com/nabi/MainApplication.java
================================================
package com.nabi;
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.reactnativenavigation.NavigationReactPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import java.util.Arrays;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new NavigationReactPackage()
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
================================================
FILE: android/app/src/main/res/values/strings.xml
================================================
<resources>
<string name="app_name">Nabi</string>
</resources>
================================================
FILE: android/app/src/main/res/values/styles.xml
================================================
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style>
</resources>
================================================
FILE: android/build.gradle
================================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
================================================
FILE: android/gradle/wrapper/gradle-wrapper.properties
================================================
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
================================================
FILE: android/gradle.properties
================================================
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
android.useDeprecatedNdk=true
================================================
FILE: android/gradlew
================================================
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
================================================
FILE: android/gradlew.bat
================================================
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
================================================
FILE: android/keystores/BUCK
================================================
keystore(
name = "debug",
properties = "debug.keystore.properties",
store = "debug.keystore",
visibility = [
"PUBLIC",
],
)
================================================
FILE: android/keystores/debug.keystore.properties
================================================
key.store=debug.keystore
key.alias=androiddebugkey
key.store.password=android
key.alias.password=android
================================================
FILE: android/settings.gradle
================================================
rootProject.name = 'Nabi'
include ':react-native-navigation'
project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/android/app')
include ':app'
================================================
FILE: app.json
================================================
{
"name": "Nabi",
"displayName": "Nabi"
}
================================================
FILE: index.android.js
================================================
import { startApp } from './src'
startApp()
================================================
FILE: index.ios.js
================================================
import { startApp } from './src'
startApp()
================================================
FILE: ios/Nabi/AppDelegate.swift
================================================
import UIKit
import WebKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
URLProtocol.wk_registerScheme("app")
URLProtocol.wk_registerScheme("about")
URLProtocol.registerClass(AppProtocol.self)
let jsCodeLocation = RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index.ios", fallbackResource: nil)
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.backgroundColor = UIColor.white
RCCManager.sharedInstance().initBridge(withBundleURL: jsCodeLocation)
return true
}
func applicationWillResignActive(_ application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
func applicationWillEnterForeground(_ application: UIApplication) {
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
}
================================================
FILE: ios/Nabi/AppProtocol.swift
================================================
import UIKit
class AppProtocol: URLProtocol {
override class func canInit(with request: URLRequest) -> Bool {
return request.url!.scheme == "app" || (request.url!.scheme == "about" && request.url!.host == "metamask")
}
override class func canonicalRequest(for request: URLRequest) -> URLRequest {
return request;
}
override func startLoading() {
let url = self.request.url!
DispatchQueue.global(qos: .userInitiated).async {
let fileName = "\(Bundle.main.bundlePath)/web/\(url.host!)\(url.path)"
print("loading \(url.absoluteString) --> \(fileName)")
let fileURL = URL(fileURLWithPath: fileName)
let data = try? Data(contentsOf: fileURL)
let ext = fileURL.pathExtension
let response = URLResponse.init(url: self.request.url!,
mimeType: mimeType(ext: ext),
expectedContentLength: data!.count,
textEncodingName: isTextFile(ext: ext) ? "utf-8" : nil)
DispatchQueue.main.async {
let client = self.client!
client.urlProtocol(self, didReceive: response, cacheStoragePolicy: .notAllowed)
client.urlProtocol(self, didLoad: data!)
client.urlProtocolDidFinishLoading(self)
}
}
}
override func stopLoading() {
}
}
func mimeType(ext: String) -> String {
switch ext {
case "css":
return "text/css"
case "gif":
return "image/gif"
case "html", "htm":
return "text/html"
case "jpeg", "jpg":
return "image/jpeg"
case "js":
return "application/javascript"
case "json", "map":
return "application/json"
case "png":
return "image/png"
case "svg":
return "image/svg+xml"
case "text", "txt":
return "text/plain"
case "ttf":
return "application/font-sfnt"
case "woff":
return "application/font-woff"
default:
return "application/octet-stream"
}
}
func isTextFile(ext: String) -> Bool {
return ["css", "html", "htm", "js", "json", "map", "svg", "text", "txt"].contains(ext)
}
================================================
FILE: ios/Nabi/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
================================================
FILE: ios/Nabi/Base.lproj/LaunchScreen.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12120" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12088"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="481" height="83"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Browser" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
<rect key="frame" x="20" y="7" width="441" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="548" y="455"/>
</view>
</objects>
</document>
================================================
FILE: ios/Nabi/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>Nabi</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string></string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>
================================================
FILE: ios/Nabi/Nabi-Bridging-Header.h
================================================
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "NSURLProtocol+WKWebViewSupport.h"
#import <React/RCTBundleURLProvider.h>
#import "RCCManager.h"
================================================
FILE: ios/Nabi.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
E91D41411EE4233F009BE67F /* web in Resources */ = {isa = PBXBuildFile; fileRef = E91D41401EE4233F009BE67F /* web */; };
E91D41891EE4241F009BE67F /* NSURLProtocol+WKWebViewSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = E91D41881EE4241F009BE67F /* NSURLProtocol+WKWebViewSupport.m */; };
E91D41C01EE42AD6009BE67F /* AppProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = E91D41BF1EE42AD6009BE67F /* AppProtocol.swift */; };
E99BB9F01EE411AA00915720 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E99BB9EF1EE411AA00915720 /* AppDelegate.swift */; };
E99BB9F71EE411AA00915720 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E99BB9F61EE411AA00915720 /* Assets.xcassets */; };
E99BBA051EE411AA00915720 /* NabiTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E99BBA041EE411AA00915720 /* NabiTests.swift */; };
E99BBA101EE411AA00915720 /* NabiUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E99BBA0F1EE411AA00915720 /* NabiUITests.swift */; };
E99BBA3F1EE4135900915720 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBA3E1EE4135900915720 /* WebKit.framework */; };
E99BBB301EE420A600915720 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBAA31EE41FEA00915720 /* libReact.a */; };
E99BBB511EE420B100915720 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBAB71EE4200A00915720 /* libRCTActionSheet.a */; };
E99BBB521EE420B600915720 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBABE1EE4201E00915720 /* libRCTAnimation.a */; };
E99BBB531EE420BC00915720 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBAC61EE4202500915720 /* libRCTGeolocation.a */; };
E99BBB541EE420C200915720 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBACD1EE4202B00915720 /* libRCTImage.a */; };
E99BBB551EE420C700915720 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBAD61EE4203500915720 /* libRCTLinking.a */; };
E99BBB561EE420D400915720 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBADF1EE4203B00915720 /* libRCTNetwork.a */; };
E99BBB571EE420D800915720 /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBAE81EE4204700915720 /* libRCTSettings.a */; };
E99BBB581EE420DF00915720 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBAF11EE4204D00915720 /* libRCTText.a */; };
E99BBB591EE420E400915720 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBAF91EE4205000915720 /* libRCTVibration.a */; };
E99BBB5A1EE420E900915720 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBB001EE4205500915720 /* libRCTWebSocket.a */; };
E99BBB5B1EE420F400915720 /* libRCTWKWebView.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBB081EE4205900915720 /* libRCTWKWebView.a */; };
E99BBB5C1EE420FB00915720 /* libReactNativeNavigation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E99BBB1A1EE4207300915720 /* libReactNativeNavigation.a */; };
E99BBB7D1EE4227100915720 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99BBB7B1EE4227100915720 /* LaunchScreen.xib */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
E99BBA011EE411AA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BB9E41EE411AA00915720 /* Project object */;
proxyType = 1;
remoteGlobalIDString = E99BB9EB1EE411AA00915720;
remoteInfo = Nabi;
};
E99BBA0C1EE411AA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BB9E41EE411AA00915720 /* Project object */;
proxyType = 1;
remoteGlobalIDString = E99BB9EB1EE411AA00915720;
remoteInfo = Nabi;
};
E99BBAA21EE41FEA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBA971EE41FEA00915720 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192;
remoteInfo = React;
};
E99BBAA41EE41FEA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBA971EE41FEA00915720 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 2D2A28131D9B038B00D4039D;
remoteInfo = "React-tvOS";
};
E99BBAA61EE41FEA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBA971EE41FEA00915720 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3D3C059A1DE3340900C268FA;
remoteInfo = yoga;
};
E99BBAA81EE41FEA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBA971EE41FEA00915720 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3D3C06751DE3340C00C268FA;
remoteInfo = "yoga-tvOS";
};
E99BBAAA1EE41FEA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBA971EE41FEA00915720 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4;
remoteInfo = cxxreact;
};
E99BBAAC1EE41FEA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBA971EE41FEA00915720 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4;
remoteInfo = "cxxreact-tvOS";
};
E99BBAAE1EE41FEA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBA971EE41FEA00915720 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4;
remoteInfo = jschelpers;
};
E99BBAB01EE41FEA00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBA971EE41FEA00915720 /* React.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4;
remoteInfo = "jschelpers-tvOS";
};
E99BBAB61EE4200A00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAB21EE4200A00915720 /* RCTActionSheet.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RCTActionSheet;
};
E99BBABD1EE4201E00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAB81EE4201E00915720 /* RCTAnimation.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RCTAnimation;
};
E99BBABF1EE4201E00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAB81EE4201E00915720 /* RCTAnimation.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 2D2A28201D9B03D100D4039D;
remoteInfo = "RCTAnimation-tvOS";
};
E99BBAC51EE4202500915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAC11EE4202500915720 /* RCTGeolocation.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RCTGeolocation;
};
E99BBACC1EE4202B00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAC71EE4202B00915720 /* RCTImage.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 58B5115D1A9E6B3D00147676;
remoteInfo = RCTImage;
};
E99BBACE1EE4202B00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAC71EE4202B00915720 /* RCTImage.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 2D2A283A1D9B042B00D4039D;
remoteInfo = "RCTImage-tvOS";
};
E99BBAD51EE4203500915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAD01EE4203500915720 /* RCTLinking.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RCTLinking;
};
E99BBAD71EE4203500915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAD01EE4203500915720 /* RCTLinking.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 2D2A28471D9B043800D4039D;
remoteInfo = "RCTLinking-tvOS";
};
E99BBADE1EE4203B00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAD91EE4203B00915720 /* RCTNetwork.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 58B511DB1A9E6C8500147676;
remoteInfo = RCTNetwork;
};
E99BBAE01EE4203B00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAD91EE4203B00915720 /* RCTNetwork.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 2D2A28541D9B044C00D4039D;
remoteInfo = "RCTNetwork-tvOS";
};
E99BBAE71EE4204700915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAE21EE4204700915720 /* RCTSettings.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 134814201AA4EA6300B7C361;
remoteInfo = RCTSettings;
};
E99BBAE91EE4204700915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAE21EE4204700915720 /* RCTSettings.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 2D2A28611D9B046600D4039D;
remoteInfo = "RCTSettings-tvOS";
};
E99BBAF01EE4204D00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAEB1EE4204D00915720 /* RCTText.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 58B5119B1A9E6C1200147676;
remoteInfo = RCTText;
};
E99BBAF21EE4204D00915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAEB1EE4204D00915720 /* RCTText.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 2D2A287B1D9B048500D4039D;
remoteInfo = "RCTText-tvOS";
};
E99BBAF81EE4205000915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAF41EE4205000915720 /* RCTVibration.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 832C81801AAF6DEF007FA2F7;
remoteInfo = RCTVibration;
};
E99BBAFF1EE4205500915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAFA1EE4205400915720 /* RCTWebSocket.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 3C86DF461ADF2C930047B81A;
remoteInfo = RCTWebSocket;
};
E99BBB011EE4205500915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBAFA1EE4205400915720 /* RCTWebSocket.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 2D2A28881D9B049200D4039D;
remoteInfo = "RCTWebSocket-tvOS";
};
E99BBB071EE4205900915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBB031EE4205900915720 /* RCTWKWebView.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 0974579A1D2A440A000D9368;
remoteInfo = RCTWKWebView;
};
E99BBB191EE4207300915720 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = E99BBB151EE4207200915720 /* ReactNativeNavigation.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = D8AFADBD1BEE6F3F00A4592D;
remoteInfo = ReactNativeNavigation;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
E91D41401EE4233F009BE67F /* web */ = {isa = PBXFileReference; lastKnownFileType = folder; name = web; path = ../web; sourceTree = "<group>"; };
E91D41871EE4241F009BE67F /* NSURLProtocol+WKWebViewSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURLProtocol+WKWebViewSupport.h"; sourceTree = "<group>"; };
E91D41881EE4241F009BE67F /* NSURLProtocol+WKWebViewSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURLProtocol+WKWebViewSupport.m"; sourceTree = "<group>"; };
E91D41BF1EE42AD6009BE67F /* AppProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppProtocol.swift; sourceTree = "<group>"; };
E99BB9EC1EE411AA00915720 /* Nabi.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Nabi.app; sourceTree = BUILT_PRODUCTS_DIR; };
E99BB9EF1EE411AA00915720 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
E99BB9F61EE411AA00915720 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
E99BB9FB1EE411AA00915720 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
E99BBA001EE411AA00915720 /* NabiTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NabiTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
E99BBA041EE411AA00915720 /* NabiTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NabiTests.swift; sourceTree = "<group>"; };
E99BBA061EE411AA00915720 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
E99BBA0B1EE411AA00915720 /* NabiUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NabiUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
E99BBA0F1EE411AA00915720 /* NabiUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NabiUITests.swift; sourceTree = "<group>"; };
E99BBA111EE411AA00915720 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
E99BBA391EE4133900915720 /* Nabi-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Nabi-Bridging-Header.h"; sourceTree = "<group>"; };
E99BBA3E1EE4135900915720 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
E99BBA971EE41FEA00915720 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
E99BBAB21EE4200A00915720 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = "<group>"; };
E99BBAB81EE4201E00915720 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
E99BBAC11EE4202500915720 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = "<group>"; };
E99BBAC71EE4202B00915720 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = "<group>"; };
E99BBAD01EE4203500915720 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
E99BBAD91EE4203B00915720 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = "<group>"; };
E99BBAE21EE4204700915720 /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
E99BBAEB1EE4204D00915720 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
E99BBAF41EE4205000915720 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = "<group>"; };
E99BBAFA1EE4205400915720 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
E99BBB031EE4205900915720 /* RCTWKWebView.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWKWebView.xcodeproj; path = "../node_modules/react-native-wkwebview-reborn/ios/RCTWKWebView.xcodeproj"; sourceTree = "<group>"; };
E99BBB151EE4207200915720 /* ReactNativeNavigation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ReactNativeNavigation.xcodeproj; path = "../node_modules/react-native-navigation/ios/ReactNativeNavigation.xcodeproj"; sourceTree = "<group>"; };
E99BBB7C1EE4227100915720 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
E99BB9E91EE411AA00915720 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
E99BBA3F1EE4135900915720 /* WebKit.framework in Frameworks */,
E99BBB301EE420A600915720 /* libReact.a in Frameworks */,
E99BBB511EE420B100915720 /* libRCTActionSheet.a in Frameworks */,
E99BBB521EE420B600915720 /* libRCTAnimation.a in Frameworks */,
E99BBB531EE420BC00915720 /* libRCTGeolocation.a in Frameworks */,
E99BBB541EE420C200915720 /* libRCTImage.a in Frameworks */,
E99BBB551EE420C700915720 /* libRCTLinking.a in Frameworks */,
E99BBB561EE420D400915720 /* libRCTNetwork.a in Frameworks */,
E99BBB571EE420D800915720 /* libRCTSettings.a in Frameworks */,
E99BBB581EE420DF00915720 /* libRCTText.a in Frameworks */,
E99BBB591EE420E400915720 /* libRCTVibration.a in Frameworks */,
E99BBB5A1EE420E900915720 /* libRCTWebSocket.a in Frameworks */,
E99BBB5B1EE420F400915720 /* libRCTWKWebView.a in Frameworks */,
E99BBB5C1EE420FB00915720 /* libReactNativeNavigation.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
E99BB9FD1EE411AA00915720 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
E99BBA081EE411AA00915720 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
E91D41851EE4241F009BE67F /* Vendor */ = {
isa = PBXGroup;
children = (
E91D41861EE4241F009BE67F /* WKWebViewWithURLProtocol */,
);
path = Vendor;
sourceTree = "<group>";
};
E91D41861EE4241F009BE67F /* WKWebViewWithURLProtocol */ = {
isa = PBXGroup;
children = (
E91D41871EE4241F009BE67F /* NSURLProtocol+WKWebViewSupport.h */,
E91D41881EE4241F009BE67F /* NSURLProtocol+WKWebViewSupport.m */,
);
path = WKWebViewWithURLProtocol;
sourceTree = "<group>";
};
E99BB9E31EE411AA00915720 = {
isa = PBXGroup;
children = (
E99BB9EE1EE411AA00915720 /* Nabi */,
E91D41401EE4233F009BE67F /* web */,
E91D41851EE4241F009BE67F /* Vendor */,
E99BBA031EE411AA00915720 /* NabiTests */,
E99BBA0E1EE411AA00915720 /* NabiUITests */,
E99BBA961EE41FCC00915720 /* Libraries */,
E99BB9ED1EE411AA00915720 /* Products */,
E99BBA3D1EE4135900915720 /* Frameworks */,
);
sourceTree = "<group>";
};
E99BB9ED1EE411AA00915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BB9EC1EE411AA00915720 /* Nabi.app */,
E99BBA001EE411AA00915720 /* NabiTests.xctest */,
E99BBA0B1EE411AA00915720 /* NabiUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
E99BB9EE1EE411AA00915720 /* Nabi */ = {
isa = PBXGroup;
children = (
E99BB9EF1EE411AA00915720 /* AppDelegate.swift */,
E91D41BF1EE42AD6009BE67F /* AppProtocol.swift */,
E99BB9F61EE411AA00915720 /* Assets.xcassets */,
E99BBB7B1EE4227100915720 /* LaunchScreen.xib */,
E99BB9FB1EE411AA00915720 /* Info.plist */,
E99BBA391EE4133900915720 /* Nabi-Bridging-Header.h */,
);
path = Nabi;
sourceTree = "<group>";
};
E99BBA031EE411AA00915720 /* NabiTests */ = {
isa = PBXGroup;
children = (
E99BBA041EE411AA00915720 /* NabiTests.swift */,
E99BBA061EE411AA00915720 /* Info.plist */,
);
path = NabiTests;
sourceTree = "<group>";
};
E99BBA0E1EE411AA00915720 /* NabiUITests */ = {
isa = PBXGroup;
children = (
E99BBA0F1EE411AA00915720 /* NabiUITests.swift */,
E99BBA111EE411AA00915720 /* Info.plist */,
);
path = NabiUITests;
sourceTree = "<group>";
};
E99BBA3D1EE4135900915720 /* Frameworks */ = {
isa = PBXGroup;
children = (
E99BBA3E1EE4135900915720 /* WebKit.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
E99BBA961EE41FCC00915720 /* Libraries */ = {
isa = PBXGroup;
children = (
E99BBA971EE41FEA00915720 /* React.xcodeproj */,
E99BBAB21EE4200A00915720 /* RCTActionSheet.xcodeproj */,
E99BBAB81EE4201E00915720 /* RCTAnimation.xcodeproj */,
E99BBAC11EE4202500915720 /* RCTGeolocation.xcodeproj */,
E99BBAC71EE4202B00915720 /* RCTImage.xcodeproj */,
E99BBAD01EE4203500915720 /* RCTLinking.xcodeproj */,
E99BBAD91EE4203B00915720 /* RCTNetwork.xcodeproj */,
E99BBAE21EE4204700915720 /* RCTSettings.xcodeproj */,
E99BBAEB1EE4204D00915720 /* RCTText.xcodeproj */,
E99BBAF41EE4205000915720 /* RCTVibration.xcodeproj */,
E99BBAFA1EE4205400915720 /* RCTWebSocket.xcodeproj */,
E99BBB031EE4205900915720 /* RCTWKWebView.xcodeproj */,
E99BBB151EE4207200915720 /* ReactNativeNavigation.xcodeproj */,
);
name = Libraries;
sourceTree = "<group>";
};
E99BBA981EE41FEA00915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBAA31EE41FEA00915720 /* libReact.a */,
E99BBAA51EE41FEA00915720 /* libReact.a */,
E99BBAA71EE41FEA00915720 /* libyoga.a */,
E99BBAA91EE41FEA00915720 /* libyoga.a */,
E99BBAAB1EE41FEA00915720 /* libcxxreact.a */,
E99BBAAD1EE41FEA00915720 /* libcxxreact.a */,
E99BBAAF1EE41FEA00915720 /* libjschelpers.a */,
E99BBAB11EE41FEA00915720 /* libjschelpers.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBAB31EE4200A00915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBAB71EE4200A00915720 /* libRCTActionSheet.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBAB91EE4201E00915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBABE1EE4201E00915720 /* libRCTAnimation.a */,
E99BBAC01EE4201E00915720 /* libRCTAnimation.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBAC21EE4202500915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBAC61EE4202500915720 /* libRCTGeolocation.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBAC81EE4202B00915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBACD1EE4202B00915720 /* libRCTImage.a */,
E99BBACF1EE4202B00915720 /* libRCTImage-tvOS.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBAD11EE4203500915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBAD61EE4203500915720 /* libRCTLinking.a */,
E99BBAD81EE4203500915720 /* libRCTLinking-tvOS.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBADA1EE4203B00915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBADF1EE4203B00915720 /* libRCTNetwork.a */,
E99BBAE11EE4203B00915720 /* libRCTNetwork-tvOS.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBAE31EE4204700915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBAE81EE4204700915720 /* libRCTSettings.a */,
E99BBAEA1EE4204700915720 /* libRCTSettings-tvOS.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBAEC1EE4204D00915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBAF11EE4204D00915720 /* libRCTText.a */,
E99BBAF31EE4204D00915720 /* libRCTText-tvOS.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBAF51EE4205000915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBAF91EE4205000915720 /* libRCTVibration.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBAFB1EE4205400915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBB001EE4205500915720 /* libRCTWebSocket.a */,
E99BBB021EE4205500915720 /* libRCTWebSocket-tvOS.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBB041EE4205900915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBB081EE4205900915720 /* libRCTWKWebView.a */,
);
name = Products;
sourceTree = "<group>";
};
E99BBB161EE4207200915720 /* Products */ = {
isa = PBXGroup;
children = (
E99BBB1A1EE4207300915720 /* libReactNativeNavigation.a */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
E99BB9EB1EE411AA00915720 /* Nabi */ = {
isa = PBXNativeTarget;
buildConfigurationList = E99BBA141EE411AA00915720 /* Build configuration list for PBXNativeTarget "Nabi" */;
buildPhases = (
E99BB9E81EE411AA00915720 /* Sources */,
E99BB9E91EE411AA00915720 /* Frameworks */,
E99BB9EA1EE411AA00915720 /* Resources */,
E99BBB5D1EE4210E00915720 /* Bundle React Native code and images */,
);
buildRules = (
);
dependencies = (
);
name = Nabi;
productName = Nabi;
productReference = E99BB9EC1EE411AA00915720 /* Nabi.app */;
productType = "com.apple.product-type.application";
};
E99BB9FF1EE411AA00915720 /* NabiTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = E99BBA171EE411AA00915720 /* Build configuration list for PBXNativeTarget "NabiTests" */;
buildPhases = (
E99BB9FC1EE411AA00915720 /* Sources */,
E99BB9FD1EE411AA00915720 /* Frameworks */,
E99BB9FE1EE411AA00915720 /* Resources */,
);
buildRules = (
);
dependencies = (
E99BBA021EE411AA00915720 /* PBXTargetDependency */,
);
name = NabiTests;
productName = NabiTests;
productReference = E99BBA001EE411AA00915720 /* NabiTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
E99BBA0A1EE411AA00915720 /* NabiUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = E99BBA1A1EE411AA00915720 /* Build configuration list for PBXNativeTarget "NabiUITests" */;
buildPhases = (
E99BBA071EE411AA00915720 /* Sources */,
E99BBA081EE411AA00915720 /* Frameworks */,
E99BBA091EE411AA00915720 /* Resources */,
);
buildRules = (
);
dependencies = (
E99BBA0D1EE411AA00915720 /* PBXTargetDependency */,
);
name = NabiUITests;
productName = NabiUITests;
productReference = E99BBA0B1EE411AA00915720 /* NabiUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
E99BB9E41EE411AA00915720 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0830;
LastUpgradeCheck = 0830;
ORGANIZATIONNAME = "Peter Jihoon Kim";
TargetAttributes = {
E99BB9EB1EE411AA00915720 = {
CreatedOnToolsVersion = 8.3.2;
DevelopmentTeam = 3K6TZ9NCHM;
LastSwiftMigration = 0830;
ProvisioningStyle = Automatic;
};
E99BB9FF1EE411AA00915720 = {
CreatedOnToolsVersion = 8.3.2;
DevelopmentTeam = 3K6TZ9NCHM;
ProvisioningStyle = Automatic;
TestTargetID = E99BB9EB1EE411AA00915720;
};
E99BBA0A1EE411AA00915720 = {
CreatedOnToolsVersion = 8.3.2;
DevelopmentTeam = 3K6TZ9NCHM;
ProvisioningStyle = Automatic;
TestTargetID = E99BB9EB1EE411AA00915720;
};
};
};
buildConfigurationList = E99BB9E71EE411AA00915720 /* Build configuration list for PBXProject "Nabi" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = E99BB9E31EE411AA00915720;
productRefGroup = E99BB9ED1EE411AA00915720 /* Products */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = E99BBAB31EE4200A00915720 /* Products */;
ProjectRef = E99BBAB21EE4200A00915720 /* RCTActionSheet.xcodeproj */;
},
{
ProductGroup = E99BBAB91EE4201E00915720 /* Products */;
ProjectRef = E99BBAB81EE4201E00915720 /* RCTAnimation.xcodeproj */;
},
{
ProductGroup = E99BBAC21EE4202500915720 /* Products */;
ProjectRef = E99BBAC11EE4202500915720 /* RCTGeolocation.xcodeproj */;
},
{
ProductGroup = E99BBAC81EE4202B00915720 /* Products */;
ProjectRef = E99BBAC71EE4202B00915720 /* RCTImage.xcodeproj */;
},
{
ProductGroup = E99BBAD11EE4203500915720 /* Products */;
ProjectRef = E99BBAD01EE4203500915720 /* RCTLinking.xcodeproj */;
},
{
ProductGroup = E99BBADA1EE4203B00915720 /* Products */;
ProjectRef = E99BBAD91EE4203B00915720 /* RCTNetwork.xcodeproj */;
},
{
ProductGroup = E99BBAE31EE4204700915720 /* Products */;
ProjectRef = E99BBAE21EE4204700915720 /* RCTSettings.xcodeproj */;
},
{
ProductGroup = E99BBAEC1EE4204D00915720 /* Products */;
ProjectRef = E99BBAEB1EE4204D00915720 /* RCTText.xcodeproj */;
},
{
ProductGroup = E99BBAF51EE4205000915720 /* Products */;
ProjectRef = E99BBAF41EE4205000915720 /* RCTVibration.xcodeproj */;
},
{
ProductGroup = E99BBAFB1EE4205400915720 /* Products */;
ProjectRef = E99BBAFA1EE4205400915720 /* RCTWebSocket.xcodeproj */;
},
{
ProductGroup = E99BBB041EE4205900915720 /* Products */;
ProjectRef = E99BBB031EE4205900915720 /* RCTWKWebView.xcodeproj */;
},
{
ProductGroup = E99BBA981EE41FEA00915720 /* Products */;
ProjectRef = E99BBA971EE41FEA00915720 /* React.xcodeproj */;
},
{
ProductGroup = E99BBB161EE4207200915720 /* Products */;
ProjectRef = E99BBB151EE4207200915720 /* ReactNativeNavigation.xcodeproj */;
},
);
projectRoot = "";
targets = (
E99BB9EB1EE411AA00915720 /* Nabi */,
E99BB9FF1EE411AA00915720 /* NabiTests */,
E99BBA0A1EE411AA00915720 /* NabiUITests */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
E99BBAA31EE41FEA00915720 /* libReact.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libReact.a;
remoteRef = E99BBAA21EE41FEA00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAA51EE41FEA00915720 /* libReact.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libReact.a;
remoteRef = E99BBAA41EE41FEA00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAA71EE41FEA00915720 /* libyoga.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libyoga.a;
remoteRef = E99BBAA61EE41FEA00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAA91EE41FEA00915720 /* libyoga.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libyoga.a;
remoteRef = E99BBAA81EE41FEA00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAAB1EE41FEA00915720 /* libcxxreact.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libcxxreact.a;
remoteRef = E99BBAAA1EE41FEA00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAAD1EE41FEA00915720 /* libcxxreact.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libcxxreact.a;
remoteRef = E99BBAAC1EE41FEA00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAAF1EE41FEA00915720 /* libjschelpers.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libjschelpers.a;
remoteRef = E99BBAAE1EE41FEA00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAB11EE41FEA00915720 /* libjschelpers.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libjschelpers.a;
remoteRef = E99BBAB01EE41FEA00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAB71EE4200A00915720 /* libRCTActionSheet.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTActionSheet.a;
remoteRef = E99BBAB61EE4200A00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBABE1EE4201E00915720 /* libRCTAnimation.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTAnimation.a;
remoteRef = E99BBABD1EE4201E00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAC01EE4201E00915720 /* libRCTAnimation.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTAnimation.a;
remoteRef = E99BBABF1EE4201E00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAC61EE4202500915720 /* libRCTGeolocation.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTGeolocation.a;
remoteRef = E99BBAC51EE4202500915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBACD1EE4202B00915720 /* libRCTImage.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTImage.a;
remoteRef = E99BBACC1EE4202B00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBACF1EE4202B00915720 /* libRCTImage-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libRCTImage-tvOS.a";
remoteRef = E99BBACE1EE4202B00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAD61EE4203500915720 /* libRCTLinking.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTLinking.a;
remoteRef = E99BBAD51EE4203500915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAD81EE4203500915720 /* libRCTLinking-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libRCTLinking-tvOS.a";
remoteRef = E99BBAD71EE4203500915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBADF1EE4203B00915720 /* libRCTNetwork.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTNetwork.a;
remoteRef = E99BBADE1EE4203B00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAE11EE4203B00915720 /* libRCTNetwork-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libRCTNetwork-tvOS.a";
remoteRef = E99BBAE01EE4203B00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAE81EE4204700915720 /* libRCTSettings.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTSettings.a;
remoteRef = E99BBAE71EE4204700915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAEA1EE4204700915720 /* libRCTSettings-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libRCTSettings-tvOS.a";
remoteRef = E99BBAE91EE4204700915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAF11EE4204D00915720 /* libRCTText.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTText.a;
remoteRef = E99BBAF01EE4204D00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAF31EE4204D00915720 /* libRCTText-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libRCTText-tvOS.a";
remoteRef = E99BBAF21EE4204D00915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBAF91EE4205000915720 /* libRCTVibration.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTVibration.a;
remoteRef = E99BBAF81EE4205000915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBB001EE4205500915720 /* libRCTWebSocket.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTWebSocket.a;
remoteRef = E99BBAFF1EE4205500915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBB021EE4205500915720 /* libRCTWebSocket-tvOS.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = "libRCTWebSocket-tvOS.a";
remoteRef = E99BBB011EE4205500915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBB081EE4205900915720 /* libRCTWKWebView.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRCTWKWebView.a;
remoteRef = E99BBB071EE4205900915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
E99BBB1A1EE4207300915720 /* libReactNativeNavigation.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libReactNativeNavigation.a;
remoteRef = E99BBB191EE4207300915720 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
E99BB9EA1EE411AA00915720 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E91D41411EE4233F009BE67F /* web in Resources */,
E99BBB7D1EE4227100915720 /* LaunchScreen.xib in Resources */,
E99BB9F71EE411AA00915720 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
E99BB9FE1EE411AA00915720 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
E99BBA091EE411AA00915720 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
E99BBB5D1EE4210E00915720 /* Bundle React Native code and images */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 12;
files = (
);
inputPaths = (
);
name = "Bundle React Native code and images";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
E99BB9E81EE411AA00915720 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E91D41891EE4241F009BE67F /* NSURLProtocol+WKWebViewSupport.m in Sources */,
E99BB9F01EE411AA00915720 /* AppDelegate.swift in Sources */,
E91D41C01EE42AD6009BE67F /* AppProtocol.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
E99BB9FC1EE411AA00915720 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E99BBA051EE411AA00915720 /* NabiTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
E99BBA071EE411AA00915720 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
E99BBA101EE411AA00915720 /* NabiUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
E99BBA021EE411AA00915720 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = E99BB9EB1EE411AA00915720 /* Nabi */;
targetProxy = E99BBA011EE411AA00915720 /* PBXContainerItemProxy */;
};
E99BBA0D1EE411AA00915720 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = E99BB9EB1EE411AA00915720 /* Nabi */;
targetProxy = E99BBA0C1EE411AA00915720 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
E99BBB7B1EE4227100915720 /* LaunchScreen.xib */ = {
isa = PBXVariantGroup;
children = (
E99BBB7C1EE4227100915720 /* Base */,
);
name = LaunchScreen.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
E99BBA121EE411AA00915720 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
E99BBA131EE411AA00915720 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
E99BBA151EE411AA00915720 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
DEVELOPMENT_TEAM = 3K6TZ9NCHM;
INFOPLIST_FILE = Nabi/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = cloud.kim.Nabi;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Nabi/Nabi-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 3.0;
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../node_modules/react-native/React/** $(SRCROOT)/../node_modules/react-native-navigation/ios/**";
};
name = Debug;
};
E99BBA161EE411AA00915720 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
DEVELOPMENT_TEAM = 3K6TZ9NCHM;
INFOPLIST_FILE = Nabi/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
"-lc++",
);
PRODUCT_BUNDLE_IDENTIFIER = cloud.kim.Nabi;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Nabi/Nabi-Bridging-Header.h";
SWIFT_VERSION = 3.0;
USER_HEADER_SEARCH_PATHS = "$(inherited) $(SRCROOT)/../node_modules/react-native/React/** $(SRCROOT)/../node_modules/react-native-navigation/ios/**";
};
name = Release;
};
E99BBA181EE411AA00915720 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
DEVELOPMENT_TEAM = 3K6TZ9NCHM;
INFOPLIST_FILE = NabiTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = cloud.kim.NabiTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Nabi.app/Nabi";
};
name = Debug;
};
E99BBA191EE411AA00915720 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
DEVELOPMENT_TEAM = 3K6TZ9NCHM;
INFOPLIST_FILE = NabiTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = cloud.kim.NabiTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Nabi.app/Nabi";
};
name = Release;
};
E99BBA1B1EE411AA00915720 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
DEVELOPMENT_TEAM = 3K6TZ9NCHM;
INFOPLIST_FILE = NabiUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = cloud.kim.NabiUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
TEST_TARGET_NAME = Nabi;
};
name = Debug;
};
E99BBA1C1EE411AA00915720 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
DEVELOPMENT_TEAM = 3K6TZ9NCHM;
INFOPLIST_FILE = NabiUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = cloud.kim.NabiUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
TEST_TARGET_NAME = Nabi;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
E99BB9E71EE411AA00915720 /* Build configuration list for PBXProject "Nabi" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E99BBA121EE411AA00915720 /* Debug */,
E99BBA131EE411AA00915720 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
E99BBA141EE411AA00915720 /* Build configuration list for PBXNativeTarget "Nabi" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E99BBA151EE411AA00915720 /* Debug */,
E99BBA161EE411AA00915720 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
E99BBA171EE411AA00915720 /* Build configuration list for PBXNativeTarget "NabiTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E99BBA181EE411AA00915720 /* Debug */,
E99BBA191EE411AA00915720 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
E99BBA1A1EE411AA00915720 /* Build configuration list for PBXNativeTarget "NabiUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
E99BBA1B1EE411AA00915720 /* Debug */,
E99BBA1C1EE411AA00915720 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = E99BB9E41EE411AA00915720 /* Project object */;
}
================================================
FILE: ios/Nabi.xcodeproj/xcshareddata/xcschemes/Nabi.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0830"
version = "1.3">
<BuildAction
parallelizeBuildables = "NO"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "83CBBA2D1A601D0E00E9B192"
BuildableName = "libReact.a"
BlueprintName = "React"
ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E99BB9EB1EE411AA00915720"
BuildableName = "Nabi.app"
BlueprintName = "Nabi"
ReferencedContainer = "container:Nabi.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E99BB9FF1EE411AA00915720"
BuildableName = "NabiTests.xctest"
BlueprintName = "NabiTests"
ReferencedContainer = "container:Nabi.xcodeproj">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E99BBA0A1EE411AA00915720"
BuildableName = "NabiUITests.xctest"
BlueprintName = "NabiUITests"
ReferencedContainer = "container:Nabi.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E99BB9EB1EE411AA00915720"
BuildableName = "Nabi.app"
BlueprintName = "Nabi"
ReferencedContainer = "container:Nabi.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E99BB9EB1EE411AA00915720"
BuildableName = "Nabi.app"
BlueprintName = "Nabi"
ReferencedContainer = "container:Nabi.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "E99BB9EB1EE411AA00915720"
BuildableName = "Nabi.app"
BlueprintName = "Nabi"
ReferencedContainer = "container:Nabi.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
================================================
FILE: ios/NabiTests/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
================================================
FILE: ios/NabiTests/NabiTests.swift
================================================
//
// NabiTests.swift
// NabiTests
//
// Created by Peter Jihoon Kim on 6/4/17.
// Copyright © 2017 Peter Jihoon Kim. All rights reserved.
//
import XCTest
@testable import Nabi
class NabiTests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
}
================================================
FILE: ios/NabiUITests/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
================================================
FILE: ios/NabiUITests/NabiUITests.swift
================================================
//
// NabiUITests.swift
// NabiUITests
//
// Created by Peter Jihoon Kim on 6/4/17.
// Copyright © 2017 Peter Jihoon Kim. All rights reserved.
//
import XCTest
class NabiUITests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
continueAfterFailure = false
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
XCUIApplication().launch()
// In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// Use recording to get started writing UI tests.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
}
================================================
FILE: ios/vendor/WKWebViewWithURLProtocol/NSURLProtocol+WKWebViewSupport.h
================================================
//
// NSURLProtocol+WKWebViewSupport.h
// Pods
//
// Created by Dylan on 2016/11/14.
//
//
#import <Foundation/Foundation.h>
@interface NSURLProtocol (WKWebViewSupport)
+ (void)wk_registerScheme:(NSString *)scheme;
+ (void)wk_unregisterScheme:(NSString *)scheme;
@end
================================================
FILE: ios/vendor/WKWebViewWithURLProtocol/NSURLProtocol+WKWebViewSupport.m
================================================
//
// NSURLProtocol+WKWebViewSupport.m
// Pods
//
// Created by Dylan on 2016/11/14.
//
//
#import "NSURLProtocol+WKWebViewSupport.h"
#import <WebKit/WebKit.h>
Class WK_ContextControllerClass() {
static Class cls;
if (!cls) {
cls = [[[WKWebView new] valueForKey:@"browsingContextController"] class];
}
return cls;
}
SEL WK_RegisterSchemeSelector() {
return NSSelectorFromString(@"registerSchemeForCustomProtocol:");
}
SEL WK_UnregisterSchemeSelector() {
return NSSelectorFromString(@"unregisterSchemeForCustomProtocol:");
}
@implementation NSURLProtocol (WKWebViewSupport)
+ (void)wk_registerScheme:(NSString *)scheme {
Class cls = WK_ContextControllerClass();
SEL sel = WK_RegisterSchemeSelector();
if ([(id)cls respondsToSelector:sel]) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[(id)cls performSelector:sel withObject:scheme];
#pragma clang diagnostic pop
}
}
+ (void)wk_unregisterScheme:(NSString *)scheme {
Class cls = WK_ContextControllerClass();
SEL sel = WK_UnregisterSchemeSelector();
if ([(id)cls respondsToSelector:sel]) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[(id)cls performSelector:sel withObject:scheme];
#pragma clang diagnostic pop
}
}
@end
================================================
FILE: package.json
================================================
{
"name": "MetaMaskMobile",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"run-ios": "node node_modules/react-native/local-cli/cli.js run-ios",
"run-android": "node node_modules/react-native/local-cli/cli.js run-android",
"test": "jest",
"tsc": "tsc --noEmit --pretty",
"fmt": "prettier --no-semi --single-quote --jsx-single-quote --space-before-function-paren --write '*.js' 'src/**/*.{j,t}s{,x}'",
"lint": "tslint -p . --type-check 'src/**/*.ts{,x}'",
"watch": "nodemon -e ts,tsx,js,json --watch src/ --exec 'yarn lint && yarn tsc && yarn fmt'"
},
"dependencies": {
"node-libs-react-native": "petejkim/node-libs-react-native#8b5a3a9700a08f6a1d8f58819479bf4d4d589970",
"react": "16.0.0-alpha.12",
"react-native": "0.46.0",
"react-native-navigation": "^1.1.134",
"react-native-wkwebview-reborn": "petejkim/react-native-wkwebview#a38c83174bdf6a0b0edc6f3aa7acb8885e7c2d96"
},
"devDependencies": {
"@types/jest": "^20.0.2",
"@types/node": "^8.0.9",
"@types/react": "^15.0.35",
"@types/react-native": "^0.44.18",
"babel-jest": "20.0.3",
"babel-preset-react-native": "2.0.0",
"jest": "20.0.4",
"nodemon": "^1.11.0",
"prettier-miscellaneous": "^1.5.2-fix",
"react-native-typescript-transformer": "1.1.2",
"react-test-renderer": "16.0.0-alpha.12",
"ts-jest": "^20.0.6",
"tslint": "^5.4.3",
"tslint-config-standard": "^6.0.1",
"tslint-react": "^3.0.0",
"typescript": "~2.4.1"
},
"jest": {
"preset": "react-native",
"transform": {
"^.+\\.jsx?$": "<rootDir>/node_modules/babel-jest",
"^.+\\.tsx?$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
},
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"json"
]
}
}
================================================
FILE: rn-cli.config.js
================================================
const extraNodeModules = require('node-libs-react-native')
module.exports = {
extraNodeModules,
getSourceExts () {
return ['ts', 'tsx']
},
getTransformModulePath () {
return require.resolve('react-native-typescript-transformer')
}
}
================================================
FILE: src/@types/react-native-navigation.d.ts
================================================
declare module 'react-native-navigation' {
import { ComponentClass } from 'react'
import { ComponentProvider } from 'react-native'
export interface NavigatorEvent {
type: string
id: string
}
export class Navigator {}
export type NavigatorEventHandler = (NavigatorEvent) => void
interface DismissModalParams {
animationType?: 'slide-down' | 'none' | 'slide-down'
}
interface ShowModalParams {
screen: string
title?: string
passProps?: any
navigatorStyle?: any
navigatorButtons?: any
animationType?: 'slide-up' | 'none' | 'slide-up'
}
interface StartSingleScreenAppParams {
screen: {
screen: string
title?: string
navigatorStyle?: any
navigatorButtons?: any
}
drawer?: {
left?: {
screen: string
passProps?: any
}
right?: {
screen: string
passProps?: any
}
disableOpenGesture?: boolean
}
passProps?: any
animationType?: 'slide-down' | 'none' | 'slide-down' | 'fade'
}
export namespace Navigation {
function registerComponent (
screenID: string,
generator: ComponentProvider,
store?: any,
Provider?: ComponentClass<any>
)
function dismissModal (params: DismissModalParams = {})
function showModal (params: ShowModalParams = {})
function setOnNavigatorEvent (callback: NavigatorEventHandler)
function startSingleScreenApp (params: StartSingleScreenAppParams)
}
}
================================================
FILE: src/@types/react-native-wkwebview-reborn.d.ts
================================================
declare module 'react-native-wkwebview-reborn' {
import { Component } from 'react'
import {
EdgeInsetsPropType,
NativeSyntheticEvent,
ViewStyleProp
} from 'react-native'
export interface WKWebViewMessage {
body: any
name: string
target: number
}
export interface WKWebViewBaseEvent {
url: string
loading: boolean
title: string
canGoBack: boolean
canGoForward: boolean
}
export interface WKWebViewProps {
html?: string
url?: string
source?:
| {
uri: string
method?: string
headers?: { [string]: string }
body?: string
}
| {
html: string
baseUrl: string
}
| number
renderError?: (errorDomain, errorCode, errorDesc) => void
renderLoading?: () => void
onLoad?: (event: NativeSyntheticEvent<any>) => void
onLoadEnd?: (event: NativeSyntheticEvent<WKWebViewBaseEvent>) => void
onLoadStart?: (event: NativeSyntheticEvent<WKWebViewBaseEvent>) => void
onError?: (event: NativeSyntheticEvent<any>) => void
onProgress?: (progress: number) => void
onMessage?: (msg: WKWebViewMessage) => void
bounces?: boolean
scrollEnabled?: boolean
allowsBackForwardNavigationGestures?: boolean
automaticallyAdjustContentInsets?: boolean
contentInset?: EdgeInsetsPropType
onNavigationStateChange?: (event: any) => void
scalesPageToFit?: boolean
startInLoadingState?: boolean
style?: ViewStyleProp
injectedJavaScript?: string
runJavaScriptAtDocumentStart?: string
runJavaScriptAtDocumentEnd?: string
runJavaScriptInMainFrameOnly?: boolean
onShouldStartLoadWithRequest?: (event: any) => boolean
sendCookies?: boolean
openNewWindowInWebView?: boolean
hideKeyboardAccessoryView?: boolean
customUserAgent?: string
userAgent?: string
pagingEnabled?: boolean
}
class WKWebView extends Component<WKWebViewProps> {
goBack (): void
goForward (): void
reload (): void
stopLoading (): void
evaluateJavaScript (js: string): any
getWebViewHandle (): any
}
export default WKWebView
}
================================================
FILE: src/components/BrowserWindow.tsx
================================================
import React, { Component } from 'react'
import {
Image,
StatusBar,
StyleSheet,
TouchableOpacity,
View
} from 'react-native'
import WKWebView, { WKWebViewMessage } from 'react-native-wkwebview-reborn'
import LocationBar from './LocationBar'
import PageLoadProgress from './PageLoadProgress'
import injection from '../injections/contentScript'
import { sharedIPC as ipc } from '../ipc'
import {
TOOLBAR_HEIGHT,
TOOLBAR_ICON_SIZE,
TOOLBAR_PADDING,
STATUS_BAR_HEIGHT
} from '../constants'
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'stretch'
},
navigateButton: {
width: 24,
height: 24,
marginRight: TOOLBAR_PADDING
},
metaMaskButton: {
width: TOOLBAR_ICON_SIZE,
height: TOOLBAR_ICON_SIZE
},
disabledButton: {
opacity: 0.25
},
toolbar: {
paddingTop: STATUS_BAR_HEIGHT,
paddingLeft: TOOLBAR_PADDING,
paddingRight: TOOLBAR_PADDING,
height: TOOLBAR_HEIGHT + STATUS_BAR_HEIGHT,
backgroundColor: '#f2f2f2',
borderBottomWidth: StyleSheet.hairlineWidth,
borderBottomColor: '#b2b0b2',
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'flex-end'
},
webview: {
flex: 1
}
})
const injectedJavaScript = `
(${injection.toString()})(window, document)
`
export interface Props {
onPressMetaMaskButton: () => void
}
interface State {
sourceUrl: string
showProgress: boolean
progress: number
canGoBack: boolean
canGoForward: boolean
}
export default class BrowserWindow extends Component<Props, State> {
state = {
sourceUrl: 'about:blank',
showProgress: false,
progress: 1,
canGoBack: false,
canGoForward: false
}
refs: {
webview: WKWebView
}
connections: { [id: string]: boolean } = {}
componentWillUnmount () {
Object.keys(this.connections).forEach(function (id) {
ipc.disconnect(id)
})
}
handlePressMetaMaskButton = (): void => {
const { onPressMetaMaskButton } = this.props
if (onPressMetaMaskButton) {
onPressMetaMaskButton()
}
}
handlePressBackButton = (): void => {
this.refs.webview.goBack()
}
handlePressForwardButton = (): void => {
this.refs.webview.goForward()
}
handleNavigate = (urlString: string): void => {
const { sourceUrl } = this.state
if (sourceUrl === urlString) {
this.refs.webview.reload()
return
}
this.setState({ sourceUrl: urlString })
}
handleProgress = (progress: number): void => {
this.setState({ progress })
}
handleLoadStart = ({ nativeEvent: event }): void => {
const url = event.url
const changes = {
sourceUrl: url,
canGoBack: event.canGoBack,
canGoForward: event.canGoForward
}
if (!url.startsWith('about:')) {
Object.assign(changes, {
showProgress: true,
progress: 0
})
}
this.setState(changes)
}
handleLoadEnd = ({ nativeEvent: event }): void => {
this.setState({
canGoBack: event.canGoBack,
canGoForward: event.canGoForward,
showProgress: false,
progress: 1
})
}
handleMessage = (msg: WKWebViewMessage): void => {
console.log('browser window message received', msg)
const body = msg.body
switch (body.action) {
case 'connect':
ipc.connect(body.name, body.id, body.url, this.refs.webview)
this.connections[body.id] = true
return
case 'disconnect':
ipc.disconnect(body.id)
delete this.connections[body.id]
return
case 'message':
ipc.sendToBackground(body.id, body.data)
}
}
render () {
const {
sourceUrl,
showProgress,
progress,
canGoBack,
canGoForward
} = this.state
return (
<View style={styles.container}>
<StatusBar backgroundColor='#efefef' barStyle='default' />
<View style={styles.toolbar}>
{canGoBack
? <TouchableOpacity onPress={this.handlePressBackButton}>
<Image
style={styles.navigateButton}
source={require('../assets/toolbar-back.png')}
/>
</TouchableOpacity>
: <Image
style={[styles.navigateButton, styles.disabledButton]}
source={require('../assets/toolbar-back.png')}
/>}
{canGoForward
? <TouchableOpacity onPress={this.handlePressForwardButton}>
<Image
style={styles.navigateButton}
source={require('../assets/toolbar-forward.png')}
/>
</TouchableOpacity>
: <Image
style={[styles.navigateButton, styles.disabledButton]}
source={require('../assets/toolbar-forward.png')}
/>}
<LocationBar
currentUrl={sourceUrl}
onNavigate={this.handleNavigate}
/>
<TouchableOpacity onPress={this.handlePressMetaMaskButton}>
<Image
style={styles.metaMaskButton}
source={require('../assets/metamask-icon.png')}
/>
</TouchableOpacity>
</View>
<PageLoadProgress progress={progress} hidden={!showProgress} />
<WKWebView
ref='webview'
style={styles.webview}
source={{ uri: sourceUrl }}
onProgress={this.handleProgress}
onLoadStart={this.handleLoadStart}
onLoadEnd={this.handleLoadEnd}
onMessage={this.handleMessage}
runJavaScriptAtDocumentStart={injectedJavaScript}
runJavaScriptInMainFrameOnly={false}
/>
</View>
)
}
}
================================================
FILE: src/components/LocationBar.tsx
================================================
import React, { Component } from 'react'
import { StyleSheet, TextInput, View } from 'react-native'
import { normalizeUrl } from '../util'
import {
TOOLBAR_HEIGHT,
TOOLBAR_PADDING,
COLOR_HIGHLIGHT_BLUE
} from '../constants'
const styles = StyleSheet.create({
container: {
flex: 1,
height: TOOLBAR_HEIGHT - TOOLBAR_PADDING * 2,
backgroundColor: 'white',
marginRight: TOOLBAR_PADDING,
borderWidth: StyleSheet.hairlineWidth,
borderColor: '#b2b0b2',
padding: StyleSheet.hairlineWidth,
borderRadius: 4,
justifyContent: 'center'
},
containerFocused: {
borderColor: COLOR_HIGHLIGHT_BLUE,
borderWidth: 1,
padding: 0
},
textInput: {
width: '100%',
height: '100%',
paddingLeft: TOOLBAR_PADDING,
fontSize: 15
}
})
export interface Props {
currentUrl: string
onNavigate?: (url: string) => void
}
interface State {
focused: boolean
urlString: string
}
export default class LocationBar extends Component<Props, State> {
state = {
focused: false,
urlString: this.props.currentUrl
}
componentWillReceiveProps (newProps: Props) {
const { currentUrl } = this.props
const { currentUrl: newCurrentLocation } = newProps
const { focused } = this.state
if (currentUrl !== newCurrentLocation && !focused) {
this.setState({ urlString: newCurrentLocation })
}
}
handleFocus = (): void => {
this.setState({
focused: true
})
}
handleBlur = (): void => {
this.setState({
focused: false
})
}
handleChangeText = (text: string): void => {
this.setState({ urlString: text })
}
handleSubmitEditing = (): void => {
const { onNavigate } = this.props
const { urlString } = this.state
if (typeof onNavigate === 'function') {
onNavigate(normalizeUrl(urlString))
}
}
render () {
const { focused, urlString } = this.state
return (
<View
style={
focused
? [styles.container, styles.containerFocused]
: styles.container
}
>
<TextInput
style={styles.textInput}
onFocus={this.handleFocus}
onBlur={this.handleBlur}
onChangeText={this.handleChangeText}
onSubmitEditing={this.handleSubmitEditing}
autoCapitalize='none'
autoCorrect={false}
clearButtonMode='while-editing'
keyboardType='url'
returnKeyType='go'
selectTextOnFocus
value={urlString}
/>
</View>
)
}
}
================================================
FILE: src/components/MetaMaskBackground.tsx
================================================
import React, { Component } from 'react'
import { View } from 'react-native'
import WKWebView, { WKWebViewMessage } from 'react-native-wkwebview-reborn'
import injection from '../injections/metaMaskBackground'
import { sharedIPC as ipc } from '../ipc'
const manifest = require('../../web/metamask/manifest.json')
const injectedJavaScript = `
(${injection.toString()})(window, document, ${JSON.stringify(manifest)})
`
export interface Props {
onOpenMetaMask: () => void
}
export default class MetaMaskBackground extends Component<Props> {
refs: {
webview: WKWebView
}
componentDidMount () {
ipc.setBackground(this.refs.webview)
}
handleMessage = (msg: WKWebViewMessage): void => {
console.log('background message received', msg)
const { body } = msg
const action: string = body.action
switch (action) {
case 'message':
ipc.sendToClient(body.id, body.data)
return
case 'metamask':
const { onOpenMetaMask } = this.props
if (onOpenMetaMask) {
onOpenMetaMask()
}
}
}
render () {
return (
<View>
<WKWebView
ref='webview'
source={{ uri: 'app://metamask/background.html' }}
runJavaScriptAtDocumentEnd={injectedJavaScript}
runJavaScriptInMainFrameOnly
onMessage={this.handleMessage}
/>
</View>
)
}
}
================================================
FILE: src/components/PageLoadProgress.tsx
================================================
import React, { Component } from 'react'
import { Animated, StyleSheet, View } from 'react-native'
import { COLOR_HIGHLIGHT_BLUE } from '../constants'
const styles = StyleSheet.create({
container: {
marginTop: -2,
zIndex: 1
},
bar: {
height: 2,
backgroundColor: COLOR_HIGHLIGHT_BLUE,
shadowColor: COLOR_HIGHLIGHT_BLUE
}
})
export interface Props {
progress: number
hidden: boolean
}
interface State {
progressAnimated: Animated.Value
opacityAnimated: Animated.Value
}
export default class PageLoadProgress extends Component<Props, State> {
state = {
progressAnimated: new Animated.Value(0),
opacityAnimated: new Animated.Value(0)
}
componentWillReceiveProps (newProps: Props) {
const { progress, hidden } = this.props
const { progress: newProgress, hidden: newHidden } = newProps
if ((!hidden || progress !== 1) && (newHidden || newProgress === 1)) {
Animated.timing(this.state.progressAnimated, {
toValue: 1,
duration: 500
}).start()
Animated.timing(this.state.opacityAnimated, {
toValue: 0,
delay: 500,
duration: 200
}).start()
return
}
if (newProgress !== progress) {
if (newProgress <= 0.1) {
this.state.progressAnimated.setValue(0)
this.state.opacityAnimated.setValue(1)
}
Animated.timing(this.state.progressAnimated, {
toValue: newProgress,
duration: 500
}).start()
}
}
render () {
const { progressAnimated, opacityAnimated } = this.state
return (
<View style={styles.container}>
<Animated.View
style={[
styles.bar,
{
width: progressAnimated.interpolate({
inputRange: [0, 1],
outputRange: ['0%', '100%']
}),
opacity: opacityAnimated
}
]}
/>
</View>
)
}
}
================================================
FILE: src/constants.ts
================================================
import { Platform } from 'react-native'
export const TOOLBAR_HEIGHT = Platform.OS === 'ios' ? 44 : 56
export const TOOLBAR_ICON_SIZE = Platform.OS === 'ios' ? 32 : 24
export const TOOLBAR_PADDING = Platform.OS === 'ios' ? 8 : 16
export const STATUS_BAR_HEIGHT = Platform.OS === 'ios' ? 20 : 0
export const COLOR_HIGHLIGHT_BLUE = '#3378f6'
================================================
FILE: src/index.ts
================================================
import { Navigation } from 'react-native-navigation'
import { registerScreens } from './screens'
export const startApp = function (): void {
registerScreens()
Navigation.startSingleScreenApp({
screen: {
screen: 'nabi.RootScreen',
navigatorStyle: {
navBarHidden: true
}
}
})
}
================================================
FILE: src/injections/contentScript.ts
================================================
import { PortListener, Port, MessageEvent } from './types'
declare global {
interface Window {
webkit: {
messageHandlers: {
reactNative: {
postMessage: (message: any) => void
}
}
}
browser: any
}
}
export default function injectContentScript (
window: Window,
document: Document
) {
const uint8ArrayToHex = function (arr) {
const hex = '0123456789abcdef'
return Array.from(arr)
.map((v: number) => hex[Math.floor(v / 16)] + hex[v % 16])
.join('')
}
const makePort = function (name, id): Port {
return {
name,
id,
onDisconnect: {
addListener (_listener: PortListener): void {}
},
onMessage: {
addListener (listener: PortListener): void {
window.addEventListener(
'port:message',
function (evt: MessageEvent) {
if (evt.detail.id === id) {
listener(evt.detail.data)
}
},
false
)
}
},
postMessage (message: any): void {
window.webkit.messageHandlers.reactNative.postMessage({
action: 'message',
data: message,
id
})
}
}
}
window.browser = {
extension: {
getURL (path: string) {
return `about://metamask/${path}`
}
},
runtime: {
connect ({ name }: { name: string }): Port {
const id = uint8ArrayToHex(
window.crypto.getRandomValues(new Uint8Array(8))
)
window.setTimeout(function () {
window.webkit.messageHandlers.reactNative.postMessage({
action: 'connect',
url: location.href,
name,
id
})
window.addEventListener(
'pagehide',
function () {
window.webkit.messageHandlers.reactNative.postMessage({
action: 'disconnect',
id
})
},
false
)
}, 1)
return makePort(name, id)
}
}
}
const script = document.createElement('script')
script.src = 'about://metamask/scripts/contentscript.js'
script.onload = function () {
if (this && this.parentNode) {
this.parentNode.removeChild(this)
}
}
const el = document.head || document.body || document.documentElement
if (el) {
el.appendChild(script)
}
}
================================================
FILE: src/injections/metaMaskBackground.ts
================================================
import { PortListener, Port, ConnectEvent } from './types'
export default function bootstrapMetaMaskBackground (
window: Window,
document: Document,
manifest: {}
) {
const makePort = function (name: string, id: string, url: string): Port {
let disconnectListeners: PortListener[] = []
let messageListeners: PortListener[] = []
const messageHandler = function (evt: CustomEvent): void {
if (evt.detail.id === id) {
console.log('message received', evt)
messageListeners.forEach(function (listener) {
listener(evt.detail.data)
})
}
}
const disconnectHandler = function (evt: CustomEvent): void {
if (evt.detail.id === id) {
console.log('disconnect', evt.detail)
disconnectListeners.forEach(function (listener) {
listener(evt.detail.data)
})
window.removeEventListener('port:disconnect', disconnectHandler, false)
window.removeEventListener('port:message', messageHandler, false)
disconnectListeners = []
messageListeners = []
}
}
window.addEventListener('port:disconnect', disconnectHandler, false)
window.addEventListener('port:message', messageHandler, false)
return {
name,
sender: { url },
onDisconnect: {
addListener (listener: PortListener): void {
disconnectListeners.push(listener)
}
},
onMessage: {
addListener (listener: PortListener): void {
messageListeners.push(listener)
}
},
postMessage (message: any): void {
console.log(`sending message back to ${name} ${id}: `, message)
window.webkit.messageHandlers.reactNative.postMessage({
action: 'message',
data: message,
id
})
}
}
}
window.browser = {
browserAction: {
setBadgeText ({ text }: { text: string }): void {
console.log('setBadgeText:', text)
},
setBadgeBackgroundColor ({ color }: { color: string }): void {
console.log('setBadgeBackgroundColor:', color)
}
},
runtime: {
onConnect: {
addListener (listener: PortListener): void {
window.addEventListener(
'port:connect',
function (evt: ConnectEvent) {
console.log(
'connecting to port: ',
evt.detail.name,
evt.detail.id,
evt.detail.url
)
listener(makePort(evt.detail.name, evt.detail.id, evt.detail.url))
},
false
)
}
},
onInstalled: {
addListener (_listener: PortListener): void {}
},
getManifest (): {} {
return manifest
},
reload () {}
},
tabs: {
create ({ url: _url }) {}
},
windows: {
create ({ url }, cb) {
if (url === 'notification.html') {
window.webkit.messageHandlers.reactNative.postMessage({
action: 'metamask'
})
if (typeof cb === 'function') cb()
}
},
update () {},
remove () {},
getAll (_, cb) {
cb([])
}
}
}
const script = document.createElement('script')
script.src = '/scripts/background.js'
script.onload = function () {
if (this && this.parentNode) {
this.parentNode.removeChild(this)
}
}
if (document.body) {
document.body.appendChild(script)
}
}
================================================
FILE: src/injections/metaMaskPopup.ts
================================================
import { PortListener, Port, MessageEvent } from './types'
const bootstrapMetaMaskPopup = function (
window: Window,
document: Document,
manifest: {}
) {
const uint8ArrayToHex = function (arr) {
const hex = '0123456789abcdef'
return Array.from(arr)
.map((v: number) => hex[Math.floor(v / 16)] + hex[v % 16])
.join('')
}
const makePort = function (name, id): Port {
return {
name,
id,
onDisconnect: {
addListener (_listener: PortListener): void {}
},
onMessage: {
addListener (listener: PortListener): void {
window.addEventListener(
'port:message',
function (evt: MessageEvent) {
if (evt.detail.id === id) {
listener(evt.detail.data)
}
},
false
)
}
},
postMessage (message: any): void {
window.webkit.messageHandlers.reactNative.postMessage({
action: 'message',
data: message,
id
})
}
}
}
window.browser = {
runtime: {
connect ({ name }: { name: string }): Port {
const id = uint8ArrayToHex(
window.crypto.getRandomValues(new Uint8Array(8))
)
window.setTimeout(function () {
window.webkit.messageHandlers.reactNative.postMessage({
action: 'connect',
url: location.href,
name,
id
})
window.addEventListener(
'pagehide',
function () {
window.webkit.messageHandlers.reactNative.postMessage({
action: 'disconnect',
id
})
},
false
)
}, 1)
return makePort(name, id)
},
getManifest (): {} {
return manifest
}
}
}
const script = document.createElement('script')
script.src = '/scripts/popup.js'
script.onload = function () {
if (this && this.parentNode) {
this.parentNode.removeChild(this)
}
}
if (document.body) {
document.body.appendChild(script)
}
}
export default bootstrapMetaMaskPopup
================================================
FILE: src/injections/types.ts
================================================
export type PortListener = (data: any) => void
export interface Port {
id?: string
name: string
sender?: {
url: string
}
onDisconnect: {
addListener: (listener: PortListener) => void
}
onMessage: {
addListener: (listener: PortListener) => void
}
postMessage: (message: any) => void
}
export interface ConnectEvent extends Event {
detail: {
id: string
name: string
url: string
}
}
export interface MessageEvent extends Event {
detail: {
id: string
data: any
}
}
================================================
FILE: src/ipc.ts
================================================
import WKWebView from 'react-native-wkwebview-reborn'
class IPC {
private background?: WKWebView
private clients: { [id: string]: WKWebView } = {}
setBackground (background: WKWebView): void {
this.background = background
}
connect (name: string, id: string, url: string, client: WKWebView): void {
console.log('connected:', name, id)
this.clients[id] = client
console.log(name)
console.log(id)
console.log(url)
const detail = JSON.stringify({
name,
id,
url
})
if (!this.background) throw new Error('ipc: background needs to be set')
this.background.evaluateJavaScript(`
window.dispatchEvent(new CustomEvent('port:connect', { detail: ${detail} }))
`)
}
disconnect (id: string): void {
console.log('disconnected:', id)
if (!this.clients[id]) return
delete this.clients[id]
const detail = JSON.stringify({ id })
if (!this.background) throw new Error('ipc: background needs to be set')
this.background.evaluateJavaScript(`
window.dispatchEvent(new CustomEvent('port:disconnect', { detail: ${detail} }))
`)
}
sendToBackground (id: string, data: any): void {
console.log(`${id} sending message to background:`, data)
const detail = JSON.stringify({
id,
data
})
if (!this.background) throw new Error('ipc: background needs to be set')
this.background.evaluateJavaScript(`
window.dispatchEvent(new CustomEvent('port:message', { detail: ${detail} }))
`)
}
sendToClient (id: string, data: any): void {
console.log(`background sending message to ${id}:`, data)
const client = this.clients[id]
if (!client) return
const detail = JSON.stringify({
id,
data
})
client.evaluateJavaScript(`
window.dispatchEvent(new CustomEvent('port:message', { detail: ${detail} }))
`)
}
}
export default IPC
export const sharedIPC = new IPC()
================================================
FILE: src/screens/MetaMaskScreen.tsx
================================================
import React, { Component } from 'react'
import { StyleSheet, View } from 'react-native'
import { Navigation } from 'react-native-navigation'
import WKWebView, { WKWebViewMessage } from 'react-native-wkwebview-reborn'
import injection from '../injections/metaMaskPopup'
import { sharedIPC as ipc } from '../ipc'
const manifest = require('../../web/metamask/manifest.json')
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#f7f7f7',
justifyContent: 'center',
alignItems: 'stretch'
},
webview: {
flex: 1,
backgroundColor: '#f7f7f7'
}
})
const injectedJavaScript = `
(${injection.toString()})(window, document, ${JSON.stringify(manifest)})
`
export interface Props {
navigator: any
}
export default class MetaMaskScreen extends Component<Props> {
static navigatorButtons = {
rightButtons: [
{
title: 'Close',
id: 'close'
}
]
}
refs: {
webview: WKWebView
}
connections: { [id: string]: boolean } = {}
componentDidMount () {
const { navigator } = this.props
navigator.setOnNavigatorEvent(this.handleNavigatorEvent)
}
componentWillUnmount () {
Object.keys(this.connections).forEach(function (id) {
ipc.disconnect(id)
})
}
handleNavigatorEvent = event => {
if (event.type === 'NavBarButtonPress' && event.id === 'close') {
Navigation.dismissModal({})
}
}
handleMessage = (msg: WKWebViewMessage): void => {
console.log('popup message received', msg)
const body = msg.body
switch (body.action) {
case 'connect':
ipc.connect(body.name, body.id, body.url, this.refs.webview)
this.connections[body.id] = true
return
case 'disconnect':
ipc.disconnect(body.id)
delete this.connections[body.id]
return
case 'message':
ipc.sendToBackground(body.id, body.data)
}
}
render () {
return (
<View style={styles.container}>
<WKWebView
ref='webview'
style={styles.webview}
source={{ uri: 'app://metamask/popup.html' }}
runJavaScriptAtDocumentEnd={injectedJavaScript}
runJavaScriptInMainFrameOnly
onMessage={this.handleMessage}
/>
</View>
)
}
}
================================================
FILE: src/screens/RootScreen.tsx
================================================
import React, { Component } from 'react'
import { StyleSheet, View } from 'react-native'
import { Navigation } from 'react-native-navigation'
import BrowserWindow from '../components/BrowserWindow'
import MetaMaskBackground from '../components/MetaMaskBackground'
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
justifyContent: 'flex-start',
alignItems: 'stretch'
}
})
export default class RootScreen extends Component {
openMetaMask (): void {
Navigation.showModal({
screen: 'nabi.MetaMaskScreen'
})
}
render () {
return (
<View style={styles.container}>
<MetaMaskBackground onOpenMetaMask={this.openMetaMask} />
<BrowserWindow onPressMetaMaskButton={this.openMetaMask} />
</View>
)
}
}
================================================
FILE: src/screens/index.ts
================================================
import { Navigation } from 'react-native-navigation'
import RootScreen from './RootScreen'
import MetaMaskScreen from './MetaMaskScreen'
export const registerScreens = function (): void {
Navigation.registerComponent('nabi.RootScreen', () => RootScreen)
Navigation.registerComponent('nabi.MetaMaskScreen', () => MetaMaskScreen)
}
================================================
FILE: src/util.test.ts
================================================
import { normalizeUrl } from './util'
describe('normalizeUrl', () => {
it('can normalize urls that are missing protocols', () => {
expect(normalizeUrl('example.com')).toEqual('http://example.com/')
expect(normalizeUrl('example.com/foo/bar')).toEqual(
'http://example.com/foo/bar'
)
expect(normalizeUrl('example.com:8080')).toEqual('http://example.com:8080/')
expect(normalizeUrl('example.com:8080/foo/bar')).toEqual(
'http://example.com:8080/foo/bar'
)
expect(normalizeUrl('about:blank')).toEqual('about:blank')
})
})
================================================
FILE: src/util.ts
================================================
import url from 'url'
export const normalizeUrl = function (urlString: string): string {
const u = url.parse(urlString)
if (
u.protocol &&
!['http:', 'https:'].includes(u.protocol) &&
!u.slashes &&
!u.port &&
u.host &&
!Number.isNaN(parseInt(u.host, 10))
) {
u.port = u.host
u.hostname = u.protocol.slice(0, -1)
if (u.hostname && u.port) {
u.host = `${u.hostname}:${u.port}`
}
u.protocol = 'http:'
if (!u.pathname) {
u.pathname = '/'
u.path = undefined
}
} else if (!u.protocol) {
u.host = undefined
u.protocol = 'http:'
const pathname = u.pathname
if (pathname) {
const slashIndex = pathname.indexOf('/')
if (slashIndex !== -1) {
u.host = pathname.slice(0, slashIndex)
u.pathname = pathname.slice(slashIndex)
} else {
u.host = pathname
u.pathname = '/'
}
u.path = undefined
}
}
if (!u.slashes && u.protocol !== 'about:') {
u.slashes = true
}
return url.format(u)
}
================================================
FILE: tsconfig.json
================================================
{
"compilerOptions": {
"target": "es2015",
"module": "es2015",
"moduleResolution": "node",
"jsx": "react-native",
"skipLibCheck": true,
"allowSyntheticDefaultImports": true,
"strictNullChecks": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"experimentalDecorators": true,
"lib": [
"es7",
"dom"
]
},
"filesGlob": [
"src/**/*.ts",
"src/**/*.tsx"
],
"ignore": [
"android",
"build",
"ios",
"node_modules"
],
"types": [
"jest"
]
}
================================================
FILE: tslint.json
================================================
{
"extends": ["tslint-config-standard", "tslint-react"],
"rules": {
"jsx-alignment": false,
"jsx-boolean-value": [true, "never"],
"jsx-no-multiline-js": false,
"jsx-wrap-multiline": false,
"no-empty": false,
"no-unused-variable": false,
"semicolon": false,
"ter-indent": false
}
}
================================================
FILE: web/metamask/_locales/en/messages.json
================================================
{
"appName": {
"message": "MetaMask",
"description": "The name of the application"
},
"appDescription": {
"message": "Ethereum Identity Management",
"description": "The description of the application"
}
}
================================================
FILE: web/metamask/_locales/es/messages.json
================================================
{
"appName": {
"message": "MetaMask",
"description": "The name of the application"
},
"appDescription": {
"message": "Administración de identidad en Ethereum",
"description": "The description of the application"
}
}
================================================
FILE: web/metamask/_locales/es_419/messages.json
================================================
{
"appName": {
"message": "MetaMask",
"description": "The name of the application"
},
"appDescription": {
"message": "Administración de identidad en Ethereum",
"description": "The description of the application"
}
}
================================================
FILE: web/metamask/_locales/ja/messages.json
================================================
{
"appName": {
"message": "MetaMask",
"description": "The name of the application"
},
"appDescription": {
"message": "EthereumのID管理",
"description": "The description of the application"
}
}
================================================
FILE: web/metamask/_locales/zh_CN/messages.json
================================================
{
"appName": {
"message": "MetaMask",
"description": "The name of the application"
},
"appDescription": {
"message": "以太坊身份管理",
"description": "The description of the application"
}
}
================================================
FILE: web/metamask/background.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no">
<title>MetaMask Background</title>
</head>
<body>
<script src='app://vendor/asmcrypto-0.0.11.js'></script>
<script src='app://vendor/webcrypto-liner.shim-0.1.22.js'></script>
</body>
</html>
================================================
FILE: web/metamask/fonts/Montserrat/OFL.txt
================================================
Copyright (c) 2011-2012, Julieta Ulanovsky (julieta.ulanovsky@gmail.com), with Reserved Font Names 'Montserrat'
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
================================================
FILE: web/metamask/manifest.json
================================================
{
"name": "MetaMask",
"short_name": "Metamask",
"version": "3.7.1",
"manifest_version": 2,
"author": "https://metamask.io",
"description": "Ethereum Browser Extension",
"commands": {
"_execute_browser_action": {
"suggested_key": {
"windows": "Alt+Shift+M",
"mac": "Alt+Shift+M",
"chromeos": "Alt+Shift+M",
"linux": "Alt+Shift+M"
}
}
},
"icons": {
"16": "images/icon-16.png",
"128": "images/icon-128.png"
},
"default_locale": "en",
"background": {
"scripts": [
"scripts/background.js"
],
"persistent": true
},
"browser_action": {
"default_icon": {
"19": "images/icon-19.png",
"38": "images/icon-38.png"
},
"default_title": "MetaMask",
"default_popup": "popup.html"
},
"content_scripts": [{
"matches": [
"file://*/*",
"http://*/*",
"https://*/*"
],
"js": [
"scripts/contentscript.js"
],
"run_at": "document_start",
"all_frames": true
}],
"permissions": [
"storage",
"clipboardWrite",
"http://localhost:8545/",
"https://www.cryptonator.com/"
],
"web_accessible_resources": [
"scripts/inpage.js"
],
"externally_connectable": {
"matches": [
"https://metamask.io/*"
]
}
}
================================================
FILE: web/metamask/popup.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=360, user-scalable=no">
<title>MetaMask</title>
<style>html { background: #f7f7f7; }</style>
</head>
<body>
<script src='app://vendor/asmcrypto-0.0.11.js'></script>
<script src='app://vendor/webcrypto-liner.shim-0.1.22.js'></script>
<div id="app-content"></div>
</body>
</html>
================================================
FILE: web/metamask/scripts/background.js
================================================
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
module.exports={
"name": "MetaMask",
"short_name": "Metamask",
"version": "3.7.4",
"manifest_version": 2,
"author": "https://metamask.io",
"description": "Ethereum Browser Extension",
"commands": {
"_execute_browser_action": {
"suggested_key": {
"windows": "Alt+Shift+M",
"mac": "Alt+Shift+M",
"chromeos": "Alt+Shift+M",
"linux": "Alt+Shift+M"
}
}
},
"icons": {
"16": "images/icon-16.png",
"128": "images/icon-128.png"
},
"applications": {
"gecko": {
"id": "webextension@metamask.io"
}
},
"default_locale": "en",
"background": {
"scripts": [
"scripts/chromereload.js",
"scripts/background.js"
],
"persistent": true
},
"browser_action": {
"default_icon": {
"19": "images/icon-19.png",
"38": "images/icon-38.png"
},
"default_title": "MetaMask",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": [
"file://*/*",
"http://*/*",
"https://*/*"
],
"js": [
"scripts/contentscript.js"
],
"run_at": "document_start",
"all_frames": true
}
],
"permissions": [
"storage",
"clipboardWrite",
"http://localhost:8545/",
"https://www.cryptonator.com/"
],
"web_accessible_resources": [
"scripts/inpage.js"
],
"externally_connectable": {
"matches": [
"https://metamask.io/*"
]
}
}
},{}],2:[function(_dereq_,module,exports){
'use strict';
var _promise = _dereq_('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Wallet = _dereq_('ethereumjs-wallet');
var importers = _dereq_('ethereumjs-wallet/thirdparty');
var ethUtil = _dereq_('ethereumjs-util');
var accountImporter = {
importAccount: function importAccount(strategy, args) {
try {
var importer = this.strategies[strategy];
var privateKeyHex = importer.apply(null, args);
return _promise2.default.resolve(privateKeyHex);
} catch (e) {
return _promise2.default.reject(e);
}
},
strategies: {
'Private Key': function PrivateKey(privateKey) {
var stripped = ethUtil.stripHexPrefix(privateKey);
return stripped;
},
'JSON File': function JSONFile(input, password) {
var wallet = void 0;
try {
wallet = importers.fromEtherWallet(input, password);
} catch (e) {
console.log('Attempt to import as EtherWallet format failed, trying V3...');
}
if (!wallet) {
wallet = Wallet.fromV3(input, password, true);
}
return walletToPrivateKey(wallet);
}
}
};
function walletToPrivateKey(wallet) {
var privateKeyBuffer = wallet.getPrivateKey();
return ethUtil.bufferToHex(privateKeyBuffer);
}
module.exports = accountImporter;
},{"babel-runtime/core-js/promise":87,"ethereumjs-util":309,"ethereumjs-wallet":311,"ethereumjs-wallet/thirdparty":313}],3:[function(_dereq_,module,exports){
(function (global){
'use strict';
var _promise = _dereq_('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _regenerator = _dereq_('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = _dereq_('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var initialize = function () {
var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
var initState;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return loadStateFromPersistence();
case 2:
initState = _context.sent;
_context.next = 5;
return setupController(initState);
case 5:
console.log('MetaMask initialization complete.');
case 6:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
return function initialize() {
return _ref.apply(this, arguments);
};
}();
//
// State and Persistence
//
var loadStateFromPersistence = function () {
var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2() {
var migrator, versionedData;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
// migrations
migrator = new Migrator({ migrations: migrations });
// read from disk
versionedData = diskStore.getState() || migrator.generateInitialState(firstTimeState
// migrate data
);
_context2.next = 4;
return migrator.migrateData(versionedData
// write to disk
);
case 4:
versionedData = _context2.sent;
diskStore.putState(versionedData
// return just the data
);return _context2.abrupt('return', versionedData.data);
case 7:
case 'end':
return _context2.stop();
}
}
}, _callee2, this);
}));
return function loadStateFromPersistence() {
return _ref2.apply(this, arguments);
};
}();
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var urlUtil = _dereq_('url');
var endOfStream = _dereq_('end-of-stream');
var pipe = _dereq_('pump');
var LocalStorageStore = _dereq_('obs-store/lib/localStorage');
var storeTransform = _dereq_('obs-store/lib/transform');
var ExtensionPlatform = _dereq_('./platforms/extension');
var Migrator = _dereq_('./lib/migrator/');
var migrations = _dereq_('./migrations/');
var PortStream = _dereq_('./lib/port-stream.js');
var NotificationManager = _dereq_('./lib/notification-manager.js');
var MetamaskController = _dereq_('./metamask-controller');
var extension = _dereq_('extensionizer');
var firstTimeState = _dereq_('./first-time-state');
var STORAGE_KEY = 'metamask-config';
var METAMASK_DEBUG = undefined;
var log = _dereq_('loglevel');
window.log = log;
log.setDefaultLevel(METAMASK_DEBUG ? 'debug' : 'warn');
var platform = new ExtensionPlatform();
var notificationManager = new NotificationManager();
global.METAMASK_NOTIFIER = notificationManager;
var popupIsOpen = false;
// state persistence
var diskStore = new LocalStorageStore({ storageKey: STORAGE_KEY });
// initialization flow
initialize().catch(console.error);
function setupController(initState) {
//
// MetaMask Controller
//
var controller = new MetamaskController({
// User confirmation callbacks:
showUnconfirmedMessage: triggerUi,
unlockAccountMessage: triggerUi,
showUnapprovedTx: triggerUi,
// initial state
initState: initState,
// platform specific api
platform: platform
});
global.metamaskController = controller;
// setup state persistence
pipe(controller.store, storeTransform(versionifyData), diskStore);
function versionifyData(state) {
var versionedData = diskStore.getState();
versionedData.data = state;
return versionedData;
}
//
// connect to other contexts
//
extension.runtime.onConnect.addListener(connectRemote);
function connectRemote(remotePort) {
var isMetaMaskInternalProcess = remotePort.name === 'popup' || remotePort.name === 'notification';
var portStream = new PortStream(remotePort);
if (isMetaMaskInternalProcess) {
// communication with popup
popupIsOpen = popupIsOpen || remotePort.name === 'popup';
controller.setupTrustedCommunication(portStream, 'MetaMask', remotePort.name
// record popup as closed
);if (remotePort.name === 'popup') {
endOfStream(portStream, function () {
popupIsOpen = false;
});
}
} else {
// communication with page
var originDomain = urlUtil.parse(remotePort.sender.url).hostname;
controller.setupUntrustedCommunication(portStream, originDomain);
}
}
//
// User Interface setup
//
updateBadge();
controller.txController.on('updateBadge', updateBadge);
controller.messageManager.on('updateBadge', updateBadge
// plugin badge text
);function updateBadge() {
var label = '';
var unapprovedTxCount = controller.txController.unapprovedTxCount;
var unapprovedMsgCount = controller.messageManager.unapprovedMsgCount;
var count = unapprovedTxCount + unapprovedMsgCount;
if (count) {
label = String(count);
}
extension.browserAction.setBadgeText({ text: label });
extension.browserAction.setBadgeBackgroundColor({ color: '#506F8B' });
}
return _promise2.default.resolve();
}
//
// Etc...
//
// popup trigger
function triggerUi() {
if (!popupIsOpen) notificationManager.showPopup();
}
// On first install, open a window to MetaMask website to how-it-works.
extension.runtime.onInstalled.addListener(function (details) {
if (details.reason === 'install' && !METAMASK_DEBUG) {
extension.tabs.create({ url: 'https://metamask.io/#how-it-works' });
}
});
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"./first-time-state":11,"./lib/migrator/":18,"./lib/notification-manager.js":20,"./lib/port-stream.js":23,"./metamask-controller":27,"./migrations/":41,"./platforms/extension":43,"babel-runtime/core-js/promise":87,"babel-runtime/helpers/asyncToGenerator":90,"babel-runtime/regenerator":96,"end-of-stream":291,"extensionizer":317,"loglevel":380,"obs-store/lib/localStorage":386,"obs-store/lib/transform":387,"pump":412,"url":462}],4:[function(_dereq_,module,exports){
(function (global){
'use strict';
var MAINET_RPC_URL = 'https://mainnet.infura.io/metamask';
var ROPSTEN_RPC_URL = 'https://ropsten.infura.io/metamask';
var KOVAN_RPC_URL = 'https://kovan.infura.io/metamask';
var RINKEBY_RPC_URL = 'https://rinkeby.infura.io/metamask';
global.METAMASK_DEBUG = undefined;
module.exports = {
network: {
mainnet: MAINET_RPC_URL,
ropsten: ROPSTEN_RPC_URL,
kovan: KOVAN_RPC_URL,
rinkeby: RINKEBY_RPC_URL
}
};
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{}],5:[function(_dereq_,module,exports){
'use strict';
var _keys = _dereq_('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
var _promise = _dereq_('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _classCallCheck2 = _dereq_('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = _dereq_('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ObservableStore = _dereq_('obs-store');
var extend = _dereq_('xtend');
var AddressBookController = function () {
// Controller in charge of managing the address book functionality from the
// recipients field on the send screen. Manages a history of all saved
// addresses and all currently owned addresses.
function AddressBookController() {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var keyringController = arguments[1];
(0, _classCallCheck3.default)(this, AddressBookController);
var initState = extend({
addressBook: []
}, opts.initState);
this.store = new ObservableStore(initState);
this.keyringController = keyringController;
}
//
// PUBLIC METHODS
//
// Sets a new address book in store by accepting a new address and nickname.
(0, _createClass3.default)(AddressBookController, [{
key: 'setAddressBook',
value: function setAddressBook(address, name) {
var _this = this;
return this._addToAddressBook(address, name).then(function (addressBook) {
_this.store.updateState({
addressBook: addressBook
});
return _promise2.default.resolve();
});
}
//
// PRIVATE METHODS
//
// Performs the logic to add the address and name into the address book. The
// pushed object is an object of two fields. Current behavior does not set an
// upper limit to the number of addresses.
}, {
key: '_addToAddressBook',
value: function _addToAddressBook(address, name) {
var addressBook = this._getAddressBook();
var identities = this._getIdentities();
var addressBookIndex = addressBook.findIndex(function (element) {
return element.address.toLowerCase() === address.toLowerCase() || element.name === name;
});
var identitiesIndex = (0, _keys2.default)(identities).findIndex(function (element) {
return element.toLowerCase() === address.toLowerCase();
}
// trigger this condition if we own this address--no need to overwrite.
);if (identitiesIndex !== -1) {
return _promise2.default.resolve(addressBook
// trigger this condition if we've seen this address before--may need to update nickname.
);
} else if (addressBookIndex !== -1) {
addressBook.splice(addressBookIndex, 1);
} else if (addressBook.length > 15) {
addressBook.shift();
}
addressBook.push({
address: address,
name: name
});
return _promise2.default.resolve(addressBook);
}
// Internal method to get the address book. Current persistence behavior
// should not require that this method be called from the UI directly.
}, {
key: '_getAddressBook',
value: function _getAddressBook() {
return this.store.getState().addressBook;
}
// Retrieves identities from the keyring controller in order to avoid
// duplication
}, {
key: '_getIdentities',
value: function _getIdentities() {
return this.keyringController.memStore.getState().identities;
}
}]);
return AddressBookController;
}();
module.exports = AddressBookController;
},{"babel-runtime/core-js/object/keys":85,"babel-runtime/core-js/promise":87,"babel-runtime/helpers/classCallCheck":91,"babel-runtime/helpers/createClass":92,"obs-store":384,"xtend":521}],6:[function(_dereq_,module,exports){
'use strict';
var _classCallCheck2 = _dereq_('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = _dereq_('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ObservableStore = _dereq_('obs-store');
var extend = _dereq_('xtend'
// every ten minutes
);var POLLING_INTERVAL = 600000;
var CurrencyController = function () {
function CurrencyController() {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
(0, _classCallCheck3.default)(this, CurrencyController);
var initState = extend({
currentCurrency: 'USD',
conversionRate: 0,
conversionDate: 'N/A'
}, opts.initState);
this.store = new ObservableStore(initState);
}
//
// PUBLIC METHODS
//
(0, _createClass3.default)(CurrencyController, [{
key: 'getCurrentCurrency',
value: function getCurrentCurrency() {
return this.store.getState().currentCurrency;
}
}, {
key: 'setCurrentCurrency',
value: function setCurrentCurrency(currentCurrency) {
this.store.updateState({ currentCurrency: currentCurrency });
}
}, {
key: 'getConversionRate',
value: function getConversionRate() {
return this.store.getState().conversionRate;
}
}, {
key: 'setConversionRate',
value: function setConversionRate(conversionRate) {
this.store.updateState({ conversionRate: conversionRate });
}
}, {
key: 'getConversionDate',
value: function getConversionDate() {
return this.store.getState().conversionDate;
}
}, {
key: 'setConversionDate',
value: function setConversionDate(conversionDate) {
this.store.updateState({ conversionDate: conversionDate });
}
}, {
key: 'updateConversionRate',
value: function updateConversionRate() {
var _this = this;
var currentCurrency = this.getCurrentCurrency();
return fetch('https://www.cryptonator.com/api/ticker/eth-' + currentCurrency).then(function (response) {
return response.json();
}).then(function (parsedResponse) {
_this.setConversionRate(Number(parsedResponse.ticker.price));
_this.setConversionDate(Number(parsedResponse.timestamp));
}).catch(function (err) {
if (err) {
console.warn('MetaMask - Failed to query currency conversion.');
_this.setConversionRate(0);
_this.setConversionDate('N/A');
}
});
}
}, {
key: 'scheduleConversionInterval',
value: function scheduleConversionInterval() {
var _this2 = this;
if (this.conversionInterval) {
clearInterval(this.conversionInterval);
}
this.conversionInterval = setInterval(function () {
_this2.updateConversionRate();
}, POLLING_INTERVAL);
}
}]);
return CurrencyController;
}();
module.exports = CurrencyController;
},{"babel-runtime/helpers/classCallCheck":91,"babel-runtime/helpers/createClass":92,"obs-store":384,"xtend":521}],7:[function(_dereq_,module,exports){
'use strict';
var _keys = _dereq_('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
var _getPrototypeOf = _dereq_('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = _dereq_('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = _dereq_('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = _dereq_('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = _dereq_('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var EventEmitter = _dereq_('events');
var MetaMaskProvider = _dereq_('web3-provider-engine/zero.js');
var ObservableStore = _dereq_('obs-store');
var ComposedStore = _dereq_('obs-store/lib/composed');
var extend = _dereq_('xtend');
var EthQuery = _dereq_('eth-query');
var RPC_ADDRESS_LIST = _dereq_('../config.js').network;
var DEFAULT_RPC = RPC_ADDRESS_LIST['rinkeby'];
module.exports = function (_EventEmitter) {
(0, _inherits3.default)(NetworkController, _EventEmitter);
function NetworkController(config) {
(0, _classCallCheck3.default)(this, NetworkController);
var _this = (0, _possibleConstructorReturn3.default)(this, (NetworkController.__proto__ || (0, _getPrototypeOf2.default)(NetworkController)).call(this));
_this.networkStore = new ObservableStore('loading');
config.provider.rpcTarget = _this.getRpcAddressForType(config.provider.type, config.provider);
_this.providerStore = new ObservableStore(config.provider);
_this.store = new ComposedStore({ provider: _this.providerStore, network: _this.networkStore });
_this._providerListeners = {};
_this.on('networkDidChange', _this.lookupNetwork);
_this.providerStore.subscribe(function (state) {
return _this.switchNetwork({ rpcUrl: state.rpcTarget });
});
return _this;
}
(0, _createClass3.default)(NetworkController, [{
key: 'initializeProvider',
value: function initializeProvider(opts) {
var _this2 = this;
this.providerInit = opts;
this._provider = MetaMaskProvider(opts);
this._proxy = new Proxy(this._provider, {
get: function get(obj, name) {
if (name === 'on') return _this2._on.bind(_this2);
return _this2._provider[name];
},
set: function set(obj, name, value) {
_this2._provider[name] = value;
}
});
this.provider.on('block', this._logBlock.bind(this));
this.provider.on('error', this.verifyNetwork.bind(this));
this.ethQuery = new EthQuery(this.provider);
this.lookupNetwork();
return this.provider;
}
}, {
key: 'switchNetwork',
value: function switchNetwork(providerInit) {
var _this3 = this;
this.setNetworkState('loading');
var newInit = extend(this.providerInit, providerInit);
this.providerInit = newInit;
this._provider.removeAllListeners();
this._provider.stop();
this.provider = MetaMaskProvider(newInit
// apply the listners created by other controllers
);(0, _keys2.default)(this._providerListeners).forEach(function (key) {
_this3._providerListeners[key].forEach(function (handler) {
return _this3._provider.addListener(key, handler);
});
});
this.emit('networkDidChange');
}
}, {
key: 'verifyNetwork',
value: function verifyNetwork() {
// Check network when restoring connectivity:
if (this.isNetworkLoading()) this.lookupNetwork();
}
}, {
key: 'getNetworkState',
value: function getNetworkState() {
return this.networkStore.getState();
}
}, {
key: 'setNetworkState',
value: function setNetworkState(network) {
return this.networkStore.putState(network);
}
}, {
key: 'isNetworkLoading',
value: function isNetworkLoading() {
return this.getNetworkState() === 'loading';
}
}, {
key: 'lookupNetwork',
value: function lookupNetwork() {
var _this4 = this;
this.ethQuery.sendAsync({ method: 'net_version' }, function (err, network) {
if (err) return _this4.setNetworkState('loading');
log.info('web3.getNetwork returned ' + network);
_this4.setNetworkState(network);
});
}
}, {
key: 'setRpcTarget',
value: function setRpcTarget(rpcUrl) {
this.providerStore.updateState({
type: 'rpc',
rpcTarget: rpcUrl
});
}
}, {
key: 'getCurrentRpcAddress',
value: function getCurrentRpcAddress() {
var provider = this.getProviderConfig();
if (!provider) return null;
return this.getRpcAddressForType(provider.type);
}
}, {
key: 'setProviderType',
value: function setProviderType(type) {
if (type === this.getProviderConfig().type) return;
var rpcTarget = this.getRpcAddressForType(type);
this.providerStore.updateState({ type: type, rpcTarget: rpcTarget });
}
}, {
key: 'getProviderConfig',
value: function getProviderConfig() {
return this.providerStore.getState();
}
}, {
key: 'getRpcAddressForType',
value: function getRpcAddressForType(type) {
var provider = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getProviderConfig();
if (RPC_ADDRESS_LIST[type]) return RPC_ADDRESS_LIST[type];
return provider && provider.rpcTarget ? provider.rpcTarget : DEFAULT_RPC;
}
}, {
key: '_logBlock',
value: function _logBlock(block) {
log.info('BLOCK CHANGED: #' + block.number.toString('hex') + ' 0x' + block.hash.toString('hex'));
this.verifyNetwork();
}
}, {
key: '_on',
value: function _on(event, handler) {
if (!this._providerListeners[event]) this._providerListeners[event] = [];
this._providerListeners[event].push(handler);
this._provider.on(event, handler);
}
}, {
key: 'provider',
get: function get() {
return this._proxy;
},
set: function set(provider) {
this._provider = provider;
}
}]);
return NetworkController;
}(EventEmitter);
},{"../config.js":4,"babel-runtime/core-js/object/get-prototype-of":84,"babel-runtime/core-js/object/keys":85,"babel-runtime/helpers/classCallCheck":91,"babel-runtime/helpers/createClass":92,"babel-runtime/helpers/inherits":93,"babel-runtime/helpers/possibleConstructorReturn":94,"eth-query":298,"events":314,"obs-store":384,"obs-store/lib/composed":385,"web3-provider-engine/zero.js":517,"xtend":521}],8:[function(_dereq_,module,exports){
'use strict';
var _promise = _dereq_('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _classCallCheck2 = _dereq_('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = _dereq_('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ObservableStore = _dereq_('obs-store');
var normalizeAddress = _dereq_('eth-sig-util').normalize;
var extend = _dereq_('xtend');
var PreferencesController = function () {
function PreferencesController() {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
(0, _classCallCheck3.default)(this, PreferencesController);
var initState = extend({
frequentRpcList: []
}, opts.initState);
this.store = new ObservableStore(initState);
}
//
// PUBLIC METHODS
//
(0, _createClass3.default)(PreferencesController, [{
key: 'setSelectedAddress',
value: function setSelectedAddress(_address) {
var _this = this;
return new _promise2.default(function (resolve, reject) {
var address = normalizeAddress(_address);
_this.store.updateState({ selectedAddress: address });
resolve();
});
}
}, {
key: 'getSelectedAddress',
value: function getSelectedAddress(_address) {
return this.store.getState().selectedAddress;
}
}, {
key: 'updateFrequentRpcList',
value: function updateFrequentRpcList(_url) {
var _this2 = this;
return this.addToFrequentRpcList(_url).then(function (rpcList) {
_this2.store.updateState({ frequentRpcList: rpcList });
return _promise2.default.resolve();
});
}
}, {
key: 'addToFrequentRpcList',
value: function addToFrequentRpcList(_url) {
var rpcList = this.getFrequentRpcList();
var index = rpcList.findIndex(function (element) {
return element === _url;
});
if (index !== -1) {
rpcList.splice(index, 1);
}
if (_url !== 'http://localhost:8545') {
rpcList.push(_url);
}
if (rpcList.length > 2) {
rpcList.shift();
}
return _promise2.default.resolve(rpcList);
}
}, {
key: 'getFrequentRpcList',
value: function getFrequentRpcList() {
return this.store.getState().frequentRpcList;
}
//
// PRIVATE METHODS
//
}]);
return PreferencesController;
}();
module.exports = PreferencesController;
},{"babel-runtime/core-js/promise":87,"babel-runtime/helpers/classCallCheck":91,"babel-runtime/helpers/createClass":92,"eth-sig-util":299,"obs-store":384,"xtend":521}],9:[function(_dereq_,module,exports){
'use strict';
var _promise = _dereq_('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _classCallCheck2 = _dereq_('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = _dereq_('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ObservableStore = _dereq_('obs-store');
var extend = _dereq_('xtend'
// every three seconds when an incomplete tx is waiting
);var POLLING_INTERVAL = 3000;
var ShapeshiftController = function () {
function ShapeshiftController() {
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
(0, _classCallCheck3.default)(this, ShapeshiftController);
var initState = extend({
shapeShiftTxList: []
}, opts.initState);
this.store = new ObservableStore(initState);
this.pollForUpdates();
}
//
// PUBLIC METHODS
//
(0, _createClass3.default)(ShapeshiftController, [{
key: 'getShapeShiftTxList',
value: function getShapeShiftTxList() {
var shapeShiftTxList = this.store.getState().shapeShiftTxList;
return shapeShiftTxList;
}
}, {
key: 'getPendingTxs',
value: function getPendingTxs() {
var txs = this.getShapeShiftTxList();
var pending = txs.filter(function (tx) {
return tx.response && tx.response.status !== 'complete';
});
return pending;
}
}, {
key: 'pollForUpdates',
value: function pollForUpdates() {
var _this = this;
var pendingTxs = this.getPendingTxs();
if (pendingTxs.length === 0) {
return;
}
_promise2.default.all(pendingTxs.map(function (tx) {
return _this.updateTx(tx);
})).then(function (results) {
results.forEach(function (tx) {
return _this.saveTx(tx);
});
_this.timeout = setTimeout(_this.pollForUpdates.bind(_this), POLLING_INTERVAL);
});
}
}, {
key: 'updateTx',
value: function updateTx(tx) {
var url = 'https://shapeshift.io/txStat/' + tx.depositAddress;
return fetch(url).then(function (response) {
return response.json();
}).then(function (json) {
tx.response = json;
if (tx.response.status === 'complete') {
tx.time = new Date().getTime();
}
return tx;
});
}
}, {
key: 'saveTx',
value: function saveTx(tx) {
var _store$getState = this.store.getState(),
shapeShiftTxList = _store$getState.shapeShiftTxList;
var index = shapeShiftTxList.indexOf(tx);
if (index !== -1) {
shapeShiftTxList[index] = tx;
this.store.updateState({ shapeShiftTxList: shapeShiftTxList });
}
}
}, {
key: 'removeShapeShiftTx',
value: function removeShapeShiftTx(tx) {
var _store$getState2 = this.store.getState(),
shapeShiftTxList = _store$getState2.shapeShiftTxList;
var index = shapeShiftTxList.indexOf(index);
if (index !== -1) {
shapeShiftTxList.splice(index, 1);
}
this.updateState({ shapeShiftTxList: shapeShiftTxList });
}
}, {
key: 'createShapeShiftTx',
value: function createShapeShiftTx(depositAddress, depositType) {
var state = this.store.getState();
var shapeShiftTxList = state.shapeShiftTxList;
var shapeShiftTx = {
depositAddress: depositAddress,
depositType: depositType,
key: 'shapeshift',
time: new Date().getTime(),
response: {}
};
if (!shapeShiftTxList) {
shapeShiftTxList = [shapeShiftTx];
} else {
shapeShiftTxList.push(shapeShiftTx);
}
this.store.updateState({ shapeShiftTxList: shapeShiftTxList });
this.pollForUpdates();
}
}]);
return ShapeshiftController;
}();
module.exports = ShapeshiftController;
},{"babel-runtime/core-js/promise":87,"babel-runtime/helpers/classCallCheck":91,"babel-runtime/helpers/createClass":92,"obs-store":384,"xtend":521}],10:[function(_dereq_,module,exports){
(function (global){
'use strict';
var _promise = _dereq_('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _keys = _dereq_('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
var _isNan = _dereq_('babel-runtime/core-js/number/is-nan');
var _isNan2 = _interopRequireDefault(_isNan);
var _getPrototypeOf = _dereq_('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = _dereq_('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = _dereq_('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = _dereq_('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = _dereq_('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var EventEmitter = _dereq_('events');
var async = _dereq_('async');
var extend = _dereq_('xtend');
var Semaphore = _dereq_('semaphore');
var ObservableStore = _dereq_('obs-store');
var ethUtil = _dereq_('ethereumjs-util');
var TxProviderUtil = _dereq_('../lib/tx-utils');
var createId = _dereq_('../lib/random-id');
var denodeify = _dereq_('denodeify');
var RETRY_LIMIT = 200;
var RESUBMIT_INTERVAL = 10000; // Ten seconds
module.exports = function (_EventEmitter) {
(0, _inherits3.default)(TransactionController, _EventEmitter);
function TransactionController(opts) {
(0, _classCallCheck3.default)(this, TransactionController);
var _this = (0, _possibleConstructorReturn3.default)(this, (TransactionController.__proto__ || (0, _getPrototypeOf2.default)(TransactionController)).call(this));
_this.store = new ObservableStore(extend({
transactions: []
}, opts.initState));
_this.memStore = new ObservableStore({});
_this.networkStore = opts.networkStore || new ObservableStore({});
_this.preferencesStore = opts.preferencesStore || new ObservableStore({});
_this.txHistoryLimit = opts.txHistoryLimit;
_this.provider = opts.provider;
_this.blockTracker = opts.blockTracker;
_this.query = opts.ethQuery;
_this.txProviderUtils = new TxProviderUtil(_this.query);
_this.blockTracker.on('block', _this.checkForTxInBlock.bind(_this));
_this.signEthTx = opts.signTransaction;
_this.nonceLock = Semaphore(1
// memstore is computed from a few different stores
);_this._updateMemstore();
_this.store.subscribe(function () {
return _this._updateMemstore();
});
_this.networkStore.subscribe(function () {
return _this._updateMemstore();
});
_this.preferencesStore.subscribe(function () {
return _this._updateMemstore();
});
_this.continuallyResubmitPendingTxs();
return _this;
}
(0, _createClass3.default)(TransactionController, [{
key: 'getState',
value: function getState() {
return this.memStore.getState();
}
}, {
key: 'getNetwork',
value: function getNetwork() {
return this.networkStore.getState();
}
}, {
key: 'getSelectedAddress',
value: function getSelectedAddress() {
return this.preferencesStore.getState().selectedAddress;
}
// Returns the tx list
}, {
key: 'getTxList',
value: function getTxList() {
var network = this.getNetwork();
var fullTxList = this.getFullTxList();
return fullTxList.filter(function (txMeta) {
return txMeta.metamaskNetworkId === network;
});
}
// Returns the number of txs for the current network.
}, {
key: 'getTxCount',
value: function getTxCount() {
return this.getTxList().length;
}
// Returns the full tx list across all networks
}, {
key: 'getFullTxList',
value: function getFullTxList() {
return this.store.getState().transactions;
}
// Adds a tx to the txlist
}, {
key: 'addTx',
value: function addTx(txMeta) {
var txCount = this.getTxCount();
var network = this.getNetwork();
var fullTxList = this.getFullTxList();
var txHistoryLimit = this.txHistoryLimit;
// checks if the length of the tx history is
// longer then desired persistence limit
// and then if it is removes only confirmed
// or rejected tx's.
// not tx's that are pending or unapproved
if (txCount > txHistoryLimit - 1) {
var index = fullTxList.findIndex(function (metaTx) {
return (metaTx.status === 'confirmed' || metaTx.status === 'rejected') && network === txMeta.metamaskNetworkId;
});
fullTxList.splice(index, 1);
}
fullTxList.push(txMeta);
this._saveTxList(fullTxList);
this.emit('update');
this.once(txMeta.id + ':signed', function (txId) {
this.removeAllListeners(txMeta.id + ':rejected');
});
this.once(txMeta.id + ':rejected', function (txId) {
this.removeAllListeners(txMeta.id + ':signed');
});
this.emit('updateBadge');
this.emit(txMeta.id + ':unapproved', txMeta);
}
// gets tx by Id and returns it
}, {
key: 'getTx',
value: function getTx(txId, cb) {
var txList = this.getTxList();
var txMeta = txList.find(function (txData) {
return txData.id === txId;
});
return cb ? cb(txMeta) : txMeta;
}
//
}, {
key: 'updateTx',
value: function updateTx(txMeta) {
var txId = txMeta.id;
var txList = this.getFullTxList();
var index = txList.findIndex(function (txData) {
return txData.id === txId;
});
txList[index] = txMeta;
this._saveTxList(txList);
this.emit('update');
}
}, {
key: 'addUnapprovedTransaction',
value: function addUnapprovedTransaction(txParams, done) {
var _this2 = this;
var txMeta = void 0;
async.waterfall([
// validate
function (cb) {
return _this2.txProviderUtils.validateTxParams(txParams, cb);
},
// construct txMeta
function (cb) {
txMeta = {
id: createId(),
time: new Date().getTime(),
status: 'unapproved',
metamaskNetworkId: _this2.getNetwork(),
txParams: txParams
};
cb();
},
// add default tx params
function (cb) {
return _this2.addTxDefaults(txMeta, cb);
},
// save txMeta
function (cb) {
_this2.addTx(txMeta);
cb(null, txMeta);
}], done);
}
}, {
key: 'addTxDefaults',
value: function addTxDefaults(txMeta, cb) {
var _this3 = this;
var txParams = txMeta.txParams;
// ensure value
txParams.value = txParams.value || '0x0';
this.query.gasPrice(function (err, gasPrice) {
if (err) return cb(err
// set gasPrice
);txParams.gasPrice = gasPrice;
// set gasLimit
_this3.txProviderUtils.analyzeGasUsage(txMeta, cb);
});
}
}, {
key: 'getUnapprovedTxList',
value: function getUnapprovedTxList() {
var txList = this.getTxList();
return txList.filter(function (txMeta) {
return txMeta.status === 'unapproved';
}).reduce(function (result, tx) {
result[tx.id] = tx;
return result;
}, {});
}
}, {
key: 'approveTransaction',
value: function approveTransaction(txId) {
var _this4 = this;
var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : warn;
var self = this;
// approve
self.setTxStatusApproved(txId
// only allow one tx at a time for atomic nonce usage
);self.nonceLock.take(function () {
// begin signature process
async.waterfall([function (cb) {
return self.fillInTxParams(txId, cb);
}, function (cb) {
return self.signTransaction(txId, cb);
}, function (rawTx, cb) {
return self.publishTransaction(txId, rawTx, cb);
}], function (err) {
self.nonceLock.leave();
if (err) {
_this4.setTxStatusFailed(txId, {
errCode: err.errCode || err,
message: err.message || 'Transaction failed during approval'
});
return cb(err);
}
cb();
});
});
}
}, {
key: 'cancelTransaction',
value: function cancelTransaction(txId) {
var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : warn;
this.setTxStatusRejected(txId);
cb();
}
}, {
key: 'fillInTxParams',
value: function fillInTxParams(txId, cb) {
var _this5 = this;
var txMeta = this.getTx(txId);
this.txProviderUtils.fillInTxParams(txMeta.txParams, function (err) {
if (err) return cb(err);
_this5.updateTx(txMeta);
cb();
});
}
}, {
key: 'getChainId',
value: function getChainId() {
var networkState = this.networkStore.getState();
var getChainId = parseInt(networkState.network);
if ((0, _isNan2.default)(getChainId)) {
return 0;
} else {
return getChainId;
}
}
}, {
key: 'signTransaction',
value: function signTransaction(txId, cb) {
var _this6 = this;
var txMeta = this.getTx(txId);
var txParams = txMeta.txParams;
var fromAddress = txParams.from;
// add network/chain id
txParams.chainId = this.getChainId();
var ethTx = this.txProviderUtils.buildEthTxFromParams(txParams);
this.signEthTx(ethTx, fromAddress).then(function () {
_this6.setTxStatusSigned(txMeta.id);
cb(null, ethUtil.bufferToHex(ethTx.serialize()));
}).catch(function (err) {
cb(err);
});
}
}, {
key: 'publishTransaction',
value: function publishTransaction(txId, rawTx) {
var _this7 = this;
var cb = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : warn;
var txMeta = this.getTx(txId);
txMeta.rawTx = rawTx;
this.updateTx(txMeta);
this.txProviderUtils.publishTransaction(rawTx, function (err, txHash) {
if (err) return cb(err);
_this7.setTxHash(txId, txHash);
_this7.setTxStatusSubmitted(txId);
cb();
});
}
// receives a txHash records the tx as signed
}, {
key: 'setTxHash',
value: function setTxHash(txId, txHash) {
// Add the tx hash to the persisted meta-tx object
var txMeta = this.getTx(txId);
txMeta.hash = txHash;
this.updateTx(txMeta);
}
/*
Takes an object of fields to search for eg:
var thingsToLookFor = {
to: '0x0..',
from: '0x0..',
status: 'signed',
}
and returns a list of tx with all
options matching
this is for things like filtering a the tx list
for only tx's from 1 account
or for filltering for all txs from one account
and that have been 'confirmed'
*/
}, {
key: 'getFilteredTxList',
value: function getFilteredTxList(opts) {
var _this8 = this;
var filteredTxList;
(0, _keys2.default)(opts).forEach(function (key) {
filteredTxList = _this8.getTxsByMetaData(key, opts[key], filteredTxList);
});
return filteredTxList;
}
}, {
key: 'getTxsByMetaData',
value: function getTxsByMetaData(key, value) {
var txList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.getTxList();
return txList.filter(function (txMeta) {
if (txMeta.txParams[key]) {
return txMeta.txParams[key] === value;
} else {
return txMeta[key] === value;
}
});
}
// STATUS METHODS
// get::set status
// should return the status of the tx.
}, {
key: 'getTxStatus',
value: function getTxStatus(txId) {
var txMeta = this.getTx(txId);
return txMeta.status;
}
// should update the status of the tx to 'rejected'.
}, {
key: 'setTxStatusRejected',
value: function setTxStatusRejected(txId) {
this._setTxStatus(txId, 'rejected');
}
// should update the status of the tx to 'approved'.
}, {
key: 'setTxStatusApproved',
value: function setTxStatusApproved(txId) {
this._setTxStatus(txId, 'approved');
}
// should update the status of the tx to 'signed'.
}, {
key: 'setTxStatusSigned',
value: function setTxStatusSigned(txId) {
this._setTxStatus(txId, 'signed');
}
// should update the status of the tx to 'submitted'.
}, {
key: 'setTxStatusSubmitted',
value: function setTxStatusSubmitted(txId) {
this._setTxStatus(txId, 'submitted');
}
// should update the status of the tx to 'confirmed'.
}, {
key: 'setTxStatusConfirmed',
value: function setTxStatusConfirmed(txId) {
this._setTxStatus(txId, 'confirmed');
}
}, {
key: 'setTxStatusFailed',
value: function setTxStatusFailed(txId, reason) {
var txMeta = this.getTx(txId);
txMeta.err = reason;
this.updateTx(txMeta);
this._setTxStatus(txId, 'failed');
}
// merges txParams obj onto txData.txParams
// use extend to ensure that all fields are filled
}, {
key: 'updateTxParams',
value: function updateTxParams(txId, txParams) {
var txMeta = this.getTx(txId);
txMeta.txParams = extend(txMeta.txParams, txParams);
this.updateTx(txMeta);
}
// checks if a signed tx is in a block and
// if included sets the tx status as 'confirmed'
}, {
key: 'checkForTxInBlock',
value: function checkForTxInBlock() {
var _this9 = this;
var signedTxList = this.getFilteredTxList({ status: 'submitted' });
if (!signedTxList.length) return;
signedTxList.forEach(function (txMeta) {
var txHash = txMeta.hash;
var txId = txMeta.id;
if (!txHash) {
var errReason = {
errCode: 'No hash was provided',
message: 'We had an error while submitting this transaction, please try again.'
};
return _this9.setTxStatusFailed(txId, errReason);
}
_this9.query.getTransactionByHash(txHash, function (err, txParams) {
if (err || !txParams) {
if (!txParams) return;
txMeta.err = {
isWarning: true,
errorCode: err,
message: 'There was a problem loading this transaction.'
};
_this9.updateTx(txMeta);
return log.error(err);
}
if (txParams.blockNumber) {
_this9.setTxStatusConfirmed(txId);
}
});
});
}
// PRIVATE METHODS
// Should find the tx in the tx list and
// update it.
// should set the status in txData
// - `'unapproved'` the user has not responded
// - `'rejected'` the user has responded no!
// - `'approved'` the user has approved the tx
// - `'signed'` the tx is signed
// - `'submitted'` the tx is sent to a server
// - `'confirmed'` the tx has been included in a block.
}, {
key: '_setTxStatus',
value: function _setTxStatus(txId, status) {
var txMeta = this.getTx(txId);
txMeta.status = status;
this.emit(txMeta.id + ':' + status, txId);
if (status === 'submitted' || status === 'rejected') {
this.emit(txMeta.id + ':finished', txMeta);
}
this.updateTx(txMeta);
this.emit('updateBadge');
}
// Saves the new/updated txList.
// Function is intended only for internal use
}, {
key: '_saveTxList',
value: function _saveTxList(transactions) {
this.store.updateState({ transactions: transactions });
}
}, {
key: '_updateMemstore',
value: function _updateMemstore() {
var unapprovedTxs = this.getUnapprovedTxList();
var selectedAddressTxList = this.getFilteredTxList({
from: this.getSelectedAddress(),
metamaskNetworkId: this.getNetwork()
});
this.memStore.updateState({ unapprovedTxs: unapprovedTxs, selectedAddressTxList: selectedAddressTxList });
}
}, {
key: 'continuallyResubmitPendingTxs',
value: function continuallyResubmitPendingTxs() {
var _this10 = this;
var pending = this.getTxsByMetaData('status', 'submitted');
var resubmit = denodeify(this.resubmitTx.bind(this));
_promise2.default.all(pending.map(function (txMeta) {
return resubmit(txMeta);
})).catch(function (reason) {
log.info('Problem resubmitting tx', reason);
}).then(function () {
global.setTimeout(function () {
_this10.continuallyResubmitPendingTxs();
}, RESUBMIT_INTERVAL);
});
}
}, {
key: 'resubmitTx',
value: function resubmitTx(txMeta, cb) {
// Increment a try counter.
if (!('retryCount' in txMeta)) {
txMeta.retryCount = 0;
}
// Only auto-submit already-signed txs:
if (!('rawTx' in txMeta)) {
return cb();
}
if (txMeta.retryCount > RETRY_LIMIT) {
txMeta.err = {
isWarning: true,
message: 'Gave up submitting tx.'
};
this.updateTx(txMeta);
return log.error(txMeta.err.message);
}
txMeta.retryCount++;
var rawTx = txMeta.rawTx;
this.txProviderUtils.publishTransaction(rawTx, cb);
}
}, {
key: 'unapprovedTxCount',
get: function get() {
return (0, _keys2.default)(this.getUnapprovedTxList()).length;
}
}, {
key: 'pendingTxCount',
get: function get() {
return this.getTxsByMetaData('status', 'signed').length;
}
}]);
return TransactionController;
}(EventEmitter);
var warn = function warn() {
return log.warn('warn was used no cb provided');
};
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"../lib/random-id":24,"../lib/tx-utils":26,"async":77,"babel-runtime/core-js/number/is-nan":79,"babel-runtime/core-js/object/get-prototype-of":84,"babel-runtime/core-js/object/keys":85,"babel-runtime/core-js/promise":87,"babel-runtime/helpers/classCallCheck":91,"babel-runtime/helpers/createClass":92,"babel-runtime/helpers/inherits":93,"babel-runtime/helpers/possibleConstructorReturn":94,"denodeify":257,"ethereumjs-util":309,"events":314,"obs-store":384,"semaphore":445,"xtend":521}],11:[function(_dereq_,module,exports){
'use strict';
//
// The default state of MetaMask
//
module.exports = {
config: {},
NetworkController: {
provider: {
type: 'rinkeby'
}
}
};
},{}],12:[function(_dereq_,module,exports){
'use strict';
var _keys = _dereq_('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
var _promise = _dereq_('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _getPrototypeOf = _dereq_('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = _dereq_('babel-runtime/he
gitextract_v8ksmv8r/
├── .babelrc
├── .buckconfig
├── .flowconfig
├── .gitattributes
├── .gitignore
├── .watchmanconfig
├── LICENSE
├── README.md
├── android/
│ ├── app/
│ │ ├── BUCK
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── nabi/
│ │ │ ├── MainActivity.java
│ │ │ └── MainApplication.java
│ │ └── res/
│ │ └── values/
│ │ ├── strings.xml
│ │ └── styles.xml
│ ├── build.gradle
│ ├── gradle/
│ │ └── wrapper/
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── keystores/
│ │ ├── BUCK
│ │ └── debug.keystore.properties
│ └── settings.gradle
├── app.json
├── index.android.js
├── index.ios.js
├── ios/
│ ├── Nabi/
│ │ ├── AppDelegate.swift
│ │ ├── AppProtocol.swift
│ │ ├── Assets.xcassets/
│ │ │ └── AppIcon.appiconset/
│ │ │ └── Contents.json
│ │ ├── Base.lproj/
│ │ │ └── LaunchScreen.xib
│ │ ├── Info.plist
│ │ └── Nabi-Bridging-Header.h
│ ├── Nabi.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── xcshareddata/
│ │ └── xcschemes/
│ │ └── Nabi.xcscheme
│ ├── NabiTests/
│ │ ├── Info.plist
│ │ └── NabiTests.swift
│ ├── NabiUITests/
│ │ ├── Info.plist
│ │ └── NabiUITests.swift
│ └── vendor/
│ └── WKWebViewWithURLProtocol/
│ ├── NSURLProtocol+WKWebViewSupport.h
│ └── NSURLProtocol+WKWebViewSupport.m
├── package.json
├── rn-cli.config.js
├── src/
│ ├── @types/
│ │ ├── react-native-navigation.d.ts
│ │ └── react-native-wkwebview-reborn.d.ts
│ ├── components/
│ │ ├── BrowserWindow.tsx
│ │ ├── LocationBar.tsx
│ │ ├── MetaMaskBackground.tsx
│ │ └── PageLoadProgress.tsx
│ ├── constants.ts
│ ├── index.ts
│ ├── injections/
│ │ ├── contentScript.ts
│ │ ├── metaMaskBackground.ts
│ │ ├── metaMaskPopup.ts
│ │ └── types.ts
│ ├── ipc.ts
│ ├── screens/
│ │ ├── MetaMaskScreen.tsx
│ │ ├── RootScreen.tsx
│ │ └── index.ts
│ ├── util.test.ts
│ └── util.ts
├── tsconfig.json
├── tslint.json
└── web/
├── metamask/
│ ├── _locales/
│ │ ├── en/
│ │ │ └── messages.json
│ │ ├── es/
│ │ │ └── messages.json
│ │ ├── es_419/
│ │ │ └── messages.json
│ │ ├── ja/
│ │ │ └── messages.json
│ │ └── zh_CN/
│ │ └── messages.json
│ ├── background.html
│ ├── fonts/
│ │ └── Montserrat/
│ │ └── OFL.txt
│ ├── manifest.json
│ ├── popup.html
│ └── scripts/
│ ├── background.js
│ ├── contentscript.js
│ ├── inpage.js
│ └── popup.js
└── vendor/
├── asmcrypto-0.0.11.js
└── webcrypto-liner.shim-0.1.22.js
Showing preview only (268K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3449 symbols across 23 files)
FILE: android/app/src/main/java/com/nabi/MainActivity.java
class MainActivity (line 5) | public class MainActivity extends ReactActivity {
method getMainComponentName (line 11) | @Override
FILE: android/app/src/main/java/com/nabi/MainApplication.java
class MainApplication (line 15) | public class MainApplication extends Application implements ReactApplica...
method getUseDeveloperSupport (line 18) | @Override
method getPackages (line 23) | @Override
method getReactNativeHost (line 32) | @Override
method onCreate (line 37) | @Override
FILE: rn-cli.config.js
method getSourceExts (line 6) | getSourceExts () {
method getTransformModulePath (line 10) | getTransformModulePath () {
FILE: src/@types/react-native-navigation.d.ts
type NavigatorEvent (line 5) | interface NavigatorEvent {
class Navigator (line 10) | class Navigator {}
type NavigatorEventHandler (line 12) | type NavigatorEventHandler = (NavigatorEvent) => void
type DismissModalParams (line 14) | interface DismissModalParams {
type ShowModalParams (line 18) | interface ShowModalParams {
type StartSingleScreenAppParams (line 27) | interface StartSingleScreenAppParams {
FILE: src/@types/react-native-wkwebview-reborn.d.ts
type WKWebViewMessage (line 9) | interface WKWebViewMessage {
type WKWebViewBaseEvent (line 15) | interface WKWebViewBaseEvent {
type WKWebViewProps (line 23) | interface WKWebViewProps {
class WKWebView (line 68) | class WKWebView extends Component<WKWebViewProps> {
FILE: src/components/BrowserWindow.tsx
type Props (line 60) | interface Props {
type State (line 64) | interface State {
class BrowserWindow (line 72) | class BrowserWindow extends Component<Props, State> {
method componentWillUnmount (line 87) | componentWillUnmount () {
method render (line 168) | render () {
FILE: src/components/LocationBar.tsx
type Props (line 35) | interface Props {
type State (line 40) | interface State {
class LocationBar (line 45) | class LocationBar extends Component<Props, State> {
method componentWillReceiveProps (line 51) | componentWillReceiveProps (newProps: Props) {
method render (line 86) | render () {
FILE: src/components/MetaMaskBackground.tsx
type Props (line 13) | interface Props {
class MetaMaskBackground (line 17) | class MetaMaskBackground extends Component<Props> {
method componentDidMount (line 22) | componentDidMount () {
method render (line 44) | render () {
FILE: src/components/PageLoadProgress.tsx
type Props (line 17) | interface Props {
type State (line 22) | interface State {
class PageLoadProgress (line 27) | class PageLoadProgress extends Component<Props, State> {
method componentWillReceiveProps (line 33) | componentWillReceiveProps (newProps: Props) {
method render (line 62) | render () {
FILE: src/constants.ts
constant TOOLBAR_HEIGHT (line 3) | const TOOLBAR_HEIGHT = Platform.OS === 'ios' ? 44 : 56
constant TOOLBAR_ICON_SIZE (line 4) | const TOOLBAR_ICON_SIZE = Platform.OS === 'ios' ? 32 : 24
constant TOOLBAR_PADDING (line 5) | const TOOLBAR_PADDING = Platform.OS === 'ios' ? 8 : 16
constant STATUS_BAR_HEIGHT (line 6) | const STATUS_BAR_HEIGHT = Platform.OS === 'ios' ? 20 : 0
constant COLOR_HIGHLIGHT_BLUE (line 8) | const COLOR_HIGHLIGHT_BLUE = '#3378f6'
FILE: src/injections/contentScript.ts
type Window (line 4) | interface Window {
function injectContentScript (line 16) | function injectContentScript (
FILE: src/injections/metaMaskBackground.ts
function bootstrapMetaMaskBackground (line 3) | function bootstrapMetaMaskBackground (
FILE: src/injections/metaMaskPopup.ts
method addListener (line 21) | addListener (_listener: PortListener): void {}
method addListener (line 25) | addListener (listener: PortListener): void {
method postMessage (line 38) | postMessage (message: any): void {
method connect (line 50) | connect ({ name }: { name: string }): Port {
method getManifest (line 77) | getManifest (): {} {
FILE: src/injections/types.ts
type PortListener (line 1) | type PortListener = (data: any) => void
type Port (line 3) | interface Port {
type ConnectEvent (line 22) | interface ConnectEvent extends Event {
type MessageEvent (line 30) | interface MessageEvent extends Event {
FILE: src/ipc.ts
class IPC (line 3) | class IPC {
method setBackground (line 7) | setBackground (background: WKWebView): void {
method connect (line 11) | connect (name: string, id: string, url: string, client: WKWebView): vo...
method disconnect (line 29) | disconnect (id: string): void {
method sendToBackground (line 40) | sendToBackground (id: string, data: any): void {
method sendToClient (line 52) | sendToClient (id: string, data: any): void {
FILE: src/screens/MetaMaskScreen.tsx
type Props (line 27) | interface Props {
class MetaMaskScreen (line 31) | class MetaMaskScreen extends Component<Props> {
method componentDidMount (line 47) | componentDidMount () {
method componentWillUnmount (line 52) | componentWillUnmount () {
method render (line 83) | render () {
FILE: src/screens/RootScreen.tsx
class RootScreen (line 16) | class RootScreen extends Component {
method openMetaMask (line 17) | openMetaMask (): void {
method render (line 23) | render () {
FILE: web/metamask/scripts/background.js
function s (line 1) | function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&re...
function _interopRequireDefault (line 81) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function walletToPrivateKey (line 122) | function walletToPrivateKey(wallet) {
function _interopRequireDefault (line 218) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function setupController (line 253) | function setupController(initState) {
function triggerUi (line 333) | function triggerUi() {
function _interopRequireDefault (line 385) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function AddressBookController (line 395) | function AddressBookController() {
function _interopRequireDefault (line 500) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function CurrencyController (line 509) | function CurrencyController() {
function _interopRequireDefault (line 619) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function NetworkController (line 633) | function NetworkController(config) {
function _interopRequireDefault (line 800) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function PreferencesController (line 807) | function PreferencesController() {
function _interopRequireDefault (line 895) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function ShapeshiftController (line 904) | function ShapeshiftController() {
function _interopRequireDefault (line 1058) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function TransactionController (line 1076) | function TransactionController(opts) {
function _interopRequireDefault (line 1689) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function KeyringController (line 1715) | function KeyringController(opts) {
function getBuyEthUrl (line 2394) | function getBuyEthUrl(_ref) {
function ConfigManager (line 2440) | function ConfigManager(opts) {
function _interopRequireDefault (line 2692) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function noop (line 2706) | function noop() {}
function EthereumStore (line 2711) | function EthereumStore() {
function _interopRequireDefault (line 2893) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function MessageManager (line 2903) | function MessageManager(opts) {
function normalizeMsgData (line 3033) | function normalizeMsgData(data) {
function _interopRequireDefault (line 3063) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function Migrator (line 3066) | function Migrator() {
function migrateData (line 3145) | function migrateData() {
function _interopRequireDefault (line 3205) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function NotificationManager (line 3212) | function NotificationManager() {
function ObjectMultiplex (line 3298) | function ObjectMultiplex(opts) {
function _interopRequireDefault (line 3375) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function PersonalMessageManager (line 3386) | function PersonalMessageManager(opts) {
function PortDuplexStream (line 3543) | function PortDuplexStream(port) {
function noop (line 3598) | function noop() {}
function _interopRequireDefault (line 3608) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function createRandomId (line 3613) | function createRandomId() {
function _interopRequireDefault (line 3627) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function jsonParseStream (line 3639) | function jsonParseStream() {
function jsonStringifyStream (line 3646) | function jsonStringifyStream() {
function setupMultiplex (line 3653) | function setupMultiplex(connectionStream) {
function _interopRequireDefault (line 3685) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function txProviderUtils (line 3700) | function txProviderUtils(ethQuery) {
function isUndef (line 3838) | function isUndef(value) {
function bnToHex (line 3842) | function bnToHex(inputBn) {
function hexToBn (line 3846) | function hexToBn(inputHex) {
function BnMultiplyByFraction (line 3850) | function BnMultiplyByFraction(targetBN, numerator, denominator) {
function _interopRequireDefault (line 3887) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function MetamaskController (line 3920) | function MetamaskController(opts) {
function selectPublicState (line 4102) | function selectPublicState(memState) {
function logger (line 4240) | function logger(err, request, response) {
function _interopRequireDefault (line 4595) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _interopRequireDefault (line 4624) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _interopRequireDefault (line 4654) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _interopRequireDefault (line 4692) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function selectSubstateForKeyringController (line 4722) | function selectSubstateForKeyringController(state) {
function _interopRequireDefault (line 4745) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function migrateState (line 4775) | function migrateState(state) {
function _interopRequireDefault (line 4798) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function transformState (line 4828) | function transformState(state) {
function _interopRequireDefault (line 4848) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function transformState (line 4878) | function transformState(state) {
function _interopRequireDefault (line 4896) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function transformState (line 4926) | function transformState(state) {
function _interopRequireDefault (line 4949) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function transformState (line 4979) | function transformState(state) {
function _interopRequireDefault (line 4997) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function transformState (line 5026) | function transformState(state) {
function _interopRequireDefault (line 5040) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function transformState (line 5069) | function transformState(state) {
function _interopRequireDefault (line 5086) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function transformState (line 5115) | function transformState(state) {
function _interopRequireDefault (line 5130) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function transformState (line 5159) | function transformState(state) {
function _interopRequireDefault (line 5212) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function NoticeController (line 5222) | function NoticeController(opts) {
function _interopRequireDefault (line 5353) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function ExtensionPlatform (line 5358) | function ExtensionPlatform() {
function convertToInt32 (line 5561) | function convertToInt32(bytes) {
function Entity (line 6080) | function Entity(name, body) {
function DecoderBuffer (line 6138) | function DecoderBuffer(base, options) {
function EncoderBuffer (line 6198) | function EncoderBuffer(value, reporter) {
function Node (line 6289) | function Node(enc, parent) {
function Reporter (line 6898) | function Reporter(options) {
function ReporterError (line 6996) | function ReporterError(path, msg) {
function DERDecoder (line 7093) | function DERDecoder(entity) {
function DERNode (line 7113) | function DERNode(parent) {
function derDecodeTag (line 7344) | function derDecodeTag(buf, fail) {
function derDecodeLen (line 7377) | function derDecodeLen(buf, primitive, fail) {
function PEMDecoder (line 7421) | function PEMDecoder(entity) {
function DEREncoder (line 7476) | function DEREncoder(entity) {
function DERNode (line 7493) | function DERNode(parent) {
function two (line 7609) | function two(num) {
function encodeTag (line 7737) | function encodeTag(tag, primitive, cls, reporter) {
function PEMEncoder (line 7774) | function PEMEncoder(entity) {
function compare (line 7805) | function compare(a, b) {
function isBuffer (line 7829) | function isBuffer(b) {
function pToString (line 7868) | function pToString (obj) {
function isView (line 7871) | function isView(arrbuf) {
function getName (line 7905) | function getName(func) {
function truncate (line 7955) | function truncate(s, n) {
function inspect (line 7962) | function inspect(something) {
function getMessage (line 7970) | function getMessage(self) {
function fail (line 7987) | function fail(actual, expected, message, operator, stackStartFunction) {
function ok (line 8007) | function ok(value, message) {
function _deepEqual (line 8044) | function _deepEqual(actual, expected, strict, memos) {
function isArguments (line 8110) | function isArguments(object) {
function objEquiv (line 8114) | function objEquiv(a, b, strict, actualVisitedObjects) {
function notDeepStrictEqual (line 8166) | function notDeepStrictEqual(actual, expected, message) {
function expectedException (line 8191) | function expectedException(actual, expected) {
function _tryBlock (line 8215) | function _tryBlock(block) {
function _throws (line 8225) | function _throws(shouldThrow, block, expected, message) {
function _interopRequireDefault (line 8491) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function asyncify (line 8549) | function asyncify(func) {
function invokeCallback (line 8570) | function invokeCallback(callback, error, value) {
function rethrow (line 8578) | function rethrow(error) {
function _interopRequireDefault (line 8602) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function eachLimit (line 8624) | function eachLimit(coll, limit, iteratee, callback) {
function _interopRequireDefault (line 8643) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function doLimit (line 8683) | function doLimit(fn, limit) {
function _interopRequireDefault (line 8717) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _eachOfLimit (line 8719) | function _eachOfLimit(limit) {
function _interopRequireDefault (line 8794) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _interopRequireDefault (line 8817) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function createArrayIterator (line 8819) | function createArrayIterator(coll) {
function createES2015Iterator (line 8827) | function createES2015Iterator(iterator) {
function createObjectIterator (line 8837) | function createObjectIterator(obj) {
function iterator (line 8847) | function iterator(coll) {
function once (line 8863) | function once(fn) {
function onlyOnce (line 8879) | function onlyOnce(fn) {
function _interopRequireDefault (line 8903) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function fallback (line 8908) | function fallback(fn) {
function wrap (line 8912) | function wrap(defer) {
function slice (line 8940) | function slice(arrayLike, start) {
function _withoutIndex (line 8957) | function _withoutIndex(iteratee) {
function _interopRequireDefault (line 8975) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function isAsync (line 8979) | function isAsync(fn) {
function wrapAsync (line 8983) | function wrapAsync(asyncFn) {
function noop (line 9001) | function noop() {}
function identity (line 9002) | function identity(v) {
function toBool (line 9005) | function toBool(v) {
function notId (line 9008) | function notId(v) {
function only_once (line 9031) | function only_once(fn) {
function _once (line 9039) | function _once(fn) {
function _isArrayLike (line 9061) | function _isArrayLike(arr) {
function _arrayEach (line 9070) | function _arrayEach(arr, iterator) {
function _map (line 9079) | function _map(arr, iterator) {
function _range (line 9090) | function _range(count) {
function _reduce (line 9094) | function _reduce(arr, iterator, memo) {
function _forEachOf (line 9101) | function _forEachOf(object, iterator) {
function _indexOf (line 9107) | function _indexOf(arr, item) {
function _keyIterator (line 9124) | function _keyIterator(coll) {
function _restParam (line 9147) | function _restParam(func, startIndex) {
function _withoutIndex (line 9169) | function _withoutIndex(iterator) {
function done (line 9228) | function done(err) {
function iterate (line 9247) | function iterate() {
function _eachOfLimit (line 9281) | function _eachOfLimit(limit) {
function doParallel (line 9325) | function doParallel(fn) {
function doParallelLimit (line 9330) | function doParallelLimit(fn) {
function doSeries (line 9335) | function doSeries(fn) {
function _asyncMap (line 9341) | function _asyncMap(eachfn, arr, iterator, callback) {
function _filter (line 9394) | function _filter(eachfn, arr, iterator, callback) {
function _reject (line 9421) | function _reject(eachfn, arr, iterator, callback) {
function _createTester (line 9432) | function _createTester(eachfn, check, getResult) {
function _findGetResult (line 9467) | function _findGetResult(v, x) {
function comparator (line 9496) | function comparator(left, right) {
function addListener (line 9524) | function addListener(fn) {
function removeListener (line 9527) | function removeListener(fn) {
function taskComplete (line 9531) | function taskComplete() {
function ready (line 9579) | function ready() {
function listener (line 9591) | function listener() {
function parseTimes (line 9614) | function parseTimes(acc, t){
function wrappedTask (line 9638) | function wrappedTask(wrappedCallback, wrappedResults) {
function wrapIterator (line 9683) | function wrapIterator(iterator) {
function _parallel (line 9703) | function _parallel(eachfn, tasks, callback) {
function makeCallback (line 9733) | function makeCallback(index) {
function _concat (line 9756) | function _concat(eachfn, arr, fn, callback) {
function _queue (line 9843) | function _queue(worker, concurrency, payload) {
function _compareTasks (line 9985) | function _compareTasks(a, b){
function _binarySearch (line 9989) | function _binarySearch(sequence, item, compare) {
function _insert (line 10003) | function _insert(q, data, priority, callback) {
function _console_fn (line 10051) | function _console_fn(name) {
function _times (line 10114) | function _times(mapper) {
function _applyEach (line 10154) | function _applyEach(eachfn) {
function next (line 10180) | function next(err) {
function ensureAsync (line 10189) | function ensureAsync(fn) {
function _interopRequireDefault (line 10291) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function step (line 10297) | function step(key, arg) {
function _interopRequireDefault (line 10340) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function defineProperties (line 10343) | function defineProperties(target, props) {
function _interopRequireDefault (line 10376) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _interopRequireDefault (line 10402) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _interopRequireDefault (line 10426) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function encode (line 10455) | function encode (source) {
function decodeUnsafe (line 10482) | function decodeUnsafe (string) {
function decode (line 10510) | function decode (string) {
function placeHoldersCount (line 10544) | function placeHoldersCount (b64) {
function byteLength (line 10558) | function byteLength (b64) {
function toByteArray (line 10563) | function toByteArray (b64) {
function tripletToBase64 (line 10594) | function tripletToBase64 (num) {
function encodeChunk (line 10598) | function encodeChunk (uint8, start, end) {
function fromByteArray (line 10608) | function fromByteArray (uint8) {
function lpad (line 10660) | function lpad (str, padString, length) {
function binaryToByte (line 10665) | function binaryToByte (bin) {
function bytesToBinary (line 10669) | function bytesToBinary (bytes) {
function deriveChecksumBits (line 10675) | function deriveChecksumBits (entropyBuffer) {
function salt (line 10683) | function salt (password) {
function mnemonicToSeed (line 10687) | function mnemonicToSeed (mnemonic, password) {
function mnemonicToSeedHex (line 10694) | function mnemonicToSeedHex (mnemonic, password) {
function mnemonicToEntropy (line 10698) | function mnemonicToEntropy (mnemonic, wordlist) {
function entropyToMnemonic (line 10730) | function entropyToMnemonic (entropyHex, wordlist) {
function generateMnemonic (line 10754) | function generateMnemonic (strength, rng, wordlist) {
function validateMnemonic (line 10763) | function validateMnemonic (mnemonic, wordlist) {
function check (line 21059) | function check (buffer) {
function decode (line 21083) | function decode (buffer) {
function encode (line 21134) | function encode (r, s) {
function assert (line 21172) | function assert (val, msg) {
function inherits (line 21178) | function inherits (ctor, superCtor) {
function BN (line 21188) | function BN (number, base, endian) {
function parseHex (line 21353) | function parseHex (str, start, end) {
function parseBase (line 21407) | function parseBase (str, start, end, mul) {
function toBitArray (line 21794) | function toBitArray (num) {
function smallMulTo (line 22159) | function smallMulTo (self, num, out) {
function bigMulTo (line 22781) | function bigMulTo (self, num, out) {
function jumboMulTo (line 22822) | function jumboMulTo (self, num, out) {
function FFTM (line 22846) | function FFTM (x, y) {
function MPrime (line 24106) | function MPrime (name, p) {
function K256 (line 24156) | function K256 () {
function P224 (line 24223) | function P224 () {
function P192 (line 24231) | function P192 () {
function P25519 (line 24239) | function P25519 () {
function Red (line 24290) | function Red (m) {
function Mont (line 24524) | function Mont (m) {
function Rand (line 24606) | function Rand(rand) {
function encrypt (line 24686) | function encrypt (password, dataObj) {
function encryptWithKey (line 24699) | function encryptWithKey (key, dataObj) {
function decrypt (line 24718) | function decrypt (password, text) {
function decryptWithKey (line 24727) | function decryptWithKey (key, payload) {
function keyFromPassword (line 24742) | function keyFromPassword (password, salt) {
function serializeBufferFromStorage (line 24789) | function serializeBufferFromStorage (str) {
function serializeBufferForStorage (line 24800) | function serializeBufferForStorage (buffer) {
function unprefixedHex (line 24809) | function unprefixedHex (num) {
function generateSalt (line 24817) | function generateSalt (byteCount = 32) {
function fixup_uint32 (line 24836) | function fixup_uint32 (x) {
function scrub_vec (line 24841) | function scrub_vec (v) {
function Global (line 24848) | function Global () {
function bufferToArray (line 24911) | function bufferToArray (buf) {
function AES (line 24920) | function AES (key) {
function StreamCipher (line 25018) | function StreamCipher (mode, key, iv, decrypt) {
function xorTest (line 25095) | function xorTest (a, b) {
function getCiphers (line 25117) | function getCiphers () {
function Decipher (line 25133) | function Decipher (mode, key, iv) {
function Splitter (line 25169) | function Splitter () {
function unpad (line 25201) | function unpad (last) {
function createDecipheriv (line 25226) | function createDecipheriv (suite, password, iv) {
function createDecipher (line 25251) | function createDecipher (suite, password) {
function Cipher (line 25273) | function Cipher (mode, key, iv) {
function Splitter (line 25312) | function Splitter () {
function createCipheriv (line 25352) | function createCipheriv (suite, password, iv) {
function createCipher (line 25376) | function createCipher (suite, password) {
function GHASH (line 25394) | function GHASH (key) {
function toArray (line 25458) | function toArray (buf) {
function fromArray (line 25466) | function fromArray (out) {
function fixup_uint32 (line 25476) | function fixup_uint32 (x) {
function xor (line 25481) | function xor (a, b) {
function encryptStart (line 25709) | function encryptStart (self, data, decrypt) {
function encryptByte (line 25720) | function encryptByte (self, byteParam, decrypt) {
function shiftIn (line 25744) | function shiftIn (buffer, value) {
function encryptByte (line 25758) | function encryptByte (self, byteParam, decrypt) {
function incr32 (line 25779) | function incr32 (iv) {
function getBlock (line 25794) | function getBlock (self) {
function getBlock (line 25822) | function getBlock (self) {
function StreamCipher (line 25846) | function StreamCipher (mode, key, iv, decrypt) {
function createCipher (line 25873) | function createCipher (suite, password) {
function createDecipher (line 25888) | function createDecipher (suite, password) {
function createCipheriv (line 25904) | function createCipheriv (suite, key, iv) {
function createDecipheriv (line 25918) | function createDecipheriv (suite, key, iv) {
function getCiphers (line 25937) | function getCiphers () {
function DES (line 25960) | function DES (opts) {
function blind (line 26020) | function blind(priv) {
function crt (line 26029) | function crt(msg, priv) {
function getr (line 26049) | function getr(priv) {
function Sign (line 26714) | function Sign (algorithm) {
function Verify (line 26747) | function Verify (algorithm) {
function createSign (line 26779) | function createSign (algorithm) {
function createVerify (line 26783) | function createVerify (algorithm) {
function sign (line 26805) | function sign (hash, key, hashType, signType, tag) {
function ecSign (line 26829) | function ecSign (hash, priv) {
function dsaSign (line 26840) | function dsaSign (hash, priv, algo) {
function toDER (line 26862) | function toDER (r, s) {
function getKey (line 26876) | function getKey (x, q, hash, algo) {
function bits2int (line 26896) | function bits2int (obits, q) {
function bits2octets (line 26903) | function bits2octets (bits, q) {
function makeKey (line 26915) | function makeKey (q, kv, algo) {
function makeR (line 26935) | function makeR (g, k, p, q) {
function verify (line 26952) | function verify (sig, hash, key, signType, tag) {
function ecVerify (line 26992) | function ecVerify (sig, hash, pub) {
function dsaVerify (line 27002) | function dsaVerify (sig, hash, pub) {
function checkValue (line 27023) | function checkValue (b, q) {
function utf8ToBinaryString (line 27034) | function utf8ToBinaryString(str) {
function utf8ToBuffer (line 27045) | function utf8ToBuffer(str) {
function utf8ToBase64 (line 27051) | function utf8ToBase64(str) {
function binaryStringToUtf8 (line 27056) | function binaryStringToUtf8(binstr) {
function bufferToUtf8 (line 27068) | function bufferToUtf8(buf) {
function base64ToUtf8 (line 27074) | function base64ToUtf8(b64) {
function bufferToBinaryString (line 27080) | function bufferToBinaryString(buf) {
function bufferToBase64 (line 27088) | function bufferToBase64(arr) {
function binaryStringToBuffer (line 27093) | function binaryStringToBuffer(binstr) {
function base64ToBuffer (line 27109) | function base64ToBuffer(base64) {
function sha256x2 (line 27148) | function sha256x2 (buffer) {
function encode (line 27154) | function encode (payload) {
function decodeRaw (line 27163) | function decodeRaw (buffer) {
function decodeUnsafe (line 27177) | function decodeUnsafe (string) {
function decode (line 27185) | function decode (string) {
function typedArraySupport (line 27382) | function typedArraySupport () {
function kMaxLength (line 27394) | function kMaxLength () {
function createBuffer (line 27400) | function createBuffer (that, length) {
function Buffer (line 27429) | function Buffer (arg, encodingOrOffset, length) {
function from (line 27454) | function from (that, value, encodingOrOffset, length) {
function assertSize (line 27495) | function assertSize (size) {
function alloc (line 27503) | function alloc (that, size, fill, encoding) {
function allocUnsafe (line 27527) | function allocUnsafe (that, size) {
function fromString (line 27551) | function fromString (that, string, encoding) {
function fromArrayLike (line 27575) | function fromArrayLike (that, array) {
function fromArrayBuffer (line 27584) | function fromArrayBuffer (that, array, byteOffset, length) {
function fromObject (line 27614) | function fromObject (that, obj) {
function checked (line 27644) | function checked (length) {
function SlowBuffer (line 27654) | function SlowBuffer (length) {
function byteLength (line 27737) | function byteLength (string, encoding) {
function slowToString (line 27782) | function slowToString (encoding, start, end) {
function swap (line 27856) | function swap (b, n, m) {
function bidirectionalIndexOf (line 27990) | function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
function arrayIndexOf (line 28047) | function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
function hexWrite (line 28115) | function hexWrite (buf, string, offset, length) {
function utf8Write (line 28142) | function utf8Write (buf, string, offset, length) {
function asciiWrite (line 28146) | function asciiWrite (buf, string, offset, length) {
function latin1Write (line 28150) | function latin1Write (buf, string, offset, length) {
function base64Write (line 28154) | function base64Write (buf, string, offset, length) {
function ucs2Write (line 28158) | function ucs2Write (buf, string, offset, length) {
function base64Slice (line 28241) | function base64Slice (buf, start, end) {
function utf8Slice (line 28249) | function utf8Slice (buf, start, end) {
function decodeCodePointsArray (line 28327) | function decodeCodePointsArray (codePoints) {
function asciiSlice (line 28345) | function asciiSlice (buf, start, end) {
function latin1Slice (line 28355) | function latin1Slice (buf, start, end) {
function hexSlice (line 28365) | function hexSlice (buf, start, end) {
function utf16leSlice (line 28378) | function utf16leSlice (buf, start, end) {
function checkOffset (line 28426) | function checkOffset (offset, ext, length) {
function checkInt (line 28587) | function checkInt (buf, value, offset, ext, max, min) {
function objectWriteUInt16 (line 28640) | function objectWriteUInt16 (buf, value, offset, littleEndian) {
function objectWriteUInt32 (line 28674) | function objectWriteUInt32 (buf, value, offset, littleEndian) {
function checkIEEE754 (line 28824) | function checkIEEE754 (buf, value, offset, ext, max, min) {
function writeFloat (line 28829) | function writeFloat (buf, value, offset, littleEndian, noAssert) {
function writeDouble (line 28845) | function writeDouble (buf, value, offset, littleEndian, noAssert) {
function base64clean (line 28978) | function base64clean (str) {
function stringtrim (line 28990) | function stringtrim (str) {
function toHex (line 28995) | function toHex (n) {
function utf8ToBytes (line 29000) | function utf8ToBytes (string, units) {
function asciiToBytes (line 29080) | function asciiToBytes (str) {
function utf16leToBytes (line 29089) | function utf16leToBytes (str, units) {
function base64ToBytes (line 29105) | function base64ToBytes (str) {
function blitBuffer (line 29109) | function blitBuffer (src, dst, offset, length) {
function isnan (line 29117) | function isnan (val) {
function CipherBase (line 29136) | function CipherBase (hashMode) {
function clone (line 29246) | function clone(parent, circular, depth, prototype) {
function __objToStr (line 29350) | function __objToStr(o) {
function __isDate (line 29355) | function __isDate(o) {
function __isArray (line 29360) | function __isArray(o) {
function __isRegExp (line 29365) | function __isRegExp(o) {
function __getRegExpFlags (line 29370) | function __getRegExpFlags(re) {
function encode (line 29392) | function encode (payload, version) {
function decode (line 29412) | function decode (base58str, version) {
function isValid (line 29441) | function isValid (base58str, version) {
function createEncoder (line 29451) | function createEncoder (version) {
function createDecoder (line 29457) | function createDecoder (version) {
function createValidator (line 29463) | function createValidator (version) {
function sha256x2 (line 29469) | function sha256x2 (buffer) {
function encode (line 29499) | function encode(buffer) {
function decode (line 29534) | function decode(string) {
function isArray (line 31349) | function isArray(arg) {
function isBoolean (line 31357) | function isBoolean(arg) {
function isNull (line 31362) | function isNull(arg) {
function isNullOrUndefined (line 31367) | function isNullOrUndefined(arg) {
function isNumber (line 31372) | function isNumber(arg) {
function isString (line 31377) | function isString(arg) {
function isSymbol (line 31382) | function isSymbol(arg) {
function isUndefined (line 31387) | function isUndefined(arg) {
function isRegExp (line 31392) | function isRegExp(re) {
function isObject (line 31397) | function isObject(arg) {
function isDate (line 31402) | function isDate(d) {
function isError (line 31407) | function isError(e) {
function isFunction (line 31412) | function isFunction(arg) {
function isPrimitive (line 31417) | function isPrimitive(arg) {
function objectToString (line 31429) | function objectToString(o) {
function ECDH (line 31480) | function ECDH(curve) {
function formatReturnValue (line 31542) | function formatReturnValue(bn, enc, len) {
function HashNoConstructor (line 31570) | function HashNoConstructor (hash) {
function Hash (line 31591) | function Hash (hash) {
function toArray (line 31626) | function toArray (buf) {
function core_md5 (line 31666) | function core_md5 (x, len) {
function md5_cmn (line 31762) | function md5_cmn (q, a, b, x, s, t) {
function md5_ff (line 31766) | function md5_ff (a, b, c, d, x, s, t) {
function md5_gg (line 31770) | function md5_gg (a, b, c, d, x, s, t) {
function md5_hh (line 31774) | function md5_hh (a, b, c, d, x, s, t) {
function md5_ii (line 31778) | function md5_ii (a, b, c, d, x, s, t) {
function safe_add (line 31786) | function safe_add (x, y) {
function bit_rol (line 31795) | function bit_rol (num, cnt) {
function Hmac (line 31816) | function Hmac (alg, key) {
function Hmac (line 31877) | function Hmac (alg, key) {
function isSpecificValue (line 32025) | function isSpecificValue(val) {
function cloneSpecificValue (line 32033) | function cloneSpecificValue(val) {
function deepCloneArray (line 32050) | function deepCloneArray(arr) {
function denodeify (line 32145) | function denodeify(nodeStyleFunction, filter) {
function CBCState (line 32210) | function CBCState(iv) {
function instantiate (line 32218) | function instantiate(Base) {
function Cipher (line 32274) | function Cipher(options) {
function DESState (line 32422) | function DESState() {
function DES (line 32427) | function DES(options) {
function EDEState (line 32567) | function EDEState(type, key) {
function EDE (line 32589) | function EDE(options) {
function getDiffieHellman (line 32879) | function getDiffieHellman (mod) {
function createDiffieHellman (line 32890) | function createDiffieHellman (prime, enc, generator, genc) {
function setPublicKey (line 32932) | function setPublicKey(pub, enc) {
function setPrivateKey (line 32941) | function setPrivateKey(priv, enc) {
function checkPrime (line 32951) | function checkPrime(prime, generator) {
function DH (line 33004) | function DH(prime, generator, malleable) {
function formatReturnValue (line 33076) | function formatReturnValue(bn, enc) {
function _getPrimes (line 33108) | function _getPrimes() {
function simpleSieve (line 33130) | function simpleSieve(p) {
function fermatTest (line 33145) | function fermatTest(p) {
function findPrime (line 33150) | function findPrime(bits, gen) {
function Proto (line 33245) | function Proto (cons, opts) {
function indexOf (line 33389) | function indexOf (xs, x) {
function Scrubber (line 33400) | function Scrubber (callbacks) {
function dnode (line 33479) | function dnode (cons, opts) {
function BaseCurve (line 33647) | function BaseCurve(type, conf) {
function BasePoint (line 33886) | function BasePoint(curve, type) {
function EdwardsCurve (line 34025) | function EdwardsCurve(conf) {
function Point (line 34129) | function Point(curve, x, y, z, t) {
function MontCurve (line 34470) | function MontCurve(conf) {
function Point (line 34491) | function Point(curve, x, z) {
function ShortCurve (line 34652) | function ShortCurve(conf) {
function Point (line 34893) | function Point(curve, x, y, isRed) {
function obj2point (line 34977) | function obj2point(obj) {
function JPoint (line 35131) | function JPoint(curve, x, y, z) {
function PresetCurve (line 35591) | function PresetCurve(options) {
function defineCurve (line 35607) | function defineCurve(name, options) {
function EC (line 35800) | function EC(options) {
function KeyPair (line 36038) | function KeyPair(ec, options) {
function Signature (line 36160) | function Signature(options, enc) {
function Position (line 36177) | function Position() {
function getLength (line 36181) | function getLength(buf, p) {
function rmPadding (line 36196) | function rmPadding(buf) {
function constructLength (line 36246) | function constructLength(arr, len) {
function EDDSA (line 36299) | function EDDSA(curve) {
function KeyPair (line 36426) | function KeyPair(eddsa, params) {
function Signature (line 36524) | function Signature(eddsa, sig) {
function getNAF (line 37371) | function getNAF(num, w) {
function getJSF (line 37401) | function getJSF(k1, k2) {
function cachedProperty (line 37457) | function cachedProperty(obj, name, computer) {
function parseBytes (line 37466) | function parseBytes(bytes) {
function intFromLE (line 37472) | function intFromLE(bytes) {
function incrementHexNumber (line 37633) | function incrementHexNumber(hexNum) {
function formatHex (line 37637) | function formatHex(hexNum) {
function _interopRequireDefault (line 37675) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function RpcBlockTracker (line 37687) | function RpcBlockTracker() {
function start (line 37778) | function start() {
function _setTrackingBlock (line 37822) | function _setTrackingBlock(_x3) {
function _setCurrentBlock (line 37856) | function _setCurrentBlock(_x4) {
function _pollForNextBlock (line 37884) | function _pollForNextBlock() {
function _performSync (line 37981) | function _performSync() {
function padToEven (line 38051) | function padToEven(value) {
function intToHex (line 38070) | function intToHex(i) {
function intToBuffer (line 38081) | function intToBuffer(i) {
function getBinarySize (line 38092) | function getBinarySize(str) {
function arrayContainsArray (line 38109) | function arrayContainsArray(superset, subset, some) {
function toUtf8 (line 38129) | function toUtf8(hex) {
function toAscii (line 38142) | function toAscii(hex) {
function fromUtf8 (line 38167) | function fromUtf8(stringValue) {
function fromAscii (line 38181) | function fromAscii(stringValue) {
function getKeys (line 38202) | function getKeys(params, key, allowEmpty) {
function isHexString (line 38234) | function isHexString(value, length) {
class HdKeyring (line 38274) | class HdKeyring extends EventEmitter {
method constructor (line 38278) | constructor (opts = {}) {
method serialize (line 38284) | serialize () {
method deserialize (line 38292) | deserialize (opts = {}) {
method addAccounts (line 38310) | addAccounts (numberOfAccounts = 1) {
method getAccounts (line 38327) | getAccounts () {
method signTransaction (line 38332) | signTransaction (address, tx) {
method signMessage (line 38341) | signMessage (withAccount, data) {
method signPersonalMessage (line 38351) | signPersonalMessage (withAccount, msgHex) {
method newGethSignMessage (line 38360) | newGethSignMessage (withAccount, msgHex) {
method exportAccount (line 38370) | exportAccount (address) {
method _initFromMnemonic (line 38378) | _initFromMnemonic (mnemonic) {
method _getWalletForAccount (line 38386) | _getWalletForAccount (account) {
function _interopRequireDefault (line 38420) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function getter (line 39013) | function getter() {
function setter (line 39016) | function setter(v) {
function EthQuery (line 39096) | function EthQuery(provider){
function generateFnFor (line 39165) | function generateFnFor(methodName){
function generateFnWithDefaultBlockFor (line 39177) | function generateFnWithDefaultBlockFor(argCount, methodName){
function createPayload (line 39191) | function createPayload(data){
function getPublicKeyFor (line 39243) | function getPublicKeyFor (msgParams) {
function padWithZeroes (line 39254) | function padWithZeroes (number, length) {
class SimpleKeyring (line 39274) | class SimpleKeyring extends EventEmitter {
method constructor (line 39278) | constructor (opts) {
method serialize (line 39285) | serialize () {
method deserialize (line 39289) | deserialize (privateKeys = []) {
method addAccounts (line 39305) | addAccounts (n = 1) {
method getAccounts (line 39315) | getAccounts () {
method signTransaction (line 39320) | signTransaction (address, tx) {
method signMessage (line 39328) | signMessage (withAccount, data) {
method signPersonalMessage (line 39338) | signPersonalMessage (withAccount, msgHex) {
method exportAccount (line 39347) | exportAccount (address) {
method _getWalletForAccount (line 39355) | _getWalletForAccount (account) {
function defineProperties (line 39613) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 39615) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Transaction (line 39662) | function Transaction(data) {
function getter (line 40547) | function getter() {
function setter (line 40550) | function setter(v) {
function getter (line 41275) | function getter () {
function setter (line 41278) | function setter (v) {
function EthereumHDKey (line 41353) | function EthereumHDKey () {
function fromHDKey (line 41359) | function fromHDKey (hdkey) {
function assert (line 41411) | function assert (val, msg) {
function decipherBuffer (line 41417) | function decipherBuffer (decipher, data) {
function getter (line 42331) | function getter () {
function setter (line 42334) | function setter (v) {
function assert (line 42414) | function assert (val, msg) {
function decipherBuffer (line 42420) | function decipherBuffer (decipher, data) {
function evp_kdf (line 42437) | function evp_kdf (data, salt, opts) {
function decodeCryptojsSalt (line 42475) | function decodeCryptojsSalt (input) {
function kryptoKitBrokenScryptSeed (line 42546) | function kryptoKitBrokenScryptSeed (buf) {
function EventEmitter (line 42663) | function EventEmitter() {
function g (line 42801) | function g() {
function isFunction (line 42929) | function isFunction(arg) {
function isNumber (line 42933) | function isNumber(arg) {
function isObject (line 42937) | function isObject(arg) {
function isUndefined (line 42941) | function isUndefined(arg) {
function EVP_BytesToKey (line 42949) | function EVP_BytesToKey (password, salt, keyLen, ivLen) {
function Extension (line 43042) | function Extension () {
function fetchPonyfill (line 43107) | function fetchPonyfill(options) {
function forEach (line 43609) | function forEach(list, iterator, context) {
function forEachArray (line 43626) | function forEachArray(array, iterator, context) {
function forEachString (line 43634) | function forEachString(string, iterator, context) {
function forEachObject (line 43641) | function forEachObject(object, iterator, context) {
function HashBase (line 43672) | function HashBase (blockSize) {
function BlockHash (line 43775) | function BlockHash() {
function Hmac (line 43870) | function Hmac(hash, key, enc) {
function RIPEMD160 (line 43923) | function RIPEMD160() {
function f (line 43988) | function f(j, x, y, z) {
function K (line 44001) | function K(j) {
function Kh (line 44014) | function Kh(j) {
function SHA256 (line 44149) | function SHA256() {
function SHA224 (line 44215) | function SHA224() {
function SHA512 (line 44239) | function SHA512() {
function SHA384 (line 44386) | function SHA384() {
function SHA1 (line 44415) | function SHA1() {
function ch32 (line 44472) | function ch32(x, y, z) {
function maj32 (line 44476) | function maj32(x, y, z) {
function p32 (line 44480) | function p32(x, y, z) {
function s0_256 (line 44484) | function s0_256(x) {
function s1_256 (line 44488) | function s1_256(x) {
function g0_256 (line 44492) | function g0_256(x) {
function g1_256 (line 44496) | function g1_256(x) {
function ft_1 (line 44500) | function ft_1(s, x, y, z) {
function ch64_hi (line 44509) | function ch64_hi(xh, xl, yh, yl, zh, zl) {
function ch64_lo (line 44516) | function ch64_lo(xh, xl, yh, yl, zh, zl) {
function maj64_hi (line 44523) | function maj64_hi(xh, xl, yh, yl, zh, zl) {
function maj64_lo (line 44530) | function maj64_lo(xh, xl, yh, yl, zh, zl) {
function s0_512_hi (line 44537) | function s0_512_hi(xh, xl) {
function s0_512_lo (line 44548) | function s0_512_lo(xh, xl) {
function s1_512_hi (line 44559) | function s1_512_hi(xh, xl) {
function s1_512_lo (line 44570) | function s1_512_lo(xh, xl) {
function g0_512_hi (line 44581) | function g0_512_hi(xh, xl) {
function g0_512_lo (line 44592) | function g0_512_lo(xh, xl) {
function g1_512_hi (line 44603) | function g1_512_hi(xh, xl) {
function g1_512_lo (line 44614) | function g1_512_lo(xh, xl) {
function toArray (line 44629) | function toArray(msg, enc) {
function toHex (line 44661) | function toHex(msg) {
function htonl (line 44669) | function htonl(w) {
function toHex32 (line 44678) | function toHex32(msg, endian) {
function zero2 (line 44690) | function zero2(word) {
function zero8 (line 44698) | function zero8(word) {
function join32 (line 44718) | function join32(msg, start, end, endian) {
function split32 (line 44734) | function split32(msg, endian) {
function rotr32 (line 44754) | function rotr32(w, b) {
function rotl32 (line 44759) | function rotl32(w, b) {
function sum32 (line 44764) | function sum32(a, b) {
function sum32_3 (line 44769) | function sum32_3(a, b, c) {
function sum32_4 (line 44774) | function sum32_4(a, b, c, d) {
function sum32_5 (line 44779) | function sum32_5(a, b, c, d, e) {
function assert (line 44784) | function assert(cond, msg) {
function sum64 (line 44792) | function sum64(buf, pos, ah, al) {
function sum64_hi (line 44803) | function sum64_hi(ah, al, bh, bl) {
function sum64_lo (line 44810) | function sum64_lo(ah, al, bh, bl) {
function sum64_4_hi (line 44816) | function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
function sum64_4_lo (line 44831) | function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
function sum64_5_hi (line 44837) | function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
function sum64_5_lo (line 44854) | function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
function rotr64_hi (line 44861) | function rotr64_hi(ah, al, num) {
function rotr64_lo (line 44867) | function rotr64_lo(ah, al, num) {
function shr64_hi (line 44873) | function shr64_hi(ah, al, num) {
function shr64_lo (line 44878) | function shr64_lo(ah, al, num) {
function HDKey (line 44898) | function HDKey (versions) {
function serialize (line 45089) | function serialize (hdkey, version, key) {
function hash160 (line 45106) | function hash160 (buf) {
function HmacDRBG (line 45122) | function HmacDRBG(options) {
function isBuffer (line 45366) | function isBuffer (obj) {
function isSlowBuffer (line 45371) | function isSlowBuffer (obj) {
function isFunction (line 45388) | function isFunction (fn) {
function IdIterator (line 45521) | function IdIterator(opts){
function quote (line 45913) | function quote(string) {
function str (line 45927) | function str(key, holder) {
function Keccak (line 46094) | function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
function Shake (line 46181) | function Shake (rate, capacity, delimitedSuffix, options) {
function Keccak (line 46446) | function Keccak () {
function arrayLikeKeys (line 46547) | function arrayLikeKeys(value, inherited) {
function baseGetTag (line 46595) | function baseGetTag(value) {
function baseIsArguments (line 46620) | function baseIsArguments(value) {
function baseIsTypedArray (line 46681) | function baseIsTypedArray(value) {
function baseKeys (line 46705) | function baseKeys(object) {
function baseTimes (line 46730) | function baseTimes(n, iteratee) {
function baseUnary (line 46750) | function baseUnary(func) {
function getRawTag (line 46792) | function getRawTag(value) {
function isIndex (line 46829) | function isIndex(value, length) {
function isPrototype (line 46849) | function isPrototype(value) {
function objectToString (line 46908) | function objectToString(value) {
function overArg (line 46923) | function overArg(func, transform) {
function isArrayLike (line 47037) | function isArrayLike(value) {
function isFunction (line 47110) | function isFunction(value) {
function isLength (line 47152) | function isLength(value) {
function isObject (line 47185) | function isObject(value) {
function isObjectLike (line 47217) | function isObjectLike(value) {
function keys (line 47285) | function keys(object) {
function noop (line 47304) | function noop() {
function stubFalse (line 47324) | function stubFalse() {
function realMethod (line 47351) | function realMethod(methodName) {
function bindMethod (line 47363) | function bindMethod(obj, methodName) {
function enableLoggingWhenConsoleArrives (line 47381) | function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {
function replaceLoggingMethods (line 47390) | function replaceLoggingMethods(level, loggerName) {
function defaultMethodFactory (line 47400) | function defaultMethodFactory(methodName, level, loggerName) {
function Logger (line 47414) | function Logger(name, defaultLevel, factory) {
function MillerRabin (line 47559) | function MillerRabin(rand) {
function assert (line 47673) | function assert(val, msg) {
function toArray (line 47688) | function toArray(msg, enc) {
function zero2 (line 47720) | function zero2(word) {
function toHex (line 47728) | function toHex(msg) {
function _interopRequireDefault (line 47774) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function ObservableStore (line 47782) | function ObservableStore() {
function _interopRequireDefault (line 47932) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function ComposedStore (line 47939) | function ComposedStore(children) {
function updateFromChild (line 47963) | function updateFromChild(childValue) {
function _interopRequireDefault (line 48003) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function LocalStorageStore (line 48010) | function LocalStorageStore() {
function transformStore (line 48059) | function transformStore(syncTransformFn) {
function once (line 48091) | function once (fn) {
function onceStrict (line 48101) | function onceStrict (fn) {
function parseKeys (line 48385) | function parseKeys (buffer) {
function decrypt (line 48470) | function decrypt (data, password) {
function checkNative (line 48545) | function checkNative (algo) {
function browserPbkdf2 (line 48565) | function browserPbkdf2 (password, salt, iterations, length, algo) {
function resolvePromise (line 48581) | function resolvePromise (promise, callback) {
function Hmac (line 48679) | function Hmac (alg, key, saltLen) {
function getDigest (line 48714) | function getDigest (alg) {
function nextTick (line 48846) | function nextTick(fn, arg1, arg2, arg3) {
function defaultSetTimout (line 48893) | function defaultSetTimout() {
function defaultClearTimeout (line 48896) | function defaultClearTimeout () {
function runTimeout (line 48919) | function runTimeout(fun) {
function runClearTimeout (line 48944) | function runClearTimeout(marker) {
function cleanUpNextTick (line 48976) | function cleanUpNextTick() {
function drainQueue (line 48991) | function drainQueue() {
function Item (line 49029) | function Item(fun, array) {
function noop (line 49043) | function noop() {}
function filter (line 49077) | function filter(fn, ctx) {
function i2ops (line 49131) | function i2ops(c) {
function oaep (line 49181) | function oaep(key, msg){
function pkcs1 (line 49208) | function pkcs1(key, msg, reverse){
function compare (line 49232) | function compare(a, b){
function oaep (line 49295) | function oaep(key, msg){
function pkcs1 (line 49312) | function pkcs1(key, msg, reverse){
function nonZero (line 49327) | function nonZero(len, crypto) {
function withPublic (line 49349) | function withPublic(paddedMsg, key) {
function error (line 49517) | function error(type) {
function map (line 49529) | function map(array, fn) {
function mapDomain (line 49548) | function mapDomain(string, fn) {
function ucs2decode (line 49577) | function ucs2decode(string) {
function ucs2encode (line 49611) | function ucs2encode(array) {
function basicToDigit (line 49633) | function basicToDigit(codePoint) {
function digitToBasic (line 49657) | function digitToBasic(digit, flag) {
function adapt (line 49668) | function adapt(delta, numPoints, firstTime) {
function decode (line 49685) | function decode(input) {
function encode (line 49786) | function encode(input) {
function toUnicode (line 49904) | function toUnicode(input) {
function toASCII (line 49923) | function toASCII(input) {
function hasOwnProperty (line 50014) | function hasOwnProperty(obj, prop) {
function map (line 50143) | function map (xs, f) {
function oldBrowser (line 50170) | function oldBrowser () {
function randomBytes (line 50182) | function randomBytes (size, cb) {
function Duplex (line 50249) | function Duplex(options) {
function onend (line 50266) | function onend() {
function onEndNT (line 50276) | function onEndNT(self) {
function forEach (line 50280) | function forEach(xs, f) {
function PassThrough (line 50303) | function PassThrough(options) {
function prependListener (line 50371) | function prependListener(emitter, event, fn) {
function ReadableState (line 50385) | function ReadableState(options, stream) {
function Readable (line 50454) | function Readable(options) {
function readableAddChunk (line 50497) | function readableAddChunk(stream, state, chunk, encoding, addToFront) {
function needMoreData (line 50552) | function needMoreData(state) {
function computeNewHighWaterMark (line 50566) | function computeNewHighWaterMark(n) {
function howMuchToRead (line 50585) | function howMuchToRead(n, state) {
function chunkInvalid (line 50704) | function chunkInvalid(state, chunk) {
function onEofChunk (line 50712) | function onEofChunk(stream, state) {
function emitReadable (line 50730) | function emitReadable(stream) {
function emitReadable_ (line 50740) | function emitReadable_(stream) {
function maybeReadMore (line 50752) | function maybeReadMore(stream, state) {
function maybeReadMore_ (line 50759) | function maybeReadMore_(stream, state) {
function onunpipe (line 50803) | function onunpipe(readable) {
function onend (line 50810) | function onend() {
function cleanup (line 50823) | function cleanup() {
function ondata (line 50851) | function ondata(chunk) {
function onerror (line 50871) | function onerror(er) {
function onclose (line 50882) | function onclose() {
function onfinish (line 50887) | function onfinish() {
function unpipe (line 50894) | function unpipe() {
function pipeOnDrain (line 50911) | function pipeOnDrain(src) {
function nReadingNextTick (line 50997) | function nReadingNextTick(self) {
function resume (line 51014) | function resume(stream, state) {
function resume_ (line 51021) | function resume_(stream, state) {
function flow (line 51044) | function flow(stream) {
function fromList (line 51119) | function fromList(n, state) {
function fromListPartial (line 51139) | function fromListPartial(n, list, hasStrings) {
function copyFromBufferString (line 51159) | function copyFromBufferString(n, list) {
function copyFromBuffer (line 51188) | function copyFromBuffer(n, list) {
function endReadable (line 51215) | function endReadable(stream) {
function endReadableNT (line 51228) | function endReadableNT(state, stream) {
function forEach (line 51237) | function forEach(xs, f) {
function indexOf (line 51243) | function indexOf(xs, x) {
function TransformState (line 51306) | function TransformState(stream) {
function afterTransform (line 51318) | function afterTransform(stream, er, data) {
function Transform (line 51340) | function Transform(options) {
function done (line 51417) | function done(stream, er, data) {
function nop (line 51479) | function nop() {}
function WriteReq (line 51481) | function WriteReq(chunk, encoding, cb) {
function WritableState (line 51488) | function WritableState(options, stream) {
function Writable (line 51622) | function Writable(options) {
function writeAfterEnd (line 51655) | function writeAfterEnd(stream, cb) {
function validChunk (line 51665) | function validChunk(stream, state, chunk, cb) {
function decodeChunk (line 51728) | function decodeChunk(state, chunk, encoding) {
function writeOrBuffer (line 51738) | function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
function doWrite (line 51767) | function doWrite(stream, state, writev, len, chunk, encoding, cb) {
function onwriteError (line 51776) | function onwriteError(stream, state, sync, er, cb) {
function onwriteStateUpdate (line 51784) | function onwriteStateUpdate(state) {
function onwrite (line 51791) | function onwrite(stream, er) {
function afterWrite (line 51816) | function afterWrite(stream, state, finished, cb) {
function onwriteDrain (line 51826) | function onwriteDrain(stream, state) {
function clearBuffer (line 51834) | function clearBuffer(stream, state) {
function needFinish (line 51921) | function needFinish(state) {
function prefinish (line 51925) | function prefinish(stream, state) {
function finishMaybe (line 51932) | function finishMaybe(stream, state) {
function endWritable (line 51946) | function endWritable(stream, state, cb) {
function CorkedRequest (line 51958) | function CorkedRequest(state) {
function BufferList (line 51990) | function BufferList() {
function _normalizeEncoding (line 52065) | function _normalizeEncoding(enc) {
function normalizeEncoding (line 52095) | function normalizeEncoding(enc) {
function StringDecoder (line 52105) | function StringDecoder(encoding) {
function utf8CheckByte (line 52166) | function utf8CheckByte(byte) {
function utf8CheckIncomplete (line 52174) | function utf8CheckIncomplete(self, buf, i) {
function utf8CheckExtraBytes (line 52207) | function utf8CheckExtraBytes(self, buf, p) {
function utf8FillLast (line 52227) | function utf8FillLast(buf) {
function utf8Text (line 52242) | function utf8Text(buf, i) {
function utf8End (line 52253) | function utf8End(buf) {
function utf16Text (line 52263) | function utf16Text(buf, i) {
function utf16End (line 52286) | function utf16End(buf) {
function base64Text (line 52295) | function base64Text(buf, i) {
function base64End (line 52309) | function base64End(buf) {
function simpleWrite (line 52316) | function simpleWrite(buf) {
function simpleEnd (line 52320) | function simpleEnd(buf) {
function wrap (line 52416) | function wrap(innerFn, outerFn, self, tryLocsList) {
function tryCatch (line 52440) | function tryCatch(fn, obj, arg) {
function Generator (line 52461) | function Generator() {}
function GeneratorFunction (line 52462) | function GeneratorFunction() {}
function GeneratorFunctionPrototype (line 52463) | function GeneratorFunctionPrototype() {}
function defineIteratorMethods (line 52491) | function defineIteratorMethods(prototype) {
function AsyncIterator (line 52530) | function AsyncIterator(generator) {
function makeInvokeMethod (line 52630) | function makeInvokeMethod(innerFn, self, context) {
function maybeInvokeDelegate (line 52712) | function maybeInvokeDelegate(delegate, context) {
function pushTryEntry (line 52809) | function pushTryEntry(locs) {
function resetTryEntry (line 52824) | function resetTryEntry(entry) {
function Context (line 52831) | function Context(tryLocsList) {
function values (line 52867) | function values(iterable) {
function doneResult (line 52903) | function doneResult() {
function handle (line 52954) | function handle(loc, caught) {
function RIPEMD160 (line 53122) | function RIPEMD160 () {
function rotl (line 53384) | function rotl (x, n) {
function fn1 (line 53388) | function fn1 (a, b, c, d, e, m, k, s) {
function fn2 (line 53392) | function fn2 (a, b, c, d, e, m, k, s) {
function fn3 (line 53396) | function fn3 (a, b, c, d, e, m, k, s) {
function fn4 (line 53400) | function fn4 (a, b, c, d, e, m, k, s) {
function fn5 (line 53404) | function fn5 (a, b, c, d, e, m, k, s) {
function safeParseInt (line 53439) | function safeParseInt (v, base) {
function encodeLength (line 53447) | function encodeLength (len, offset) {
function _decode (line 53503) | function _decode (input) {
function isHexPrefixed (line 53586) | function isHexPrefixed (str) {
function stripHexPrefix (line 53591) | function stripHexPrefix (str) {
function intToHex (line 53598) | function intToHex (i) {
function padToEven (line 53607) | function padToEven (a) {
function intToBuffer (line 53612) | function intToBuffer (i) {
function toBuffer (line 53617) | function toBuffer (v) {
function scrypt (line 53657) | function scrypt (key, salt, N, r, p, dkLen, progressCallback) {
function arraycopy (line 53820) | function arraycopy (src, srcPos, dest, destPos, length) {
function loadCompressedPublicKey (line 54098) | function loadCompressedPublicKey (first, xBuffer) {
function loadUncompressedPublicKey (line 54112) | function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
function loadPublicKey (line 54132) | function loadPublicKey (publicKey) {
function initCompressedValue (line 54343) | function initCompressedValue (value, defaultValue) {
function semaphore (line 54614) | function semaphore(capacity) {
function Hash (line 54719) | function Hash (blockSize, finalSize) {
function Sha (line 54825) | function Sha () {
function rotl5 (line 54844) | function rotl5 (num) {
function rotl30 (line 54848) | function rotl30 (num) {
function ft (line 54852) | function ft (s, b, c, d) {
function Sha1 (line 54923) | function Sha1 () {
function rotl1 (line 54942) | function rotl1 (num) {
function rotl5 (line 54946) | function rotl5 (num) {
function rotl30 (line 54950) | function rotl30 (num) {
function ft (line 54954) | function ft (s, b, c, d) {
function Sha224 (line 55021) | function Sha224 () {
function Sha256 (line 55095) | function Sha256 () {
function ch (line 55118) | function ch (x, y, z) {
function maj (line 55122) | function maj (x, y, z) {
function sigma0 (line 55126) | function sigma0 (x) {
function sigma1 (line 55130) | function sigma1 (x) {
function gamma0 (line 55134) | function gamma0 (x) {
function gamma1 (line 55138) | function gamma1 (x) {
function Sha384 (line 55207) | function Sha384 () {
function writeInt64BE (line 55241) | function writeInt64BE (h, l, offset) {
function Sha512 (line 55309) | function Sha512 () {
function Ch (line 55340) | function Ch (x, y, z) {
function maj (line 55344) | function maj (x, y, z) {
function sigma0 (line 55348) | function sigma0 (x, xl) {
function sigma1 (line 55352) | function sigma1 (x, xl) {
function Gamma0 (line 55356) | function Gamma0 (x, xl) {
function Gamma0l (line 55360) | function Gamma0l (x, xl) {
function Gamma1 (line 55364) | function Gamma1 (x, xl) {
function Gamma1l (line 55368) | function Gamma1l (x, xl) {
function getCarry (line 55372) | function getCarry (a, b) {
function writeInt64BE (line 55502) | function writeInt64BE (h, l, offset) {
function Stream (line 55564) | function Stream() {
function ondata (line 55571) | function ondata(chunk) {
function ondrain (line 55581) | function ondrain() {
function onend (line 55597) | function onend() {
function onclose (line 55605) | function onclose() {
function onerror (line 55613) | function onerror(er) {
function cleanup (line 55624) | function cleanup() {
function assertEncoding (line 55684) | function assertEncoding(encoding) {
function passThroughWrite (line 55860) | function passThroughWrite(buffer) {
function utf16DetectIncompleteChar (line 55864) | function utf16DetectIncompleteChar(buffer) {
function base64DetectIncompleteChar (line 55869) | function base64DetectIncompleteChar(buffer) {
function DestroyableTransform (line 55896) | function DestroyableTransform(opts) {
function noop (line 55916) | function noop (chunk, enc, callback) {
function through2 (line 55923) | function through2 (construct) {
function Through2 (line 55958) | function Through2 (override) {
function Traverse (line 55995) | function Traverse (obj) {
function walk (line 56101) | function walk (root, cb, immutable) {
function copy (line 56219) | function copy (src) {
function toS (line 56275) | function toS (obj) { return Object.prototype.toString.call(obj) }
function isDate (line 56276) | function isDate (obj) { return toS(obj) === '[object Date]' }
function isRegExp (line 56277) | function isRegExp (obj) { return toS(obj) === '[object RegExp]' }
function isError (line 56278) | function isError (obj) { return toS(obj) === '[object Error]' }
function isBoolean (line 56279) | function isBoolean (obj) { return toS(obj) === '[object Boolean]' }
function isNumber (line 56280) | function isNumber (obj) { return toS(obj) === '[object Number]' }
function isString (line 56281) | function isString (obj) { return toS(obj) === '[object String]' }
function trim (line 56310) | function trim(str){
function fromCache (line 56354) | function fromCache(next, cp, needFeature){
function fromData (line 56365) | function fromData(next, cp, needFeature){
function fromCpOnly (line 56371) | function fromCpOnly(next, cp, needFeature){
function fromRuleBasedJamo (line 56374) | function fromRuleBasedJamo(next, cp, needFeature){
function fromCpFilter (line 56402) | function fromCpFilter(next, cp, needFeature){
function recursiveDecomp (line 56488) | function recursiveDecomp(cano, uchar){
function nfd (line 56602) | function nfd(str){
function nfkd (line 56606) | function nfkd(str){
function nfc (line 56610) | function nfc(str){
function nfkc (line 56614) | function nfkc(str){
function Url (line 56800) | function Url() {
function urlParse (line 56868) | function urlParse(url, parseQueryString, slashesDenoteHost) {
function urlFormat (line 57138) | function urlFormat(obj) {
function urlResolve (line 57204) | function urlResolve(source, relative) {
function urlResolveObject (line 57212) | function urlResolveObject(source, relative) {
function ucs2decode (line 57542) | function ucs2decode(string) {
function ucs2encode (line 57569) | function ucs2encode(array) {
function checkScalarValue (line 57586) | function checkScalarValue(codePoint) {
function createByte (line 57596) | function createByte(codePoint, shift) {
function encodeCodePoint (line 57600) | function encodeCodePoint(codePoint) {
function utf8encode (line 57622) | function utf8encode(string) {
function readContinuationByte (line 57637) | function readContinuationByte() {
function decodeSymbol (line 57653) | function decodeSymbol() {
function utf8decode (line 57719) | function utf8decode(byteString) {
function deprecate (line 57793) | function deprecate (fn, msg) {
function config (line 57824) | function config (name) {
function deprecated (line 57925) | function deprecated() {
function inspect (line 57972) | function inspect(obj, opts) {
function stylizeWithColor (line 58030) | function stylizeWithColor(str, styleType) {
function stylizeNoColor (line 58042) | function stylizeNoColor(str, styleType) {
function arrayToHash (line 58047) | function arrayToHash(array) {
function formatValue (line 58058) | function formatValue(ctx, value, recurseTimes) {
function formatPrimitive (line 58171) | function formatPrimitive(ctx, value) {
function formatError (line 58190) | function formatError(value) {
function formatArray (line 58195) | function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
function formatProperty (line 58215) | function formatProperty(ctx, value, recurseTimes, visibleKeys, key, arra...
function reduceToSingleString (line 58274) | function reduceToSingleString(output, base, braces) {
function isArray (line 58297) | function isArray(ar) {
function isBoolean (line 58302) | function isBoolean(arg) {
function isNull (line 58307) | function isNull(arg) {
function isNullOrUndefined (line 58312) | function isNullOrUndefined(arg) {
function isNumber (line 58317) | function isNumber(arg) {
function isString (line 58322) | function isString(arg) {
function isSymbol (line 58327) | function isSymbol(arg) {
function isUndefined (line 58332) | function isUndefined(arg) {
function isRegExp (line 58337) | function isRegExp(re) {
function isObject (line 58342) | function isObject(arg) {
function isDate (line 58347) | function isDate(d) {
function isError (line 58352) | function isError(e) {
function isFunction (line 58358) | function isFunction(arg) {
function isPrimitive (line 58363) | function isPrimitive(arg) {
function objectToString (line 58375) | function objectToString(o) {
function pad (line 58380) | function pad(n) {
function timestamp (line 58389) | function timestamp() {
function hasOwnProperty (line 58431) | function hasOwnProperty(obj, prop) {
function parse (line 58492) | function parse(s, buf, offset) {
function unparse (line 58511) | function unparse(buf, offset) {
function v1 (line 58544) | function v1(options, buf, offset) {
function v4 (line 58622) | function v4(options, buf, offset) {
function Context (line 58700) | function Context() {}
function Web3ProviderEngine (line 58813) | function Web3ProviderEngine(opts) {
function next (line 58892) | function next(after) {
function end (line 58910) | function end(_error, _result) {
function SourceNotFoundError (line 58993) | function SourceNotFoundError (payload) {
function toBufferBlock (line 58997) | function toBufferBlock (jsonBlock) {
function slice (line 59030) | function slice(arrayLike, start) {
function isObject (line 59073) | function isObject(value) {
function fallback (line 59081) | function fallback(fn) {
function wrap (line 59085) | function wrap(defer) {
function asyncify (line 59162) | function asyncify(func) {
function invokeCallback (line 59183) | function invokeCallback(callback, error, value) {
function rethrow (line 59191) | function rethrow(error) {
function isAsync (line 59197) | function isAsync(fn) {
function wrapAsync (line 59201) | function wrapAsync(asyncFn) {
function applyEach$1 (line 59205) | function applyEach$1(eachfn) {
function getRawTag (line 59258) | function getRawTag(value) {
function objectToString (line 59295) | function objectToString(value) {
function baseGetTag (line 59313) | function baseGetTag(value) {
function isFunction (line 59346) | function isFunction(value) {
function isLength (line 59385) | function isLength(value) {
function isArrayLike (line 59415) | function isArrayLike(value) {
function noop (line 59435) | function noop() {
function once (line 59439) | function once(fn) {
function baseTimes (line 59463) | function baseTimes(n, iteratee) {
function isObjectLike (line 59497) | function isObjectLike(value) {
function baseIsArguments (line 59511) | function baseIsArguments(value) {
function stubFalse (line 59585) | function stubFalse() {
function isIndex (line 59637) | function isIndex(value, length) {
function baseIsTypedArray (line 59694) | function baseIsTypedArray(value) {
function baseUnary (line 59706) | function baseUnary(func) {
function arrayLikeKeys (line 59767) | function arrayLikeKeys(value, inherited) {
function isPrototype (line 59804) | function isPrototype(value) {
function overArg (line 59819) | function overArg(func, transform) {
function baseKeys (line 59841) | function baseKeys(object) {
function keys (line 59882) | function keys(object) {
function createArrayIterator (line 59886) | function createArrayIterator(coll) {
function createES2015Iterator (line 59894) | function createES2015Iterator(iterator) {
function createObjectIterator (line 59905) | function createObjectIterator(obj) {
function iterator (line 59915) | function iterator(coll) {
function onlyOnce (line 59924) | function onlyOnce(fn) {
function _eachOfLimit (line 59933) | function _eachOfLimit(limit) {
function eachOfLimit (line 59997) | function eachOfLimit(coll, limit, iteratee, callback) {
function doLimit (line 60001) | function doLimit(fn, limit) {
function eachOfArrayLike (line 60008) | function eachOfArrayLike(coll, iteratee, callback) {
function doParallel (line 60077) | function doParallel(fn) {
function _asyncMap (line 60083) | function _asyncMap(eachfn, arr, iteratee, callback) {
function doParallelLimit (line 60174) | function doParallelLimit(fn) {
function arrayEach (line 60304) | function arrayEach(array, iteratee) {
function createBaseFor (line 60323) | function createBaseFor(fromRight) {
function baseForOwn (line 60361) | function baseForOwn(object, iteratee) {
function baseFindIndex (line 60376) | function baseFindIndex(array, predicate, fromIndex, fromRight) {
function baseIsNaN (line 60395) | function baseIsNaN(value) {
function strictIndexOf (line 60409) | function strictIndexOf(array, value, fromIndex) {
function baseIndexOf (line 60430) | function baseIndexOf(array, value, fromIndex) {
function enqueueTask (line 60580) | function enqueueTask(key, task) {
function processQueue (line 60586) | function processQueue() {
function addListener (line 60597) | function addListener(taskName, fn) {
function taskComplete (line 60606) | function taskComplete(taskName) {
function runTask (line 60615) | function runTask(key, task) {
function checkForDeadlocks (line 60648) | function checkForDeadlocks() {
function getDependents (line 60671) | function getDependents(taskName) {
function arrayMap (line 60691) | function arrayMap(array, iteratee) {
function isSymbol (line 60722) | function isSymbol(value) {
function baseToString (line 60742) | function baseToString(value) {
function baseSlice (line 60767) | function baseSlice(array, start, end) {
function castSlice (line 60797) | function castSlice(array, start, end) {
function charsEndIndex (line 60812) | function charsEndIndex(strSymbols, chrSymbols) {
function charsStartIndex (line 60828) | function charsStartIndex(strSymbols, chrSymbols) {
function asciiToArray (line 60843) | function asciiToArray(string) {
function hasUnicode (line 60866) | function hasUnicode(string) {
function unicodeToArray (line 60903) | function unicodeToArray(string) {
function stringToArray (line 60914) | function stringToArray(string) {
function toString (line 60941) | function toString(value) {
function trim (line 60970) | function trim(string, chars, guard) {
function parseParams (line 60991) | function parseParams(func) {
function autoInject (line 61083) | function autoInject(tasks, callback) {
function DLL (line 61129) | function DLL() {
function setInitial (line 61134) | function setInitial(dll, node) {
function queue (line 61213) | function queue(worker, concurrency, payload) {
function cargo (line 61444) | function cargo(worker, payload) {
function reduce (line 61507) | function reduce(coll, memo, iteratee, callback) {
function seq (line 61558) | function seq(/*...functions*/) {
function concat$1 (line 61622) | function concat$1(eachfn, arr, fn, callback) {
function doSeries (line 61661) | function doSeries(fn) {
function identity (line 61754) | function identity(value) {
function _createTester (line 61758) | function _createTester(check, getResult) {
function _findGetResult (line 61785) | function _findGetResult(v, x) {
function consoleFunc (line 61872) | function consoleFunc(name) {
function doDuring (line 61944) | function doDuring(fn, test, callback) {
function doWhilst (line 61988) | function doWhilst(iteratee, test, callback) {
function doUntil (line 62020) | function doUntil(iteratee, test, callback) {
function during (line 62062) | function during(test, fn, callback) {
function _withoutIndex (line 62081) | function _withoutIndex(iteratee) {
function eachLimit (line 62144) | function eachLimit(coll, iteratee, callback) {
function eachLimit$1 (line 62168) | function eachLimit$1(coll, limit, iteratee, callback) {
function ensureAsync (line 62228) | function ensureAsync(fn) {
function notId (line 62247) | function notId(v) {
function baseProperty (line 62331) | function baseProperty(key) {
function filterArray (line 62337) | function filterArray(eachfn, arr, iteratee, callback) {
function filterGeneric (line 62354) | function filterGeneric(eachfn, coll, iteratee, callback) {
function _filter (line 62378) | function _filter(eachfn, coll, iteratee, callback) {
function forever (line 62481) | function forever(fn, errback) {
function mapValuesLimit (line 62650) | function mapValuesLimit(obj, limit, iteratee, callback) {
function has (line 62733) | function has(obj, key) {
function memoize (line 62774) | function memoize(fn, hasher) {
function _parallel (line 62848) | function _parallel(eachfn, tasks, callback) {
function parallelLimit (line 62934) | function parallelLimit(tasks, callback) {
function parallelLimit$1 (line 62957) | function parallelLimit$1(tasks, limit, callback) {
function race (line 63180) | function race(tasks, callback) {
function reduceRight (line 63211) | function reduceRight (array, memo, iteratee, callback) {
function reflect (line 63255) | function reflect(fn) {
function reject$1 (line 63276) | function reject$1(eachfn, arr, iteratee, callback) {
function reflectAll (line 63380) | function reflectAll(tasks) {
function constant$1 (line 63452) | function constant$1(value) {
function retry (line 63542) | function retry(opts, task, callback) {
function taskFn (line 63632) | function taskFn(cb) {
function series (line 63706) | function series(tasks, callback) {
function sortBy (line 63834) | function sortBy (coll, iteratee, callback) {
function timeout (line 63893) | function timeout(asyncFn, milliseconds, info) {
function baseRange (line 63939) | function baseRange(start, end, step, fromRight) {
function timeLimit (line 63967) | function timeLimit(count, limit, iteratee, callback) {
function transform (line 64064) | function transform (coll, accumulator, iteratee, callback) {
function tryEach (line 64117) | function tryEach(tasks, callback) {
function unmemoize (line 64149) | function unmemoize(fn) {
function whilst (line 64189) | function whilst(test, iteratee, callback) {
function until (line 64224) | function until(test, iteratee, callback) {
function nextTask (line 64293) | function nextTask(args) {
function next (line 64299) | function next(err/*, ...args*/) {
function _interopRequireDefault (line 64621) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function eachOfArrayLike (line 64624) | function eachOfArrayLike(coll, iteratee, callback) {
function _interopRequireDefault (line 64705) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function eachOfLimit (line 64727) | function eachOfLimit(coll, limit, iteratee, callback) {
function _interopRequireDefault (line 64753) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function doParallel (line 64755) | function doParallel(fn) {
function _interopRequireDefault (line 64785) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _asyncMap (line 64787) | function _asyncMap(eachfn, arr, iteratee, callback) {
function _interopRequireDefault (line 64833) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _parallel (line 64835) | function _parallel(eachfn, tasks, callback) {
function _interopRequireDefault (line 64875) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _interopRequireDefault (line 64931) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function parallelLimit (line 65002) | function parallelLimit(tasks, callback) {
function nextTask (line 65019) | function nextTask(args) {
function next (line 65025) | function next(err /*, ...args*/) {
function _interopRequireDefault (line 65059) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _instanceof (line 65125) | function _instanceof(obj, type) {
function clone (line 65173) | function clone(parent, circular, depth, prototype, includeNonEnumerable) {
function __objToStr (line 65338) | function __objToStr(o) {
function __isDate (line 65343) | function __isDate(o) {
function __isArray (line 65348) | function __isArray(o) {
function __isRegExp (line 65353) | function __isRegExp(o) {
function __getRegExpFlags (line 65358) | function __getRegExpFlags(re) {
function BlockCacheProvider (line 65436) | function BlockCacheProvider(opts) {
function clearOldCache (line 65463) | function clearOldCache(newBlock) {
function PermaCacheStrategy (line 65540) | function PermaCacheStrategy() {
function ConditionalPermaCacheStrategy (line 65592) | function ConditionalPermaCacheStrategy(conditionals) {
function BlockCacheStrategy (line 65624) | function BlockCacheStrategy() {
function compareHex (line 65683) | function compareHex(hexA, hexB){
function hexToBN (line 65689) | function hexToBN(hex){
function containsBlockhash (line 65693) | function containsBlockhash(result) {
function DefaultFixtures (line 65709) | function DefaultFixtures(opts) {
function RpcSource (line 65735) | function RpcSource(opts) {
function FilterSubprovider (line 65810) | function FilterSubprovider(opts) {
function BlockFilter (line 66086) | function BlockFilter(opts) {
function LogFilter (line 66119) | function LogFilter(opts) {
function PendingTransactionFilter (line 66205) | function PendingTransactionFilter(){
function normalizeHex (line 66251) | function normalizeHex(hexString) {
function intToHex (line 66255) | function intToHex(value) {
function hexToInt (line 66259) | function hexToInt(hexString) {
function bufferToHex (line 66263) | function bufferToHex(buffer) {
function bufferToNumberHex (line 66267) | function bufferToNumberHex(buffer) {
function stripLeadingZero (line 66271) | function stripLeadingZero(hexNum) {
function blockTagIsNumber (line 66279) | function blockTagIsNumber(blockTag){
function valuesFor (line 66283) | function valuesFor(obj){
function FixtureProvider (line 66295) | function FixtureProvider(staticResponses){
function HookedWalletSubprovider (line 66365) | function HookedWalletSubprovider(opts){
function cloneTxParams (line 66689) | function cloneTxParams(txParams){
function toLowerCase (line 66701) | function toLowerCase(string){
function isValidHex (line 66705) | function isValidHex(data) {
class InflightCacheSubprovider (line 66720) | class InflightCacheSubprovider extends Subprovider {
method constructor (line 66722) | constructor (opts) {
method addEngine (line 66727) | addEngine (engine) {
method handleRequest (line 66731) | handleRequest (req, next, end) {
function NonceTrackerSubprovider (line 66779) | function NonceTrackerSubprovider(opts){
function RpcSource (line 66860) | function RpcSource(opts) {
function SanitizerSubprovider (line 66930) | function SanitizerSubprovider(opts){
function cloneTxParams (line 66960) | function cloneTxParams(txParams){
function sanitize (line 66978) | function sanitize(value) {
function SubProvider (line 67003) | function SubProvider() {
function createPayload (line 67030) | function createPayload(data){
function estimateGas (line 67052) | function estimateGas(provider, txParams, cb) {
function createRandomId (line 67075) | function createRandomId(){
function cacheIdentifierForPayload (line 67095) | function cacheIdentifierForPayload(payload){
function canCache (line 67104) | function canCache(payload){
function blockTagForPayload (line 67108) | function blockTagForPayload(payload){
function paramsWithoutBlockTag (line 67119) | function paramsWithoutBlockTag(payload){
function blockTagParamIndex (line 67130) | function blockTagParamIndex(payload){
function cacheTypeForPayload (line 67149) | function cacheTypeForPayload(payload) {
function Stoplight (line 67237) | function Stoplight(){
function ZeroClientProvider (line 67279) | function ZeroClientProvider(opts){
function handleRequestsFromStream (line 67348) | function handleRequestsFromStream(stream, provider, logger){
function noop (line 67367) | function noop(){}
function wrappy (line 67375) | function wrappy (fn, cb) {
function forEachArray (line 67422) | function forEachArray(array, iterator) {
function isEmpty (line 67428) | function isEmpty(obj){
function initParams (line 67435) | function initParams(uri, options, callback) {
function createXHR (line 67451) | function createXHR(uri, options, callback) {
function _createXHR (line 67456) | function _createXHR(options) {
function getXml (line 67632) | function getXml(xhr) {
function noop (line 67644) | function noop() {}
function extend (line 67651) | function extend() {
FILE: web/metamask/scripts/contentscript.js
function s (line 1) | function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&re...
function setupInjection (line 27) | function setupInjection() {
function setupStreams (line 44) | function setupStreams() {
function shouldInjectWeb3 (line 72) | function shouldInjectWeb3() {
function doctypeCheck (line 76) | function doctypeCheck() {
function suffixCheck (line 85) | function suffixCheck() {
function ObjectMultiplex (line 106) | function ObjectMultiplex(opts) {
function PortDuplexStream (line 158) | function PortDuplexStream(port) {
function noop (line 213) | function noop() {}
function placeHoldersCount (line 236) | function placeHoldersCount (b64) {
function byteLength (line 250) | function byteLength (b64) {
function toByteArray (line 255) | function toByteArray (b64) {
function tripletToBase64 (line 286) | function tripletToBase64 (num) {
function encodeChunk (line 290) | function encodeChunk (uint8, start, end) {
function fromByteArray (line 300) | function fromByteArray (uint8) {
function typedArraySupport (line 499) | function typedArraySupport () {
function kMaxLength (line 511) | function kMaxLength () {
function createBuffer (line 517) | function createBuffer (that, length) {
function Buffer (line 546) | function Buffer (arg, encodingOrOffset, length) {
function from (line 571) | function from (that, value, encodingOrOffset, length) {
function assertSize (line 612) | function assertSize (size) {
function alloc (line 620) | function alloc (that, size, fill, encoding) {
function allocUnsafe (line 644) | function allocUnsafe (that, size) {
function fromString (line 668) | function fromString (that, string, encoding) {
function fromArrayLike (line 692) | function fromArrayLike (that, array) {
function fromArrayBuffer (line 701) | function fromArrayBuffer (that, array, byteOffset, length) {
function fromObject (line 731) | function fromObject (that, obj) {
function checked (line 761) | function checked (length) {
function SlowBuffer (line 771) | function SlowBuffer (length) {
function byteLength (line 854) | function byteLength (string, encoding) {
function slowToString (line 899) | function slowToString (encoding, start, end) {
function swap (line 973) | function swap (b, n, m) {
function bidirectionalIndexOf (line 1107) | function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
function arrayIndexOf (line 1164) | function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
function hexWrite (line 1232) | function hexWrite (buf, string, offset, length) {
function utf8Write (line 1259) | function utf8Write (buf, string, offset, length) {
function asciiWrite (line 1263) | function asciiWrite (buf, string, offset, length) {
function latin1Write (line 1267) | function latin1Write (buf, string, offset, length) {
function base64Write (line 1271) | function base64Write (buf, string, offset, length) {
function ucs2Write (line 1275) | function ucs2Write (buf, string, offset, length) {
function base64Slice (line 1358) | function base64Slice (buf, start, end) {
function utf8Slice (line 1366) | function utf8Slice (buf, start, end) {
function decodeCodePointsArray (line 1444) | function decodeCodePointsArray (codePoints) {
function asciiSlice (line 1462) | function asciiSlice (buf, start, end) {
function latin1Slice (line 1472) | function latin1Slice (buf, start, end) {
function hexSlice (line 1482) | function hexSlice (buf, start, end) {
function utf16leSlice (line 1495) | function utf16leSlice (buf, start, end) {
function checkOffset (line 1543) | function checkOffset (offset, ext, length) {
function checkInt (line 1704) | function checkInt (buf, value, offset, ext, max, min) {
function objectWriteUInt16 (line 1757) | function objectWriteUInt16 (buf, value, offset, littleEndian) {
function objectWriteUInt32 (line 1791) | function objectWriteUInt32 (buf, value, offset, littleEndian) {
function checkIEEE754 (line 1941) | function checkIEEE754 (buf, value, offset, ext, max, min) {
function writeFloat (line 1946) | function writeFloat (buf, value, offset, littleEndian, noAssert) {
function writeDouble (line 1962) | function writeDouble (buf, value, offset, littleEndian, noAssert) {
function base64clean (line 2095) | function base64clean (str) {
function stringtrim (line 2107) | function stringtrim (str) {
function toHex (line 2112) | function toHex (n) {
function utf8ToBytes (line 2117) | function utf8ToBytes (string, units) {
function asciiToBytes (line 2197) | function asciiToBytes (str) {
function utf16leToBytes (line 2206) | function utf16leToBytes (str, units) {
function base64ToBytes (line 2222) | function base64ToBytes (str) {
function blitBuffer (line 2226) | function blitBuffer (src, dst, offset, length) {
function isnan (line 2234) | function isnan (val) {
function isArray (line 2272) | function isArray(arg) {
function isBoolean (line 2280) | function isBoolean(arg) {
function isNull (line 2285) | function isNull(arg) {
function isNullOrUndefined (line 2290) | function isNullOrUndefined(arg) {
function isNumber (line 2295) | function isNumber(arg) {
function isString (line 2300) | function isString(arg) {
function isSymbol (line 2305) | function isSymbol(arg) {
function isUndefined (line 2310) | function isUndefined(arg) {
function isRegExp (line 2315) | function isRegExp(re) {
function isObject (line 2320) | function isObject(arg) {
function isDate (line 2325) | function isDate(d) {
function isError (line 2330) | function isError(e) {
function isFunction (line 2335) | function isFunction(arg) {
function isPrimitive (line 2340) | function isPrimitive(arg) {
function objectToString (line 2352) | function objectToString(o) {
function EventEmitter (line 2379) | function EventEmitter() {
function g (line 2517) | function g() {
function isFunction (line 2645) | function isFunction(arg) {
function isNumber (line 2649) | function isNumber(arg) {
function isObject (line 2653) | function isObject(arg) {
function isUndefined (line 2657) | function isUndefined(arg) {
function Extension (line 2686) | function Extension () {
function isBuffer (line 2872) | function isBuffer (obj) {
function isSlowBuffer (line 2877) | function isSlowBuffer (obj) {
function normalizeArray (line 2908) | function normalizeArray(parts, allowAboveRoot) {
function trim (line 3017) | function trim(arr) {
function filter (line 3090) | function filter (xs, f) {
function PongStream (line 3117) | function PongStream (opts) {
function noop (line 3151) | function noop() {}
function PostMessageStream (line 3160) | function PostMessageStream (opts) {
function noop (line 3206) | function noop () {}
function nextTick (line 3220) | function nextTick(fn, arg1, arg2, arg3) {
function defaultSetTimout (line 3267) | function defaultSetTimout() {
function defaultClearTimeout (line 3270) | function defaultClearTimeout () {
function runTimeout (line 3293) | function runTimeout(fun) {
function runClearTimeout (line 3318) | function runClearTimeout(marker) {
function cleanUpNextTick (line 3350) | function cleanUpNextTick() {
function drainQueue (line 3365) | function drainQueue() {
function Item (line 3403) | function Item(fun, array) {
function noop (line 3417) | function noop() {}
function Duplex (line 3481) | function Duplex(options) {
function onend (line 3498) | function onend() {
function onEndNT (line 3508) | function onEndNT(self) {
function forEach (line 3512) | function forEach(xs, f) {
function PassThrough (line 3535) | function PassThrough(options) {
function prependListener (line 3603) | function prependListener(emitter, event, fn) {
function ReadableState (line 3617) | function ReadableState(options, stream) {
function Readable (line 3686) | function Readable(options) {
function readableAddChunk (line 3729) | function readableAddChunk(stream, state, chunk, encoding, addToFront) {
function needMoreData (line 3784) | function needMoreData(state) {
function computeNewHighWaterMark (line 3798) | function computeNewHighWaterMark(n) {
function howMuchToRead (line 3817) | function howMuchToRead(n, state) {
function chunkInvalid (line 3936) | function chunkInvalid(state, chunk) {
function onEofChunk (line 3944) | function onEofChunk(stream, state) {
function emitReadable (line 3962) | function emitReadable(stream) {
function emitReadable_ (line 3972) | function emitReadable_(stream) {
function maybeReadMore (line 3984) | function maybeReadMore(stream, state) {
function maybeReadMore_ (line 3991) | function maybeReadMore_(stream, state) {
function onunpipe (line 4035) | function onunpipe(readable) {
function onend (line 4042) | function onend() {
function cleanup (line 4055) | function cleanup() {
function ondata (line 4083) | function ondata(chunk) {
function onerror (line 4103) | function onerror(er) {
function onclose (line 4114) | function onclose() {
function onfinish (line 4119) | function onfinish() {
function unpipe (line 4126) | function unpipe() {
function pipeOnDrain (line 4143) | function pipeOnDrain(src) {
function nReadingNextTick (line 4229) | function nReadingNextTick(self) {
function resume (line 4246) | function resume(stream, state) {
function resume_ (line 4253) | function resume_(stream, state) {
function flow (line 4276) | function flow(stream) {
function fromList (line 4351) | function fromList(n, state) {
function fromListPartial (line 4371) | function fromListPartial(n, list, hasStrings) {
function copyFromBufferString (line 4391) | function copyFromBufferString(n, list) {
function copyFromBuffer (line 4420) | function copyFromBuffer(n, list) {
function endReadable (line 4447) | function endReadable(stream) {
function endReadableNT (line 4460) | function endReadableNT(state, stream) {
function forEach (line 4469) | function forEach(xs, f) {
function indexOf (line 4475) | function indexOf(xs, x) {
function TransformState (line 4538) | function TransformState(stream) {
function afterTransform (line 4550) | function afterTransform(stream, er, data) {
function Transform (line 4572) | function Transform(options) {
function done (line 4649) | function done(stream, er, data) {
function nop (line 4711) | function nop() {}
function WriteReq (line 4713) | function WriteReq(chunk, encoding, cb) {
function WritableState (line 4720) | function WritableState(options, stream) {
function Writable (line 4854) | function Writable(options) {
function writeAfterEnd (line 4887) | function writeAfterEnd(stream, cb) {
function validChunk (line 4897) | function validChunk(stream, state, chunk, cb) {
function decodeChunk (line 4960) | function decodeChunk(state, chunk, encoding) {
function writeOrBuffer (line 4970) | function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
function doWrite (line 4999) | function doWrite(stream, state, writev, len, chunk, encoding, cb) {
function onwriteError (line 5008) | function onwriteError(stream, state, sync, er, cb) {
function onwriteStateUpdate (line 5016) | function onwriteStateUpdate(state) {
function onwrite (line 5023) | function onwrite(stream, er) {
function afterWrite (line 5048) | function afterWrite(stream, state, finished, cb) {
function onwriteDrain (line 5058) | function onwriteDrain(stream, state) {
function clearBuffer (line 5066) | function clearBuffer(stream, state) {
function needFinish (line 5153) | function needFinish(state) {
function prefinish (line 5157) | function prefinish(stream, state) {
function finishMaybe (line 5164) | function finishMaybe(stream, state) {
function endWritable (line 5178) | function endWritable(stream, state, cb) {
function CorkedRequest (line 5190) | function CorkedRequest(state) {
function BufferList (line 5222) | function BufferList() {
function _normalizeEncoding (line 5297) | function _normalizeEncoding(enc) {
function normalizeEncoding (line 5327) | function normalizeEncoding(enc) {
function StringDecoder (line 5337) | function StringDecoder(encoding) {
function utf8CheckByte (line 5398) | function utf8CheckByte(byte) {
function utf8CheckIncomplete (line 5406) | function utf8CheckIncomplete(self, buf, i) {
function utf8CheckExtraBytes (line 5439) | function utf8CheckExtraBytes(self, buf, p) {
function utf8FillLast (line 5459) | function utf8FillLast(buf) {
function utf8Text (line 5474) | function utf8Text(buf, i) {
function utf8End (line 5485) | function utf8End(buf) {
function utf16Text (line 5495) | function utf16Text(buf, i) {
function utf16End (line 5518) | function utf16End(buf) {
function base64Text (line 5527) | function base64Text(buf, i) {
function base64End (line 5541) | function base64End(buf) {
function simpleWrite (line 5548) | function simpleWrite(buf) {
function simpleEnd (line 5552) | function simpleEnd(buf) {
function DestroyableTransform (line 5576) | function DestroyableTransform(opts) {
function noop (line 5596) | function noop (chunk, enc, callback) {
function through2 (line 5603) | function through2 (construct) {
function Through2 (line 5638) | function Through2 (override) {
function deprecate (line 5697) | function deprecate (fn, msg) {
function config (line 5728) | function config (name) {
function deprecated (line 5829) | function deprecated() {
function inspect (line 5876) | function inspect(obj, opts) {
function stylizeWithColor (line 5934) | function stylizeWithColor(str, styleType) {
function stylizeNoColor (line 5946) | function stylizeNoColor(str, styleType) {
function arrayToHash (line 5951) | function arrayToHash(array) {
function formatValue (line 5962) | function formatValue(ctx, value, recurseTimes) {
function formatPrimitive (line 6075) | function formatPrimitive(ctx, value) {
function formatError (line 6094) | function formatError(value) {
function formatArray (line 6099) | function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
function formatProperty (line 6119) | function formatProperty(ctx, value, recurseTimes, visibleKeys, key, arra...
function reduceToSingleString (line 6178) | function reduceToSingleString(output, base, braces) {
function isArray (line 6201) | function isArray(ar) {
function isBoolean (line 6206) | function isBoolean(arg) {
function isNull (line 6211) | function isNull(arg) {
function isNullOrUndefined (line 6216) | function isNullOrUndefined(arg) {
function isNumber (line 6221) | function isNumber(arg) {
function isString (line 6226) | function isString(arg) {
function isSymbol (line 6231) | function isSymbol(arg) {
function isUndefined (line 6236) | function isUndefined(arg) {
function isRegExp (line 6241) | function isRegExp(re) {
function isObject (line 6246) | function isObject(arg) {
function isDate (line 6251) | function isDate(d) {
function isError (line 6256) | function isError(e) {
function isFunction (line 6262) | function isFunction(arg) {
function isPrimitive (line 6267) | function isPrimitive(arg) {
function objectToString (line 6279) | function objectToString(o) {
function pad (line 6284) | function pad(n) {
function timestamp (line 6293) | function timestamp() {
function hasOwnProperty (line 6335) | function hasOwnProperty(obj, prop) {
function extend (line 6345) | function extend() {
FILE: web/metamask/scripts/inpage.js
function s (line 1) | function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&re...
function cleanContextForImports (line 55) | function cleanContextForImports() {
function restoreContextAfterImports (line 64) | function restoreContextAfterImports() {
function setupDappAutoReload (line 79) | function setupDappAutoReload(web3, observable) {
function triggerReset (line 110) | function triggerReset() {
function MetamaskInpageProvider (line 126) | function MetamaskInpageProvider(connectionStream) {
function eachJsonMessage (line 230) | function eachJsonMessage(payload, transformFn) {
function logStreamDisconnectWarning (line 238) | function logStreamDisconnectWarning(remoteLabel, err) {
function noop (line 244) | function noop() {}
function ObjectMultiplex (line 253) | function ObjectMultiplex(opts) {
function _interopRequireDefault (line 301) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function createRandomId (line 306) | function createRandomId() {
function _interopRequireDefault (line 348) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function defineProperties (line 351) | function defineProperties(target, props) {
function _interopRequireDefault (line 384) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _interopRequireDefault (line 410) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _interopRequireDefault (line 434) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function placeHoldersCount (line 461) | function placeHoldersCount (b64) {
function byteLength (line 475) | function byteLength (b64) {
function toByteArray (line 480) | function toByteArray (b64) {
function tripletToBase64 (line 511) | function tripletToBase64 (num) {
function encodeChunk (line 515) | function encodeChunk (uint8, start, end) {
function fromByteArray (line 525) | function fromByteArray (uint8) {
function typedArraySupport (line 724) | function typedArraySupport () {
function kMaxLength (line 736) | function kMaxLength () {
function createBuffer (line 742) | function createBuffer (that, length) {
function Buffer (line 771) | function Buffer (arg, encodingOrOffset, length) {
function from (line 796) | function from (that, value, encodingOrOffset, length) {
function assertSize (line 837) | function assertSize (size) {
function alloc (line 845) | function alloc (that, size, fill, encoding) {
function allocUnsafe (line 869) | function allocUnsafe (that, size) {
function fromString (line 893) | function fromString (that, string, encoding) {
function fromArrayLike (line 917) | function fromArrayLike (that, array) {
function fromArrayBuffer (line 926) | function fromArrayBuffer (that, array, byteOffset, length) {
function fromObject (line 956) | function fromObject (that, obj) {
function checked (line 986) | function checked (length) {
function SlowBuffer (line 996) | function SlowBuffer (length) {
function byteLength (line 1079) | function byteLength (string, encoding) {
function slowToString (line 1124) | function slowToString (encoding, start, end) {
function swap (line 1198) | function swap (b, n, m) {
function bidirectionalIndexOf (line 1332) | function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
function arrayIndexOf (line 1389) | function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
function hexWrite (line 1457) | function hexWrite (buf, string, offset, length) {
function utf8Write (line 1484) | function utf8Write (buf, string, offset, length) {
function asciiWrite (line 1488) | function asciiWrite (buf, string, offset, length) {
function latin1Write (line 1492) | function latin1Write (buf, string, offset, length) {
function base64Write (line 1496) | function base64Write (buf, string, offset, length) {
function ucs2Write (line 1500) | function ucs2Write (buf, string, offset, length) {
function base64Slice (line 1583) | function base64Slice (buf, start, end) {
function utf8Slice (line 1591) | function utf8Slice (buf, start, end) {
function decodeCodePointsArray (line 1669) | function decodeCodePointsArray (codePoints) {
function asciiSlice (line 1687) | function asciiSlice (buf, start, end) {
function latin1Slice (line 1697) | function latin1Slice (buf, start, end) {
function hexSlice (line 1707) | function hexSlice (buf, start, end) {
function utf16leSlice (line 1720) | function utf16leSlice (buf, start, end) {
function checkOffset (line 1768) | function checkOffset (offset, ext, length) {
function checkInt (line 1929) | function checkInt (buf, value, offset, ext, max, min) {
function objectWriteUInt16 (line 1982) | function objectWriteUInt16 (buf, value, offset, littleEndian) {
function objectWriteUInt32 (line 2016) | function objectWriteUInt32 (buf, value, offset, littleEndian) {
function checkIEEE754 (line 2166) | function checkIEEE754 (buf, value, offset, ext, max, min) {
function writeFloat (line 2171) | function writeFloat (buf, value, offset, littleEndian, noAssert) {
function writeDouble (line 2187) | function writeDouble (buf, value, offset, littleEndian, noAssert) {
function base64clean (line 2320) | function base64clean (str) {
function stringtrim (line 2332) | function stringtrim (str) {
function toHex (line 2337) | function toHex (n) {
function utf8ToBytes (line 2342) | function utf8ToBytes (string, units) {
function asciiToBytes (line 2422) | function asciiToBytes (str) {
function utf16leToBytes (line 2431) | function utf16leToBytes (str, units) {
function base64ToBytes (line 2447) | function base64ToBytes (str) {
function blitBuffer (line 2451) | function blitBuffer (src, dst, offset, length) {
function isnan (line 2459) | function isnan (val) {
function isArray (line 3609) | function isArray(arg) {
function isBoolean (line 3617) | function isBoolean(arg) {
function isNull (line 3622) | function isNull(arg) {
function isNullOrUndefined (line 3627) | function isNullOrUndefined(arg) {
function isNumber (line 3632) | function isNumber(arg) {
function isString (line 3637) | function isString(arg) {
function isSymbol (line 3642) | function isSymbol(arg) {
function isUndefined (line 3647) | function isUndefined(arg) {
function isRegExp (line 3652) | function isRegExp(re) {
function isObject (line 3657) | function isObject(arg) {
function isDate (line 3662) | function isDate(d) {
function isError (line 3667) | function isError(e) {
function isFunction (line 3672) | function isFunction(arg) {
function isPrimitive (line 3677) | function isPrimitive(arg) {
function objectToString (line 3689) | function objectToString(o) {
function EventEmitter (line 3801) | function EventEmitter() {
function g (line 3939) | function g() {
function isFunction (line 4067) | function isFunction(arg) {
function isNumber (line 4071) | function isNumber(arg) {
function isObject (line 4075) | function isObject(arg) {
function isUndefined (line 4079) | function isUndefined(arg) {
function isBuffer (line 4208) | function isBuffer (obj) {
function isSlowBuffer (line 4213) | function isSlowBuffer (obj) {
function _interopRequireDefault (line 4248) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function ObservableStore (line 4256) | function ObservableStore() {
function once (line 4400) | function once (fn) {
function onceStrict (line 4410) | function onceStrict (fn) {
function PostMessageStream (line 4431) | function PostMessageStream (opts) {
function noop (line 4477) | function noop () {}
function nextTick (line 4491) | function nextTick(fn, arg1, arg2, arg3) {
function defaultSetTimout (line 4538) | function defaultSetTimout() {
function defaultClearTimeout (line 4541) | function defaultClearTimeout () {
function runTimeout (line 4564) | function runTimeout(fun) {
function runClearTimeout (line 4589) | function runClearTimeout(marker) {
function cleanUpNextTick (line 4621) | function cleanUpNextTick() {
function drainQueue (line 4636) | function drainQueue() {
function Item (line 4674) | function Item(fun, array) {
function noop (line 4688) | function noop() {}
function Duplex (line 4837) | function Duplex(options) {
function onend (line 4854) | function onend() {
function onEndNT (line 4864) | function onEndNT(self) {
function forEach (line 4868) | function forEach(xs, f) {
function PassThrough (line 4891) | function PassThrough(options) {
function prependListener (line 4959) | function prependListener(emitter, event, fn) {
function ReadableState (line 4973) | function ReadableState(options, stream) {
function Readable (line 5042) | function Readable(options) {
function readableAddChunk (line 5085) | function readableAddChunk(stream, state, chunk, encoding, addToFront) {
function needMoreData (line 5140) | function needMoreData(state) {
function computeNewHighWaterMark (line 5154) | function computeNewHighWaterMark(n) {
function howMuchToRead (line 5173) | function howMuchToRead(n, state) {
function chunkInvalid (line 5292) | function chunkInvalid(state, chunk) {
function onEofChunk (line 5300) | function onEofChunk(stream, state) {
function emitReadable (line 5318) | function emitReadable(stream) {
function emitReadable_ (line 5328) | function emitReadable_(stream) {
function maybeReadMore (line 5340) | function maybeReadMore(stream, state) {
function maybeReadMore_ (line 5347) | function maybeReadMore_(stream, state) {
function onunpipe (line 5391) | function onunpipe(readable) {
function onend (line 5398) | function onend() {
function cleanup (line 5411) | function cleanup() {
function ondata (line 5439) | function ondata(chunk) {
function onerror (line 5459) | function onerror(er) {
function onclose (line 5470) | function onclose() {
function onfinish (line 5475) | function onfinish() {
function unpipe (line 5482) | function unpipe() {
function pipeOnDrain (line 5499) | function pipeOnDrain(src) {
function nReadingNextTick (line 5585) | function nReadingNextTick(self) {
function resume (line 5602) | function resume(stream, state) {
function resume_ (line 5609) | function resume_(stream, state) {
function flow (line 5632) | function flow(stream) {
function fromList (line 5707) | function fromList(n, state) {
function fromListPartial (line 5727) | function fromListPartial(n, list, hasStrings) {
function copyFromBufferString (line 5747) | function copyFromBufferString(n, list) {
function copyFromBuffer (line 5776) | function copyFromBuffer(n, list) {
function endReadable (line 5803) | function endReadable(stream) {
function endReadableNT (line 5816) | function endReadableNT(state, stream) {
function forEach (line 5825) | function forEach(xs, f) {
function indexOf (line 5831) | function indexOf(xs, x) {
function TransformState (line 5894) | function TransformState(stream) {
function afterTransform (line 5906) | function afterTransform(stream, er, data) {
function Transform (line 5928) | function Transform(options) {
function done (line 6005) | function done(stream, er, data) {
function nop (line 6067) | function nop() {}
function WriteReq (line 6069) | function WriteReq(chunk, encoding, cb) {
function WritableState (line 6076) | function WritableState(options, stream) {
function Writable (line 6210) | function Writable(options) {
function writeAfterEnd (line 6243) | function writeAfterEnd(stream, cb) {
function validChunk (line 6253) | function validChunk(stream, state, chunk, cb) {
function decodeChunk (line 6316) | function decodeChunk(state, chunk, encoding) {
function writeOrBuffer (line 6326) | function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
function doWrite (line 6355) | function doWrite(stream, state, writev, len, chunk, encoding, cb) {
function onwriteError (line 6364) | function onwriteError(stream, state, sync, er, cb) {
function onwriteStateUpdate (line 6372) | function onwriteStateUpdate(state) {
function onwrite (line 6379) | function onwrite(stream, er) {
function afterWrite (line 6404) | function afterWrite(stream, state, finished, cb) {
function onwriteDrain (line 6414) | function onwriteDrain(stream, state) {
function clearBuffer (line 6422) | function clearBuffer(stream, state) {
function needFinish (line 6509) | function needFinish(state) {
function prefinish (line 6513) | function prefinish(stream, state) {
function finishMaybe (line 6520) | function finishMaybe(stream, state) {
function endWritable (line 6534) | function endWritable(stream, state, cb) {
function CorkedRequest (line 6546) | function CorkedRequest(state) {
function BufferList (line 6578) | function BufferList() {
function _normalizeEncoding (line 6653) | function _normalizeEncoding(enc) {
function normalizeEncoding (line 6683) | function normalizeEncoding(enc) {
function StringDecoder (line 6693) | function StringDecoder(encoding) {
function utf8CheckByte (line 6754) | function utf8CheckByte(byte) {
function utf8CheckIncomplete (line 6762) | function utf8CheckIncomplete(self, buf, i) {
function utf8CheckExtraBytes (line 6795) | function utf8CheckExtraBytes(self, buf, p) {
function utf8FillLast (line 6815) | function utf8FillLast(buf) {
function utf8Text (line 6830) | function utf8Text(buf, i) {
function utf8End (line 6841) | function utf8End(buf) {
function utf16Text (line 6851) | function utf16Text(buf, i) {
function utf16End (line 6874) | function utf16End(buf) {
function base64Text (line 6883) | function base64Text(buf, i) {
function base64End (line 6897) | function base64End(buf) {
function simpleWrite (line 6904) | function simpleWrite(buf) {
function simpleEnd (line 6908) | function simpleEnd(buf) {
function Stream (line 6974) | function Stream() {
function ondata (line 6981) | function ondata(chunk) {
function ondrain (line 6991) | function ondrain() {
function onend (line 7007) | function onend() {
function onclose (line 7015) | function onclose() {
function onerror (line 7023) | function onerror(er) {
function cleanup (line 7034) | function cleanup() {
function DestroyableTransform (line 7067) | function DestroyableTransform(opts) {
function noop (line 7087) | function noop (chunk, enc, callback) {
function through2 (line 7094) | function through2 (construct) {
function Through2 (line 7129) | function Through2 (override) {
function deprecate (line 7188) | function deprecate (fn, msg) {
function config (line 7219) | function config (name) {
function deprecated (line 7320) | function deprecated() {
function inspect (line 7367) | function inspect(obj, opts) {
function stylizeWithColor (line 7425) | function stylizeWithColor(str, styleType) {
function stylizeNoColor (line 7437) | function stylizeNoColor(str, styleType) {
function arrayToHash (line 7442) | function arrayToHash(array) {
function formatValue (line 7453) | function formatValue(ctx, value, recurseTimes) {
function formatPrimitive (line 7566) | function formatPrimitive(ctx, value) {
function formatError (line 7585) | function formatError(value) {
function formatArray (line 7590) | function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
function formatProperty (line 7610) | function formatProperty(ctx, value, recurseTimes, visibleKeys, key, arra...
function reduceToSingleString (line 7669) | function reduceToSingleString(output, base, braces) {
function isArray (line 7692) | function isArray(ar) {
function isBoolean (line 7697) | function isBoolean(arg) {
function isNull (line 7702) | function isNull(arg) {
function isNullOrUndefined (line 7707) | function isNullOrUndefined(arg) {
function isNumber (line 7712) | function isNumber(arg) {
function isString (line 7717) | function isString(arg) {
function isSymbol (line 7722) | function isSymbol(arg) {
function isUndefined (line 7727) | function isUndefined(arg) {
function isRegExp (line 7732) | function isRegExp(re) {
function isObject (line 7737) | function isObject(arg) {
function isDate (line 7742) | function isDate(d) {
function isError (line 7747) | function isError(e) {
function isFunction (line 7753) | function isFunction(arg) {
function isPrimitive (line 7758) | function isPrimitive(arg) {
function objectToString (line 7770) | function objectToString(o) {
function pad (line 7775) | function pad(n) {
function timestamp (line 7784) | function timestamp() {
function hasOwnProperty (line 7826) | function hasOwnProperty(obj, prop) {
function StreamProvider (line 7840) | function StreamProvider(){
function generateBatchId (line 7914) | function generateBatchId(batchPayload){
function noop (line 7918) | function noop(){}
function o (line 7922) | function o(a,s){if(!n[a]){if(!e[a]){var c="function"==typeof _dereq_&&_d...
function r (line 7922) | function r(t){this._requestManager=new o(t),this.currentProvider=t,this....
function e (line 7923) | function e(t){return!!t&&!t.error&&"2.0"===t.jsonrpc&&"number"==typeof t...
function r (line 7923) | function r(t){this._requestManager=t._requestManager;var e=this;w().forE...
function r (line 7923) | function r(t){this._requestManager=t._requestManager;var e=this;s().forE...
function r (line 7923) | function r(t){this._requestManager=t._requestManager;var e=this;a().forE...
function t (line 7924) | function t(t){return"string"==typeof t?k:_}
function t (line 7924) | function t(t,n,r){var o=this._iv;if(o){var i=o;this._iv=e}else var i=thi...
function t (line 7924) | function t(){}
function e (line 7924) | function e(t,e,n){for(var r=[],i=0,a=0;a<e;a++)if(a%4){var s=n[t.charCod...
function e (line 7924) | function e(t){return t<<8&4278255360|t>>>8&16711935}
function n (line 7924) | function n(t,e,n,r,o,i,a){var s=t+(e&n|~e&r)+o+a;return(s<<i|s>>>32-i)+e}
function r (line 7924) | function r(t,e,n,r,o,i,a){var s=t+(e&r|n&~r)+o+a;return(s<<i|s>>>32-i)+e}
function o (line 7924) | function o(t,e,n,r,o,i,a){var s=t+(e^n^r)+o+a;return(s<<i|s>>>32-i)+e}
function i (line 7924) | function i(t,e,n,r,o,i,a){var s=t+(n^(e|~r))+o+a;return(s<<i|s>>>32-i)+e}
function e (line 7924) | function e(t,e,n,r){var o=this._iv;if(o){var i=o.slice(0);this._iv=void ...
function e (line 7924) | function e(t){if(255===(t>>24&255)){var e=t>>16&255,n=t>>8&255,r=255&t;2...
function n (line 7924) | function n(t){return 0===(t[0]=e(t[0]))&&(t[1]=e(t[1])),t}
function e (line 7924) | function e(){for(var t=this._X,e=this._C,n=0;n<8;n++)s[n]=e[n];e[0]=e[0]...
function e (line 7924) | function e(){for(var t=this._X,e=this._C,n=0;n<8;n++)s[n]=e[n];e[0]=e[0]...
function e (line 7924) | function e(){for(var t=this._S,e=this._i,n=this._j,r=0,o=0;o<4;o++){e=(e...
function n (line 7924) | function n(t,e,n){return t^e^n}
function r (line 7924) | function r(t,e,n){return t&e|~t&n}
function o (line 7924) | function o(t,e,n){return(t|~e)^n}
function i (line 7924) | function i(t,e,n){return t&n|e&~n}
function a (line 7924) | function a(t,e,n){return t^(e|~n)}
function s (line 7924) | function s(t,e){return t<<e|t>>>32-e}
function t (line 7925) | function t(t){for(var n=e.sqrt(t),r=2;r<=n;r++)if(!(t%r))return!1;return!0}
function n (line 7925) | function n(t){return 4294967296*(t-(0|t))|0}
function e (line 7925) | function e(){return a.create.apply(a,arguments)}
function e (line 7925) | function e(t,e){var n=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=n,...
function n (line 7925) | function n(t,e){var n=(this._rBlock>>>t^this._lBlock)&e;this._lBlock^=n,...
function r (line 7925) | function r(t){for(var e,n,r=[],o=0,i=t.length;o<i;)e=t.charCodeAt(o++),e...
function o (line 7925) | function o(t){for(var e,n=t.length,r=-1,o="";++r<n;)e=t[r],e>65535&&(e-=...
function i (line 7925) | function i(t){if(t>=55296&&t<=57343)throw Error("Lone surrogate U+"+t.to...
function a (line 7925) | function a(t,e){return v(t>>e&63|128)}
function s (line 7925) | function s(t){if(0==(4294967168&t))return v(t);var e="";return 0==(42949...
function c (line 7925) | function c(t){for(var e,n=r(t),o=n.length,i=-1,a="";++i<o;)e=n[i],a+=s(e...
function u (line 7925) | function u(){if(g>=y)throw Error("Invalid byte index");var t=255&m[g];if...
function f (line 7925) | function f(){var t,e,n,r,o;if(g>y)throw Error("Invalid byte index");if(g...
function l (line 7925) | function l(t){m=r(t),y=m.length,g=0;for(var e,n=[];(e=f())!==!1;)n.push(...
function r (line 7925) | function r(t){function e(t,r){var o,i,a,s,c,u,f=this;if(!(f instanceof e...
function o (line 7926) | function o(t){var e=0|t;return t>0||t===e?e:e-1}
function i (line 7926) | function i(t){for(var e,n,r=1,o=t.length,i=t[0]+"";r<o;){for(e=t[r++]+""...
function a (line 7926) | function a(t,e){var n,r,o=t.c,i=e.c,a=t.s,s=e.s,c=t.e,u=e.e;if(!a||!s)re...
function s (line 7926) | function s(t,e,n){return(t=p(t))>=e&&t<=n}
function c (line 7926) | function c(t){return"[object Array]"==Object.prototype.toString.call(t)}
function u (line 7926) | function u(t,e,n){for(var r,o,i=[0],a=0,s=t.length;a<s;){for(o=i.length;...
function f (line 7926) | function f(t,e){return(t.length>1?t.charAt(0)+"."+t.slice(1):t)+(e<0?"e"...
function l (line 7926) | function l(t,e){var n,r;if(e<0){for(r="0.";++e;r+="0");t=r+t}else if(n=t...
function p (line 7926) | function p(t){return t=parseFloat(t),t<0?g(t):v(t)}
function wrappy (line 7935) | function wrappy (fn, cb) {
function extend (line 7968) | function extend() {
FILE: web/metamask/scripts/popup.js
function s (line 1) | function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&re...
function getBuyEthUrl (line 6) | function getBuyEthUrl(_ref) {
function _interopRequireDefault (line 65) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function NotificationManager (line 72) | function NotificationManager() {
function ObjectMultiplex (line 158) | function ObjectMultiplex(opts) {
function PortDuplexStream (line 210) | function PortDuplexStream(port) {
function noop (line 265) | function noop() {}
function _interopRequireDefault (line 275) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function jsonParseStream (line 287) | function jsonParseStream() {
function jsonStringifyStream (line 294) | function jsonStringifyStream() {
function setupMultiplex (line 301) | function setupMultiplex(connectionStream) {
function _interopRequireDefault (line 325) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function ExtensionPlatform (line 330) | function ExtensionPlatform() {
function initializePopup (line 377) | function initializePopup(_ref, cb) {
function connectToAccountManager (line 389) | function connectToAccountManager(connectionStream, cb) {
function setupWeb3Connection (line 398) | function setupWeb3Connection(connectionStream) {
function setupControllerConnection (line 407) | function setupControllerConnection(connectionStream, cb) {
function closePopupIfOpen (line 465) | function closePopupIfOpen(windowType) {
function displayCriticalError (line 471) | function displayCriticalError(err) {
function compare (line 492) | function compare(a, b) {
function isBuffer (line 516) | function isBuffer(b) {
function pToString (line 555) | function pToString (obj) {
function isView (line 558) | function isView(arrbuf) {
function getName (line 592) | function getName(func) {
function truncate (line 642) | function truncate(s, n) {
function inspect (line 649) | function inspect(something) {
function getMessage (line 657) | function getMessage(self) {
function fail (line 674) | function fail(actual, expected, message, operator, stackStartFunction) {
function ok (line 694) | function ok(value, message) {
function _deepEqual (line 731) | function _deepEqual(actual, expected, strict, memos) {
function isArguments (line 797) | function isArguments(object) {
function objEquiv (line 801) | function objEquiv(a, b, strict, actualVisitedObjects) {
function notDeepStrictEqual (line 853) | function notDeepStrictEqual(actual, expected, message) {
function expectedException (line 878) | function expectedException(actual, expected) {
function _tryBlock (line 902) | function _tryBlock(block) {
function _throws (line 912) | function _throws(shouldThrow, block, expected, message) {
function noop (line 985) | function noop() {}
function identity (line 986) | function identity(v) {
function toBool (line 989) | function toBool(v) {
function notId (line 992) | function notId(v) {
function only_once (line 1015) | function only_once(fn) {
function _once (line 1023) | function _once(fn) {
function _isArrayLike (line 1045) | function _isArrayLike(arr) {
function _arrayEach (line 1054) | function _arrayEach(arr, iterator) {
function _map (line 1063) | function _map(arr, iterator) {
function _range (line 1074) | function _range(count) {
function _reduce (line 1078) | function _reduce(arr, iterator, memo) {
function _forEachOf (line 1085) | function _forEachOf(object, iterator) {
function _indexOf (line 1091) | function _indexOf(arr, item) {
function _keyIterator (line 1108) | function _keyIterator(coll) {
function _restParam (line 1131) | function _restParam(func, startIndex) {
function _withoutIndex (line 1153) | function _withoutIndex(iterator) {
function done (line 1212) | function done(err) {
function iterate (line 1231) | function iterate() {
function _eachOfLimit (line 1265) | function _eachOfLimit(limit) {
function doParallel (line 1309) | function doParallel(fn) {
function doParallelLimit (line 1314) | function doParallelLimit(fn) {
function doSeries (line 1319) | function doSeries(fn) {
function _asyncMap (line 1325) | function _asyncMap(eachfn, arr, iterator, callback) {
function _filter (line 1378) | function _filter(eachfn, arr, iterator, callback) {
function _reject (line 1405) | function _reject(eachfn, arr, iterator, callback) {
function _createTester (line 1416) | function _createTester(eachfn, check, getResult) {
function _findGetResult (line 1451) | function _findGetResult(v, x) {
function comparator (line 1480) | function comparator(left, right) {
function addListener (line 1508) | function addListener(fn) {
function removeListener (line 1511) | function removeListener(fn) {
function taskComplete (line 1515) | function taskComplete() {
function ready (line 1563) | function ready() {
function listener (line 1575) | function listener() {
function parseTimes (line 1598) | function parseTimes(acc, t){
function wrappedTask (line 1622) | function wrappedTask(wrappedCallback, wrappedResults) {
function wrapIterator (line 1667) | function wrapIterator(iterator) {
function _parallel (line 1687) | function _parallel(eachfn, tasks, callback) {
function makeCallback (line 1717) | function makeCallback(index) {
function _concat (line 1740) | function _concat(eachfn, arr, fn, callback) {
function _queue (line 1827) | function _queue(worker, concurrency, payload) {
function _compareTasks (line 1969) | function _compareTasks(a, b){
function _binarySearch (line 1973) | function _binarySearch(sequence, item, compare) {
function _insert (line 1987) | function _insert(q, data, priority, callback) {
function _console_fn (line 2035) | function _console_fn(name) {
function _times (line 2098) | function _times(mapper) {
function _applyEach (line 2138) | function _applyEach(eachfn) {
function next (line 2164) | function next(err) {
function ensureAsync (line 2173) | function ensureAsync(fn) {
function _interopRequireDefault (line 2267) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function defineProperties (line 2270) | function defineProperties(target, props) {
function placeHoldersCount (line 2306) | function placeHoldersCount (b64) {
function byteLength (line 2320) | function byteLength (b64) {
function toByteArray (line 2325) | function toByteArray (b64) {
function tripletToBase64 (line 2356) | function tripletToBase64 (num) {
function encodeChunk (line 2360) | function encodeChunk (uint8, start, end) {
function fromByteArray (line 2370) | function fromByteArray (uint8) {
function check (line 2409) | function check (buffer) {
function decode (line 2433) | function decode (buffer) {
function encode (line 2484) | function encode (r, s) {
function assert (line 2522) | function assert (val, msg) {
function inherits (line 2528) | function inherits (ctor, superCtor) {
function BN (line 2538) | function BN (number, base, endian) {
function parseHex (line 2703) | function parseHex (str, start, end) {
function parseBase (line 2757) | function parseBase (str, start, end, mul) {
function toBitArray (line 3144) | function toBitArray (num) {
function smallMulTo (line 3509) | function smallMulTo (self, num, out) {
function bigMulTo (line 4131) | function bigMulTo (self, num, out) {
function jumboMulTo (line 4172) | function jumboMulTo (self, num, out) {
function FFTM (line 4196) | function FFTM (x, y) {
function MPrime (line 5456) | function MPrime (name, p) {
function K256 (line 5506) | function K256 () {
function P224 (line 5573) | function P224 () {
function P192 (line 5581) | function P192 () {
function P25519 (line 5589) | function P25519 () {
function Red (line 5640) | function Red (m) {
function Mont (line 5874) | function Mont (m) {
function Rand (line 5956) | function Rand(rand) {
function typedArraySupport (line 6180) | function typedArraySupport () {
function kMaxLength (line 6192) | function kMaxLength () {
function createBuffer (line 6198) | function createBuffer (that, length) {
function Buffer (line 6227) | function Buffer (arg, encodingOrOffset, length) {
function from (line 6252) | function from (that, value, encodingOrOffset, length) {
function assertSize (line 6293) | function assertSize (size) {
function alloc (line 6301) | function alloc (that, size, fill, encoding) {
function allocUnsafe (line 6325) | function allocUnsafe (that, size) {
function fromString (line 6349) | function fromString (that, string, encoding) {
function fromArrayLike (line 6373) | function fromArrayLike (that, array) {
function fromArrayBuffer (line 6382) | function fromArrayBuffer (that, array, byteOffset, length) {
function fromObject (line 6412) | function fromObject (that, obj) {
function checked (line 6442) | function checked (length) {
function SlowBuffer (line 6452) | function SlowBuffer (length) {
function byteLength (line 6535) | function byteLength (string, encoding) {
function slowToString (line 6580) | function slowToString (encoding, start, end) {
function swap (line 6654) | function swap (b, n, m) {
function bidirectionalIndexOf (line 6788) | function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
function arrayIndexOf (line 6845) | function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
function hexWrite (line 6913) | function hexWrite (buf, string, offset, length) {
function utf8Write (line 6940) | function utf8Write (buf, string, offset, length) {
function asciiWrite (line 6944) | function asciiWrite (buf, string, offset, length) {
function latin1Write (line 6948) | function latin1Write (buf, string, offset, length) {
function base64Write (line 6952) | function base64Write (buf, string, offset, length) {
function ucs2Write (line 6956) | function ucs2Write (buf, string, offset, length) {
function base64Slice (line 7039) | function base64Slice (buf, start, end) {
function utf8Slice (line 7047) | function utf8Slice (buf, start, end) {
function decodeCodePointsArray (line 7125) | function decodeCodePointsArray (codePoints) {
function asciiSlice (line 7143) | function asciiSlice (buf, start, end) {
function latin1Slice (line 7153) | function latin1Slice (buf, start, end) {
function hexSlice (line 7163) | function hexSlice (buf, start, end) {
function utf16leSlice (line 7176) | function utf16leSlice (buf, start, end) {
function checkOffset (line 7224) | function checkOffset (offset, ext, length) {
function checkInt (line 7385) | function checkInt (buf, value, offset, ext, max, min) {
function objectWriteUInt16 (line 7438) | function objectWriteUInt16 (buf, value, offset, littleEndian) {
function objectWriteUInt32 (line 7472) | function objectWriteUInt32 (buf, value, offset, littleEndian) {
function checkIEEE754 (line 7622) | function checkIEEE754 (buf, value, offset, ext, max, min) {
function writeFloat (line 7627) | function writeFloat (buf, value, offset, littleEndian, noAssert) {
function writeDouble (line 7643) | function writeDouble (buf, value, offset, littleEndian, noAssert) {
function base64clean (line 7776) | function base64clean (str) {
function stringtrim (line 7788) | function stringtrim (str) {
function toHex (line 7793) | function toHex (n) {
function utf8ToBytes (line 7798) | function utf8ToBytes (string, units) {
function asciiToBytes (line 7878) | function asciiToBytes (str) {
function utf16leToBytes (line 7887) | function utf16leToBytes (str, units) {
function base64ToBytes (line 7903) | function base64ToBytes (str) {
function blitBuffer (line 7907) | function blitBuffer (src, dst, offset, length) {
function isnan (line 7915) | function isnan (val) {
function CipherBase (line 7934) | function CipherBase (hashMode) {
function classNames (line 8034) | function classNames () {
function clone (line 8094) | function clone(parent, circular, depth, prototype) {
function __objToStr (line 8198) | function __objToStr(o) {
function __isDate (line 8203) | function __isDate(o) {
function __isArray (line 8208) | function __isArray(o) {
function __isRegExp (line 8213) | function __isRegExp(o) {
function __getRegExpFlags (line 8218) | function __getRegExpFlags(re) {
function comparativeDistance (line 8402) | function comparativeDistance(x, y) {
function wrapRaw (line 9106) | function wrapRaw(fn) {
function wrapRounded (line 9127) | function wrapRounded(fn) {
function buildGraph (line 9195) | function buildGraph() {
function deriveBFS (line 9211) | function deriveBFS(fromModel) {
function link (line 9236) | function link(from, to) {
function wrapConversion (line 9242) | function wrapConversion(toModel, graph) {
function getRgba (line 9452) | function getRgba(string) {
function getHsla (line 9512) | function getHsla(string) {
function getHwb (line 9528) | function getHwb(string) {
function getRgb (line 9544) | function getRgb(string) {
function getHsl (line 9549) | function getHsl(string) {
function getAlpha (line 9554) | function getAlpha(string) {
function hexString (line 9568) | function hexString(rgb) {
function rgbString (line 9573) | function rgbString(rgba, alpha) {
function rgbaString (line 9580) | function rgbaString(rgba, alpha) {
function percentString (line 9588) | function percentString(rgba, alpha) {
function percentaString (line 9599) | function percentaString(rgba, alpha) {
function hslString (line 9606) | function hslString(hsla, alpha) {
function hslaString (line 9613) | function hslaString(hsla, alpha) {
function hwbString (line 9623) | function hwbString(hwb, alpha) {
function keyword (line 9631) | function keyword(rgb) {
function scale (line 9636) | function scale(num, min, max) {
function hexDouble (line 9640) | function hexDouble(num) {
function getCoreProps (line 10173) | function getCoreProps(props) {
function normalizeTypeName (line 10181) | function normalizeTypeName(typeName) {
function normalizeRenderers (line 10187) | function normalizeRenderers(renderers) {
function HtmlRenderer (line 10195) | function HtmlRenderer(props) {
function isGrandChildOfList (line 10206) | function isGrandChildOfList(node) {
function addChild (line 10215) | function addChild(node, child) {
function createElement (line 10224) | function createElement(tagName, props, children) {
function reduceChildren (line 10230) | function reduceChildren(children, child) {
function flattenPosition (line 10241) | function flattenPosition(pos) {
function getNodeProps (line 10249) | function getNodeProps(node, key, opts, renderer) {
function getPosition (line 10318) | function getPosition(node) {
function renderNodes (line 10330) | function renderNodes(block) {
function defaultLinkUriFilter (line 10447) | function defaultLinkUriFilter(uri) {
function ReactRenderer (line 10455) | function ReactRenderer(options) {
function Parser (line 11357) | function Parser(options){
function HtmlRenderer (line 11835) | function HtmlRenderer(options){
function InlineParser (line 12767) | function InlineParser(options){
function isContainer (line 12805) | function isContainer(node) {
function XmlRenderer (line 13284) | function XmlRenderer(options){
function copy (line 13301) | function copy(text, options) {
function isArray (line 13730) | function isArray(arg) {
function isBoolean (line 13738) | function isBoolean(arg) {
function isNull (line 13743) | function isNull(arg) {
function isNullOrUndefined (line 13748) | function isNullOrUndefined(arg) {
function isNumber (line 13753) | function isNumber(arg) {
function isString (line 13758) | function isString(arg) {
function isSymbol (line 13763) | function isSymbol(arg) {
function isUndefined (line 13768) | function isUndefined(arg) {
function isRegExp (line 13773) | function isRegExp(re) {
function isObject (line 13778) | function isObject(arg) {
function isDate (line 13783) | function isDate(d) {
function isError (line 13788) | function isError(e) {
function isFunction (line 13793) | function isFunction(arg) {
function isPrimitive (line 13798) | function isPrimitive(arg) {
function objectToString (line 13810) | function objectToString(o) {
function HashNoConstructor (line 13825) | function HashNoConstructor (hash) {
function Hash (line 13846) | function Hash (hash) {
function toArray (line 13881) | function toArray (buf) {
function core_md5 (line 13921) | function core_md5 (x, len) {
function md5_cmn (line 14017) | function md5_cmn (q, a, b, x, s, t) {
function md5_ff (line 14021) | function md5_ff (a, b, c, d, x, s, t) {
function md5_gg (line 14025) | function md5_gg (a, b, c, d, x, s, t) {
function md5_hh (line 14029) | function md5_hh (a, b, c, d, x, s, t) {
function md5_ii (line 14033) | function md5_ii (a, b, c, d, x, s, t) {
function safe_add (line 14041) | function safe_add (x, y) {
function bit_rol (line 14050) | function bit_rol (num, cnt) {
function identity (line 14085) | function identity(fn) {
function factory (line 14100) | function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
function later (line 14831) | function later() {
function inherits (line 14914) | function inherits(ctor, superCtor) {
function Diff (line 14926) | function Diff(kind, path) {
function DiffEdit (line 14939) | function DiffEdit(path, origin, value) {
function DiffNew (line 14952) | function DiffNew(path, value) {
function DiffDeleted (line 14961) | function DiffDeleted(path, value) {
function DiffArray (line 14970) | function DiffArray(path, index, item) {
function arrayRemove (line 14983) | function arrayRemove(arr, from, to) {
function realTypeOf (line 14990) | function realTypeOf(subject) {
function deepDiff (line 15010) | function deepDiff(lhs, rhs, changes, prefilter, path, key, stack) {
function accumulateDiff (line 15089) | function accumulateDiff(lhs, rhs, prefilter, accum) {
function applyArrayChange (line 15101) | function applyArrayChange(arr, index, change) {
function applyChange (line 15137) | function applyChange(target, source, change) {
function revertArrayChange (line 15163) | function revertArrayChange(arr, index, change) {
function revertChange (line 15205) | function revertChange(target, source, change) {
function applyDiff (line 15238) | function applyDiff(target, source, filter) {
function Proto (line 15322) | function Proto (cons, opts) {
function indexOf (line 15466) | function indexOf (xs, x) {
function Scrubber (line 15477) | function Scrubber (callbacks) {
function dnode (line 15556) | function dnode (cons, opts) {
function BaseCurve (line 15724) | function BaseCurve(type, conf) {
function BasePoint (line 15963) | function BasePoint(curve, type) {
function EdwardsCurve (line 16102) | function EdwardsCurve(conf) {
function Point (line 16206) | function Point(curve, x, y, z, t) {
function MontCurve (line 16547) | function MontCurve(conf) {
function Point (line 16568) | function Point(curve, x, z) {
function ShortCurve (line 16729) | function ShortCurve(conf) {
function Point (line 16970) | function Point(curve, x, y, isRed) {
function obj2point (line 17054) | function obj2point(obj) {
function JPoint (line 17208) | function JPoint(curve, x, y, z) {
function PresetCurve (line 17668) | function PresetCurve(options) {
function defineCurve (line 17684) | function defineCurve(name, options) {
function EC (line 17877) | function EC(options) {
function KeyPair (line 18115) | function KeyPair(ec, options) {
function Signature (line 18237) | function Signature(options, enc) {
function Position (line 18254) | function Position() {
function getLength (line 18258) | function getLength(buf, p) {
function rmPadding (line 18273) | function rmPadding(buf) {
function constructLength (line 18323) | function constructLength(arr, len) {
function EDDSA (line 18376) | function EDDSA(curve) {
function KeyPair (line 18503) | function KeyPair(eddsa, params) {
function Signature (line 18601) | function Signature(eddsa, sig) {
function getNAF (line 19448) | function getNAF(num, w) {
function getJSF (line 19478) | function getJSF(k1, k2) {
function cachedProperty (line 19534) | function cachedProperty(obj, name, computer) {
function parseBytes (line 19543) | function parseBytes(bytes) {
function intFromLE (line 19549) | function intFromLE(bytes) {
function getStrictDecoder (line 19744) | function getStrictDecoder(map){
function replacer (line 19776) | function replacer(str){
function sorter (line 19787) | function sorter(a, b){
function getReplacer (line 19791) | function getReplacer(map){
function decodeCodePoint (line 19814) | function decodeCodePoint(codePoint){
function getInverseObj (line 19847) | function getInverseObj(obj){
function getInverseReplacer (line 19854) | function getInverseReplacer(inverse){
function singleCharReplacer (line 19875) | function singleCharReplacer(c){
function astralReplacer (line 19879) | function astralReplacer(c){
function getInverse (line 19887) | function getInverse(inverse, re){
function escapeXML (line 19902) | function escapeXML(data){
function normalize (line 19957) | function normalize(name) {
function Keccak (line 20056) | function Keccak(bits, padding, outputBits) {
function EthQuery (line 20448) | function EthQuery(provider){
function generateFnFor (line 20517) | function generateFnFor(methodName){
function generateFnWithDefaultBlockFor (line 20529) | function generateFnWithDefaultBlockFor(argCount, methodName){
function createPayload (line 20543) | function createPayload(data){
function getter (line 21213) | function getter () {
function setter (line 21216) | function setter (v) {
function Result (line 21304) | function Result() {}
function encodeParams (line 21306) | function encodeParams(types, values) {
function decodeParams (line 21354) | function decodeParams(names, types, data) {
function encodeMethod (line 21387) | function encodeMethod(method, values) {
function decodeMethod (line 21396) | function decodeMethod(method, data) {
function encodeEvent (line 21404) | function encodeEvent(eventObject, values) {
function eventSignature (line 21408) | function eventSignature(eventObject) {
function decodeEvent (line 21414) | function decodeEvent(eventObject, data, topics) {
function decodeLogItem (line 21436) | function decodeLogItem(eventObject, log) {
function logDecoder (line 21447) | function logDecoder(abi) {
function stripZeros (line 21486) | function stripZeros(aInput) {
function bnToBuffer (line 21496) | function bnToBuffer(bnInput) {
function isHexString (line 21505) | function isHexString(value, length) {
function hexOrBuffer (line 21515) | function hexOrBuffer(valueInput, name) {
function hexlify (line 21535) | function hexlify(value) {
function getKeys (line 21547) | function getKeys(params, key, allowEmpty) {
function coderNumber (line 21568) | function coderNumber(size, signed) {
function coderFixedBytes (line 21618) | function coderFixedBytes(length) {
function encodeDynamicBytesHelper (line 21675) | function encodeDynamicBytesHelper(value) {
function decodeDynamicBytesHelper (line 21683) | function decodeDynamicBytesHelper(data, offset) {
function coderArray (line 21724) | function coderArray(coder, lengthInput) {
function getParamCoder (line 21788) | function getParamCoder(typeInput) {
function hasTransactionObject (line 21906) | function hasTransactionObject(args) {
function getConstructorFromABI (line 21917) | function getConstructorFromABI(contractABI) {
function getCallableMethodsFromABI (line 21923) | function getCallableMethodsFromABI(contractABI) {
function contractFactory (line 21929) | function contractFactory(query) {
function EthContract (line 22055) | function EthContract(query) {
class Ens (line 22315) | class Ens {
method constructor (line 22317) | constructor (opts = {}) {
method lookup (line 22347) | lookup (name = '') {
method getOwner (line 22356) | getOwner (name = '') {
method getOwnerForNode (line 22361) | getOwnerForNode (node) {
method getResolver (line 22376) | getResolver (name = '') {
method getResolverAddress (line 22381) | getResolverAddress (name = '') {
method getResolverForNode (line 22386) | getResolverForNode (node) {
method getResolverAddressForNode (line 22397) | getResolverAddressForNode (node) {
method resolveAddressForNode (line 22408) | resolveAddressForNode (node) {
method reverse (line 22416) | reverse (address) {
function constructFilter (line 22453) | function constructFilter(filterName, query) {
function EthFilter (line 22592) | function EthFilter(query) {
function formatQuantity (line 22629) | function formatQuantity(value, encode) {
function formatQuantityOrTag (line 22653) | function formatQuantityOrTag(value, encode) {
function formatData (line 22673) | function formatData(value, byteLength) {
function formatObject (line 22702) | function formatObject(formatter, value, encode) {
function formatArray (line 22744) | function formatArray(formatter, value, encode, lengthRequirement) {
function format (line 22793) | function format(formatter, value, encode, lengthRequirement) {
function formatInputs (line 22828) | function formatInputs(method, inputs) {
function formatOutputs (line 22840) | function formatOutputs(method, outputs) {
function Eth (line 22863) | function Eth(provider, options) {
function generateFnFor (line 22895) | function generateFnFor(method, methodObject) {
function EthRPC (line 22968) | function EthRPC(cprovider, options) {
function createPayload (line 23025) | function createPayload(data, id) {
function padToEven (line 23257) | function padToEven(value) {
function intToHex (line 23276) | function intToHex(i) {
function intToBuffer (line 23287) | function intToBuffer(i) {
function getBinarySize (line 23298) | function getBinarySize(str) {
function arrayContainsArray (line 23315) | function arrayContainsArray(superset, subset, some) {
function toUtf8 (line 23335) | function toUtf8(hex) {
function toAscii (line 23348) | function toAscii(hex) {
function fromUtf8 (line 23373) | function fromUtf8(stringValue) {
function fromAscii (line 23387) | function fromAscii(stringValue) {
function getKeys (line 23408) | function getKeys(params, key, allowEmpty) {
function isHexString (line 23440) | function isHexString(value, length) {
function EventEmitter (line 23490) | function EventEmitter() {
function g (line 23628) | function g() {
function isFunction (line 23756) | function isFunction(arg) {
function isNumber (line 23760) | function isNumber(arg) {
function isObject (line 23764) | function isObject(arg) {
function isUndefined (line 23768) | function isUndefined(arg) {
function setupListener (line 23780) | function setupListener (targetElement) {
function teardownListener (line 23784) | function teardownListener (targetElement) {
function clickHandler (line 23788) | function clickHandler (event) {
function Extension (line 23823) | function Extension () {
function matchesSelector_SLOW (line 23910) | function matchesSelector_SLOW(element, selector) {
function camelize (line 24155) | function camelize(string) {
function camelizeStyleName (line 24197) | function camelizeStyleName(string) {
function containsNode (line 24223) | function containsNode(outerNode, innerNode) {
function toArray (line 24268) | function toArray(obj) {
function hasArrayNature (line 24316) | function hasArrayNature(obj) {
function createArrayFromMixed (line 24359) | function createArrayFromMixed(obj) {
function getNodeName (line 24410) | function getNodeName(markup) {
function createNodesFromMarkup (line 24425) | function createNodesFromMarkup(markup, handleScript) {
function makeEmptyFunction (line 24471) | function makeEmptyFunction(arg) {
function focusNode (line 24535) | function focusNode(node) {
function getActiveElement (line 24571) | function getActiveElement(doc) /*?DOMElement*/{
function getMarkupWrap (line 24663) | function getMarkupWrap(nodeName) {
function getUnboundedScrollPosition (line 24706) | function getUnboundedScrollPosition(scrollable) {
function hyphenate (line 24748) | function hyphenate(string) {
function hyphenateStyleName (line 24787) | function hyphenateStyleName(string) {
function invariant (line 24827) | function invariant(condition, format, a, b, c, d, e, f) {
function isNode (line 24868) | function isNode(object) {
function isTextNode (line 24895) | function isTextNode(object) {
function memoizeStringOnly (line 24919) | function memoizeStringOnly(callback) {
function is (line 25010) | function is(x, y) {
function shallowEqual (line 25028) | function shallowEqual(objA, objB) {
function identity (line 25133) | function identity(out) {
function invert (line 25162) | function invert(out, a) {
function lookAt (line 25222) | function lookAt(out, eye, center, up) {
function multiply (line 25310) | function multiply(out, a, b) {
function perspective (line 25355) | function perspective(out, fovy, aspect, near, far) {
function rotate (line 25388) | function rotate(out, a, rad, axis) {
function transformMat4 (line 25453) | function transformMat4(out, a, m) {
function HashBase (line 25468) | function HashBase (blockSize) {
function BlockHash (line 25571) | function BlockHash() {
function Hmac (line 25666) | function Hmac(hash, key, enc) {
function RIPEMD160 (line 25719) | function RIPEMD160() {
function f (line 25784) | function f(j, x, y, z) {
function K (line 25797) | function K(j) {
function Kh (line 25810) | function Kh(j) {
function SHA256 (line 25945) | function SHA256() {
function SHA224 (line 26011) | function SHA224() {
function SHA512 (line 26035) | function SHA512() {
function SHA384 (line 26182) | function SHA384() {
function SHA1 (line 26211) | function SHA1() {
function ch32 (line 26268) | function ch32(x, y, z) {
function maj32 (line 26272) | function maj32(x, y, z) {
function p32 (line 26276) | function p32(x, y, z) {
function s0_256 (line 26280) | function s0_256(x) {
function s1_256 (line 26284) | function s1_256(x) {
function g0_256 (line 26288) | function g0_256(x) {
function g1_256 (line 26292) | function g1_256(x) {
function ft_1 (line 26296) | function ft_1(s, x, y, z) {
function ch64_hi (line 26305) | function ch64_hi(xh, xl, yh, yl, zh, zl) {
function ch64_lo (line 26312) | function ch64_lo(xh, xl, yh, yl, zh, zl) {
function maj64_hi (line 26319) | function maj64_hi(xh, xl, yh, yl, zh, zl) {
function maj64_lo (line 26326) | function maj64_lo(xh, xl, yh, yl, zh, zl) {
function s0_512_hi (line 26333) | function s0_512_hi(xh, xl) {
function s0_512_lo (line 26344) | function s0_512_lo(xh, xl) {
function s1_512_hi (line 26355) | function s1_512_hi(xh, xl) {
function s1_512_lo (line 26366) | function s1_512_lo(xh, xl) {
function g0_512_hi (line 26377) | function g0_512_hi(xh, xl) {
function g0_512_lo (line 26388) | function g0_512_lo(xh, xl) {
function g1_512_hi (line 26399) | function g1_512_hi(xh, xl) {
function g1_512_lo (line 26410) | function g1_512_lo(xh, xl) {
function toArray (line 26425) | function toArray(msg, enc) {
function toHex (line 26457) | function toHex(msg) {
function htonl (line 26465) | function htonl(w) {
function toHex32 (line 26474) | function toHex32(msg, endian) {
function zero2 (line 26486) | function zero2(word) {
function zero8 (line 26494) | function zero8(word) {
function join32 (line 26514) | function join32(msg, start, end, endian) {
function split32 (line 26530) | function split32(msg, endian) {
function rotr32 (line 26550) | function rotr32(w, b) {
function rotl32 (line 26555) | function rotl32(w, b) {
function sum32 (line 26560) | function sum32(a, b) {
function sum32_3 (line 26565) | function sum32_3(a, b, c) {
function sum32_4 (line 26570) | function sum32_4(a, b, c, d) {
function sum32_5 (line 26575) | function sum32_5(a, b, c, d, e) {
function assert (line 26580) | function assert(cond, msg) {
function sum64 (line 26588) | function sum64(buf, pos, ah, al) {
function sum64_hi (line 26599) | function sum64_hi(ah, al, bh, bl) {
function sum64_lo (line 26606) | function sum64_lo(ah, al, bh, bl) {
function sum64_4_hi (line 26612) | function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
function sum64_4_lo (line 26627) | function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
function sum64_5_hi (line 26633) | function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
function sum64_5_lo (line 26650) | function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
function rotr64_hi (line 26657) | function rotr64_hi(ah, al, num) {
function rotr64_lo (line 26663) | function rotr64_lo(ah, al, num) {
function shr64_hi (line 26669) | function shr64_hi(ah, al, num) {
function shr64_lo (line 26674) | function shr64_lo(ah, al, num) {
function HmacDRBG (line 26687) | function HmacDRBG(options) {
function mapChar (line 27590) | function mapChar(codePoint) {
function mapLabel (line 27620) | function mapLabel(label, useStd3ASCII, transitional) {
function process (line 27645) | function process(domain, transitional, useStd3ASCII) {
function validateLabel (line 27667) | function validateLabel(label, useStd3ASCII, transitional) {
function toAscii (line 27692) | function toAscii(domain, options) {
function toUnicode (line 27713) | function toUnicode(domain, options) {
function isBuffer (line 27938) | function isBuffer (obj) {
function isSlowBuffer (line 27943) | function isSlowBuffer (obj) {
function generateIdenticon (line 27986) | function generateIdenticon(diameter, seed) {
function genShape (line 28007) | function genShape(paper, remainingColors, diameter, i, total) {
function genColor (line 28019) | function genColor(colors) {
function hueShift (line 28027) | function hueShift(colors, generator) {
function newPaper (line 28039) | function newPaper(diameter) {
function Keccak (line 28147) | function Keccak(bits, padding, outputBits) {
function IdIterator (line 28535) | function IdIterator(opts){
function quote (line 28841) | function quote(string) {
function str (line 28855) | function str(key, holder) {
function Keccak (line 29022) | function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
function Shake (line 29109) | function Shake (rate, capacity, delimitedSuffix, options) {
function Keccak (line 29374) | function Keccak () {
function apply (line 29473) | function apply(func, thisArg, args) {
function baseTimes (line 29492) | function baseTimes(n, iteratee) {
function overArg (line 29510) | function overArg(func, transform) {
function arrayLikeKeys (line 29547) | function arrayLikeKeys(value, inherited) {
function assignValue (line 29576) | function assignValue(object, key, value) {
function baseKeys (line 29591) | function baseKeys(object) {
function baseRest (line 29612) | function baseRest(func, start) {
function copyObject (line 29643) | function copyObject(source, props, object, customizer) {
function createAssigner (line 29668) | function createAssigner(assigner) {
function isIndex (line 29702) | function isIndex(value, length) {
function isIterateeCall (line 29719) | function isIterateeCall(value, index, object) {
function isPrototype (line 29740) | function isPrototype(value) {
function eq (line 29779) | function eq(value, other) {
function isArguments (line 29801) | function isArguments(value) {
function isArrayLike (line 29857) | function isArrayLike(value) {
function isArrayLikeObject (line 29886) | function isArrayLikeObject(value) {
function isFunction (line 29907) | function isFunction(value) {
function isLength (line 29940) | function isLength(value) {
function isObject (line 29970) | function isObject(value) {
function isObjectLike (line 29999) | function isObjectLike(value) {
function keys (line 30075) | function keys(object) {
function isHostObject (line 30101) | function isHostObject(value) {
function overArg (line 30121) | function overArg(func, transform) {
function isObjectLike (line 30174) | function isObjectLike(value) {
function isPlainObject (line 30206) | function isPlainObject(value) {
function baseGetTag (line 30249) | function baseGetTag(value) {
function getRawTag (line 30302) | function getRawTag(value) {
function objectToString (line 30342) | function objectToString(value) {
function overArg (line 30357) | function overArg(func, transform) {
function isObjectLike (line 30401) | function isObjectLike(value) {
function isPlainObject (line 30456) | function isPlainObject(value) {
function realMethod (line 30492) | function realMethod(methodName) {
function bindMethod (line 30504) | function bindMethod(obj, methodName) {
function enableLoggingWhenConsoleArrives (line 30522) | function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {
function replaceLoggingMethods (line 30531) | function replaceLoggingMethods(level, loggerName) {
function defaultMethodFactory (line 30541) | function defaultMethodFactory(methodName, level, loggerName) {
function Logger (line 30555) | function Logger(name, defaultLevel, factory) {
function getDecodeCache (line 30705) | function getDecodeCache(exclude) {
function decode (line 30727) | function decode(string, exclude) {
function getEncodeCache (line 30831) | function getEncodeCache(exclude) {
function encode (line 30863) | function encode(string, exclude, keepEscaped) {
function MenuDroppoComponent (line 30933) | function MenuDroppoComponent() {
function isDescendant (line 31013) | function isDescendant(parent, child) {
function createNode (line 32675) | function createNode (type) {
function setAttribute (line 32679) | function setAttribute (node, attribute, value) {
function setLookAt (line 32724) | function setLookAt(target) {
function Polygon (line 32748) | function Polygon (svg, indices) {
function updatePositions (line 32836) | function updatePositions (M) {
function compareZ (line 32869) | function compareZ (a, b) {
function updateFaces (line 32874) | function updateFaces () {
function renderScene (line 32927) | function renderScene () {
function stopAnimation (line 32952) | function stopAnimation() {
function startAnimation (line 32956) | function startAnimation() {
function setFollowMouse (line 32960) | function setFollowMouse (state) {
function assert (line 32969) | function assert(val, msg) {
function toArray (line 32984) | function toArray(msg, enc) {
function zero2 (line 33016) | function zero2(word) {
function toHex (line 33024) | function toHex(msg) {
function toObject (line 33092) | function toObject(val) {
function shouldUseNative (line 33100) | function shouldUseNative() {
function once (line 33192) | function once (fn) {
function onceStrict (line 33202) | function onceStrict (fn) {
function pascalcase (line 33223) | function pascalcase(str) {
function normalizeArray (line 33265) | function normalizeArray(parts, allowAboveRoot) {
function trim (line 33374) | function trim(arr) {
function filter (line 33447) | function filter (xs, f) {
function nextTick (line 33478) | function nextTick(fn, arg1, arg2, arg3) {
function defaultSetTimout (line 33525) | function defaultSetTimout() {
function defaultClearTimeout (line 33528) | function defaultClearTimeout () {
function runTimeout (line 33551) | function runTimeout(fun) {
function runClearTimeout (line 33576) | function runClearTimeout(marker) {
function cleanUpNextTick (line 33608) | function cleanUpNextTick() {
function drainQueue (line 33623) | function drainQueue() {
function Item (line 33661) | function Item(fun, array) {
function noop (line 33675) | function noop() {}
function checkPropTypes (line 33730) | function checkPropTypes(typeSpecs, values, location, componentName, getS...
function shim (line 33804) | function shim(props, propName, componentName, location, propFullName, se...
function getShim (line 33817) | function getShim() {
function getIteratorFn (line 33887) | function getIteratorFn(maybeIterable) {
function is (line 33970) | function is(x, y) {
function PropTypeError (line 33990) | function PropTypeError(message) {
function createChainableTypeChecker (line 33997) | function createChainableTypeChecker(validate) {
function createPrimitiveTypeChecker (line 34057) | function createPrimitiveTypeChecker(expectedType) {
function createAnyTypeChecker (line 34074) | function createAnyTypeChecker() {
function createArrayOfTypeChecker (line 34078) | function createArrayOfTypeChecker(typeChecker) {
function createElementTypeChecker (line 34099) | function createElementTypeChecker() {
function createInstanceTypeChecker (line 34111) | function createInstanceTypeChecker(expectedClass) {
function createEnumTypeChecker (line 34123) | function createEnumTypeChecker(expectedValues) {
function createObjectOfTypeChecker (line 34143) | function createObjectOfTypeChecker(typeChecker) {
function createUnionTypeChecker (line 34166) | function createUnionTypeChecker(arrayOfTypeCheckers) {
function createNodeChecker (line 34199) | function createNodeChecker() {
function createShapeTypeChecker (line 34209) | function createShapeTypeChecker(shapeTypes) {
function isNode (line 34231) | function isNode(propValue) {
function isSymbol (line 34278) | function isSymbol(propType, propValue) {
function getPropType (line 34298) | function getPropType(propValue) {
function getPreciseType (line 34317) | function getPreciseType(propValue) {
function getPostfixForTypeWarning (line 34334) | function getPostfixForTypeWarning(value) {
function getClassName (line 34350) | function getClassName(propValue) {
function error (line 34481) | function error(type) {
function map (line 34493) | function map(array, fn) {
function mapDomain (line 34512) | function mapDomain(string, fn) {
function ucs2decode (line 34541) | function ucs2decode(string) {
function ucs2encode (line 34575) | function ucs2encode(array) {
function basicToDigit (line 34597) | function basicToDigit(codePoint) {
function digitToBasic (line 34621) | function digitToBasic(digit, flag) {
function adapt (line 34632) | function adapt(delta, numPoints, firstTime) {
function decode (line 34649) | function decode(input) {
function encode (line 34750) | function encode(input) {
function toUnicode (line 34868) | function toUnicode(input) {
function toASCII (line 34887) | function toASCII(input) {
function qrPolynomial (line 35866) | function qrPolynomial(num, shift) {
function e (line 36588) | function e(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,lo...
function e (line 36588) | function e(r){if(e.is(r,"function"))return w?r():t.on("raphael.DOMload",...
function r (line 36588) | function r(t){if("function"==typeof t||Object(t)!==t)return t;var e=new ...
function i (line 36588) | function i(t,e){for(var r=0,i=t.length;r<i;r++)if(t[r]===e)return t.push...
function n (line 36588) | function n(t,e,r){function n(){var a=Array.prototype.slice.call(argument...
function a (line 36588) | function a(){return this.hex}
function s (line 36588) | function s(t,e){for(var r=[],i=0,n=t.length;n-2*!e>i;i+=2){var a=[{x:+t[...
function o (line 36588) | function o(t,e,r,i,n){var a=-3*e+9*r-9*i+3*n,s=t*a+6*e-12*r+6*i;return t...
function l (line 36588) | function l(t,e,r,i,n,a,s,l,h){null==h&&(h=1),h=h>1?1:h<0?0:h;for(var u=h...
function h (line 36588) | function h(t,e,r,i,n,a,s,o,h){if(!(h<0||l(t,e,r,i,n,a,s,o)<h)){var u=1,c...
function u (line 36588) | function u(t,e,r,i,n,a,s,o){if(!(W(t,r)<G(n,s)||G(t,r)>W(n,s)||W(e,i)<G(...
function c (line 36588) | function c(t,e){return p(t,e)}
function f (line 36588) | function f(t,e){return p(t,e,1)}
function p (line 36588) | function p(t,r,i){var n=e.bezierBBox(t),a=e.bezierBBox(r);if(!e.isBBoxIn...
function d (line 36588) | function d(t,r,i){t=e._path2curve(t),r=e._path2curve(r);for(var n,a,s,o,...
function g (line 36588) | function g(t,e,r,i,n,a){null!=t?(this.a=+t,this.b=+e,this.c=+r,this.d=+i...
function v (line 36588) | function v(){return this.x+j+this.y}
function x (line 36588) | function x(){return this.x+j+this.y+j+this.width+" × "+this.height}
function y (line 36588) | function y(t,e,r,i,n,a){function s(t){return((c*t+u)*t+h)*t}function o(t...
function m (line 36588) | function m(t,e){var r=[],i={};if(this.ms=e,this.times=1,t){for(var n in ...
function b (line 36588) | function b(r,i,n,a,s,o){n=ht(n);var l,h,u,c=[],f,p,d,v=r.ms,x={},m={},b=...
function _ (line 36588) | function _(t){for(var e=0;e<Ee.length;e++)Ee[e].el.paper==t&&Ee.splice(e...
function i (line 36588) | function i(t){return t+.5|0}
function r (line 36588) | function r(t){return t[0]*t[0]+t[1]*t[1]}
function i (line 36588) | function i(t){var e=Y.sqrt(r(t));t[0]&&(t[0]/=e),t[1]&&(t[1]/=e)}
function l (line 36589) | function l(l){(l.originalEvent||l).preventDefault();var h=l.clientX,u=l....
function n (line 36589) | function n(){/in/.test(t.readyState)?setTimeout(n,9):e.eve("raphael.DOMl...
function i (line 36590) | function i(){return("0000"+(Math.random()*Math.pow(36,5)<<0).toString(36...
function isPresto (line 36739) | function isPresto() {
function isKeypressCommand (line 36787) | function isKeypressCommand(nativeEvent) {
function getCompositionEventType (line 36799) | function getCompositionEventType(topLevelType) {
function isFallbackCompositionStart (line 36818) | function isFallbackCompositionStart(topLevelType, nativeEvent) {
function isFallbackCompositionEnd (line 36829) | function isFallbackCompositionEnd(topLevelType, nativeEvent) {
function getDataFromCustomEvent (line 36857) | function getDataFromCustomEvent(nativeEvent) {
function extractCompositionEvent (line 36871) | function extractCompositionEvent(topLevelType, targetInst, nativeEvent, ...
function getNativeBeforeInputChars (line 36923) | function getNativeBeforeInputChars(topLevelType, nativeEvent) {
function getFallbackBeforeInputChars (line 36977) | function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
function extractBeforeInputEvent (line 37031) | function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, ...
function prefixKey (line 37143) | function prefixKey(prefix, key) {
function _classCallCheck (line 37457) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function CallbackQueue (line 37476) | function CallbackQueue(arg) {
function shouldUseChangeEvent (line 37606) | function shouldUseChangeEvent(elem) {
function manualDispatchChangeEvent (line 37617) | function manualDispatchChangeEvent(nativeEvent) {
function runEventInBatch (line 37635) | function runEventInBatch(event) {
function startWatchingForChangeEventIE8 (line 37640) | function startWatchingForChangeEventIE8(target, targetInst) {
function stopWatchingForChangeEventIE8 (line 37646) | function stopWatchingForChangeEventIE8() {
function getTargetInstForChangeEvent (line 37655) | function getTargetInstForChangeEvent(topLevelType, targetInst) {
function handleEventsForChangeEventIE8 (line 37660) | function handleEventsForChangeEventIE8(topLevelType, target, targetInst) {
function startWatchingForValueChange (line 37703) | function startWatchingForValueChange(target, targetInst) {
function stopWatchingForValueChange (line 37723) | function stopWatchingForValueChange() {
function handlePropertyChange (line 37747) | function handlePropertyChange(nativeEvent) {
function getTargetInstForInputEvent (line 37763) | function getTargetInstForInputEvent(topLevelType, targetInst) {
function handleEventsForInputEventIE (line 37771) | function handleEventsForInputEventIE(topLevelType, target, targetInst) {
function getTargetInstForInputEventIE (line 37794) | function getTargetInstForInputEventIE(topLevelType, targetInst) {
function shouldUseClickEvent (line 37816) | function shouldUseClickEvent(elem) {
function getTargetInstForClickEvent (line 37823) | function getTargetInstForClickEvent(topLevelType, targetInst) {
function handleControlledInputBlur (line 37829) | function handleControlledInputBlur(inst, node) {
function getNodeAfter (line 37930) | function getNodeAfter(parentNode, node) {
function insertLazyTreeChildAt (line 37954) | function insertLazyTreeChildAt(parentNode, childTree, referenceNode) {
function moveChild (line 37958) | function moveChild(parentNode, childNode, referenceNode) {
function removeChild (line 37966) | function removeChild(parentNode, childNode) {
function moveDelimitedText (line 37976) | function moveDelimitedText(parentNode, openingComment, closingComment, r...
function removeDelimitedText (line 37988) | function removeDelimitedText(parentNode, startNode, closingComment) {
function replaceDelimitedText (line 38000) | function replaceDelimitedText(openingComment, closingComment, stringText) {
function insertTreeChildren (line 38169) | function insertTreeChildren(tree) {
function replaceChildWithTree (line 38202) | function replaceChildWithTree(oldNode, newTree) {
function queueChild (line 38207) | function queueChild(parentTree, childTree) {
function queueHTML (line 38215) | function queueHTML(tree, html) {
function queueText (line 38223) | function queueText(tree, text) {
function toString (line 38231) | function toString() {
function DOMLazyTree (line 38235) | function DOMLazyTree(node) {
function checkMask (line 38290) | function checkMask(value, bitmask) {
function isAttributeNameSafe (line 38509) | function isAttributeNameSafe(attributeName) {
function shouldIgnoreValue (line 38525) | function shouldIgnoreValue(propertyInfo, value) {
function isInteractive (line 39055) | function isInteractive(tag) {
function shouldPreventMouseEvent (line 39059) | function shouldPreventMouseEvent(name, type, props) {
function recomputePluginOrdering (line 39305) | function recomputePluginOrdering() {
function publishEventForPlugin (line 39334) | function publishEventForPlugin(dispatchConfig, pluginModule, eventName) {
function publishRegistrationName (line 39362) | function publishRegistrationName(registrationName, pluginModule, eventNa...
function isEndish (line 39574) | function isEndish(topLevelType) {
function isMoveish (line 39578) | function isMoveish(topLevelType) {
function isStartish (line 39581) | function isStartish(topLevelType) {
function executeDispatch (line 39608) | function executeDispatch(event, simulated, listener, inst) {
function executeDispatchesInOrder (line 39622) | function executeDispatchesInOrder(event, simulated) {
function executeDispatchesInOrderStopAtTrueImpl (line 39650) | function executeDispatchesInOrderStopAtTrueImpl(event) {
function executeDispatchesInOrderStopAtTrue (line 39677) | function executeDispatchesInOrderStopAtTrue(event) {
function executeDirectDispatch (line 39693) | function executeDirectDispatch(event) {
function hasDispatches (line 39712) | function hasDispatches(event) {
function listenerAtPhase (line 39783) | function listenerAtPhase(inst, event, propagationPhase) {
function accumulateDirectionalDispatches (line 39794) | function accumulateDirectionalDispatches(inst, phase, event) {
function accumulateTwoPhaseDispatchesSingle (line 39812) | function accumulateTwoPhaseDispatchesSingle(event) {
function accumulateTwoPhaseDispatchesSingleSkipTarget (line 39821) | function accumulateTwoPhaseDispatchesSingleSkipTarget(event) {
function accumulateDispatches (line 39834) | function accumulateDispatches(inst, ignoredDirection, event) {
function accumulateDirectDispatchesSingle (line 39850) | function accumulateDirectDispatchesSingle(event) {
function accumulateTwoPhaseDispatches (line 39856) | function accumulateTwoPhaseDispatches(events) {
function accumulateTwoPhaseDispatchesSkipTarget (line 39860) | function accumulateTwoPhaseDispatchesSkipTarget(events) {
function accumulateEnterLeaveDispatches (line 39864) | function accumulateEnterLeaveDispatches(leave, enter, from, to) {
function accumulateDirectDispatches (line 39868) | function accumulateDirectDispatches(events) {
function FallbackCompositionState (line 39922) | function FallbackCompositionState(root) {
function escape (line 40244) | function escape(key) {
function unescape (line 40263) | function unescape(key) {
function _assertSingleLink (line 40317) | function _assertSingleLink(inputProps) {
function _assertValueLink (line 40320) | function _assertValueLink(inputProps) {
function _assertCheckedLink (line 40325) | function _assertCheckedLink(inputProps) {
function getDeclarationErrorAddendum (line 40347) | function getDeclarationErrorAddendum(owner) {
function getListeningForDocument (line 40693) | function getListeningForDocument(mountAt) {
function instantiateChild (line 40897) | function instantiateChild(childInstances, child, name, selfDebugID) {
function StatelessComponent (line 41140) | function StatelessComponent(Component) {}
function warnIfInvalidElement (line 41148) | function warnIfInvalidElement(Component, element) {
function shouldConstruct (line 41155) | function shouldConstruct(Component) {
function isPureComponent (line 41159) | function isPureComponent(Component) {
function measureLifeCyclePerf (line 41164) | function measureLifeCyclePerf(fn, debugID, timerType) {
function getDeclarationErrorAddendum (line 42181) | function getDeclarationErrorAddendum(internalInstance) {
function friendlyStringify (line 42194) | function friendlyStringify(obj) {
function checkAndWarnForMutatedStyle (line 42220) | function checkAndWarnForMutatedStyle(style1, style2, component) {
function assertValidProps (line 42250) | function assertValidProps(component, props) {
function enqueuePutListener (line 42270) | function enqueuePutListener(inst, registrationName, listener, transactio...
function putListener (line 42290) | function putListener() {
function inputPostMount (line 42295) | function inputPostMount() {
function textareaPostMount (line 42300) | function textareaPostMount() {
function optionPostMount (line 42305) | function optionPostMount() {
function trapBubbledEventsLocal (line 42367) | function trapBubbledEventsLocal() {
function postUpdateSelectWrapper (line 42408) | function postUpdateSelectWrapper() {
function validateDangerousTag (line 42454) | function validateDangerousTag(tag) {
function isCustomComponent (line 42461) | function isCustomComponent(tagName, props) {
function ReactDOMComponent (line 42481) | function ReactDOMComponent(element) {
function shouldPrecacheNode (line 43165) | function shouldPrecacheNode(node, nodeID) {
function getRenderedHostOrTextFromComponent (line 43176) | function getRenderedHostOrTextFromComponent(component) {
function precacheNode (line 43188) | function precacheNode(inst, node) {
function uncacheNode (line 43194) | function uncacheNode(inst) {
function precacheChildNodes (line 43216) | function precacheChildNodes(inst, node) {
function getClosestInstanceFromNode (line 43249) | function getClosestInstanceFromNode(node) {
function getInstanceFromNode (line 43283) | function getInstanceFromNode(node) {
function getNodeFromInstance (line 43296) | function getNodeFromInstance(inst) {
function ReactDOMContainerInfo (line 43351) | function ReactDOMContainerInfo(topLevelWrapper, node) {
function forceUpdateIfMounted (line 43513) | function forceUpdateIfMounted() {
function isControlled (line 43520) | function isControlled(props) {
function _handleChange (line 43718) | function _handleChange(event) {
function validateProperty (line 43790) | function validateProperty(tagName, name, debugID) {
function warnInvalidARIAProps (line 43816) | function warnInvalidARIAProps(debugID, element) {
function handleElement (line 43837) | function handleElement(debugID, element) {
function handleElement (line 43883) | function handleElement(debugID, element) {
function flattenChildren (line 43931) | function flattenChildren(children) {
function updateOptionsIfPendingUpdateAndMounted (line 44058) | function updateOptionsIfPendingUpdateAndMounted() {
function getDeclarationErrorAddendum (line 44071) | function getDeclarationErrorAddendum(owner) {
function checkSelectPropTypes (line 44087) | function checkSelectPropTypes(inst, props) {
function updateOptions (line 44116) | function updateOptions(inst, multiple, propValue) {
function _handleChange (line 44222) | function _handleChange(event) {
function isCollapsed (line 44258) | function isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {
function getIEOffsets (line 44276) | function getIEOffsets(node) {
function getModernOffsets (line 44299) | function getModernOffsets(node) {
function setIEOffsets (line 44361) | function setIEOffsets(node, offsets) {
function setModernOffsets (line 44395) | function setModernOffsets(node, offsets) {
function forceUpdateIfMounted (line 44640) | function forceUpdateIfMounted() {
function _handleChange (line 44766) | function _handleChange(event) {
function getLowestCommonAncestor (line 44797) | function getLowestCommonAncestor(instA, instB) {
function isAncestor (line 44837) | function isAncestor(instA, instB) {
function getParentInstance (line 44853) | function getParentInstance(inst) {
function traverseTwoPhase (line 44862) | function traverseTwoPhase(inst, fn, arg) {
function traverseEnterLeave (line 44884) | function traverseEnterLeave(from, to, fn, argFrom, argTo) {
function handleElement (line 45006) | function handleElement(debugID, element) {
function callHook (line 45053) | function callHook(event, fn, context, arg1, arg2, arg3, arg4, arg5) {
function emitEvent (line 45062) | function emitEvent(event, arg1, arg2, arg3, arg4, arg5) {
function clearHistory (line 45085) | function clearHistory() {
function getTreeSnapshot (line 45090) | function getTreeSnapshot(registeredIDs) {
function resetMeasurements (line 45107) | function resetMeasurements() {
function checkDebugID (line 45134) | function checkDebugID(debugID) {
function beginLifeCycleTimer (line 45145) | function beginLifeCycleTimer(debugID, timerType) {
function endLifeCycleTimer (line 45159) | function endLifeCycleTimer(debugID, timerType) {
function pauseCurrentLifeCycleTimer (line 45180) | function pauseCurrentLifeCycleTimer() {
function resumeCurrentLifeCycleTimer (line 45194) | function resumeCurrentLifeCycleTimer() {
function shouldMark (line 45211) | function shouldMark(debugID) {
function markBegin (line 45226) | function markBegin(debugID, markType) {
function markEnd (line 45236) | function markEnd(debugID, markType) {
function ReactDefaultBatchingStrategyTransaction (line 45422) | function ReactDefaultBatchingStrategyTransaction() {
function inject (line 45491) | function inject() {
function invokeGuardedCallback (line 45617) | function invokeGuardedCallback(name, func, a) {
function runEventQueueInBatch (line 45685) | function runEventQueueInBatch(events) {
function findParent (line 45732) | function findParent(inst) {
function TopLevelCallbackBookKeeping (line 45745) | function TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {
function handleTopLevelImpl (line 45759) | function handleTopLevelImpl(bookKeeping) {
function scrollValueMonitor (line 45779) | function scrollValueMonitor(cb) {
function createInternalComponent (line 45920) | function createInternalComponent(element) {
function createInstanceForText (line 45929) | function createInstanceForText(text) {
function isTextComponent (line 45937) | function isTextComponent(component) {
function isInDocument (line 46037) | function isInDocument(node) {
function firstDifferenceIndex (line 46359) | function firstDifferenceIndex(string1, string2) {
function getReactRootElementInContainer (line 46374) | function getReactRootElementInContainer(container) {
function internalGetID (line 46386) | function internalGetID(node) {
function mountComponentIntoNode (line 46401) | function mountComponentIntoNode(wrapperInstance, container, transaction,...
function batchedMountComponentIntoNode (line 46428) | function batchedMountComponentIntoNode(componentInstance, container, sho...
function unmountComponentFromNode (line 46445) | function unmountComponentFromNode(instance, container, safely) {
function hasNonRootReactChild (line 46474) | function hasNonRootReactChild(container) {
function nodeIsRenderedByOtherInstance (line 46490) | function nodeIsRenderedByOtherInstance(container) {
function isValidContainer (line 46502) | function isValidContainer(node) {
function isReactNode (line 46513) | function isReactNode(node) {
function getHostRootInstanceInContainer (line 46517) | function getHostRootInstanceInContainer(container) {
function getTopLevelWrapperInContainer (line 46523) | function getTopLevelWrapperInContainer(container) {
function makeInsertMarkup (line 46880) | function makeInsertMarkup(markup, afterNode, toIndex) {
function makeMove (line 46899) | function makeMove(child, afterNode, toIndex) {
function makeRemove (line 46917) | function makeRemove(child, node) {
function makeSetMarkup (line 46935) | function makeSetMarkup(markup) {
function makeTextContent (line 46953) | function makeTextContent(textContent) {
function enqueue (line 46969) | function enqueue(queue, update) {
function processQueue (line 46982) | function processQueue(inst, updateQueue) {
function isValidOwner (line 47363) | function isValidOwner(object) {
function roundFloat (line 47458) | function roundFloat(val) {
function consoleTable (line 47467) | function consoleTable(table) {
function warnInProduction (line 47471) | function warnInProduction() {
function getLastMeasurements (line 47481) | function getLastMeasurements() {
function getExclusive (line 47490) | function getExclusive() {
function getInclusive (line 47552) | function getInclusive() {
function getWasted (line 47637) | function getWasted() {
function getOperations (line 47747) | function getOperations() {
function printExclusive (line 47784) | function printExclusive(flushHistory) {
function printInclusive (line 47811) | function printInclusive(flushHistory) {
function printWasted (line 47834) | function printWasted(flushHistory) {
function printOperations (line 47857) | function printOperations(flushHistory) {
function printDOM (line 47878) | function printDOM(measurements) {
function getMeasurementsSummaryMap (line 47885) | function getMeasurementsSummaryMap(measurements) {
function start (line 47891) | function start() {
function stop (line 47900) | function stop() {
function isRunning (line 47909) | function isRunning() {
function ReactReconcileTransaction (line 48095) | function ReactReconcileTransaction(useCreateElement) {
function attachRefs (line 48185) | function attachRefs() {
function attachRef (line 48350) | function attachRef(ref, component, owner) {
function detachRef (line 48359) | function detachRef(ref, component, owner) {
function ReactServerRenderingTransaction (line 48464) | function ReactServerRenderingTransaction(renderToStaticMarkup) {
function _classCallCheck (line 48528) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function warnNoop (line 48534) | function warnNoop(publicInstance, callerName) {
function ReactServerUpdateQueue (line 48550) | function ReactServerUpdateQueue(transaction) {
function _classCallCheck (line 48671) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function injectDefaults (line 48684) | function injectDefaults() {
function NoopInternalComponent (line 48690) | function NoopInternalComponent(element) {
function _batchedRender (line 48738) | function _batchedRender(renderer, element, context) {
function ReactShallowRenderer (line 48745) | function ReactShallowRenderer() {
function Event (line 48843) | function Event(suffix) {}
function createRendererWithWarning (line 48849) | function createRendererWithWarning() {
function findAllInRenderedTreeInternal (line 48860) | function findAllInRenderedTreeInternal(inst, test) {
function makeSimulator (line 49126) | function makeSimulator(eventType) {
function buildSimulators (line 49163) | function buildSimulators() {
function makeNativeSimulator (line 49206) | function makeNativeSimulator(eventType) {
function enqueueUpdate (line 49255) | function enqueueUpdate(internalInstance) {
function formatUnexpectedArgument (line 49259) | function formatUnexpectedArgument(arg) {
function getInternalInstanceReadyForUpdate (line 49272) | function getInternalInstanceReadyForUpdate(publicInstance, callerName) {
function ensureInjected (line 49501) | function ensureInjected() {
function ReactUpdatesFlushTransaction (line 49535) | function ReactUpdatesFlushTransaction() {
function batchedUpdates (line 49565) | function batchedUpdates(callback, a, b, c, d, e) {
function mountOrderComparator (line 49577) | function mountOrderComparator(c1, c2) {
function runBatchedUpdates (line 49581) | function runBatchedUpdates(transaction) {
function enqueueUpdate (line 49660) | function enqueueUpdate(component) {
function asap (line 49684) | function asap(callback, context) {
function getSelection (line 50091) | function getSelection(node) {
function constructSelectEvent (line 50122) | function constructSelectEvent(nativeEvent, nativeEventTarget) {
function getDictionaryKey (line 50303) | function getDictionaryKey(inst) {
function isInteractive (line 50309) | function isInteractive(tag) {
function SyntheticAnimationEvent (line 50491) | function SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeE...
function SyntheticClipboardEvent (line 50529) | function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeE...
function SyntheticCompositionEvent (line 50565) | function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativ...
function SyntheticDragEvent (line 50601) | function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent,...
function SyntheticEvent (line 50671) | function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeE...
function getPooledWarningPropertyDefinition (line 50851) | function getPooledWarningPropertyDefinition(propName, getVal) {
function SyntheticFocusEvent (line 50907) | function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent...
function SyntheticInputEvent (line 50944) | function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent...
function SyntheticKeyboardEvent (line 51028) | function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEv...
function SyntheticMouseEvent (line 51100) | function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent...
function SyntheticTouchEvent (line 51145) | function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent...
function SyntheticTransitionEvent (line 51184) | function SyntheticTransitionEvent(dispatchConfig, dispatchMarker, native...
function SyntheticUIEvent (line 51243) | function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, n...
function SyntheticWheelEvent (line 51297) | function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent...
function accumulateInto (line 51590) | function accumulateInto(current, next) {
function adler32 (line 51639) | function adler32(data) {
function checkReactTypeSpec (line 51709) | function checkReactTypeSpec(typeSpecs, values, location, componentName, ...
function dangerousStyleValue (line 51813) | function dangerousStyleValue(name, value, component) {
function escapeHtml (line 51918) | function escapeHtml(string) {
function escapeTextContentForBrowser (line 51976) | function escapeTextContentForBrowser(text) {
function findDOMNode (line 52019) | function findDOMNode(componentOrElement) {
function flattenSingleChildIntoContext (line 52085) | function flattenSingleChildIntoContext(traverseContext, child, name, sel...
function flattenChildren (line 52109) | function flattenChildren(children, selfDebugID) {
function forEachAccumulated (line 52149) | function forEachAccumulated(arr, cb, scope) {
function getEventCharCode (line 52182) | function getEventCharCode(nativeEvent) {
function getEventKey (line 52280) | function getEventKey(nativeEvent) {
function modifierStateGetter (line 52338) | function modifierStateGetter(keyArg) {
function getEventModifierState (line 52348) | function getEventModifierState(nativeEvent) {
function getEventTarget (line 52374) | function getEventTarget(nativeEvent) {
function getHostComponentFromComposite (line 52403) | function getHostComponentFromComposite(inst) {
function getIteratorFn (line 52451) | function getIteratorFn(maybeIterable) {
function getLeafNode (line 52479) | function getLeafNode(node) {
function getSiblingNode (line 52493) | function getSiblingNode(node) {
function getNodeForCharacterOffset (line 52509) | function getNodeForCharacterOffset(root, offset) {
function getTextContentAccessor (line 52556) | function getTextContentAccessor() {
function makePrefixMap (line 52588) | function makePrefixMap(styleProp, eventName) {
function getVendorPrefixedEventName (line 52648) | function getVendorPrefixedEventName(eventName) {
function getDeclarationErrorAddendum (line 52697) | function getDeclarationErrorAddendum(owner) {
function isInternalComponentType (line 52714) | function isInternalComponentType(type) {
function instantiateReactComponent (line 52726) | function instantiateReactComponent(node, shouldHaveDebugID) {
function isEventSupported (line 52835) | function isEventSupported(eventNameSuffix, capture) {
function isTextInputElement (line 52894) | function isTextInputElement(elem) {
function quoteAttributeValueForBrowser (line 52930) | function quoteAttributeValueForBrowser(value) {
function reactProdInvariant (line 52955) | function reactProdInvariant(code) {
function shouldUpdateReactComponent (line 53165) | function shouldUpdateReactComponent(prevElement, nextElement) {
function getComponentKey (line 53229) | function getComponentKey(component, index) {
function traverseAllChildrenImpl (line 53248) | function traverseAllChildrenImpl(children, nameSoFar, callback, traverse...
function traverseAllChildren (line 53350) | function traverseAllChildren(children, callback, traverseContext) {
function h (line 53747) | function h(componentOrTag, properties, children) {
function isChildren (line 53787) | function isChildren(x) {
function parseTag (line 53800) | function parseTag(tag, props) {
function ReactMarkdown (line 54022) | function ReactMarkdown(props) {
function _interopRequireDefault (line 54110) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _classCallCheck (line 54112) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _possibleConstructorReturn (line 54114) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
function _inherits (line 54116) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
function warnAboutReceivingStore (line 54119) | function warnAboutReceivingStore() {
function Provider (line 54135) | function Provider(props, context) {
function _interopRequireDefault (line 54214) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function _classCallCheck (line 54216) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _possibleConstructorReturn (line 54218) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
function _inherits (line 54220) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
function getDisplayName (line 54232) | function getDisplayName(WrappedComponent) {
function tryCatch (line 54237) | function tryCatch(fn, ctx) {
function connect (line 54249) | function connect(mapStateToProps, mapDispatchToProps, mergeProps) {
function _interopRequireDefault (line 54586) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function shallowEqual (line 54595) | function shallowEqual(objA, objB) {
function _interopRequireDefault (line 54626) | function _interopRequireDefault(obj) { return obj && obj.__esModule ? ob...
function warning (line 54644) | f
Condensed preview — 79 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,926K chars).
[
{
"path": ".babelrc",
"chars": 34,
"preview": "{\n \"presets\": [\"react-native\"]\n}\n"
},
{
"path": ".buckconfig",
"chars": 114,
"preview": "\n[android]\n target = Google Inc.:Google APIs:23\n\n[maven_repositories]\n central = https://repo1.maven.org/maven2\n"
},
{
"path": ".flowconfig",
"chars": 1421,
"preview": "[ignore]\n; We fork some components by platform\n.*/*[.]android.js\n\n; Ignore \"BUCK\" generated dirs\n<PROJECT_ROOT>/\\.buckd/"
},
{
"path": ".gitattributes",
"chars": 16,
"preview": "*.pbxproj -text\n"
},
{
"path": ".gitignore",
"chars": 774,
"preview": "# OSX\n#\n.DS_Store\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.p"
},
{
"path": ".watchmanconfig",
"chars": 2,
"preview": "{}"
},
{
"path": "LICENSE",
"chars": 1235,
"preview": "The Ethereum Project Contributor Asset Distribution Terms ( MIT + Share-alike )\n\nCopyright (c) 2016-2017 MetaMask\nCopyri"
},
{
"path": "README.md",
"chars": 433,
"preview": "MetaMask for Mobile\n===================\n\n.\n# To run your application with Buck:\n# - install Buck\n# - `npm"
},
{
"path": "android/app/build.gradle",
"chars": 5452,
"preview": "apply plugin: \"com.android.application\"\n\nimport com.android.build.OutputFile\n\n/**\n * The react.gradle file registers a t"
},
{
"path": "android/app/proguard-rules.pro",
"chars": 2682,
"preview": "# Add project specific ProGuard rules here.\n# By default, the flags in this file are appended to flags specified\n# in /u"
},
{
"path": "android/app/src/main/AndroidManifest.xml",
"chars": 1141,
"preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"com.nabi\"\n android:versionCode=\"1\"\n"
},
{
"path": "android/app/src/main/java/com/nabi/MainActivity.java",
"chars": 353,
"preview": "package com.nabi;\n\nimport com.facebook.react.ReactActivity;\n\npublic class MainActivity extends ReactActivity {\n\n /**\n"
},
{
"path": "android/app/src/main/java/com/nabi/MainApplication.java",
"chars": 1051,
"preview": "package com.nabi;\n\nimport android.app.Application;\n\nimport com.facebook.react.ReactApplication;\nimport com.reactnativena"
},
{
"path": "android/app/src/main/res/values/strings.xml",
"chars": 67,
"preview": "<resources>\n <string name=\"app_name\">Nabi</string>\n</resources>\n"
},
{
"path": "android/app/src/main/res/values/styles.xml",
"chars": 192,
"preview": "<resources>\n\n <!-- Base application theme. -->\n <style name=\"AppTheme\" parent=\"Theme.AppCompat.Light.NoActionBar\">"
},
{
"path": "android/build.gradle",
"chars": 642,
"preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n r"
},
{
"path": "android/gradle/wrapper/gradle-wrapper.properties",
"chars": 203,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dist"
},
{
"path": "android/gradle.properties",
"chars": 887,
"preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
},
{
"path": "android/gradlew",
"chars": 5080,
"preview": "#!/usr/bin/env bash\n\n##############################################################################\n##\n## Gradle start "
},
{
"path": "android/gradlew.bat",
"chars": 2404,
"preview": "@if \"%DEBUG%\" == \"\" @echo off\r\n@rem ##########################################################################\r\n@rem\r\n@r"
},
{
"path": "android/keystores/BUCK",
"chars": 152,
"preview": "keystore(\n name = \"debug\",\n properties = \"debug.keystore.properties\",\n store = \"debug.keystore\",\n visibility"
},
{
"path": "android/keystores/debug.keystore.properties",
"chars": 105,
"preview": "key.store=debug.keystore\nkey.alias=androiddebugkey\nkey.store.password=android\nkey.alias.password=android\n"
},
{
"path": "android/settings.gradle",
"chars": 214,
"preview": "rootProject.name = 'Nabi'\ninclude ':react-native-navigation'\nproject(':react-native-navigation').projectDir = new File(r"
},
{
"path": "app.json",
"chars": 45,
"preview": "{\n \"name\": \"Nabi\",\n \"displayName\": \"Nabi\"\n}"
},
{
"path": "index.android.js",
"chars": 45,
"preview": "import { startApp } from './src'\n\nstartApp()\n"
},
{
"path": "index.ios.js",
"chars": 45,
"preview": "import { startApp } from './src'\n\nstartApp()\n"
},
{
"path": "ios/Nabi/AppDelegate.swift",
"chars": 2353,
"preview": "import UIKit\nimport WebKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n var window: UIW"
},
{
"path": "ios/Nabi/AppProtocol.swift",
"chars": 2068,
"preview": "import UIKit\n\nclass AppProtocol: URLProtocol {\n override class func canInit(with request: URLRequest) -> Bool {\n ret"
},
{
"path": "ios/Nabi/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 1077,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"size\" : \"29x29\",\n \"scale\" : \"2x\"\n },\n {\n \"idiom\""
},
{
"path": "ios/Nabi/Base.lproj/LaunchScreen.xib",
"chars": 2786,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
},
{
"path": "ios/Nabi/Info.plist",
"chars": 1892,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "ios/Nabi/Nabi-Bridging-Header.h",
"chars": 209,
"preview": "//\n// Use this file to import your target's public headers that you would like to expose to Swift.\n//\n\n#import \"NSURLPr"
},
{
"path": "ios/Nabi.xcodeproj/project.pbxproj",
"chars": 49752,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "ios/Nabi.xcodeproj/xcshareddata/xcschemes/Nabi.xcscheme",
"chars": 4716,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0830\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "ios/NabiTests/Info.plist",
"chars": 680,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "ios/NabiTests/NabiTests.swift",
"chars": 965,
"preview": "//\n// NabiTests.swift\n// NabiTests\n//\n// Created by Peter Jihoon Kim on 6/4/17.\n// Copyright © 2017 Peter Jihoon Kim"
},
{
"path": "ios/NabiUITests/Info.plist",
"chars": 680,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "ios/NabiUITests/NabiUITests.swift",
"chars": 1241,
"preview": "//\n// NabiUITests.swift\n// NabiUITests\n//\n// Created by Peter Jihoon Kim on 6/4/17.\n// Copyright © 2017 Peter Jihoon"
},
{
"path": "ios/vendor/WKWebViewWithURLProtocol/NSURLProtocol+WKWebViewSupport.h",
"chars": 275,
"preview": "//\n// NSURLProtocol+WKWebViewSupport.h\n// Pods\n//\n// Created by Dylan on 2016/11/14.\n//\n//\n\n#import <Foundation/Found"
},
{
"path": "ios/vendor/WKWebViewWithURLProtocol/NSURLProtocol+WKWebViewSupport.m",
"chars": 1317,
"preview": "//\n// NSURLProtocol+WKWebViewSupport.m\n// Pods\n//\n// Created by Dylan on 2016/11/14.\n//\n//\n\n#import \"NSURLProtocol+WK"
},
{
"path": "package.json",
"chars": 1929,
"preview": "{\n \"name\": \"MetaMaskMobile\",\n \"version\": \"0.0.1\",\n \"private\": true,\n \"scripts\": {\n \"start\": \"node node_modules/re"
},
{
"path": "rn-cli.config.js",
"chars": 254,
"preview": "const extraNodeModules = require('node-libs-react-native')\n\nmodule.exports = {\n extraNodeModules,\n\n getSourceExts () {"
},
{
"path": "src/@types/react-native-navigation.d.ts",
"chars": 1487,
"preview": "declare module 'react-native-navigation' {\n import { ComponentClass } from 'react'\n import { ComponentProvider } from "
},
{
"path": "src/@types/react-native-wkwebview-reborn.d.ts",
"chars": 2156,
"preview": "declare module 'react-native-wkwebview-reborn' {\n import { Component } from 'react'\n import {\n EdgeInsetsPropType,\n"
},
{
"path": "src/components/BrowserWindow.tsx",
"chars": 5726,
"preview": "import React, { Component } from 'react'\nimport {\n Image,\n StatusBar,\n StyleSheet,\n TouchableOpacity,\n View\n} from "
},
{
"path": "src/components/LocationBar.tsx",
"chars": 2548,
"preview": "import React, { Component } from 'react'\nimport { StyleSheet, TextInput, View } from 'react-native'\nimport { normalizeUr"
},
{
"path": "src/components/MetaMaskBackground.tsx",
"chars": 1396,
"preview": "import React, { Component } from 'react'\nimport { View } from 'react-native'\nimport WKWebView, { WKWebViewMessage } from"
},
{
"path": "src/components/PageLoadProgress.tsx",
"chars": 1946,
"preview": "import React, { Component } from 'react'\nimport { Animated, StyleSheet, View } from 'react-native'\nimport { COLOR_HIGHLI"
},
{
"path": "src/constants.ts",
"chars": 341,
"preview": "import { Platform } from 'react-native'\n\nexport const TOOLBAR_HEIGHT = Platform.OS === 'ios' ? 44 : 56\nexport const TOOL"
},
{
"path": "src/index.ts",
"chars": 317,
"preview": "import { Navigation } from 'react-native-navigation'\nimport { registerScreens } from './screens'\n\nexport const startApp "
},
{
"path": "src/injections/contentScript.ts",
"chars": 2447,
"preview": "import { PortListener, Port, MessageEvent } from './types'\n\ndeclare global {\n interface Window {\n webkit: {\n me"
},
{
"path": "src/injections/metaMaskBackground.ts",
"chars": 3494,
"preview": "import { PortListener, Port, ConnectEvent } from './types'\n\nexport default function bootstrapMetaMaskBackground (\n wind"
},
{
"path": "src/injections/metaMaskPopup.ts",
"chars": 2186,
"preview": "import { PortListener, Port, MessageEvent } from './types'\n\nconst bootstrapMetaMaskPopup = function (\n window: Window,\n"
},
{
"path": "src/injections/types.ts",
"chars": 526,
"preview": "export type PortListener = (data: any) => void\n\nexport interface Port {\n id?: string\n name: string\n\n sender?: {\n u"
},
{
"path": "src/ipc.ts",
"chars": 1935,
"preview": "import WKWebView from 'react-native-wkwebview-reborn'\n\nclass IPC {\n private background?: WKWebView\n private clients: {"
},
{
"path": "src/screens/MetaMaskScreen.tsx",
"chars": 2288,
"preview": "import React, { Component } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Navigation } from 'rea"
},
{
"path": "src/screens/RootScreen.tsx",
"chars": 803,
"preview": "import React, { Component } from 'react'\nimport { StyleSheet, View } from 'react-native'\nimport { Navigation } from 'rea"
},
{
"path": "src/screens/index.ts",
"chars": 335,
"preview": "import { Navigation } from 'react-native-navigation'\nimport RootScreen from './RootScreen'\nimport MetaMaskScreen from '."
},
{
"path": "src/util.test.ts",
"chars": 563,
"preview": "import { normalizeUrl } from './util'\n\ndescribe('normalizeUrl', () => {\n it('can normalize urls that are missing protoc"
},
{
"path": "src/util.ts",
"chars": 1043,
"preview": "import url from 'url'\n\nexport const normalizeUrl = function (urlString: string): string {\n const u = url.parse(urlStrin"
},
{
"path": "tsconfig.json",
"chars": 573,
"preview": "{\n \"compilerOptions\": {\n \"target\": \"es2015\",\n \"module\": \"es2015\",\n \"moduleResolution\": \"node\",\n \"jsx\": \"rea"
},
{
"path": "tslint.json",
"chars": 319,
"preview": "{\n \"extends\": [\"tslint-config-standard\", \"tslint-react\"],\n \"rules\": {\n \"jsx-alignment\": false,\n \"jsx-boolean-val"
},
{
"path": "web/metamask/_locales/en/messages.json",
"chars": 229,
"preview": "{\n \"appName\": {\n \"message\": \"MetaMask\",\n \"description\": \"The name of the application\"\n },\n \"appDescription\": {\n"
},
{
"path": "web/metamask/_locales/es/messages.json",
"chars": 240,
"preview": "{\n \"appName\": {\n \"message\": \"MetaMask\",\n \"description\": \"The name of the application\"\n },\n \"appDescription\": {\n"
},
{
"path": "web/metamask/_locales/es_419/messages.json",
"chars": 240,
"preview": "{\n \"appName\": {\n \"message\": \"MetaMask\",\n \"description\": \"The name of the application\"\n },\n \"appDescription\": {\n"
},
{
"path": "web/metamask/_locales/ja/messages.json",
"chars": 214,
"preview": "{\n \"appName\": {\n \"message\": \"MetaMask\",\n \"description\": \"The name of the application\"\n },\n \"appDescription\": {\n"
},
{
"path": "web/metamask/_locales/zh_CN/messages.json",
"chars": 208,
"preview": "{\n \"appName\": {\n \"message\": \"MetaMask\",\n \"description\": \"The name of the application\"\n },\n \"appDescription\": {\n"
},
{
"path": "web/metamask/background.html",
"chars": 352,
"preview": "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-wid"
},
{
"path": "web/metamask/fonts/Montserrat/OFL.txt",
"chars": 4414,
"preview": "Copyright (c) 2011-2012, Julieta Ulanovsky (julieta.ulanovsky@gmail.com), with Reserved Font Names 'Montserrat'\nThis Fon"
},
{
"path": "web/metamask/manifest.json",
"chars": 1299,
"preview": "{\n \"name\": \"MetaMask\",\n \"short_name\": \"Metamask\",\n \"version\": \"3.7.1\",\n \"manifest_version\": 2,\n \"author\": \"https://"
},
{
"path": "web/metamask/popup.html",
"chars": 414,
"preview": "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=360, user-"
},
{
"path": "web/metamask/scripts/background.js",
"chars": 2015523,
"preview": "(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0)"
},
{
"path": "web/metamask/scripts/contentscript.js",
"chars": 181698,
"preview": "(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0)"
},
{
"path": "web/metamask/scripts/inpage.js",
"chars": 381905,
"preview": "(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0)"
},
{
"path": "web/metamask/scripts/popup.js",
"chars": 2747112,
"preview": "(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0)"
},
{
"path": "web/vendor/asmcrypto-0.0.11.js",
"chars": 122978,
"preview": "/*! asmCrypto v0.0.11, (c) 2013 Artem S Vybornov, opensource.org/licenses/MIT */\n!function(a,b){function c(){var a=Error"
},
{
"path": "web/vendor/webcrypto-liner.shim-0.1.22.js",
"chars": 63504,
"preview": "var liner=function(e){function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.expo"
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the petejkim/metamask-mobile GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 79 files (5.4 MB), approximately 1.4M tokens, and a symbol index with 3449 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.