پارس‌کدرز چگونه کار می‌کند؟

از پارس‌کدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.

پارس‌کدرز خریداران یا کارفرمایان را به مجری‌ها /فریلنسرهای خبره‌ای متصل می‌کند که برای انجام پروژه آماده هستند.

پروژه پایتون (88114))=/

بیست روز پیش منتشر شده

تعداد بازدید: 87

کد پروژه: 538570


شرح پروژه

#پروژه_جدید
#کدپروژه : 88114
موضوع : پروژه پایتون =/
سلام وقت بخیر
یک پروتوتایپ می‌فرستم خدمت شما که ظاهر کلی پروژه ما رو برای شما تعریف می‌کنه برای تخمین قیمت.
همونجور که می‌بینید با گرفتن آدرس ولت و کانترکت توکن کار شروع میشه.
حد سود و حد ضرر و میزان خرید توکن به دلار توسط ما وارد می‌شه.در قسمت سبز رنگ میزان سرمایه فعلی یا دارایی فعلی که در ترید هست نمایش داده می‌شه.
خب تا اینجای کار معمولی بود کار خاصی که می‌خواستیم ما انجام بدیم اجرای دستو حد ضرر شناور هست.
اگر یک توکن خریده بشه یا به حالت سود میره یا به حالت ضرر. می‌خوایم اگر که به حالت سود رفت به میزان سود یا افزایش قیمت توکن, حد ضرر هم بالا بره ولی با ضرر کردن ثابت بمونه.
در قسمت پایین هم نمودار توکن نمایش داده می‌شه که اگر ما دیدیم توکن‌ها فروخته شده با دیدن نموداربتونیم به کمک اون تصمیم به دوباره خریدن آن بگیریم.


البته من برای اینکه بتونم کارم رو استارت بزنم و همینطور قیمت رو پایین بیارم  ترجیح دادم شما یک برنامه بسازین که فقط یک شماره کانترکت رو توی بستر سولانا از ما بگیره و برای ما اون رو سواپ کنه توی صرافی جوپیتر. شماره ولت رو هم از ما بگیره.یغنی  ساده‌ترین فرم ممکن با یک رابط گرافیکی.
در فاز دوم من اون الگوریتمی رو که هنوز کاملش نکردم به شما میگم و شما اون رو در کد اول اعمال می‌کنید.

با توجه به این قیمت رو برای فاز اول که ساده‌ترین فاز هست و برای شروع انتخاب می‌کنیم لطفاً به من بگید


import sys
import requests
from functools import partial
from PyQt5.QtWidgets import (
    QApplication, QMainWindow, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QMessageBox
)

# Jupiter API Endpoints
JUPITER_QUOTE_URL = "https://quote-api.jup.ag/v4/quote"
JUPITER_SWAP_URL = "https://quote-api.jup.ag/v4/swap"


class SolanaSwapApp(QMainWindow):
    def init(self):
        super().init()

        self.setWindowTitle("Solana Token Swap")
        self.setGeometry(100, 100, 400, 300)

        self.init_ui()

    def init_ui(self):
        # Central Widget
        self.central_widget = QWidget()
        self.setCentralWidget(self.central_widget)

        # Layout
        self.layout = QVBoxLayout()
        self.central_widget.setLayout(self.layout)

        # Wallet Address Input
        self.wallet_label = QLabel("Wallet Address:")
        self.wallet_input = QLineEdit()
        self.layout.addWidget(self.wallet_label)
        self.layout.addWidget(self.wallet_input)

        # Contract Address Input
        self.contract_label = QLabel("Contract Address (Token):")
        self.contract_input = QLineEdit()
        self.layout.addWidget(self.contract_label)
        self.layout.addWidget(self.contract_input)

        # Button to Get Price
        self.price_button = QPushButton("Get Token Price (in USDT)")
        self.price_button.clicked.connect(self.get_token_price)
        self.layout.addWidget(self.price_button)

        # Button to Perform Swap
        self.swap_button = QPushButton("Perform Token Swap")
        self.swap_button.clicked.connect(self.perform_swap)
        self.layout.addWidget(self.swap_button)

    def get_token_price(self):
        """
        Fetch the token price in USDT using the Jupiter API.
        """
        wallet = self.wallet_input.text().strip()
        contract = self.contract_input.text().strip()

        if not wallet or not contract:
            QMessageBox.warning(self, "Error", "Please fill out all fields!")
            return

        try:
            amount = 1000000  # Example amount in the smallest unit (e.g., 1 USDT = 1_000_000 micro-units)

            # Requesting price quote
            params = {
                "inputMint": contract,  # Token's mint address
                "outputMint": "Es9vMFrzaCERz8FCrzBXunwxmiu78UZ8MXBfDSTx6GRc",  # USDT mint address
                "amount": amount,  # Amount in smallest denomination
                "slippage": 1
            }
            response = requests.get(JUPITER_QUOTE_URL, params=params)
            if response.status_code == 200:
                data = response.json()
                best_price = data.get("data", [{}])[0].get("outAmount", "N/A")
                calculated_price = int(best_price) / 10 ** 6  # Convert to human-readable format
                QMessageBox.information(self, "Token Price", f"Token Price in USDT: {calculated_price}")
            else:
                QMessageBox.warning(self, "Error", f"Failed to fetch price: {response.text}")
        except Exception as e:
            QMessageBox.critical(self, "Error", f"An error occurred: {e}")

    def perform_swap(self):
        """
        Perform a token swap via the Jupiter API.
        """
        wallet = self.wallet_input.text().strip()
        contract = self.contract_input.text().strip()

        if not wallet or not contract:
            QMessageBox.warning(self, "Error", "Please fill out all fields!")
            return

        try:
            # Dummy swap request details (replace with an actual signed transaction)
            amount = 1000000  # Example amount in smallest unit (e.g., 1 token = 1_000_000 lamports)
            params = {
                "inputMint": contract,
                "outputMint": "Es9vMFrzaCERz8FCrzBXunwxmiu78UZ8MXBfDSTx6GRc",
                "amount": amount,
                "slippage": 1,
                "userPublicKey": wallet,
            }

response = requests.get(JUPITER_SWAP_URL, params=params)
            if response.status_code == 200:
                data = response.json()
                swap_tx = data.get("swapTransaction", None)
                if swap_tx:
                    QMessageBox.information(self, "Swap Complete", "Swap transaction successfully created!")
                    print("Swap Transaction:", swap_tx)
                else:
                    QMessageBox.warning(self, "Error", "Failed to perform token swap.")
            else:
                QMessageBox.warning(self, "Error", f"Failed to perform swap: {response.text}")
        except Exception as e:
            QMessageBox.critical(self, "Error", f"An error occurred: {e}")


if name == "main":
    app = QApplication(sys.argv)
    window = SolanaSwapApp()
    window.show()
    sys.exit(app.exec())

این پروژه شامل 7 فایل مهم است، لطفا قبل از ارسال پیشنهاد حتما نسبت به بررسی این فایل اقدام فرمایید.

مهارت ها و تخصص های مورد نیاز


مهلت برای انجام

10روز

وضعیت مناقصه

بسته


درباره کارفرما

عضویت دو سال پیش

5293 پروژه ثبت شده ،
38 پروژه در حال انجام ،
101 پروژه آماده دریافت پیشنهاد ،
نرخ پذیرش پیشنهاد 24%

برای پیدا کردن پروژه‌های مشابه ثبت نام کنید و پروفایل خود را بسازید.

ورود با گوگل
یا
نام نباید خالی باشد.
نام خانوادگی نباید خالی باشد.

نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟

سفارش پروژه مشابه

قادر به انجام این پروژه هستید؟

ثبت نام کنید

مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است

سری به پروژه‌های مشابه بزنید

روش کار در پارس‌کدرز

به رایگان یک حساب کاربری بسازید

مهارت‌ها و تخصص‌های خود را ثبت کنید، رزومه و نمونه‌کارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.

به شیوه‌ای که دوست دارید کار کنید

برای پروژه‌های دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصت‌های شغلی منحصر به فرد دسترسی پیدا کنید.

با اطمینان دستمزد دریافت کنید

از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.

می‌خواهید شروع به کار کنید؟

یک حساب کاربری بسازید


بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارت‌های شما است.

پیدا کردن کار (پروژه)

تماشای دمو روش کار