Skip to content

Commit c5645ab

Browse files
authored
Merge pull request #309 from InjectiveLabs/feat/add_trade_reward_campaign_endpoint
Feat/add trade reward campaign endpoint
2 parents a054c55 + aa397a0 commit c5645ab

24 files changed

+926
-314
lines changed

CHANGELOG.md

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

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

5+
## [1.4.0] - 2024-03-11
6+
### Added
7+
- Added support for all queries and messages in the chain 'distribution' module
8+
- Added support for all queries and messages in the chain 'exchange' module
9+
- Use of python-dotenv in all example scripts to load private keys from a .env file
10+
11+
## [1.3.1] - 2024-02-29
12+
### Changed
13+
- Updated cookie assistant logic to support the Indexer exchange server not using cookies and the chain server using them
14+
515
## [1.3.0] - 2024-02-12
616
### Changed
717
- Removed `asyncio` from the dependencies

examples/chain_client/exchange/11_MsgCreateDerivativeMarketOrder.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,11 @@ async def main() -> None:
4343
subaccount_id=subaccount_id,
4444
fee_recipient=fee_recipient,
4545
price=Decimal(50000),
46-
quantity=Decimal(0.01),
46+
quantity=Decimal(0.1),
4747
margin=composer.calculate_margin(
48-
quantity=Decimal(0.01), price=Decimal(50000), leverage=Decimal(3), is_reduce_only=False
48+
quantity=Decimal(0.1), price=Decimal(50000), leverage=Decimal(1), is_reduce_only=False
4949
),
50+
order_type="BUY",
5051
cid=str(uuid.uuid4()),
5152
)
5253

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import asyncio
2+
import os
3+
4+
import dotenv
5+
6+
from pyinjective import PrivateKey
7+
from pyinjective.async_client import AsyncClient
8+
from pyinjective.core.network import Network
9+
10+
11+
async def main() -> None:
12+
dotenv.load_dotenv()
13+
configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY")
14+
15+
# select network: local, testnet, mainnet
16+
network = Network.testnet()
17+
18+
# initialize grpc client
19+
client = AsyncClient(network)
20+
21+
# load account
22+
priv_key = PrivateKey.from_hex(configured_private_key)
23+
pub_key = priv_key.to_public_key()
24+
address = pub_key.to_address()
25+
await client.fetch_account(address.to_acc_bech32())
26+
27+
campaign = await client.fetch_trade_reward_campaign()
28+
print(campaign)
29+
30+
31+
if __name__ == "__main__":
32+
asyncio.get_event_loop().run_until_complete(main())
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import asyncio
2+
import os
3+
4+
import dotenv
5+
6+
from pyinjective import PrivateKey
7+
from pyinjective.async_client import AsyncClient
8+
from pyinjective.core.network import Network
9+
10+
11+
async def main() -> None:
12+
dotenv.load_dotenv()
13+
configured_private_key = os.getenv("INJECTIVE_PRIVATE_KEY")
14+
15+
# select network: local, testnet, mainnet
16+
network = Network.testnet()
17+
18+
# initialize grpc client
19+
client = AsyncClient(network)
20+
21+
# load account
22+
priv_key = PrivateKey.from_hex(configured_private_key)
23+
pub_key = priv_key.to_public_key()
24+
address = pub_key.to_address()
25+
await client.fetch_account(address.to_acc_bech32())
26+
27+
fee_discount = await client.fetch_fee_discount_account_info(
28+
account=address.to_acc_bech32(),
29+
)
30+
print(fee_discount)
31+
32+
33+
if __name__ == "__main__":
34+
asyncio.get_event_loop().run_until_complete(main())
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import asyncio
2+
3+
from pyinjective.async_client import AsyncClient
4+
from pyinjective.core.network import Network
5+
6+
7+
async def main() -> None:
8+
# select network: local, testnet, mainnet
9+
network = Network.testnet()
10+
11+
# initialize grpc client
12+
client = AsyncClient(network)
13+
14+
schedule = await client.fetch_fee_discount_schedule()
15+
print(schedule)
16+
17+
18+
if __name__ == "__main__":
19+
asyncio.get_event_loop().run_until_complete(main())
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import asyncio
2+
3+
from pyinjective.async_client import AsyncClient
4+
from pyinjective.core.network import Network
5+
6+
7+
async def main() -> None:
8+
# select network: local, testnet, mainnet
9+
network = Network.testnet()
10+
11+
# initialize grpc client
12+
client = AsyncClient(network)
13+
14+
mismatches = await client.fetch_balance_mismatches(dust_factor=1)
15+
print(mismatches)
16+
17+
18+
if __name__ == "__main__":
19+
asyncio.get_event_loop().run_until_complete(main())
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import asyncio
2+
3+
from pyinjective.async_client import AsyncClient
4+
from pyinjective.core.network import Network
5+
6+
7+
async def main() -> None:
8+
# select network: local, testnet, mainnet
9+
network = Network.testnet()
10+
11+
# initialize grpc client
12+
client = AsyncClient(network)
13+
14+
balance = await client.fetch_balance_with_balance_holds()
15+
print(balance)
16+
17+
18+
if __name__ == "__main__":
19+
asyncio.get_event_loop().run_until_complete(main())
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import asyncio
2+
3+
from pyinjective.async_client import AsyncClient
4+
from pyinjective.core.network import Network
5+
6+
7+
async def main() -> None:
8+
# select network: local, testnet, mainnet
9+
network = Network.testnet()
10+
11+
# initialize grpc client
12+
client = AsyncClient(network)
13+
14+
statistics = await client.fetch_fee_discount_tier_statistics()
15+
print(statistics)
16+
17+
18+
if __name__ == "__main__":
19+
asyncio.get_event_loop().run_until_complete(main())
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import asyncio
2+
3+
from pyinjective.async_client import AsyncClient
4+
from pyinjective.core.network import Network
5+
6+
7+
async def main() -> None:
8+
# select network: local, testnet, mainnet
9+
network = Network.testnet()
10+
11+
# initialize grpc client
12+
client = AsyncClient(network)
13+
14+
infos = await client.fetch_mito_vault_infos()
15+
print(infos)
16+
17+
18+
if __name__ == "__main__":
19+
asyncio.get_event_loop().run_until_complete(main())
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import asyncio
2+
3+
from pyinjective.async_client import AsyncClient
4+
from pyinjective.core.network import Network
5+
6+
7+
async def main() -> None:
8+
# select network: local, testnet, mainnet
9+
network = Network.testnet()
10+
11+
# initialize grpc client
12+
client = AsyncClient(network)
13+
14+
market_id = await client.fetch_market_id_from_vault(vault_address="inj1qg5ega6dykkxc307y25pecuufrjkxkag6xhp6y")
15+
print(market_id)
16+
17+
18+
if __name__ == "__main__":
19+
asyncio.get_event_loop().run_until_complete(main())

0 commit comments

Comments
 (0)