A Golang implementation of the Umee network, a decentralized universal capital facility in the Cosmos ecosystem.

Overview

Umee

Project Status: WIP โ€“ Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. GoDoc Go Report Card Version License: Apache-2.0 Lines Of Code

A Golang implementation of the Umee network, a decentralized universal capital facility in the Cosmos ecosystem.

Umee is a Universal Capital Facility that can collateralize assets on one blockchain towards borrowing assets on another blockchain. The platform specializes in allowing staked assets from PoS blockchains to be used as collateral for borrowing across blockchains. The platform uses a combination of algorithmically determined interest rates based on market driven conditions. As a cross chain DeFi protocol, Umee will allow a multitude of decentralized debt products.

Issues
  • chain reaches consensus failure on binary rebuild and restart

    chain reaches consensus failure on binary rebuild and restart

    Summary of Bug

    When running the beta version of the chain locally, rebuilding the binary in beta mode, stopping the chain, and then restarting, it reaches consensus failure via an error from the x/leverage module :

    ERR CONSENSUS FAILURE!!! err="-0.000002092846270928 years: negative time elapsed since last interest time" module=consensus ...

    Not sure if this is a major issue, but still worth jotting down

    Version

    Please provide the output of the following commands:

    • $ umeed version price-feeder/v0.1.0-c66f8961
    • $ go version go version go1.17.3 darwin/arm64
    • $ uname -a Darwin Adams-MacBook-Pro-2.local 21.3.0 Darwin Kernel Version 21.3.0: Wed Jan 5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_ARM64_T6000 arm64

    Steps to Reproduce

    Steps to reproduce the behavior:

    1. Launch beta umee network
    UMEE_ENABLE_BETA=true starport chain serve -c ./starport.ci.beta.yml -v --reset-once
    
    1. Rebuild binary with beta support
    UMEE_ENABLE_BETA=true make install
    
    1. Stop & Restart umee network
    UMEE_ENABLE_BETA=true starport chain serve -c ./starport.ci.beta.yml -v
    

    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    T:Bug C:x/leverage 
    opened by adamewozniak 29
  • docs: ADR-4: max collateral utilization

    docs: ADR-4: max collateral utilization

    Description

    closes: #926

    • adding max collateral utilization spec
    • cleaning the structure and language of other ADRs (done it as I was reviewing places which are impacted by max collateral utilization)

    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...

    • [ ] included the correct type prefix in the PR title
    • [ ] added appropriate labels to the PR
    • [ ] added ! to the type prefix if API or client breaking change
    • [ ] targeted the correct branch (see PR Targeting)
    • [ ] provided a link to the relevant issue or specification
    • [ ] added a changelog entry to CHANGELOG.md
    • [ ] included comments for documenting Go code
    • [ ] updated the relevant documentation or specification
    • [ ] 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 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)
    C:x/leverage C:Docs 
    opened by robert-zaremba 13
  • feat: Huobi provider to WS

    feat: Huobi provider to WS

    Description

    • Modified Huobi provider to use WebSocket connection instead of http.client
    • Modified unit tests for checking the map

    ref: #509


    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...

    • [ ] included the correct type prefix in the PR title
    • [ ] added appropriate labels to the PR
    • [ ] added ! to the type prefix if API or client breaking change
    • [ ] targeted the correct branch (see PR Targeting)
    • [ ] provided a link to the relevant issue or specification
    • [ ] added a changelog entry to CHANGELOG.md
    • [ ] included comments for documenting Go code
    • [ ] updated the relevant documentation or specification
    • [ ] 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 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)
    C:x/oracle C:Tools C:Audit S:backport/price-feeder/v0.1.x 
    opened by RafilxTenfen 12
  • x/leverage: Queries for frontend support

    x/leverage: Queries for frontend support

    Summary

    For reference, the list of existing queries can always be found in proto/leverage/v1beta1/query.proto

    We need to add the following queries (feel free to add more in the comments)

    • [x] Borrow APY of token -> PR
    • [x] Lend APY of token -> PR
    • [x] Market Size of an asset -> PR
    • [x] Available liquidity for borrowing -> PR

    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    C:CLI C:x/leverage 
    opened by toteki 12
  • x/leverage: Integrate Oracle

    x/leverage: Integrate Oracle

    Summary

    A stub placeholder for oracle integration.


    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    C:x/leverage C:x/oracle 
    opened by alexanderbez 12
  • build(deps): Bump github.com/golangci/golangci-lint from 1.44.2 to 1.45.0

    build(deps): Bump github.com/golangci/golangci-lint from 1.44.2 to 1.45.0

    Bumps github.com/golangci/golangci-lint from 1.44.2 to 1.45.0.

    Release notes

    Sourced from github.com/golangci/golangci-lint's releases.

    v1.45.0

    Changelog

    • ea1df6f1 Default to YAML when config file has no extension (#2618)
    • 93a0015c build(deps): bump actions/checkout from 2 to 3 (#2643)
    • 176ef3f7 build(deps): bump actions/setup-node from 2 to 3 (#2628)
    • adc0d8ec build(deps): bump github.com/ashanbrown/makezero from 1.1.0 to 1.1.1 (#2621)
    • 8f9bc4a7 build(deps): bump github.com/daixiang0/gci from 0.3.1 to 0.3.2 (#2640)
    • 6fc688ae build(deps): bump github.com/securego/gosec/v2 from 2.9.6 to 2.10.0 (#2624)
    • da08d2bd build(deps): bump github.com/shirou/gopsutil/v3 from 3.22.1 to 3.22.2 (#2641)
    • 873a27e7 build(deps): bump github.com/sivchari/containedctx from 1.0.1 to 1.0.2 (#2623)
    • ec952367 build(deps): bump github.com/spf13/cobra from 1.3.0 to 1.4.0 (#2646)
    • 0e7233eb build(deps): bump github.com/tomarrell/wrapcheck/v2 from 2.4.0 to 2.5.0 (#2603)
    • 0bcc0a3b build(deps): bump golangci/golangci-lint-action from 2.5.2 to 3.1.0 (#2627)
    • 5ffadacb build(deps): bump mvdan.cc/gofumpt from 0.2.1 to 0.3.0 (#2622)
    • d5ebd7eb build(deps): bump node-fetch in /.github/contributors (#2616)
    • 5ddb5e7a bump github.com/daixiang0/gci to v0.3.1 (#2596)
    • 56d77e2b bump github.com/denis-tingaikin/go-header from 0.4.2 to 0.4.3 (#2614)
    • 2f689958 errcheck: add an option to remove default exclusions (#2607)
    • 1f4c1ed9 fix: completion for fish-shell
    • 0c0804c6 go1.18 support (#2438)
    • 42ca6449 gofumpt: add module-path setting (#2644)
    • 30c6166b revive: fix default values (#2611)
    Changelog

    Sourced from github.com/golangci/golangci-lint's changelog.

    v1.45.0

    1. updated linters:
      • cobra: from 1.3.0 to 1.4.0
      • containedctx: from 1.0.1 to 1.0.2
      • errcheck: add an option to remove default exclusions
      • gci: from 0.3.1 to 0.3.2
      • go-header: from 0.4.2 to 0.4.3
      • gofumpt: add module-path setting
      • gofumpt: from 0.2.1 to 0.3.0
      • gopsutil: from 3.22.1 to 3.22.2
      • gosec: from 2.9.6 to 2.10.0
      • makezero: from 1.1.0 to 1.1.1
      • revive: fix default values
      • wrapcheck: from 2.4.0 to 2.5.0
    2. documentation:
      • docs: add "back to the top" button
      • docs: add forbidigo example that uses comments
      • docs: improve linters page
    3. misc:
      • go1.18 support ๐ŸŽ‰
      • Add an option to manage the targeted version of Go
      • Default to YAML when config file has no extension
    Commits
    • 1f4c1ed fix: completion for fish-shell
    • 0c0804c go1.18 support (#2438)
    • ec95236 build(deps): bump github.com/spf13/cobra from 1.3.0 to 1.4.0 (#2646)
    • 42ca644 gofumpt: add module-path setting (#2644)
    • 93a0015 build(deps): bump actions/checkout from 2 to 3 (#2643)
    • d7b28ca build(deps): bump normalize-url from 4.5.0 to 4.5.1 in /docs (#2642)
    • da08d2b build(deps): bump github.com/shirou/gopsutil/v3 from 3.22.1 to 3.22.2 (#2641)
    • 8f9bc4a build(deps): bump github.com/daixiang0/gci from 0.3.1 to 0.3.2 (#2640)
    • 41646f2 build(deps): bump gatsby-plugin-manifest from 4.7.0 to 4.9.0 in /docs (#2635)
    • fdd7218 build(deps): bump @โ€‹emotion/react from 11.7.1 to 11.8.1 in /docs (#2634)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    T:Dependencies A:Automerge 
    opened by dependabot[bot] 10
  • build(deps): Bump github.com/stretchr/testify from 1.7.0 to 1.7.1

    build(deps): Bump github.com/stretchr/testify from 1.7.0 to 1.7.1

    Bumps github.com/stretchr/testify from 1.7.0 to 1.7.1.

    Commits
    • 083ff1c Fixed didPanic to now detect panic(nil).
    • 1e36bfe Use cross Go version compatible build tag syntax
    • e798dc2 Add docs on 1.17 build tags
    • 83198c2 assert: guard CanConvert call in backward compatible wrapper
    • 087b655 assert: allow comparing time.Time
    • 7bcf74e fix msgAndArgs forwarding
    • c29de71 add tests for correct msgAndArgs forwarding
    • f87e2b2 Update builds
    • ab6dc32 fix linting errors in /assert package
    • edff5a0 fix funtion name
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    T:Dependencies A:Automerge 
    opened by dependabot[bot] 10
  • feat: gravity bridge WeightedOperations implementation

    feat: gravity bridge WeightedOperations implementation

    Description

    Gravity bridge sim implementation

    Relates to #389


    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...

    • [ ] included the correct type prefix in the PR title
    • [ ] added appropriate labels to the PR
    • [ ] added ! to the type prefix if API or client breaking change
    • [ ] targeted the correct branch (see PR Targeting)
    • [ ] provided a link to the relevant issue or specification
    • [ ] added a changelog entry to CHANGELOG.md
    • [ ] included comments for documenting Go code
    • [ ] updated the relevant documentation or specification
    • [ ] 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 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)
    opened by adamewozniak 10
  • [WIP] Added rbuilder to have reproducible builds

    [WIP] Added rbuilder to have reproducible builds

    This PR is aimed to solve https://github.com/umee-network/umee/issues/9

    Locally I could only run it successfully with linux/amd64. Will try to run it with linux/amd64 darwin/amd64 linux/arm64 darwin/arm64 when I have some more free time :)

    The github workflow still needs to be updated, I don't have any experience with that, maybe some other contributor can jump in and avoid me lots of trial and error ๐Ÿ˜† .

    opened by facundomedica 10
  • feat: multi-quote deviation logic

    feat: multi-quote deviation logic

    This PR solves the issue for the price feeder wherein a validator might configure it to use these exchange rates to get the price of BTC/USD :

    1. BTC/ETH
    2. BTC/USD
    3. ETH/USD

    This case is specific to certain assets which have more exchange rates with other tokens than they do with stablecoins.

    This PR also takes care of deviation detection for stablecoins before converting everything.

    closes: #1083


    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 in the PR title
    • [x] added ! to the type prefix if API or client breaking change
    • [x] added appropriate labels to the PR
    • [x] targeted the correct branch (see PR Targeting)
    • [x] provided a link to the relevant issue or specification
    • [x] added a changelog entry to CHANGELOG.md
    • [x] included comments for documenting Go code
    • [x] updated the relevant documentation or specification
    • [x] reviewed "Files changed" and left comments if necessary
    • [x] 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 in the PR title
    • [ ] 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)
    C:x/oracle C:Tools C:Price-Feeder 
    opened by adamewozniak 9
  • build(deps): Bump github.com/ethereum/go-ethereum from 1.10.19 to 1.10.20

    build(deps): Bump github.com/ethereum/go-ethereum from 1.10.19 to 1.10.20

    Bumps github.com/ethereum/go-ethereum from 1.10.19 to 1.10.20.

    Release notes

    Sourced from github.com/ethereum/go-ethereum's releases.

    Vectra (v1.10.20)

    Geth v1.10.20 is a maintenance release, adding built-in configuration for the merge fork on the Sepolia testnet.

    Specifically, this release defines a terminal total difficulty for Sepolia (#25179).

    Geth command changes

    • Geth and most other command-line tools now use a newer version of the command-line argument/flag handling library. There is one new restriction with this change: flags must now be given before other arguments. Very few of Geth's subcommands take arguments, so this is unlikely to cause issues. (#24751)
    • The geth js subcommand has been removed. (#25000)
    • The new --discovery.port flag allows configuring a separate port for the UDP listener. (#24979)
    • Setting p2p bootstrap nodes in the config file now works even when a pre-defined network is selected on the command-line. (#25174)

    RPC API changes

    • eth_chainId now always returns the configured chain ID regardless of sync status. This is a violation of EIP-695, but the previous behavior caused issues with CL clients. (#25166, #25168)
    • Transaction objects returned by RPC (e.g. from eth_getTransactionByHash) now always include the chainId field, even for untyped (legacy) transactions. (#25155)
    • The deprecated RPC method personal_signAndSendTransaction has been removed. (#25111)
    • Handling of certain reorg corner cases is improved in the Engine API. (#25187, #25139)
    • A performance regression in JS tracing is resolved. (#25156)

    Build changes

    • Bash and zsh completions are now installed by the geth Ubuntu package. (#25195, #25204)

    For a full rundown of the changes please consult the Geth 1.10.20 release milestone


    As with all our previous releases, you can find the:

    Commits
    • 8f2416a params: go-ethereum v1.10.20 stable
    • 75ebeb7 build/deb: fix auto-completion install paths (#25204)
    • 63b2d49 build: upgrade to golangci-lint v1.46.2 (#25202)
    • ea0bf08 build: fix auto-completion scripts and include them in .deb package (#25195)
    • d12b1a9 consensus/beacon: check that only the latest pow block is valid ttd block (#2...
    • c2070f8 common: increase StorageSize test coverage (#25188)
    • 3e693e1 internal/ethapi: return chain id for EIP-155 legacy txs (#25155)
    • 9ecf8a9 cmd/utils: fix applying bootstrap nodes from config file (#25174)
    • 300f612 core/rawdb: simplify TestDiskSeek to use memorydb (#25182)
    • 3f712e7 core/rawdb: fix typo in comment (#25191)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    T:Dependencies 
    opened by dependabot[bot] 9
  • feat(proto)!: aggregate queries on account address to account_summary and account_health queries

    feat(proto)!: aggregate queries on account address to account_summary and account_health queries

    Description

    Similarly to #1188, this PR combines individual queries into aggregate ones to reduce API surface.

    Since some of the fields depend heavily on oracle prices and some do not, they were separate into token-only (account_summary) and price-sensitive (account_health) queries. The latter will error when oracle is down.

    This aggregation also clears the way for future performance optimizations - in particular the account_health fields fetch the same token prices, values, and parameters multiple times during computation. This was unavoidable when they were separate queries, but can be improved soon.


    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 in the PR title
    • [x] added ! to the type prefix if API or client breaking change
    • [x] added appropriate labels to the PR
    • [x] targeted the correct branch (see PR Targeting)
    • [ ] provided a link to the relevant issue or specification
    • [x] added a changelog entry to CHANGELOG.md
    • [x] included comments for documenting Go code
    • [x] updated the relevant documentation or specification
    • [x] reviewed "Files changed" and left comments if necessary
    • [x] 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 in the PR title
    • [ ] 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)
    C:x/leverage C:API 
    opened by toteki 1
  • CI - Automated Testing

    CI - Automated Testing

    Summary

    • During the Halborn audit they used some tools to automate test

    "Halborn used automated testing techniques to enhance coverage of certain areas of the scoped component. Among the tools used were staticcheck, gosec, semgrep, unconvert, LGTM and Nancy. After Halborn verified all the contracts and scoped structures in the repository and was able to compile them correctly, these tools were leveraged on scoped structures. With these tools, Halborn can statically verify security related issues across the entire codebase."

    Problem Definition

    • We could find vulnerabilities or informational issues using these tools

    Proposal

    • Implement the tools to run at each PR creationg

    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    P:Low T:Dev UX 
    opened by RafilxTenfen 0
  • Leverage: (HAL-09) OPEN TODOs

    Leverage: (HAL-09) OPEN TODOs

    Summary

    Open To-dos can point to architecture or programming issues that still need to be resolved. Often these kinds of comments indicate areas of complexity or confusion for developers. This provides value and insight to an attacker who aims to cause damage to the protocol.

    Problem Definition

    Listing 18: Open Todos 1 ./x/ leverage / module .go :28: // TODO : Ensure x/ leverage implements simulator and then uncomment. 2 ./x/ leverage / keeper / interest .go :164: // TODO : use typed events 3 ./x/ leverage / keeper / interest .go :76: // @todo fix this when tender mint solves #8773

    Proposal

    Consider resolving the To-dos before deploying code to a production context. Use an independent issue tracker or other project management software to track development tasks.


    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    C:x/leverage P:Low C:Audit 
    opened by RafilxTenfen 0
  • Leverage: (HAL-08) PANIC IS USED FOR ERROR HANDLING

    Leverage: (HAL-08) PANIC IS USED FOR ERROR HANDLING

    Summary

    Several instances of the panic function were identified in the codebase. They appear to be used to handle errors. This can cause potential issues, as invoking a panic can cause the program to halt execution and crash in some cases. This in turn can negatively impact the availability of the software for users

    Problem Definition

    • https://github.com/umee-network/umee/blob/rafilx/umeed-cosmwasmd/x/leverage/abci.go#L11-21
    • https://github.com/umee-network/umee/blob/rafilx/umeed-cosmwasmd/x/leverage/keeper/keeper.go#L64-66

    Proposal

    Instead of using panics, custom errors should be defined and handled according to the Cosmos best practices.

    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    C:x/leverage P:Low C:Audit 
    opened by RafilxTenfen 0
  • Price-feeder: (HAL-07) HTML ESCAPING NOT IMPLEMENTED

    Price-feeder: (HAL-07) HTML ESCAPING NOT IMPLEMENTED

    Summary

    It was found that Write is being used to generate HTTP responses, instead of using the html/template package that handles HTML and other encodings more safely.

    Proposal

    • It is recommended to use the html/template package when returning data back during an HTTP response.

    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    P:Low C:Audit C:Price-Feeder 
    opened by RafilxTenfen 0
  • Leverage: (HAL-06) DUPLICATED ERROR CHECKS

    Leverage: (HAL-06) DUPLICATED ERROR CHECKS

    Summary

    There are two instances where an error check is not required, and the logic can be adjusted to only return the value

    Problem Definition

    • https://github.com/umee-network/umee/blob/rafilx/umeed-cosmwasmd/x/leverage/types/tx.go#L%20115-121
    • https://github.com/umee-network/umee/blob/rafilx/umeed-cosmwasmd/x/leverage/types/tx.go#L%2086-92

    Proposal

    As the err variable will already be nil if no error has been generated by the function, the following piece of code will be sufficient

    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
    C:x/leverage P:Low C:Audit 
    opened by RafilxTenfen 0
Releases(price-feeder/v0.2.5)
Verifiable credential system on Cosmos with IBC for Distributed Identities

CertX This is a project designed to demonstrate the use of IBC between different zones in the Cosmos ecosystem for privacy preserving credential manag

bwty 6 Mar 29, 2022
Golimit is Uber ringpop based distributed and decentralized rate limiter

Golimit A Distributed Rate limiter Golimit is Uber ringpop based distributed and decentralized rate limiter. It is horizontally scalable and is based

Myntra 604 Aug 3, 2022
An implementation of a distributed KV store backed by Raft tolerant of node failures and network partitions ๐Ÿšฃ

barge A simple implementation of a consistent, distributed Key:Value store which uses the Raft Concensus Algorithm. This project launches a cluster of

Shehjad Khan 0 Nov 24, 2021
More effective network communication, two-way calling, notify and broadcast supported.

ARPC - More Effective Network Communication Contents ARPC - More Effective Network Communication Contents Features Performance Header Layout Installat

lesismal 569 Aug 6, 2022
Like Go channels over the network

libchan: like Go channels over the network Libchan is an ultra-lightweight networking library which lets network services communicate in the same way

Docker 2.5k Aug 11, 2022
Network connecter for storage.

database Quick fast connection to database use gorm. Installation $ go get -u github.com/coolstina/connecter Example package main import ( "fmt" "

coolstina 0 Dec 4, 2021
Golang implementation of the Raft consensus protocol

raft raft is a Go library that manages a replicated log and can be used with an FSM to manage replicated state machines. It is a library for providing

HashiCorp 6.3k Aug 2, 2022
The pure golang implementation of nanomsg (version 1, frozen)

mangos NOTE: This is the legacy version of mangos (v1). Users are encouraged to use mangos v2 instead if possible. No further development is taking pl

nanomsg 1.5k Jun 22, 2022
Golang implementation of distributed mutex on Azure lease blobs

Distributed Mutex on Azure Lease Blobs This package implements distributed lock available for multiple processes. Possible use-cases include exclusive

YouScan 11 Jul 31, 2022
The Go language implementation of gRPC. HTTP/2 based RPC

gRPC-Go The Go implementation of gRPC: A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. For more information

grpc 16.5k Aug 7, 2022
A simple go implementation of json rpc 2.0 client over http

JSON-RPC 2.0 Client for golang A go implementation of an rpc client using json as data format over http. The implementation is based on the JSON-RPC 2

Alexander Gehres 236 Jul 30, 2022
Simplified distributed locking implementation using Redis

redislock Simplified distributed locking implementation using Redis. For more information, please see examples. Examples import ( "fmt" "time"

Black Square Media 756 Aug 3, 2022
An implementation of a distributed access-control server that is based on Google Zanzibar

An implementation of a distributed access-control server that is based on Google Zanzibar - "Google's Consistent, Global Authorization System".

authorizer.tech 61 May 16, 2022
implementation of some distributed system techniques

Distributed Systems These applications were built with the objective of studding a distributed systems using the most recent technics. The main ideia

Rafael A. C 6 Feb 18, 2022
A naive implementation of Raft consensus algorithm.

This implementation is used to learn/understand the Raft consensus algorithm. The code implements the behaviors shown in Figure 2 of the Raft paper wi

Martin 0 Dec 3, 2021
A spinlock implementation for Go.

A spinlock implementation for Go.

Hiroto Funakoshi 0 Dec 20, 2021
This is my implementation of Raft consensus algorithm that I did for own learning.

This is my implementation of Raft consensus algorithm that I did for own learning. Please follow the link to learn more about raft consensus algorithm https://raft.github.io. And Soon, I will be developing same algorithm in Java as well

Umar Tahir 1 Jan 12, 2022
Golang client library for adding support for interacting and monitoring Celery workers, tasks and events.

Celeriac Golang client library for adding support for interacting and monitoring Celery workers and tasks. It provides functionality to place tasks on

Stefan von Cavallar 73 Jul 19, 2022
Consistent hashing with bounded loads in Golang

consistent This library provides a consistent hashing function which simultaneously achieves both uniformity and consistency. For detailed information

Burak Sezer 494 Jul 20, 2022