Code Monkey home page Code Monkey logo

fcl-dev-wallet's Introduction


Logo

A Flow wallet for effortless development, to be used with the Flow Emulator and FCL.
FCL docs»

Report Bug · Getting Started



Introduction

The FCL dev wallet is a mock Flow wallet that simulates the protocols used by FCL to interact with the Flow blockchain on behalf of simulated user accounts.

IMPORTANT

This project implements an FCL compatible
interface, but should **not** be used as a reference for
building a production grade wallet.

This project should only be used in aid of local
development against a locally run instance of the Flow
blockchain like the Flow emulator, and should never be used in
conjunction with Flow Mainnet, Testnet, Canarynet or any
other instances of Flow.

Getting Started

Before using the dev wallet, you'll need to start the Flow emulator.

Install the flow-cli

The Flow emulator is bundles with the Flow CLI. Instructions for installing the CLI can be found here: https://docs.onflow.org/flow-cli/install/

Create a flow.json File

Run this command to create flow.json file (typically in your project's root directory):

flow init

Start the Emulator

Start the emulator by running the following command from the directory containing flow.json in your project:

flow emulator start

Start the Dev Wallet

You can run the dev wallet using its Docker image:

docker run ghcr.io/onflow/fcl-dev-wallet:latest

All-In-One

You can run the dev-wallet + Flow emulator together using docker-compose:

docker-compose up -d

Startup Options

The following startup options can be configured (defaults shown). If you're using Docker Compose, these configuration values are defined in docker-compose.yml.

docker run -it \
    -e PORT=8701 \
    -e FLOW_ACCESS_NODE=http://emulator:8080 \
    -e FLOW_ACCOUNT_KEY_ID=0 \
    -e FLOW_ACCOUNT_PRIVATE_KEY=4f82df6790f07b281adb5bbc848bd6298a2de67f94bdfac7a400d5a1b893de5 \
    -e FLOW_ACCOUNT_PUBLIC_KEY=519e9fbf966c6589fafe60903c0da5f55c5cb50aee5d870f097b35dfb6de13c170718cd92f50811cdd9290e51c2766440b696e0423a5031ae482cca79e3c479 \       -e FLOW_INIT_ACCOUNTS=0 \
    -e FLOW_ACCOUNT_ADDRESS=0xf8d6e0586b0a20c7 \
    -e FLOW_AVATAR_URL=https://avatars.onflow.org/avatar/ \
    ghcr.io/onflow/fcl-dev-wallet:latest 

Note: The following variables should match the emulator-account defined in your project's flow.json file. For details about flow.json visit the flow-cli configuration reference.

FLOW_ACCOUNT_PRIVATE_KEY
FLOW_ACCOUNT_PUBLIC_KEY
FLOW_ACCOUNT_ADDRESS

Configuring Your JavaScript Application

The FCL dev wallet is designed to be used with @onflow/fcl version 0.0.68 or higher. The FCL package can be installed with: npm install @onflow/fcl or yarn add @onflow/fcl.

To use the dev wallet, configure FCL to point to the address of a locally running Flow emulator and the dev wallet endpoint.

import * as fcl from "@onflow/fcl"

fcl.config()
  // Point App at Emulator
  .put("accessNode.api", "http://localhost:8080") 
  // Point FCL at dev-wallet (default port)
  .put("discovery.wallet", "http://localhost:8701/fcl/authn") 

Test Harness

It's easy to use this FCL harness app as a barebones app to interact with the dev-wallet during development:

Navigate to http://localhost:8701/harness

🚀

fcl-dev-wallet's People

Contributors

10thfloor avatar psiemens avatar orodio avatar alse avatar gregsantos avatar bluesign avatar sideninja avatar srinjoyc avatar

Watchers

James Cloos avatar

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.