Source Code
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 24611525 | 7 days ago | 0.00379901 ETH | ||||
| Transfer | 24611525 | 7 days ago | 0.00125183 ETH | ||||
| Transfer | 24389779 | 38 days ago | 5.73704998 ETH | ||||
| Transfer | 24378966 | 39 days ago | 0.00125183 ETH | ||||
| Transfer | 24342586 | 45 days ago | 0.39596815 ETH | ||||
| Transfer | 24262965 | 56 days ago | 0.04787243 ETH | ||||
| Transfer | 24252271 | 57 days ago | 0.10181881 ETH | ||||
| Transfer | 24234494 | 60 days ago | 0.00125183 ETH | ||||
| Transfer | 24126014 | 75 days ago | 10.27763789 ETH | ||||
| Transfer | 24084341 | 81 days ago | 0.04324066 ETH | ||||
| Transfer | 24059011 | 84 days ago | 0.05514616 ETH | ||||
| Transfer | 24054053 | 85 days ago | 0.04356637 ETH | ||||
| Transfer | 24054045 | 85 days ago | 0.04354415 ETH | ||||
| Transfer | 24054036 | 85 days ago | 0.04396985 ETH | ||||
| Transfer | 24023263 | 89 days ago | 0.04088825 ETH | ||||
| Transfer | 24023251 | 89 days ago | 0.04026436 ETH | ||||
| Transfer | 24023235 | 89 days ago | 0.03949267 ETH | ||||
| Transfer | 24023204 | 89 days ago | 0.03845685 ETH | ||||
| Transfer | 24019104 | 90 days ago | 0.02452617 ETH | ||||
| Transfer | 24019065 | 90 days ago | 0.02351428 ETH | ||||
| Transfer | 24019053 | 90 days ago | 0.02274545 ETH | ||||
| Transfer | 24019037 | 90 days ago | 0.0223923 ETH | ||||
| Transfer | 24019023 | 90 days ago | 0.02161125 ETH | ||||
| Transfer | 24012406 | 91 days ago | 0.12324165 ETH | ||||
| Transfer | 24005568 | 92 days ago | 0.00149906 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
GuildBank
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-08-23
*/
pragma solidity 0.5.16;
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0)
return 0;
uint256 c = a * b;
require(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0);
uint256 c = a / b;
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b != 0);
return a % b;
}
}
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() public {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "permission denied");
_;
}
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0), "invalid address");
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract ERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address from, address to, uint256 amount) external returns (bool);
function burn(address from, uint256 amount) external;
}
contract ERC20NonStandard {
function transfer(address to, uint256 value) public;
}
contract Burner {
using SafeMath for uint256;
address constant etherAddr = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
ERC20 constant hakka = ERC20(0x0E29e5AbbB5FD88e28b2d355774e73BD47dE3bcd);
GuildBank constant bank = GuildBank(0x83D0D842e6DB3B020f384a2af11bD14787BEC8E7);
bool private lock;
function ragequit(address[] calldata tokens, uint256 share) external returns (uint256[] memory amounts) {
require(!lock);
lock = true;
uint256 totalShare = hakka.totalSupply();
hakka.burn(msg.sender, share);
amounts = new uint256[](tokens.length);
for(uint256 i = 0; i < tokens.length; i++) {
if(i > 0) require(uint256(tokens[i-1]) < uint256(tokens[i]), "bad order");
uint256 tokenInBank;
if(tokens[i] == etherAddr) {
address payable _bank = address(bank);
tokenInBank = _bank.balance;
}
else {
tokenInBank = ERC20(tokens[i]).balanceOf(address(bank));
}
uint256 amount = share.mul(tokenInBank).div(totalShare);
amounts[i] = amount;
require(bank.withdraw(tokens[i], msg.sender, amount), "fail to withdraw");
}
lock = false;
}
}
contract GuildBank is Ownable {
address constant etherAddr = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
address constant burner = 0xde02313f8BF17f31380c63e41CDECeE98Bc2b16d;
event Withdrawal(address indexed token, address indexed receiver, uint256 amount);
constructor() public {
new Burner();
}
function withdraw(address token, address receiver, uint256 amount) external returns (bool result) {
require(msg.sender == owner || msg.sender == burner, "permission denied");
if(token == etherAddr) {
(result,) = receiver.call.value(amount)("");
}
else {
result = doTransferOut(token, receiver, amount);
}
if(result) emit Withdrawal(token, receiver, amount);
}
function() external payable {}
function doTransferOut(address tokenAddr, address to, uint amount) internal returns (bool result) {
ERC20NonStandard token = ERC20NonStandard(tokenAddr);
token.transfer(to, amount);
assembly {
switch returndatasize()
case 0 { // This is a non-standard ERC-20
result := not(0) // set result to true
}
case 32 { // This is a complaint ERC-20
returndatacopy(0, 0, 32)
result := mload(0) // Set `result = returndata` of external call
}
default { // This is an excessively non-compliant ERC-20, revert.
revert(0, 0)
}
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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":"token","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawal","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b0319163317905560405161002f90610052565b604051809103906000f08015801561004b573d6000803e3d6000fd5b505061005f565b6105b38061049883390190565b61042a8061006e6000396000f3fe6080604052600436106100345760003560e01c80638da5cb5b14610036578063d9caed1214610067578063f2fde38b146100be575b005b34801561004257600080fd5b5061004b6100f1565b604080516001600160a01b039092168252519081900360200190f35b34801561007357600080fd5b506100aa6004803603606081101561008a57600080fd5b506001600160a01b03813581169160208101359091169060400135610100565b604080519115158252519081900360200190f35b3480156100ca57600080fd5b50610034600480360360208110156100e157600080fd5b50356001600160a01b0316610257565b6000546001600160a01b031681565b600080546001600160a01b031633148061012d57503373de02313f8bf17f31380c63e41cdecee98bc2b16d145b610172576040805162461bcd60e51b81526020600482015260116024820152701c195c9b5a5cdcda5bdb8819195b9a5959607a1b604482015290519081900360640190fd5b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156101f0576040516001600160a01b038416908390600081818185875af1925050503d80600081146101e0576040519150601f19603f3d011682016040523d82523d6000602084013e6101e5565b606091505b5050809150506101fe565b6101fb848484610352565b90505b801561025057826001600160a01b0316846001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a35b9392505050565b6000546001600160a01b031633146102aa576040805162461bcd60e51b81526020600482015260116024820152701c195c9b5a5cdcda5bdb8819195b9a5959607a1b604482015290519081900360640190fd5b6001600160a01b0381166102f7576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805163a9059cbb60e01b81526001600160a01b03848116600483015260248201849052915160009286929083169163a9059cbb91604480820192879290919082900301818387803b1580156103a857600080fd5b505af11580156103bc573d6000803e3d6000fd5b505050503d600081146103d657602081146103e057600080fd5b60001992506103ec565b60206000803e60005192505b5050939250505056fea265627a7a7231582039320dc4792f9018c3fd273e4b4fc736427d56ba57c9b74034df0404c641169a64736f6c63430005100032608060405234801561001057600080fd5b50610593806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063d9647e0b14610030575b600080fd5b6100a06004803603604081101561004657600080fd5b81019060208101813564010000000081111561006157600080fd5b82018360208201111561007357600080fd5b8035906020019184602083028401116401000000008311171561009557600080fd5b9193509150356100f0565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100dc5781810151838201526020016100c4565b505050509050019250505060405180910390f35b60005460609060ff161561010357600080fd5b6000805460ff19166001178155604080516318160ddd60e01b81529051730e29e5abbb5fd88e28b2d355774e73bd47de3bcd916318160ddd916004808301926020929190829003018186803b15801561015b57600080fd5b505afa15801561016f573d6000803e3d6000fd5b505050506040513d602081101561018557600080fd5b505160408051632770a7eb60e21b8152336004820152602481018690529051919250730e29e5abbb5fd88e28b2d355774e73bd47de3bcd91639dc29fac9160448082019260009290919082900301818387803b1580156101e457600080fd5b505af11580156101f8573d6000803e3d6000fd5b5050505084849050604051908082528060200260200182016040528015610229578160200160208202803883390190505b50915060005b848110156104f95780156102c85785858281811061024957fe5b905060200201356001600160a01b03166001600160a01b031686866001840381811061027157fe5b905060200201356001600160a01b03166001600160a01b0316106102c8576040805162461bcd60e51b81526020600482015260096024820152683130b21037b93232b960b91b604482015290519081900360640190fd5b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8787848181106102eb57fe5b905060200201356001600160a01b03166001600160a01b0316141561032657507383d0d842e6db3b020f384a2af11bd14787bec8e7316103c1565b86868381811061033257fe5b604080516370a0823160e01b81527383d0d842e6db3b020f384a2af11bd14787bec8e760048201529051602092830294909401356001600160a01b0316936370a08231935060248083019392829003018186803b15801561039257600080fd5b505afa1580156103a6573d6000803e3d6000fd5b505050506040513d60208110156103bc57600080fd5b505190505b60006103e3846103d7888563ffffffff61050c16565b9063ffffffff61053c16565b9050808584815181106103f257fe5b60209081029190910101527383d0d842e6db3b020f384a2af11bd14787bec8e763d9caed1289898681811061042357fe5b6040805160e086901b6001600160e01b0319168152602092830294909401356001600160a01b03166004850152336024850152604484018790525160648085019492935090918290030181600087803b15801561047f57600080fd5b505af1158015610493573d6000803e3d6000fd5b505050506040513d60208110156104a957600080fd5b50516104ef576040805162461bcd60e51b815260206004820152601060248201526f6661696c20746f20776974686472617760801b604482015290519081900360640190fd5b505060010161022f565b50506000805460ff191690559392505050565b60008261051b57506000610536565b8282028284828161052857fe5b041461053357600080fd5b90505b92915050565b600080821161054a57600080fd5b600082848161055557fe5b0494935050505056fea265627a7a723158200b2c0d3855c44008c86a97247e26f32190cafa73e38dfef1a2da17b4427415d564736f6c63430005100032
Deployed Bytecode
0x6080604052600436106100345760003560e01c80638da5cb5b14610036578063d9caed1214610067578063f2fde38b146100be575b005b34801561004257600080fd5b5061004b6100f1565b604080516001600160a01b039092168252519081900360200190f35b34801561007357600080fd5b506100aa6004803603606081101561008a57600080fd5b506001600160a01b03813581169160208101359091169060400135610100565b604080519115158252519081900360200190f35b3480156100ca57600080fd5b50610034600480360360208110156100e157600080fd5b50356001600160a01b0316610257565b6000546001600160a01b031681565b600080546001600160a01b031633148061012d57503373de02313f8bf17f31380c63e41cdecee98bc2b16d145b610172576040805162461bcd60e51b81526020600482015260116024820152701c195c9b5a5cdcda5bdb8819195b9a5959607a1b604482015290519081900360640190fd5b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156101f0576040516001600160a01b038416908390600081818185875af1925050503d80600081146101e0576040519150601f19603f3d011682016040523d82523d6000602084013e6101e5565b606091505b5050809150506101fe565b6101fb848484610352565b90505b801561025057826001600160a01b0316846001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a35b9392505050565b6000546001600160a01b031633146102aa576040805162461bcd60e51b81526020600482015260116024820152701c195c9b5a5cdcda5bdb8819195b9a5959607a1b604482015290519081900360640190fd5b6001600160a01b0381166102f7576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c6964206164647265737360881b604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805163a9059cbb60e01b81526001600160a01b03848116600483015260248201849052915160009286929083169163a9059cbb91604480820192879290919082900301818387803b1580156103a857600080fd5b505af11580156103bc573d6000803e3d6000fd5b505050503d600081146103d657602081146103e057600080fd5b60001992506103ec565b60206000803e60005192505b5050939250505056fea265627a7a7231582039320dc4792f9018c3fd273e4b4fc736427d56ba57c9b74034df0404c641169a64736f6c63430005100032
Deployed Bytecode Sourcemap
3365:1678:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;880:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;880:20:0;;;:::i;:::-;;;;-1:-1:-1;;;;;880:20:0;;;;;;;;;;;;;;3711:448;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3711:448:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3711:448:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1176:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1176:211:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1176:211:0;-1:-1:-1;;;;;1176:211:0;;:::i;880:20::-;;;-1:-1:-1;;;;;880:20:0;;:::o;3711:448::-;3796:11;3842:5;;-1:-1:-1;;;;;3842:5:0;3828:10;:19;;:43;;-1:-1:-1;3851:10:0;3510:42;3851:20;3828:43;3820:73;;;;;-1:-1:-1;;;3820:73:0;;;;;;;;;;;;-1:-1:-1;;;3820:73:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3909:18:0;;3433:42;3909:18;3906:182;;;3956:31;;-1:-1:-1;;;;;3956:13:0;;;3976:6;;3956:31;;;;3976:6;3956:13;:31;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3944:43:0;;;;;3906:182;;;4038:38;4052:5;4059:8;4069:6;4038:13;:38::i;:::-;4029:47;;3906:182;4103:6;4100:51;;;4134:8;-1:-1:-1;;;;;4116:35:0;4127:5;-1:-1:-1;;;;;4116:35:0;;4144:6;4116:35;;;;;;;;;;;;;;;;;;4100:51;3711:448;;;;;:::o;1176:211::-;1121:5;;-1:-1:-1;;;;;1121:5:0;1107:10;:19;1099:49;;;;;-1:-1:-1;;;1099:49:0;;;;;;;;;;;;-1:-1:-1;;;1099:49:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1257:22:0;;1249:50;;;;;-1:-1:-1;;;1249:50:0;;;;;;;;;;;;-1:-1:-1;;;1249:50:0;;;;;;;;;;;;;;;1336:5;;;1315:37;;-1:-1:-1;;;;;1315:37:0;;;;1336:5;;;1315:37;;;1363:5;:16;;-1:-1:-1;;;;;;1363:16:0;-1:-1:-1;;;;;1363:16:0;;;;;;;;;;1176:211::o;4205:835::-;4377:26;;;-1:-1:-1;;;4377:26:0;;-1:-1:-1;;;;;4377:26:0;;;;;;;;;;;;;;;4290:11;;4356:9;;4377:14;;;;;;:26;;;;;4290:11;;4377:26;;;;;;;;4290:11;4377:14;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;4377:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4377:26:0;;;;4447:16;4486:1;4481:150;;;;4654:2;4649:217;;;;5001:1;4998;4991:12;4481:150;-1:-1:-1;;4575:6:0;-1:-1:-1;4481:150:0;;4649:217;4751:2;4748:1;4745;4730:24;4792:1;4786:8;4776:18;;4440:582;;4425:608;;;;;;:::o
Swarm Source
bzzr://0b2c0d3855c44008c86a97247e26f32190cafa73e38dfef1a2da17b4427415d5
Loading...
Loading
Loading...
Loading
Net Worth in USD
$866,270.36
Net Worth in ETH
410.155187
Token Allocations
ETH
70.05%
SKY
29.95%
USDC
0.00%
Multichain Portfolio | 33 Chains
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.