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

feat: add support to dec34 #1100

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open

Conversation

cosmic-vagabond
Copy link
Contributor

@cosmic-vagabond cosmic-vagabond commented Jan 7, 2025

Description

What has Changed?

Add support to Dec34 type to handle up to 34 decimal places for price calculation using asset with high decimal precision (e.g. WETH 18 decimals)

Test results

EVM token price (0.004)

$ elysd q oracle show-price WETH
price:
  asset: WETH
  block_height: "668964"
  price: "0.004000000000000000"
  provider: elys10d07y265gmmuvt4z0w9aw880jnsr700j6z2zm3
  source: elys
  timestamp: "1736437787"

Swap estimation retrieves correct price and amount:

$ elysd q amm swap-estimation-by-denom 1$WETH $weth $usdc

amount:
  amount: "3990"
  denom: ibc/F082B65C88E4B6D5EF1DB243CDA1D331D002759E938A0F5CD3FFDC5D53B3E349
available_liquidity:
  amount: "100000000000"
  denom: ibc/F082B65C88E4B6D5EF1DB243CDA1D331D002759E938A0F5CD3FFDC5D53B3E349
discount: "0.000000000000000000"
in_route:
- pool_id: "3"
  token_out_denom: ibc/F082B65C88E4B6D5EF1DB243CDA1D331D002759E938A0F5CD3FFDC5D53B3E349
out_route: []
price_impact: "0.99999999999900259975"
slippage: "0.000099999999999999999999999999999999"
spot_price: "0.00400040004000400040004000400040004"
swap_fee: "0.002000000000000000"
weight_balance_ratio: "-0.0005001251219032960793880326679998092"

Inverse price accurate:

$ elysd q amm swap-estimation-by-denom 1$USDC $usdc $weth 
amount:
  amount: "249972500399982666971"
  denom: weth-wei
available_liquidity:
  amount: "25000000000000000000000000"
  denom: weth-wei
discount: "0.000000000000000000"
in_route:
- pool_id: "3"
  token_out_denom: weth-wei
out_route: []
price_impact: "-999990000598.9906669506950695069507"
slippage: "0.00000999940000933304930493049304930493"
spot_price: "249.975"
swap_fee: "0.000000000000000000"
weight_balance_ratio: "0"

Author Checklist

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

I have...

  • included the correct type prefix in the PR title
  • added ! to the type prefix if API or client breaking change
  • targeted the correct branch (see PR Targeting)
  • provided a link to the relevant issue or specification
  • followed the guidelines for building modules
  • included the necessary unit and integration tests
  • included comments for documenting Go code
  • updated the relevant documentation or specification
  • reviewed "Files changed" and left comments if necessary
  • confirmed all CI checks have passed

Reviewers Checklist

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

I have...

  • confirmed the correct type prefix in the PR title
  • confirmed ! in the type prefix if API or client breaking change
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic
  • reviewed API design and naming
  • reviewed documentation is accurate
  • reviewed tests and test coverage
  • manually tested (if applicable)

Deployment Notes

Are there any specific considerations to take into account when deploying these changes? This may include new dependencies, scripts that need to be executed, or any aspects that can only be evaluated in a deployed environment.

Screenshots and Videos

Please provide any relevant before and after screenshots by uploading them here. Additionally, demo videos can be highly beneficial in demonstrating the process.

…acyDec to work with decimal places less than -18
Copy link

codecov bot commented Jan 10, 2025

Codecov Report

Attention: Patch coverage is 40.63205% with 789 lines in your changes missing coverage. Please review.

Project coverage is 44.70%. Comparing base (9b5196f) to head (4333e09).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1100      +/-   ##
==========================================
- Coverage   45.08%   44.70%   -0.38%     
==========================================
  Files         967      972       +5     
  Lines       37017    37688     +671     
==========================================
+ Hits        16688    16848     +160     
- Misses      19023    19517     +494     
- Partials     1306     1323      +17     
Components Coverage Δ
leveragelp_transactions 75.00% <ø> (ø)
leveragelp_lifecycle 82.72% <100.00%> (ø)
leveragelp_keeper 85.41% <ø> (ø)
leveragelp_queries 8.94% <20.00%> (ø)
accountedpool_transactions 100.00% <ø> (ø)
accountedpool_lifecycle ∅ <ø> (∅)
accountedpool_queries 65.04% <ø> (ø)
amm_transactions 80.28% <100.00%> (ø)
amm_lifecycle 90.66% <ø> (ø)
amm_keeper 73.59% <100.00%> (ø)
amm_queries 44.75% <66.66%> (ø)
assetprofile_transactions 76.85% <ø> (ø)
assetprofile_lifecycle ∅ <ø> (∅)
assetprofile_keeper 80.00% <ø> (ø)
assetprofile_queries 60.00% <ø> (ø)
burner_transactions 0.00% <ø> (ø)
burner_lifecycle ∅ <ø> (∅)
burner_keeper 100.00% <ø> (ø)
burner_queries 62.01% <ø> (ø)
commitment_transactions 74.63% <ø> (ø)
commitment_lifecycle ∅ <ø> (∅)
commitment_keeper 86.17% <ø> (ø)
commitment_queries 26.53% <ø> (ø)
epochs_transactions ∅ <ø> (∅)
epochs_lifecycle 92.00% <ø> (ø)
epochs_keeper 84.61% <ø> (ø)
epochs_queries 26.78% <ø> (ø)
estaking_transactions 68.93% <ø> (ø)
estaking_lifecycle 82.60% <ø> (ø)
estaking_keeper 72.80% <ø> (ø)
estaking_queries 32.71% <ø> (ø)
incentive_transactions ∅ <ø> (∅)
incentive_lifecycle ∅ <ø> (∅)
incentive_keeper ∅ <ø> (∅)
incentive_queries ∅ <ø> (∅)
masterchef_transactions 86.85% <ø> (ø)
masterchef_lifecycle 75.09% <72.72%> (-0.34%) ⬇️
masterchef_keeper 100.00% <ø> (ø)
masterchef_queries 22.67% <45.00%> (ø)
oracle_transactions 27.27% <ø> (ø)
oracle_lifecycle 30.00% <ø> (ø)
oracle_keeper 61.11% <ø> (ø)
oracle_queries 12.73% <ø> (ø)
parameter_transactions 18.86% <ø> (ø)
parameter_lifecycle ∅ <ø> (∅)
parameter_keeper 75.00% <ø> (ø)
parameter_queries 57.14% <ø> (ø)
stablestake_transactions 81.53% <ø> (ø)
stablestake_lifecycle 100.00% <ø> (ø)
stablestake_keeper 90.47% <ø> (ø)
stablestake_queries 100.00% <ø> (ø)
perpetual_transactions 79.56% <ø> (ø)
perpetual_lifecycle 90.90% <ø> (ø)
perpetual_keeper 58.40% <ø> (ø)
perpetual_queries 61.40% <100.00%> (ø)
tier_transactions 100.00% <ø> (ø)
tier_lifecycle 100.00% <ø> (ø)
tier_keeper 90.90% <ø> (ø)
tier_queries 30.75% <77.27%> (ø)
tokenomics_transactions 71.87% <ø> (ø)
tokenomics_lifecycle ∅ <ø> (∅)
tokenomics_keeper 80.00% <ø> (ø)
tokenomics_queries 69.60% <ø> (ø)
transferhook_transactions ∅ <ø> (∅)
transferhook_lifecycle ∅ <ø> (∅)
transferhook_keeper 100.00% <ø> (ø)
transferhook_queries 11.11% <ø> (ø)
tradeshield_transactions 74.29% <ø> (ø)
tradeshield_lifecycle ∅ <ø> (∅)
tradeshield_keeper 90.90% <100.00%> (ø)
tradeshield_queries 21.55% <ø> (ø)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant