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

fix: duplicate price for multiple ticks #5173

Merged
merged 26 commits into from
May 15, 2023

Conversation

czarcas7ic
Copy link
Member

@czarcas7ic czarcas7ic commented May 12, 2023

Closes: #XXX

What is the purpose of the change

Our CL tick logic works off of a precision of 10^-18. This, combined with the fact that our per-tick precision increases at every factor of 10, means that we can have multiple ticks that correlate to the same spot price. For instance. tick -161795100 (along with many other ticks around it) correlates to a spot price of 0.000000000000000002. We need a method to determine what the largest tick (rounding up) is that corresponds to a given spot price and only use that tick (kind of like setting a canonical tick) when referencing this price.

Changes:

  • When creating a position, the provided ticks are checked to see if there is a larger tick (rounding up) that represents that price with the same level of precision. If so, that tick is changed to that value
    • Example: the lower tick -161795100 correlates to price 0.000000000000000002. The tick is checked, and a larger tick (-161000000) represents that same price. The lower tick is changed to -161000000.
  • TickToSqrtPrice now also returns the price as well
    • This is to prevent losing precision when squaring the square root price
  • CreatePosition now returns the lowerTick and upperTick in the response
  • Update README

Testing and Verifying

  • Added TestRoundTick
  • Expand TestCreatePositionand TestInverseRelation_CreatePosition_WithdrawPosition

Documentation and Release Note

  • Does this pull request introduce a new feature or user-facing behavior changes?
  • Changelog entry added to Unreleased section of CHANGELOG.md?

Where is the change documented?

  • Specification (x/{module}/README.md)
  • Osmosis documentation site
  • Code comments?
  • N/A

@github-actions github-actions bot added the C:docs Improvements or additions to documentation label May 13, 2023
@czarcas7ic czarcas7ic mentioned this pull request May 13, 2023
6 tasks
@czarcas7ic czarcas7ic marked this pull request as ready for review May 13, 2023 17:54
@czarcas7ic czarcas7ic requested a review from p0mvn as a code owner May 13, 2023 17:54
Copy link
Member

@mattverse mattverse left a comment

Choose a reason for hiding this comment

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

good catch, leaving some nit comments, I'm also wondering if there could be any possible edge cases stemming from this.. 🤔

x/concentrated-liquidity/lp.go Outdated Show resolved Hide resolved
return 0, 0, err
}

// If the lower or upper tick has changed, we need to re-validate the tick range.
Copy link
Member

Choose a reason for hiding this comment

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

asking to learn: why do we use the term of "changed" here?
Is my understanding correct that the provided priceTickLower || provided priceTickUpper indicates the new price that is being used and thus if this is a tick that has not been used previously, (lowerTick and upperTick being provided), we define them as new ticks?

Copy link
Member Author

@czarcas7ic czarcas7ic May 15, 2023

Choose a reason for hiding this comment

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

We do an initial tick check at the very begining to fail early. This tick check does not do any tick rounding, however (We need to utilize sqrtPrices of the ticks to check this). Once we get the sqrtPrice of the lower and upper tick, we can then check if the provided tick is the canonical tick that is being used for that sqrtPrice. If one of the two ticks change from this check, we ensure the final tick range is valid once again (just for safety).

// the first tick (given our precision) that is able to represent this price is -161000000, so we use this tick instead.
//
// This really only applies to very small tick values, as the increment of a single tick continues to get smaller as the tick value gets smaller.
func roundTick(lowerTick, upperTick int64, priceTickLower, priceTickUpper sdk.Dec, tickSpacing uint64) (int64, int64, error) {
Copy link
Member

Choose a reason for hiding this comment

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

should it be roundDownTick? (not sure)

Copy link
Member Author

Choose a reason for hiding this comment

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

No, its a little confusing though. The "roundDown" in PriceToTickRoundDown is referring to tick spacing rounding. The PriceToTickRoundDown is rounding us "up" to the largest tick that represents this sqrtPrice, but rounds it down when taking into consideration tick spacing. So the word "rounding" and its direction depends on what lens you are viewing it from. From the scale of ticks, its rounding up since if we give it a smaller tick that has other ticks larger than it that represent the same sqrtPrice, it will return the large tick. But from the tick spacing perspective, it will round down to ensure that tick being returned is a multiple of the tick spacing of the pool. Please lmk if that makes sense

CC @p0mvn

Copy link
Member

Choose a reason for hiding this comment

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

This makes sense to me, thanks for the breakdown. Would be valuable to update docs with this context

x/concentrated-liquidity/tick.go Outdated Show resolved Hide resolved
// the first tick (given our precision) that is able to represent this price is -161000000, so we use this tick instead.
//
// This really only applies to very small tick values, as the increment of a single tick continues to get smaller as the tick value gets smaller.
func roundTick(lowerTick, upperTick int64, priceTickLower, priceTickUpper sdk.Dec, tickSpacing uint64) (int64, int64, error) {
Copy link
Member

Choose a reason for hiding this comment

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

nit: maybe roundTickToClosestPriceTick?

Copy link
Member Author

Choose a reason for hiding this comment

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

if we want to change this, I am thinking roundTickToCanonicalPriceTick, because closeness has nothing to do with it

Copy link
Member Author

Choose a reason for hiding this comment

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

changed it to roundTickToCanonicalPriceTick a74fbd6

}

// If multiple ticks can represent the same spot price, ensure we are using the largest of those ticks.
lowerTick, upperTick, err = roundTick(lowerTick, upperTick, priceLowerTick, priceUpperTick, pool.GetTickSpacing())
Copy link
Member

Choose a reason for hiding this comment

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

Do we also need to handle this for the initial tick?

initialTick, err := math.PriceToTickRoundDown(initialSpotPrice, pool.GetTickSpacing())
if err != nil {
return err
}

Copy link
Member Author

Choose a reason for hiding this comment

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

No, only because the PriceToTickRoundDown function always returns the canonical tick. The only thing that needs to be changed is user provided ticks

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, nice work

@p0mvn
Copy link
Member

p0mvn commented May 15, 2023

Can we get this in ASAP please so that I can merge #5170?

czarcas7ic and others added 2 commits May 15, 2023 13:31
Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>
@czarcas7ic
Copy link
Member Author

@p0mvn yeah ill address these rn

…sition-audit' into adam/duplicate-price-for-multiple-ticks-patch
…tratedPosition-audit' into adam/duplicate-price-for-multiple-ticks-patch"

This reverts commit 3ace477, reversing
changes made to b5923f0.
@czarcas7ic czarcas7ic requested a review from a team as a code owner May 15, 2023 19:22
@github-actions github-actions bot added C:CLI C:x/gamm Changes, features and bugs related to the gamm module. T:CI labels May 15, 2023
@czarcas7ic czarcas7ic merged commit f116d43 into main May 15, 2023
@czarcas7ic czarcas7ic deleted the adam/duplicate-price-for-multiple-ticks-patch branch May 15, 2023 19:51
@czarcas7ic czarcas7ic restored the adam/duplicate-price-for-multiple-ticks-patch branch May 16, 2023 18:51
czarcas7ic added a commit that referenced this pull request May 16, 2023
czarcas7ic added a commit that referenced this pull request May 16, 2023
* Revert "fix: duplicate price for multiple ticks (#5173)"

This reverts commit f116d43.

* fix merge conflicts

* regen proto
MasterPi-2124 added a commit to notional-labs/osmosis that referenced this pull request May 20, 2023
* chore(deps): bump lycheeverse/lychee-action from 1.6.1 to 1.7.0 (osmosis-labs#5158)

Bumps [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/lycheeverse/lychee-action/releases)
- [Commits](lycheeverse/lychee-action@v1.6.1...v1.7.0)

---
updated-dependencies:
- dependency-name: lycheeverse/lychee-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* chore(deps): bump actions/cache from 2 to 3 (osmosis-labs#5145)

Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v2...v3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* chore(deps): bump mheap/github-action-required-labels from 2 to 4 (osmosis-labs#5146)

Bumps [mheap/github-action-required-labels](https://github.com/mheap/github-action-required-labels) from 2 to 4.
- [Release notes](https://github.com/mheap/github-action-required-labels/releases)
- [Commits](mheap/github-action-required-labels@v2...v4)

---
updated-dependencies:
- dependency-name: mheap/github-action-required-labels
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* Clarify error message when you try to completely exit a pool (osmosis-labs#5165)

* Clarify error message when you try to completely exit a pool

Closes osmosis-labs#3427

* Add changelog

* Remove a section of PR template (osmosis-labs#5166)

* Remove a section of PR template

* Update .github/pull_request_template.md

Co-authored-by: Adam Tucker <adam@osmosis.team>

---------

Co-authored-by: Roman <roman@osmosis.team>
Co-authored-by: Adam Tucker <adam@osmosis.team>

* [CL Message Audit] MsgSwapExactAmountIn (osmosis-labs#5123)

* add comments from audit

* add tests for untested files and fix minor bugs and issues

* add test for rounding behavior

* clean up comments

* fix conflicts

* fix conflicts in tests relating to rounding changes

* romans and adams feedback

---------

Co-authored-by: stackman27 <sis1001@berkeley.edu>

* Speedup accumulator prefix keys (osmosis-labs#5174)

* Speedup some of the swap logic by doing more pre-computation in tick math (osmosis-labs#5171)

* osmomath: disable thelper for some helper functions (osmosis-labs#5164)

* mark helper functions

* disable thelper warnings

* chore(deps): bump lycheeverse/lychee-action from 1.7.0 to 1.8.0 (osmosis-labs#5180)

Bumps [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/lycheeverse/lychee-action/releases)
- [Commits](lycheeverse/lychee-action@v1.7.0...v1.8.0)

---
updated-dependencies:
- dependency-name: lycheeverse/lychee-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* fix localosmosis (osmosis-labs#5183)

* [CL Message Audit]: MsgUnlockAndMigrateSharesToFullRangeConcentratedPosition [1/2] (osmosis-labs#5178)

* initial push audit changes

* add back proto tag

* rename to validateGammLockForSuperfluidStaking

* remove unused errors

* fix: duplicate price for multiple ticks (osmosis-labs#5173)

* initial push

* update readme

* initial push

* implement round tick

* add test for round tick

* add readme

* return new lower and upper tick when create pos

* initial push audit changes

* use enum for migration type

* add back proto tag

* rename to validateGammLockForSuperfluidStaking

* remove unused errors

* Update x/superfluid/keeper/migrate.go

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* add check for both bonded and unbonding

* named return values createPosition

* Update x/concentrated-liquidity/tick.go

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* change roundTick to roundTickToCanonicalPriceTick

* initialize int64 vars

* Revert "Merge branch 'adam/MsgUnlockAndMigrateSharesToFullRangeConcentratedPosition-audit' into adam/duplicate-price-for-multiple-ticks-patch"

This reverts commit 3ace477, reversing
changes made to b5923f0.

---------

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* fix: add split route message to codec and interface registration (osmosis-labs#5168)

* fix: add split route message to codec and interface registration

* Apply suggestions from code review

* Apply suggestions from code review

* refactor: remove cache context from swap out given in (osmosis-labs#5176)

* refactor: remove cache from swap out given in

* updates

* dead code

* update test name

* updates

* [CL][InternalReview] MsgAddToConcentratedLiquiditySuperfluidPosition (osmosis-labs#5157)

* [InternalReview] MsgAddToConcentratedLiquiditySuperfluidPosition

* updates

* updates

* updates

* updates

* revert me

* updates

* debug

* docs

* go sum

* go mod

* remove

* Update x/superfluid/README.md

* Update x/concentrated-liquidity/position.go

* comment

* coins

* remove Q

* remove Q

* revert name

* CL: benchmark for swaps (osmosis-labs#5170)

* test

* fix

* comments

* fix conflict

* updates

* normalize

* maxAmountDepositedFullRange

* chore(deps): bump lycheeverse/lychee-action from 1.7.0 to 1.8.0 (osmosis-labs#5188)

Bumps [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/lycheeverse/lychee-action/releases)
- [Commits](lycheeverse/lychee-action@v1.7.0...v1.8.0)

---
updated-dependencies:
- dependency-name: lycheeverse/lychee-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

* Revert "fix: duplicate price for multiple ticks (osmosis-labs#5173)" (osmosis-labs#5193)

* Revert "fix: duplicate price for multiple ticks (osmosis-labs#5173)"

This reverts commit f116d43.

* fix merge conflicts

* regen proto

* fix: duplicate price for multiple ticks (osmosis-labs#5196)

* initial push

* update gomod

* revert nolint

* update gomod

* perf: convert ticks to int64 (osmosis-labs#5189)

* perf: convert ticks to int64

* updates

* fix test

* updates

* updates

* Update x/concentrated-liquidity/math/tick.go

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>

* nit

* comment

* comment

* >=

* lint

* lint

---------

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>

* refactor: remove cache context from swap in given out (osmosis-labs#5198)

* remove cache context from in given out

* Update x/concentrated-liquidity/swaps_test.go

Co-authored-by: Roman <roman@osmosis.team>

* Update x/concentrated-liquidity/swaps_test.go

Co-authored-by: Roman <roman@osmosis.team>

---------

Co-authored-by: Roman <roman@osmosis.team>

* refactor: more discriptive error when no liquidity in swaps (osmosis-labs#5197)

* fix: merge conflict (osmosis-labs#5199)

* fix: make proto-docs; unsupported address proto tag (osmosis-labs#5195)

* [CL Message Audit]: MsgWithdrawPosition (osmosis-labs#5135)

* WIP

* Add test cases

* Uncomment tests

* Uncomment more tests

* Add lock test

* And uncomment test

* Update x/concentrated-liquidity/incentives.go

Co-authored-by: Roman <roman@osmosis.team>

* Romans feedback

* Update x/concentrated-liquidity/lp.go

Co-authored-by: Adam Tucker <adam@osmosis.team>

* Update x/concentrated-liquidity/lp_test.go

Co-authored-by: Adam Tucker <adam@osmosis.team>

* Adams review

---------

Co-authored-by: Roman <roman@osmosis.team>
Co-authored-by: Adam Tucker <adam@osmosis.team>

* Fix CL client to be compatible with recent state of Bigbang (osmosis-labs#5200)

* Fix cl client to follow most recent state

* Run go mod tidy

* Change to A:no-changelog (osmosis-labs#5201)

* fix: merge conflict (osmosis-labs#5210)

* readme error fixes (osmosis-labs#5208)

* perf: conver tick and exponent at price one to int64 (osmosis-labs#5190)

Closes: #XXX

## What is the purpose of the change

Convert pool's tick and exponent at price one to int64 for performance and readability

* chore: add vs code debug config for every module (osmosis-labs#5212)

* chore: add vs code debug config for every module

* restore e2e

* refactor: prototype reducing iterator overhead in swaps (osmosis-labs#5177)

* refactor: prototype reducing iterator overhead in swaps

* updates

* updates

* clean up

* godoc updates

* updates

* updates

* updates

* clean up

* updates

* chore: skip wasm tests in wsl and add a vs code task (osmosis-labs#5214)

* chore: skip wasm tests in wsl and add a vs code task

* updates

* update golangci-lint settings per https://golangci-lint.run/usage/integrations (osmosis-labs#5221)

* style: s instead of suite (osmosis-labs#5222)

* just use s. instead of suite.

* complete migration of suite to s for *KeeperTestSuite

---------

Co-authored-by: Roman <roman@osmosis.team>

* perf: remove repeated reallocations in swap step iterations (osmosis-labs#5211)

* perf: remove repeated reallocations in swap step iterations

* smallest dec

* unused

* comment

* Update x/concentrated-liquidity/swaps.go

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>

* Update x/concentrated-liquidity/swaps.go

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>

---------

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>

* bug: add split route to message server in pool manager (osmosis-labs#5204)

* bug: add split route to message server in pool manager

* Update x/poolmanager/msg_server.go

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* Update x/poolmanager/msg_server.go

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

---------

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* chore(deps): bump json-pointer from 0.6.1 to 0.6.2 in /client/docs (osmosis-labs#5215)

Bumps [json-pointer](https://github.com/manuelstofer/json-pointer) from 0.6.1 to 0.6.2.
- [Commits](https://github.com/manuelstofer/json-pointer/commits)

---
updated-dependencies:
- dependency-name: json-pointer
  dependency-type: indirect
...

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

* chore(deps): bump minimist from 1.2.5 to 1.2.8 in /client/docs (osmosis-labs#5216)

Bumps [minimist](https://github.com/minimistjs/minimist) from 1.2.5 to 1.2.8.
- [Changelog](https://github.com/minimistjs/minimist/blob/main/CHANGELOG.md)
- [Commits](minimistjs/minimist@v1.2.5...v1.2.8)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

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

* chore(deps): bump github.com/docker/distribution (osmosis-labs#5220)

Bumps [github.com/docker/distribution](https://github.com/docker/distribution) from 2.8.1+incompatible to 2.8.2+incompatible.
- [Release notes](https://github.com/docker/distribution/releases)
- [Commits](distribution/distribution@v2.8.1...v2.8.2)

---
updated-dependencies:
- dependency-name: github.com/docker/distribution
  dependency-type: indirect
...

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

* chore(deps): bump ansi-regex from 5.0.0 to 5.0.1 in /client/docs (osmosis-labs#5226)

Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](chalk/ansi-regex@v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

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

* chore: commit at the end of benchmark (osmosis-labs#5229)

* chore: commit at the end of benchmark

* updates

* chore(deps): bump handlebars from 4.7.6 to 4.7.7 in /client/docs (osmosis-labs#5231)

Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.6 to 4.7.7.
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md)
- [Commits](handlebars-lang/handlebars.js@v4.7.6...v4.7.7)

---
updated-dependencies:
- dependency-name: handlebars
  dependency-type: indirect
...

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

* chore: add chosing an exponentAtPriceOne docs (osmosis-labs#4919)

* add chosing an exponenetAtPriceOne docs

* increase header sizes

* center the equation

* Update x/concentrated-liquidity/README.md

Co-authored-by: Roman <roman@osmosis.team>

* Update x/concentrated-liquidity/README.md

Co-authored-by: Roman <roman@osmosis.team>

* Update x/concentrated-liquidity/README.md

Co-authored-by: Roman <roman@osmosis.team>

* specify asset0 and asset1

* fix headers

---------

Co-authored-by: Roman <roman@osmosis.team>
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>

* [CL][Incentives Query][Bug]: Implement support for CL gauges to incentivized pools query (osmosis-labs#5187)

* implement and test query support for CL gauges

* update changelog

* fix conflicts

* remove MsgCreateIncentive (osmosis-labs#5234)

* feat[CL]: separate fees into different module account (osmosis-labs#5230)

* separate account for fees

* update test var name

* Update x/concentrated-liquidity/swaps.go

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

---------

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* chore(deps): bump github.com/docker/distribution (osmosis-labs#5218)

Bumps [github.com/docker/distribution](https://github.com/docker/distribution) from 2.8.1+incompatible to 2.8.2+incompatible.
- [Release notes](https://github.com/docker/distribution/releases)
- [Commits](distribution/distribution@v2.8.1...v2.8.2)

---
updated-dependencies:
- dependency-name: github.com/docker/distribution
  dependency-type: indirect
...

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

* [CL Message Audit] MsgSwapExactAmountOut (osmosis-labs#5179)

* progress

* more checks

* checked logic

* moved all fmterror to errors

* added test

* cleanup

* cli tested

* resolved feedbacks

* resolved feedbacks

* fixed ci

* Update x/poolmanager/router_test.go

* Update x/poolmanager/router.go

---------

Co-authored-by: Roman <roman@osmosis.team>

* chore: lint tests and sync for app, osmomath, tests, and wasmbinding (osmosis-labs#5206)

* lint tests and sync: app, osmomath, tests, and wasmbinding

* add osmomath to lp_test

* sync

* chore(deps): bump github.com/docker/distribution in /x/ibc-hooks (osmosis-labs#5217)

Bumps [github.com/docker/distribution](https://github.com/docker/distribution) from 2.8.1+incompatible to 2.8.2+incompatible.
- [Release notes](https://github.com/docker/distribution/releases)
- [Commits](distribution/distribution@v2.8.1...v2.8.2)

---
updated-dependencies:
- dependency-name: github.com/docker/distribution
  dependency-type: indirect
...

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

* [x/pool-incentives][tests]: Add tests for external gauge query (osmosis-labs#5236)

* add tests for external gauge query

* refactor tests to use string map

* test comment fix

* chore(deps): bump github.com/docker/docker (osmosis-labs#5219)

Bumps [github.com/docker/docker](https://github.com/docker/docker) from 20.10.19+incompatible to 20.10.24+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](moby/moby@v20.10.19...v20.10.24)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: indirect
...

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

* feat: v16 upgrade handler updates (osmosis-labs#5213)

* initial push upgrade handler changes

* properly set staking denom to usomo in test

* add further tests

* use comm pool for swap

* correct pool ID

* update pool id

* [CL Message Audit]: AddToPositions  (osmosis-labs#5167)

* WIP

* Trying to fix test

* Fix test

* Add min amount

* Update proto/osmosis/concentrated-liquidity/tx.proto

Co-authored-by: alpo <62043214+AlpinYukseloglu@users.noreply.github.com>

* Update proto/osmosis/concentrated-liquidity/tx.proto

Co-authored-by: Adam Tucker <adam@osmosis.team>

* Update proto/osmosis/concentrated-liquidity/tx.proto

Co-authored-by: alpo <62043214+AlpinYukseloglu@users.noreply.github.com>

* Update proto/osmosis/concentrated-liquidity/tx.proto

Co-authored-by: alpo <62043214+AlpinYukseloglu@users.noreply.github.com>

* Update proto/osmosis/concentrated-liquidity/tx.proto

Co-authored-by: Adam Tucker <adam@osmosis.team>

* WIP for comments

* Review comments

* updates

---------

Co-authored-by: alpo <62043214+AlpinYukseloglu@users.noreply.github.com>
Co-authored-by: Adam Tucker <adam@osmosis.team>
Co-authored-by: Roman <roman@osmosis.team>

* perf: change KVStore value from posID to boolean byte (osmosis-labs#5237)

* change KVStore value from posID to boolean byte

* replace redundant function

* fix prefix

* update godoc

* add incentive creation & querying section to readme (osmosis-labs#5242)

* add readme section on reward splitting (osmosis-labs#5244)

* refactor: rename swap fee to spread factor (osmosis-labs#5138)

* refactor: rename swap fee to spread factor

* lint

* updates

* updates

* [CL][bugfix] Update reward splitting logic to only use bonded balancer amounts (osmosis-labs#5239)

* implement/test necessary helper and implement/test bugfix for bonded share reward splitting

* changelog for gamm changes

* clean up tests and comments

* [CL Message Audit]: MsgUnlockAndMigrateSharesToFullRangeConcentratedPosition [2/2] (osmosis-labs#5160)

* initial push

* update readme

* initial push audit changes

* use enum for migration type

* add back proto tag

* rename to validateGammLockForSuperfluidStaking

* remove unused errors

* Update x/superfluid/keeper/migrate.go

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* add check for both bonded and unbonding

* update gomod

* allow max length 1 for linked synth locks

* feat: partial superfluid undelegate (osmosis-labs#5162)

* partial superfluid undelegate

* further reduction of gas

* Update x/superfluid/keeper/migrate.go

Co-authored-by: Roman <roman@osmosis.team>

* reduce code duplication lock and lockNoSend

* lockNoSend as default

* add bug fix with expanded tests

* unit test for CreateLockNoSend

* Update x/superfluid/keeper/migrate.go

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* fix merge

* partialSuperfluidUndelegate named return values

* expand test checks for migrateDelegated

* expanded bonded checks

* check new lock and exact amount

* assign vars directly

* update merge

* check newly created lock

* add extra logic branch for fail case

* split up partial superfluid undelegate func

* expand partial undelegate test case

* roman's review

* Update x/lockup/keeper/lock_test.go

* nit

* fix test

* expand CreateLockNoSend comment

* rename lockNoSend back to lock

* expand partial unlock comment

---------

Co-authored-by: Roman <roman@osmosis.team>
Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* remove unused error

* lint

---------

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>
Co-authored-by: Roman <roman@osmosis.team>

* Add amino proto annotations (osmosis-labs#4629)

* Add proto annotations

* Update go.mod

* Add changelog

* Adams review

* Make proto

---------

Co-authored-by: mattverse <mattverse@users.noreply.github.com>

* refactor: reinvest dust fees into pool accumulator (osmosis-labs#5245)

* refactor: reinvest dust fees into pool accumulator

* updates

* updates

* Update x/concentrated-liquidity/fees_test.go

Co-authored-by: Adam Tucker <adam@osmosis.team>

---------

Co-authored-by: Adam Tucker <adam@osmosis.team>

* perf: iterator improvements for swap in given out and liquidity for full range query (osmosis-labs#5248)

* perf: iterator improvements for swap in given out and liquidity for full range query

* updates

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Roman <roman@osmosis.team>
Co-authored-by: Adam Tucker <adam@osmosis.team>
Co-authored-by: alpo <62043214+AlpinYukseloglu@users.noreply.github.com>
Co-authored-by: stackman27 <sis1001@berkeley.edu>
Co-authored-by: Ruslan Akhtariev <46343690+pysel@users.noreply.github.com>
Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>
Co-authored-by: Jacob Gadikian <jacobgadikian@gmail.com>
Co-authored-by: mattverse <mattverse@users.noreply.github.com>
pysel pushed a commit that referenced this pull request Jun 6, 2023
* initial push

* update readme

* initial push

* implement round tick

* add test for round tick

* add readme

* return new lower and upper tick when create pos

* initial push audit changes

* use enum for migration type

* add back proto tag

* rename to validateGammLockForSuperfluidStaking

* remove unused errors

* Update x/superfluid/keeper/migrate.go

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* add check for both bonded and unbonding

* named return values createPosition

* Update x/concentrated-liquidity/tick.go

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>

* change roundTick to roundTickToCanonicalPriceTick

* initialize int64 vars

* Revert "Merge branch 'adam/MsgUnlockAndMigrateSharesToFullRangeConcentratedPosition-audit' into adam/duplicate-price-for-multiple-ticks-patch"

This reverts commit 3ace477, reversing
changes made to b5923f0.

---------

Co-authored-by: Matt, Park <45252226+mattverse@users.noreply.github.com>
pysel pushed a commit that referenced this pull request Jun 6, 2023
* Revert "fix: duplicate price for multiple ticks (#5173)"

This reverts commit f116d43.

* fix merge conflicts

* regen proto
@czarcas7ic czarcas7ic deleted the adam/duplicate-price-for-multiple-ticks-patch branch August 7, 2023 23:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C:CLI C:docs Improvements or additions to documentation C:x/concentrated-liquidity C:x/gamm Changes, features and bugs related to the gamm module. C:x/superfluid T:CI V:state/breaking State machine breaking PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants