Go to file
mergify[bot] 5b79b765e5
perf: Only do memory allocation when zero coin is found (backport #10339) (#10361)
* perf: Only do memory allocation when zero coin is found (#10339)

## Description

Closes: #10333

Added a loop that checks for zero coins before making any memory allocations. If no zero coins are found, just return the `coins` slice as is. If a zero coin is found, then allocate the new array, stop looking for the first zero, and restart the loop to "remove" the 0's.

---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change (Not Applicable)
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules) (Not Applicable)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing) (Not Applicable)
- [x] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc) (Not Applicable)
- [ ] updated the relevant documentation or specification (Not Applicable)
- [x] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

(cherry picked from commit f00e7a4e15)

# Conflicts:
#	CHANGELOG.md

* fix conflict

Co-authored-by: Jake Waggoner <32466459+waggonerjake@users.noreply.github.com>
Co-authored-by: marbar3778 <marbar3778@yahoo.com>
2021-10-14 11:43:08 +02:00
.github fix(CI): add golangci-lint to dependencies (#10112) (#10172) 2021-09-17 00:34:36 +02:00
baseapp fix!: remove grpc query routing through tendermint (backport #10045) (#10269) 2021-10-04 19:24:16 +02:00
client fix!: remove grpc query routing through tendermint (backport #10045) (#10269) 2021-10-04 19:24:16 +02:00
codec fix: remove legacy REST endpoints for broadcast & encode (v0.44.x) (#10041) 2021-09-01 15:50:20 +02:00
contrib feat: Non-zero Default Fees (#9371) 2021-06-25 10:41:32 +00:00
cosmovisor docs: fix cosmovisor quickstart (backport #9730) (#9789) 2021-07-28 11:27:49 +02:00
crypto fix: revert \#10169 (amino multisig key unmarshalling) (#10193) 2021-09-18 08:03:34 +02:00
docs docs: update to v0.44 migration (backport #10070) (#10129) 2021-09-13 12:24:23 -04:00
internal/conv internal/conv: fix wrong string to bytes implementation (#9141) 2021-04-19 14:51:05 +01:00
proto/cosmos chore: Deprecate QueryUpgradedConsensusState (#9906) (#9909) 2021-08-12 16:07:38 +02:00
scripts scripts: indent multiline commands (#8706) 2021-02-25 20:57:41 +00:00
server fix!: remove grpc query routing through tendermint (backport #10045) (#10269) 2021-10-04 19:24:16 +02:00
simapp fix: --home flag parsing (backport #10226) (#10271) 2021-10-04 12:57:06 +02:00
snapshots snapshots: document use of ioutil.TempDir() (#8508) 2021-02-04 09:54:01 +00:00
std Add ADR 031 BaseApp and codec infrastructure (#7519) 2020-10-15 13:07:59 +00:00
store fix: removed potential sources of non-determinism in upgrades (backport #10189) (#10253) 2021-09-29 11:05:51 +02:00
telemetry v043 audit changes for telemetry/ (#9297) 2021-05-11 12:28:47 +00:00
tests test: fix mockgen version (#9127) 2021-05-25 09:18:59 +00:00
testutil fix: start GRPCWebServer in goroutine (backport #9704) (#9719) 2021-07-19 11:02:23 +02:00
third_party/proto Any: update and test String method (#8854) 2021-03-12 12:24:07 +00:00
types perf: Only do memory allocation when zero coin is found (backport #10339) (#10361) 2021-10-14 11:43:08 +02:00
version feat: add cosmos-sdk Version (#9429) 2021-06-18 12:56:55 +00:00
x chore: [x/feegrant] remove unnecessary logging in simulation (backport #10262) (#10270) 2021-10-05 12:01:01 +02:00
.build.sh fix library file path (#8301) 2021-01-12 10:08:42 +00:00
.clang-format Fix clang-format to specific version (#7350) 2020-10-27 10:04:34 +00:00
.codecov.yml CI: Fix codecov flag project config (#7994) 2020-11-20 09:13:25 -05:00
.deepsource.toml chore: refactor code quality issues (#8932) 2021-03-22 09:30:27 +00:00
.dockerignore Add basic Dockerfile to build all binaries and export gaiad 2018-04-10 12:39:47 +02:00
.gitattributes Merge PR #6426: Migrate API Server 2020-06-15 13:39:09 -04:00
.gitignore docs: fix cosmovisor quickstart (backport #9730) (#9789) 2021-07-28 11:27:49 +02:00
.golangci.yml fix(CI): add golangci-lint to dependencies (#10112) (#10172) 2021-09-17 00:34:36 +02:00
.goreleaser.yml ci: automate release post tag push (#6230) 2020-05-25 20:02:08 +02:00
.markdownlint.json chore: add markdownlint to lint commands (#9353) 2021-05-27 15:31:04 +00:00
.markdownlintignore chore: add markdownlint to lint commands (#9353) 2021-05-27 15:31:04 +00:00
.mergify.yml ci: use title+body for commit message (#9496) 2021-06-11 11:56:00 -07:00
CHANGELOG.md perf: Only do memory allocation when zero coin is found (backport #10339) (#10361) 2021-10-14 11:43:08 +02:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md (#7381) 2020-09-28 11:28:30 +02:00
CONTRIBUTING.md feat: add cosmos-sdk Version (#9429) 2021-06-18 12:56:55 +00:00
Dockerfile remove plantuml install in docker (#9059) 2021-04-06 19:04:00 +00:00
LICENSE Add README.md to Basecoin; Update licenses 2018-01-28 18:17:19 -08:00
Makefile fix(CI): add golangci-lint to dependencies (#10112) (#10172) 2021-09-17 00:34:36 +02:00
README.md chore: add markdownlint to lint commands (#9353) 2021-05-27 15:31:04 +00:00
RELEASE_NOTES.md chore: v0.44.1 release notes and changelog (#10261) 2021-09-29 17:13:56 +02:00
SECURITY.md chore: add markdownlint to lint commands (#9353) 2021-05-27 15:31:04 +00:00
STABLE_RELEASES.md chore: Update STABLE_RELEASES for 0.43 (#9931) (#9943) 2021-08-16 09:30:58 -04:00
buf.yaml refactor: Bring back deprecated proto fields to `v1beta1` (#9534) 2021-06-23 13:03:33 +00:00
docker-compose.yml buildsystem: simplify Makefile and ci automation (#7189) 2020-08-31 15:39:05 +02:00
go.mod chore: bump IAVL version (backport #10040) (#10154) 2021-09-17 02:07:10 +02:00
go.sum chore: bump IAVL version (backport #10040) (#10154) 2021-09-17 02:07:10 +02:00

README.md

Cosmos SDK

banner

The Cosmos-SDK is a framework for building blockchain applications in Golang. It is being used to build Gaia, the first implementation of the Cosmos Hub.

WARNING: The SDK has mostly stabilized, but we are still making some breaking changes.

Note: Requires Go 1.15+

Quick Start

To learn how the SDK works from a high-level perspective, go to the SDK Intro.

If you want to get started quickly and learn how to build on top of the SDK, please follow the SDK Application Tutorial. You can also fork the tutorial's repository to get started building your own Cosmos SDK application.

For more, please go to the Cosmos SDK Docs.

Cosmos Hub Mainnet

The Cosmos Hub application, gaia, has moved to its own repository. Go there to join the Cosmos Hub mainnet and more.

Interblockchain Communication (IBC)

The IBC module for the SDK has moved to its own repository. Go there to build and integrate with the IBC module.

Starport

If you are starting a new app or a new module you can use Starport to help you get started and speed up development. If you have any questions or find a bug, feel free to open an issue in the repo.

Disambiguation

This Cosmos-SDK project is not related to the React-Cosmos project (yet). Many thanks to Evan Coury and Ovidiu (@skidding) for this Github organization name. As per our agreement, this disambiguation notice will stay here.