Code Monkey home page Code Monkey logo

ether-wallet-flutter's Introduction

Ethereum wallet using an ERC-20 smart contract.

A digital wallet app developed in dart and flutter. The idea is to help developers to understand how to build dApps using blockchain and associated technologies. This app can transfer tokens from one wallet to another through an ERC-20 Ethereum contract.

What's being used

Wallet Change network Transfer tokens
Your wallet Change network Transfer tokens

Getting started

How to watch/build autogenerated files

$ flutter packages pub run build_runner build   # to build
$ flutter packages pub run build_runner watch   # to watch

How to run the app

$ flutter pub get packages
$ flutter packages pub run build_runner build
$ flutter run

running on the browser

$ flutter run -d web-server

How to run tests

$ flutter test

Wallet balance

For those who don't want to play with smart contracts yet, you can claim some test tokens by following links below, or check this repo to understand how to deploy your own contract.

Transfer test TOKENS to your wallet:

After setting up your wallet, you will need some tokens to play with. Use the link below to transfer some tokens to your wallet.

https://faucet.clempe.dev

Transfer test Ether to your wallet

To process transactions on the network, you will also need coins to pay the transaction fees (gas). Use one of the following links to claim some coins depending on the network you are working on:

The smart contract

Link for the smart contract used for this project https://github.com/allanclempe/ether-wallet-contract

Buy me a coffee

If you enjoy my work, a small donation would be greatly appreciated.

BTC ETH
bc1qkvjec6dhr94jvlvqqjpuv7n3vz8j0h89nle6n3 0xE4B2ca20D15109b0a2Eef933678C496A1a798173

License

Copyright © 2019-present Allan Clempe. This source code is licensed under the MIT license found in the LICENSE.txt file.


dart wallet cryto flutter eth smart contracts - by Allan Clempe

ether-wallet-flutter's People

Contributors

allanclempe avatar ibrahimshehudev avatar oliveiraluizhg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ether-wallet-flutter's Issues

is it possible to create wallet avalanche avax test network ??

Hi, first of all I m really thankful that you shared this valuable work with us.
I m looking for some documents, works etc that I can create a wallet in avalanche test net, until now I could not find anything.
My purpose is make app single point of contact that users interact contracts without needing any other solutions.

if any Idea you can share, I will be so greatfull. Regards.

Invalid JSON RPC response

https://faucet.clempe.dev/ show below error when I want to transfer token

Invalid JSON RPC response: "<html>\r\n<head><title>504 Gateway Time-out</title></head>\r\n<body>\r\n<center><h1>504 
Gateway Time-out</h1></center>\r\n</body>\r\n</html>\r\n"

How can this problem be solved?

BIP39 gives different private key

Hello,

can you please explain below:

  1. I create a new 12-word phrase from the app
  2. I debug in order to get the private key
  3. I use the exact 12 words in https://iancoleman.io/bip39/
  4. I see that the entropy and BIP39 seed are exactly the same as the ones being created in the app
  5. BUT... the private key generated by the above website is not the same as the one generated in the app, hence leading to a different address!

Specifically

@override
  String getPrivateKey(String mnemonic) { <-- entropy is also OK!
    String seed = bip39.mnemonicToSeedHex(mnemonic); <--OK!
    KeyData master = ED25519_HD_KEY.getMasterKeyFromSeed(seed); <-- I don't know about this
    final privateKey = HEX.encode(master.key); <--WRONG!
    print("private: $privateKey");
    return privateKey;
  }

So, why do we have this difference?
Is the address that is generated through the app the 1st address available (path m/44'/0'/0'/0/0) or is it sth else?

Thanks,
Zois

listenTransfer is not working

Initially many many congrats on your work!
My issue is that in listenTransfer the events StreamSubscription gets bad, because of
Unhandled exception: bad state: stream has already been listened to
So although the transaction is completed ok, because I check it on etherscan, the app gets stuck in the processing loading indicator.
Any ideas?

Thanks!

It works well

Hi,
Just want to thank you for your work. The framework you created is awesome to work on. The code works well and I am integrating it into my app as a way to pay tokens(ERC20) over ethereum blockchain, of course with some tweaks.

How to configure Firebase

Got this:

6.13.0 - [Firebase/Core][I-COR000004] App with name __FIRAPP_DEFAULT does not exist.
6.13.0 - [Firebase/Core][I-COR000012] Could not locate configuration file: 'GoogleService-Info.plist'.

No License Specified

Great codebase, but with No License specified, it won't be possible to use or contribute to the project.

Adding a simple ETH transaction

I am playing around with the web3dart lib, and what I 'd like to do is add a simple ETH transfer, without contract. I saw the way to do it here
https://github.com/simolus3/web3dart/blob/master/example/simple_transaction.dart
but I was wondering how we can actually use the way you are using in the contract related one, so as to have a loading page and listen to the transaction.
Can we actually do that? Because for the contract one, we emit an event Transfer so we listen to that. Do you know if Ethereum itself has a similar event so we can listen to and update the UI accordingly?
Any ideas?

Thanks again!

Realtime balance update

Hi,
Good job and amazing work with the project.

I want to know is there a way we can update the wallet balance without refreshing the page in realtime?

Websocket Error

Hey! Awesome app! I am however getting an error which says Unhandled Exception: WebSocketChannelException: WebSocketChannelException: WebSocketException: Connection to 'https://ropsten.infura.io:0/ws#' was not upgraded to websocket. Is there a quick fix for this? Also where do I get the ERC20 token which this app supports?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.