GithubHelp home page GithubHelp logo

zilliqa / dev-wallet Goto Github PK

View Code? Open in Web Editor NEW
13.0 13.0 13.0 2.15 MB

Nucleus Wallet is a free, open-source, Zilliqa Testnet Wallet.

Home Page: https://dev-wallet.zilliqa.com

License: GNU General Public License v3.0

HTML 1.52% CSS 9.49% TypeScript 87.78% JavaScript 0.12% Dockerfile 0.18% Shell 0.90%

dev-wallet's Introduction

Zilliqa

Overview

Zilliqa is a scalable smart contract platform that aims to tackle the congestion issue plaguing the blockchain industry. Zilliqa utilises a unique sharded architecture to achieve parallel processing of transactions while maintaining a large number of public nodes. Hence, Zilliqa is a blockchain capable of reaching high throughput and processing more complex computations while remaining decentralised and secure.

NOTE: The master branch is not for production as development is currently being worked constantly, please use the tag releases if you wish to work on the version of Zilliqa client that is running live on the Zilliqa blockchain.

Zilliqa Mainnet

The current live version on the Zilliqa Mainnet is Zilliqa v9.2.3 and Scilla v0.13.3.

URL(s)
API URL https://api.zilliqa.com/
Block Explorer Viewblock
DEVEX

Developer Testnet

The current live version on the Developer Testnet is Zilliqa v9.2.5 and Scilla v0.13.3.

URL(s)
API URL https://dev-api.zilliqa.com/
Block Explorer Viewblock
DEVEX
Faucet Link

Zilliqa Improvement Proposal (ZIP)

The Zilliqa Improvement Proposals (ZIPs) are the core protocol standards for the Zilliqa platform.To view or contribute to ZIP, please visit https://github.com/Zilliqa/zip

Available Features

The current release has the following features implemented:

In the coming months, we plan to have the following features:

  • Further unit and integration tests
  • Enhancement of existing features
  • More operating system support
  • And much more...

Minimum System Requirements

To run Zilliqa, we recommend the minimum system requirements specified in our Mining page.

Build from Source Code

Starting with Zilliqa v8.6.0, the officially supported operating system is Ubuntu 22.04.

If you'd like to experiment with a different distro (including the previously supported Ubuntu 18.04), please make sure to install gcc >= 11.

Run the following to install the build dependencies:

sudo apt-get update
sudo apt-get install autoconf \
    build-essential \
    ccache \
    clang-format \
    clang-tidy \
    git \
    lcov \
    libcurl4-openssl-dev \
    libssl-dev \
    libtool \
    libxml2-utils \
    ninja-build \
    ocl-icd-opencl-dev \
    pkg-config \
    python3-dev \
    python3-pip \
    libgmp-dev \
    bison \
    gawk
git submodule update --init --recursive

Run the following to install latest version of cmake. CMake version >= 3.19 must be used:

wget https://github.com/Kitware/CMake/releases/download/v3.19.3/cmake-3.19.3-Linux-x86_64.sh
mkdir -p "${HOME}"/.local
bash ./cmake-3.19.3-Linux-x86_64.sh --skip-license --prefix="${HOME}"/.local/
export PATH=$HOME/.local/bin:$PATH
cmake --version
rm cmake-3.19.3-Linux-x86_64.sh

To install, clone vcpkg to a separate location (do not use brew on macos):

$ git clone https://github.com/Microsoft/vcpkg.git /path/to/vcpkg
$ cd /path/to/vcpkg && git checkout 2022.09.27 && ./bootstrap-vcpkg.sh
$ cd /path/to/zilliqa
$ export VCPKG_ROOT=/path/to/vcpkg

As part of building our source code, we patch websocketpp 0.8.2 to compile on C++20; please see the license: https://github.com/zaphoyd/websocketpp/blob/master/COPYING.

Build Zilliqa from the source:

# build Zilliqa binary
$ ./build.sh

If you want to contribute by submitting code changes in a pull request perform the build with clang-format and clang-tidy enabled by doing:

$ ./build.sh style

Build Scilla for Smart Contract Execution

The Zilliqa client works together with Scilla for executing smart contracts. Please refer to the Scilla repository for build and installation instructions.

Boot Up a Local Testnet for Development

  1. Run the local testnet script in build directory:

    $ cd build && ./tests/Node/pre_run.sh && ./tests/Node/test_node_lookup.sh && ./tests/Node/test_node_simple.sh
  2. Logs of each node can be found at ./local_run

  3. To terminate Zilliqa:

    $ pkill zilliqa

Start a local network development environment

This is similar to the above, but deploys a local testnet to a local minikube cluster.

You can find documentation on how to do this on your local machine in docs/localdev.md.

You can find scripts which will set up an Ubuntu 22.04 machine in the cloud (or install necessary dependencies on your machine) in docs/setup/README.md.

Further Enquiries

Link(s)
Development discussion (discord)
Bug report
Security contact security 🌐 zilliqa.com
Security bug bounty HackerOne bug bounty

dev-wallet's People

Contributors

bb111189 avatar charliecys avatar dependabot[bot] avatar frankmeds avatar pavlops avatar

Stargazers

 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  avatar  avatar  avatar  avatar  avatar  avatar

dev-wallet's Issues

Handle faucet amount dynamically

Description

Enhance faucet feature as the following:

  • if a user claims faucet, the faucet amount should be 100 ZIL.
  • if a user claims faucet again and the latest claimed faucet happened in an hour, the faucet amount should be 10 ZIL.

Make account info component

Currently, there is redundancy with account info UI in /faucet and /send page both.
Remove that redundancy by making account info component.

Add Transaction Fee Calculator

Transaction Calculator can be good for people to know how much ZIL a contract deploy / transition consumes.

Currently, the formula to calculate how much a transaction costs is as follows:

(Pseudo Code)
const gasConsumed = 1000; // figure reported by Scilla Interpreter
const gasPrice = units.toQa('1000', units.Units.Li); 
const transactionPriceInZil = units.toZil(gasConsumed * gasPrice, units.Units.Qa);

Will be helpful to have a form where a user has to enter a few things

  1. Gas Consumed
  2. Select from two options: (a) use current blockchain gas price (b) Enter custom gas price in Li
  3. Output the amount of Zil the transaction costs
  4. Output the transaction cost in USD that the transaction costs by converting Zil to USD (Optional)

Add disclaimer

Description
Display the following disclaimer:

The Zilliqa Wallet is free, open-source and runs entirely on your computer.

WARNING: This is a Zilliqa testnet. Please do not send any interim ERC-20 ZIL tokens to this wallet.

We do not store your private key on our servers or transmit it over the network at any time. Private key generation and keystore encryption/decryption is handled on your computer only.

We recommend downloading and securely storing a keystore json file containing your encrypted private key, which can only be decrypted with a password you choose.

You are solely responsible for your account funds. If you lose your private key or the password to your keystore json, it cannot be recovered by anyone.

Missing ZIL when repeatedly requesting for faucet ZILs

I faced this problem during a Ziliqa workshop on 13 Feb. I requested some ZILs from the faucet, however, prior to the transaction being published I had requested another set of ZILs from the faucet. This results in the penalty amount of 10 ZILs being sent instead of the full 300 ZILs. It could be the case that the original transaction wasn't successfully published but the record had already been appended to firestore.

Is it possible to add a state parameter to the firestore to indicate the transaction state? So if a user with a particular ZIL address requests from the faucet, and if the old transaction isn't mined yet, the new transaction should not be published to the testnet chain.

Make app UI responsive

Description
Currently, the followings components are not responsive:

  • sidebar
  • navbar

Make the UI responsive.

Configure faucet amount and penalty time and amount

Description
Improve the rules as the followings:

  • if a user claims faucet, the faucet amount should be 300 ZILs.
  • if a user claims faucet again and the latest claimed faucet happened in 2 hours, then the faucet amount should be 10 ZILs which is the penalty amount.
const DEFAULT_TRANSFER_AMOUNT: number = 300;
const PENALTY_TRANSFER_AMOUNT: number = 10;
const PENALTY_TIME: number = 1000 * 60 * 60 * 2;

Background

The followings are the current faucet rules:

  • if a user claims faucet, the faucet amount should be 100 ZILs.
  • if a user claims faucet again and the latest claimed faucet happened in an hour, then the faucet amount should be 10 ZILs.

However, these rules need to be improved because 100 ZILs might be not enough if the contract is very long since the 2k line contract takes 80 ZILs to deploy.

problem with recaptcha

Failed to run faucet, you may have reached maximum request limit.
Google reCAPTCHA might not work for some country.

I don't understand what is the problem that the reCaptcha is presenting

updating of links and text messages

  • Changed Gitter link to discord dev instead
  • Add Telegram dev channel
  • Change Github link to this repo
  • Change Test Net to Testnet
  • Change Main Net to Mainnet`
    image

Faucet should as for address only

Currently, you are required to log in to your wallet via Keystore file or Private key import. This might it difficult for the requester if they are not using dev-wallet to generate their keys. (e.g. Moonlet/ZilPay users)

The workflow should be changed to this:

  • Enter zil1 address
  • Do ReCAPTCHA
  • Get funds

CI should fail if changelist is invalid

Description

Currently, CI for PRs passes for changelist which fails for testing or linting or formatting since #108.

e.g. #109

We can keep the review process much easier by noticing the PRs fail early when invalid.
Please put back the yarn ci in the CI for PRs as it validates the changelist.

Expected behavior

CI should fail for changelist that fails for testing or linting or formatting.

Presets for gas costs

The current gas presets are based on fungible-token and non-fungible token on our scilla repo. The presets are not dynamic.

Gas costs won't change unless there is a change in (1) scilla gas calculation implenented on the scilla-runner, (2) contract implementation.

On (1), as scilla is already a live product, the gas cost won't change (unless it's for a very good reason).

On (2), we are currently finalising the plan to roll out some Zilliqa Reference Contracts (ZRC), which will set the standards in smart contract development. Once that is done, the gas cost will then be tied to the contracts that are on the ZRC repo.

Once we have rolled out ZRC, we will update the gas cost according to the contracts on the reference contracts.

Dockerization and automatic image build

The dockerization of this app would help us to deploy this in the Kubernetes cluster and also makes it possible to let the community to try it out easily.

There might be a few things to note for dockerization

  1. To stay on the safe side, it's better to create a dedicated user in Dockerfile and use USER to switch from root to the non-root user.
  2. About the parameterzation of the API endpoint. We can choose to skip it during the build and pass it onlye when starting the application. Or there's an alternative if the static html can be generated with the API endpoint baked into it.
  3. We can choose where to build the image (Travis, Docker Hub automated build) and what is the eventual form of the image (an application image that is ready to run or a generator image that is used to generate the static html page like we did for Zilliqa-Wallet)

Ensure all text elements have sufficient color contrast

Description
Ensure all text elements have sufficient color contrast between the text in the foreground and background color behind it.

Success Criterion: Ensure color contrast of at least 4.5:1 for small text or 3:1 for large text, even if text is part of an image. Large text has been defined in the requirements as 18pt or 14pt bold. Note: Elements found to have a 1:1 ratio are considered 'incomplete' and require a manual review.

https://dequeuniversity.com/rules/axe/3.1/color-contrast?application=lighthouse

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.