• This repository has been archived on 12/Mar/2024
  • Stars
    star
    906
  • Rank 50,411 (Top 1.0 %)
  • Language
    JavaScript
  • Created over 5 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Reactive Ethereum dapp UI suite


Note: This monorepo is aligned with our @drizzle scoped package release of 1.5.0. If you are looking for our old drizzle repo, it has been moved here.

Overview

Drizzle is a collection of libraries to simplify development of your dapps in Plain JavaScript, React and Vue.

  • @drizzle/store:- is the state manager of Drizzle. It handles the boilerplate for web3 connection as synchronizing Smart Contract state and events.

  • @drizzle/react-plugin:- defines the Drizzle Provider for a React project.

  • @drizzle/react-components:- is a collection of primitive web controls that transforms Smart Contract data types to their appropriate html controls. It's the fastest way to visualize Contract data on a browser with React!

  • @drizzle/vue-plugin:- a Vue adaptor and collection of html controls that will get your Vue dapp up and running quickly!

Contributing to drizzle

Thanks for taking the time to help out and improve drizzle! 🎉

The following is a set of guidelines for drizzle contributions and may change over time. Feel free to suggest improvements to this document in a pull request!

How Can I Contribute?

All contributions are welcome!

If you run into an issue, the first step is to reach out in our community Gitter channel, in case others have run into the problem or know how to help.

To report a problem or to suggest a new feature, open a GitHub Issue. This will alert us of the problem so we can prioritize a fix.

For code contributions, for either new features or bug fixes, see Development.

If you're looking to make a substantial change, you may want to reach out first to give us a heads up.

Development Requirements

In order to develop drizzle, you'll need:

Getting Started

First clone this repository and install NPM dependencies:

$ git clone [email protected]:trufflesuite/drizzle.git
$ cd drizzle
$ yarn

If all is good, navigate (cd) to the package of interest and follow the README document there.

Forks, Branches, and Pull Requests

Community contributions to drizzle require that you first fork the repository. After your modifications, push changes to your fork(s) and submit a pull request upstream to trufflesuite.

See GitHub documentation about Collaborating with issues and pull requests for more information.

Note: drizzle development uses a long-lived develop branch for new (non-hotfix) development. Pull Requests should be opened against develop in all repositories.

Branching Model

drizzle projects adhere to Gitflow, a Git workflow designed around a strict branching model to more easily track feature development vs. releases. For more information on Gitflow, check out Atlassian's helpful guide.

We can separate our branches into long-lived and purposeful branches. We have two long-lived branches:

  • master, checkout for hotfix development; in sync with the latest release (synced after the release has gone out publicly).
  • develop, checkout for feature development; latest unstable releases and work targeting the next major or minor release.

All development is done on branches with a prefix/title style naming convention. These are later merged into develop and finally a release branch before final release. These are the two prefixes we use:

  • feature/, for new feature development; later merged with develop and release.
  • fix/, for hotfix development; later merged with master and develop.

For example, a fix for a contract fetching error might look like: fix/contract-fetching.

Working on a Branch

Use a branch for your modifications, tracking it on your fork:

$ git checkout -b feature/sweet-feature // or "fix/" prefix if a hotfix
$ git push -u ChocolateLover feature/sweet-feature

Then, make changes and commit as usual.

Testing and debugging with Ganache

Start and wait for Ganache to initialize.

$ yarn ganache

You'll know when the console shows the following:

test-truffle-contracts: Listening on 127.0.0.1:9545

Open up another terminal and deploy the contracts to Ganache:

$ yarn ganache:deploy

Deployment is done when the following is logged to the console:

test-truffle-contracts: Summary
test-truffle-contracts: =======
test-truffle-contracts: > Total deployments:   4
test-truffle-contracts: > Final cost:          ... ETH

Start the front end test apps:

yarn serve:ui

Now you'll have 3 apps to interact with.

Testing and debugging your code

Because these libraries are dependencies to your front end project, you'll want to be run your project against the local changes you're working on. Use yarn link

First navigate to the package you want to work on. For example, if you're working on the vue-plugin.

$ cd packages/vue-plugin
$ yarn link    # sym-link package to yarn's global scope
$ yarn prepare # build your changes

Now that the package has been linked, yarn will be able to resolve it when you specify it as a dependency.

Navigate to your front end project:

$ yarn link @drizzle/vue-plugin  # use your local vue-plugin

Important NPM Scripts for Development

Cleaning:

  • clean: Clean all non-root workspaces
  • clean:all: All workspaces including root and removes yarn.lock

Running the Test UIs:

  • ganache: Launch a Ganache instance
  • ganache:deploy: Deploy some test contracts to an existing Ganache instance
  • serve:ui: Launch the test UIs that work with the two Ganache commands above

Webpack bundle size report:

  • webpack-reports: Creates a report of the bundle size

Tests:

  • test: Run all tests
  • test:store: Run only tests for @drizzle/store
  • test:store:verbose: Run only tests for @drizzle/store passing verbose flag
  • test:vue: Run only tests for @drizzle/vue-plugin

Additional Notes

Join the chat in our community Spectrum channel. If anything about this process is unclear, or for helpful feedback of any kind, we'd love to hear from you!

Thanks again for all your support, encouragement, and effort! drizzle would not be possible without contributors like you. 🙇

More Repositories

1

truffle

⚠️ The Truffle Suite is being sunset. For information on ongoing support, migration options and FAQs, visit the Consensys blog. Thank you for all the support over the years.
TypeScript
14,021
star
2

ganache-ui

Personal blockchain for Ethereum development
JavaScript
4,647
star
3

ganache-cli-archive

Fast Ethereum RPC client for testing and development. See https://github.com/trufflesuite/ganache for current development.
JavaScript
3,360
star
4

ganache

⚠️ The Truffle Suite is being sunset. For information on ongoing support, migration options and FAQs, visit the Consensys blog. Thank you for all the support over the years.
TypeScript
2,618
star
5

drizzle-legacy

Reactive Ethereum datastore for dapp UIs.
JavaScript
503
star
6

truffle-hdwallet-provider

HD Wallet-enabled Web3 provider
JavaScript
401
star
7

truffle-artifactor

A contract packager for Ethereum and Javascript (formerly ether-pudding)
JavaScript
254
star
8

trufflesuite.com

Trufflesuite website source ✨
HTML
182
star
9

drizzle-react-legacy

JavaScript
176
star
10

drizzle-react-components-legacy

A set of useful components for common dapp UI elements.
JavaScript
96
star
11

truffle-core

Core code for Truffle command line tool
JavaScript
93
star
12

truffle-debugger

Core functionality for debugging Solidity files built with Truffle
JavaScript
67
star
13

drizzle-utils

A library for interacting with Ethereum smart contracts based on RxJS streams.
JavaScript
43
star
14

vscode-ext

Truffle for VSCode simplifies how you create, build, debug and deploy smart contracts on Ethereum and EVM-compatible blockchains
TypeScript
38
star
15

trufflesuite.github.io

Staging Repo of Build Artifacts for Truffle Suite. Find the source at https://github.com/trufflesuite/trufflesuite.com
HTML
34
star
16

ethpm-js

Javascript library for publishing and consuming Ethereum packages.
JavaScript
34
star
17

truffle-plugin-debugger

Debug all the things!
TypeScript
30
star
18

truffle-logger-example

Console.log example for Solidity inside Truffle projects
JavaScript
29
star
19

truffle-contract-schema

JSON schema for contract artifacts
JavaScript
25
star
20

truffle-compile

Compiler helper and artifact manager
JavaScript
22
star
21

truffle-init-default

Default project for Truffle: example contracts, migrations and tests
JavaScript
21
star
22

drizzle-vue-plugin

Connect Vue to Drizzle
JavaScript
19
star
23

pet-shop-tutorial

Solution for the Pet Shop tutorial
JavaScript
18
star
24

truffle-default-builder

Default build process for truffle dapps
JavaScript
18
star
25

truffle-migrate

On-chain migrations management
JavaScript
17
star
26

swirl

Make curl easier with ethereum bash completions.
Shell
15
star
27

webinar-episode-01

Code to go along with our webinars
JavaScript
15
star
28

truffle-deployer

Light deployment module for deploying Ethereum contracts
JavaScript
14
star
29

truffle-teams

Continuous Integration for your Truffle Project
13
star
30

ts-lxd

A client for LXD, written in TypeScript
TypeScript
12
star
31

solidity-magic-square

Demo project for testing debugging features
Solidity
11
star
32

unleashed

JavaScript
10
star
33

unleashed_nft_rental_marketplace

JavaScript
10
star
34

truffle-solidity-utils

Utilities for solidity contracts
JavaScript
9
star
35

truffle-blockchain-utils

Utilities for identifying and managing blockchains
JavaScript
9
star
36

unleashed_royalty_standard

JavaScript
8
star
37

dotfiles

Shell
8
star
38

drizzle-event-demo

Using drizzle events
JavaScript
8
star
39

dashboard

JavaScript
8
star
40

artifact-updates

Working Repository for requirements / design of for general-purpose artifacts format
Shell
8
star
41

truffle-provider

Beefed up Provider utility for Truffle
JavaScript
7
star
42

truffle-box

Truffle project boilerplate management
JavaScript
7
star
43

ethpm-registry

Create a new epm-registry on-chain.
JavaScript
7
star
44

truffle-require

Executed a Javascript module within a Truffle context
JavaScript
7
star
45

devcon5-pentesting-ethereum-contracts-with-ganache

https://trfl.co/devcon5
JavaScript
7
star
46

webinar-truffle-badge

Truffle-themed ERC721 (using OpenZeppelin) for exploring the development lifecycle
JavaScript
6
star
47

ci

Truffle Suite continuous integration config
Shell
6
star
48

reselect-tree

Abstraction around reactjs's `reselect`to define trees of selectors
JavaScript
5
star
49

truffle-config

Utility for interacting with truffle.js files
JavaScript
5
star
50

unleashed_rentable_nft

ERC-4907 implementation for Web3 Unleashed Episode 2
JavaScript
5
star
51

solidity-rock-paper-scissors

JavaScript
5
star
52

txlog-to-plantuml

JavaScript
5
star
53

react-eth-tx-params

A component for displaying ethereum tx params
JavaScript
5
star
54

gas-exactimation-tutorial

Solution for the Gas Exactimation tutorial
JavaScript
4
star
55

truffle-checkout

Used to checkout specific versions of Truffle and associated modules for the purposes of development
JavaScript
4
star
56

ganache-filecoin-alpha-cli

Alpha CLI for Ganache's Filecoin integration. Will be replaced by ganache-cli once integration is stable.
JavaScript
4
star
57

trufflecon-block-contender

Demo app for TruffleCon 2019 Gas Estimation and Optimization Workshop
JavaScript
4
star
58

trufflevsix

Visual Studio Extension for Truffle
C#
4
star
59

truffle-init

Initializer for example Truffle projects
JavaScript
3
star
60

wild-truffle

Truffle cores running on large public Truffle projects.
Shell
3
star
61

truffle-contract-sources

Utility for finding all contracts within a directory
JavaScript
3
star
62

truffle-init-bare

Barebones Truffle project
JavaScript
3
star
63

truffle-code-utils

Utilities for parsing EVM bytecode
JavaScript
3
star
64

unleashed_upgrade_contract

JavaScript
3
star
65

vscode-ext-scaffold

JavaScript
3
star
66

the-bet

Truffle project to look to an external service to determine who wins a contract. Used with an upcoming Truffle video.
JavaScript
3
star
67

truffle-resolver

Resolve contract dependencies given multiple configurable dependency sources
JavaScript
3
star
68

useful-internal-notes

Useful notes on Ethereum, Solidity, Vyper, etc
Solidity
2
star
69

solidity-test-cases

Various helpful solidity test cases
Solidity
2
star
70

truffle-provisioner

Provision contract objects for use from multiple sources
JavaScript
2
star
71

vscode-truffle-debugger

TypeScript
2
star
72

SmartPyBasic-Docker

Dockerized command-line version of SmartPy, a Python library for Tezos smart contract development.
Dockerfile
2
star
73

fetch-and-compile-server

TypeScript
2
star
74

declarative-deployments

Collaborative space to work on getting declarative deployments working!
TypeScript
2
star
75

metacoin-playground

A metacoin repo used internally by Truffle Suite
JavaScript
2
star
76

truffle-expect

Simple module for ensuring expected parameters exist
JavaScript
2
star
77

teams-stress

Stress out the Truffle Teams debugger
Solidity
2
star
78

truffle-workflow-compile

Core workflow logic for the `truffle compile` command behavior
JavaScript
2
star
79

ttt-contracts

Smart contracts for the Unity + Consensys Web3 Tic Tac Toe game.
JavaScript
1
star
80

truffle-error

Simple module that allows native Error objects to be extended
JavaScript
1
star
81

ganache-flavors

1
star
82

truffle-debug-utils

Code for integration between Truffle and Truffle Debugger
JavaScript
1
star
83

quorum-tutorial

Solution for the Quorum tutorial
JavaScript
1
star
84

unleashed_optimism_bridge

The tutorial for this repo lives [here](www.trufflesuite.com/guides/optimism-bridge-widget)
JavaScript
1
star
85

txlog-seedlings

Truffle contracts suitable for planting
JavaScript
1
star
86

CaptureTheFlag

JavaScript
1
star
87

unity-plugin

C#
1
star
88

jstezos

1
star
89

preserves

Truffle preserve framework monorepo
TypeScript
1
star
90

clairvoyance

HTML
1
star