diff --git a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/LoginActivity.kt b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/LoginActivity.kt index fdb6128..da87f4d 100644 --- a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/LoginActivity.kt +++ b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/LoginActivity.kt @@ -15,7 +15,6 @@ import android.os.AsyncTask import android.os.Build import android.os.Bundle import android.provider.ContactsContract -import android.text.TextUtils import android.view.View import android.view.inputmethod.EditorInfo import android.widget.ArrayAdapter @@ -132,11 +131,6 @@ class LoginActivity : AppCompatActivity(), LoaderCallbacks { return email.contains("@") } - private fun isPasswordValid(password: String): Boolean { - //TODO: Replace this with your own logic - return password.length > 4 - } - /** * Shows the progress UI and hides the login form. */ @@ -237,14 +231,7 @@ class LoginActivity : AppCompatActivity(), LoaderCallbacks { return false } - return DUMMY_CREDENTIALS - .map { it.split(":") } - .firstOrNull { it[0] == mEmail } - ?.let { - // Account exists, return true if the password matches. - it[1] == mPassword - } - ?: true + return true } override fun onPostExecute(success: Boolean?) { diff --git a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MainActivity.kt b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MainActivity.kt index fc24d69..951d4a2 100644 --- a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MainActivity.kt +++ b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MainActivity.kt @@ -45,9 +45,16 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte setContentView(R.layout.activity_main) setSupportActionBar(toolbar) - fab.setOnClickListener { view -> - Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) - .setAction("Action", null).show() + fab.setOnClickListener { _ -> + Log.d("MainActivity", "New Message") + val fragmentManager = supportFragmentManager + val fragmentTransaction = fragmentManager.beginTransaction() + val fragment = NewMessage() + val b = Bundle() + fragment.arguments = b + fragmentTransaction.replace(R.id.fragment_container, fragment) + .addToBackStack("New Message").commit() + title = "New Message" } val toggle = ActionBarDrawerToggle( @@ -66,6 +73,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte fragment.arguments = b fragmentTransaction.replace(R.id.fragment_container, fragment) .addToBackStack("Messages").commit() + title = "Messages" } override fun onBackPressed() { @@ -104,6 +112,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte fragment.arguments = b fragmentTransaction.replace(R.id.fragment_container, fragment) .addToBackStack("Messages").commit() + title = "Messages" } R.id.nav_contacts -> { Log.d("MainActivity", "Contacts") @@ -114,6 +123,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte fragment.arguments = b fragmentTransaction.replace(R.id.fragment_container, fragment) .addToBackStack("Contacts").commit() + title = "Contacts" } R.id.nav_keys -> { Log.d("MainActivity", "Keys") @@ -124,6 +134,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte fragment.arguments = b fragmentTransaction.replace(R.id.fragment_container, fragment) .addToBackStack("Keys").commit() + title = "Keys" } } diff --git a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyContactRecyclerViewAdapter.kt b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyContactRecyclerViewAdapter.kt index 86b4042..89e153a 100644 --- a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyContactRecyclerViewAdapter.kt +++ b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyContactRecyclerViewAdapter.kt @@ -42,7 +42,7 @@ class MyContactRecyclerViewAdapter( override fun onBindViewHolder(holder: ViewHolder, position: Int) { val item = mValues[position] holder.mIdView.text = item.id - holder.mContentView.text = item.content + holder.mContentView.text = item.uname with(holder.mView) { tag = item diff --git a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyListKeysRecyclerViewAdapter.kt b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyListKeysRecyclerViewAdapter.kt index d04e11f..977130a 100644 --- a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyListKeysRecyclerViewAdapter.kt +++ b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyListKeysRecyclerViewAdapter.kt @@ -42,7 +42,7 @@ class MyListKeysRecyclerViewAdapter( override fun onBindViewHolder(holder: ViewHolder, position: Int) { val item = mValues[position] holder.mIdView.text = item.id - holder.mContentView.text = item.content + holder.mContentView.text = item.user.uname with(holder.mView) { tag = item diff --git a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyMessageRecyclerViewAdapter.kt b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyMessageRecyclerViewAdapter.kt index d8d5106..b5e26fb 100644 --- a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyMessageRecyclerViewAdapter.kt +++ b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/MyMessageRecyclerViewAdapter.kt @@ -12,11 +12,6 @@ import io.github.romulus10.blckchnmsg.blckchnmsg.data.Message import kotlinx.android.synthetic.main.fragment_message.view.* -/** - * [RecyclerView.Adapter] that can display a [Message] and makes a call to the - * specified [OnListFragmentInteractionListener]. - * TODO: Replace the implementation with code for your data type. - */ class MyMessageRecyclerViewAdapter( private val mValues: MutableList, private val mListener: OnListFragmentInteractionListener?) @@ -27,8 +22,6 @@ class MyMessageRecyclerViewAdapter( init { mOnClickListener = View.OnClickListener { v -> val item = v.tag as Message.Message - // Notify the active callbacks interface (the activity, if the fragment is attached to - // one) that an item has been selected. mListener?.onListFragmentInteraction(item) } } @@ -41,8 +34,8 @@ class MyMessageRecyclerViewAdapter( override fun onBindViewHolder(holder: ViewHolder, position: Int) { val item = mValues[position] - holder.mIdView.text = item.id - holder.mContentView.text = item.content + holder.mIdView.text = item.from.uname + holder.mContentView.text = item.message with(holder.mView) { tag = item diff --git a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/NewContact.kt b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/NewContact.kt index 83ad8b9..9f9efdf 100644 --- a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/NewContact.kt +++ b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/NewContact.kt @@ -62,32 +62,11 @@ class NewContact : Fragment() { listener = null } - /** - * This interface must be implemented by activities that contain this - * fragment to allow an interaction in this fragment to be communicated - * to the activity and potentially other fragments contained in that - * activity. - * - * - * See the Android Training lesson [Communicating with Other Fragments] - * (http://developer.android.com/training/basics/fragments/communicating.html) - * for more information. - */ interface OnFragmentInteractionListener { - // TODO: Update argument type and name fun onFragmentInteraction(uri: Uri) } companion object { - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. - * @return A new instance of fragment NewContact. - */ - // TODO: Rename and change types and number of parameters @JvmStatic fun newInstance(param1: String, param2: String) = NewContact().apply { diff --git a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/blckchnmsg/data/Key.kt b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/blckchnmsg/data/Key.kt index 2a520a7..c7bf51d 100644 --- a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/blckchnmsg/data/Key.kt +++ b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/blckchnmsg/data/Key.kt @@ -17,11 +17,11 @@ object Key { ITEM_MAP[item.id] = item } - private fun createKey(id: String, user: Contact, key: String): Key { + private fun createKey(id: String, user: Contact.Contact, key: String): Key { return Key(id, user, key) } - data class Key(val id: String, val user: Contact, val key: String) { + data class Key(val id: String, val user: Contact.Contact, val key: String) { override fun toString(): String = id } } diff --git a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/blckchnmsg/data/Message.kt b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/blckchnmsg/data/Message.kt index 1252646..e4b5d37 100644 --- a/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/blckchnmsg/data/Message.kt +++ b/BlckchnMsg/app/src/main/java/io/github/romulus10/blckchnmsg/blckchnmsg/data/Message.kt @@ -16,11 +16,11 @@ object Message { ITEM_MAP[item.id] = item } - private fun createMessage(id: String, to: Contact, from: Contact, message: String, signature: String): Message { - return Message(id, to, from, message, signature) + private fun createMessage(id: String, to: Contact.Contact, from: Contact.Contact, message: String, signature: String): Message { + return Message(id, to, from, message, signature, false) } - data class Message(val id: String, val to: Contact, val from: Contact, val message: String, val signature: String) { + data class Message(val id: String, val to: Contact.Contact, val from: Contact.Contact, val message: String, val signature: String, val verified: Boolean) { override fun toString(): String = message } } diff --git a/BlckchnMsg/app/src/main/res/layout/fragment_add_contact.xml b/BlckchnMsg/app/src/main/res/layout/fragment_add_contact.xml deleted file mode 100644 index 2264a9d..0000000 --- a/BlckchnMsg/app/src/main/res/layout/fragment_add_contact.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/BlckchnMsg/app/src/main/res/layout/fragment_new_contact.xml b/BlckchnMsg/app/src/main/res/layout/fragment_new_contact.xml index 8d3608b..56c2aec 100644 --- a/BlckchnMsg/app/src/main/res/layout/fragment_new_contact.xml +++ b/BlckchnMsg/app/src/main/res/layout/fragment_new_contact.xml @@ -6,9 +6,10 @@ tools:context=".NewContact"> - + android:layout_height="wrap_content" + android:text="@string/hello_blank_fragment" + android:inputType="text" /> \ No newline at end of file diff --git a/BlckchnMsg/app/src/main/res/values/strings.xml b/BlckchnMsg/app/src/main/res/values/strings.xml index f836e6c..7f3c9d3 100644 --- a/BlckchnMsg/app/src/main/res/values/strings.xml +++ b/BlckchnMsg/app/src/main/res/values/strings.xml @@ -17,8 +17,8 @@ MainActivity Open navigation drawer Close navigation drawer - Android Studio - android.studio@android.com + Romulus10 + romulus108@protonmail.com Navigation header Settings diff --git a/blckchnmsg b/blckchnmsg index b292f07..77bb666 100755 --- a/blckchnmsg +++ b/blckchnmsg @@ -1,7 +1,8 @@ #!/bin/bash source ./venv/bin/activate +export PYTHONPATH="./blockchain_message/src" pushd ./client -python -m cli +python3 -m cli popd deactivate diff --git a/install b/install index 00f9b61..ed22ccb 100644 --- a/install +++ b/install @@ -76,4 +76,4 @@ pip install urllib3 pip install web3 pip install websockets -deactivates \ No newline at end of file +deactivate diff --git a/setup.py b/setup.py index f28b664..8ab8e76 100644 --- a/setup.py +++ b/setup.py @@ -2,144 +2,11 @@ setup( name='blockchain_message', - version='', - packages=['test', 'venv.lib.python3.6.site-packages.ens', 'venv.lib.python3.6.site-packages.pip', - 'venv.lib.python3.6.site-packages.pip._vendor', 'venv.lib.python3.6.site-packages.pip._vendor.idna', - 'venv.lib.python3.6.site-packages.pip._vendor.pytoml', - 'venv.lib.python3.6.site-packages.pip._vendor.certifi', - 'venv.lib.python3.6.site-packages.pip._vendor.chardet', - 'venv.lib.python3.6.site-packages.pip._vendor.chardet.cli', - 'venv.lib.python3.6.site-packages.pip._vendor.distlib', - 'venv.lib.python3.6.site-packages.pip._vendor.distlib._backport', - 'venv.lib.python3.6.site-packages.pip._vendor.msgpack', - 'venv.lib.python3.6.site-packages.pip._vendor.urllib3', - 'venv.lib.python3.6.site-packages.pip._vendor.urllib3.util', - 'venv.lib.python3.6.site-packages.pip._vendor.urllib3.contrib', - 'venv.lib.python3.6.site-packages.pip._vendor.urllib3.contrib._securetransport', - 'venv.lib.python3.6.site-packages.pip._vendor.urllib3.packages', - 'venv.lib.python3.6.site-packages.pip._vendor.urllib3.packages.backports', - 'venv.lib.python3.6.site-packages.pip._vendor.urllib3.packages.ssl_match_hostname', - 'venv.lib.python3.6.site-packages.pip._vendor.colorama', - 'venv.lib.python3.6.site-packages.pip._vendor.html5lib', - 'venv.lib.python3.6.site-packages.pip._vendor.html5lib._trie', - 'venv.lib.python3.6.site-packages.pip._vendor.html5lib.filters', - 'venv.lib.python3.6.site-packages.pip._vendor.html5lib.treewalkers', - 'venv.lib.python3.6.site-packages.pip._vendor.html5lib.treeadapters', - 'venv.lib.python3.6.site-packages.pip._vendor.html5lib.treebuilders', - 'venv.lib.python3.6.site-packages.pip._vendor.lockfile', - 'venv.lib.python3.6.site-packages.pip._vendor.progress', - 'venv.lib.python3.6.site-packages.pip._vendor.requests', - 'venv.lib.python3.6.site-packages.pip._vendor.packaging', - 'venv.lib.python3.6.site-packages.pip._vendor.cachecontrol', - 'venv.lib.python3.6.site-packages.pip._vendor.cachecontrol.caches', - 'venv.lib.python3.6.site-packages.pip._vendor.webencodings', - 'venv.lib.python3.6.site-packages.pip._vendor.pkg_resources', - 'venv.lib.python3.6.site-packages.pip._internal', 'venv.lib.python3.6.site-packages.pip._internal.req', - 'venv.lib.python3.6.site-packages.pip._internal.vcs', - 'venv.lib.python3.6.site-packages.pip._internal.utils', - 'venv.lib.python3.6.site-packages.pip._internal.models', - 'venv.lib.python3.6.site-packages.pip._internal.commands', - 'venv.lib.python3.6.site-packages.pip._internal.operations', 'venv.lib.python3.6.site-packages.rlp', - 'venv.lib.python3.6.site-packages.rlp.sedes', 'venv.lib.python3.6.site-packages.rsa', - 'venv.lib.python3.6.site-packages.tlz', 'venv.lib.python3.6.site-packages.idna', - 'venv.lib.python3.6.site-packages.pytz', 'venv.lib.python3.6.site-packages.solc', - 'venv.lib.python3.6.site-packages.solc.utils', 'venv.lib.python3.6.site-packages.web3', - 'venv.lib.python3.6.site-packages.web3.auto', 'venv.lib.python3.6.site-packages.web3.utils', - 'venv.lib.python3.6.site-packages.web3.utils.six', 'venv.lib.python3.6.site-packages.web3.utils.toolz', - 'venv.lib.python3.6.site-packages.web3.utils.module_testing', - 'venv.lib.python3.6.site-packages.web3.providers', - 'venv.lib.python3.6.site-packages.web3.providers.eth_tester', - 'venv.lib.python3.6.site-packages.web3.middleware', - 'venv.lib.python3.6.site-packages.web3.gas_strategies', 'venv.lib.python3.6.site-packages.babel', - 'venv.lib.python3.6.site-packages.babel.messages', 'venv.lib.python3.6.site-packages.babel.localtime', - 'venv.lib.python3.6.site-packages.toolz', 'venv.lib.python3.6.site-packages.toolz.curried', - 'venv.lib.python3.6.site-packages.toolz.sandbox', 'venv.lib.python3.6.site-packages.Crypto', - 'venv.lib.python3.6.site-packages.Crypto.IO', 'venv.lib.python3.6.site-packages.Crypto.Hash', - 'venv.lib.python3.6.site-packages.Crypto.Math', 'venv.lib.python3.6.site-packages.Crypto.Util', - 'venv.lib.python3.6.site-packages.Crypto.Cipher', 'venv.lib.python3.6.site-packages.Crypto.Random', - 'venv.lib.python3.6.site-packages.Crypto.Protocol', 'venv.lib.python3.6.site-packages.Crypto.SelfTest', - 'venv.lib.python3.6.site-packages.Crypto.SelfTest.IO', - 'venv.lib.python3.6.site-packages.Crypto.SelfTest.Hash', - 'venv.lib.python3.6.site-packages.Crypto.SelfTest.Math', - 'venv.lib.python3.6.site-packages.Crypto.SelfTest.Util', - 'venv.lib.python3.6.site-packages.Crypto.SelfTest.Cipher', - 'venv.lib.python3.6.site-packages.Crypto.SelfTest.Random', - 'venv.lib.python3.6.site-packages.Crypto.SelfTest.Protocol', - 'venv.lib.python3.6.site-packages.Crypto.SelfTest.PublicKey', - 'venv.lib.python3.6.site-packages.Crypto.SelfTest.Signature', - 'venv.lib.python3.6.site-packages.Crypto.PublicKey', 'venv.lib.python3.6.site-packages.Crypto.Signature', - 'venv.lib.python3.6.site-packages.jinja2', 'venv.lib.python3.6.site-packages.pyasn1', - 'venv.lib.python3.6.site-packages.pyasn1.type', 'venv.lib.python3.6.site-packages.pyasn1.codec', - 'venv.lib.python3.6.site-packages.pyasn1.codec.ber', 'venv.lib.python3.6.site-packages.pyasn1.codec.cer', - 'venv.lib.python3.6.site-packages.pyasn1.codec.der', - 'venv.lib.python3.6.site-packages.pyasn1.codec.native', 'venv.lib.python3.6.site-packages.pyasn1.compat', - 'venv.lib.python3.6.site-packages.sphinx', 'venv.lib.python3.6.site-packages.sphinx.cmd', - 'venv.lib.python3.6.site-packages.sphinx.ext', 'venv.lib.python3.6.site-packages.sphinx.ext.autodoc', - 'venv.lib.python3.6.site-packages.sphinx.ext.napoleon', - 'venv.lib.python3.6.site-packages.sphinx.ext.autosummary', 'venv.lib.python3.6.site-packages.sphinx.util', - 'venv.lib.python3.6.site-packages.sphinx.util.stemmer', 'venv.lib.python3.6.site-packages.sphinx.locale', - 'venv.lib.python3.6.site-packages.sphinx.pycode', 'venv.lib.python3.6.site-packages.sphinx.search', - 'venv.lib.python3.6.site-packages.sphinx.domains', 'venv.lib.python3.6.site-packages.sphinx.testing', - 'venv.lib.python3.6.site-packages.sphinx.writers', 'venv.lib.python3.6.site-packages.sphinx.builders', - 'venv.lib.python3.6.site-packages.sphinx.builders.latex', - 'venv.lib.python3.6.site-packages.sphinx.directives', - 'venv.lib.python3.6.site-packages.sphinx.transforms', - 'venv.lib.python3.6.site-packages.sphinx.transforms.post_transforms', - 'venv.lib.python3.6.site-packages.sphinx.websupport', - 'venv.lib.python3.6.site-packages.sphinx.websupport.search', - 'venv.lib.python3.6.site-packages.sphinx.websupport.storage', - 'venv.lib.python3.6.site-packages.sphinx.environment', - 'venv.lib.python3.6.site-packages.sphinx.environment.adapters', - 'venv.lib.python3.6.site-packages.sphinx.environment.collectors', - 'venv.lib.python3.6.site-packages.certifi', 'venv.lib.python3.6.site-packages.chardet', - 'venv.lib.python3.6.site-packages.chardet.cli', 'venv.lib.python3.6.site-packages.cytoolz', - 'venv.lib.python3.6.site-packages.cytoolz.curried', 'venv.lib.python3.6.site-packages.eth_abi', - 'venv.lib.python3.6.site-packages.eth_abi.utils', 'venv.lib.python3.6.site-packages.eth_rlp', - 'venv.lib.python3.6.site-packages.ipfsapi', 'venv.lib.python3.6.site-packages.urllib3', - 'venv.lib.python3.6.site-packages.urllib3.util', 'venv.lib.python3.6.site-packages.urllib3.contrib', - 'venv.lib.python3.6.site-packages.urllib3.contrib._securetransport', - 'venv.lib.python3.6.site-packages.urllib3.packages', - 'venv.lib.python3.6.site-packages.urllib3.packages.backports', - 'venv.lib.python3.6.site-packages.urllib3.packages.ssl_match_hostname', - 'venv.lib.python3.6.site-packages.attrdict', 'venv.lib.python3.6.site-packages.docutils', - 'venv.lib.python3.6.site-packages.docutils.utils', 'venv.lib.python3.6.site-packages.docutils.utils.math', - 'venv.lib.python3.6.site-packages.docutils.parsers', - 'venv.lib.python3.6.site-packages.docutils.parsers.rst', - 'venv.lib.python3.6.site-packages.docutils.parsers.rst.languages', - 'venv.lib.python3.6.site-packages.docutils.parsers.rst.directives', - 'venv.lib.python3.6.site-packages.docutils.readers', 'venv.lib.python3.6.site-packages.docutils.writers', - 'venv.lib.python3.6.site-packages.docutils.writers.xetex', - 'venv.lib.python3.6.site-packages.docutils.writers.latex2e', - 'venv.lib.python3.6.site-packages.docutils.writers.odf_odt', - 'venv.lib.python3.6.site-packages.docutils.writers.s5_html', - 'venv.lib.python3.6.site-packages.docutils.writers.pep_html', - 'venv.lib.python3.6.site-packages.docutils.writers.html4css1', - 'venv.lib.python3.6.site-packages.docutils.writers.html5_polyglot', - 'venv.lib.python3.6.site-packages.docutils.languages', - 'venv.lib.python3.6.site-packages.docutils.transforms', 'venv.lib.python3.6.site-packages.eth_hash', - 'venv.lib.python3.6.site-packages.eth_hash.backends', 'venv.lib.python3.6.site-packages.eth_keys', - 'venv.lib.python3.6.site-packages.eth_keys.utils', 'venv.lib.python3.6.site-packages.eth_keys.backends', - 'venv.lib.python3.6.site-packages.eth_keys.backends.native', 'venv.lib.python3.6.site-packages.hexbytes', - 'venv.lib.python3.6.site-packages.pygments', 'venv.lib.python3.6.site-packages.pygments.lexers', - 'venv.lib.python3.6.site-packages.pygments.styles', 'venv.lib.python3.6.site-packages.pygments.filters', - 'venv.lib.python3.6.site-packages.pygments.formatters', 'venv.lib.python3.6.site-packages.requests', - 'venv.lib.python3.6.site-packages.alabaster', 'venv.lib.python3.6.site-packages.eth_utils', - 'venv.lib.python3.6.site-packages.eth_utils.typing', 'venv.lib.python3.6.site-packages.eth_utils.curried', - 'venv.lib.python3.6.site-packages.packaging', 'venv.lib.python3.6.site-packages.eth_typing', - 'venv.lib.python3.6.site-packages.markupsafe', 'venv.lib.python3.6.site-packages.websockets', - 'venv.lib.python3.6.site-packages.websockets.py35', 'venv.lib.python3.6.site-packages.websockets.py36', - 'venv.lib.python3.6.site-packages.websockets.extensions', 'venv.lib.python3.6.site-packages.eth_account', - 'venv.lib.python3.6.site-packages.eth_account.signers', - 'venv.lib.python3.6.site-packages.eth_account.internal', 'venv.lib.python3.6.site-packages.eth_keyfile', - 'venv.lib.python3.6.site-packages.parsimonious', 'venv.lib.python3.6.site-packages.parsimonious.tests', - 'venv.lib.python3.6.site-packages.sphinxcontrib.websupport', - 'venv.lib.python3.6.site-packages.sphinxcontrib.websupport.search', - 'venv.lib.python3.6.site-packages.sphinxcontrib.websupport.storage', - 'venv.lib.python3.6.site-packages.snowballstemmer', 'venv.lib.python3.6.site-packages.semantic_version', - 'client', 'blockchain_message', 'blockchain_message.src'], + version='0.1.0a2', + packages=['test', 'client', 'blockchain_message', 'blockchain_message.src'], url='', license='GPL', author='Sean Batzel', author_email='romulus108@protonmail.com', - description='', install_requires=['rsa'] + description='' )