Michaelredman / tethertoken. sol

ساخت وبلاگ

کلون از طریق HTTPS کلون با GIT یا پرداخت با SVN با استفاده از آدرس وب مخزن.

درباره URL های کلون بیشتر بدانید

قرارداد Tether ERC20

این پرونده حاوی متن یونیکد دو طرفه است که ممکن است متفاوت از آنچه در زیر آمده است ، تفسیر یا گردآوری شود. برای بررسی ، پرونده را در یک ویرایشگر باز کنید که شخصیت های پنهان Unicode را نشان می دهد. در مورد شخصیت های دو طرفه یونیکد بیشتر بدانید

 

/**
*برای تأیید در Etherscan. io در تاریخ 2017-11-28 ارسال شده است
*/
// https://cn. etherscan.com/address/0xdac17f958d2ee523a220620620620694597c13d831ec7#code
پراگما استحکام ^ 0. 4. 17 ؛
/**
* title safemath
* Dev ریاضی با بررسی های ایمنی که خطا می کنند
*/
کتابخانه کتابخانه
عملکرد MUL (UINT256 A ، UINT256 B) بازده خالص داخلی (UINT256)
if (a == 0)
بازگشت 0 ؛
>
uint256 c = a * b ؛
ادعا (c / a == b) ؛
بازگشت c ؛
>
عملکرد DIV (UINT256 A ، UINT256 B) بازده خالص داخلی (UINT256)
// assert(b>0) ؛// استحکام هنگام تقسیم 0 به طور خودکار پرتاب می کند
uint256 c = a / b ؛
// ادعا (a == b * c + a ٪ b) ؛// موردی وجود ندارد که این امر در آن نگه ندارد
بازگشت c ؛
>
عملکرد زیر (UINT256 A ، UINT256 B) بازده خالص داخلی (UINT256)
ادعا کنید (ب
بازگشت A - B ؛
>
عملکرد اضافه (uint256 a ، uint256 b) بازده خالص داخلی (UINT256)
uint256 c = a + b ؛
assert (c>= الف) ؛
بازگشت c ؛
>
>
/**
* title متعلق به
* dev قرارداد قابل خود دارای آدرس مالک است و کنترل مجوز اساسی را ارائه می دهد
* توابع ، این امر اجرای "مجوزهای کاربر" را ساده می کند.
*/
قرارداد قابل قرارداد
آدرس مالک عمومی ؛
/**
* Dev سازنده خود "مالک اصلی" قرارداد را به فرستنده تعیین می کند
* حساب.
*/
عملکرد خود () عمومی
مالک = msg. فرستنده ؛
>
/**
* Dev اگر به هر حساب غیر از مالک فراخوانده شود ، پرتاب می کند.
*/
فقط OnlyWowner ()
نیاز (msg. sender == مالک) ؛
_;
>
/**
* Dev به مالک فعلی اجازه می دهد کنترل قرارداد را به یک نیوونر منتقل کند.
* Param NewOwner آدرس انتقال مالکیت به.
*/
عملکرد Transfeownership (آدرس NewOwner) OnloWner عمومی
if (newowner! = آدرس (0))
مالک = نیوونر ؛
>
>
>
/**
* title erc20basic
* نسخه ساده تر رابط ERC20
* dev به https://github.com/ethereum/eips/issues/20 مراجعه کنید
*/
قرارداد ERC20Basic
Uint Public _totalSupply ؛
عملکرد TotalSupply () بازده ثابت عمومی (UINT) ؛
عملکرد تعادل (آدرس WHO) بازده ثابت عمومی (UINT) ؛
انتقال عملکرد (آدرس به ، ارزش UINT) عمومی ؛
انتقال رویداد (آدرس فهرست شده از ، آدرس فهرست شده به ، مقدار UINT) ؛
>
/**
* رابط Title ERC20
* dev به https://github.com/ethereum/eips/issues/20 مراجعه کنید
*/
قرارداد ERC20 ERC20Basic است
کمک هزینه عملکرد (مالک آدرس ، آدرس اسپندر) بازده ثابت عمومی (UINT) ؛
عملکرد انتقال از (آدرس ، آدرس به ، ارزش UINT) عمومی ؛
تأیید عملکرد (آدرس اسپندر ، ارزش UINT) عمومی ؛
تصویب رویداد (مالک فهرست شده آدرس ، آدرس شاخص آدرس ، ارزش UINT) ؛
>
/**
* Title Basic Token
* Dev نسخه اصلی StandardToken ، بدون کمک هزینه.
*/
قرارداد basickoken قابل خود است ، ERC20Basic
استفاده از Safemath برای UINT ؛
mapping ( address =>UINT) تعادل عمومی ؛
// متغیرهای اضافی برای استفاده در صورت لزوم هزینه های معامله
UINT Public BusyPointSrate = 0 ؛
UINT PUBLIC MAXIMEFEE = 0 ؛
/**
* Dev برای حمله به آدرس کوتاه ERC20 رفع کنید.
*/
اصلاح کننده فقط PayloadSize (اندازه UINT)
نیاز (! (msg. data. طول
_;
>
/**
* dev انتقال برای یک آدرس مشخص
* param _to آدرس برای انتقال به.
* param _Value مبلغی که باید منتقل شود.
*/
انتقال تابع (آدرس _to ، uint _value) عمومی فقط پرداخت بار (2 * 32)
هزینه UINT = (_Value. MUL (BasidypointSrate)). DIV (10000) ؛
if (fee>Maximfefe)
هزینه = MaximumFee ؛
>
uint sendamount = _value. زیر (هزینه) ؛
تعادل [msg. فرستنده] = تعادل [msg. فرستنده ]. زیر (_Value) ؛
تعادل [_to] = توازن [_to]. اضافه کردن (SendAmount) ؛
if (fee>0)
تعادل [مالک] = مانده [مالک]. اضافه کردن (هزینه) ؛
انتقال (فرستنده ، صاحب ، هزینه) ؛
>
انتقال (msg. فرستنده ، _to ، sendamount) ؛
>
/**
* dev تعادل آدرس مشخص شده را دریافت می کند.
* param _owner آدرس را برای پرس و جو از تعادل.
* retu یک UINT که مبلغ متعلق به آدرس منتقل شده را نشان می دهد.
*/
تعادل عملکرد (آدرس _owner) بازده ثابت عمومی (تعادل UINT)
تعادل بازگشت [_owner] ؛
>
>
/**
* Title Standard ERC20 Token
*
* Dev اجرای نشانه استاندارد پایه.
* dev https://github.com/ethereum/eips/issues/20
* dev بر اساس آن کد توسط FirstBlood: https://github.com/firstbloodio/token/blob/master/smart_contract/firstbloodtoken. sol
*/
قرارداد StandardToken basictoken ، ERC20 است
mapping ( address => mapping ( address =>uint)) عمومی مجاز است.
uint عمومی ثابت max_uint = 2 ** 256 - 1 ؛
/**
* dev توکن ها را از یک آدرس به آدرس دیگر منتقل کنید
* param _ از آدرس آدرس که می خواهید توکن ها را از آن ارسال کنید
* param _to آدرس آدرس را که می خواهید به آن منتقل کنید
* param _value مقدار نشانه های منتقل شده
*/
تابع انتقال (آدرس _FROM ، آدرس _to ، uint _value) فقط Public PayloadSize (3 * 32)
var _allowance = مجاز [_from] [msg. فرستنده ]؛
// بررسی لازم نیست زیرا اگر این شرط برآورده نشود، sub(_allowance, _value) قبلاً پرتاب می شود
// if (_value>_Allowance) پرتاب;
هزینه UINT = (_Value. MUL (BasidypointSrate)). DIV (10000) ؛
if (fee>Maximfefe)
هزینه = MaximumFee ؛
>
اگر (_Allowance
مجاز[_from][ پیام . فرستنده ] = _ کمک هزینه. زیر (_value);
>
uint sendamount = _value. زیر (هزینه) ؛
تعادل[_from] = موجودی[_from]. زیر (_value);
تعادل [_to] = توازن [_to]. اضافه کردن (SendAmount) ؛
if (fee>0)
تعادل [مالک] = مانده [مالک]. اضافه کردن (هزینه) ؛
انتقال (_از، مالک، هزینه)؛
>
انتقال (_from, _to, sendAmount)؛
>
/**
* @dev آدرس ارسال شده را برای خرج کردن مقدار مشخص شده توکن از طرف msg. sender تأیید کنید.
* @param _spender آدرسی که وجوه را خرج می کند.
* @param _value مقدار توکن هایی که باید خرج شود.
*/
تابع تایید (آدرس _spender، uint _value) public onlyPayloadSize (2 * 32)
// برای تغییر مقدار تایید، ابتدا باید آدرس ها را کاهش دهید
// با فراخوانی «approve(_spender, 0)» در صورتی که اینطور نیست، به صفر برسد
// در حال حاضر 0 برای کاهش شرایط مسابقه شرح داده شده در اینجا:
// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
نیاز (! ((_value != 0 ) && (مجاز[ msg. sender ][_spender] != 0 )));
مجاز[پیام. فرستنده ][_spender] = _value;
تأیید (پیام فرستنده، _اسپاندر، _value);
>
/**
* @dev تابعی برای بررسی میزان توکن هایی که مالک مجاز به مصرف کننده است.
* @param _owner address آدرس مالک وجوه.
* @param _spender آدرس آدرسی که وجوه را خرج می کند.
* @retu یک uint که مقدار توکن هایی را که هنوز برای خرج کننده موجود است مشخص می کند.
*/
کمک هزینه تابع (آدرس _owner، آدرس _spender) بازده ثابت عمومی (Uint باقی مانده)
بازگشت مجاز است[_owner][_spender];
>
>
/**
* @title قابل مکث
* قرارداد پایه @dev که به کودکان اجازه می دهد مکانیسم توقف اضطراری را اجرا کنند.
*/
قرارداد Pausable Ownable است
رویداد مکث ();
رویداد لغو مکث ();
bool public paused = false ;
/**
* @dev Modifier برای فراخوانی یک تابع فقط زمانی که قرارداد متوقف نشده باشد.
*/
اصلاح کننده WhenNotPaused ()
نیاز (! مکث)؛
_;
>
/**
* @dev Modifier برای فراخوانی یک تابع فقط زمانی که قرارداد متوقف شده باشد.
*/
اصلاح کننده در هنگام مکث ()
نیاز (مکث)؛
_;
>
/**
* @dev توسط مالک برای مکث فراخوانی شده است، باعث توقف حالت می شود
*/
تابع مکث () onlyOwner whenNotPaused public
مکث = درست ;
مکث ();
>
/**
* @dev توسط مالک برای لغو مکث فراخوانده شده است، به حالت عادی باز می گردد
*/
تابع unpause () onlyOwner whenPaused public
مکث = نادرست ;
لغو مکث ();
>
>
قرارداد سیاه لیست Ownable است، BasicToken
//////// گیرنده ها برای اجازه استفاده از لیست سیاه یکسان نیز توسط سایر قراردادها (از جمله تثبیت ارتقا یافته) /////// استفاده می شود.
عملکرد GetBlackListStatus (آدرس _maker) بازده ثابت خارجی (BOOL)
بازگشت isblacklisted [_maker] ؛
>
عملکرد getowner () بازده ثابت خارجی (آدرس)
صاحب بازگشت ؛
>
mapping ( address =>BOOL) ISBlacklisted عمومی ؛
تابع addBlackList (آدرس _eviluser) تنها مالک عمومی
isblacklisted [_eviluser] = true ؛
اضافه شده blacklist (_eviluser) ؛
>
تابع حذف blacklist (آدرس _ cleareduser) تنها مالک عمومی
isblacklisted [_cleareduser] = false ؛
relovedBlackList (_cleareduser) ؛
>
تابع DestroyblackFunds (آدرس _BlackListedUser) OnlyOwner Public
نیاز (iSblacklisted [_blackListedUser]) ؛
uint dirtyfunds = تعادل (_BlackListedUser) ؛
تعادل [_BlackListedUser] = 0 ؛
_totalSupply -= DirtyFunds ؛
DestroyedBlackFunds (_BlackListedUser ، DirtyFunds) ؛
>
رویداد DestrodedBlackFunds (آدرس _blacklisteduser ، uint _balance) ؛
رویداد اضافه شده blacklist (آدرس _user) ؛
رویداد حذف شده blacklist (آدرس _user) ؛
>
قرارداد به روز شده StandardToken StandardToken است
// این روش ها توسط قرارداد میراث خوانده می شوند
// و آنها باید اطمینان حاصل کنند که msg. sender آدرس قرارداد است
عملکرد TransferbyLegacy (آدرس ، آدرس به ، ارزش UINT) عمومی ؛
عملکرد انتقال frombylegacy (ارسال کننده آدرس ، آدرس از ، آدرس spender ، ارزش uint) عمومی ؛
تابع تأیید bylegacy (آدرس از ، آدرس spender ، ارزش uint) عمومی ؛
>
قرارداد tethertoken قابل مکث ، استاندارد ، لیست سیاه است
نام عمومی رشته ؛
نماد عمومی رشته ؛
اعشار عمومی UINT ؛
آدرس دهی عمومی به روزرسانی ؛
BOOL Public Exprecated ؛
// قرارداد را می توان با تعدادی از نشانه ها آغاز کرد
// تمام نشانه ها به آدرس مالک واریز می شوند
//
// PARAM _BALANCE عرضه اولیه قرارداد
// param _name name name
// param _symbol نماد توکن
// param _decimals اعشار
عملکرد tethertoken (uint _initialsupply ، رشته _name ، رشته _symbol ، uint _decimals) عمومی
_totalSupply = _initialSupply ؛
name = _name ؛
نماد = _symbol ؛
اعشار = _decimals ؛
تعادل [مالک] = _initialSupply ؛
deprecated = false ؛
>
// روشهای ERC20 به جلو برای به روزرسانی قرارداد در صورت کاهش
انتقال تابع (آدرس _to ، uint _value) عمومی که در صورت عدم استفاده
نیاز (! iSblacklisted [msg. فرستنده]) ؛
if (مستهلک)
بازگشت به روز شده با استاندارد (ارتقاءداد). TransferByLegacy (فرستنده msg ، _to ، _value) ؛
>دیگر
بازگشت فوق العاده. انتقال (_to ، _value) ؛
>
>
// روشهای ERC20 به جلو برای به روزرسانی قرارداد در صورت کاهش
عملکرد انتقال از (آدرس _FROM ، آدرس _to ، uint _value) عمومی که در صورت عدم وجود
نیاز (! iSblacklisted [_from]) ؛
if (مستهلک)
بازگشت به روز شده با استاندارد (ارتقاءداد). TransferFromByLegacy (Msg. Sender ، _from ، _to ، _value) ؛
>دیگر
بازگشت فوق العاده. TransferFrom (_from ، _to ، _value) ؛
>
>
// روشهای ERC20 به جلو برای به روزرسانی قرارداد در صورت کاهش
تعادل عملکرد (آدرس WHO) بازده ثابت عمومی (UINT)
if (مستهلک)
بازگشت به روز شده با استاندارد (ارتقاءداد). تعادل (چه کسی) ؛
>دیگر
بازگشت فوق العاده. تعادل (چه کسی) ؛
>
>
// روشهای ERC20 به جلو برای به روزرسانی قرارداد در صورت کاهش
تابع تایید (آدرس _spender، uint _value) public onlyPayloadSize (2 * 32)
if (مستهلک)
بازگشت به روز شده با استاندارد (ارتقاءداد). AdvoveBylegacy (Msg. Sender ، _spender ، _value) ؛
>دیگر
بازگشت فوق العاده. تأیید (_spender ، _value) ؛
>
>
// روشهای ERC20 به جلو برای به روزرسانی قرارداد در صورت کاهش
کمک هزینه تابع (آدرس _owner، آدرس _spender) بازده ثابت عمومی (Uint باقی مانده)
if (مستهلک)
Retu StandardToken (ارتقاءداد). کمک هزینه (_owner ، _spender) ؛
>دیگر
بازگشت فوق العاده. کمک هزینه (_owner ، _spender) ؛
>
>
// قرارداد فعلی را به نفع یک قرارداد جدید کاهش دهید
عملکرد کاهش یافته (آدرس _upgradedAddress) تنها مالک
deprecated = true ؛
ارتقاءددس = _upgradedAdaddress ؛
کاهش یافته (_upgradedAddress) ؛
>
// اگر به نفع یک شخص جدید باشد ، قرارداد فعلی را کاهش دهید
عملکرد TOTALSUPPLY () بازده ثابت عمومی (UINT)
if (مستهلک)
Retu StandardToken (ارتقاءداد). totalsupply () ؛
>دیگر
بازگشت _totalsupply ؛
>
>
// مقدار جدیدی از نشانه ها را صادر کنید
// این نشانه ها به آدرس مالک واریز می شوند
//
// param _amount تعداد نشانه هایی که باید صادر شود
شماره عملکرد (مبلغ UINT) تنها مالک
require (_totalSupply + amount>_totalsupply) ؛
require (balances[owner] + amount>تعادل [مالک]) ؛
تعادل [مالک] += مقدار ؛
_totalsupply += مقدار ؛
شماره (مقدار) ؛
>
// بازخرید نشانه ها.
// این نشانه ها از آدرس مالک خارج می شوند
// اگر تعادل باید برای پوشش بازخرید کافی باشد
// یا تماس با هم شکست می خورد.
// param _amount تعداد نشانه هایی که باید صادر شود
عملکرد بازپرداخت (مبلغ UINT) تنها مالک
require (_totalSupply>= مقدار) ؛
require (balances[owner]>= مقدار) ؛
_totalSupply -= مقدار ؛
تعادل [مالک] -= مقدار ؛
بازپرداخت (مقدار) ؛
>
عملکرد SetParams (Uint newbasispoints ، uint newmaxfee) تنها مالک عمومی
// اطمینان از شفافیت با محدودیت کدگذاری را فراتر از آن که هرگز نمی توان هزینه ها را اضافه کرد
نیاز به (NewBasisPoints<20 );
نیاز دارد (NewMaxfee<50 );
BasionPointSrate = NewBasisPoints ؛
MaximumFee = NewMaxfee. MUL (10 ** اعشار) ؛
PARMS (BIDESPOINTSRATE ، MAXITIONFEE) ؛
>
// هنگام صدور توکن جدید تماس گرفته می شود
شماره رویداد (مقدار UINT) ؛
// هنگام بازخرید نشانه ها نامیده می شود
بازپرداخت رویداد (مقدار UINT) ؛
// هنگام کاهش قرارداد فراخوانده می شود
کاهش رویداد (آدرس NewAddress) ؛
// در صورتی که قرارداد تا به حال هزینه اضافه کند ، فراخوانده شده است
Params Param (Uint Feebasispoints ، Uint Maxfee) ؛
>

برای پیوستن به این مکالمه در GitHub به صورت رایگان ثبت نام کنید. در حال حاضر یک حساب کاربری دارید؟وارد شوید تا اظهار نظر کنید

استراتژی برای تجارت گزینه های...
ما را در سایت استراتژی برای تجارت گزینه های دنبال می کنید

برچسب : نویسنده : فریبا کامران بازدید : 35 تاريخ : يکشنبه 11 تير 1402 ساعت: 12:40