Skip to content

Commit c389b5b

Browse files
authored
Merge pull request #292 from InjectiveLabs/feat/add_chain_values_converters
Feat/add chain values converters
2 parents ccffe81 + 7dc40e5 commit c389b5b

12 files changed

+438
-94
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [1.1.0] - 2024-01-15
6+
### Added
7+
- Added new functions in all Market classes to convert values from extended chain format (the ones provided by chain streams) into human-readable format
8+
9+
### Changed
10+
- Updated proto definitions for Indexer node using version v1.12.79.1
11+
- Updated market and tokens INI configuration files
12+
13+
514
## [1.0.1] - 2024-01-08
615
### Added
716
- Added low level API components for all modules (chain, exchain and explorer) to make the Python SDK compatible with the TypeScript SDK.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ clone-injective-core:
3131
git clone https://github.com/InjectiveLabs/injective-core.git -b v1.12.0 --depth 1 --single-branch
3232

3333
clone-injective-indexer:
34-
git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.12.72 --depth 1 --single-branch
34+
git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.12.79.1 --depth 1 --single-branch
3535

3636
clone-cometbft:
3737
git clone https://github.com/InjectiveLabs/cometbft.git -b v0.37.2-inj --depth 1 --single-branch

pyinjective/core/market.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ def price_from_chain_format(self, chain_value: Decimal) -> Decimal:
4242
decimals = self.base_token.decimals - self.quote_token.decimals
4343
return chain_value * Decimal(f"1e{decimals}")
4444

45+
def quantity_from_extended_chain_format(self, chain_value: Decimal) -> Decimal:
46+
return self._from_extended_chain_format(chain_value=self.quantity_from_chain_format(chain_value=chain_value))
47+
48+
def price_from_extended_chain_format(self, chain_value: Decimal) -> Decimal:
49+
return self._from_extended_chain_format(chain_value=self.price_from_chain_format(chain_value=chain_value))
50+
51+
def _from_extended_chain_format(self, chain_value: Decimal) -> Decimal:
52+
return chain_value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}")
53+
4554

4655
@dataclass(eq=True, frozen=True)
4756
class DerivativeMarket:
@@ -107,6 +116,18 @@ def price_from_chain_format(self, chain_value: Decimal) -> Decimal:
107116
def margin_from_chain_format(self, chain_value: Decimal) -> Decimal:
108117
return chain_value * Decimal(f"1e-{self.quote_token.decimals}")
109118

119+
def quantity_from_extended_chain_format(self, chain_value: Decimal) -> Decimal:
120+
return self._from_extended_chain_format(chain_value=self.quantity_from_chain_format(chain_value=chain_value))
121+
122+
def price_from_extended_chain_format(self, chain_value: Decimal) -> Decimal:
123+
return self._from_extended_chain_format(chain_value=self.price_from_chain_format(chain_value=chain_value))
124+
125+
def margin_from_extended_chain_format(self, chain_value: Decimal) -> Decimal:
126+
return self._from_extended_chain_format(chain_value=self.margin_from_chain_format(chain_value=chain_value))
127+
128+
def _from_extended_chain_format(self, chain_value: Decimal) -> Decimal:
129+
return chain_value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}")
130+
110131

111132
@dataclass(eq=True, frozen=True)
112133
class BinaryOptionMarket:
@@ -179,3 +200,18 @@ def quantity_from_chain_format(self, chain_value: Decimal, special_denom: Option
179200
def price_from_chain_format(self, chain_value: Decimal, special_denom: Optional[Denom] = None) -> Decimal:
180201
decimals = self.quote_token.decimals if special_denom is None else special_denom.quote
181202
return chain_value * Decimal(f"1e-{decimals}")
203+
204+
def quantity_from_extended_chain_format(
205+
self, chain_value: Decimal, special_denom: Optional[Denom] = None
206+
) -> Decimal:
207+
return self._from_extended_chain_format(
208+
chain_value=self.quantity_from_chain_format(chain_value=chain_value, special_denom=special_denom)
209+
)
210+
211+
def price_from_extended_chain_format(self, chain_value: Decimal, special_denom: Optional[Denom] = None) -> Decimal:
212+
return self._from_extended_chain_format(
213+
chain_value=self.price_from_chain_format(chain_value=chain_value, special_denom=special_denom)
214+
)
215+
216+
def _from_extended_chain_format(self, chain_value: Decimal) -> Decimal:
217+
return chain_value / Decimal(f"1e{ADDITIONAL_CHAIN_FORMAT_DECIMALS}")

pyinjective/denoms_devnet.ini

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,15 @@ min_display_price_tick_size = 0.001
169169
min_quantity_tick_size = 10000000000000
170170
min_display_quantity_tick_size = 0.00001
171171

172+
[0xdf9317eac1739a23bc385e264afde5d480c0b3d2322660b5efd206071d4e70b7]
173+
description = 'Devnet Spot NINJA/INJ'
174+
base = 6
175+
quote = 18
176+
min_price_tick_size = 1000000
177+
min_display_price_tick_size = 0.000001
178+
min_quantity_tick_size = 10000000
179+
min_display_quantity_tick_size = 10
180+
172181
[0x1422a13427d5eabd4d8de7907c8340f7e58cb15553a9fd4ad5c90406561886f9]
173182
description = 'Devnet Derivative COMP/USDT PERP'
174183
base = 0
@@ -299,6 +308,10 @@ decimals = 18
299308
peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0
300309
decimals = 18
301310

311+
[NINJA]
312+
peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja
313+
decimals = 6
314+
302315
[PROJ]
303316
peggy_denom = proj
304317
decimals = 18

pyinjective/denoms_mainnet.ini

Lines changed: 74 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -558,12 +558,12 @@ min_display_quantity_tick_size = 1
558558

559559
[0x75f6a79b552dac417df219ab384be19cb13b53dec7cf512d73a965aee8bc83af]
560560
description = 'Mainnet Spot USDY/USDT'
561-
base = 6
561+
base = 18
562562
quote = 6
563563
min_price_tick_size = 0.0000000000000001
564-
min_display_price_tick_size = 0.0000000000000001
564+
min_display_price_tick_size = 0.0001
565565
min_quantity_tick_size = 100000000000000000
566-
min_display_quantity_tick_size = 100000000000
566+
min_display_quantity_tick_size = 0.1
567567

568568
[0x689ea50a30b0aeaf162e57100fefe5348a00099774f1c1ebcd90c4b480fda46a]
569569
description = 'Mainnet Spot WHALE/USDT'
@@ -587,10 +587,10 @@ min_display_quantity_tick_size = 0.01
587587
description = 'Mainnet Spot KIRA/INJ'
588588
base = 6
589589
quote = 18
590-
min_price_tick_size = 1000000
591-
min_display_price_tick_size = 0.000001
592-
min_quantity_tick_size = 10000000
593-
min_display_quantity_tick_size = 10
590+
min_price_tick_size = 10000
591+
min_display_price_tick_size = 0.00000001
592+
min_quantity_tick_size = 1000000000
593+
min_display_quantity_tick_size = 1000
594594

595595
[0xdf9317eac1739a23bc385e264afde5d480c0b3d2322660b5efd206071d4e70b7]
596596
description = 'Mainnet Spot NINJA/INJ'
@@ -605,10 +605,10 @@ min_display_quantity_tick_size = 10
605605
description = 'Mainnet Spot KATANA/INJ'
606606
base = 6
607607
quote = 18
608-
min_price_tick_size = 1000000
609-
min_display_price_tick_size = 0.000001
610-
min_quantity_tick_size = 10000000
611-
min_display_quantity_tick_size = 10
608+
min_price_tick_size = 10000
609+
min_display_price_tick_size = 0.00000001
610+
min_quantity_tick_size = 1000000000
611+
min_display_quantity_tick_size = 1000
612612

613613
[0x23983c260fc8a6627befa50cfc0374feef834dc1dc90835238c8559cc073e08f]
614614
description = 'Mainnet Spot BRETT/INJ'
@@ -619,6 +619,15 @@ min_display_price_tick_size = 0.000001
619619
min_quantity_tick_size = 10000000
620620
min_display_quantity_tick_size = 10
621621

622+
[0x6de141d12691dd13fffcc4e3ceeb09191ff445e1f10dfbecedc63a1e365fb6cd]
623+
description = 'Mainnet Spot ZIG/INJ'
624+
base = 18
625+
quote = 18
626+
min_price_tick_size = 0.000001
627+
min_display_price_tick_size = 0.000001
628+
min_quantity_tick_size = 10000000000000000000
629+
min_display_quantity_tick_size = 10
630+
622631
[0x02b56c5e6038f0dd795efb521718b33412126971608750538409f4b81ab5da2f]
623632
description = 'Mainnet Spot nINJ/INJ'
624633
base = 18
@@ -628,6 +637,42 @@ min_display_price_tick_size = 0.0001
628637
min_quantity_tick_size = 1000000000000000
629638
min_display_quantity_tick_size = 0.001
630639

640+
[0x9b13c89f8f10386b61dd3a58aae56d5c7995133534ed65ac9835bb8d54890961]
641+
description = 'Mainnet Spot SNOWY/INJ'
642+
base = 6
643+
quote = 18
644+
min_price_tick_size = 1000000
645+
min_display_price_tick_size = 0.000001
646+
min_quantity_tick_size = 1000000
647+
min_display_quantity_tick_size = 1
648+
649+
[0xb3f38c081a1817bb0fc717bf869e93f5557c10851db4e15922e1d9d2297bd802]
650+
description = 'Mainnet Spot AUTISM/INJ'
651+
base = 6
652+
quote = 18
653+
min_price_tick_size = 1000000
654+
min_display_price_tick_size = 0.000001
655+
min_quantity_tick_size = 10000000
656+
min_display_quantity_tick_size = 10
657+
658+
[0xd0ba680312852ffb0709446fff518e6c4d798fb70cfd2699aba3717a2517cfd5]
659+
description = 'Mainnet Spot APP/INJ'
660+
base = 18
661+
quote = 6
662+
min_price_tick_size = 0.000000000000000001
663+
min_display_price_tick_size = 0.000001
664+
min_quantity_tick_size = 10000000000000000000
665+
min_display_quantity_tick_size = 10
666+
667+
[0x05288e393771f09c923d1189e4265b7c2646b6699f08971fd2adf0bfd4b1ce7a]
668+
description = 'Mainnet Spot APP/INJ '
669+
base = 18
670+
quote = 18
671+
min_price_tick_size = 0.000001
672+
min_display_price_tick_size = 0.000001
673+
min_quantity_tick_size = 10000000000000000000
674+
min_display_quantity_tick_size = 10
675+
631676
[0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce]
632677
description = 'Mainnet Derivative BTC/USDT PERP'
633678
base = 0
@@ -682,15 +727,6 @@ min_display_price_tick_size = 0.001
682727
min_quantity_tick_size = 0.01
683728
min_display_quantity_tick_size = 0.01
684729

685-
[0xcf18525b53e54ad7d27477426ade06d69d8d56d2f3bf35fe5ce2ad9eb97c2fbc]
686-
description = 'Mainnet Derivative OSMO/USDT PERP'
687-
base = 0
688-
quote = 6
689-
min_price_tick_size = 1000
690-
min_display_price_tick_size = 0.001
691-
min_quantity_tick_size = 0.01
692-
min_display_quantity_tick_size = 0.01
693-
694730
[0x06c5a306492ddc2b8dc56969766959163287ed68a6b59baa2f42330dda0aebe0]
695731
description = 'Mainnet Derivative SOL/USDT PERP'
696732
base = 0
@@ -727,24 +763,6 @@ min_display_price_tick_size = 0.0001
727763
min_quantity_tick_size = 1
728764
min_display_quantity_tick_size = 1
729765

730-
[0x332230109e7afb839b4750d4cf961666b608071ecb64dac55662dac37529639e]
731-
description = 'Mainnet Derivative BTC/USDTkv PERP'
732-
base = 0
733-
quote = 6
734-
min_price_tick_size = 1000000
735-
min_display_price_tick_size = 1
736-
min_quantity_tick_size = 0.0001
737-
min_display_quantity_tick_size = 0.0001
738-
739-
[0xca3682d053e8c804ea9cd322cfc0476d9016b99210fe42774a61b06e8868fef3]
740-
description = 'Mainnet Derivative ETH/USDTkv PERP'
741-
base = 0
742-
quote = 6
743-
min_price_tick_size = 100000
744-
min_display_price_tick_size = 0.1
745-
min_quantity_tick_size = 0.0001
746-
min_display_quantity_tick_size = 0.0001
747-
748766
[0x4fe7aff4dd27be7cbb924336e7fe2d160387bb1750811cf165ce58d4c612aebb]
749767
description = 'Mainnet Derivative AXL/USDT PERP'
750768
base = 0
@@ -780,6 +798,10 @@ decimals = 18
780798
peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381
781799
decimals = 18
782800

801+
[APP]
802+
peggy_denom = peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439
803+
decimals = 18
804+
783805
[ARB]
784806
peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd
785807
decimals = 8
@@ -788,6 +810,10 @@ decimals = 8
788810
peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9
789811
decimals = 6
790812

813+
[AUTISM]
814+
peggy_denom = factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism
815+
decimals = 6
816+
791817
[AXS]
792818
peggy_denom = peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b
793819
decimals = 18
@@ -853,8 +879,8 @@ peggy_denom = ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC362
853879
decimals = 6
854880

855881
[LDO]
856-
peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk
857-
decimals = 6
882+
peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy
883+
decimals = 8
858884

859885
[LINK]
860886
peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA
@@ -864,10 +890,6 @@ decimals = 18
864890
peggy_denom = ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395
865891
decimals = 6
866892

867-
[Lido DAO]
868-
peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy
869-
decimals = 8
870-
871893
[MATIC]
872894
peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0
873895
decimals = 18
@@ -896,6 +918,10 @@ decimals = 6
896918
peggy_denom = peggy0x4a220E6096B25EADb88358cb44068A3248254675
897919
decimals = 18
898920

921+
[SNOWY]
922+
peggy_denom = factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/SNOWY
923+
decimals = 6
924+
899925
[SNX]
900926
peggy_denom = peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F
901927
decimals = 18
@@ -944,10 +970,6 @@ decimals = 6
944970
peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
945971
decimals = 6
946972

947-
[USDCet]
948-
peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk
949-
decimals = 6
950-
951973
[USDCso]
952974
peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu
953975
decimals = 6
@@ -992,6 +1014,10 @@ decimals = 18
9921014
peggy_denom = ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB
9931015
decimals = 6
9941016

1017+
[ZIG]
1018+
peggy_denom = peggy0xb2617246d0c6c0087f18703d576831899ca94f01
1019+
decimals = 18
1020+
9951021
[axlUSDC]
9961022
peggy_denom = ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0
9971023
decimals = 6

pyinjective/denoms_testnet.ini

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -393,10 +393,6 @@ decimals = 18
393393
peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/atom
394394
decimals = 8
395395

396-
[Cosmos]
397-
peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/atom
398-
decimals = 8
399-
400396
[INJ]
401397
peggy_denom = inj
402398
decimals = 18
@@ -405,10 +401,6 @@ decimals = 18
405401
peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mitotest1
406402
decimals = 18
407403

408-
[MT1]
409-
peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mitotest1
410-
decimals = 18
411-
412404
[PROJ]
413405
peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/proj
414406
decimals = 18
@@ -441,14 +433,10 @@ decimals = 8
441433
peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/zen
442434
decimals = 18
443435

436+
[factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uzen]
437+
peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uzen
438+
decimals = 18
439+
444440
[stINJ]
445441
peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/stinj
446442
decimals = 18
447-
448-
[wBTC]
449-
peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/wbtc
450-
decimals = 8
451-
452-
[wETH]
453-
peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/weth
454-
decimals = 8

0 commit comments

Comments
 (0)