A Golang Client Library for building Cosmos SDK chain clients

Cosmos Client Lib in Go

This is the start of ideas around how to implement the cosmos client libraries in a seperate repo

  • How to instantiate and use the GRPC golang client? This is not not currently obvious
  • Currently we are depending on the sdk keyring libs. This is fine for now
  • Encoding config is done by passing in app module basics strucs which seems like a logical way to configure
  • Biggest TODO: is transaction generation and signing
Comments
  • broadcasttx should check the response#code

    broadcasttx should check the response#code

    https://github.com/strangelove-ventures/lens/blob/main/client/broadcast.go#L70-L83

    Hi, I have a question about Why do you only check the ErrWrongSequence code ? Maybe You can just return if the code is not successful

  • Teach lens about EthAccounts (et al)

    Teach lens about EthAccounts (et al)

    relayer needs to know about EthAccounts to interoperate with EVM chains.

    This integrates the approach used by @giansalex into lens

    https://github.com/cosmos/relayer/compare/main...disperze:ethermint

  • Add dynamic inspect and query commands

    Add dynamic inspect and query commands

    These new commands use the protoreflect third-party library.

    The inspect subcommand lets you explore available services and their associated message types on a remote chain.

    The query subcommand lets you send arbitrary messages to specific gRPC services on a remote chain. It accepts JSON-formatted messages at the command line; then converts them to protobuf internally, sends them to the server, receives a protobuf response and formats it as JSON on stdout.

  • keysever proto

    keysever proto

    Next steps if we want to do this in the lens repo:

    • [ ] Decide on final API and features for the keyserver
    • [ ] generate go stubs for types and GRPC interfaces
    • [ ] create a client implementation in a top level keyring package that will be used by the client package to sign
    • [ ] create a sample file server implementation to be used as the default
  • SendMsg waits forever, no errors.

    SendMsg waits forever, no errors.

    Hi.

    I'm trying to use lens' SendMsg with wasmd.

    msg, _ := json.Marshal(CW20Transfer{
          Data: CW20TransferData{
    	      Amount: amount_to_send,
    	      Recipient: address,
          },
    })
    
    req := &wasmdtypes.MsgExecuteContract{
          Sender: SrcWalletAddress,
          Contract: contract,
          Msg: msg,
    }
    
    res, err := chainClient.SendMsg(context.Background(), req)
    fmt.Println("never gets here. the above line just waits forever without returning")
    if err != nil {
          if res != nil {
    	      return CosmosTXRespone{}, fmt.Errorf("failed to send")
          }
          return CosmosTXRespone{}, err
    }
    

    The RPC being used works. And I am able to send this exact message using wasmd CLI.

    Any idea whats going on here/how to debug?

  • keys.go RestoreKey

    keys.go RestoreKey

    Unable to make work using - Visual Studio Code - Windows > Other lens keys functions work fine

    PS C:\Git\lens> lens keys restore ("test_key") Enter mnemonic 🔑: Error: Invalid mnemonic

    PS C:\Git\lens> lens keys restore test_key Enter mnemonic 🔑: Error: Invalid mnemonic

    PS C:\Git\lens> lens keys restore "testkey" Enter mnemonic 🔑: Error: Invalid mnemonic

    PS C:\Git\lens> lens keys restore ("test_key","blind master acoustic speak victory lend kiss grab glad help demand hood roast zone lend sponsor level cheap truck kingdom apology token hover reunion") Error: accepts 1 arg(s), received 2

    PS C:\Git\lens> lens keys restore "test_key","blind master acoustic speak victory lend kiss grab glad help demand hood roast zone lend sponsor level cheap truck kingdom apology token hover reunion"
    Enter mnemonic 🔑: Error: Invalid mnemonic

    PS C:\Git\lens> lens keys restore (test_key,blind master acoustic speak victory lend kiss grab glad help demand hood roast zone lend sponsor level cheap truck kingdom apology token hover reunion) At line:1 char:28

    • lens keys restore (test_key,blind master acoustic speak victory lend ... Missing argument in parameter list.
      • CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
      • FullyQualifiedErrorId : MissingArgument
  • [WIP] Querying Proposals

    [WIP] Querying Proposals

    Working for default proposals

    Query for a paginated proposals that match optional filters:
    Example:
    $ lens query gov proposals --depositor cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk
    $ lens query gov proposals --voter cosmos1skjwj5whet0lpe65qaq4rpq03hjxlwd9nf39lk
    $ lens query gov proposals --status (DepositPeriod|VotingPeriod|Passed|Rejected)
    $ lens query gov proposals --page=2 --limit=100
    
    Usage:
      lens query governance proposals [flags]
    
    Flags:
          --count-total        count total number of records in objects to query for (default true)
          --depostior string   (optional) filter by proposals deposited on by depositor
      -h, --help               help for proposals
          --limit uint         pagination limit of objects to query for (default 100)
          --offset uint        pagination offset of objects to query for
          --page uint          pagination page of objects to query for. This sets offset to a multiple of limit (default 1)
          --page-key string    pagination page-key of objects to query for
          --reverse            results are sorted in descending order
          --status string      (optional) filter proposals by proposal status, status: deposit_period/voting_period/passed/rejected
          --voter string       (optional) filter by proposals voted on by voted
    
    Global Flags:
          --chain string   override default chain
      -d, --debug          debug output
          --home string    set home directory (default "C:\\Users\\joeab/.lens")
    

    For example:

    $ lens q gov proposals --chain regen | jq .
    {
      "proposals": [
        {
          "proposal_id": "8",
          "content": {
            "@type": "/cosmos.params.v1beta1.ParameterChangeProposal",
            "title": "Credit Class Creator - Regen Registry",
            "description": "This is a parameter change proposal to add a multisig address for Regen Registry, currently managed by members of Regen Network Development (RND), to the list of allowed credit class creators. The RND staff are applying on behalf of Regen Registry, which we envision will become the first community governed registry program, owned and operated by experts committed to ecological regeneration.\n\nFor more information, see the long-form proposal: https://github.com/regen-network/governance/tree/main/proposals/2021-12-regen-registry-credit-class-creator",
            "changes": [
              {
                "subspace": "ecocredit",
                "key": "AllowedClassCreators",
                "value": "[\n                \"regen123a7e9gvgm53zvswc6daq7c85xtzt8263lgasm\"\n            ]"
              }
            ]
          },
          "status": "PROPOSAL_STATUS_VOTING_PERIOD",
          "final_tally_result": {
            "yes": "0",
            "abstain": "0",
            "no": "0",
            "no_with_veto": "0"
          },
          "submit_time": "2021-12-23T23:16:48.618057670Z",
          "deposit_end_time": "2022-01-06T23:16:48.618057670Z",
          "total_deposit": [
            {
              "denom": "uregen",
              "amount": "200000000"
            }
          ],
          "voting_start_time": "2021-12-24T01:40:20.924789916Z",
          "voting_end_time": "2022-01-07T01:40:20.924789916Z"
        }
      ],
      "pagination": {
        "next_key": null,
        "total": "1"
      }
    }
    
    • [x] Handle flags
    • [ ] Handle Customs Proposal types.
  • Bump github.com/cosmos/ibc-go/v5 from 5.0.0-beta1 to 5.0.1

    Bump github.com/cosmos/ibc-go/v5 from 5.0.0-beta1 to 5.0.1

    Bumps github.com/cosmos/ibc-go/v5 from 5.0.0-beta1 to 5.0.1.

    Release notes

    Sourced from github.com/cosmos/ibc-go/v5's releases.

    v5.0.1

    This release bumps the Cosmos SDK from v0.45.8 to v0.46.3. Cosmos SDK v0.46.3 includes the fix for the dragonberry security advisory.


    To learn more about ibc-go versioning, please read our RELEASES.md.

    IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.46.3 and ibc-go v5.0.1, please follow:

    1. The migration from SDK 0.41.x or 0.42.x to the IBC module in the ibc-go repository based on the SDK v0.44.x.
    2. The migration from ibc-go v1 to v2.
    3. The migration from ibc-go v2 to v3.
    4. The migration from ibc-go v3 to v4.
    5. The migration from ibc-go v4 to v5.

    v5.0.0

    UPDATES

    • 27th October 2022: This release is NOT recommended since it uses a version of the Cosmos SDK impacted by the dragonberry security advisory. Please use version >= 5.0.1.

    This release bumps the Cosmos SDK to v0.46.1 (for more information, see Cosmos SDK v0.46.1 Release Notes) and Tendermint to v0.34.21 (for more information, see Tendermint 0.34.21 changelog). It also introduces several code style improvements flagged by linting tools. We present here a summary of the most relevant changes, but please see the v5.0.0 changelog for the full set of changes included in this release.

    core/02-client

    apps/27-interchain-accounts

    • Support for Cosmos-SDK simulation has been added.
    • The InterchainAccount gRPC query endpoint and CLI query have been added to the controller submodule to allow end users the ability to inspect the interchain account address generated on the host chain. has been added the controller submodule to allow users to retrieve the registered interchain account addresses on the host chain.
    • A MessageRouter interface has been added. It has replaced the *baseapp.MsgServiceRouter used in the controller and host keepers.

    testing

    Special thanks to our external contributors on this release: @​faddat @​Taztingo @​jhernandezb


    To learn more about ibc-go versioning, please read our RELEASES.md.

    IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.46.1 and ibc-go v5.0.0, please follow:

    1. The migration from SDK 0.41.x or 0.42.x to the IBC module in the ibc-go repository based on the SDK v0.44.x.
    2. The migration from ibc-go v1 to v2.
    3. The migration from ibc-go v2 to v3.

    ... (truncated)

    Changelog

    Sourced from github.com/cosmos/ibc-go/v5's changelog.

    v5.0.1 - 2022-10-27

    Dependencies

    • #2623 Bump SDK version to v0.46.3 and Tendermint version to v0.34.22.

    v5.0.0 - 2022-09-28

    Dependencies

    • #1653 Bump SDK version to v0.46
    • #2124 Bump SDK version to v0.46.1

    API Breaking

    • (testing)#2028 New interface ibctestingtypes.StakingKeeper added and set for the testing app StakingKeeper setup.
    • (core/04-channel) #1418 NewPacketId has been renamed to NewPacketID to comply with go linting rules.
    • (core/ante) #1418 AnteDecorator has been renamed to RedundancyDecorator to comply with go linting rules and to give more clarity to the purpose of the Decorator.
    • (core/ante) #1820 RedundancyDecorator has been renamed to RedundantRelayDecorator to make the name for explicit.
    • (testing) #1418 MockIBCApp has been renamed to IBCApp and MockEmptyAcknowledgement has been renamed to EmptyAcknowledgement to comply with go linting rules
    • (apps/27-interchain-accounts) #2058 Added MessageRouter interface and replaced *baseapp.MsgServiceRouter with it. The controller and host keepers of apps/27-interchain-accounts have been updated to use it.
    • (apps/27-interchain-accounts)#2302 Handle unwrapping of channel version in interchain accounts channel reopening handshake flow. The host submodule Keeper now requires an ICS4Wrapper similarly to the controller submodule.

    Improvements

    • (27-interchain-accounts) #1352 Add support for Cosmos-SDK simulation to ics27 module.
    • (linting) #1418 Fix linting errors, resulting compatiblity with go1.18 linting style, golangci-lint 1.46.2 and the revivie linter. This caused breaking changes in core/04-channel, core/ante, and the testing library.

    Features

    • (apps/27-interchain-accounts) #2193 Adding InterchainAccount gRPC query endpont to ICS27 controller submodule to allow users to retrieve registered interchain account addresses.

    Bug Fixes

    • (27-interchain-accounts) #2308 Nil checks have been added to ensure services are not registered for nil host or controller keepers.
    • (makefile) #1785 Fetch the correct versions of protocol buffers dependencies from tendermint, cosmos-sdk, and ics23.
    • (modules/core/04-channel)#1919 Fixed formatting of sequence for packet "acknowledgement written" logs.

    v3.1.0 - 2022-04-16

    Dependencies

    • #1300 Bump SDK version to v0.45.4

    API Breaking

    State Machine Breaking

    Improvements

    ... (truncated)

    Commits

    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)
  • Lens installation issue

    Lens installation issue

    New to github and coding in general.

    Im having trouble installing this package on linux, after the make install, the system says lens is not installed. Screenshot attached, any help with this issue? Followed the instructions in the readme exactly as well.

    Thanks

  • lens keys restore command always uses 'home' directory

    lens keys restore command always uses 'home' directory

    Lens config.yaml below.

    Expected: The command "lens keys restore default" will restore into the default chain's configured key-directory. With my configuration (below) this would be e.g. /home/kyle/projects/cosmos-chains/lens. The golang client seems to do this, I am seeing paths in the debugger like {homepath}/keys/{ChainID}/keyring-test. Actual: Ran command "lens keys restore default". The keys were created in my home directory e.g. /home/kyle/.lens/keys.

    Note: I am inexperienced with lens, so I may be misunderstanding something. However, if it is desirable to have the behavior I described above (in the lens cli) I may be able to make a PR.

    default_chain: juno
    chains:
      juno:
        key: default
        chain-id: testing
        rpc-addr: http://localhost:80
        grpc-addr: "http://localhost:9090"
        account-prefix: juno
        keyring-backend: test
        gas-adjustment: 1.2
        gas-prices: 0.0ustake
        key-directory: /home/kyle/projects/cosmos-chains/lens
        debug: false
        timeout: 10s
        output-format: json
        sign-mode: direct
    
  • No documentation or simple examples of Go library

    No documentation or simple examples of Go library

    I'm trying to use lens in some testing code where I send messages to a running cosmos network from my Golang tests. Unfortunately there is no documentation on how to do this. My only option seems to be to dig into the cli source.

  • Bump golang.org/x/term from 0.1.0 to 0.4.0

    Bump golang.org/x/term from 0.1.0 to 0.4.0

    Bumps golang.org/x/term from 0.1.0 to 0.4.0.

    Commits
    • 1efcd90 go.mod: update golang.org/x dependencies
    • 97ca0e3 go.mod: update golang.org/x dependencies
    • f72a2d8 go.mod: update golang.org/x dependencies
    • f6f2839 term: remove unused variable
    • 8365914 go.mod: update golang.org/x dependencies
    • See full diff 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)
  • Bump github.com/InjectiveLabs/sdk-go from 1.42.4-lens to 1.44.0

    Bump github.com/InjectiveLabs/sdk-go from 1.42.4-lens to 1.44.0

    Bumps github.com/InjectiveLabs/sdk-go from 1.42.4-lens to 1.44.0.

    Commits
    • d061c9f Merge pull request #93 from InjectiveLabs/f/improve-eip712-parser
    • b86b32b Merge pull request #94 from InjectiveLabs/feat/v2-orderbooks
    • 525608c feat(ordebook): version new orderbook APIs
    • 1066203 chore(echange-api) re-generate exchange api
    • 91a9bb6 Merge pull request #92 from InjectiveLabs/feat/orderbook-api-update
    • 528ccc9 fix(stream-orderbook): restore using the old deprecated API in the examples
    • cc2cf1e fix(examples): fix error message and improve var name
    • 5c143c4 chore(exchange-client): copy update exchange API files
    • baadcb7 fix: format reference type
    • 6b3c3d9 feat: support complex nested types for cosmwas inner msgs parser
    • 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)
  • Bump github.com/avast/retry-go/v4 from 4.3.1 to 4.3.2

    Bump github.com/avast/retry-go/v4 from 4.3.1 to 4.3.2

    Bumps github.com/avast/retry-go/v4 from 4.3.1 to 4.3.2.

    Release notes

    Sourced from github.com/avast/retry-go/v4's releases.

    Bugfixes

    #79 #80 #81

    Commits
    • c65eeae bump version of fixes #79 #80 #81
    • 50ad89e version bump (bugfixes)
    • e1515ac Merge pull request #81 from JamieEdge/fix-80
    • a297da9 Merge pull request #79 from JamieEdge/fix-78
    • b30adbd Merge pull request #82 from JamieEdge/fix-error-unwrap-godoc
    • 2d06845 docs: fix typo and improve consistency of comment for Error.Unwrap
    • 56486ba fix: reslice error log to remove nil values
    • 54c42e0 fix: return last non-nil value when unwrapping errors
    • See full diff 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)
  • Bump github.com/cosmos/ibc-go/v5 from 5.1.0 to 5.2.0

    Bump github.com/cosmos/ibc-go/v5 from 5.1.0 to 5.2.0

    Bumps github.com/cosmos/ibc-go/v5 from 5.1.0 to 5.2.0.

    Release notes

    Sourced from github.com/cosmos/ibc-go/v5's releases.

    v5.2.0

    This release bumps the Cosmos SDK from v0.46.6 to v0.46.7 and Tendermint from v0.34.23 to v0.34.24. Please see the v5.2.0 changelog for the full set of changes in this release.

    Special thanks to our external contributors on this release: @​alpe


    To learn more about ibc-go versioning, please read our RELEASES.md.

    IMPORTANT: Please read the migration guides for any versions of ibc-go that you might be going through when upgrading to this version. For example: if you upgrade from the IBC module contained in the Cosmos SDK 0.42.0 to SDK v0.46.7 and ibc-go v5.2.0, please follow:

    1. The migration from SDK 0.41.x or 0.42.x to the IBC module in the ibc-go repository based on the SDK v0.44.x.
    2. The migration from ibc-go v1 to v2.
    3. The migration from ibc-go v2 to v3.
    4. The migration from ibc-go v3 to v4.
    5. The migration from ibc-go v4 to v5.
    Changelog

    Sourced from github.com/cosmos/ibc-go/v5's changelog.

    v5.2.0 - 2022-12-20

    Dependencies

    • #2868 Bump ICS 23 to v0.9.0.
    • #2944 Bump Cosmos SDK to v0.46.7 and Tendermint to v0.34.24.

    State Machine Breaking

    • (apps/29-fee) #2942 Check x/bank send enabled before escrowing fees.

    Improvements

    • (apps/29-fee) #2786 Save gas by checking key existence with KVStore's Has method.
    Commits

    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)
  • Bump github.com/cosmos/cosmos-sdk from 0.46.4 to 0.46.7

    Bump github.com/cosmos/cosmos-sdk from 0.46.4 to 0.46.7

    Bumps github.com/cosmos/cosmos-sdk from 0.46.4 to 0.46.7.

    Release notes

    Sourced from github.com/cosmos/cosmos-sdk's releases.

    v0.46.7

    Cosmos SDK v0.46.7 Release Notes

    This release introduces bug fixes and improvements. Notably, the upgrade to Tendermint v0.34.24.

    Please read the release notes of v0.46.5 if you are upgrading from <=0.46.4.

    A critical vulnerability has been fixed in the group module. For safety, v0.46.5 and v0.46.6 are retracted, even though chains not using the group module are not affected. When using the group module, please upgrade immediately to v0.46.7.

    An issue has been discovered in the gov module's votes migration. It does not impact proposals and votes tallying, but the gRPC queries on votes are incorrect. This issue is fixed in v0.46.7, however:

    • if your chain is already on v0.46 using <= v0.46.6, a coordinated upgrade to v0.46.7 is required. You can use the helper function govv046.Migrate_V046_6_To_V046_7 for migrating a chain already on v0.46 with versions <=v0.46.6 to the latest v0.46.7 correct state.
    • if your chain is on a previous version <= v0.45, then simply use v0.46.7 when upgrading to v0.46.

    NOTE: The changes mentioned in v0.46.3 are no longer required. The following replace directive can be removed from the chains.

    # Can be deleted from go.mod
    replace github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0
    

    Instead, github.com/confio/ics23/go must be bumped to v0.9.0.

    Please see the CHANGELOG for an exhaustive list of changes.

    Full Commit History: https://github.com/cosmos/cosmos-sdk/compare/v0.46.6...v0.46.7

    v0.46.6

    Cosmos SDK v0.46.6 Release Notes

    This release introduces small bug fixes and improvements.

    Please read the release notes of v0.46.5 if you are upgrading from <=0.46.4.

    Please see the CHANGELOG for an exhaustive list of changes.

    Full Commit History: https://github.com/cosmos/cosmos-sdk/compare/v0.46.5...v0.46.6

    NOTE: The changes mentioned in v0.46.3 are still required:

    # Chains must add the following to their go.mod for the application:
    replace github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0
    

    v0.46.5

    Cosmos SDK v0.46.5 Release Notes

    This release introduces a number of serious bug fixes and improvements. Notably, an upgrade to Tendermint v0.34.23.

    If you are planning to migrate to v0.46, please use v0.46.5. All releases prior to v0.46.5 are retracted and must NOT be used (go get directly upgrades the SDK version to >= v0.46.5 thanks to the retraction, current builds are not affected).

    ... (truncated)

    Changelog

    Sourced from github.com/cosmos/cosmos-sdk's changelog.

    v0.46.7 - 2022-12-13

    Features

    • (client) #14051 Add --grpc client option.

    Improvements

    • (deps) Bump Tendermint version to v0.34.24.
    • #13651 Update server/config/config.GetConfig function.
    • #14175 Add server.DefaultBaseappOptions(appopts) function to reduce boiler plate in root.go.

    State Machine Breaking

    • (x/gov) #14214 Fix gov v0.46 migration to v1 votes.
      • Also provide a helper function govv046.Migrate_V0466_To_V0467 for migrating a chain already on v0.46 with versions <=v0.46.6 to the latest v0.46.7 correct state.
    • (x/group) #14071 Don't re-tally proposal after voting period end if they have been marked as ACCEPTED or REJECTED.

    API Breaking Changes

    • (store) #13516 Update State Streaming APIs:
      • Add method ListenCommit to ABCIListener
      • Move ListeningEnabled and AddListener methods to CommitMultiStore
      • Remove CacheWrapWithListeners from CacheWrap and CacheWrapper interfaces
      • Remove listening APIs from the caching layer (it should only listen to the rootmulti.Store)
      • Add three new options to file streaming service constructor.
      • Modify ABCIListener such that any error from any method will always halt the app via panic
    • (store) #13529 Add method LatestVersion to MultiStore interface, add method SetQueryMultiStore to baesapp to support alternative MultiStore implementation for query service.

    Bug Fixes

    • (baseapp) #13983 Don't emit duplicate ante-handler events when a post-handler is defined.
    • (baseapp) #14049 Fix state sync when interval is zero.
    • (store) #13516 Fix state listener that was observing writes at wrong time.

    v0.46.6 - 2022-11-18

    Improvements

    • (config) #13894 Support state streaming configuration in app.toml template and default configuration.

    Bug Fixes

    • (x/gov) #13918 Fix propagation of message errors when executing a proposal.

    v0.46.5 - 2022-11-17

    Features

    • (x/bank) #13891 Provide a helper function Migrate_V0464_To_V0465 for migrating a chain already on v0.46 with versions <=v0.46.4 to the latest v0.46.5 correct state.

    ... (truncated)

    Commits

    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)
A decentralized vinyl marketplace demo built with Go, Cosmos SDK and Starport

emusicchain emusicchain is a blockchain built using Cosmos SDK and Tendermint and created with Starport. Get started starport chain serve serve comma

Dec 5, 2021
Building block for mobile money api clients

base the base code for creating mobile money api clients using golang build request request := NewRequestBuilder("login request", http.MethodPost, "ht

Jan 4, 2022
Ant Chain CAFECMDB SDK for Go

English | 简体中文 Ant Chain CAFECMDB SDK for Go Requirements It's necessary for you to make sure your system have installed Go environment which version

Dec 2, 2021
Ant Chain COMMERCIALEXTERNAL SDK for Go

English | 简体中文 Ant Chain COMMERCIALEXTERNAL SDK for Go Requirements It's necessa

Dec 24, 2021
Account - Ant Chain ACCOUNT SDK for Go

English | 简体中文 Ant Chain ACCOUNT SDK for Go Requirements It's necessary for you

Jan 13, 2022
🛠 A Go SDK for building applications on top of Uniswap V3

?? A Go SDK for building applications on top of Uniswap V3

Jan 1, 2023
This program performs stress testing for the Cosmos module

Cosmos Modules Testing Program ?? Overview This program performs stress testing for the Cosmos module. Support: Liquidity , IBC transfer Note: Require

May 25, 2022
A go sdk for baidu netdisk open platform 百度网盘开放平台 Go SDK

Pan Go Sdk 该代码库为百度网盘开放平台Go语言的SDK

Nov 22, 2022
Nextengine-sdk-go: the NextEngine SDK for the Go programming language

NextEngine SDK for Go nextengine-sdk-go is the NextEngine SDK for the Go programming language. Getting Started Install go get github.com/takaaki-s/nex

Dec 7, 2021
Commercetools-go-sdk is fork of original commercetools-go-sdk

commercetools-go-sdk The Commercetools Go SDK is automatically generated based on the official API specifications of Commercetools. It should therefor

Dec 13, 2021
Sdk-go - Go version of the Synapse SDK

synapsesdk-go Synapse Protocol's Go SDK. Currently in super duper alpha, do not

Jan 7, 2022
Redash-go-sdk - An SDK for the programmatic management of Redash, in Go
Redash-go-sdk - An SDK for the programmatic management of Redash, in Go

Redash Go SDK An SDK for the programmatic management of Redash. The main compone

Dec 13, 2022
Go clients for the Metaplex Solana programs

metaplex-go A suite of Go clients for the 5 metaplex contracts. This is an alpha version. For usage examples, you can get inspired by their Rust/Types

Nov 25, 2022
Example code to demonstrate how to mock external clients via context.Context

Mocking external client libraries using context.Context This code is paired with a blog post: Mocking external client libraries using context.Context

Nov 6, 2022
A Binance Chain vanity address generator written in golang

BNC Chain Go SDK The Binance Chain GO SDK provides a thin wrapper around the BNC Chain API for readonly endpoints, in addition to creating and submitt

Dec 31, 2022
ShenYu Client SDK fo golang.

shenyu-client-golang 中文 Shenyu-client-golang Shenyu-client-golang for Go client allows you to access ShenYu Gateway,it supports registory go service t

Oct 25, 2022
Chain Name System

Chain Name Service (CNS) The CNS module is a new Cosmos SDK module that allows Cosmos addresses to purchase, sell, and administer chain names. Why Cos

Nov 16, 2022
MinIO Client SDK for Go

MinIO Go Client SDK for Amazon S3 Compatible Cloud Storage The MinIO Go Client SDK provides simple APIs to access any Amazon S3 compatible object stor

Dec 29, 2022
The MinIO Admin Go Client SDK provides APIs to manage MinIO services

Golang Admin Client API Reference The MinIO Admin Golang Client SDK provides APIs to manage MinIO services. This quickstart guide will show you how to

Dec 30, 2022