Token approval (مجوز توکن)
خلاصه Token approval مجوزی است که به اسمارتکانترکت میدهید تا مقدار مشخصی توکن را از کیف پولتان جابهجا کند؛ معمولاً پیش از سواپ یا دیپازیت لازم است.
در شبکههای EVM مثل اتریوم، BNB Chain و Base، یک کانترکت نمیتواند توکنهای ERC-20 را از کیف پول شما بردارد مگر اینکه ابتدا آن را تأیید کرده باشید. approval که به آن allowance هم میگویند، به کانترکت توکن میگوید یک آدرس مشخص (spender) میتواند تا سقف معینی از طرف شما توکن منتقل کند. به همین دلیل یک DEX پیش از اولین سواپ از شما میخواهد توکن را approve کنید.
از نظر فنی، شما تابع approve(spender, amount) را روی کانترکت توکن فراخوانی میکنید و آن یک allowance ثبت میکند. بعد از آن، spender هر زمان که بخواهد میتواند تا همان سقف تابع transferFrom را صدا بزند، بدون هیچ تأیید دوبارهای از شما. بسیاری از اپلیکیشنها برای صرفهجویی در گس معاملات بعدی مقدار نامحدود درخواست میکنند. برخی توکنها از امضاهای permit هم پشتیبانی میکنند که بهجای تراکنش، با یک امضای آفچین approval ایجاد میکند. سولانا سیستم delegate دارد که تا حدی مشابه کار میکند، هرچند در آنجا اپلیکیشنها بیشتر توکنها را در همان تراکنشی که امضا میکنید جابهجا میکنند.
اهمیت approval ها در این است که بعد از لحظهای که آنها را صادر کردید هم پابرجا میمانند. اگر کانترکت تأییدشده مخرب باشد، بعداً هک شود یا آپگرید شود، میتواند ماهها بعد از استفادهتان توکنهایتان را بردارد. wallet drainer ها و سایتهای فیشینگ روی این حساب میکنند که شما برای باارزشترین توکنهایتان approve بدهید یا permit امضا کنید.
اگر اپلیکیشن اجازه میدهد، فقط همان مقداری را که لازم دارید approve کنید و آدرس spender و مقداری را که کیف پول نشان میدهد بخوانید. به درخواستهای امضایی که به permit اشاره دارند حساستر باشید، چون بیخطر به نظر میرسند اما دسترسی میدهند. approval های فعال خود را گاهی با approval checker در بلاک اکسپلورر یا یک ابزار revoke بررسی کنید و آنهایی را که دیگر استفاده نمیکنید لغو کنید؛ لغو کردن کارمزد گس کمی دارد.




