Address Contract Partially Verified
Address
0x9571F1165247AF056e5ae33FaDa742F61C2CCf7D
Balance
0 ETH
Nonce
1
Code Size
7583 bytes
Creator
0x9b0a078A...9D16 at tx 0x792a0ba5...21c0a8
Indexed Transactions
Index loading...
Contract Bytecode
7583 bytes
0x6080604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632fda332e146100b45780634eb99970146100cb5780634f41cc87146101a75780635c975abb146101d65780636bdebcc9146102055780638456cb591461021c5780638da5cb5b14610233578063a2a360fb1461028a578063affbb65814610388578063b0b22c2c14610468578063f2fde38b14610550575b600080fd5b3480156100c057600080fd5b506100c96105a1565b005b3480156100d757600080fd5b50610191600480360360208110156100ee57600080fd5b810190808035906020019064010000000081111561010b57600080fd5b82018360208201111561011d57600080fd5b8035906020019184600183028401116401000000008311171561013f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061065f565b6040518082815260200191505060405180910390f35b3480156101b357600080fd5b506101bc610933565b604051808215151515815260200191505060405180910390f35b3480156101e257600080fd5b506101eb610949565b604051808215151515815260200191505060405180910390f35b34801561021157600080fd5b5061021a61095c565b005b34801561022857600080fd5b506102316109d0565b005b34801561023f57600080fd5b50610248610a90565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029657600080fd5b50610386600480360360808110156102ad57600080fd5b81019080803590602001906401000000008111156102ca57600080fd5b8201836020820111156102dc57600080fd5b803590602001918460018302840111640100000000831117156102fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610ab5565b005b34801561039457600080fd5b5061044e600480360360208110156103ab57600080fd5b81019080803590602001906401000000008111156103c857600080fd5b8201836020820111156103da57600080fd5b803590602001918460018302840111640100000000831117156103fc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506115f5565b604051808215151515815260200191505060405180910390f35b34801561047457600080fd5b5061054e6004803603604081101561048b57600080fd5b81019080803590602001906401000000008111156104a857600080fd5b8201836020820111156104ba57600080fd5b803590602001918460018302840111640100000000831117156104dc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611704565b005b34801561055c57600080fd5b5061059f6004803603602081101561057357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b78565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105fc57600080fd5b600060149054906101000a900460ff16151561061757600080fd5b60008060146101000a81548160ff0219169083151502179055507ff51ee052201ca7b5bc4773543dd4a70da0a513a2b1249156f400d9f180d7b7d660405160405180910390a1565b6000808251141515156106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f73796d626f6c206d757374206e6f7420626520626c616e6b2e0000000000000081525060200191505060405180910390fd5b6001826040518082805190602001908083835b60208310151561071257805182526020820191506020810190506020830392506106ed565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160149054906101000a900460ff1615156107ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5468657265206973206e6f20746f6b656e20636f6e74726163742e000000000081525060200191505060405180910390fd5b6001826040518082805190602001908083835b60208310151561080257805182526020820191506020810190506020830392506107dd565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156108f157600080fd5b505afa158015610905573d6000803e3d6000fd5b505050506040513d602081101561091b57600080fd5b81019080805190602001909291905050509050919050565b60008060149054906101000a900460ff16905090565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109b757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a2b57600080fd5b600060149054906101000a900460ff16151515610a4757600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b1057600080fd5b6000845114151515610b8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f73796d626f6c206d757374206e6f7420626520626c616e6b2e0000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f41646472657373206d757374206e6f74206265207a65726f2e0000000000000081525060200191505060405180910390fd5b6001846040518082805190602001908083835b602083101515610c675780518252602082019150602081019050602083039250610c42565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160149054906101000a900460ff161515610d1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5468657265206973206e6f20746f6b656e20636f6e74726163742e000000000081525060200191505060405180910390fd5b60006001856040518082805190602001908083835b602083101515610d595780518252602082019150602081019050602083039250610d34565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e4857600080fd5b505afa158015610e5c573d6000803e3d6000fd5b505050506040513d6020811015610e7257600080fd5b81019080805190602001909291905050509050610ec4856040805190810160405280600481526020017f5553445400000000000000000000000000000000000000000000000000000000815250611c4d565b156111435760008390508215610eed57610eea620f424085611d5590919063ffffffff16565b90505b818111151515610f65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5468657265206973206e6f20656e6f75676820555344542062616c616e63652e81525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561102a57600080fd5b505af115801561103e573d6000803e3d6000fd5b50505050821561113d57600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7308a7cd504e2f380d89747a3a0cd42d40ddd428e6620f42406040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561112457600080fd5b505af1158015611138573d6000803e3d6000fd5b505050505b50611532565b611182856040805190810160405280600481526020017f414e4b5200000000000000000000000000000000000000000000000000000000815250611c4d565b1561152b57600083905082156111b0576111ad678ac7230489e8000085611d5590919063ffffffff16565b90505b818111151515611228576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5468657265206973206e6f20656e6f75676820414e4b522062616c616e63652e81525060200191505060405180910390fd5b6001866040518082805190602001908083835b602083101515611260578051825260208201915060208101905060208303925061123b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561135957600080fd5b505af115801561136d573d6000803e3d6000fd5b505050506040513d602081101561138357600080fd5b8101908080519060200190929190505050508215611525576001866040518082805190602001908083835b6020831015156113d357805182526020820191506020810190506020830392506113ae565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7308a7cd504e2f380d89747a3a0cd42d40ddd428e6678ac7230489e800006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156114e857600080fd5b505af11580156114fc573d6000803e3d6000fd5b505050506040513d602081101561151257600080fd5b8101908080519060200190929190505050505b50611531565b506115ef565b5b8373ffffffffffffffffffffffffffffffffffffffff167f18af30a54a1951aeee806c16cdcb8d087ed1a095f0d9a87261b92cef2c6cc92d86856040518080602001838152602001828103825284818151815260200191508051906020019080838360005b838110156115b2578082015181840152602081019050611597565b50505050905090810190601f1680156115df5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505b50505050565b600080825114151515611670576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f73796d626f6c206d757374206e6f7420626520626c616e6b2e0000000000000081525060200191505060405180910390fd5b6001826040518082805190602001908083835b6020831015156116a85780518252602082019150602081019050602083039250611683565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160149054906101000a900460ff16156116fa57600190506116ff565b600090505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561175f57600080fd5b60008251141515156117d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f73796d626f6c206d757374206e6f7420626520626c616e6b2e0000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156118a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f746f6b656e436f6e74726163742061646472657373206d757374206e6f74206281526020017f65207a65726f2e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001826040518082805190602001908083835b6020831015156118dc57805182526020820191506020810190506020830392506118b7565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160149054906101000a900460ff161515156119bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546865726520686173206578697374656420746f6b656e20636f6e747261637481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806001836040518082805190602001908083835b6020831015156119f457805182526020820191506020810190506020830392506119cf565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180836040518082805190602001908083835b602083101515611aa15780518252602082019150602081019050602083039250611a7c565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000160146101000a81548160ff021916908315150217905550611b2d826040805190810160405280600481526020017f5553445400000000000000000000000000000000000000000000000000000000815250611c4d565b15611b745780600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611c4a57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b600081518351141515611c635760009050611d4f565b816040516020018082805190602001908083835b602083101515611c9c5780518252602082019150602081019050602083039250611c77565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120836040516020018082805190602001908083835b602083101515611d105780518252602082019150602081019050602083039250611ceb565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001201490505b92915050565b6000808284019050838110151515611d6957fe5b809150509291505056fea165627a7a72305820e904d5d13a9a063188c96197146f0634a75e3ad67a3af317452b321328a5ff520029
Verified Source Code Partial Match
Compiler: v0.5.0+commit.1d4f565a
EVM: byzantium
Optimization: No
ResourceEscrow.sol 223 lines
pragma solidity ^0.5.0;
interface Token {
function transfer(address to, uint256 value) external returns (bool);
function balanceOf(address owner) external view returns (uint256);
}
interface USDTToken {
function transfer(address _to, uint _value) external;
}
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address public owner;
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor () public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
if (newOwner != address(0)) {
owner = newOwner;
}
}
}
/**
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
*/
contract Pausable is Ownable {
event Pause();
event Restore();
bool public paused = false;
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*/
modifier whenNotPaused() {
require(!paused);
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*/
modifier whenPaused() {
require(paused);
_;
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function pause() onlyOwner whenNotPaused public {
paused = true;
emit Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function restore() onlyOwner whenPaused public {
paused = false;
emit Restore();
}
}
contract ResourceEscrow is Pausable {
using SafeMath for uint256;
struct TokenWapper {
Token token;
bool isValid;
}
mapping (string => TokenWapper) private tokenMap;
USDTToken private usdtToken;
event Withdrawn(address indexed to, string symbol, uint256 amount);
constructor () public {
}
function addToken(string memory symbol, address tokenContract) public onlyOwner {
require(bytes(symbol).length != 0, "symbol must not be blank.");
require(tokenContract != address(0), "tokenContract address must not be zero.");
require(!tokenMap[symbol].isValid, "There has existed token contract.");
tokenMap[symbol].token = Token(tokenContract);
tokenMap[symbol].isValid = true;
if (hashCompareWithLengthCheck(symbol, "USDT")) {
usdtToken = USDTToken(tokenContract);
}
}
function hashCompareWithLengthCheck(string memory a, string memory b) internal pure returns (bool) {
if (bytes(a).length != bytes(b).length) {
return false;
} else {
return keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b));
}
}
function withdraw(string memory symbol, address payable to, uint256 amount, bool isCharge) public onlyOwner {
require(bytes(symbol).length != 0, "symbol must not be blank.");
require(to != address(0), "Address must not be zero.");
require(tokenMap[symbol].isValid, "There is no token contract.");
uint256 balAmount = tokenMap[symbol].token.balanceOf(address(this));
if (hashCompareWithLengthCheck(symbol, "USDT")) {
uint256 assertAmount = amount;
if (isCharge) {
assertAmount = amount.add(1000000);
}
require(assertAmount <= balAmount, "There is no enough USDT balance.");
usdtToken.transfer(to, amount);
if (isCharge) {
usdtToken.transfer(0x08a7CD504E2f380d89747A3a0cD42d40dDd428e6, 1000000);
}
} else if (hashCompareWithLengthCheck(symbol, "ANKR")) {
uint256 assertAmount = amount;
if (isCharge) {
assertAmount = amount.add(10000000000000000000);
}
require(assertAmount <= balAmount, "There is no enough ANKR balance.");
tokenMap[symbol].token.transfer(to, amount);
if (isCharge) {
tokenMap[symbol].token.transfer(0x08a7CD504E2f380d89747A3a0cD42d40dDd428e6, 10000000000000000000);
}
} else {
return;
}
emit Withdrawn(to, symbol, amount);
}
function availableBalance(string memory symbol) public view returns (uint256) {
require(bytes(symbol).length != 0, "symbol must not be blank.");
require(tokenMap[symbol].isValid, "There is no token contract.");
return tokenMap[symbol].token.balanceOf(address(this));
}
function isSupportTokens(string memory symbol) public view returns (bool) {
require(bytes(symbol).length != 0, "symbol must not be blank.");
if (tokenMap[symbol].isValid) {
return true;
}
return false;
}
function isStateNormal() public view returns (bool) {
return paused;
}
function destory() public onlyOwner{
selfdestruct(address(uint160(address(this))));
}
}
Read Contract
availableBalance 0x4eb99970 → uint256
isStateNormal 0x4f41cc87 → bool
isSupportTokens 0xaffbb658 → bool
owner 0x8da5cb5b → address
paused 0x5c975abb → bool
Write Contract 6 functions
These functions modify contract state and require a wallet transaction to execute.
addToken 0xb0b22c2c
string symbol
address tokenContract
destory 0x6bdebcc9
No parameters
pause 0x8456cb59
No parameters
restore 0x2fda332e
No parameters
transferOwnership 0xf2fde38b
address newOwner
withdraw 0xa2a360fb
string symbol
address to
uint256 amount
bool isCharge
Recent Transactions
Transaction index is loading. Only unfinalized transactions are shown while the index starts up.