Transaction Hash:
Block:
12758887 at Jul-04-2021 04:19:16 AM +UTC
Transaction Fee:
0.017356531822768348 ETH
$34.48
Gas Used:
4,565,843 Gas / 3.801386036 Gwei
Emitted Events:
| 53 |
ChiToken.Transfer( from=0x0000000000000000000000000000000000000000, to=[Sender] 0x000000f22a9ca2c9b762263509ce4e06211639d3, value=125 )
|
Account State Difference:
| Address | Before | After | State Difference | ||
|---|---|---|---|---|---|
| 0x00000000...b0eF1fA1c | |||||
| 0x000000F2...6211639d3 |
0.407417899650963 Eth
Nonce: 146
|
0.390061367828194652 Eth
Nonce: 147
| 0.017356531822768348 | ||
| 0x009731d8...02719F062 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x02ae3405...68a2A3b85 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x0711FBE7...8412FC15d |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x08E5e3F7...98F5e436F |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x0C71194c...50B7af2F8 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x0d5C7D0d...7C5f72a4B |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x1122c596...6931f155D |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x174aA274...2fc8dEa11 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x1962f1Bc...6b20D0D70 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x1A719a55...0E3D13b34 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x1ac06BBE...3D6a3FDd0 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x1BCcde1a...02b0F0662 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x1E46a430...D0521b5B4 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x2635c90B...98D2F8097 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x267E00Bf...1e647D0eF |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x2a6E41D6...060fb17fD |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x2AE719B9...e96769545 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x2C60E9B3...b17ea3139 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x2eFC9990...dBB09E8EE |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x2Fc635d6...67870ad0d |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x319CC35e...8CDd23ADa |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x325AF99c...6ddb436f1 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x327Fb42F...1cc947d1d |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x32D4003B...0d0ca7Eb9 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x36F008e8...D46ba52F9 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x375070C5...74d3Bed39 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x376AF3CC...9dEe477eC |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x38C885E7...2681dE650 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x38FD1D5a...6a6FBf276 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x39036951...94634b259 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x3c21B153...94E683C37 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x3E84203A...aF4C13722 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x3F584FdF...8fdb6ad23 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x3fD0bEeB...65BFf068b |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x3fF169A1...0Afff805c |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x401d5b86...030f0C541 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x4121F7Fa...604F0674D |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x41445067...1E3696493 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x4484EB71...0f70FA5F3 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x48d7dE08...3fBAE9209 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x4c470319...Fbc019958 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x4d6bd6b6...98757896F |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x4E0a47d3...E4E48893f |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x4eD3B113...F60Bfd458 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x50572adF...6613072c5 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x50aae286...D482FbBB3 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x52196156...6C5B0008B |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x53c40d06...E823472F1 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x5867a752...bdE712CDc |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x58b5a6d0...C3223E1Ea |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x5CBe4a22...1ac624BE2 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x5E58a404...C9c03cF5d |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x5F6CCcD8...266c7129B |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x633d14B4...17EBa1517 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x64beb64d...0B7c57A3c |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x69c2eFA0...AbBb99cE8 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x6C88305F...4a18B0570 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x6CDA10b4...3E2a9285a |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x6d532Ee0...791118E86 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x71f46a46...369A447fb |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x72027d3f...275F75093 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x731CAcc3...7d0ca3a5f |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x7638A799...f543890E8 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x76ae1606...0C5864DDe |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x7780a122...379cBcE4b |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x794733b0...0f7CE56c4 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x7a1e2aFF...61770f44A |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x7E13723C...a6B9e8E60 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x89f2DDe4...83A583f8e |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x8a5AFFb6...48F7c9eD0 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x8D0C6924...a70b30681 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x9120974c...E4105024F |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x951eb1EF...8f6C86B3E |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x958A5d6E...1470Ed4D1 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x974E01D7...c67D05a6F |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x978F9521...EA6AF92F5 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x9911ed27...9A32A0bd4 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0x9f8541d6...403091a05 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xa0D6E6Ec...133e8207B |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xa2dD7807...E8485f274 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xA40c306B...F25D07efb |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xA72ACc16...7fcE63dE3 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xAc7E23Be...d854338A1 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xAe9609ef...b331df284 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xaf2402E8...73FEae032 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xB0565209...BaD292514 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xB1737312...3D3628E26 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xb1b570Cf...8fB56B0CA |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xB590Cb37...92Aa9EA2A |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xB89AD74d...B0D73aCeE |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xB93c53FF...409290EB7 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xBc1b5359...1703e9aD8 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xC74F3b83...636E4B50C |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xc78F33F0...79076cf1E |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xC9F3894B...DCD9c0a64 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xCFD35340...f85f1fd24 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xd67b5823...495856e59 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xD69616d3...2AD9E464e |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xD8C13E0D...4F745a8e5 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xDC75A2Ee...284d39d7b |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xdCF72084...37f630C97 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xDe4a9074...127D25424 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xDecC7057...8112Cb82D |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xDFAB4291...b15308014 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xE1cD3AE4...106A7A753 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xe28619B9...8459b7768 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xE31b95ec...53c41089a |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xE3758d7B...6f31Bee34 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xe4509CdA...5621dD8F4 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xe4D5DA61...ca3aa635B |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xE6A7BCDD...437657977 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xeaCcd22d...D0C41E795 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xedee8b90...E52dC5c36 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xef5C5Af6...b754f68f5 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
|
0xF541C3CD...aaeEDd97E
Miner
| 24.538270988947520801 Eth | 24.555627520770289149 Eth | 0.017356531822768348 | ||
| 0xf5948dEC...0A7677A8f |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xf6bEfd3e...f604007d8 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xf70C0927...f937774D7 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xf724a9a9...18f93a136 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xf775419B...57D7119bf |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xf9B393c4...4757e430b |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xFa53B482...AeC1b267f |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xfAF165Ef...02002d80D |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xfB3cF0EA...AD4A44025 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xfc065d96...6E3ad5d92 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
| 0xfFF30cDB...6E10C3C67 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
|
Execution Trace
ChiToken.mint( value=125 )
-
0xa40c306bb976188b1e14781b93721e1f25d07efb.746d4946( ) -
0xde4a9074ded8c56b83ca908f6e70948127d25424.746d4946( ) -
0xf9b393c4858ecec3ea4448b9521065e4757e430b.746d4946( ) -
0xb173731295f603ba0ffcc8170eab9dc3d3628e26.746d4946( ) -
0x2a6e41d6461cc0d0ce843bc1e48c5a3060fb17fd.746d4946( ) -
0xe3758d7b53aa84497c6f3484a84f7c76f31bee34.746d4946( ) -
0x69c2efa049dac52a550a4b34f771c97abbb99ce8.746d4946( ) -
0xdfab4291d868d0d66594eb331f3d22cb15308014.746d4946( ) -
0xbc1b5359875539000c17ffc3ca07b0f1703e9ad8.746d4946( ) -
0x319cc35e159bf8924eb24c5b2520ae38cdd23ada.746d4946( ) -
0xa0d6e6ecfb6e0ca89a06317f3604ae4133e8207b.746d4946( ) -
0x267e00bfdb497c80aafcfbd57a6c6181e647d0ef.746d4946( ) -
0x974e01d71ecee5811f7301d82f1c991c67d05a6f.746d4946( ) -
0x50572adf415c80d0e089b8eaad3b0bf6613072c5.746d4946( ) -
0x52196156c94d1cd18b38af13e8e51606c5b0008b.746d4946( ) -
0xe6a7bcdd8814b21fcc1475b5cc91b18437657977.746d4946( ) -
0xeaccd22d15b93f49a77ece2c717c999d0c41e795.746d4946( ) -
0x4d6bd6b6aaa7dda0d4a90a186ef343698757896f.746d4946( ) -
0x5cbe4a22dd6ae612427390f5e4ebe891ac624be2.746d4946( ) -
0xdecc70573466a2dc8db01abebe2869d8112cb82d.746d4946( ) -
0x08e5e3f7a1b4efd06c66c2fe210ed3298f5e436f.746d4946( ) -
0xb1b570cf829893013f2215f3459754e8fb56b0ca.746d4946( ) -
0xe4d5da61a9931b48d4bf7bbadaa4e97ca3aa635b.746d4946( ) -
0x64beb64d93da1230b43fe62a450787a0b7c57a3c.746d4946( ) -
0x48d7de08863d6ef5eb2ecd13707f06a3fbae9209.746d4946( ) -
0x4144506756f7a77609e740d215adbe01e3696493.746d4946( ) -
0x3e84203a042ed2d13a1f7ee94d019f8af4c13722.746d4946( ) -
0xfaf165ef733d66527c03b1ba71a0b2b02002d80d.746d4946( ) -
0xa72acc16b9f0cc75a8ea96ba75ece597fce63de3.746d4946( ) -
0x375070c53c0d4d1b4747b57308af0ec74d3bed39.746d4946( ) -
0x978f952163ad8664aa14fabcc00e74eea6af92f5.746d4946( ) -
0xf724a9a9868c20c558a27c4d3e39d0818f93a136.746d4946( ) -
0x53c40d06dc13cb409e3dad254dbefabe823472f1.746d4946( ) -
0x8d0c6924a819ec3c0d08715207fd577a70b30681.746d4946( ) -
0xc78f33f0df55f727fc1889edce1d1fc79076cf1e.746d4946( ) -
0x7e13723c75da55c31d02785aeb3b0d2a6b9e8e60.746d4946( ) -
0xf70c092771226e0efa7b4884ec0fb58f937774d7.746d4946( ) -
0xe1cd3ae45315de1459b315cad38edfe106a7a753.746d4946( ) -
0x1122c5967a752da83681d1f7eb24d366931f155d.746d4946( ) -
0x5e58a404da034823fd072afbce9b775c9c03cf5d.746d4946( ) -
0x38c885e73b8ee72395a6f8c148d3f882681de650.746d4946( ) -
0xe28619b9765fb5c15f311ad31cc148c8459b7768.746d4946( ) -
0x390369513da14c5eb834973ffdbd0e194634b259.746d4946( ) -
0xcfd353408c626de07c1238fe4ab7a2ff85f1fd24.746d4946( ) -
0xc74f3b83715a59db444976d8ffc6402636e4b50c.746d4946( ) -
0x376af3cc04219ea4f3479c97635ba509dee477ec.746d4946( ) -
0x325af99c40d015af33625dfdad229d66ddb436f1.746d4946( ) -
0xaf2402e8c8abf6a5d6368793db8b58e73feae032.746d4946( ) -
0xe4509cdafa9fabe3514af4ceb0371ad5621dd8f4.746d4946( ) -
0x7780a1222c9d3dedf7a0f71c18dd5a2379cbce4b.746d4946( ) -
0xf6befd3edee6c792c35d7a99950918ff604007d8.746d4946( ) -
0x3ff169a19265e6e33271ecb5e2928770afff805c.746d4946( ) -
0x1e46a430603f3b4f9970651da321273d0521b5b4.746d4946( ) -
0xa2dd7807c48f973eff2661ac00a0583e8485f274.746d4946( ) -
0x1a719a55fa3ef02fc76d974655a81e10e3d13b34.746d4946( ) -
0xef5c5af66d524f5d5919da1fa880114b754f68f5.746d4946( ) -
0x9f8541d62e778d3a30d231f1daf8fde403091a05.746d4946( ) -
0xb89ad74daec7df296b78d4aa0d1763ab0d73acee.746d4946( ) -
0x36f008e8cefe60b587801c26d9880ffd46ba52f9.746d4946( ) -
0x2fc635d63f8f53df19ed62cd92a878467870ad0d.746d4946( ) -
0x7a1e2aff7680a78d4e0dbec91d59b1f61770f44a.746d4946( ) -
0x71f46a460ad16116261c3e2356af4df369a447fb.746d4946( ) -
0xfff30cdb57b624769219cb54747c7c86e10c3c67.746d4946( ) -
0x8a5affb63c488542ce35d62d7184f5f48f7c9ed0.746d4946( ) -
0xd67b582385a56389d8afb4402b1d4d9495856e59.746d4946( ) -
0x2ae719b9f81b3eb625b209e068ae641e96769545.746d4946( ) -
0x76ae16060699acd2a16d56f1eaefaa70c5864dde.746d4946( ) -
0x958a5d6e279dfb8d524c752b85bf4d41470ed4d1.746d4946( ) -
0x02ae3405cfa011509af122865c5761c68a2a3b85.746d4946( ) -
0x4e0a47d3b623c57a864c80469acd7fde4e48893f.746d4946( ) -
0x633d14b41798a4874f722d9f80c163b17eba1517.746d4946( ) -
0x6cda10b45f38da03126137fcdc2b9373e2a9285a.746d4946( ) -
0x4ed3b1131455d7f57038090271557eef60bfd458.746d4946( ) -
0x9911ed27c1903e859f9a11bda09d1089a32a0bd4.746d4946( ) -
0x2635c90ba5aa32b11e113a8aab5289598d2f8097.746d4946( ) -
0xac7e23be5ee38d4a41a6796ede33818d854338a1.746d4946( ) -
0x1bccde1a53da28a0cec21edb196702e02b0f0662.746d4946( ) -
0xd69616d3d186ae4d6acff74e17664ba2ad9e464e.746d4946( ) -
0x5867a7529a33cef3374e5b8845f5eb3bde712cdc.746d4946( ) -
0xdc75a2eea1248cd1970074635bbc222284d39d7b.746d4946( ) -
0x89f2dde4d27567d6c613ddb31f5fc1d83a583f8e.746d4946( ) -
0x794733b08082e10d3d6a22412b9f4d50f7ce56c4.746d4946( ) -
0x4121f7fa0b9ef78687fd015f46866cf604f0674d.746d4946( ) -
0x4484eb71c78dd1212b65f1604d15a1d0f70fa5f3.746d4946( ) -
0xf5948dec475482ec1d8154e4daadc580a7677a8f.746d4946( ) -
0xb056520922398a127c96aeb8bb1b322bad292514.746d4946( ) -
0x009731d81f2106ac74bac72f176f3b802719f062.746d4946( ) -
0x1ac06bbee40527bf7d466d80c1881853d6a3fdd0.746d4946( ) -
0x1962f1bccce08e01b90666fb271b3f66b20d0d70.746d4946( ) -
0x58b5a6d04faff7995baca0c6d3e621cc3223e1ea.746d4946( ) -
0x0711fbe7a668e2b3fe8f9b81069941b8412fc15d.746d4946( ) -
0x50aae2864c067c35b9fcea7846ac31ad482fbbb3.746d4946( ) -
0xfa53b48228d686c6af489dfe320ada0aec1b267f.746d4946( ) -
0xfb3cf0eadfe54768b9ce4353d02c87fad4a44025.746d4946( ) -
0xdcf72084b7beec5a717da1afb1cb97c37f630c97.746d4946( ) -
0xe31b95ec69ba03911d62e501278b03953c41089a.746d4946( ) -
0x6c88305f3adb02d61dfb0643a44b9ec4a18b0570.746d4946( ) -
0xedee8b901b5565911c9dcdfb1c17e25e52dc5c36.746d4946( ) -
0x401d5b8636301f266bee9e00d24807d030f0c541.746d4946( ) -
0x7638a7992b9ef407bcb59c9097ffc00f543890e8.746d4946( ) -
0x0c71194c70daf6179c78ad1dd57148d50b7af2f8.746d4946( ) -
0x327fb42f16959768c91be3b4bb1a88c1cc947d1d.746d4946( ) -
0xc9f3894bc9d7b4effba290964a6d6dcdcd9c0a64.746d4946( ) -
0x3f584fdfcbfc82a459a920c7993109f8fdb6ad23.746d4946( ) -
0x3fd0beeb40ab0f3748c69d36281dcff65bff068b.746d4946( ) -
0x2efc9990ecffa8e94230105f829b802dbb09e8ee.746d4946( ) -
0x32d4003b7300c0e96d79185fed4ea920d0ca7eb9.746d4946( ) -
0x5f6cccd826c8283344f7d30fdc35c8c266c7129b.746d4946( ) -
0xfc065d9608729de7696b49a8534a6996e3ad5d92.746d4946( ) -
0x0d5c7d0da2beb9a0f049081a6a8dbad7c5f72a4b.746d4946( ) -
0xb93c53ff3cc2958f25932908704ec17409290eb7.746d4946( ) -
0x4c47031991ed9e51c9ae97bd083b21ffbc019958.746d4946( ) -
0xae9609ef277c2a9865181487e045550b331df284.746d4946( ) -
0xb590cb370caa8dd282f982c9affd3b192aa9ea2a.746d4946( ) -
0x6d532ee054b0077aaa29a0302341d4e791118e86.746d4946( ) -
0x38fd1d5a7d1b4937e16eb6b43de51d56a6fbf276.746d4946( ) -
0xd8c13e0df85269a79d1c9b43aff58d94f745a8e5.746d4946( ) -
0x174aa2740f90ea3915580c34418b2722fc8dea11.746d4946( ) -
0x731cacc3eec0c426594d331d351b0717d0ca3a5f.746d4946( ) -
0x3c21b15347b44a20f8a8f9b6c68cb3994e683c37.746d4946( ) -
0x9120974c621a7466596555e17e0fd98e4105024f.746d4946( ) -
0x2c60e9b35533eac8c2700d4fa207b08b17ea3139.746d4946( ) -
0x951eb1ef37b7b4df5b716cc8d56af488f6c86b3e.746d4946( ) -
0x72027d3fe2bafb3e89186419ed7d1ff275f75093.746d4946( ) -
0xf775419b3f91ec868a7cf0f913dc00157d7119bf.746d4946( )
/*
,╖╗#▒▓▓▓▓▓╣╬╣▓▓▓▓▒#╗╗╓,
,╗@▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╗╖
╓#▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╝▀╠╠▄╣╝╜"""╙╙▀╝╝╣╬╬╬╬▓▌╖
╓▓╣╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▀`╓å▓▓▓╙ ,▄▓▓██▓▓▓▄▄▄▄▄╠╠╙╠▄▄
╓@╣╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▌ ê`' *▀▀▀▀▀▀▀▓██████████████▄
╔▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ ╙▀████████████▌
╓▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ ╙████████████▌
,▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▀ ╗▄█████████████▄
é╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▌ #╙ ╙▀█████████████▓
╣╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▀ ╙▓╬╣▓▄ ╙▀▀███████████µ
▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▀╣╝╙ ╒▓╬╬╬╬╬╬▓ ╙████████████████µ
▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▌ ╖╖╖▄▓╬╬╬╬╬╬╬▓ █████████████████µ
╣╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ ,#▓╣╬╬▓╬╬╬╬╬╬╬╬╬╬╬╬▌ ▓█████████████████
]╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╓╖ ]╣╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣╨ ██████████████████▌
▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓▌╖, ╙╠╠▓╬╬╬╬╬╬╬╬╬▓╝╙ ╫███████████████████
]╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╝▀╙ ▓████████████████████▌
║╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╝▀╙` ▄███████████████████████
╟╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓╝▀╙ ,▄█████████████████████████
╟╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╝╜` ▄▓████████████████████████████
║╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣▀` ,▄▄▓████████████████████████████████
▐╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓╙ ,,,▄╠▓██████████████████████████████▌
╣╬╬╬╬╬╬╬╬╬╬╬╬╬╬▓╙╔▒` ╓▄▓████████████████████████████████████████⌐
╚╬╬╬╬╬╬╬╬╬╬╬╬╬▓▓╣▓ ▄▓████████████████████████████████████████████
▓╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬ ▄██████████████████████████████████████████████⌐
╣╬╬╬╬╬╬╬╬╬╬╬╬╬╛ ▄███████████████████████████████████████████████▌
└╣╬╬╬╬╬╬╬╬╬╬╬▓ ▄███████████████████████████████████████████████▌
└▓╬╬╬╬╬╬╬╬╬╬Γ ]███████████████████████████████████████████████▀
╣╬╬╬╬╬╬╬╬╬⌐ ╫████████████████████████████████▀▀▀▀▀▓████████╜
╙╬╬╬╬╬╬╬╬⌐ ╟███████████████████████████▀╙ ,▄▓▓▓▓▓████▓
╫╬╬╬╬╬╬b ████████████████████████▀` ,Φ▀▀█████████╙
╫╬╬╬╬▌╟ ██████████████████▀╓▀─ ▄▓█████████▀
╚╣╬▓╣▓ └▀████████████▀` ╓▓█████████▓╙
╙╝╬╬▓ .▄▄▓█▀▀▀` ▄▓█████████▀
╙▀▓▄ ƒ,▓███████▀▀
" ╓▓█▓█████▀▀└
╓▄▓████▀▀╙└
██████╗██╗ ██╗██╗ ██████╗ █████╗ ███████╗████████╗ ██████╗ ██╗ ██╗███████╗███╗ ██╗ ██████╗ ██╗ ██╗ ██╗██╗███╗ ██╗ ██████╗██╗ ██╗
██╔════╝██║ ██║██║ ██╔════╝ ██╔══██╗██╔════╝╚══██╔══╝██╔═══██╗██║ ██╔╝██╔════╝████╗ ██║ ██╔══██╗╚██╗ ██╔╝ ███║██║████╗ ██║██╔════╝██║ ██║
██║ ███████║██║ ██║ ███╗███████║███████╗ ██║ ██║ ██║█████╔╝ █████╗ ██╔██╗ ██║ ██████╔╝ ╚████╔╝ ╚██║██║██╔██╗ ██║██║ ███████║
██║ ██╔══██║██║ ██║ ██║██╔══██║╚════██║ ██║ ██║ ██║██╔═██╗ ██╔══╝ ██║╚██╗██║ ██╔══██╗ ╚██╔╝ ██║██║██║╚██╗██║██║ ██╔══██║
╚██████╗██║ ██║██║ ╚██████╔╝██║ ██║███████║ ██║ ╚██████╔╝██║ ██╗███████╗██║ ╚████║ ██████╔╝ ██║ ██║██║██║ ╚████║╚██████╗██║ ██║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝ ╚═════╝╚═╝ ╚═╝
Copyright by 1inch Corporation
https://1inch.exchange
---
Deployer wallet address:
0x7E1E3334130355799F833ffec2D731BCa3E68aF6
Signed raw transaction for chainId 1:
0xf90d7f808506fc23ac00830bd0fa8080b90d2c608060405234801561001057600080fd5b50610d0c806100206000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a9059cbb11610071578063a9059cbb14610305578063b0ac19a014610331578063d89135cd1461036a578063d8ccd0f314610372578063dd62ed3e1461038f5761010b565b806370a08231146102b057806395d89b41146102d6578063a0712d68146102de578063a2309ff8146102fd5761010b565b806323b872dd116100de57806323b872dd14610213578063313ce567146102495780635f2e2b45146102675780636366b936146102935761010b565b806306fdde0314610110578063079d229f1461018d578063095ea7b3146101cb57806318160ddd1461020b575b600080fd5b6101186103bd565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b0381351690602001356103ee565b60408051918252519081900360200190f35b6101f7600480360360408110156101e157600080fd5b506001600160a01b03813516906020013561041f565b604080519115158252519081900360200190f35b6101b9610435565b6101f76004803603606081101561022957600080fd5b506001600160a01b03813581169160208101359091169060400135610453565b6102516104c2565b6040805160ff9092168252519081900360200190f35b6101b96004803603604081101561027d57600080fd5b506001600160a01b0381351690602001356104c7565b6101b9600480360360208110156102a957600080fd5b50356104e2565b6101b9600480360360208110156102c657600080fd5b50356001600160a01b03166104ff565b61011861051a565b6102fb600480360360208110156102f457600080fd5b5035610539565b005b6101b961070d565b6101f76004803603604081101561031b57600080fd5b506001600160a01b038135169060200135610713565b61034e6004803603602081101561034757600080fd5b5035610720565b604080516001600160a01b039092168252519081900360200190f35b6101b961078b565b6101b96004803603602081101561038857600080fd5b5035610791565b6101b9600480360360408110156103a557600080fd5b506001600160a01b03813581169160200135166107aa565b60405180604001604052806015815260200174086d0d2408ec2e6e8ded6cadc40c4f24062d2dcc6d605b1b81525081565b60006104188361041361040985610404886104ff565b6107d5565b61040487336107aa565b6104c7565b9392505050565b600061042c3384846107eb565b50600192915050565b600061044e60035460025461084d90919063ffffffff16565b905090565b600061046084848461088f565b6104b884336104b385604051806060016040528060288152602001610c8b602891396001600160a01b038a166000908152600160209081526040808320338452909152902054919063ffffffff61096116565b6107eb565b5060019392505050565b600081565b60006104d383836109f8565b6104dc82610a59565b50919050565b60006104f96104f483610404336104ff565b610791565b92915050565b6001600160a01b031660009081526020819052604090205490565b6040518060400160405280600381526020016243484960e81b81525081565b6002547f746d4946c0e9f43f4dee607b0ef1fa1c3318585733ff6000526015600bf30000600052602082045b80156106d85781601e600080f55060018201601e600080f55060028201601e600080f55060038201601e600080f55060048201601e600080f55060058201601e600080f55060068201601e600080f55060078201601e600080f55060088201601e600080f55060098201601e600080f550600a8201601e600080f550600b8201601e600080f550600c8201601e600080f550600d8201601e600080f550600e8201601e600080f550600f8201601e600080f55060108201601e600080f55060118201601e600080f55060128201601e600080f55060138201601e600080f55060148201601e600080f55060158201601e600080f55060168201601e600080f55060178201601e600080f55060188201601e600080f55060198201601e600080f550601a8201601e600080f550601b8201601e600080f550601c8201601e600080f550601d8201601e600080f550601e8201601e600080f550601f8201601e600080f5506020919091019060001901610565565b50601f82165b80156106fc5781601e600080f55060019190910190600019016106de565b506107073383610ad1565b60025550565b60025481565b600061042c33848461088f565b604080516001600160f81b03196020808301919091523060601b602183015260358201939093527f3c1644c68e5d6cb380c36d1bf847fdbc0c7ac28030025a2fc5e63cce23c16348605580830191909152825180830390910181526075909101909152805191012090565b60035481565b600061079d3383610b50565b6107a682610a59565b5090565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60008183106107e45781610418565b5090919050565b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600061041883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610961565b6108d281604051806060016040528060268152602001610c65602691396001600160a01b038616600090815260208190526040902054919063ffffffff61096116565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610907908263ffffffff610be816565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156109f05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156109b557818101518382015260200161099d565b50505050905090810190601f1680156109e25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b610a028282610b50565b610a5582336104b384604051806060016040528060248152602001610cb3602491396001600160a01b0388166000908152600160209081526040808320338452909152902054919063ffffffff61096116565b5050565b60035460005b82811015610aca57610a72818301610720565b6040516001600160a01b039190911690600081818181865af19150503d8060008114610aba576040519150601f19603f3d011682016040523d82523d6000602084013e610abf565b606091505b505050600101610a5f565b5001600355565b6001600160a01b038216600090815260208190526040902054610afa908263ffffffff610be816565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b610b9381604051806060016040528060228152602001610c43602291396001600160a01b038516600090815260208190526040902054919063ffffffff61096116565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600082820183811015610418576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220687f814fb4c0b3c6abd66ebdb1f1eabcf69becf92a382c3af453e0b21c3d15b564736f6c6343000608003325a00ed87a047b4e415bd7f8cf7a7ce5a1c204125df1cedc35c7bdcb71bd2a29a35ea02db2490337fa6c425f1b3d74b7b217de8b394adb3f571827629c06dc16364b66
---
*/
// File: @openzeppelin/contracts/math/Math.sol
pragma solidity ^0.6.0;
/**
* @dev Standard math utilities missing in the Solidity language.
*/
library Math {
/**
* @dev Returns the largest of two numbers.
*/
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a >= b ? a : b;
}
/**
* @dev Returns the smallest of two numbers.
*/
function min(uint256 a, uint256 b) internal pure returns (uint256) {
return a < b ? a : b;
}
/**
* @dev Returns the average of two numbers. The result is rounded towards
* zero.
*/
function average(uint256 a, uint256 b) internal pure returns (uint256) {
// (a + b) / 2 can overflow, so we distribute
return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);
}
}
// File: @openzeppelin/contracts/math/SafeMath.sol
pragma solidity ^0.6.0;
/**
* @dev Wrappers over Solidity's arithmetic operations with added overflow
* checks.
*
* Arithmetic operations in Solidity wrap on overflow. This can easily result
* in bugs, because programmers usually assume that an overflow raises an
* error, which is the standard behavior in high level programming languages.
* `SafeMath` restores this intuition by reverting the transaction when an
* operation overflows.
*
* Using this library instead of the unchecked operations eliminates an entire
* class of bugs, so it's recommended to use it always.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
// Solidity only automatically asserts when dividing by 0
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
pragma solidity ^0.6.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
// File: contracts/ChiToken.sol
pragma solidity ^0.6.0;
abstract contract ERC20WithoutTotalSupply is IERC20 {
using SafeMath for uint256;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _transfer(address sender, address recipient, uint256 amount) internal {
_balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
}
function _approve(address owner, address spender, uint256 amount) internal {
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _mint(address account, uint256 amount) internal {
_balances[account] = _balances[account].add(amount);
emit Transfer(address(0), account, amount);
}
function _burn(address account, uint256 amount) internal {
_balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
emit Transfer(account, address(0), amount);
}
function _burnFrom(address account, uint256 amount) internal {
_burn(account, amount);
_approve(account, msg.sender, _allowances[account][msg.sender].sub(amount, "ERC20: burn amount exceeds allowance"));
}
}
contract ChiToken is IERC20, ERC20WithoutTotalSupply {
string constant public name = "Chi Gastoken by 1inch";
string constant public symbol = "CHI";
uint8 constant public decimals = 0;
uint256 public totalMinted;
uint256 public totalBurned;
function totalSupply() public view override returns(uint256) {
return totalMinted.sub(totalBurned);
}
function mint(uint256 value) public {
uint256 offset = totalMinted;
assembly {
mstore(0, 0x746d4946c0e9F43F4Dee607b0eF1fA1c3318585733ff6000526015600bf30000)
for {let i := div(value, 32)} i {i := sub(i, 1)} {
pop(create2(0, 0, 30, add(offset, 0))) pop(create2(0, 0, 30, add(offset, 1)))
pop(create2(0, 0, 30, add(offset, 2))) pop(create2(0, 0, 30, add(offset, 3)))
pop(create2(0, 0, 30, add(offset, 4))) pop(create2(0, 0, 30, add(offset, 5)))
pop(create2(0, 0, 30, add(offset, 6))) pop(create2(0, 0, 30, add(offset, 7)))
pop(create2(0, 0, 30, add(offset, 8))) pop(create2(0, 0, 30, add(offset, 9)))
pop(create2(0, 0, 30, add(offset, 10))) pop(create2(0, 0, 30, add(offset, 11)))
pop(create2(0, 0, 30, add(offset, 12))) pop(create2(0, 0, 30, add(offset, 13)))
pop(create2(0, 0, 30, add(offset, 14))) pop(create2(0, 0, 30, add(offset, 15)))
pop(create2(0, 0, 30, add(offset, 16))) pop(create2(0, 0, 30, add(offset, 17)))
pop(create2(0, 0, 30, add(offset, 18))) pop(create2(0, 0, 30, add(offset, 19)))
pop(create2(0, 0, 30, add(offset, 20))) pop(create2(0, 0, 30, add(offset, 21)))
pop(create2(0, 0, 30, add(offset, 22))) pop(create2(0, 0, 30, add(offset, 23)))
pop(create2(0, 0, 30, add(offset, 24))) pop(create2(0, 0, 30, add(offset, 25)))
pop(create2(0, 0, 30, add(offset, 26))) pop(create2(0, 0, 30, add(offset, 27)))
pop(create2(0, 0, 30, add(offset, 28))) pop(create2(0, 0, 30, add(offset, 29)))
pop(create2(0, 0, 30, add(offset, 30))) pop(create2(0, 0, 30, add(offset, 31)))
offset := add(offset, 32)
}
for {let i := and(value, 0x1F)} i {i := sub(i, 1)} {
pop(create2(0, 0, 30, offset))
offset := add(offset, 1)
}
}
_mint(msg.sender, value);
totalMinted = offset;
}
function computeAddress2(uint256 salt) public view returns (address) {
bytes32 _data = keccak256(
abi.encodePacked(bytes1(0xff), address(this), salt, bytes32(0x3c1644c68e5d6cb380c36d1bf847fdbc0c7ac28030025a2fc5e63cce23c16348))
);
return address(uint256(_data));
}
function _destroyChildren(uint256 value) internal {
uint256 _totalBurned = totalBurned;
for (uint256 i = 0; i < value; i++) {
computeAddress2(_totalBurned + i).call("");
}
totalBurned = _totalBurned + value;
}
function free(uint256 value) public returns (uint256) {
_burn(msg.sender, value);
_destroyChildren(value);
return value;
}
function freeUpTo(uint256 value) public returns (uint256) {
return free(Math.min(value, balanceOf(msg.sender)));
}
function freeFrom(address from, uint256 value) public returns (uint256) {
_burnFrom(from, value);
_destroyChildren(value);
return value;
}
function freeFromUpTo(address from, uint256 value) public returns (uint256) {
return freeFrom(from, Math.min(Math.min(value, balanceOf(from)), allowance(from, msg.sender)));
}
}