ETH Price: $2,393.60 (-3.74%)

Contract

0x14df1c0Cb571dA8E2E9d8027afAef642c75Cac41
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Upgrade198994292024-05-18 21:11:47137 days ago1716066707IN
0x14df1c0C...2c75Cac41
0 ETH0.000225533.05950716
Upgrade198671662024-05-14 8:49:47141 days ago1715676587IN
0x14df1c0C...2c75Cac41
0 ETH0.000462545.09390473
Upgrade198492632024-05-11 20:45:35144 days ago1715460335IN
0x14df1c0C...2c75Cac41
0 ETH0.000287083.1615825
Upgrade197398232024-04-26 13:27:35159 days ago1714138055IN
0x14df1c0C...2c75Cac41
0 ETH0.000773379.84838551
Upgrade197397172024-04-26 13:05:59159 days ago1714136759IN
0x14df1c0C...2c75Cac41
0 ETH0.000781279.94904727
Upgrade197396762024-04-26 12:57:35159 days ago1714136255IN
0x14df1c0C...2c75Cac41
0 ETH0.0008184510.42247472
Upgrade197396622024-04-26 12:54:47159 days ago1714136087IN
0x14df1c0C...2c75Cac41
0 ETH0.0009116411.60922911
Upgrade197396512024-04-26 12:52:35159 days ago1714135955IN
0x14df1c0C...2c75Cac41
0 ETH0.0009977510.43369976
Upgrade197392452024-04-26 11:30:47159 days ago1714131047IN
0x14df1c0C...2c75Cac41
0 ETH0.000765348.42630786
Upgrade197390202024-04-26 10:45:11159 days ago1714128311IN
0x14df1c0C...2c75Cac41
0 ETH0.000799548.80402569
Upgrade197364622024-04-26 2:09:11160 days ago1714097351IN
0x14df1c0C...2c75Cac41
0 ETH0.000516045.68156873
Upgrade197236712024-04-24 7:12:35161 days ago1713942755IN
0x14df1c0C...2c75Cac41
0 ETH0.0009689310.66915733
Upgrade197193332024-04-23 16:38:11162 days ago1713890291IN
0x14df1c0C...2c75Cac41
0 ETH0.0014796416.29059382
Upgrade197187332024-04-23 14:37:35162 days ago1713883055IN
0x14df1c0C...2c75Cac41
0 ETH0.0021687523.87764376
Upgrade197166602024-04-23 7:39:35162 days ago1713857975IN
0x14df1c0C...2c75Cac41
0 ETH0.000877229.65931861
Upgrade197124272024-04-22 17:28:23163 days ago1713806903IN
0x14df1c0C...2c75Cac41
0 ETH0.0012716313.99675161
Upgrade197067832024-04-21 22:31:59164 days ago1713738719IN
0x14df1c0C...2c75Cac41
0 ETH0.000680457.48969182
Upgrade197034032024-04-21 11:12:35164 days ago1713697955IN
0x14df1c0C...2c75Cac41
0 ETH0.000741588.16577671
Upgrade196959712024-04-20 10:16:11165 days ago1713608171IN
0x14df1c0C...2c75Cac41
0 ETH0.000526235.79379923
Upgrade196952272024-04-20 7:46:11165 days ago1713599171IN
0x14df1c0C...2c75Cac41
0 ETH0.00074698.24469717
Upgrade196928472024-04-19 23:46:47166 days ago1713570407IN
0x14df1c0C...2c75Cac41
0 ETH0.000683427.5244169
Upgrade196920242024-04-19 21:01:11166 days ago1713560471IN
0x14df1c0C...2c75Cac41
0 ETH0.000751268.27133887
Upgrade196917932024-04-19 20:14:35166 days ago1713557675IN
0x14df1c0C...2c75Cac41
0 ETH0.000797478.77778367
Upgrade196915082024-04-19 19:16:59166 days ago1713554219IN
0x14df1c0C...2c75Cac41
0 ETH0.0010115611.13425725
Upgrade196844912024-04-18 19:41:23167 days ago1713469283IN
0x14df1c0C...2c75Cac41
0 ETH0.0009148110.06933604
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VirtualVersionsErc20Upgrader

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-03-13
*/

// SPDX-License-Identifier: MIT

pragma solidity =0.8.9;

interface IERC20 {
    function transfer(address to, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

contract VirtualVersionsErc20Upgrader {
    address public constant BLACK_HOLE_ADDRESS = 0x000000000000000000000000000000000000dEaD;

    address public admin_;

    address public oldToken_;
    address public newToken_;

    function version() external pure returns (string memory) { return "VirtualVersionsErc20Upgrader v1"; }

    constructor(address _admin, address _oldToken, address _newToken) {
        require(_admin != address(0), "TA-5: zero admin address");
        admin_ = _admin;

        require(_oldToken != address(0) && _newToken != address(0), "TA-1: zero token address");
        oldToken_ = _oldToken;
        newToken_ = _newToken;
    }

    modifier onlyAdmin() {
        require(msg.sender == admin_, "TA-4: auth failed");
        _;
    }

    function withdraw(address _token, address _recipient, uint256 _amount) external onlyAdmin {
        require(IERC20(_token).transfer(_recipient, _amount), "TA-6: transfer failed");
    }

    function upgrade(address _recipient, uint256 _amount) external {
        require(_amount != 0, "TA-2: zero token amount");
        require(_recipient != address(0), "TA-3: zero recipient address");

        require(IERC20(oldToken_).transferFrom(msg.sender, BLACK_HOLE_ADDRESS, _amount), "TA-7: burn failed");
        require(IERC20(newToken_).transfer(_recipient, _amount), "TA-8: transfer failed");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_oldToken","type":"address"},{"internalType":"address","name":"_newToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BLACK_HOLE_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newToken_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oldToken_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405161078738038061078783398101604081905261002f9161015c565b6001600160a01b03831661008a5760405162461bcd60e51b815260206004820152601860248201527f54412d353a207a65726f2061646d696e2061646472657373000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03858116919091179091558216158015906100c257506001600160a01b03811615155b61010e5760405162461bcd60e51b815260206004820152601860248201527f54412d313a207a65726f20746f6b656e206164647265737300000000000000006044820152606401610081565b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790555061019f565b80516001600160a01b038116811461015757600080fd5b919050565b60008060006060848603121561017157600080fd5b61017a84610140565b925061018860208501610140565b915061019660408501610140565b90509250925092565b6105d9806101ae6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806354fd4d501161005b57806354fd4d50146100ce578063a4baf7501461010d578063d9caed1214610120578063e0622b271461013557600080fd5b806315220a44146100825780633495457b146100b25780633cdfef01146100c5575b600080fd5b600154610095906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b600254610095906001600160a01b031681565b61009561dead81565b604080518082018252601f81527f5669727475616c56657273696f6e734572633230557067726164657220763100602082015290516100a991906104a3565b600054610095906001600160a01b031681565b61013361012e366004610514565b610148565b005b610133610143366004610550565b610266565b6000546001600160a01b0316331461019b5760405162461bcd60e51b815260206004820152601160248201527015104b4d0e88185d5d1a0819985a5b1959607a1b60448201526064015b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b1580156101e557600080fd5b505af11580156101f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021d919061057a565b6102615760405162461bcd60e51b815260206004820152601560248201527415104b4d8e881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610192565b505050565b806102b35760405162461bcd60e51b815260206004820152601760248201527f54412d323a207a65726f20746f6b656e20616d6f756e740000000000000000006044820152606401610192565b6001600160a01b0382166103095760405162461bcd60e51b815260206004820152601c60248201527f54412d333a207a65726f20726563697069656e742061646472657373000000006044820152606401610192565b6001546040516323b872dd60e01b815233600482015261dead6024820152604481018390526001600160a01b03909116906323b872dd90606401602060405180830381600087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610395919061057a565b6103d55760405162461bcd60e51b815260206004820152601160248201527015104b4dce88189d5c9b8819985a5b1959607a1b6044820152606401610192565b60025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561042357600080fd5b505af1158015610437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045b919061057a565b61049f5760405162461bcd60e51b815260206004820152601560248201527415104b4e0e881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610192565b5050565b600060208083528351808285015260005b818110156104d0578581018301518582016040015282016104b4565b818111156104e2576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461050f57600080fd5b919050565b60008060006060848603121561052957600080fd5b610532846104f8565b9250610540602085016104f8565b9150604084013590509250925092565b6000806040838503121561056357600080fd5b61056c836104f8565b946020939093013593505050565b60006020828403121561058c57600080fd5b8151801515811461059c57600080fd5b939250505056fea264697066735822122075c8f356c70b78ec9c3e733eb486357d9a97b6d5a11d6a5a9886b000b1215d9664736f6c634300080900330000000000000000000000005f9b6c6510bf3c3f2fdfbcb526f5458a08f3fccf0000000000000000000000005c39ef4bda89a9d7edb18a16e53c97d5d32245f60000000000000000000000001f7e7a030aef0a0f600de1350c23d30b73fc7270

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806354fd4d501161005b57806354fd4d50146100ce578063a4baf7501461010d578063d9caed1214610120578063e0622b271461013557600080fd5b806315220a44146100825780633495457b146100b25780633cdfef01146100c5575b600080fd5b600154610095906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b600254610095906001600160a01b031681565b61009561dead81565b604080518082018252601f81527f5669727475616c56657273696f6e734572633230557067726164657220763100602082015290516100a991906104a3565b600054610095906001600160a01b031681565b61013361012e366004610514565b610148565b005b610133610143366004610550565b610266565b6000546001600160a01b0316331461019b5760405162461bcd60e51b815260206004820152601160248201527015104b4d0e88185d5d1a0819985a5b1959607a1b60448201526064015b60405180910390fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b1580156101e557600080fd5b505af11580156101f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021d919061057a565b6102615760405162461bcd60e51b815260206004820152601560248201527415104b4d8e881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610192565b505050565b806102b35760405162461bcd60e51b815260206004820152601760248201527f54412d323a207a65726f20746f6b656e20616d6f756e740000000000000000006044820152606401610192565b6001600160a01b0382166103095760405162461bcd60e51b815260206004820152601c60248201527f54412d333a207a65726f20726563697069656e742061646472657373000000006044820152606401610192565b6001546040516323b872dd60e01b815233600482015261dead6024820152604481018390526001600160a01b03909116906323b872dd90606401602060405180830381600087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610395919061057a565b6103d55760405162461bcd60e51b815260206004820152601160248201527015104b4dce88189d5c9b8819985a5b1959607a1b6044820152606401610192565b60025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b15801561042357600080fd5b505af1158015610437573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045b919061057a565b61049f5760405162461bcd60e51b815260206004820152601560248201527415104b4e0e881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610192565b5050565b600060208083528351808285015260005b818110156104d0578581018301518582016040015282016104b4565b818111156104e2576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461050f57600080fd5b919050565b60008060006060848603121561052957600080fd5b610532846104f8565b9250610540602085016104f8565b9150604084013590509250925092565b6000806040838503121561056357600080fd5b61056c836104f8565b946020939093013593505050565b60006020828403121561058c57600080fd5b8151801515811461059c57600080fd5b939250505056fea264697066735822122075c8f356c70b78ec9c3e733eb486357d9a97b6d5a11d6a5a9886b000b1215d9664736f6c63430008090033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000005f9b6c6510bf3c3f2fdfbcb526f5458a08f3fccf0000000000000000000000005c39ef4bda89a9d7edb18a16e53c97d5d32245f60000000000000000000000001f7e7a030aef0a0f600de1350c23d30b73fc7270

-----Decoded View---------------
Arg [0] : _admin (address): 0x5f9B6C6510BF3c3F2fDFBcB526F5458a08f3fccf
Arg [1] : _oldToken (address): 0x5c39ef4bda89a9D7EDB18A16E53c97D5D32245F6
Arg [2] : _newToken (address): 0x1f7e7a030aEF0A0f600dE1350c23D30B73fC7270

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000005f9b6c6510bf3c3f2fdfbcb526f5458a08f3fccf
Arg [1] : 0000000000000000000000005c39ef4bda89a9d7edb18a16e53c97d5d32245f6
Arg [2] : 0000000000000000000000001f7e7a030aef0a0f600de1350c23d30b73fc7270


Deployed Bytecode Sourcemap

257:1405:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;428:24;;;;;-1:-1:-1;;;;;428:24:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;428:24:0;;;;;;;;459;;;;;-1:-1:-1;;;;;459:24:0;;;302:87;;347:42;302:87;;492:102;551:40;;;;;;;;;;;;;;;;492:102;;;;551:40;492:102;:::i;398:21::-;;;;;-1:-1:-1;;;;;398:21:0;;;1052:187;;;;;;:::i;:::-;;:::i;:::-;;1247:412;;;;;;:::i;:::-;;:::i;1052:187::-;996:6;;-1:-1:-1;;;;;996:6:0;982:10;:20;974:50;;;;-1:-1:-1;;;974:50:0;;1796:2:1;974:50:0;;;1778:21:1;1835:2;1815:18;;;1808:30;-1:-1:-1;;;1854:18:1;;;1847:47;1911:18;;974:50:0;;;;;;;;;1161:44:::1;::::0;-1:-1:-1;;;1161:44:0;;-1:-1:-1;;;;;2132:32:1;;;1161:44:0::1;::::0;::::1;2114:51:1::0;2181:18;;;2174:34;;;1161:23:0;::::1;::::0;::::1;::::0;2087:18:1;;1161:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1153:78;;;::::0;-1:-1:-1;;;1153:78:0;;2703:2:1;1153:78:0::1;::::0;::::1;2685:21:1::0;2742:2;2722:18;;;2715:30;-1:-1:-1;;;2761:18:1;;;2754:51;2822:18;;1153:78:0::1;2501:345:1::0;1153:78:0::1;1052:187:::0;;;:::o;1247:412::-;1329:12;1321:48;;;;-1:-1:-1;;;1321:48:0;;3053:2:1;1321:48:0;;;3035:21:1;3092:2;3072:18;;;3065:30;3131:25;3111:18;;;3104:53;3174:18;;1321:48:0;2851:347:1;1321:48:0;-1:-1:-1;;;;;1388:24:0;;1380:65;;;;-1:-1:-1;;;1380:65:0;;3405:2:1;1380:65:0;;;3387:21:1;3444:2;3424:18;;;3417:30;3483;3463:18;;;3456:58;3531:18;;1380:65:0;3203:352:1;1380:65:0;1473:9;;1466:71;;-1:-1:-1;;;1466:71:0;;1497:10;1466:71;;;3800:34:1;347:42:0;3850:18:1;;;3843:43;3902:18;;;3895:34;;;-1:-1:-1;;;;;1473:9:0;;;;1466:30;;3735:18:1;;1466:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1458:101;;;;-1:-1:-1;;;1458:101:0;;4142:2:1;1458:101:0;;;4124:21:1;4181:2;4161:18;;;4154:30;-1:-1:-1;;;4200:18:1;;;4193:47;4257:18;;1458:101:0;3940:341:1;1458:101:0;1585:9;;1578:47;;-1:-1:-1;;;1578:47:0;;-1:-1:-1;;;;;2132:32:1;;;1578:47:0;;;2114:51:1;2181:18;;;2174:34;;;1585:9:0;;;;1578:26;;2087:18:1;;1578:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1570:81;;;;-1:-1:-1;;;1570:81:0;;4488:2:1;1570:81:0;;;4470:21:1;4527:2;4507:18;;;4500:30;-1:-1:-1;;;4546:18:1;;;4539:51;4607:18;;1570:81:0;4286:345:1;1570:81:0;1247:412;;:::o;222:597:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;660:6;657:1;654:13;651:91;;;730:1;725:2;716:6;705:9;701:22;697:31;690:42;651:91;-1:-1:-1;803:2:1;782:15;-1:-1:-1;;778:29:1;763:45;;;;810:2;759:54;;222:597;-1:-1:-1;;;222:597:1:o;824:173::-;892:20;;-1:-1:-1;;;;;941:31:1;;931:42;;921:70;;987:1;984;977:12;921:70;824:173;;;:::o;1002:328::-;1079:6;1087;1095;1148:2;1136:9;1127:7;1123:23;1119:32;1116:52;;;1164:1;1161;1154:12;1116:52;1187:29;1206:9;1187:29;:::i;:::-;1177:39;;1235:38;1269:2;1258:9;1254:18;1235:38;:::i;:::-;1225:48;;1320:2;1309:9;1305:18;1292:32;1282:42;;1002:328;;;;;:::o;1335:254::-;1403:6;1411;1464:2;1452:9;1443:7;1439:23;1435:32;1432:52;;;1480:1;1477;1470:12;1432:52;1503:29;1522:9;1503:29;:::i;:::-;1493:39;1579:2;1564:18;;;;1551:32;;-1:-1:-1;;;1335:254:1:o;2219:277::-;2286:6;2339:2;2327:9;2318:7;2314:23;2310:32;2307:52;;;2355:1;2352;2345:12;2307:52;2387:9;2381:16;2440:5;2433:13;2426:21;2419:5;2416:32;2406:60;;2462:1;2459;2452:12;2406:60;2485:5;2219:277;-1:-1:-1;;;2219:277:1:o

Swarm Source

ipfs://75c8f356c70b78ec9c3e733eb486357d9a97b6d5a11d6a5a9886b000b1215d96

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.