ETH Price: $2,112.06 (+1.64%)

Contract

0x83D0D842e6DB3B020f384a2af11bD14787BEC8E7
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer146299922022-04-21 18:52:101424 days ago1650567130IN
0x83D0D842...787BEC8E7
0.001 ETH0.0019159191.06050162
Transfer146299892022-04-21 18:51:431424 days ago1650567103IN
0x83D0D842...787BEC8E7
0.00001 ETH0.001999895.22886016
Transfer Ownersh...124611792021-05-18 22:53:431761 days ago1621378423IN
0x83D0D842...787BEC8E7
0 ETH0.0020274771
Withdraw124608822021-05-18 21:42:231761 days ago1621374143IN
0x83D0D842...787BEC8E7
0 ETH0.0023654371

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer246115252026-03-08 8:22:597 days ago1772958179
0x83D0D842...787BEC8E7
0.00379901 ETH
Transfer246115252026-03-08 8:22:597 days ago1772958179
0x83D0D842...787BEC8E7
0.00125183 ETH
Transfer243897792026-02-05 9:37:1138 days ago1770284231
0x83D0D842...787BEC8E7
5.73704998 ETH
Transfer243789662026-02-03 21:19:4739 days ago1770153587
0x83D0D842...787BEC8E7
0.00125183 ETH
Transfer243425862026-01-29 19:24:4745 days ago1769714687
0x83D0D842...787BEC8E7
0.39596815 ETH
Transfer242629652026-01-18 16:54:1156 days ago1768755251
0x83D0D842...787BEC8E7
0.04787243 ETH
Transfer242522712026-01-17 5:08:1157 days ago1768626491
0x83D0D842...787BEC8E7
0.10181881 ETH
Transfer242344942026-01-14 17:39:5960 days ago1768412399
0x83D0D842...787BEC8E7
0.00125183 ETH
Transfer241260142025-12-30 14:22:2375 days ago1767104543
0x83D0D842...787BEC8E7
10.27763789 ETH
Transfer240843412025-12-24 18:42:2381 days ago1766601743
0x83D0D842...787BEC8E7
0.04324066 ETH
Transfer240590112025-12-21 5:52:5984 days ago1766296379
0x83D0D842...787BEC8E7
0.05514616 ETH
Transfer240540532025-12-20 13:16:4785 days ago1766236607
0x83D0D842...787BEC8E7
0.04356637 ETH
Transfer240540452025-12-20 13:15:1185 days ago1766236511
0x83D0D842...787BEC8E7
0.04354415 ETH
Transfer240540362025-12-20 13:13:2385 days ago1766236403
0x83D0D842...787BEC8E7
0.04396985 ETH
Transfer240232632025-12-16 6:05:1189 days ago1765865111
0x83D0D842...787BEC8E7
0.04088825 ETH
Transfer240232512025-12-16 6:02:4789 days ago1765864967
0x83D0D842...787BEC8E7
0.04026436 ETH
Transfer240232352025-12-16 5:59:3589 days ago1765864775
0x83D0D842...787BEC8E7
0.03949267 ETH
Transfer240232042025-12-16 5:53:2389 days ago1765864403
0x83D0D842...787BEC8E7
0.03845685 ETH
Transfer240191042025-12-15 16:10:1190 days ago1765815011
0x83D0D842...787BEC8E7
0.02452617 ETH
Transfer240190652025-12-15 16:02:2390 days ago1765814543
0x83D0D842...787BEC8E7
0.02351428 ETH
Transfer240190532025-12-15 15:59:5990 days ago1765814399
0x83D0D842...787BEC8E7
0.02274545 ETH
Transfer240190372025-12-15 15:56:3590 days ago1765814195
0x83D0D842...787BEC8E7
0.0223923 ETH
Transfer240190232025-12-15 15:53:4790 days ago1765814027
0x83D0D842...787BEC8E7
0.02161125 ETH
Transfer240124062025-12-14 17:42:1191 days ago1765734131
0x83D0D842...787BEC8E7
0.12324165 ETH
Transfer240055682025-12-13 18:47:3592 days ago1765651655
0x83D0D842...787BEC8E7
0.00149906 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GuildBank

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *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

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"}]

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

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
0x83D0D842e6DB3B020f384a2af11bD14787BEC8E7
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.