Source Code
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SCAIswap_v2
Compiler Version
v0.8.29+commit.ab55807c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2025-05-13 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.29; interface IERC20 { function balanceOf(address user) external view returns(uint256); function transfer(address _to, uint256 _amount) external returns (bool); function transferFrom(address _from, address _to, uint256 _amount) external returns (bool); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor() { _transferOwnership(msg.sender); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract SCAIswap_v2 is Ownable { IERC20 public oldToken; IERC20 public newToken; event Swapped(address indexed user, uint256 amount); constructor(address _oldToken, address _newToken) { require(_oldToken != address(0) && _newToken != address(0), "Invalid token address"); oldToken = IERC20(_oldToken); newToken = IERC20(_newToken); } //main function function swap() external { uint256 amount = oldToken.balanceOf(msg.sender); oldToken.transferFrom(msg.sender, address(this), amount); newToken.transfer(msg.sender, amount); emit Swapped(msg.sender, amount); } function withdrawTokens(address token, uint256 amount) external onlyOwner { IERC20(token).transfer(owner(), amount); } function changeTokens(address tokenOld, address tokenNew) external onlyOwner{ oldToken = IERC20(tokenOld); newToken = IERC20(tokenNew); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_oldToken","type":"address"},{"internalType":"address","name":"_newToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapped","type":"event"},{"inputs":[{"internalType":"address","name":"tokenOld","type":"address"},{"internalType":"address","name":"tokenNew","type":"address"}],"name":"changeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"newToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oldToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561000f575f5ffd5b506040516106d23803806106d283398101604081905261002e91610142565b610037336100d8565b6001600160a01b0382161580159061005757506001600160a01b03811615155b6100a75760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420746f6b656e20616464726573730000000000000000000000604482015260640160405180910390fd5b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055610173565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811461013d575f5ffd5b919050565b5f5f60408385031215610153575f5ffd5b61015c83610127565b915061016a60208401610127565b90509250929050565b610552806101805f395ff3fe608060405234801561000f575f5ffd5b5060043610610085575f3560e01c80639570c6cd116100585780639570c6cd146100d6578063b31c710a146100e9578063c42bd05a146100fc578063f2fde38b1461010f575f5ffd5b806306b091f914610089578063715018a61461009e5780638119c065146100a65780638da5cb5b146100ae575b5f5ffd5b61009c61009736600461046d565b610122565b005b61009c6101bd565b61009c6101d0565b5f546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61009c6100e4366004610495565b61035f565b6001546100ba906001600160a01b031681565b6002546100ba906001600160a01b031681565b61009c61011d3660046104c6565b610395565b61012a6103d7565b816001600160a01b031663a9059cbb61014a5f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610194573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b891906104e6565b505050565b6101c56103d7565b6101ce5f610403565b565b6001546040516370a0823160e01b81523360048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610216573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023a9190610505565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b0316906323b872dd906064016020604051808303815f875af115801561028f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b391906104e6565b5060025460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610302573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032691906104e6565b5060405181815233907fcdee897399ab5e465acb1bd3ed5e32c695f196321764546c59720fa6c9ce4c699060200160405180910390a250565b6103676103d7565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b61039d6103d7565b6001600160a01b0381166103cb57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6103d481610403565b50565b5f546001600160a01b031633146101ce5760405163118cdaa760e01b81523360048201526024016103c2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610468575f5ffd5b919050565b5f5f6040838503121561047e575f5ffd5b61048783610452565b946020939093013593505050565b5f5f604083850312156104a6575f5ffd5b6104af83610452565b91506104bd60208401610452565b90509250929050565b5f602082840312156104d6575f5ffd5b6104df82610452565b9392505050565b5f602082840312156104f6575f5ffd5b815180151581146104df575f5ffd5b5f60208284031215610515575f5ffd5b505191905056fea2646970667358221220bb7a10847ee5d6511878077d8096377d6763a153f306b99a3737c6e6f548c9a164736f6c634300081d0033000000000000000000000000e35009059cb55ded065027e9832a2c564aff75120000000000000000000000000f13fc8a93ab8edc9fde0a1e19aac693161599a5
Deployed Bytecode
0x608060405234801561000f575f5ffd5b5060043610610085575f3560e01c80639570c6cd116100585780639570c6cd146100d6578063b31c710a146100e9578063c42bd05a146100fc578063f2fde38b1461010f575f5ffd5b806306b091f914610089578063715018a61461009e5780638119c065146100a65780638da5cb5b146100ae575b5f5ffd5b61009c61009736600461046d565b610122565b005b61009c6101bd565b61009c6101d0565b5f546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61009c6100e4366004610495565b61035f565b6001546100ba906001600160a01b031681565b6002546100ba906001600160a01b031681565b61009c61011d3660046104c6565b610395565b61012a6103d7565b816001600160a01b031663a9059cbb61014a5f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610194573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b891906104e6565b505050565b6101c56103d7565b6101ce5f610403565b565b6001546040516370a0823160e01b81523360048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015610216573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023a9190610505565b6001546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b0316906323b872dd906064016020604051808303815f875af115801561028f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b391906104e6565b5060025460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015610302573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032691906104e6565b5060405181815233907fcdee897399ab5e465acb1bd3ed5e32c695f196321764546c59720fa6c9ce4c699060200160405180910390a250565b6103676103d7565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b61039d6103d7565b6001600160a01b0381166103cb57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6103d481610403565b50565b5f546001600160a01b031633146101ce5760405163118cdaa760e01b81523360048201526024016103c2565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610468575f5ffd5b919050565b5f5f6040838503121561047e575f5ffd5b61048783610452565b946020939093013593505050565b5f5f604083850312156104a6575f5ffd5b6104af83610452565b91506104bd60208401610452565b90509250929050565b5f602082840312156104d6575f5ffd5b6104df82610452565b9392505050565b5f602082840312156104f6575f5ffd5b815180151581146104df575f5ffd5b5f60208284031215610515575f5ffd5b505191905056fea2646970667358221220bb7a10847ee5d6511878077d8096377d6763a153f306b99a3737c6e6f548c9a164736f6c634300081d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e35009059cb55ded065027e9832a2c564aff75120000000000000000000000000f13fc8a93ab8edc9fde0a1e19aac693161599a5
-----Decoded View---------------
Arg [0] : _oldToken (address): 0xE35009059cb55ded065027e9832A2c564AFF7512
Arg [1] : _newToken (address): 0x0F13fC8a93aB8edC9Fde0a1E19aAC693161599A5
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000e35009059cb55ded065027e9832a2c564aff7512
Arg [1] : 0000000000000000000000000f13fc8a93ab8edc9fde0a1e19aac693161599a5
Deployed Bytecode Sourcemap
3091:1017:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3805:132;;;;;;:::i;:::-;;:::i;:::-;;2255:103;;;:::i;3518:279::-;;;:::i;1580:87::-;1626:7;1653:6;-1:-1:-1;;;;;1653:6:0;1580:87;;;-1:-1:-1;;;;;615:32:1;;;597:51;;585:2;570:18;1580:87:0;;;;;;;3945:160;;;;;;:::i;:::-;;:::i;3136:23::-;;;;;-1:-1:-1;;;;;3136:23:0;;;3166;;;;;-1:-1:-1;;;;;3166:23:0;;;2513:220;;;;;;:::i;:::-;;:::i;3805:132::-;1466:13;:11;:13::i;:::-;3897:5:::1;-1:-1:-1::0;;;;;3890:22:0::1;;3913:7;1626::::0;1653:6;-1:-1:-1;;;;;1653:6:0;;1580:87;3913:7:::1;3890:39;::::0;-1:-1:-1;;;;;;3890:39:0::1;::::0;;;;;;-1:-1:-1;;;;;1528:32:1;;;3890:39:0::1;::::0;::::1;1510:51:1::0;1577:18;;;1570:34;;;1483:18;;3890:39:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3805:132:::0;;:::o;2255:103::-;1466:13;:11;:13::i;:::-;2320:30:::1;2347:1;2320:18;:30::i;:::-;2255:103::o:0;3518:279::-;3581:8;;:30;;-1:-1:-1;;;3581:30:0;;3600:10;3581:30;;;597:51:1;3564:14:0;;-1:-1:-1;;;;;3581:8:0;;:18;;570::1;;3581:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3632:8;;:56;;-1:-1:-1;;;3632:56:0;;3654:10;3632:56;;;2288:51:1;3674:4:0;2355:18:1;;;2348:60;2424:18;;;2417:34;;;3564:47:0;;-1:-1:-1;;;;;;3632:8:0;;:21;;2261:18:1;;3632:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3699:8:0;;:37;;-1:-1:-1;;;3699:37:0;;3717:10;3699:37;;;1510:51:1;1577:18;;;1570:34;;;-1:-1:-1;;;;;3699:8:0;;;;:17;;1483:18:1;;3699:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3762:27:0;;2608:25:1;;;3770:10:0;;3762:27;;2596:2:1;2581:18;3762:27:0;;;;;;;3543:254;3518:279::o;3945:160::-;1466:13;:11;:13::i;:::-;4032:8:::1;:27:::0;;-1:-1:-1;;;;;4032:27:0;;::::1;-1:-1:-1::0;;;;;;4032:27:0;;::::1;;::::0;;;4070:8:::1;:27:::0;;;;;::::1;::::0;::::1;;::::0;;3945:160::o;2513:220::-;1466:13;:11;:13::i;:::-;-1:-1:-1;;;;;2598:22:0;::::1;2594:93;;2644:31;::::0;-1:-1:-1;;;2644:31:0;;2672:1:::1;2644:31;::::0;::::1;597:51:1::0;570:18;;2644:31:0::1;;;;;;;;2594:93;2697:28;2716:8;2697:18;:28::i;:::-;2513:220:::0;:::o;1745:166::-;1626:7;1653:6;-1:-1:-1;;;;;1653:6:0;449:10;1805:23;1801:103;;1852:40;;-1:-1:-1;;;1852:40:0;;449:10;1852:40;;;597:51:1;570:18;;1852:40:0;451:203:1;2893:191:0;2967:16;2986:6;;-1:-1:-1;;;;;3003:17:0;;;-1:-1:-1;;;;;;3003:17:0;;;;;;3036:40;;2986:6;;;;;;;3036:40;;2967:16;3036:40;2956:128;2893:191;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:1:o;659:260::-;727:6;735;788:2;776:9;767:7;763:23;759:32;756:52;;;804:1;801;794:12;756:52;827:29;846:9;827:29;:::i;:::-;817:39;;875:38;909:2;898:9;894:18;875:38;:::i;:::-;865:48;;659:260;;;;;:::o;1145:186::-;1204:6;1257:2;1245:9;1236:7;1232:23;1228:32;1225:52;;;1273:1;1270;1263:12;1225:52;1296:29;1315:9;1296:29;:::i;:::-;1286:39;1145:186;-1:-1:-1;;;1145:186:1:o;1615:277::-;1682:6;1735:2;1723:9;1714:7;1710:23;1706:32;1703:52;;;1751:1;1748;1741:12;1703:52;1783:9;1777:16;1836:5;1829:13;1822:21;1815:5;1812:32;1802:60;;1858:1;1855;1848:12;1897:184;1967:6;2020:2;2008:9;1999:7;1995:23;1991:32;1988:52;;;2036:1;2033;2026:12;1988:52;-1:-1:-1;2059:16:1;;1897:184;-1:-1:-1;1897:184:1:o
Swarm Source
ipfs://bb7a10847ee5d6511878077d8096377d6763a153f306b99a3737c6e6f548c9a1
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.007899 | 100,000 | $789.87 |
Loading...
Loading
Loading...
Loading
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.