ict_advanced | Cryptocurrency

Telegram-канал ict_advanced - ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

4715

کلیه محتوای این چنل رایگان است و رایگان باقی خواهد ماند .اشتراک هر سیگنال فقط جهت آموزش است .ورود به این چنل یعنی شما به استاپ لاس و مدیریت ریسک پایبند هستید .🛑 https://x.com/ICT_ADVANCED?t=6pj7NrzWBVhkPO8zqcsfIQ&s=09

Subscribe to a channel

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

کد ارتقا یافته ی RMS ERROR

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

اره اون بدرد نمیخوره چون مفتی بدستش اوردی

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

مگه اون کد که بهت دادم بای و سل نمیده

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

یه پست . جوری حالم رو بد کرد که حس میکنم هیچ انرژی ندارم .
تورا به خدا هر چرت و پرتی که به ذهنت میرسه رو برام نفرست

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

بالای چارت سمت راست بالای ای میل
اون ایدی سی تریدر شما هست
اون اعداد که ارسال فرمودید
شماره ی حساب هستن

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

نخیر فقط به یک نفر
و دیگر هیچ

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

وسطش هم به ۶ قسمت تقسیم کنید
و به چهار قسمت

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

که در هیچ همه هیچ است و دیگر هیچ

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

خب دو نفر اعضای تردینگ روم
میشد من چهار ماه واستون قصه بگم
و میشد
سر و تهش رو در کد ها هم بیاریم
ایدی سی تریدر خودتون رو بفرستید
تا کاتانا رو بهتون بدم 😉

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

دوست عزیز خجالت کشیدم بدرد من نمیخوره
تو چند ماهه چتت با من بازه و دریغ از بیست تا چارت

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

اقا لوله کش میخانا 😁

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

پروفسور سارا امیری :)

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

1. تخصصی بودن: سالیدیتی برای قراردادهای هوشمند، گولنگ برای زیرساخت
2. عملکرد: گولنگ برای کارهای سنگین پردازشی، سالیدیتی برای منطق کسب‌وکار روی بلاکچین
3. اکوسیستم: سالیدیتی برای اتریوم و EVM، گولنگ برای پیاده‌سازی بلاکچین‌های جدید
4. یادگیری: سالیدیتی برای توسعه‌دهندگان وب آشنا تر، گولنگ برای مهندسان سیستم

### توصیه نهایی:

- اگر روی قراردادهای هوشمند و DApps کار می‌کنید، سالیدیتی را یاد بگیرید
- اگر روی پیاده‌سازی بلاکچین‌های جدید یا ابزارهای حول بلاکچین کار می‌کنید، گولنگ انتخاب بهتری است
- بسیاری از توسعه‌دهندگان حرفه‌ای بلاکچین به هر دو زبان مسلط هستند

## نمونه کد ترکیبی (تعامل گولنگ با قرارداد سالیدیتی):

package main

import (
"fmt"
"log"
"math/big"

"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/crypto"
)

func main() {
client, err := ethclient.Dial("https://mainnet.infura.io/v3/YOUR_PROJECT_ID")
if err != nil {
log.Fatal(err)
}

privateKey, err := crypto.HexToECDSA("YOUR_PRIVATE_KEY")
if err != nil {
log.Fatal(err)
}

auth, err := bind.NewKeyedTransactorWithChainID(privateKey, big.NewInt(1))
if err != nil {
log.Fatal(err)
}

contractAddress := common.HexToAddress("0xContractAddress")
instance, err := NewMyToken(contractAddress, client)
if err != nil {
log.Fatal(err)
}

// فراخوانی تابع قرارداد هوشمند
tx, err := instance.Transfer(auth, common.HexToAddress("0xRecipient"), big.NewInt(1000000000000000000))
if err != nil {
log.Fatal(err)
}

fmt.Printf("Transaction sent: %s\n", tx.Hash().Hex())
}

این مقاله نشان می‌دهد که سالیدیتی و گولنگ هر کدام در جایگاه خود در اکوسیستم بلاکچین ضروری هستند. انتخاب بین آنها یا استفاده ترکیبی از هر دو بستگی به نیازهای خاص پروژه شما دارد.

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

چرا سالیدیتی و گولنک !؟
مقاله از inner circle viper

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

const { TonClient, WalletContractV4, internal } = require("ton");
const { mnemonicToWalletKey } = require("ton-crypto");

async function transferTokens() {
const client = new TonClient({
endpoint: "https://toncenter.com/api/v2/jsonRpc",
apiKey: "YOUR_API_KEY"
});

const mnemonic = "your wallet mnemonic phrase".split(" ");
const key = await mnemonicToWalletKey(mnemonic);
const wallet = WalletContractV4.create({ publicKey: key.publicKey, workchain: 0 });

const tokenAddress = Address.parse("EQD..."); // Your token address
const recipient = Address.parse("EQD..."); // Recipient address

const body = new Cell();
body.bits.writeUint(0x7362d09c, 32); // transfer opcode
body.bits.writeAddress(recipient);
body.bits.writeCoins(100 * 1000000000); // 100 tokens (with decimals)
body.bits.writeUint(0, 8); // send mode

const seqno = await wallet.getSeqno();
const transfer = wallet.createTransfer({
secretKey: key.secretKey,
seqno: seqno,
messages: [
internal({
to: tokenAddress,
value: "0.5", // TON for gas
body: body
})
]
});

await client.sendExternalMessage(wallet, transfer);
console.log("Transfer initiated!");
}

transferTokens();

### بررسی موجودی (getBalance.js)

const { TonClient } = require("ton");

async function getBalance() {
const client = new TonClient({
endpoint: "https://toncenter.com/api/v2/jsonRpc",
apiKey: "YOUR_API_KEY"
});

const tokenAddress = Address.parse("EQD..."); // Your token address
const userAddress = Address.parse("EQD..."); // User address

const result = await client.runMethod(tokenAddress, "get_balance");
console.log("Balance:", result.stack.readNumber() / 1000000000); // Convert from nano-tokens
}

getBalance();

## گام 7: تست قرارداد

برای تست قرارداد میتوانید از شبکههای تست TON استفاده کنید:

1. Testnet: https://testnet.ton.org
2. Sandbox: محیط توسعه محلی

## گام 8: استقرار روی شبکه اصلی

پس از تست کامل، میتوانید قرارداد را روی شبکه اصلی TON مستقر کنید:

1. مطمئن شوید به اندازه کافی TON برای هزینه گس دارید
2. آدرس endpoint را به شبکه اصلی تغییر دهید
3. قرارداد را مستقر کنید

## نکات مهم

1. امنیت: کد قرارداد را به دقت بررسی کنید
2. گس: همیشه به اندازه کافی TON برای هزینه تراکنشها در نظر بگیرید
3. استانداردها: میتوانید از استانداردهای موجود مانند TEP-74 (معادل ERC-20 در TON) استفاده کنید
4. آپگرید: امکان آپگرید قراردادهای TON پس از استقرار وجود ندارد، پس قبل از استقرار نهایی کاملا تست کنید

## منابع بیشتر

1. مستندات رسمی TON: https://ton.org/docs/
2. نمونه قراردادهای TON: https://github.com/ton-community/ton-contracts
3. ابزارهای توسعه: https://ton-community.github.io/tondev/

این راهنمای کامل تمام مراحل ایجاد یک توکن ساده روی بلاکچین TON را پوشش میدهد. برای توکنهای پیشرفتهتر میتوانید قابلیتهایی مانند mint/burn، تاییدیهها، و امکانات DeFi اضافه کنید.

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

به خداوند قسم اگه ده هزار دلار بهم میدادن . نمیفروختمش

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

همش چشمتون دنبال یه چیز بهتره

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

بیست بار امدم بلاکت کنم . دلم نیامد .
تمام کن اون نفهمی رو

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

خب خواهرای گلم . که افتخار تدریس بهشون رو داشتم .
برای تعدادی از شما لینک گروه خاصی رو میفرستم .
من فکر میکنم . تعامل باعث میشه بهتر
کار کنید و به هم دیگه هم کمک کنید

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

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

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

مفت ۳۰۰ دلار ناقابل

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

کرک الگوریتم بیتکوین
اون بالاش
اونم پایینش

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

اگر بعد از کمی اموزش و دریافت کد ها
پراپ ها رو بتونید پاس کنید و سود کنید
هزینه پرداختی هم بهتون بر میگردونم
و اگر نه که هیچ

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

اهان وایپر نگاه نمیکنه . چون دوتا تیک نمی خورن :)

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

خدا بیامرز عمو جانی . کجایی

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

از این تاریخ به بعد در این چنل فقط
در مورد فیزیک . ریاضی و برنامه نویسی و علوم پایه صحبت خواهد شد .
و هیچ پستی در خصوص مارکت های مالی منتشر نمیشود 🛑

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

@ICT_ADVANCED

The walker time liner theroy

@ICT_ADVANCED

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

# چرا سالیدیتی و گولنگ؟ بررسی ویژگی‌ها، کاربردها و برتری‌های این زبان‌ها در پیاده‌سازی بلاکچین

## مقدمه

در دنیای توسعه بلاکچین و قراردادهای هوشمند، دو زبان برنامه‌نویسی سالیدیتی (Solidity) و گولنگ (Golang) جایگاه ویژه‌ای دارند. این مقاله به بررسی دلایل محبوبیت این زبان‌ها، ویژگی‌های کلیدی، کاربردها و مزایای آن‌ها در توسعه اکوسیستم بلاکچین می‌پردازد.

## بخش ۱: سالیدیتی - زبان استاندارد قراردادهای هوشمند

### ویژگی‌های کلیدی سالیدیتی

1. تخصصی برای اتریوم:
- طراحی شده مخصوص ماشین مجازی اتریوم (EVM)
- سینتکس شبیه به JavaScript و C++

2. امنیت:
- قابلیت‌های امنیتی داخلی
- پشتیبانی از modifierها برای کنترل دسترسی

// مثال کنترل دسترسی با modifier
contract Ownable {
address public owner;

modifier onlyOwner() {
require(msg.sender == owner, "Not owner");
_;
}

constructor() {
owner = msg.sender;
}
}

3. پشتیبانی از استانداردهای توکن:
- ERC-20، ERC-721، ERC-1155

// مثال پیاده‌سازی ساده ERC-20
contract MyToken is IERC20 {
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;

function transfer(address to, uint256 amount) external returns (bool) {
balanceOf[msg.sender] -= amount;
balanceOf[to] += amount;
emit Transfer(msg.sender, to, amount);
return true;
}
}

### کاربردهای سالیدیتی

1. توسعه قراردادهای هوشمند
2. توکن‌های دیجیتال و NFTها
3. پروتکل‌های DeFi (مانند Uniswap, Aave)
4. سازمان‌های خودگردان غیرمتمرکز (DAOs)

### مزایای سالیدیتی

- اکوسیستم گسترده: ابزارهای توسعه جامع (Truffle, Hardhat)
- جامعه بزرگ توسعه‌دهندگان
- مستندات غنی و نمونه‌کدهای فراوان

## بخش ۲: گولنگ - قدرت پشت بسیاری از بلاکچین‌های مدرن

### ویژگی‌های کلیدی گولنگ

1. کارایی بالا:
- کامپایل به کد ماشین
- مدیریت حافظه کارآمد

2. همروندی (Concurrency) عالی:
- گوروتین‌ها (goroutines)
- کانال‌ها (channels)

// مثال استفاده از گوروتین و کانال در گولنگ
func processBlock(block Block, results chan<- Result) {
// پردازش بلاک
result := validateBlock(block)
results <- result
}

func main() {
blocks := getBlocksToProcess()
results := make(chan Result, len(blocks))

for _, block := range blocks {
go processBlock(block, results)
}

for range blocks {
fmt.Println(<-results)
}
}

3. سادگی و خوانایی:
- سینتکس تمیز و ساده
- عدم وجود ویژگی‌های پیچیده (مانند ارث‌بری چندگانه)

### کاربردهای گولنگ در بلاکچین

1. پیاده‌سازی نودهای بلاکچین (مانند Hyperledger Fabric, Go-Ethereum)
2. سرویس‌های بک‌اند برای DApps
3. ابزارهای CLI برای تعامل با بلاکچین‌ها
4. پیاده‌سازی پروتکل‌های لایه‌۲

### مزایای گولنگ در بلاکچین

- سرعت اجرای بالا: مناسب برای پردازش تراکنش‌ها
- مصرف بهینه منابع: مهم برای نودهای بلاکچین
- پشتیبانی از چندپلتفرمی: اجرا روی انواع سیستم‌ها

## بخش ۳: مقایسه و موارد استفاده مناسب

### سالیدیتی مناسب است وقتی:

1. نیاز به توسعه قرارداد هوشمند روی EVM دارید
2. می‌خواهید با اکوسیستم اتریوم تعامل داشته باشید
3. پروژه شما نیاز به استانداردهای موجود دارد

### گولنگ مناسب است وقتی:

1. نیاز به پیاده‌سازی هسته بلاکچین دارید
2. عملکرد بالا و مصرف بهینه منابع مهم است
3. نیاز به توسعه ابزارها و سرویس‌های حول بلاکچین دارید

### ترکیب قدرتمند:

بسیاری از پروژه‌های موفق از هر دو زبان استفاده می‌کنند:

// مثال: سرویس ایندکس کننده رویدادهای قرارداد هوشمند در گولنگ
func watchEvents(client *ethclient.Client, contractAddr common.Address) {
query := ethereum.FilterQuery{
Addresses: []common.Address{contractAddr},
}

logs := make(chan types.Log)
sub, err := client.SubscribeFilterLogs(context.Background(), query, logs)
if err != nil {
log.Fatal(err)
}

for {
select {
case err := <-sub.Err():
log.Fatal(err)
case vLog := <-logs:
event, err := parseEvent(vLog)
if err != nil {
continue
}
processEvent(event)
}
}
}

## بخش ۴: جمع‌بندی و نتیجه‌گیری

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

در اینده با قرارداد های هوشمند و نحوه ی دیپلوی و مفاهیم بلاکچین بیشتر آشنا خواهیم شد

Читать полностью…

ICT𝘼𝘿𝙑𝘼𝙉𝘾𝙀𝘿️(𝐙𝐞𝐭𝐚 𝐜𝐢𝐫𝐜𝐥𝐞 𝐢𝐧𝐧𝐞𝐫 𝐜𝐢𝐫𝐜𝐥𝐞 𝐯𝐢𝐩𝐞𝐫️)™️

# ساخت توکن روی بلاکچین TON (The Open Network)

در این راهنمای جامع، نحوه ایجاد یک توکن روی بلاکچین TON را به صورت گام به گام با جزئیات فنی و کدهای لازم را شرح خواهم داد
Inner circle viper

## پیشنیازها

1. آشنایی با مفاهیم بلاکچین و قراردادهای هوشمند
2. نصب Node.js و npm
3. آشنایی با زبانهای FunC و Fift (برای TON)
4. نصب Ton CLI یا TonDev (اختیاری)

## گام 1: راهاندازی محیط توسعه

### نصب ابزارهای لازم

npm install -g ton-dev-cli

یا برای کاربران Linux/Mac:

curl --proto '=https' --tlsv1.2 -sSf https://ton-community.github.io/tondev/install.sh | sh

## گام 2: ایجاد پروژه جدید

mkdir ton-token
cd ton-token
npm init -y
npm install ton ton-core ton-crypto

## گام 3: طراحی توکن

قبل از کدنویسی، مشخصات توکن خود را تعیین کنید:
- نام توکن
- نماد توکن
- تعداد اعشار
- عرضه کل
- قابلیتهای خاص (مثل mint/burn)

## گام 4: نوشتن قرارداد هوشمند

### قرارداد توکن در FunC (token.fc)

#include "stdlib.func";

;; Constants
const int TOKEN_NAME = "MyToken";
const int TOKEN_SYMBOL = "MTK";
const int DECIMALS = 9;
const int TOTAL_SUPPLY = 1000000000 * 1000000000; ;; 1B tokens with 9 decimals

;; Storage structure
global int balance;
global int owner;

;; Initialize contract
() recv_internal(int msg_value, cell in_msg, slice in_msg_body) impure {
;; Check if this is initial deployment
if (in_msg_body.slice_empty?()) {
owner = in_msg_body~load_msg_addr();
balance = TOTAL_SUPPLY;
return ();
}

;; Handle transfers
int op = in_msg_body~load_uint(32);
if (op == 0x7362d09c) { ;; transfer opcode
handle_transfer(in_msg_body);
}
}

() handle_transfer(slice in_msg_body) impure {
int to_addr = in_msg_body~load_msg_addr();
int amount = in_msg_body~load_coins();
int send_mode = in_msg_body~load_uint(8);

;; Validate balance
throw_if(101, amount > balance);

;; Update balances
balance -= amount;

;; Send tokens
cell msg = begin_cell()
.store_uint(0x18, 6) ;; mode
.store_slice(to_addr)
.store_coins(amount)
.store_uint(0, 1 + 4 + 4 + 64 + 32 + 1 + 1)
.end_cell();

send_raw_message(msg, send_mode);
}

;; Getter methods
int get_balance() method_id {
return balance;
}

int get_owner() method_id {
return owner;
}

slice get_token_name() method_id {
return TOKEN_NAME;
}

slice get_token_symbol() method_id {
return TOKEN_SYMBOL;
}

int get_decimals() method_id {
return DECIMALS;
}

int get_total_supply() method_id {
return TOTAL_SUPPLY;
}

### کامپایل قرارداد

برای کامپایل قرارداد به Fift و سپس به کد بایت نیاز داریم:

func -o token.fif -SPA token.fc
fift -s token.fif

## گام 5: استقرار قرارداد روی شبکه TON

### اسکریپت استقرار (deploy.js)

const { TonClient, WalletContractV4, internal } = require("ton");
const { mnemonicToWalletKey } = require("ton-crypto");

async function deployToken() {
// Initialize client
const client = new TonClient({
endpoint: "https://toncenter.com/api/v2/jsonRpc",
apiKey: "YOUR_API_KEY" // Get from toncenter.com
});

// Load wallet
const mnemonic = "your wallet mnemonic phrase".split(" ");
const key = await mnemonicToWalletKey(mnemonic);
const wallet = WalletContractV4.create({ publicKey: key.publicKey, workchain: 0 });

// Prepare contract
const contractCode = "token.cell"; // Compiled code
const contractData = new Cell();
contractData.bits.writeAddress(wallet.address); // Owner address
contractData.bits.writeCoins(1000000000 * 1000000000); // Initial supply

// Deploy
const seqno = await wallet.getSeqno();
const transfer = wallet.createTransfer({
secretKey: key.secretKey,
seqno: seqno,
messages: [
internal({
to: "new contract address",
value: "1",
body: contractCode,
stateInit: contractData
})
]
});

await client.sendExternalMessage(wallet, transfer);
console.log("Token deployed successfully!");
}

deployToken();

## گام 6: تعامل با توکن

### ارسال توکن (transfer.js)

Читать полностью…
Subscribe to a channel