Coder Social home page Coder Social logo

crescent-network / crescent Goto Github PK

View Code? Open in Web Editor NEW
86.0 5.0 54.0 21.38 MB

⛓️ Crescent Network, Expanding DeFi capabilities through InterBlockchain Technology πŸŒ™

License: Apache License 2.0

Makefile 0.39% Go 99.42% Dockerfile 0.03% Shell 0.16%
cosmos-sdk crescent defi tendermint blockchain

crescent's Introduction

Β 

Expanding DeFi capabilities through InterBlockchain Technology

What is Crescent Network?

Crescent Network is a DeFi Hub in Cosmos ecosystem with a goal of empowering users’ digital assets for maximizing their financial returns while managing associated risks in the most efficient way by providing innovative and sophisticated DeFi products. In the base layer, Crescent core has the following unique characteristics.

  • Hybrid DEX: a combination of Automated Market Maker (AMM) and Order Book models.
  • Ranged Pool: next generation Automated Market Maker that increases capital efficiency. Liquidity is allocated within a predefined price range.
  • Batch Execution : all deposits, withdrawals, and orders are accumulated in a batch and they are fairly executed at the same time.
  • Novel DeFi products are on the way!

Installation

Use binaries

Download a pre-built binary for your operating system. You can find the latest binaries in this releases page.

Build from source

Step 1. Install Golang

Go version 1.18 or higher is required.

If you haven't already, install Go by following the installation guide in the official docs. Make sure that your GOPATH and GOBIN environment variables are properly set up.

Step 2. Get source code

Use git to retrieve Crescent Core from the official repository and checkout latest release, which will install the crescentd binary.

git clone https://github.com/crescent-network/crescent.git
cd crescent && git checkout release/v5.0.x
make install

Step 3. Verify your installation

Verify the commit hash to see if you have installed crescentd correctly.

crescentd version --long

Dependency

Crescent core uses a fork of cosmos-sdk and ibc-go. If you would like to know which ones customized from the original cosmos-sdk and ibc-go, please reference the release notes in the respective repository.

Requirement Notes
cosmos-sdk (forked) v1.1.5-sdk-0.45.10
ibc-go (forked) v3.4.0-crescent-v4-3

Documentation

The documentation is available in docs directory. If you are a developer interested in technical specification, go to each x/{module}'s spec directory.

Community

Contributing

Crescent is a public and open-source blockchain protocol. We welcome contributions from everyone. If you are interested in contributing to Crescent Core, please review our CONTRIBUTING guide. Thank you to all those who have contributed to Crescent Core.

License

This software is licensed under the Apache 2.0 license. Read more about it here.

crescent's People

Contributors

coinedliberty avatar crypin avatar dongsam avatar hallazzang avatar jaybxyz avatar jeonghoyeo7 avatar kingcre avatar maxrobot avatar migueldingli1997 avatar queencre avatar rhcproc avatar richard-bachman avatar seth100kim 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

Watchers

 avatar  avatar  avatar  avatar  avatar

crescent's Issues

Update CODEOWNERS

Summary

As @richard-bachman and @lv-koala become the core contributors of the project, it makes sense to add them in CODEOWNERS file so that they can review PRs and manage the repository more efficiently.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Release v5 checklists

Summary

This issue contains checklists before releasing v5. Core functionality for v5 is to adopt Cosmwasm into Crescent blockchain.

Checklists

  • Ensure semantic versioning is adopted (v4 -> v5)
  • Update related documents
  • Update CHANGELOG.md

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Update Bids gRPC query endpoint

Summary

To align with other gRPC query endpoints, the following endpoint is better to be updated to liquidfarms instead of `pools.
https://github.com/crescent-network/crescent/blob/main/proto/crescent/liquidfarming/v1beta1/query.proto#L43

Problem Definition

Proposal

Before:
/crescent/liquidfarming/v1beta1/pools/{pool_id}/bids

After:
/crescent/liquidfarming/v1beta1/liquidfarms/{pool_id}/bids


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Error: code 8

Everytime I try to deposit Atom from Cosmostation IBC wallet to app.crescent I get this error msg in the picture?

Have tried to remove the Network and connection from the wallet, hard refresh but won't work.

IMG_20221002_213458

Support the latest `Ignite CLI`

Summary

Using the latest version of Ignite CLI (v0.25.1) doesn't work due to unable to build proto panic: interfacetype only supports messages with exactly one oneof declaration as well as some field names are changed, such as validator to validators and staked to bonded.

References


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

panic: unknown field "blocked_addrs" in types.GenesisState

Hi there,

It has been 2 days and I am stuck with this issue and unable to start the node. There is a genesis issue in the module causing failure. Please help !

I have tried the genesis from, all throw the same error

https://resource.crescent.network/crescent-1-genesis.json
https://raw.githubusercontent.com/crescent-network/launch/main/mainnet/crescent-1/genesis.json.tar.gz
https://polkachu.com/genesis/crescent

root@val-4:~# crescentd version
4.2.0

Log below,

root@val-4:/tmp# crescentd start                                                                                                                             6:27PM INF starting node with ABCI Tendermint in-process
6:27PM INF service start impl=multiAppConn module=proxy msg={}
6:27PM INF service start connection=query impl=localClient module=abci-client msg={}
6:27PM INF service start connection=snapshot impl=localClient module=abci-client msg={}
6:27PM INF service start connection=mempool impl=localClient module=abci-client msg={}
6:27PM INF service start connection=consensus impl=localClient module=abci-client msg={}
6:27PM INF service start impl=EventBus module=events msg={}
6:27PM INF service start impl=PubSub module=pubsub msg={}
6:27PM INF service start impl=IndexerService module=txindex msg={}
6:27PM INF ABCI Handshake App Info hash= height=0 module=consensus protocol-version=0 software-version=4.2.0
6:27PM INF ABCI Replay Blocks appHeight=0 module=consensus stateHeight=0 storeHeight=0
panic: unknown field "blocked_addrs" in types.GenesisState

Consider changing an order of AuctionId and PoolId for KVStore

Summary

Currently, AuctionId and PoolId are used when storing a rewards auction. It is suggested by @lv-koala that since PoolId acts as AuctionId's parent (e.g: auction id increments within the pool id), it is more intuitive to have PoolId first.

Proposal

Change an order of AuctionId and PoolId

  • RewardsAuctionKey: []byte{0xe5} | PoolId | AuctionId -> ProtocolBuffer(RewardsAuction)

Tasks

  • Change an order of AuctionId and PoolId (keeper and types)
  • Update CLI commands
  • Update gRPC query endpoints

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Fix to use Position rather than Farm for LiquidFarm and LiquidUnfarm

Summary of Bug

Currently, LiquidFarm and LiquidUnfarm use GetFarm function from the farm module to get TotalFarmingAmount. While the calculation is intended to use the total farming amount by the liquid farm module account, it is using the amount that is farmed by other farmers who directly farmed via the lpfarm module.

Tasks

  • Replace GetFarm with Position function
  • gRPC queries need to fix to use Position function (LiquidFarms, LiquidFarm, and ExchangeRate)
  • Add test cases (farm some amounts in the lpfarm module directly and test)

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Fix incorrect rewards value for RewardsAuction

Summary of Bug

In FinishRewardsAuction, the spendable coin amounts of WithdrawnRewardsReserveAddress needs to be added to truncatedRewards when setting rewards for RewardsAuction. Otherwise, it sets different amount of rewards when there is auto withdrawn farming rewards from the lpfarm module.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Add validation for auction status in `PlaceBid` message

Summary of Bug

AuctionStatus is not being checked when a bidder places their bid. If a bidder places a bid for the previous auction, it is currently possible.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Fix refund previous bid when placing a bid

Summary of Bug

The GetBid function in the PlaceBid should pass pool id to look up the bid from the store where it currently passes auction id. This does not refund previous bid correctly when there are at least two auctions.

Version

v3.0.0-rc7


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Bump budget module to v1.2.1

Summary

Bump tendermint/budget module from v1.2.0 to v1.2.1. This resolves breaking TS client code generation using Ignite CLI


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Release v3.0.0 check lists

Summary

Release v3.0.0 check lists

Tasks

  • Update CHANGELOG.md
  • Update any dependencies if there is any
  • Update Swagger docs

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Cosmos SDK Security Advisory: Release coordination for Cosmos SDK Barberry

The Cosmos SDK team has notified the community that a high-severity security issue patch will be released on June 8th, 16:00UTC. I am contacting you because your network is running an impacted version of the Cosmos SDK and to give advanced notice to prepare for security patch coordination. The patch can be applied without a consensus upgrade and will require at least 33.3% of the validators to update their nodes as quickly as possible to protect the network from exploitation.

When the Cosmos SDK patch is available, it is the responsibility of each network to validate it as quickly as possible, have a security release for the network binary as soon as possible, and coordinate with the network validators to upgrade their nodes as early as possible.

I am contacting you here because there was no e-mail address listed in the SECURITY.MD file for the repository or the SECURITY.MD file is missing. Please populate a SECURITY.MD file with the relevant information for subsequent reach-outs regarding security updates.

You can find more information on the link above.

Release v4 Checklists

Summary

This issue contains checklists to release v4, which upgrades ibc-go from v2.2.0 to v3.4.0. Reference #135 to know more about the upgrade notes.

Checklists

  • Ensure semantic versioning is adopted (v3 -> v4)
  • Update related documents
  • Update CHANGELOG.md

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Integrate CosmWasm

Summary

This issue requests to integrate wamsd into Crescent core to adopt CosmWasm.

add generated codec javascript/typescript file in repo

Summary

I want to write some javascript to interact with the crescent chain.
But encounter some problem, there are some custom message for example liquidstaking, so the common cosmosjs's staking not works.

Problem Definition

image

have spend 1 day on generating the codec file, but fails, got
seaify@seaifydeMacBook-Pro:~/crescent(main|✚1…) % protoc \                                                                                                                                                                                                                                            (main|✚1…)
> --proto_path="/Users/seaify/crescent/proto/crescent/liquidstaking/v1beta1/" \
> -I /Users/seaify/crescent/vendor \
> --plugin="./node_modules/.bin/protoc-gen-ts_proto" \
> --ts_proto_out="./proto_out" \
> --ts_proto_opt="esModuleInterop=true,forceLong=long,useOptionals=true" \
> "/Users/seaify/crescent/proto/crescent/liquidstaking/v1beta1/liquidstaking.proto"
gogoproto/gogo.proto: File not found.
cosmos_proto/cosmos.proto: File not found.
cosmos/base/v1beta1/coin.proto: File not found.
protoc-gen-openapiv2/options/annotations.proto: File not found.
liquidstaking.proto:5:1: Import "gogoproto/gogo.proto" was not found or had errors.
liquidstaking.proto:6:1: Import "cosmos_proto/cosmos.proto" was not found or had errors.
liquidstaking.proto:7:1: Import "cosmos/base/v1beta1/coin.proto" was not found or had errors.
liquidstaking.proto:9:1: Import "protoc-gen-openapiv2/options/annotations.proto" was not found or had errors.

when run ./scripts/protocgen.sh , also fail, got

unknown command "protoc" for "buf"

Proposal

can we add codecimpl.js file in the repo? so all the devs can directly use this file. Then it can save us many time for generating the protoc javascript file. Especially for the devs who doesn't know golang and procolbuf well

Just like the osmosis did, , https://github.com/osmosis-labs/osmosis-frontend/blob/f82b1b6faa1cf3e2e18ff519fdfe23262bbf66b5/src/proto/generated/codecimpl.js

Add Slack app in repo

Hello.

We would like to get notifications of upcoming releases.

It would be a massive help if we could do it through Github's Slack integration.

Could you kindly install it?

Thank you

Store DenomMetaData for every coin/token

Summary

For our client developers and our partners, we need to research and discuss if it is wise/doable to store metadata for all coins/tokens (coming from foreign chains).

References

  • Some chains (e.g Injective) provide the data off-chain. Reference this API.
  • Bank keeper has SetDenomMetaData function to store denom metadata.

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Add status optional flag for RewardsAuctions CLI command

Summary

This issue requests to add --status as an optional flag for RewardsAuctions CLI command. This feature is available in gRPC query but it is not available in CLI command.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Getting int64() out of bound error because of config

Summary of Bug

When the staking ratio of the chain is very disproportionate, the reward generated is very high causing the chain to break and will give this error.

Version

v1.0.0

Steps to Reproduce

While setting up the genesis-account do this

crescentd add-genesis-account liquid1 10000000000000000000000000000000000000000stake --home liquidStaked

crescentd gentx liquid1 100000000stake --chain-id liquidStakeChain --home liquidStaked

And now when we liquidStake to this validator the chain will break with Int64() out of bound error

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Add fee information in `RewardsAuction`

Summary

Currently, there is no way for bidders to check how much fees are deducted by which fee rate for a rewards auction. This issue suggests to add Fees and FeeRate in RewardsAuction.


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Typo: `TickPreicision`

Summary of Bug

There is a typo in the docs file crescent/x/liquidity/spec/01_concepts.md

The size of tick is configured by using the `TickPreicision` governance parameter.

Version

e156cc7

Steps to Reproduce

N/A

Tasks

References


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Bump ibc-go from v2.2.0 to v3.3.1

Summary

This issue requests to upgrade ibc-go from v2.2.0 to either v3.3.1.

Crescent fork of ibc-go: https://github.com/crescent-network/ibc-go/releases/tag/v3.3.1-crescent-v4-1

Tasks


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

Fix TypeScript client code generation using Ignite CLI

Summary of Bug

Crescent proto files are not using Go module versioning which is a barrier to generate TypeScript client code for crescent modules using Ignite CLI.

References


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned

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.