Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Make testing suite to ensure queries never alter state #3001

Merged
merged 16 commits into from
Oct 25, 2022

Conversation

hieuvubk
Copy link
Contributor

Closes: #2457

Brief Changelog

Create a func in apptesting to make sure state not change after query.
Create test in modules/client

Testing and Verifying

Added new test
All test passed

app/apptesting/test_suite.go Outdated Show resolved Hide resolved
"Query current epoch",
func() {
res, err := s.queryClient.CurrentEpoch(gocontext.Background(), &types.QueryCurrentEpochRequest{Identifier: "weekly"})
fmt.Println(res)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
fmt.Println(res)

{
"Query current epoch",
func() {
res, err := s.queryClient.CurrentEpoch(gocontext.Background(), &types.QueryCurrentEpochRequest{Identifier: "weekly"})
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Let's try to avoid these callbacks in table-driven test cases if possible please. While this test case is not complex, for bigger test cases this pattern becomes confusing. I think having a completely separate test fixture is preferable to avoid encouraging this style.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know it's a lot to refactor so I discussed this with Matt, and he agrees with the suggestion to split it up if possible, please

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So should split each query into a separate test function?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid table-driven callbacks, I think there is another way to use queryClient.cc.Invoke and pass query path, request,...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that sounds reasonable. Do you mind changing one test to see how it compares?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, changed on epochs

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, IMO the epoch change looks good.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, I'll apply it to other modules

@p0mvn
Copy link
Member

p0mvn commented Oct 14, 2022

@hieuvubk thanks for the change. Please apply a state-compatibility label. These start with "V:"

@hieuvubk hieuvubk added the V:state/compatible/backport State machine compatible PR, should be backported label Oct 17, 2022
@hieuvubk hieuvubk requested a review from p0mvn October 17, 2022 10:34
Copy link
Member

@p0mvn p0mvn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

I have some points of concern but IMO we can address them separately:

  • Difficult to maintain hard-coded proto paths (I've thought about this after we discussed the approach)
  • We rely upon that export genesis being correct and exporting all states. I think that the app hash verification approach might be more accurate

@p0mvn p0mvn requested review from czarcas7ic and mattverse October 18, 2022 16:51
Copy link
Member

@czarcas7ic czarcas7ic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed with @p0mvn assessment in terms of reliance on ExportGenesis. For now I think using exportGenesis is "good enough", but has been known to contain issues in terms of not exporting the right thing. We should both:

  1. Audit exportGenesis code for all modules and
  2. Look into utilizing appHash instead of exportGenesis comparison

Nice work on this though! 😄

@hieuvubk
Copy link
Contributor Author

Agreed with @p0mvn assessment in terms of reliance on ExportGenesis. For now I think using exportGenesis is "good enough", but has been known to contain issues in terms of not exporting the right thing. We should both:

  1. Audit exportGenesis code for all modules and
  2. Look into utilizing appHash instead of exportGenesis comparison

Nice work on this though! 😄

Thank you, will create an issue about it

@p0mvn
Copy link
Member

p0mvn commented Oct 24, 2022

Hi @hieuvubk . Thanks for the great work here. Can you please link the newly created issue once it is ready?

I would like to merge this only after we track future work to avoid getting anything missed

@hieuvubk
Copy link
Contributor Author

Hi @hieuvubk . Thanks for the great work here. Can you please link the newly created issue once it is ready?

I would like to merge this only after we track future work to avoid getting anything missed

Thank you, I have created 2 separate issues so that we can easily track and discuss them in the future.

@p0mvn
Copy link
Member

p0mvn commented Oct 25, 2022

Awesome, thanks!

@p0mvn
Copy link
Member

p0mvn commented Oct 25, 2022

discussed with @czarcas7ic and this looks good, going to continue improving on the approach in the created issues

@p0mvn p0mvn merged commit 2ce796c into main Oct 25, 2022
@p0mvn p0mvn deleted the check_queries_alter_state branch October 25, 2022 00:29
mergify bot pushed a commit that referenced this pull request Oct 25, 2022
* create func to check alter state

* add tests

* format

* Update app/apptesting/test_suite.go

Co-authored-by: Roman <[email protected]>

* remove fmt

* epochs: try to use Invoke

* gamm: use Invoke

* incentives: use Invoke

* lockup: use Invoke

* mint: use Invoke

* pool-incentives: use Invoke

* superfluid: use Invoke

* tokenfactory

* txfees

* format

* fix

Co-authored-by: Roman <[email protected]>
(cherry picked from commit 2ce796c)
p0mvn added a commit that referenced this pull request Oct 25, 2022
* Add servers to openapi spec file (#2980)

* Chain.schema.json: Added ibc data, fix genesis name, formatting (#3077)

Closes: #XXX

## What is the purpose of the change

> Add a description of the overall background and high level changes that this PR introduces

*(E.g.: This pull request improves documation of area A by adding ....*

To update the chain schema codebase data. This file Auto-updates the chain registry.


## Brief Changelog

*(for example:)*
 
  - *The metadata is stored in the blob store on job creation time as a persistent artifact*
  - *Deployments RPC transmits only the blob storage reference*
  - *Daemons retrieve the RPC data from the blob cache*

Added ibc data (ibc go version and enabled features(ics-20),
fix genesis name, (was version number before, now goes by name)
minor formatting chg.


## Testing and Verifying

*(Please pick one of the following options)*

--> This change is a trivial rework / code cleanup without any test coverage.

*(or)*

This change is already covered by existing tests, such as *(please describe tests)*.

*(or)*

This change added tests and can be verified as follows:

*(example:)*
  - *Added unit test that validates ...*
  - *Added integration tests for end-to-end deployment with ...*
  - *Extended integration test for ...*
  - *Manually verified the change by ...*

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (yes / no) No
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (yes / no) No
  - How is the feature or change documented? (not applicable   /   specification (`x/<module>/spec/`)  /  [Osmosis docs repo](https://github.com/osmosis-labs/docs)   /   not documented) not documented

* labels (#3082)

* [x/gamm][stableswap]: Expand inverse relation tests to multi assets and add scaling factors (#3006)

* expand inverse relation tests to multi assets and add scaling factors

* tighten binary search bounds to fit spec

* remove todo

* Fix sped

* move output negation to caller

Co-authored-by: Dev Ojha <[email protected]>

* remove all uses of two-asset binary search solver (#3084)

* [stableswap]: Implement simplified direct multi-asset CFMM solver (#3068)

Closes: #2730

## What is the purpose of the change

This PR implements a direct solver for our multi-asset CFMM. Similar to our two-asset direct solver, it is intended to be kept in our codebase as a reference implementation and proof for our CFMM but is outclassed by our binary search solver for practical use.

## Brief Changelog

- Implement direct multi-asset solver and test it against our full suite of CFMM cases

## Testing and Verifying

- The solver implementation is tested against our full multi-asset CFMM test suite in `amm_test.go`

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (no)
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (no)
  - How is the feature or change documented? (not documented)

* refactor: remove PokePool from the PoolI interface, define on extension instead (#3035)

* refactor: remove PokePool from the PoolI interface, use extension instead

* changelog

* fix weights bug

* Update x/gamm/keeper/pool_test.go

Co-authored-by: Matt, Park <[email protected]>

* Update x/gamm/keeper/pool_test.go

* address comments

Co-authored-by: Matt, Park <[email protected]>

* ci(CL): run tests on CL branch and add backport config (#3095)

* ci(CL): run tests on CL branch and add backport config

* Update .github/mergify.yml

* After create pool test (#2783)

* add test for afterCreatePool

* format

* add test to check trackChangePool

Co-authored-by: Matt, Park <[email protected]>

* fix GetModuleToDistributeCoins (#2957)

* update comment in gamm module (#3103)

* chore(deps): Bump github.com/tendermint/tendermint (#3106)

Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.21 to 0.34.22.
- [Release notes](https://github.com/tendermint/tendermint/releases)
- [Changelog](https://github.com/tendermint/tendermint/blob/main/CHANGELOG.md)
- [Commits](tendermint/tendermint@v0.34.21...v0.34.22)

---
updated-dependencies:
- dependency-name: github.com/tendermint/tendermint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/golangci/golangci-lint (#3104)

Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.50.0 to 1.50.1.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](golangci/golangci-lint@v1.50.0...v1.50.1)

---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#3105)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](stretchr/testify@v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: update concentrated liquidity backport label (#3115)

* feat(osmomath): log2 approximation (#2788)

* feat: osmomath log2 approximation

* lint

* fix comment

* comment

* Update osmomath/decimal.go

* improve accuracy with narrower range

* comment

* implement and test precise log for x >= 1

* tests for negative values

* make non-mutative and test

* bench

* changelog

* remove redundant assignments

* improve comments

* [stableswap]: Cap number of assets and post-scaled asset amounts to ensure pools never overflow (#3055)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* Remove unused versions in mergify (#3121)

* Query lockup params (#3098)

* change proto

* add grpc & cli query

* test

* set params in genesis

* add test case: setParams & query

* CI: Delete failing step (#3124)

* Delete failing step

* Fix int overflow in test logic

* [x/gamm][stableswap]: Add inverse join/exit tests, fix single asset join bug, and remove uneven ratio joins (#3102)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* fix single join bug, remove uneven ratio joins, and add inverse join tests

* add error checks to single asset joins

* fix mistake in test case

* remove commented line

Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>

* Stableswap implement JoinPoolNoSwap (#2942)

* ...

* add tests and denom validation check

* make format

Co-authored-by: alpo <[email protected]>
Co-authored-by: alpo <[email protected]>

* Make testing suite to ensure queries never alter state (#3001)

* create func to check alter state

* add tests

* format

* Update app/apptesting/test_suite.go

Co-authored-by: Roman <[email protected]>

* remove fmt

* epochs: try to use Invoke

* gamm: use Invoke

* incentives: use Invoke

* lockup: use Invoke

* mint: use Invoke

* pool-incentives: use Invoke

* superfluid: use Invoke

* tokenfactory

* txfees

* format

* fix

Co-authored-by: Roman <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Daniel Farina <[email protected]>
Co-authored-by: JeremyParish69 <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: alpo <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Roman <[email protected]>
Co-authored-by: Hieu Vu <[email protected]>
Co-authored-by: khanh-notional <[email protected]>
Co-authored-by: Nguyen Thanh Nhan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Niccolo Raspa <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: alpo <[email protected]>
p0mvn added a commit that referenced this pull request Oct 25, 2022
* concentrated liquidity: further swap/lp work (#3101)

* further swap generalization

* add step and swap state

* Update test.yml

* Update test.yml

* Further generalize swaps and lp (#3111)

* Change sqrt to caller

* Remove margin of error from mint

* Change Pool to have dec curr price

* Remove swap structs

* Adams comments

* address code review comments

* final additions

* address code review comments

* code review

Co-authored-by: Matt, Park <[email protected]>

* updates (#3119)

Co-authored-by: Roman <[email protected]>

* refactor(CL): move multihop to swap router, wire to concentrated liquidity module (#3128)

* feat/refactor(CL): move multihop to swaprouter, connect to concentrated liquidity

* comments

* godoc for RouteExactAmountOut

* link issues

* delete multihop_test.go

* Update x/swaprouter/router_test.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/swaprouter/router_test.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/pool.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/gamm/keeper/swap.go

Co-authored-by: Adam Tucker <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>

* Add state for Mint: tick and Position (#3136)

* WIP: tick

* Finish implementing

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Adam Tucker <[email protected]>

* Change to negative calculations

* Add comment

* Add getter in osmoutils

* Update osmoutils/store_helper.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/position.go

Co-authored-by: Adam Tucker <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>

* feat(CL): CreatePosition and WithdrawPosition messages (#3139)

* feat(CL): CreatePosition and WithdrawPosition messages

* lint

* docs(CL): `concentrated-liquidity` module spec pt1

* add tests for GetIfFound (#3145)

* add tests for GetIfFound

* refactor

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update test.yml (#3148)

* Merge main into concentrated-liquidity-main (#3149)

* Add servers to openapi spec file (#2980)

* Chain.schema.json: Added ibc data, fix genesis name, formatting (#3077)

Closes: #XXX

## What is the purpose of the change

> Add a description of the overall background and high level changes that this PR introduces

*(E.g.: This pull request improves documation of area A by adding ....*

To update the chain schema codebase data. This file Auto-updates the chain registry.


## Brief Changelog

*(for example:)*
 
  - *The metadata is stored in the blob store on job creation time as a persistent artifact*
  - *Deployments RPC transmits only the blob storage reference*
  - *Daemons retrieve the RPC data from the blob cache*

Added ibc data (ibc go version and enabled features(ics-20),
fix genesis name, (was version number before, now goes by name)
minor formatting chg.


## Testing and Verifying

*(Please pick one of the following options)*

--> This change is a trivial rework / code cleanup without any test coverage.

*(or)*

This change is already covered by existing tests, such as *(please describe tests)*.

*(or)*

This change added tests and can be verified as follows:

*(example:)*
  - *Added unit test that validates ...*
  - *Added integration tests for end-to-end deployment with ...*
  - *Extended integration test for ...*
  - *Manually verified the change by ...*

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (yes / no) No
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (yes / no) No
  - How is the feature or change documented? (not applicable   /   specification (`x/<module>/spec/`)  /  [Osmosis docs repo](https://github.com/osmosis-labs/docs)   /   not documented) not documented

* labels (#3082)

* [x/gamm][stableswap]: Expand inverse relation tests to multi assets and add scaling factors (#3006)

* expand inverse relation tests to multi assets and add scaling factors

* tighten binary search bounds to fit spec

* remove todo

* Fix sped

* move output negation to caller

Co-authored-by: Dev Ojha <[email protected]>

* remove all uses of two-asset binary search solver (#3084)

* [stableswap]: Implement simplified direct multi-asset CFMM solver (#3068)

Closes: #2730

## What is the purpose of the change

This PR implements a direct solver for our multi-asset CFMM. Similar to our two-asset direct solver, it is intended to be kept in our codebase as a reference implementation and proof for our CFMM but is outclassed by our binary search solver for practical use.

## Brief Changelog

- Implement direct multi-asset solver and test it against our full suite of CFMM cases

## Testing and Verifying

- The solver implementation is tested against our full multi-asset CFMM test suite in `amm_test.go`

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (no)
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (no)
  - How is the feature or change documented? (not documented)

* refactor: remove PokePool from the PoolI interface, define on extension instead (#3035)

* refactor: remove PokePool from the PoolI interface, use extension instead

* changelog

* fix weights bug

* Update x/gamm/keeper/pool_test.go

Co-authored-by: Matt, Park <[email protected]>

* Update x/gamm/keeper/pool_test.go

* address comments

Co-authored-by: Matt, Park <[email protected]>

* ci(CL): run tests on CL branch and add backport config (#3095)

* ci(CL): run tests on CL branch and add backport config

* Update .github/mergify.yml

* After create pool test (#2783)

* add test for afterCreatePool

* format

* add test to check trackChangePool

Co-authored-by: Matt, Park <[email protected]>

* fix GetModuleToDistributeCoins (#2957)

* update comment in gamm module (#3103)

* chore(deps): Bump github.com/tendermint/tendermint (#3106)

Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.21 to 0.34.22.
- [Release notes](https://github.com/tendermint/tendermint/releases)
- [Changelog](https://github.com/tendermint/tendermint/blob/main/CHANGELOG.md)
- [Commits](tendermint/tendermint@v0.34.21...v0.34.22)

---
updated-dependencies:
- dependency-name: github.com/tendermint/tendermint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/golangci/golangci-lint (#3104)

Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.50.0 to 1.50.1.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](golangci/golangci-lint@v1.50.0...v1.50.1)

---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#3105)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](stretchr/testify@v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: update concentrated liquidity backport label (#3115)

* feat(osmomath): log2 approximation (#2788)

* feat: osmomath log2 approximation

* lint

* fix comment

* comment

* Update osmomath/decimal.go

* improve accuracy with narrower range

* comment

* implement and test precise log for x >= 1

* tests for negative values

* make non-mutative and test

* bench

* changelog

* remove redundant assignments

* improve comments

* [stableswap]: Cap number of assets and post-scaled asset amounts to ensure pools never overflow (#3055)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* Remove unused versions in mergify (#3121)

* Query lockup params (#3098)

* change proto

* add grpc & cli query

* test

* set params in genesis

* add test case: setParams & query

* CI: Delete failing step (#3124)

* Delete failing step

* Fix int overflow in test logic

* [x/gamm][stableswap]: Add inverse join/exit tests, fix single asset join bug, and remove uneven ratio joins (#3102)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* fix single join bug, remove uneven ratio joins, and add inverse join tests

* add error checks to single asset joins

* fix mistake in test case

* remove commented line

Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>

* Stableswap implement JoinPoolNoSwap (#2942)

* ...

* add tests and denom validation check

* make format

Co-authored-by: alpo <[email protected]>
Co-authored-by: alpo <[email protected]>

* Make testing suite to ensure queries never alter state (#3001)

* create func to check alter state

* add tests

* format

* Update app/apptesting/test_suite.go

Co-authored-by: Roman <[email protected]>

* remove fmt

* epochs: try to use Invoke

* gamm: use Invoke

* incentives: use Invoke

* lockup: use Invoke

* mint: use Invoke

* pool-incentives: use Invoke

* superfluid: use Invoke

* tokenfactory

* txfees

* format

* fix

Co-authored-by: Roman <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Daniel Farina <[email protected]>
Co-authored-by: JeremyParish69 <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: alpo <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Roman <[email protected]>
Co-authored-by: Hieu Vu <[email protected]>
Co-authored-by: khanh-notional <[email protected]>
Co-authored-by: Nguyen Thanh Nhan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Niccolo Raspa <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: alpo <[email protected]>

* Update contracts.yml (#3150)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: Matt, Park <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Hieu Vu <[email protected]>
Co-authored-by: Daniel Farina <[email protected]>
Co-authored-by: JeremyParish69 <[email protected]>
Co-authored-by: alpo <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: khanh-notional <[email protected]>
Co-authored-by: Nguyen Thanh Nhan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Niccolo Raspa <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: alpo <[email protected]>
pysel pushed a commit to pysel/osmosis that referenced this pull request Nov 1, 2022
…3001)

* create func to check alter state

* add tests

* format

* Update app/apptesting/test_suite.go

Co-authored-by: Roman <[email protected]>

* remove fmt

* epochs: try to use Invoke

* gamm: use Invoke

* incentives: use Invoke

* lockup: use Invoke

* mint: use Invoke

* pool-incentives: use Invoke

* superfluid: use Invoke

* tokenfactory

* txfees

* format

* fix

Co-authored-by: Roman <[email protected]>
pysel pushed a commit to pysel/osmosis that referenced this pull request Nov 2, 2022
* Add servers to openapi spec file (osmosis-labs#2980)

* Chain.schema.json: Added ibc data, fix genesis name, formatting (osmosis-labs#3077)

Closes: #XXX

## What is the purpose of the change

> Add a description of the overall background and high level changes that this PR introduces

*(E.g.: This pull request improves documation of area A by adding ....*

To update the chain schema codebase data. This file Auto-updates the chain registry.


## Brief Changelog

*(for example:)*
 
  - *The metadata is stored in the blob store on job creation time as a persistent artifact*
  - *Deployments RPC transmits only the blob storage reference*
  - *Daemons retrieve the RPC data from the blob cache*

Added ibc data (ibc go version and enabled features(ics-20),
fix genesis name, (was version number before, now goes by name)
minor formatting chg.


## Testing and Verifying

*(Please pick one of the following options)*

--> This change is a trivial rework / code cleanup without any test coverage.

*(or)*

This change is already covered by existing tests, such as *(please describe tests)*.

*(or)*

This change added tests and can be verified as follows:

*(example:)*
  - *Added unit test that validates ...*
  - *Added integration tests for end-to-end deployment with ...*
  - *Extended integration test for ...*
  - *Manually verified the change by ...*

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (yes / no) No
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (yes / no) No
  - How is the feature or change documented? (not applicable   /   specification (`x/<module>/spec/`)  /  [Osmosis docs repo](https://github.com/osmosis-labs/docs)   /   not documented) not documented

* labels (osmosis-labs#3082)

* [x/gamm][stableswap]: Expand inverse relation tests to multi assets and add scaling factors (osmosis-labs#3006)

* expand inverse relation tests to multi assets and add scaling factors

* tighten binary search bounds to fit spec

* remove todo

* Fix sped

* move output negation to caller

Co-authored-by: Dev Ojha <[email protected]>

* remove all uses of two-asset binary search solver (osmosis-labs#3084)

* [stableswap]: Implement simplified direct multi-asset CFMM solver (osmosis-labs#3068)

Closes: osmosis-labs#2730

## What is the purpose of the change

This PR implements a direct solver for our multi-asset CFMM. Similar to our two-asset direct solver, it is intended to be kept in our codebase as a reference implementation and proof for our CFMM but is outclassed by our binary search solver for practical use.

## Brief Changelog

- Implement direct multi-asset solver and test it against our full suite of CFMM cases

## Testing and Verifying

- The solver implementation is tested against our full multi-asset CFMM test suite in `amm_test.go`

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (no)
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (no)
  - How is the feature or change documented? (not documented)

* refactor: remove PokePool from the PoolI interface, define on extension instead (osmosis-labs#3035)

* refactor: remove PokePool from the PoolI interface, use extension instead

* changelog

* fix weights bug

* Update x/gamm/keeper/pool_test.go

Co-authored-by: Matt, Park <[email protected]>

* Update x/gamm/keeper/pool_test.go

* address comments

Co-authored-by: Matt, Park <[email protected]>

* ci(CL): run tests on CL branch and add backport config (osmosis-labs#3095)

* ci(CL): run tests on CL branch and add backport config

* Update .github/mergify.yml

* After create pool test (osmosis-labs#2783)

* add test for afterCreatePool

* format

* add test to check trackChangePool

Co-authored-by: Matt, Park <[email protected]>

* fix GetModuleToDistributeCoins (osmosis-labs#2957)

* update comment in gamm module (osmosis-labs#3103)

* chore(deps): Bump github.com/tendermint/tendermint (osmosis-labs#3106)

Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.21 to 0.34.22.
- [Release notes](https://github.com/tendermint/tendermint/releases)
- [Changelog](https://github.com/tendermint/tendermint/blob/main/CHANGELOG.md)
- [Commits](tendermint/tendermint@v0.34.21...v0.34.22)

---
updated-dependencies:
- dependency-name: github.com/tendermint/tendermint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/golangci/golangci-lint (osmosis-labs#3104)

Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.50.0 to 1.50.1.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](golangci/golangci-lint@v1.50.0...v1.50.1)

---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (osmosis-labs#3105)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](stretchr/testify@v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: update concentrated liquidity backport label (osmosis-labs#3115)

* feat(osmomath): log2 approximation (osmosis-labs#2788)

* feat: osmomath log2 approximation

* lint

* fix comment

* comment

* Update osmomath/decimal.go

* improve accuracy with narrower range

* comment

* implement and test precise log for x >= 1

* tests for negative values

* make non-mutative and test

* bench

* changelog

* remove redundant assignments

* improve comments

* [stableswap]: Cap number of assets and post-scaled asset amounts to ensure pools never overflow (osmosis-labs#3055)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* Remove unused versions in mergify (osmosis-labs#3121)

* Query lockup params (osmosis-labs#3098)

* change proto

* add grpc & cli query

* test

* set params in genesis

* add test case: setParams & query

* CI: Delete failing step (osmosis-labs#3124)

* Delete failing step

* Fix int overflow in test logic

* [x/gamm][stableswap]: Add inverse join/exit tests, fix single asset join bug, and remove uneven ratio joins (osmosis-labs#3102)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* fix single join bug, remove uneven ratio joins, and add inverse join tests

* add error checks to single asset joins

* fix mistake in test case

* remove commented line

Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>

* Stableswap implement JoinPoolNoSwap (osmosis-labs#2942)

* ...

* add tests and denom validation check

* make format

Co-authored-by: alpo <[email protected]>
Co-authored-by: alpo <[email protected]>

* Make testing suite to ensure queries never alter state (osmosis-labs#3001)

* create func to check alter state

* add tests

* format

* Update app/apptesting/test_suite.go

Co-authored-by: Roman <[email protected]>

* remove fmt

* epochs: try to use Invoke

* gamm: use Invoke

* incentives: use Invoke

* lockup: use Invoke

* mint: use Invoke

* pool-incentives: use Invoke

* superfluid: use Invoke

* tokenfactory

* txfees

* format

* fix

Co-authored-by: Roman <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Daniel Farina <[email protected]>
Co-authored-by: JeremyParish69 <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: alpo <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Roman <[email protected]>
Co-authored-by: Hieu Vu <[email protected]>
Co-authored-by: khanh-notional <[email protected]>
Co-authored-by: Nguyen Thanh Nhan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Niccolo Raspa <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: alpo <[email protected]>
mattverse added a commit that referenced this pull request Nov 2, 2022
* Add servers to openapi spec file (#2980)

* Chain.schema.json: Added ibc data, fix genesis name, formatting (#3077)

Closes: #XXX

## What is the purpose of the change

> Add a description of the overall background and high level changes that this PR introduces

*(E.g.: This pull request improves documation of area A by adding ....*

To update the chain schema codebase data. This file Auto-updates the chain registry.


## Brief Changelog

*(for example:)*
 
  - *The metadata is stored in the blob store on job creation time as a persistent artifact*
  - *Deployments RPC transmits only the blob storage reference*
  - *Daemons retrieve the RPC data from the blob cache*

Added ibc data (ibc go version and enabled features(ics-20),
fix genesis name, (was version number before, now goes by name)
minor formatting chg.


## Testing and Verifying

*(Please pick one of the following options)*

--> This change is a trivial rework / code cleanup without any test coverage.

*(or)*

This change is already covered by existing tests, such as *(please describe tests)*.

*(or)*

This change added tests and can be verified as follows:

*(example:)*
  - *Added unit test that validates ...*
  - *Added integration tests for end-to-end deployment with ...*
  - *Extended integration test for ...*
  - *Manually verified the change by ...*

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (yes / no) No
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (yes / no) No
  - How is the feature or change documented? (not applicable   /   specification (`x/<module>/spec/`)  /  [Osmosis docs repo](https://github.com/osmosis-labs/docs)   /   not documented) not documented

* labels (#3082)

* [x/gamm][stableswap]: Expand inverse relation tests to multi assets and add scaling factors (#3006)

* expand inverse relation tests to multi assets and add scaling factors

* tighten binary search bounds to fit spec

* remove todo

* Fix sped

* move output negation to caller

Co-authored-by: Dev Ojha <[email protected]>

* remove all uses of two-asset binary search solver (#3084)

* [stableswap]: Implement simplified direct multi-asset CFMM solver (#3068)

Closes: #2730

## What is the purpose of the change

This PR implements a direct solver for our multi-asset CFMM. Similar to our two-asset direct solver, it is intended to be kept in our codebase as a reference implementation and proof for our CFMM but is outclassed by our binary search solver for practical use.

## Brief Changelog

- Implement direct multi-asset solver and test it against our full suite of CFMM cases

## Testing and Verifying

- The solver implementation is tested against our full multi-asset CFMM test suite in `amm_test.go`

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (no)
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (no)
  - How is the feature or change documented? (not documented)

* refactor: remove PokePool from the PoolI interface, define on extension instead (#3035)

* refactor: remove PokePool from the PoolI interface, use extension instead

* changelog

* fix weights bug

* Update x/gamm/keeper/pool_test.go

Co-authored-by: Matt, Park <[email protected]>

* Update x/gamm/keeper/pool_test.go

* address comments

Co-authored-by: Matt, Park <[email protected]>

* ci(CL): run tests on CL branch and add backport config (#3095)

* ci(CL): run tests on CL branch and add backport config

* Update .github/mergify.yml

* After create pool test (#2783)

* add test for afterCreatePool

* format

* add test to check trackChangePool

Co-authored-by: Matt, Park <[email protected]>

* fix GetModuleToDistributeCoins (#2957)

* update comment in gamm module (#3103)

* chore(deps): Bump github.com/tendermint/tendermint (#3106)

Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.21 to 0.34.22.
- [Release notes](https://github.com/tendermint/tendermint/releases)
- [Changelog](https://github.com/tendermint/tendermint/blob/main/CHANGELOG.md)
- [Commits](tendermint/tendermint@v0.34.21...v0.34.22)

---
updated-dependencies:
- dependency-name: github.com/tendermint/tendermint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/golangci/golangci-lint (#3104)

Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.50.0 to 1.50.1.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](golangci/golangci-lint@v1.50.0...v1.50.1)

---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#3105)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](stretchr/testify@v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: update concentrated liquidity backport label (#3115)

* feat(osmomath): log2 approximation (#2788)

* feat: osmomath log2 approximation

* lint

* fix comment

* comment

* Update osmomath/decimal.go

* improve accuracy with narrower range

* comment

* implement and test precise log for x >= 1

* tests for negative values

* make non-mutative and test

* bench

* changelog

* remove redundant assignments

* improve comments

* [stableswap]: Cap number of assets and post-scaled asset amounts to ensure pools never overflow (#3055)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* Remove unused versions in mergify (#3121)

* Query lockup params (#3098)

* change proto

* add grpc & cli query

* test

* set params in genesis

* add test case: setParams & query

* CI: Delete failing step (#3124)

* Delete failing step

* Fix int overflow in test logic

* [x/gamm][stableswap]: Add inverse join/exit tests, fix single asset join bug, and remove uneven ratio joins (#3102)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* fix single join bug, remove uneven ratio joins, and add inverse join tests

* add error checks to single asset joins

* fix mistake in test case

* remove commented line

Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>

* Stableswap implement JoinPoolNoSwap (#2942)

* ...

* add tests and denom validation check

* make format

Co-authored-by: alpo <[email protected]>
Co-authored-by: alpo <[email protected]>

* Make testing suite to ensure queries never alter state (#3001)

* create func to check alter state

* add tests

* format

* Update app/apptesting/test_suite.go

Co-authored-by: Roman <[email protected]>

* remove fmt

* epochs: try to use Invoke

* gamm: use Invoke

* incentives: use Invoke

* lockup: use Invoke

* mint: use Invoke

* pool-incentives: use Invoke

* superfluid: use Invoke

* tokenfactory

* txfees

* format

* fix

Co-authored-by: Roman <[email protected]>

* Remove streamswap (#3146)

* remove proto files

* remove x/streamswap

* updated the contract to cosmwasm 1.1 and Uint256 for amounts (#2950)

* chore: use environment variable instead of build tags to control e2e (#3179)

* Rate limit - Cleaner tests (#3183)

* improved testing framework

* can test both send and recv for success and failure

* cleanner testing framework

* added contract instantiation

* working wasm integration

* added params for contract config

* extracted param registration

* active rate limiting

* calculating channel value

* cleaner tests

* fix issue with epochs

* fixed tests

* testing rate limit reset

* linting

* added receive middleware

* added test for non-configured channel

* make format

* Revert "make format"

This reverts commit 9ffdc37.

* only applying format to ibc-rate-limit

* applying fmt to app.go

* added gov_module and changed no-quota default to "allow all"

* added asymetric quotas

* moved getters to modules.go

* initial work to support multiple quotas

* added multiple quotas

* small fixes

* reordered imports

* added management messages

* reorganized management messages and experimenting with e2e testing

* commenting out test configuration test for now

* added query

* added flow unit test

* cleanup

* added AddChannel tests

* format

* test values are properly stored

* testing remove channel

* some more rate limiting tests

* moved tests about test setup to the right place

* fixed params

* merged main

* running gofumpt

* added ibc-rate-limiting contract

* added ibc-rate-limit middleware

* added chain integration and tests

* reverted change to match merged branch in main (#2341 instead of #2274)

* added cosmwasm workflow

* added a migrate message

* added some doc comments to the state

* added doc comments

* fixed dependency after merging osmosis-labs/cosmos-sdk#312

* added migration msg

* added workflow

* experimenting with better workflow

* added missing $

* using env

* Update x/ibc-rate-limit/contracts/rate-limiter/src/msg.rs

Co-authored-by: Dev Ojha <[email protected]>

* using stable for clippy

* removed gitkeep

* using the minimal profile for clippy

* experimenting with cache

* removed target from lints

* cleaner matrix?

* COmments & questions

* debugging

* more debugging

* debug faster

* quick cache debug

* typo

* quick workflow check

* working tests with optimization

* testing artifacts

* split the wasm target into its own step

* artifacts without slash

* full working tests

* clippy fixes

* workflow without test data checks and clippy fixes

* renamed CHANNEL_FLOWS

* renaming and code clenaup

* more renames

* renames and code fixes

* reordered imports

* cargo fmt

* added danom tracking

* cleanup

* refactoring

* changes to the expiration logic so that balances are calculated based on the direction (as suggested by @ValarDragon)

* slightly slower but considerably cleanner

* cleanup attributes and removed redundancy when not testing

* update to edition 2021

* added comments explaining the tests

* removed .beaker

* unified gitignore

* removed second gitignore

* better doc comments

* spelling

* spelling

* added channel value cache

* updated the middlware to use the new contract interface

* update middleware to match new contract interface

* added missing updates

* updated dependencies

* added missing helpers

* go.mod changes shouldn't be in this branch

* Revert "go.mod changes shouldn't be in this branch"

This reverts commit f8b972a.

* moved send and receive to sudo

* reorganizing

* calling the contract via sudo

* lint

* removed gitkeep

* using sudo instead of execute

* cleaned up and updated contract and integration

* updated x86 test wasm file

* fixed bad print

* storing and instantiating the contract

* setting up E2E tests for ibc rate limits

* fixed proposal. Now just have to get the math right and cleanup

* Using the supply for the channel value

* experimenting with e2e tests

* passing the contract keeper instead of instantiating it each time

* changes from code review

* added contract from main and changes to the middleware from code review

* using the correct bank supply method

* debugging issues with e2e tests. Everything works after one interaction from the cli, but not before

* updated dependency to match latest sdk form (now that the changes to this repo have been applied)

* working E2E test for rate limiting

* added e2e tests and changes from code review

* removed debug logs

* remove debug logs

* updated test to also use GetSupplyWithOffset

* using correct GetSupplyWithOffset method

* using correct GetSupplyWithOffset method

* lint

* removed e2e from this branch as it's not doing anything without the integration

* lint

* tests fail on CI because of "inactive" proposal. Is the deposit the issue?

* remove rate limiting after the test so it doesn't interfeer with the other tests

* using standard proposals instead of expedited

* added packet reverts on unsuccessful acks and timeouts

* lint

* ran gofumpt

* lint

* added undo to the contract

* integrating undo

* updated contract with x86 wasm file

* added undo for sent packages when they are rejected bia timeout or a bad ack

* added a readme

* markdown lint

* added readme

* abstracted params

* better params and param tests

* using a helper function instead of returning from the test

* updated contract to allow for undo

* added undo, readme, and cleanup based on reviews

* updated wasm file with x86 version

* using string params in e2e tests

* updated to v12

* removed unnecessary keeper

* only exposing what's needed

* refactoring

* updated types

* added shell history to gitignore

* adding only one wasm file to the codebase

* remove test for same wasm files. No longer needed.

* refactor based on code review

* removed integration tests as they won't pass without integration

* added params unit test

* reorganized tests

* reorganizing tests

* refactoring

* added address length limit

* added tests and fixed lack of return

* remove tests from bad merge

* remove from bad merge again

* comment

* test helpers for cosmwasm contracts

* added helpers for ibctesting

* comments

* removed unnecessary txConfig

* fixed typos

* clearer comment

* using second helper function for ExportGenesis

* added new wasm file

* updated the contract to cosmwasm 1.1 and Uint256 for amounts

* Fixed send with ibc assets. Better tests and error messages

* updated contract with x86 version

* gofumpt

* fixed clippy errors

* using the escrowed value as the channel value for native tokens

* gofumpt

* update fail string

* initial experiments with moving the calculations into the contract

* initial experiments with using the packet inside the contract

* improved tests. Experiments with packet in the contract.

* original contract

* cleaner tests

* more test cleanup

* cleaner tests

* cleanup

* align values from the tests and the contract

* fixed amounts for receive and cleanup code

* removed redundant wrapping logic

* adaped failed send test to the new testing abstractions

* only manipulate time on chain A

* remove commented out block

* changed lints to stable so they change less often

* gofumpt

* update channel value tests

* added x86 version of the contract for ci

* remove lint type that doesn't exist on stable

Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>

* changed lints to stable so they change less often (#3184)

* update version numbers (#3168)

* update version numbers

added "v" in recommended_version number to unify with chain registry

* Update chain.schema.json

Co-authored-by: Dev Ojha <[email protected]>

Co-authored-by: Dev Ojha <[email protected]>

* chore(deps): Bump github.com/spf13/cobra from 1.6.0 to 1.6.1 (#3187)

Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](spf13/cobra@v1.6.0...v1.6.1)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/mattn/go-sqlite3 from 1.14.15 to 1.14.16 (#3186)

Bumps [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) from 1.14.15 to 1.14.16.
- [Release notes](https://github.com/mattn/go-sqlite3/releases)
- [Commits](mattn/go-sqlite3@v1.14.15...v1.14.16)

---
updated-dependencies:
- dependency-name: github.com/mattn/go-sqlite3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(e2e): add vscode debug configurations (#3180)

* osmomath(log/CL): ln(x), log_1.0001(x), log_custom(x) (#3169)

* natural logarithm

* tick log

* save

* save

* customBase

* logs

Co-authored-by: Ruslan Akhtariev <[email protected]>

* feat(release): Automated post-upgrade tasks by code generating upgrade handler and auto-increasing e2e version (#3100)

* automate post-upgrade tasks by code generating upgrade handler and setting e2e in makefile

* automate post-upgrade tasks by code generating upgrade handler and setting e2e in makefile

* save

* save

* save

* yaml

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* docs

* save

* also changes app.go

* also changes app.go

* also changes app.go

* test using ci because will run forever on m1 with qemu

* save

* post release action

* post release github action

* auto postrelease action

* cleanup

* cleanup

* cleanup

* del

* docs

* major

* save

* save

* save

* Save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* s

* s

* s

* s

* s

* only on major upgrades

* docs

Co-authored-by: Ruslan Akhtariev <[email protected]>

* chore: Tx post-handler example snippet #3194

* Progress on IBC rate limit spec (#3190)

* Progress on IBC rate limit spec

* Fix CI

* Fix lints

* More updates

* fix mdlinter

* More notes

* one more todo

* More README update

* Update x/ibc-rate-limit/README.md

Co-authored-by: Adam Tucker <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>

* fix(e2e): various e2e build issues breaking debugging on linux amd64 (#3207)

* fix(e2e): various e2e build issues breaking debugging on linux amd64

* fix test-e2e-debug

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Daniel Farina <[email protected]>
Co-authored-by: JeremyParish69 <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: alpo <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Matt, Park <[email protected]>
Co-authored-by: Hieu Vu <[email protected]>
Co-authored-by: khanh-notional <[email protected]>
Co-authored-by: Nguyen Thanh Nhan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Niccolo Raspa <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: alpo <[email protected]>
Co-authored-by: Nicolas Lara <[email protected]>
Co-authored-by: doggystylez <[email protected]>
Co-authored-by: Ruslan Akhtariev <[email protected]>
Co-authored-by: Ruslan Akhtariev <[email protected]>
Co-authored-by: Aleksandr Bezobchuk <[email protected]>
davidterpay pushed a commit that referenced this pull request Jan 9, 2023
#3963)

* refactor: remove PokePool from the PoolI interface, define on extension instead (backport #3035) (#3037)

* refactor(CL): TraditionalAmmInterface gamm refactor (#3038)

* refactor: remove PokePool from the PoolI interface, define on extension instead (backport #3035)

* refactor: implement TraditionalAmmInterface and refactor gamm

* Add PoolI Barebone to concententrated liquidity Moudle (#3040)

* Add BareBone

* Add barebone

* Moce to pool model packaage

* feat: calc pool methods and test stubs (#3047)

* swap cl

* remove upscaling

* godocs

* code review

* godoc

* correct logic for calc in and out

* remove debugging lines

* final comments

* add swap fee for pool test

* fee logic

* code review comments

Co-authored-by: Roman <[email protected]>

* Separate out concentrated liquidity as separate module (#3050)

* swap cl

* remove upscaling

* godocs

* code review

* godoc

* Seperate out concentrated liquidity as separate module

* correct logic for calc in and out

* remove debugging lines

* final comments

* add swap fee for pool test

* fee logic

Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: Roman <[email protected]>

* CL: remove exponentiation (#3056)

* CL: basic approx log (#3058)

* feat: osmomath log2 approximation

* lint

* fix comment

* comment

* Update osmomath/decimal.go

* hacky mod to make this work

Co-authored-by: Adam Tucker <[email protected]>

* Add basic pool state, Make outlines for JoinPool (#3057)

* Add pool state, basic outline for join pool

* Remove comment

* Fix lint

* change from code review

* feat(CL): swap router module (#3060)

* feat(CL): swap router module

* remove unused things

* Update x/swaprouter/types/params.go

* Update x/swaprouter/types/params.go

* Update proto/osmosis/swaprouter/v1beta1/genesis.proto

Co-authored-by: Matt, Park <[email protected]>

* regen proto

Co-authored-by: Matt, Park <[email protected]>

* feat(CL): swap router messages and wiring (#3070)

* feat(CL): swap router messages and wiring

* fix lint

* feat: adds tick price functions (#3072)

* adds tick price functions

* add no lint

* feat(CL): app wiring for concentrated liquidity module (#3071)

* feat(CL): app wiring for concentrated liquidity module

* lint

* field

* Add basic module wiring in app.go (#3076)

* Add basic modulew wiring in app.go

* Add genesis

* Change import name

* feat: further CL swap generalization (#3078)

* further swap generalizing

* code review changes

* Generalize Minting (#3081)

* Add Base layer for generalized minting

* Generalized swaps

* WIP: test refactor

* Finish refactoring existing testS

* Fix testS

* Fix lint

* feat(x/swaprouter, x/gamm): move swap messages from gamm to swaprouter (#3073)

* updates

* remove swap messages from gamm

* remove swap bindings

* fix CI and tests

* port cli tests

* add query proto comments

* clean up

* port msg_server_test.go

* port msgs_test.go

* try integrating swap messages

* lint

* attempt fixing e2e

* set params

* upgrade constants

* Update x/swaprouter/module/module.go

Co-authored-by: Matt, Park <[email protected]>

* swaprouter comment

Co-authored-by: Matt, Park <[email protected]>

* Add swaprouter store key (#3096)

* feat(CL): Support Next Tick (#3079)

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* Update x/concentrated-liquidity/tick_test.go

Co-authored-by: Matt, Park <[email protected]>

* Update x/concentrated-liquidity/tick.go

Co-authored-by: Matt, Park <[email protected]>

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* bez: updates

* Fix lint

Co-authored-by: Matt, Park <[email protected]>
Co-authored-by: mattverse <[email protected]>

* concentrated liquidity: further swap/lp work (#3101)

* further swap generalization

* add step and swap state

* Update test.yml

* Update test.yml

* Further generalize swaps and lp (#3111)

* Change sqrt to caller

* Remove margin of error from mint

* Change Pool to have dec curr price

* Remove swap structs

* Adams comments

* address code review comments

* final additions

* address code review comments

* code review

Co-authored-by: Matt, Park <[email protected]>

* updates (#3119)

Co-authored-by: Roman <[email protected]>

* refactor(CL): move multihop to swap router, wire to concentrated liquidity module (#3128)

* feat/refactor(CL): move multihop to swaprouter, connect to concentrated liquidity

* comments

* godoc for RouteExactAmountOut

* link issues

* delete multihop_test.go

* Update x/swaprouter/router_test.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/swaprouter/router_test.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/pool.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/gamm/keeper/swap.go

Co-authored-by: Adam Tucker <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>

* Add state for Mint: tick and Position (#3136)

* WIP: tick

* Finish implementing

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Adam Tucker <[email protected]>

* Change to negative calculations

* Add comment

* Add getter in osmoutils

* Update osmoutils/store_helper.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/position.go

Co-authored-by: Adam Tucker <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>

* feat(CL): CreatePosition and WithdrawPosition messages (#3139)

* feat(CL): CreatePosition and WithdrawPosition messages

* lint

* add tests for GetIfFound (#3145)

* add tests for GetIfFound

* refactor

* Update test.yml (#3148)

* Merge main into concentrated-liquidity-main (#3149)

* Add servers to openapi spec file (#2980)

* Chain.schema.json: Added ibc data, fix genesis name, formatting (#3077)

Closes: #XXX

## What is the purpose of the change

> Add a description of the overall background and high level changes that this PR introduces

*(E.g.: This pull request improves documation of area A by adding ....*

To update the chain schema codebase data. This file Auto-updates the chain registry.


## Brief Changelog

*(for example:)*
 
  - *The metadata is stored in the blob store on job creation time as a persistent artifact*
  - *Deployments RPC transmits only the blob storage reference*
  - *Daemons retrieve the RPC data from the blob cache*

Added ibc data (ibc go version and enabled features(ics-20),
fix genesis name, (was version number before, now goes by name)
minor formatting chg.


## Testing and Verifying

*(Please pick one of the following options)*

--> This change is a trivial rework / code cleanup without any test coverage.

*(or)*

This change is already covered by existing tests, such as *(please describe tests)*.

*(or)*

This change added tests and can be verified as follows:

*(example:)*
  - *Added unit test that validates ...*
  - *Added integration tests for end-to-end deployment with ...*
  - *Extended integration test for ...*
  - *Manually verified the change by ...*

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (yes / no) No
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (yes / no) No
  - How is the feature or change documented? (not applicable   /   specification (`x/<module>/spec/`)  /  [Osmosis docs repo](https://github.com/osmosis-labs/docs)   /   not documented) not documented

* labels (#3082)

* [x/gamm][stableswap]: Expand inverse relation tests to multi assets and add scaling factors (#3006)

* expand inverse relation tests to multi assets and add scaling factors

* tighten binary search bounds to fit spec

* remove todo

* Fix sped

* move output negation to caller

Co-authored-by: Dev Ojha <[email protected]>

* remove all uses of two-asset binary search solver (#3084)

* [stableswap]: Implement simplified direct multi-asset CFMM solver (#3068)

Closes: #2730

## What is the purpose of the change

This PR implements a direct solver for our multi-asset CFMM. Similar to our two-asset direct solver, it is intended to be kept in our codebase as a reference implementation and proof for our CFMM but is outclassed by our binary search solver for practical use.

## Brief Changelog

- Implement direct multi-asset solver and test it against our full suite of CFMM cases

## Testing and Verifying

- The solver implementation is tested against our full multi-asset CFMM test suite in `amm_test.go`

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (no)
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (no)
  - How is the feature or change documented? (not documented)

* refactor: remove PokePool from the PoolI interface, define on extension instead (#3035)

* refactor: remove PokePool from the PoolI interface, use extension instead

* changelog

* fix weights bug

* Update x/gamm/keeper/pool_test.go

Co-authored-by: Matt, Park <[email protected]>

* Update x/gamm/keeper/pool_test.go

* address comments

Co-authored-by: Matt, Park <[email protected]>

* ci(CL): run tests on CL branch and add backport config (#3095)

* ci(CL): run tests on CL branch and add backport config

* Update .github/mergify.yml

* After create pool test (#2783)

* add test for afterCreatePool

* format

* add test to check trackChangePool

Co-authored-by: Matt, Park <[email protected]>

* fix GetModuleToDistributeCoins (#2957)

* update comment in gamm module (#3103)

* chore(deps): Bump github.com/tendermint/tendermint (#3106)

Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.21 to 0.34.22.
- [Release notes](https://github.com/tendermint/tendermint/releases)
- [Changelog](https://github.com/tendermint/tendermint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tendermint/tendermint/compare/v0.34.21...v0.34.22)

---
updated-dependencies:
- dependency-name: github.com/tendermint/tendermint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/golangci/golangci-lint (#3104)

Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.50.0 to 1.50.1.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/golangci/golangci-lint/compare/v1.50.0...v1.50.1)

---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#3105)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: update concentrated liquidity backport label (#3115)

* feat(osmomath): log2 approximation (#2788)

* feat: osmomath log2 approximation

* lint

* fix comment

* comment

* Update osmomath/decimal.go

* improve accuracy with narrower range

* comment

* implement and test precise log for x >= 1

* tests for negative values

* make non-mutative and test

* bench

* changelog

* remove redundant assignments

* improve comments

* [stableswap]: Cap number of assets and post-scaled asset amounts to ensure pools never overflow (#3055)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* Remove unused versions in mergify (#3121)

* Query lockup params (#3098)

* change proto

* add grpc & cli query

* test

* set params in genesis

* add test case: setParams & query

* CI: Delete failing step (#3124)

* Delete failing step

* Fix int overflow in test logic

* [x/gamm][stableswap]: Add inverse join/exit tests, fix single asset join bug, and remove uneven ratio joins (#3102)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* fix single join bug, remove uneven ratio joins, and add inverse join tests

* add error checks to single asset joins

* fix mistake in test case

* remove commented line

Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>

* Stableswap implement JoinPoolNoSwap (#2942)

* ...

* add tests and denom validation check

* make format

Co-authored-by: alpo <[email protected]>
Co-authored-by: alpo <[email protected]>

* Make testing suite to ensure queries never alter state (#3001)

* create func to check alter state

* add tests

* format

* Update app/apptesting/test_suite.go

Co-authored-by: Roman <[email protected]>

* remove fmt

* epochs: try to use Invoke

* gamm: use Invoke

* incentives: use Invoke

* lockup: use Invoke

* mint: use Invoke

* pool-incentives: use Invoke

* superfluid: use Invoke

* tokenfactory

* txfees

* format

* fix

Co-authored-by: Roman <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Daniel Farina <[email protected]>
Co-authored-by: JeremyParish69 <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: alpo <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Roman <[email protected]>
Co-authored-by: Hieu Vu <[email protected]>
Co-authored-by: khanh-notional <[email protected]>
Co-authored-by: Nguyen Thanh Nhan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Niccolo Raspa <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: alpo <[email protected]>

* Update contracts.yml (#3150)

* refactor/docs(CL): return liquidity from MsgCreatePosition and add ke… (#3141)

* refactor/docs(CL): return liquidity from MsgCreatePosition and add keeper specs

* updates

* lint

* change liquidity to dec and pass test

* Update x/concentrated-liquidity/msg_server.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/msg_server.go

Co-authored-by: Adam Tucker <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>

* feat: concentrated liquidity swap milestone 3 (#3137)

* initial push

* WIP: tick

* Finish implementing

* milestone 3

* fix

* address matt comment

* code review comments

Co-authored-by: mattverse <[email protected]>

* Remove default swap fees (#3152)

* feat: get liquidity from input amounts  (#3151)

* calc liquidity

* get liq from amounts fix

* lint

* fix

* fix

* fix

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Matt, Park <[email protected]>

* address matt comment

Co-authored-by: Matt, Park <[email protected]>

* Add logic for cross tick join position (#3158)

* Change `lte` to `zeroToOne` (#3163)

* Change lte to zeroToOne

* Fix testcases

* Add zerotoone

* chore: liq0/liq1 table driven test framework (#3161)

* add tdt

* address matt comment

* check tick init and add setup (#3171)

* chore: calc swap step table driven tests (#3167)

* calc swap step tdt

* lint

* chore: calcdelta0/calcdelta1 table drive test framework (#3162)

* calcdelta tests

* address matt comments

* lint

* chore: table driven test for next sqrt price0/1 (#3164)

* table driven test for next sqrt price

* test

* tdt for tick to price (#3165)

* wolfram calcs (#3173)

* Implement Swap logic for concentrated liquidity (#3177)

* initial push

* Add swap method

* Revert zeroForOne

* Fix test

Co-authored-by: Adam Tucker <[email protected]>

* Concentrated Liquidity: Fix Swap(CalcOutAmtGivenIn) (#3189)

* Add price limit

* Fix test cases, fix stuff

* Remove unsued code

* Fix lint

* Update x/concentrated-liquidity/pool.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/pool.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/pool_test.go

Co-authored-by: Adam Tucker <[email protected]>

* Adams review

Co-authored-by: Adam Tucker <[email protected]>

* chore(CL): merge `main` into `concentrated-liquidity-main` (#3211)

* Add servers to openapi spec file (#2980)

* Chain.schema.json: Added ibc data, fix genesis name, formatting (#3077)

Closes: #XXX

## What is the purpose of the change

> Add a description of the overall background and high level changes that this PR introduces

*(E.g.: This pull request improves documation of area A by adding ....*

To update the chain schema codebase data. This file Auto-updates the chain registry.


## Brief Changelog

*(for example:)*
 
  - *The metadata is stored in the blob store on job creation time as a persistent artifact*
  - *Deployments RPC transmits only the blob storage reference*
  - *Daemons retrieve the RPC data from the blob cache*

Added ibc data (ibc go version and enabled features(ics-20),
fix genesis name, (was version number before, now goes by name)
minor formatting chg.


## Testing and Verifying

*(Please pick one of the following options)*

--> This change is a trivial rework / code cleanup without any test coverage.

*(or)*

This change is already covered by existing tests, such as *(please describe tests)*.

*(or)*

This change added tests and can be verified as follows:

*(example:)*
  - *Added unit test that validates ...*
  - *Added integration tests for end-to-end deployment with ...*
  - *Extended integration test for ...*
  - *Manually verified the change by ...*

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (yes / no) No
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (yes / no) No
  - How is the feature or change documented? (not applicable   /   specification (`x/<module>/spec/`)  /  [Osmosis docs repo](https://github.com/osmosis-labs/docs)   /   not documented) not documented

* labels (#3082)

* [x/gamm][stableswap]: Expand inverse relation tests to multi assets and add scaling factors (#3006)

* expand inverse relation tests to multi assets and add scaling factors

* tighten binary search bounds to fit spec

* remove todo

* Fix sped

* move output negation to caller

Co-authored-by: Dev Ojha <[email protected]>

* remove all uses of two-asset binary search solver (#3084)

* [stableswap]: Implement simplified direct multi-asset CFMM solver (#3068)

Closes: #2730

## What is the purpose of the change

This PR implements a direct solver for our multi-asset CFMM. Similar to our two-asset direct solver, it is intended to be kept in our codebase as a reference implementation and proof for our CFMM but is outclassed by our binary search solver for practical use.

## Brief Changelog

- Implement direct multi-asset solver and test it against our full suite of CFMM cases

## Testing and Verifying

- The solver implementation is tested against our full multi-asset CFMM test suite in `amm_test.go`

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (no)
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (no)
  - How is the feature or change documented? (not documented)

* refactor: remove PokePool from the PoolI interface, define on extension instead (#3035)

* refactor: remove PokePool from the PoolI interface, use extension instead

* changelog

* fix weights bug

* Update x/gamm/keeper/pool_test.go

Co-authored-by: Matt, Park <[email protected]>

* Update x/gamm/keeper/pool_test.go

* address comments

Co-authored-by: Matt, Park <[email protected]>

* ci(CL): run tests on CL branch and add backport config (#3095)

* ci(CL): run tests on CL branch and add backport config

* Update .github/mergify.yml

* After create pool test (#2783)

* add test for afterCreatePool

* format

* add test to check trackChangePool

Co-authored-by: Matt, Park <[email protected]>

* fix GetModuleToDistributeCoins (#2957)

* update comment in gamm module (#3103)

* chore(deps): Bump github.com/tendermint/tendermint (#3106)

Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.21 to 0.34.22.
- [Release notes](https://github.com/tendermint/tendermint/releases)
- [Changelog](https://github.com/tendermint/tendermint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tendermint/tendermint/compare/v0.34.21...v0.34.22)

---
updated-dependencies:
- dependency-name: github.com/tendermint/tendermint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/golangci/golangci-lint (#3104)

Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.50.0 to 1.50.1.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/golangci/golangci-lint/compare/v1.50.0...v1.50.1)

---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#3105)

Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: update concentrated liquidity backport label (#3115)

* feat(osmomath): log2 approximation (#2788)

* feat: osmomath log2 approximation

* lint

* fix comment

* comment

* Update osmomath/decimal.go

* improve accuracy with narrower range

* comment

* implement and test precise log for x >= 1

* tests for negative values

* make non-mutative and test

* bench

* changelog

* remove redundant assignments

* improve comments

* [stableswap]: Cap number of assets and post-scaled asset amounts to ensure pools never overflow (#3055)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* Remove unused versions in mergify (#3121)

* Query lockup params (#3098)

* change proto

* add grpc & cli query

* test

* set params in genesis

* add test case: setParams & query

* CI: Delete failing step (#3124)

* Delete failing step

* Fix int overflow in test logic

* [x/gamm][stableswap]: Add inverse join/exit tests, fix single asset join bug, and remove uneven ratio joins (#3102)

* add tests for 10-asset pools with 10B per asset

* add max post-scaled asset check and create pool tests

* add sanity tests for new swap guardrails

* move max scaled asset amt to constant

* add join-pool-internal tests for new functionality

* fix single join bug, remove uneven ratio joins, and add inverse join tests

* add error checks to single asset joins

* fix mistake in test case

* remove commented line

Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>

* Stableswap implement JoinPoolNoSwap (#2942)

* ...

* add tests and denom validation check

* make format

Co-authored-by: alpo <[email protected]>
Co-authored-by: alpo <[email protected]>

* Make testing suite to ensure queries never alter state (#3001)

* create func to check alter state

* add tests

* format

* Update app/apptesting/test_suite.go

Co-authored-by: Roman <[email protected]>

* remove fmt

* epochs: try to use Invoke

* gamm: use Invoke

* incentives: use Invoke

* lockup: use Invoke

* mint: use Invoke

* pool-incentives: use Invoke

* superfluid: use Invoke

* tokenfactory

* txfees

* format

* fix

Co-authored-by: Roman <[email protected]>

* Remove streamswap (#3146)

* remove proto files

* remove x/streamswap

* updated the contract to cosmwasm 1.1 and Uint256 for amounts (#2950)

* chore: use environment variable instead of build tags to control e2e (#3179)

* Rate limit - Cleaner tests (#3183)

* improved testing framework

* can test both send and recv for success and failure

* cleanner testing framework

* added contract instantiation

* working wasm integration

* added params for contract config

* extracted param registration

* active rate limiting

* calculating channel value

* cleaner tests

* fix issue with epochs

* fixed tests

* testing rate limit reset

* linting

* added receive middleware

* added test for non-configured channel

* make format

* Revert "make format"

This reverts commit 9ffdc37c3d473e3c640e8fd85872f3a2f178c857.

* only applying format to ibc-rate-limit

* applying fmt to app.go

* added gov_module and changed no-quota default to "allow all"

* added asymetric quotas

* moved getters to modules.go

* initial work to support multiple quotas

* added multiple quotas

* small fixes

* reordered imports

* added management messages

* reorganized management messages and experimenting with e2e testing

* commenting out test configuration test for now

* added query

* added flow unit test

* cleanup

* added AddChannel tests

* format

* test values are properly stored

* testing remove channel

* some more rate limiting tests

* moved tests about test setup to the right place

* fixed params

* merged main

* running gofumpt

* added ibc-rate-limiting contract

* added ibc-rate-limit middleware

* added chain integration and tests

* reverted change to match merged branch in main (#2341 instead of #2274)

* added cosmwasm workflow

* added a migrate message

* added some doc comments to the state

* added doc comments

* fixed dependency after merging https://github.com/osmosis-labs/cosmos-sdk/pull/312

* added migration msg

* added workflow

* experimenting with better workflow

* added missing $

* using env

* Update x/ibc-rate-limit/contracts/rate-limiter/src/msg.rs

Co-authored-by: Dev Ojha <[email protected]>

* using stable for clippy

* removed gitkeep

* using the minimal profile for clippy

* experimenting with cache

* removed target from lints

* cleaner matrix?

* COmments & questions

* debugging

* more debugging

* debug faster

* quick cache debug

* typo

* quick workflow check

* working tests with optimization

* testing artifacts

* split the wasm target into its own step

* artifacts without slash

* full working tests

* clippy fixes

* workflow without test data checks and clippy fixes

* renamed CHANNEL_FLOWS

* renaming and code clenaup

* more renames

* renames and code fixes

* reordered imports

* cargo fmt

* added danom tracking

* cleanup

* refactoring

* changes to the expiration logic so that balances are calculated based on the direction (as suggested by @ValarDragon)

* slightly slower but considerably cleanner

* cleanup attributes and removed redundancy when not testing

* update to edition 2021

* added comments explaining the tests

* removed .beaker

* unified gitignore

* removed second gitignore

* better doc comments

* spelling

* spelling

* added channel value cache

* updated the middlware to use the new contract interface

* update middleware to match new contract interface

* added missing updates

* updated dependencies

* added missing helpers

* go.mod changes shouldn't be in this branch

* Revert "go.mod changes shouldn't be in this branch"

This reverts commit f8b972a5ea2f2c2b8007fa31c3db5d4450d8ab56.

* moved send and receive to sudo

* reorganizing

* calling the contract via sudo

* lint

* removed gitkeep

* using sudo instead of execute

* cleaned up and updated contract and integration

* updated x86 test wasm file

* fixed bad print

* storing and instantiating the contract

* setting up E2E tests for ibc rate limits

* fixed proposal. Now just have to get the math right and cleanup

* Using the supply for the channel value

* experimenting with e2e tests

* passing the contract keeper instead of instantiating it each time

* changes from code review

* added contract from main and changes to the middleware from code review

* using the correct bank supply method

* debugging issues with e2e tests. Everything works after one interaction from the cli, but not before

* updated dependency to match latest sdk form (now that the changes to this repo have been applied)

* working E2E test for rate limiting

* added e2e tests and changes from code review

* removed debug logs

* remove debug logs

* updated test to also use GetSupplyWithOffset

* using correct GetSupplyWithOffset method

* using correct GetSupplyWithOffset method

* lint

* removed e2e from this branch as it's not doing anything without the integration

* lint

* tests fail on CI because of "inactive" proposal. Is the deposit the issue?

* remove rate limiting after the test so it doesn't interfeer with the other tests

* using standard proposals instead of expedited

* added packet reverts on unsuccessful acks and timeouts

* lint

* ran gofumpt

* lint

* added undo to the contract

* integrating undo

* updated contract with x86 wasm file

* added undo for sent packages when they are rejected bia timeout or a bad ack

* added a readme

* markdown lint

* added readme

* abstracted params

* better params and param tests

* using a helper function instead of returning from the test

* updated contract to allow for undo

* added undo, readme, and cleanup based on reviews

* updated wasm file with x86 version

* using string params in e2e tests

* updated to v12

* removed unnecessary keeper

* only exposing what's needed

* refactoring

* updated types

* added shell history to gitignore

* adding only one wasm file to the codebase

* remove test for same wasm files. No longer needed.

* refactor based on code review

* removed integration tests as they won't pass without integration

* added params unit test

* reorganized tests

* reorganizing tests

* refactoring

* added address length limit

* added tests and fixed lack of return

* remove tests from bad merge

* remove from bad merge again

* comment

* test helpers for cosmwasm contracts

* added helpers for ibctesting

* comments

* removed unnecessary txConfig

* fixed typos

* clearer comment

* using second helper function for ExportGenesis

* added new wasm file

* updated the contract to cosmwasm 1.1 and Uint256 for amounts

* Fixed send with ibc assets. Better tests and error messages

* updated contract with x86 version

* gofumpt

* fixed clippy errors

* using the escrowed value as the channel value for native tokens

* gofumpt

* update fail string

* initial experiments with moving the calculations into the contract

* initial experiments with using the packet inside the contract

* improved tests. Experiments with packet in the contract.

* original contract

* cleaner tests

* more test cleanup

* cleaner tests

* cleanup

* align values from the tests and the contract

* fixed amounts for receive and cleanup code

* removed redundant wrapping logic

* adaped failed send test to the new testing abstractions

* only manipulate time on chain A

* remove commented out block

* changed lints to stable so they change less often

* gofumpt

* update channel value tests

* added x86 version of the contract for ci

* remove lint type that doesn't exist on stable

Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>

* changed lints to stable so they change less often (#3184)

* update version numbers (#3168)

* update version numbers

added "v" in recommended_version number to unify with chain registry

* Update chain.schema.json

Co-authored-by: Dev Ojha <[email protected]>

Co-authored-by: Dev Ojha <[email protected]>

* chore(deps): Bump github.com/spf13/cobra from 1.6.0 to 1.6.1 (#3187)

Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/spf13/cobra/releases)
- [Commits](https://github.com/spf13/cobra/compare/v1.6.0...v1.6.1)

---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): Bump github.com/mattn/go-sqlite3 from 1.14.15 to 1.14.16 (#3186)

Bumps [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3) from 1.14.15 to 1.14.16.
- [Release notes](https://github.com/mattn/go-sqlite3/releases)
- [Commits](https://github.com/mattn/go-sqlite3/compare/v1.14.15...v1.14.16)

---
updated-dependencies:
- dependency-name: github.com/mattn/go-sqlite3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(e2e): add vscode debug configurations (#3180)

* osmomath(log/CL): ln(x), log_1.0001(x), log_custom(x) (#3169)

* natural logarithm

* tick log

* save

* save

* customBase

* logs

Co-authored-by: Ruslan Akhtariev <[email protected]>

* feat(release): Automated post-upgrade tasks by code generating upgrade handler and auto-increasing e2e version (#3100)

* automate post-upgrade tasks by code generating upgrade handler and setting e2e in makefile

* automate post-upgrade tasks by code generating upgrade handler and setting e2e in makefile

* save

* save

* save

* yaml

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* On release auto upgrade

* docs

* save

* also changes app.go

* also changes app.go

* also changes app.go

* test using ci because will run forever on m1 with qemu

* save

* post release action

* post release github action

* auto postrelease action

* cleanup

* cleanup

* cleanup

* del

* docs

* major

* save

* save

* save

* Save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* save

* s

* s

* s

* s

* s

* only on major upgrades

* docs

Co-authored-by: Ruslan Akhtariev <[email protected]>

* chore: Tx post-handler example snippet #3194

* Progress on IBC rate limit spec (#3190)

* Progress on IBC rate limit spec

* Fix CI

* Fix lints

* More updates

* fix mdlinter

* More notes

* one more todo

* More README update

* Update x/ibc-rate-limit/README.md

Co-authored-by: Adam Tucker <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>

* fix(e2e): various e2e build issues breaking debugging on linux amd64 (#3207)

* fix(e2e): various e2e build issues breaking debugging on linux amd64

* fix test-e2e-debug

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Daniel Farina <[email protected]>
Co-authored-by: JeremyParish69 <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: alpo <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Matt, Park <[email protected]>
Co-authored-by: Hieu Vu <[email protected]>
Co-authored-by: khanh-notional <[email protected]>
Co-authored-by: Nguyen Thanh Nhan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Niccolo Raspa <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: alpo <[email protected]>
Co-authored-by: Nicolas Lara <[email protected]>
Co-authored-by: doggystylez <[email protected]>
Co-authored-by: Ruslan Akhtariev <[email protected]>
Co-authored-by: Ruslan Akhtariev <[email protected]>
Co-authored-by: Aleksandr Bezobchuk <[email protected]>

* CL: fix CalcOutAmtGivenIn and other logic (#3205)

* fix calc out

* clean

* revert

* Remove dust check (#3206)

* address matt comments

* address matt comments

* address Matt's comments

* address Matt's comments

* address Roman's comments

* CL(Swap): Change tests into table-driven tests, Add more tests (#3212)

* WIP

* Finish changing into table driven tests

* Add more test cases

* slight modification to tests

* test note

Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Roman <[email protected]>

* address roman's comments

* address roman's comments

* lint

* Update pool.go

* Update x/concentrated-liquidity/math.go

Co-authored-by: Roman <[email protected]>

Co-authored-by: Matt, Park <[email protected]>
Co-authored-by: Roman <[email protected]>

* [CL][Swap Router Module] Refactored simulation hack (#3122)

* simulation hack refactoring

* refactor simulation hack

* refactored sim hack

* docs added

* unbreak

* unexport

* gammkeeper to swaprouter module added

Co-authored-by: Ruslan Akhtariev <[email protected]>

* refactor(CL): move id management and pool creation to swaprouter (#3170)

* refactor(CL): move id management and pool creation to swaprouter

* gamm genesis

* try fixing sim

* lint

* basic create test

* fix TestExitPool

* fix gamm queries

* swaprouter genesis test

* Update x/swaprouter/types/params.go

Co-authored-by: Matt, Park <[email protected]>

* fix tests

* migrations

* remove build tags

* fix e2e

* fix simulation

* Adam's comments

* lint

* migrations

* updates

* Update x/gamm/keeper/pool.go

Co-authored-by: Matt, Park <[email protected]>

* remove gamm parameters from constructor

* type check early

* move max and min pool assets to swaprouter

* add second test case for create pool

* fix migrations

* lint

* add test

* Add prints

* fix(e2e): various e2e build issues breaking debugging on linux amd64 (#3207)

* fix(e2e): various e2e build issues breaking debugging on linux amd64

* fix test-e2e-debug

* test

* Revert "test"

This reverts commit 6cdca82527633819b95194d9bc1f2f44def7da5c.

* fix num pools query

* fix query, add e2e test

* skip e2e migration tests

* try fixing migrations

* Update proto/osmosis/gamm/v1beta1/genesis.proto

* remove wrap

* whitelist num pools in swaprouter

* update comment

* regen proto

* try fixing simulation

* query swaprouter in e2e pools

* regen query proto

* remove migrations test

* update proto comment

* configure address

* Update x/swaprouter/keeper.go

Co-authored-by: Adam Tucker <[email protected]>

* update spec

* remove addressed TODOs

Co-authored-by: Matt, Park <[email protected]>
Co-authored-by: Dev Ojha <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>

* CL: SwapOutGivenIn logic (#3225)

* further cl swap logic

* remove old logic

* change comment verbiage

* Msgs validate basic (#3192)

* create msgs

* codec

* add err types

* add tests for msgs

* make format

* check min, max tick

* add more test case

* format

* sdkerr => go err

* format

* format err

* lint

* format err value

* no sdkerrors

* Swaprouter: refactor `InitGenesis` & `ExportGenesis` (#3271)

* refactor InitGenesis & ExportGenesis on the suite

* format

* rename

Co-authored-by: Roman <[email protected]>

Co-authored-by: Roman <[email protected]>

* feat(CL): pool id routing (#3269)

* feat(CL): pool id routing

* upgrade handler

* Update x/swaprouter/router.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/swaprouter/router.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/swaprouter/creator.go

Co-authored-by: Adam Tucker <[email protected]>

* review comments

Co-authored-by: Adam Tucker <[email protected]>

* CL: test expansion (#3235)

* cl test expansion

* remove extremely annoying cosmwasm lint

* fix test

* test

* comment

* tick update

* final comments

* add TODO label

* address Roman's comments

* test

* test

* test

* add comments

* change

* fix tests

* Update x/concentrated-liquidity/math.go

Co-authored-by: Roman <[email protected]>

* Update x/concentrated-liquidity/math.go

Co-authored-by: Roman <[email protected]>

* improve lp test

* fix liquidity

* fix math test to be table driven

* clean up tick test

* pool test expansion and logic corrections

* small fixes

* comment out for now

* final comment cleanup

* clean

* More struggles//

* Revert "More struggles//"

This reverts commit 8557b4e3affa32b8ad8e5b2f568fb5159fd86d42.

* add back old test at bottom

* address Roman and Matt comments

* update test

* fix comment

* extra comments for CalcOut

* small verbiage change

* change int to dec

* address Roman's comments

* fix tests

* swap test

Co-authored-by: Roman <[email protected]>
Co-authored-by: mattverse <[email protected]>

* use current tick (#3319)

* CL: Partially overlapping / gap price range test/logic (#3311)

* more test expansion

* more test expansion

* add tests to swap

* Update pool.go

* add final test cases

* Update x/concentrated-liquidity/pool_test.go

Co-authored-by: Roman <[email protected]>

* address Roman's comment

Co-authored-by: Roman <[email protected]>

* feat(CL): implement `withdrawPosition` (#3459)

* chore: import paths CL (#3476)

* CL: Re-design Concentrated Liquidity Module  (#3296)

* Initial commit for pool

* Fix some tests

* Fix lint

* Clean up :)

* Fixing merge conflict is fun

* Adams code review

* Code review

* lint

* lint

* remove cdc from module

* shuffle tests around

Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: Roman <[email protected]>

* chore: merge main into cl-main (#3482)

* chore: merge main into cl-main

* fix

* merge fix

* StableSwapAdjustScalingFactors message

* fix applySwap test

* fix stableswap message server issues

* merge `main` into `concentrated-liquidity-main`

* lint

* correct rate limiter byte code

* fix swaprouter route tests

* update contract lints

Co-authored-by: Adam Tucker <[email protected]>

* refactor(CL): remove NumPools query from gamm (#3492)

* refactor(CL): remove NumPools query from gamm

* try fixing sim

* try fix e2e

* CL: add swaprouter tests (#3490)

* add swaprouter tests

* address Roman's comments

* Use strategy pattern in CL swaps (#3232)

* use straregy pattern instead of zeroForOne boolean

* format

* use computeSwapStep as strategy func

* fix export_test

* add 2 more funcs: setLiquidityDeltaSign & setNextTick

* remove flag in funcs

* already use zeroForOne so no need to set new strategy

* new strategy var to avoid conflict

Co-authored-by: Roman <[email protected]>

* refactor(CL): move PoolI to swaprouter; swaprouter only depends on PoolI (#3527)

* refactor(CL): move PoolI to swaprouter

* adam comments

* feat(CL): add bank sends to positions (#3526)

* add bank send to positions

* fund tests

* lint

* address Roman's comment

* add commments

* fix test

* add cl expected keepers

* refactor(CL): deprecate gamm messages and queries instead of removing (#3525)

* refactor(CL): deprecate gamm messages and queries instead of removing

* remove route protos from gamm and use from swaprouter instead

* refactor(CL): gamm msg and query deprecation (pt2 - route to swaprouter) (#3539)

* refactor(CL): gamm msg and query deprecation (pt2 - route to swaprouter)

* deprecation proto tags

* Update x/swaprouter/client/query_proto_wrap.go

* lint

* CL: add swap logic (#3497)

* initial push add swap logic

* lints

* more lints

* address Roman's comments

* address Roman's comments

* address Roman's comments

* fix swap

* address Roman's comments

* move event emission to swaprouter events

* merge in cl main

* lint

* add PoolI to clextension

* some lints and comments

* Update x/concentrated-liquidity/swaps.go

Co-authored-by: Roman <[email protected]>

* address Roman's comments

* Update x/concentrated-liquidity/swaps_test.go

Co-authored-by: Roman <[email protected]>

* address Roman's comments

* address Roman's comment

* address Roman's comments

Co-authored-by: Roman <[email protected]>

* refactor(CL): pool interfaces (#3546)

* refactor(CL): pool interfaces

* regenerate mocks and add tests

* rename cl mock file

* remove obsolete methods from cl pool

* Update x/swaprouter/simulation/sim_msgs.go

Co-authored-by: Adam Tucker <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>

* tests[CL]: initOrUpdateTick table driven tests (1/x) (#3558)

* initOrUpdateTick test cases

* godoc add

* add a few more test cases

* address Roman's comments

* address Roman's comments

* address Roman's comments

* refactor(CL): continue integrating strategy pattern into swaps (#3570)

* feat(CL): continue strategy pattern to simplify swaps

* refactor swap step

* move NextInitializedTick, begin specing things out

* refactor zeroForOne next tick

* SetLiquidityDeltaSign godoc

* ValidatePriceLimit godocs

* updates

* Update x/concentrated-liquidity/swaps.go

* lint

* Update x/concentrated-liquidity/internal/swapstrategy/zero_for_one.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/internal/swapstrategy/zero_for_one.go

Co-authored-by: Adam Tucker <[email protected]>

* Update x/concentrated-liquidity/internal/swapstrategy/one_for_zero.go

Co-authored-by: Adam Tucker <[email protected]>

* remove obsolete helper

* Update x/concentrated-liquidity/internal/swapstrategy/one_for_zero.go

Co-authored-by: Adam Tucker <[email protected]>

* remove misuse of generally

* InitializeTickValue spec

Co-authored-by: Adam Tucker <[email protected]>

* feat[CL]: Implement `SwapExactAmountIn` (#3535)

* initial push add swap logic

* lints

* more lints

* address Roman's comments

* address Roman's comments

* address Roman's comments

* fix swap

* address Roman's comments

* move event emission to swaprouter events

* merge in cl main

* lint

* add PoolI to clextension

* some lints and comments

* add calc in logic

* address Roman's comments

* finalize SwapIn logic

* lint

* address Roman's comments

* cleaning up

* fix test

* change priceLimit logic for not set

* move apply swap to updatePoolForSwap

* merge cl-main

* address Roman's comments

* fix test

* test[CL]: getPoolById table driven tests (2/6) (#3565)

* initOrUpdateTick test cases

* godoc add

* add a few more test cases

* address Roman's comments

* address Roman's comments

* getPoolById table driven test

* add godoc

* remove duplicate

* clean

* fix test

* fix test

* fix test

* test[CL]: initOrUpdatePosition table driven tests (3/6) (#3567)

* initOrUpdateTick test cases

* godoc add

* add a few more test cases

* address Roman's comments

* address Roman's comments

* getPoolById table driven test

* add godoc

* initOrUpdatePosition table driven test

* use errors and not strings

* fix test

* fix test

* address Roman's comments

* address comments

* Update x/concentrated-liquidity/position_test.go

Co-authored-by: Roman <[email protected]>

Co-authored-by: Roman <[email protected]>

* test[CL]: createPosition table driven tests (4/6) (#3569)

* initOrUpdateTick test cases

* godoc add

* add a few more test cases

* address Roman's comments

* address Roman's comments

* getPoolById table driven test

* add godoc

* initOrUpdatePosition table driven test

* add createPosition table driven tests

* fix lp test

* update default liquidity for tests

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Roman <[email protected]>

* errorAs change

* port to withdraw position

* test untested path

* change error

Co-authored-by: Roman <[email protected]>

* test[CL]: getTickInfo table driven tests (5/6) (#3583)

* initOrUpdateTick test cases

* godoc add

* add a few more test cases

* address Roman's comments

* address Roman's comments

* getPoolById table driven test

* add godoc

* initOrUpdatePosition table driven test

* add createPosition table driven tests

* fix lp test

* update default liquidity for tests

* getTickInfo test

* change error

* add check for pool existing

* Update x/concentrated-liquidity/tick.go

Co-authored-by: Roman <[email protected]>

Co-authored-by: Roman <[email protected]>

* test[CL]: getPosition table driven tests (6/6) (#3584)

* initOrUpdateTick test cases

* godoc add

* add a few more test cases

* address Roman's comments

* address Roman's comments

* getPoolById table driven test

* add godoc

* initOrUpdatePosition table driven test

* add createPosition table driven tests

* fix lp test

* update default liquidity for tests

* getTickInfo test

* getPosition tests

* Update lp_test.go

* docs: concentrated liquidity spec (WIP) (#3052)

* docs: concentrated liquidity spec

* updates

* first read through lint

* Add docs for `JoinPosition` for concentrated liquidity (#3126)

* Add Docs for minting

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Roman <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: Roman <[email protected]>

* chore: swapping spec (#3127)

* swapping spec mvp

* code review

* code review

* updates

* docs(CL): Swaprouter module, integrations and migrations (#3233)

* docs(CL): Swaprouter module, integrations and migrations

* updates

* updates

* updates

* updates

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* correct create pool spec

* swaps fix

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Matt, Park <[email protected]>

Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: Matt, Park <[email protected]>

* chore(CL): update swaprouter spec (#3287)

* chore(CL): update swaprouter spec

* updates

* docs(CL): fees spec (#3467)

* docs(CL): fees spec

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* Update docs/architecture/concentrated-liquidity-adr.md

Co-authored-by: Adam Tucker <[email protected]>

* address spam collectFees concerns

Co-authored-by: Adam Tucker <[email protected]>

* Move file from docs/architecture to concentrated-liquidity

The ADR folder as a design pattern in cosmos SDK has not proved to be helpful

* Fix lint

Co-authored-by: Adam Tucker <[email protected]>
Co-authored-by: Matt, Park <[email protected]>
Co-authored-by: Adam Tucker <[email protected]>

* feat[CL]: tick spacing (#3671)

* tick spacing

* add params initialization

* clean up

* address some comments

* address more comments

* lint

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Roman <[email protected]>

* add test for is initial position

* add initialize initial position test

* add test

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Roman <[email protected]>

* move concentrated pool to apptesting

* call createPool directly

* switch to blocktime instead of UTC var

* simplify test

* add pool tests

* add pointer

* lint

Co-authored-by: Roman <[email protected]>

* feat[CL]: add MsgCreateConcentratedPool (#3687)

* tick spacing

* add params initialization

* clean up

* address some comments

* address more comments

* lint

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Roman <[email protected]>

* add test for is initial position

* add initialize initial position test

* add test

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Roman <[email protected]>

* move concentrated pool to apptesting

* call createPool directly

* feat[CL]: add MsgCreateConcentratedPool

* lints

* add msg server and tests

* switch to blocktime instead of UTC var

* simplify test

* add pool tests

* TestMsgCreateConcentratedPool

* add tick spacing validation

* fix proto comment

* add type checks

* remove app codec

* add pointer

* lint

* remove CreateConcentratedPool, change CreatePool

* address Devs comments

* update test

Co-authored-by: Roman <[email protected]>

* feat[CL]: add basic CLI functionality (#3707)

* tick spacing

* add params initialization

* clean up

* address some comments

* address more comments

* lint

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Roman <[email protected]>

* add test for is initial position

* add initialize initial position test

* add test

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Roman <[email protected]>

* move concentrated pool to apptesting

* call createPool directly

* feat[CL]: add MsgCreateConcentratedPool

* lints

* add msg server and tests

* switch to blocktime instead of UTC var

* simplify test

* add pool tests

* TestMsgCreateConcentratedPool

* add tick spacing validation

* fix proto comment

* add type checks

* initial cli push

* lints

* WIP: range orders

* Revert "WIP: range orders"

This reverts commit 3b4e176f87df9bd0da0d65f6414534cdb6e427eb.

* add github issue link

Co-authored-by: Roman <[email protected]>
Co-authored-by: mattverse <[email protected]>

* feat[CL]: implement initialize pool (#3733)

* implement initialize pool

* fix test error

* added additional test case

* [CL]Misc: Add Denom Check upon pool creation (#3804)

* Check denom metadata

* Remove unnecessary TODO comments

* chore: CL merge to main build fixes (no state-breaks) (#3877)

* push initial fixes

* unwire keeper to remove state break

* keeper

* disable tests and codec breakage

* more skips

* another test disable

Co-authored-by: Adam Tucker <[email protected]>

* added packet timeouts to wasm hooks (#3862)

* feat(osmoutils): accumulator position options (#3858)

* set up proto, types, and set/get with basic tests

* feat(osmoutils): ClaimRewards and NewPosition foundations

* add todo

* change get logic

* remove accum name from AccumulatorContent; proper prefixes

* spec updates

* updates

* Update osmoutils/accum/prefix.go

* Update osmoutils/accum/prefix.go

* abstract out getPosition

* implemend AddToPos with thorough testing and move internal fns to new file

* test TestNewPosition

* test TestClaimRewards

* clean up

* godocs

* clean up

* fix conflicts and clean up tests

* add and thoroughly test RemoveFromPosition and add getter tests

* Revert "Merge branch 'main' into alpo/accumulator-add-rem-get"

This reverts commit 1c8507c3a09998a35329f7d82c6339c8b27385f2, reversing
changes made to 0ad49e98bf8005e012e50fc92967f44a3dbf3922.

* clean up tests/logic, add more test coverage, and fix lint

* feat(osmoutils): accumulator position options

* migrations test

* Revert "Merge branch 'main' into roman/position-options"

This reverts commit 8dcf01a404a09a18d351c00e25fc5aef2942e9d6, reversing
changes made to c523150494734b48e3a8407278b90475edef53d1.

* remove obsolete TODOs

* clean up ptions

* tree

* non-nil options

* comment

Co-authored-by: alpo <[email protected]>
Co-authored-by: alpo <[email protected]>

* Swaprouter single route api (#3878)

Closes: #3807 

## Brief Changelog

- Add `SwapExactAmountIn ` api
- In `AfterEpochEnd` hook of `txfees` module, we are using single route. Change to use `SwapExactAmountIn`
- tests added

## Testing and Verifying

*(Please pick one of the following options)*

This change is a trivial rework / code cleanup without any test coverage.

*(or)*

This change is already covered by existing tests, such as *(please describe tests)*.

*(or)*

This change added tests and can be verified as follows:

*(example:)*
  - *Added unit test that validates ...*
  - *Added integration tests for end-to-end deployment with ...*
  - *Extended integration test for ...*
  - *Manually verified the change by ...*

## Documentation and Release Note

  - Does this pull request introduce a new feature or user-facing behavior changes? (yes / no)
  - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? (yes / no)
  - How is the feature or change documented? (not applicable   /   specification (`x/<module>/spec/`)  /  [Osmosis docs repo](https://github.com/osmosis-labs/docs)   /   not documented)

* fix: cl merge main swaprouter changes (state-breaking) (#3876)

* push initial fixes

* modules.go

* register AppModuleBasic

* uncomment concentrated in swaprouter keeper

* remove create pool events from msg server

* add cl storekey to upgrade

* minimize diff by moving method

* remove redundant pool asset constants

* add unit tests for removed checks

* add error test for TestMsgCreateStableswapPool

* test TestMsgCreateBalancerPool

* remove dependency

Co-authored-by: Roman <[email protected]>

* test[CL]: CurrentSqrtPrice (#3783)

* test CurrentSqrtPrice

* change tests effected by OOO and osmomath change

* tick spacing with cli

* add comments

* osmomath changes

* remove comments

* add negative to cli (#3888)

* refactor(osmoutils): UpdateAccumulator does not overwite; tests (#3895)

* refactor(osmoutils): accumulator ClaimRewards returns sdk.Coins (#3897)

* refactor(osmoutils): accumulator ClaimRewards returns sdk.Coins

* Update osmoutils/accum/accum_test.go

Co-authored-by: alpo <[email protected]>

* Update osmoutils…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A:backport/v12.x backport patches to v12.x branch C:app-wiring Changes to the app folder C:CLI C:x/epochs C:x/gamm Changes, features and bugs related to the gamm module. C:x/incentives C:x/lockup C:x/mint C:x/pool-incentives C:x/superfluid C:x/tokenfactory C:x/txfees V:state/compatible/backport State machine compatible PR, should be backported
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Make testing suite to ensure queries never alter state
3 participants