Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Awesome-list integration #24

Closed
wants to merge 7 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: CI
on:
pull_request:
branches: [main]
jobs:
Awesome_Lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- run: npx awesome-lint
10 changes: 0 additions & 10 deletions .prettierrc.json

This file was deleted.

1 change: 1 addition & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Please ensure your pull request adheres to the following guidelines:
- Make sure your text editor is set to remove trailing whitespace.
- The pull request and commit should have a useful title.
- The body of your commit message should contain a link to the repository.
- Run awesome-lint and fix any errors.

Thank you for your suggestions!

Expand Down
155 changes: 35 additions & 120 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,47 +20,22 @@ contribute.

## General Resources

- [The CosmWasm book](https://book.cosmwasm.com/) - a step-by-step guide to
writing CosmWasm smart contracts.
- [CosmWasm framework](https://github.com/CosmWasm/cosmwasm) - a "core" CosmWasm
repo. This includes the core Rust framework for writing a smart contract, a
virtual machine that runs smart contracts and is embedded in any chain running
them, the IDL format for describing the interface of a smart contract, and
more! A few of these are commonly dependencies of smart contracts.
- [CosmWasm template](https://github.com/CosmWasm/cw-template) - a template for
getting an empty smart contract up and running quickly. Instructions included!
- [The CosmWasm book](https://book.cosmwasm.com/) - A step-by-step guide to writing CosmWasm smart contracts.
- [CosmWasm framework](https://github.com/CosmWasm/cosmwasm) - The main CosmWasm repo, includes the core Rust framework for writing a smart contract and a virtual machine that runs smart contracts.
- [CosmWasm template](https://github.com/CosmWasm/cw-template) - A template for getting an empty smart contract up and running quickly with instructions.

## CosmWasm Framework

- [cosmwasm-std](https://crates.io/crates/cosmwasm-std)
([repo](https://github.com/CosmWasm/cosmwasm/tree/master/packages/std)): The
standard library for building CosmWasm smart contracts. Code in this package
is compiled into the smart contract.
- [cw-storage-plus](https://crates.io/crates/cw-storage-plus)
([repo](https://github.com/CosmWasm/cw-storage-plus)): Helper methods to
reduce boilerplate for storing data types. Easier and more secure persistence
layer.
- [cosmwasm-schema](https://crates.io/crates/cosmwasm-schema)
([repo](https://github.com/CosmWasm/cosmwasm/tree/master/packages/schema)): A
dependency for CosmWasm contracts to generate the IDL (interface description)
files. These are consumed e.g. by
[`ts-codegen`](https://github.com/CosmWasm/ts-codegen) to automagically get a
_TypeScript_ client for your contract.
- [cw-multi-test](https://crates.io/crates/cw-multi-test)
([repo](https://github.com/CosmWasm/cw-multi-test)):
- [cosmwasm-std](https://github.com/CosmWasm/cosmwasm/tree/master/packages/std) - The standard library for writing and building CosmWasm smart contracts. [![cosmwasm-std on crates.io](https://img.shields.io/crates/v/cosmwasm-std.svg)](https://crates.io/crates/cosmwasm-std)
- [cw-storage-plus](https://github.com/CosmWasm/cw-storage-plus) - Helper methods to reduce boilerplate for storing data types for an easier and more secure persistence layer. [![cw-storage-plus on crates.io](https://img.shields.io/crates/v/cw-storage-plus.svg)](https://crates.io/crates/cw-storage-plus)
- [cosmwasm-schema](https://github.com/CosmWasm/cosmwasm/tree/master/packages/schema) - A dependency for CosmWasm contracts to generate the IDL (interface description) files. These are consumed e.g. by `ts-codegen` to automagically get a _TypeScript_ client for your contract. [![cosmwasm-schema on crates.io](https://img.shields.io/crates/v/cosmwasm-schema.svg)](https://crates.io/crates/cosmwasm-schema)
- [cw-multi-test](https://github.com/CosmWasm/cw-multi-test) - Test helpers for multi-contract interactions. [![cw-multi-test on crates.io](https://img.shields.io/crates/v/cw-multi-test.svg)](https://crates.io/crates/cw-multi-test)

## Smart Contract Libraries

- [cw-utils](https://crates.io/crates/cw-utils)
([repo](https://github.com/CosmWasm/cw-utils)): A collection of (somewhat
random) helpers we found useful when developing `cw-plus` contracts and specs.
Available as a library at crates.io!
- [cw-coins](https://crates.io/crates/cw-coins)
([repo](https://github.com/steak-enjoyers/cw-plus-plus)): A helper for
managing multiple coins in a smart contract.
- [cw-item-set](https://crates.io/crates/cw-item-set)
([repo](https://github.com/steak-enjoyers/cw-plus-plus)): A `HashSet`
equivalent (set of unique items) that can be stored in smart contract storage.
- [cw-utils](https://github.com/CosmWasm/cw-utils) - A collection of helpers we found useful when developing `cw-plus` contracts and specs. [![cw-utils on crates.io](https://img.shields.io/crates/v/cw-utils.svg)](https://crates.io/crates/cw-utils)
- [cw-coins](https://github.com/steak-enjoyers/cw-plus-plus/tree/main/packages/coins) - A helper for managing multiple coins in a smart contract. [![cw-coins on crates.io](https://img.shields.io/crates/v/cw-coins.svg)](https://crates.io/crates/cw-coins)
- [cw-item-set](https://github.com/steak-enjoyers/cw-plus-plus/tree/main/packages/item-set) - A `HashSet` equivalent (set of unique items) that can be stored in smart contract storage. [![cw-item-set on crates.io](https://img.shields.io/crates/v/cw-item-set.svg)](https://crates.io/crates/cw-item-set)

## Smart Contracts

Expand All @@ -86,64 +61,24 @@ pieces you might like to use in your project as they are.

#### Specifications

- [cw1](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw1) -
proxy contracts that are meant to forward a message (probably after checking
the sender against some form of access control), this time with the contract
as the sender.
- [cw2](https://github.com/CosmWasm/cw-plus/tree/main/packages/cw2) - contract
metadata (name and version) that can be inspected directly, without querying
the contract.
- [cw3](https://github.com/CosmWasm/cosmwasm-plus/blob/master/packages/cw4/README.md) -
multisig and voting.
- [cw4](https://github.com/CosmWasm/cosmwasm-plus/blob/master/packages/cw4/README.md) -
group membership management with weights.
- [cw20](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw20) -
fungible token.
- [cw1](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw1) - Proxy contracts that are meant to forward a message, with the contract as the sender by default.
- [cw2](https://github.com/CosmWasm/cw-plus/tree/main/packages/cw2) - Specification for migrating or inspecting smart contract metadata such as the name and the version without querying the contract.
- [cw3](https://github.com/CosmWasm/cosmwasm-plus/blob/master/packages/cw3/README.md) - Voting and multisig contract.
- [cw4](https://github.com/CosmWasm/cosmwasm-plus/blob/master/packages/cw4/README.md) - Group membership management contract with weights.
- [cw20](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw20) - Fungible token loosely based on Ethereum's ERC20 standard with additional changes.

#### Reference implementations

- [cw1-whitelist](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw1-whitelist)
by [ethanfrey](https://github.com/ethanfrey): This may be the simplest
implementation of
[cw1](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw1), a
whitelist of addresses. It contains a set of admins that are defined upon
creation. Any of those admins may Execute any message via the contract, per
the [CW1](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw1)
spec.
- [cw1-subkeys](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw1-subkeys)
by [ethanfrey](https://github.com/ethanfrey): This builds on cw1-whitelist to
provide the first non-trivial solution. It still works like cw1-whitelist with
a set of admins (typically 1) which have full control of the account. However,
you can then grant a number of accounts allowances to send native tokens from
this account.
- [cw3-fixed-multisig](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw3-fixed-multisig):
This is a simple implementation of the
[cw3 spec](https://github.com/CosmWasm/cosmwasm-plus/blob/master/packages/cw4/README.md).
It is a multisig with a fixed set of addresses created upon initialization.
Each address may have the same weight (K of N) or some may have extra voting
power.
- [cw3-flex-multisig](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw3-flex-multisig):
This builds on cw3-fixed-multisig with a more powerful implementation of the
cw3 spec. It is a multisig contract that is backed by a
[cw4](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw4)
(group) contract, which independently maintains the voter set.
- [cw4-group](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw4-group):
This is a basic implementation of the
[cw4 spec](https://github.com/CosmWasm/cosmwasm-plus/blob/master/packages/cw4/README.md).
It fulfills all elements of the spec, including the raw query lookups, and it
designed to be used as a backing storage for cw3 compliant contracts.
- [cw4-stake](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw4-stake):
This is a second implementation of the
[cw4 spec](https://github.com/CosmWasm/cosmwasm-plus/blob/master/packages/cw4/README.md).
It fufills all elements of the spec, including the raw query lookups, and it
is designed to be used as a backing storage for cw3 compliant contracts.
- [cw20-base](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw20-base)
by [ethanfrey](https://github.com/ethanfrey): Basic implementation of a
[cw20](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw20)
contract. It implements the
[cw20](https://github.com/CosmWasm/cosmwasm-plus/blob/master/packages/cw20/README.md)
spec and is designed to be deloyed as is, or imported into other contracts to
easily build cw20-compatible tokens with custom logic.

- [cw1-whitelist](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw1-whitelist) - A simple implementation of cw1 specification using a whitelist of addresses for admins that are defined upon creation. It contains a set of admins that are defined upon creation.
- [cw1-subkeys](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw1-subkeys) - A similar implementation of cw-1 whitelist. However, subkeys allow admins to grant a number of accounts allowances for them to transfer native tokens.
- [cw3-fixed-multisig](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw3-fixed-multisig) - A simple implementation of the cw3 specification using multisig with a fixed set of addresses created upon initialization. Each address may have the same weight (K of N) or some may have extra voting power.
- [cw3-flex-multisig](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw3-flex-multisig) - A more advanced implementation of the cw-fixed-mulsitig backed by [cw4](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw4), which independently maintains the voter set.
- [cw4-group](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw4-group) - A simple implementation of the cw4 spec fulfilling all elements of the spec, including raw query lookups, and it is designed to be used as backing storage for cw3 compliant contracts.
- [cw4-stake](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw4-stake) - An alternative cw4-group implementation that membership and weight are based on the staked token amount.
- [cw20-base](https://github.com/CosmWasm/cosmwasm-plus/tree/master/contracts/cw20-base) - A simple implementation of a cw20 contract. Can be deployed as is, or imported into other contracts to easily build cw20-compatible tokens with custom logic.

cw-1 whitelist, cw-1 subkeys, and cw-20 base are implemented by [ethanfrey](https://github.com/ethanfrey)

### Other Contracts

Expand All @@ -152,43 +87,23 @@ not use them in production as is. You are welcome to fork them, and
independently review, refine and audit them, using them as a basis for your
protocol. Or just as inspiration

- [cw-tokens](https://github.com/CosmWasm/cw-tokens) - a few other
[cw20](https://github.com/CosmWasm/cosmwasm-plus/tree/master/packages/cw20)
(fungible token) contracts.
- [cw-nfts](https://github.com/CosmWasm/cw-nfts) - non-fungible tokens. Official
repository for all work on NFT standards and reference contracts. This is
where the
[`cw721 spec`](https://github.com/CosmWasm/cw-nfts/tree/main/packages/cw721)
lives.
- [cw-tokens](https://github.com/CosmWasm/cw-tokens) - A collection with different variations of cw20 contracts.
- [cw-nfts](https://github.com/CosmWasm/cw-nfts) - The official repository for all work on NFT standards and reference contracts. This is where the [`cw721 spec`](https://github.com/CosmWasm/cw-nfts/tree/main/packages/cw721) lives.

## External Projects

These projects/contracts are developed and maintained by CosmWasm community.
These projects/contracts are developed and maintained by the CosmWasm community.

- [DA0-DA0/dao-contracts](https://github.com/DA0-DA0/dao-contracts) - DAO DAO is
the leading software to build your own DAO on CosmWasm chains, quickly
surpassing Aragon in functionality
- [mars-protocol/v1-core](https://github.com/mars-protocol/v1-core) - Delphi's
"Mars Protocol" is the leading lending protocol on Terra and soon launching on
Osmosis
- [public-awesome/launchpad](https://github.com/public-awesome/launchpad) -
Stargaze provides contracts to easily create and manage new NFT collections.
- [DA0-DA0/dao-contracts](https://github.com/DA0-DA0/dao-contracts) - DAO DAO is the leading software to build your own DAO on CosmWasm chains, quickly surpassing Aragon in functionality.
- [mars-protocol/v1-core](https://github.com/mars-protocol/v1-core) - Delphi's "Mars Protocol" is the leading lending protocol on Terra and soon launching on Osmosis.
- [public-awesome/launchpad](https://github.com/public-awesome/launchpad) - Stargaze provides contracts to easily create and manage new NFT collections.

## Tooling

- [cosmwasm/rust-optimizer](https://github.com/CosmWasm/rust-optimizer) - This is
a Docker build with a locked set of dependencies to produce reproducible
builds of cosmwasm smart contracts. It also does heavy optimization on the
build size, using binary stripping and `wasm-opt`.
- [cosmology-tech/create-cosmos-app](https://github.com/cosmology-tech/create-cosmos-app) -
set up a modern Cosmos app with one command, ready to be iterated on.
- [mandrean/cw-optimizoor](https://github.com/mandrean/cw-optimizoor) - A very
fast alternative to `rust-optimizer` for local development and testing.
Written in Rust, no dependency on Docker.
- [cosmwasm devtools](https://cosmwasm.tools/)
([repo](https://github.com/aswever/cosmwasm-devtools)) - A web-based console
for interacting with CosmWasm smart contracts deployed locally or remotely.
Can use Keplr account or generate new addresses as needed.
- [cosmwasm/rust-optimizer](https://github.com/CosmWasm/rust-optimizer) - This is a Docker build with a locked set of dependencies to produce reproducible builds of cosmwasm smart contracts. It also does heavy optimization on the build size, using binary stripping and `wasm-opt`.
- [cosmology-tech/create-cosmos-app](https://github.com/cosmology-tech/create-cosmos-app) - Set up a modern Cosmos app with one command, ready to be iterated on.
- [mandrean/cw-optimizoor](https://github.com/mandrean/cw-optimizoor) - A very fast alternative to `rust-optimizer` for local development and testing. Written in Rust, with no dependency on Docker.
- [cosmwasm devtools](https://github.com/aswever/cosmwasm-devtools) - A web-based console for interacting with CosmWasm smart contracts deployed locally or remotely. Can use Keplr account or generate new addresses as needed. Visit the tool [here](https://cosmwasm.tools/).
- [cosmwasm/ts-codegen](https://github.com/CosmWasm/ts-codegen) - Convert your CosmWasm smart contracts into dev-friendly TypeScript classes so you can focus on shipping code.

## dApps
Expand Down