More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 412 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Tokens | 16784051 | 508 days ago | IN | 0 ETH | 0.00361039 | ||||
Withdraw Tokens | 12879342 | 1101 days ago | IN | 0 ETH | 0.00225884 | ||||
Withdraw Tokens | 12878847 | 1101 days ago | IN | 0 ETH | 0.00309074 | ||||
Withdraw Tokens | 12873778 | 1102 days ago | IN | 0 ETH | 0.00288921 | ||||
Withdraw Tokens | 12766371 | 1119 days ago | IN | 0 ETH | 0.00121772 | ||||
Withdraw Tokens | 12153196 | 1214 days ago | IN | 0 ETH | 0.0201875 | ||||
Withdraw Tokens | 11742018 | 1277 days ago | IN | 0 ETH | 0.00723484 | ||||
Withdraw Tokens | 11741470 | 1277 days ago | IN | 0 ETH | 0.00751672 | ||||
Withdraw Tokens | 11741470 | 1277 days ago | IN | 0 ETH | 0.00751672 | ||||
Withdraw Tokens | 11617184 | 1296 days ago | IN | 0 ETH | 0.00932732 | ||||
Withdraw Tokens | 11616259 | 1297 days ago | IN | 0 ETH | 0.0112722 | ||||
Withdraw Tokens | 11470578 | 1319 days ago | IN | 0 ETH | 0.01005361 | ||||
Redeem All Token... | 11341722 | 1339 days ago | IN | 0 ETH | 0.00116482 | ||||
Redeem All Token... | 11341700 | 1339 days ago | IN | 0 ETH | 0.00267577 | ||||
Withdraw Tokens | 11341652 | 1339 days ago | IN | 0 ETH | 0.00809925 | ||||
Withdraw Tokens | 11337075 | 1339 days ago | IN | 0 ETH | 0.0031946 | ||||
Withdraw Tokens | 11280818 | 1348 days ago | IN | 0 ETH | 0.00591941 | ||||
Withdraw Tokens | 11236442 | 1355 days ago | IN | 0 ETH | 0.00357044 | ||||
Redeem All Token... | 11179002 | 1364 days ago | IN | 0 ETH | 0.00404886 | ||||
Redeem All Token... | 11086121 | 1378 days ago | IN | 0 ETH | 0.00366158 | ||||
Withdraw Tokens | 11085908 | 1378 days ago | IN | 0 ETH | 0.00394627 | ||||
Withdraw Tokens | 11085908 | 1378 days ago | IN | 0 ETH | 0.00394627 | ||||
Redeem All Token... | 11050306 | 1383 days ago | IN | 0 ETH | 0.00352075 | ||||
Withdraw Tokens | 11050248 | 1383 days ago | IN | 0 ETH | 0.00335185 | ||||
Withdraw Tokens | 11050045 | 1383 days ago | IN | 0 ETH | 0.00744856 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ExchangeRedeemer
Compiler Version
v0.6.10+commit.00c0fcaf
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-06-19 */ pragma solidity ^0.6.0; interface ERC20 { function totalSupply() external view returns (uint supply); function balanceOf(address _owner) external view returns (uint balance); function transfer(address _to, uint _value) external returns (bool success); function transferFrom(address _from, address _to, uint _value) external returns (bool success); function approve(address _spender, uint _value) external returns (bool success); function allowance(address _owner, address _spender) external view returns (uint remaining); function decimals() external view returns(uint digits); event Approval(address indexed _owner, address indexed _spender, uint _value); } abstract contract SaverExchange { function swapTokenToToken( address _src, address _dest, uint256 _amount, uint256 _minPrice, uint256 _exchangeType, address _exchangeAddress, bytes memory _callData, uint256 _0xPrice ) virtual public; } contract Reserve { address ExchangeRedeemerAddr = 0x9523Fe0d1D488CaFDDfb3dcE28d7D177DDdBC300; function retreiveTokens(address _tokenAddr, uint _value) public { require(msg.sender == ExchangeRedeemerAddr); ERC20(_tokenAddr).transfer(ExchangeRedeemerAddr, _value); } } contract ExchangeRedeemer { address public owner; mapping(address => bool) public callers; address public constant DAI_ADDRESS = 0x6B175474E89094C44Da98b954EedeAC495271d0F; event Redeemed(address user, address token, uint amount); Reserve reserve; constructor() public { owner = msg.sender; callers[owner] = true; callers[0xF2BC1ed33Ee7EA37e7c5643751cbE86238664F24] = true; callers[0xc05c6356aCfD344c9Cf761aA451ca4F412D1B0f7] = true; callers[0xb560fA7b7cA2cF5ddBBb0622aE2C2FcbD4EA866F] = true; callers[0x5E96032e58CfDAD75d81a794B9C03e1B9970D9ed] = true; } mapping (address => mapping(address => uint)) public balances; function redeemAllTokens(address[] memory _tokenAddr) public { for(uint i = 0; i < _tokenAddr.length; ++i) { redeemTokens(_tokenAddr[i]); } } function redeemTokens(address _tokenAddr) public { uint balance = balances[msg.sender][_tokenAddr]; if (balance > 0) { balances[msg.sender][_tokenAddr] = 0; reserve.retreiveTokens(_tokenAddr, balance); ERC20(_tokenAddr).transfer(msg.sender, balance); emit Redeemed(msg.sender, _tokenAddr, balance); } } /// @dev Set fee = 0 for address(this) /// @dev Send a little bit of Dai to this address so we can go over the require > 0 function withdrawTokens(address _exchangeAddr, address _tokenAddr, address _user, uint _amount) public { require(callers[msg.sender]); // require(success && tokens[0] > 0, "0x transaction failed"); ERC20(DAI_ADDRESS).transfer(_exchangeAddr, 1); // transfer 1 wei so we can go over this require SaverExchange(_exchangeAddr).swapTokenToToken( DAI_ADDRESS, DAI_ADDRESS, 0, // Exchange amount 0, // minPrice 4, // exchangeType _tokenAddr, // exchangeAddr abi.encodeWithSignature("transferFrom(address,address,uint256)", _user, address(reserve), _amount), 0 // 0xPrixe ); balances[_user][_tokenAddr] = _amount; } function addCallers(address _caller, bool _state) public { require(owner == msg.sender); callers[_caller] = _state; } function addReserve(address _reserve) public { require(msg.sender == owner); reserve = Reserve(_reserve); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Redeemed","type":"event"},{"inputs":[],"name":"DAI_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"bool","name":"_state","type":"bool"}],"name":"addCallers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_reserve","type":"address"}],"name":"addReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"callers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokenAddr","type":"address[]"}],"name":"redeemAllTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"}],"name":"redeemTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_exchangeAddr","type":"address"},{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b03191633178082556001600160a01b031681526001602081905260408220805460ff1990811683179091557fbd2d10cff8ac04b09d070bf847cbaa64f49afea8a39f8bc6f4dcda193e89774780548216831790557f016e28344031edc3cd6a99f9691699764e03a017051a0a7c62087f573520969e80548216831790557f9b8932bfddff8f5424dc97fe363aa819364d39278a39a05cc75667cc631190fa8054821683179055735e96032e58cfdad75d81a794b9c03e1b9970d9ed9092527fb91a4344d44835fc09dff38cd929d9c767a1f862750671103ac1c784a4a51969805490921617905561078e806101126000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063955ef7d011610066578063955ef7d01461012e578063a5758552146101d1578063af0d4952146101f7578063c23f001f14610233578063f5deae931461027357610093565b80630f9212b8146100985780632a4c0a1a146100c85780637bbf4a3f146100ec5780638da5cb5b14610126575b600080fd5b6100c6600480360360408110156100ae57600080fd5b506001600160a01b0381351690602001351515610299565b005b6100d06102db565b604080516001600160a01b039092168252519081900360200190f35b6101126004803603602081101561010257600080fd5b50356001600160a01b03166102f3565b604080519115158252519081900360200190f35b6100d0610308565b6100c66004803603602081101561014457600080fd5b81019060208101813564010000000081111561015f57600080fd5b82018360208201111561017157600080fd5b8035906020019184602083028401116401000000008311171561019357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610317945050505050565b6100c6600480360360208110156101e757600080fd5b50356001600160a01b031661034b565b6100c66004803603608081101561020d57600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356104c5565b6102616004803603604081101561024957600080fd5b506001600160a01b0381358116916020013516610702565b60408051918252519081900360200190f35b6100c66004803603602081101561028957600080fd5b50356001600160a01b031661071f565b6000546001600160a01b031633146102b057600080fd5b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b736b175474e89094c44da98b954eedeac495271d0f81565b60016020526000908152604090205460ff1681565b6000546001600160a01b031681565b60005b81518110156103475761033f82828151811061033257fe5b602002602001015161034b565b60010161031a565b5050565b3360009081526003602090815260408083206001600160a01b03851684529091529020548015610347573360009081526003602090815260408083206001600160a01b0386811680865291909352818420849055600254825163022e378160e41b8152600481019290925260248201869052915191909216926322e37810926044808201939182900301818387803b1580156103e657600080fd5b505af11580156103fa573d6000803e3d6000fd5b50506040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b038616935063a9059cbb925060448083019260209291908290030181600087803b15801561044d57600080fd5b505af1158015610461573d6000803e3d6000fd5b505050506040513d602081101561047757600080fd5b5050604080513381526001600160a01b038416602082015280820183905290517f27d4634c833b7622a0acddbf7f746183625f105945e95c723ad1d5a9f2a0b6fc9181900360600190a15050565b3360009081526001602052604090205460ff166104e157600080fd5b6040805163a9059cbb60e01b81526001600160a01b0386166004820152600160248201529051736b175474e89094c44da98b954eedeac495271d0f9163a9059cbb9160448083019260209291908290030181600087803b15801561054457600080fd5b505af1158015610558573d6000803e3d6000fd5b505050506040513d602081101561056e57600080fd5b5050600254604080516001600160a01b038581166024808401919091529381166044808401919091526064808401879052845180850382018152608494850186526020810180516001600160e01b03166323b872dd60e01b1781529551638740726160e01b8152736b175474e89094c44da98b954eedeac495271d0f600482810182815299830182905260009583018690529382018590529581018390528a851660a482015260e4810184905261010060c4820190815282516101048301528251958d169863874072619888978796958f959094889493909261012490920191808383885b8381101561066b578181015183820152602001610653565b50505050905090810190601f1680156106985780820380516001836020036101000a031916815260200191505b509950505050505050505050600060405180830381600087803b1580156106be57600080fd5b505af11580156106d2573d6000803e3d6000fd5b5050506001600160a01b039283166000908152600360209081526040808320969095168252949094525091205550565b600360209081526000928352604080842090915290825290205481565b6000546001600160a01b0316331461073657600080fd5b600280546001600160a01b0319166001600160a01b039290921691909117905556fea2646970667358221220d6beb80230263e3f8458cb93dfd544b153bb6a0b9b25647ce4c15fe3e60e5ce464736f6c634300060a0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063955ef7d011610066578063955ef7d01461012e578063a5758552146101d1578063af0d4952146101f7578063c23f001f14610233578063f5deae931461027357610093565b80630f9212b8146100985780632a4c0a1a146100c85780637bbf4a3f146100ec5780638da5cb5b14610126575b600080fd5b6100c6600480360360408110156100ae57600080fd5b506001600160a01b0381351690602001351515610299565b005b6100d06102db565b604080516001600160a01b039092168252519081900360200190f35b6101126004803603602081101561010257600080fd5b50356001600160a01b03166102f3565b604080519115158252519081900360200190f35b6100d0610308565b6100c66004803603602081101561014457600080fd5b81019060208101813564010000000081111561015f57600080fd5b82018360208201111561017157600080fd5b8035906020019184602083028401116401000000008311171561019357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610317945050505050565b6100c6600480360360208110156101e757600080fd5b50356001600160a01b031661034b565b6100c66004803603608081101561020d57600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356104c5565b6102616004803603604081101561024957600080fd5b506001600160a01b0381358116916020013516610702565b60408051918252519081900360200190f35b6100c66004803603602081101561028957600080fd5b50356001600160a01b031661071f565b6000546001600160a01b031633146102b057600080fd5b6001600160a01b03919091166000908152600160205260409020805460ff1916911515919091179055565b736b175474e89094c44da98b954eedeac495271d0f81565b60016020526000908152604090205460ff1681565b6000546001600160a01b031681565b60005b81518110156103475761033f82828151811061033257fe5b602002602001015161034b565b60010161031a565b5050565b3360009081526003602090815260408083206001600160a01b03851684529091529020548015610347573360009081526003602090815260408083206001600160a01b0386811680865291909352818420849055600254825163022e378160e41b8152600481019290925260248201869052915191909216926322e37810926044808201939182900301818387803b1580156103e657600080fd5b505af11580156103fa573d6000803e3d6000fd5b50506040805163a9059cbb60e01b81523360048201526024810185905290516001600160a01b038616935063a9059cbb925060448083019260209291908290030181600087803b15801561044d57600080fd5b505af1158015610461573d6000803e3d6000fd5b505050506040513d602081101561047757600080fd5b5050604080513381526001600160a01b038416602082015280820183905290517f27d4634c833b7622a0acddbf7f746183625f105945e95c723ad1d5a9f2a0b6fc9181900360600190a15050565b3360009081526001602052604090205460ff166104e157600080fd5b6040805163a9059cbb60e01b81526001600160a01b0386166004820152600160248201529051736b175474e89094c44da98b954eedeac495271d0f9163a9059cbb9160448083019260209291908290030181600087803b15801561054457600080fd5b505af1158015610558573d6000803e3d6000fd5b505050506040513d602081101561056e57600080fd5b5050600254604080516001600160a01b038581166024808401919091529381166044808401919091526064808401879052845180850382018152608494850186526020810180516001600160e01b03166323b872dd60e01b1781529551638740726160e01b8152736b175474e89094c44da98b954eedeac495271d0f600482810182815299830182905260009583018690529382018590529581018390528a851660a482015260e4810184905261010060c4820190815282516101048301528251958d169863874072619888978796958f959094889493909261012490920191808383885b8381101561066b578181015183820152602001610653565b50505050905090810190601f1680156106985780820380516001836020036101000a031916815260200191505b509950505050505050505050600060405180830381600087803b1580156106be57600080fd5b505af11580156106d2573d6000803e3d6000fd5b5050506001600160a01b039283166000908152600360209081526040808320969095168252949094525091205550565b600360209081526000928352604080842090915290825290205481565b6000546001600160a01b0316331461073657600080fd5b600280546001600160a01b0319166001600160a01b039290921691909117905556fea2646970667358221220d6beb80230263e3f8458cb93dfd544b153bb6a0b9b25647ce4c15fe3e60e5ce464736f6c634300060a0033
Deployed Bytecode Sourcemap
1348:2663:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3700:150;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3700:150:0;;;;;;;;;;:::i;:::-;;1466:80;;;:::i;:::-;;;;-1:-1:-1;;;;;1466:80:0;;;;;;;;;;;;;;1414:39;;;;;;;;;;;;;;;;-1:-1:-1;1414:39:0;-1:-1:-1;;;;;1414:39:0;;:::i;:::-;;;;;;;;;;;;;;;;;;1387:20;;;:::i;2118:177::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2118:177:0;;-1:-1:-1;2118:177:0;;-1:-1:-1;;;;;2118:177:0:i;2307:436::-;;;;;;;;;;;;;;;;-1:-1:-1;2307:436:0;-1:-1:-1;;;;;2307:436:0;;:::i;2888:800::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2888:800:0;;;;;;;;;;;;;;;;;;;;;;:::i;2044:61::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2044:61:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3862:140;;;;;;;;;;;;;;;;-1:-1:-1;3862:140:0;-1:-1:-1;;;;;3862:140:0;;:::i;3700:150::-;3776:5;;-1:-1:-1;;;;;3776:5:0;3785:10;3776:19;3768:28;;;;;;-1:-1:-1;;;;;3817:16:0;;;;;;;;:7;:16;;;;;:25;;-1:-1:-1;;3817:25:0;;;;;;;;;;3700:150::o;1466:80::-;1504:42;1466:80;:::o;1414:39::-;;;;;;;;;;;;;;;:::o;1387:20::-;;;-1:-1:-1;;;;;1387:20:0;;:::o;2118:177::-;2194:6;2190:98;2210:10;:17;2206:1;:21;2190:98;;;2249:27;2262:10;2273:1;2262:13;;;;;;;;;;;;;;2249:12;:27::i;:::-;2229:3;;2190:98;;;;2118:177;:::o;2307:436::-;2391:10;2367:12;2382:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2382:32:0;;;;;;;;;;2439:11;;2435:291;;2476:10;2502:1;2467:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2467:32:0;;;;;;;;;;;;;:36;;;2532:7;;:43;;-1:-1:-1;;;2532:43:0;;;;;;;;;;;;;;;;;:7;;;;;:22;;:43;;;;;;;;;;;2502:1;2532:7;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2592:47:0;;;-1:-1:-1;;;2592:47:0;;2619:10;2592:47;;;;;;;;;;;;-1:-1:-1;;;;;2592:26:0;;;-1:-1:-1;2592:26:0;;-1:-1:-1;2592:47:0;;;;;;;;;;;;;;-1:-1:-1;2592:26:0;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2673:41:0;;;2682:10;2673:41;;-1:-1:-1;;;;;2673:41:0;;2592:47;2673:41;;;;;;;;;;;;;;;;;;;;2307:436;;:::o;2888:800::-;3018:10;3010:19;;;;:7;:19;;;;;;;;3002:28;;;;;;3123:45;;;-1:-1:-1;;;3123:45:0;;-1:-1:-1;;;;;3123:45:0;;;;;;3166:1;3123:45;;;;;;1504:42;;3123:27;;:45;;;;;;;;;;;;;;-1:-1:-1;1504:42:0;3123:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3566:7:0;;3486:98;;;-1:-1:-1;;;;;3486:98:0;;;;;;;;;;;3566:7;;;3486:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3123:45;3486:98;;;;-1:-1:-1;;;;;3486:98:0;-1:-1:-1;;;3486:98:0;;;3238:384;;-1:-1:-1;;;3238:384:0;;1504:42;3413:1;3238:384;;;;;;;;;;;;3350:1;3238:384;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3566:7;3238:384;;;;;;;;;;;;;;:45;;;;;;1504:42;;3350:1;;3413;3445:10;;3486:98;;3350:1;;3238:384;;;;;;;;;;3486:98;3350:1;3238:384;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;3643:15:0;;;;;;;:8;:15;;;;;;;;:27;;;;;;;;;;-1:-1:-1;3643:27:0;;:37;-1:-1:-1;2888:800:0:o;2044:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;3862:140::-;3940:5;;-1:-1:-1;;;;;3940:5:0;3926:10;:19;3918:28;;;;;;3967:7;:27;;-1:-1:-1;;;;;;3967:27:0;-1:-1:-1;;;;;3967:27:0;;;;;;;;;;3862:140::o
Swarm Source
ipfs://d6beb80230263e3f8458cb93dfd544b153bb6a0b9b25647ce4c15fe3e60e5ce4
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.