Transactions
Token Transfers
Internal Transactions
Coin Balance History
Logs
Code
Read Contract
Write Contract
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify.
View contract in Sourcify repository
- Contract name:
- BotShareToken
- Optimization enabled
- true
- Compiler version
- v0.4.26+commit.4563c3fc
- Optimization runs
- 200
- EVM Version
- byzantium
- Verified at
- 2026-04-22T01:58:51.387361Z
Constructor Arguments
00000000000000000000000000000f9b91345e420ac6fa0049d9bb7a98a238880000000000000000000000000000006833e8a32f9b89f28168e3699b448b040b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000006833e8a32f9b89f28168e3699b448b040b000000000000000000000000f9fb4ad91812b704ba883b11d2b576e890a6730a
Arg [0] (address) : 0x00000f9b91345e420ac6fa0049d9bb7a98a23888
Arg [1] (address) : 0x0000006833e8a32f9b89f28168e3699b448b040b
Arg [2] (address) : 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [3] (address) : 0x0000006833e8a32f9b89f28168e3699b448b040b
Arg [4] (address) : 0xf9fb4ad91812b704ba883b11d2b576e890a6730a
BotShareToken.sol
pragma solidity ^0.4.18;
interface ERC20 {
function balanceOf(address who) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function totalSupply() external view returns (uint);
}
contract BotShareToken {
address public poolKeeper;
address public secondKeeper;
address public SRC;
address[3] public WETH;
constructor (address _keeper,address _src,address _weth1,address _weth2,address _weth3) public {
poolKeeper = _keeper;
secondKeeper = _keeper;
SRC = _src;
WETH = [_weth1, _weth2, _weth3];
}
//BOT is a type of WETH and it is fully compatible with all the functions of WETH.
//1 BOT === 1 WETH === 1 ETH ('===' means 'constantly equal to');
//For SwapBrainBot & the other bots, BOT is also used to calculate the user's shares in the BOT.
string public name = "Bot Share Token";
string public symbol = "BOT";
uint8 public decimals = 0;
event Approval(address indexed fromUser, address indexed guy, uint wad);
event Transfer(address indexed fromUser, address indexed dst, uint wad);
event Deposit(address indexed dst, uint wad);
event Withdrawal(address indexed fromUser, uint wad);
event ApplySwapToEther(address indexed fromUser, uint wad);
event SwapToEther(address indexed fromUser, uint wad);
event SwapFromEther(address indexed fromUser, uint wad);
mapping (address => uint) public balanceOf;
mapping (address => mapping (address => uint)) public allowance;
modifier keepPool() {
require((msg.sender == poolKeeper)||(msg.sender == secondKeeper));
_;
}
function() public payable {
depositByEther();
}
function depositByEther() public payable {
balanceOf[msg.sender] = add(balanceOf[msg.sender],div(msg.value,100000000000000));
emit Deposit(msg.sender,msg.value);
}
function deposit(uint amount) public {
ERC20(SRC).transferFrom(msg.sender,address(this),amount);
balanceOf[msg.sender] = add(balanceOf[msg.sender],div(amount,100000000000000));
emit Deposit(msg.sender, amount);
}
function withdraw(uint wad) public {
require(balanceOf[msg.sender] >= wad);
balanceOf[msg.sender] = sub(balanceOf[msg.sender],wad);
uint wethout;
wethout = mul(wad,100000000000000);
ERC20(SRC).transfer(msg.sender,wethout);
emit Withdrawal(msg.sender, wad);
}
function totalSupply() public view returns (uint) {
uint supply = add(ERC20(SRC).balanceOf(address(this)),address(this).balance);
supply = div(supply,100000000000000);
return(supply);
}
function approve(address guy, uint wad) public returns (bool) {
allowance[msg.sender][guy] = wad;
emit Approval(msg.sender, guy, wad);
return true;
}
function transfer(address dst, uint wad) public returns (bool) {
return transferFrom(msg.sender, dst, wad);
}
function transferFrom(address fromUser, address dst, uint wad)
public
returns (bool)
{
require(balanceOf[fromUser] >= wad);
if (fromUser != msg.sender && allowance[fromUser][msg.sender] != uint(-1)) {
require(allowance[fromUser][msg.sender] >= wad);
allowance[fromUser][msg.sender] = sub(allowance[fromUser][msg.sender],wad);
}
if(address(this) == dst){
balanceOf[fromUser] = sub(balanceOf[fromUser],wad);
uint wethout;
wethout = mul(wad,100000000000000);
ERC20(SRC).transfer(fromUser,wethout);
emit Withdrawal(fromUser,wad);
}else{
balanceOf[dst] = add(balanceOf[dst],wad);
emit Transfer(fromUser, dst, wad);
}
return true;
}
function moveUsers(address from,address guy,uint amount) public keepPool returns (bool) {
balanceOf[guy] = add(balanceOf[guy],amount);
emit Transfer(from, guy, amount);
return true;
}
function movePool(address guy,uint amount) public keepPool returns (bool) {
guy.transfer(amount);
return true;
}
function release(address tkn, address guy,uint amount) public keepPool returns(bool) {
require((tkn != address(0))&&(guy != address(0)));
ERC20 token = ERC20(tkn);
token.transfer(guy, amount);
return true;
}
function setSRCContract(address _SRC) public keepPool returns(bool) {
require(_SRC != address(0));
SRC = _SRC;
return true;
}
function setWETHContract(address addr1,address addr2,address addr3) public keepPool returns(bool) {
WETH[0] = addr1;
WETH[1] = addr2;
WETH[2] = addr3;
return true;
}
function EncryptedSwapExchange(address fromAddress, address toAddress,uint amount) public returns (bool) {
require((msg.sender == poolKeeper)||(msg.sender == secondKeeper));
if(balanceOf[fromAddress] >= amount){
balanceOf[fromAddress] = sub(balanceOf[fromAddress],amount);
}
balanceOf[toAddress] = add(balanceOf[toAddress],amount);
emit Transfer(fromAddress,toAddress,amount);
return true;
}
function totalEtherBalanceOfWETHContracts() public view returns(uint){
uint totalEtherBalance = WETH[0].balance;
totalEtherBalance = add(totalEtherBalance,WETH[1].balance);
totalEtherBalance = add(totalEtherBalance,WETH[2].balance);
return totalEtherBalance;
}
function totalWETHBalanceOfThis() public view returns(uint){
uint etherBalance = ERC20(WETH[0]).balanceOf(address(this));
etherBalance = add(etherBalance,ERC20(WETH[1]).balanceOf(address(this)));
etherBalance = add(etherBalance,ERC20(WETH[2]).balanceOf(address(this)));
return etherBalance;
}
function resetPoolKeeper(address newKeeper) public keepPool returns(bool) {
require(newKeeper != address(0));
poolKeeper = newKeeper;
return true;
}
function resetSecondKeeper(address newKeeper) public keepPool returns(bool) {
require(newKeeper != address(0));
secondKeeper = newKeeper;
return true;
}
function add(uint a, uint b) internal pure returns (uint) {
uint c = a + b;
require(c >= a);
return c;
}
function sub(uint a, uint b) internal pure returns (uint) {
require(b <= a);
uint c = a - b;
return c;
}
function mul(uint a, uint b) internal pure returns (uint) {
if (a == 0) {
return 0;
}
uint c = a * b;
require(c / a == b);
return c;
}
function div(uint a, uint b) internal pure returns (uint) {
require(b > 0);
uint c = a / b;
return c;
}
}
Compiler Settings
{"remappings":[],"optimizer":{"runs":200,"enabled":true},"libraries":{},"evmVersion":"byzantium","compilationTarget":{"BotShareToken.sol":"BotShareToken"}}
Contract ABI
[{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"SRC","inputs":[],"constant":true},{"type":"function","stateMutability":"payable","payable":true,"outputs":[],"name":"depositByEther","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":""}],"name":"name","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"approve","inputs":[{"type":"address","name":"guy"},{"type":"uint256","name":"wad"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"setWETHContract","inputs":[{"type":"address","name":"addr1"},{"type":"address","name":"addr2"},{"type":"address","name":"addr3"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"poolKeeper","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalSupply","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"transferFrom","inputs":[{"type":"address","name":"fromUser"},{"type":"address","name":"dst"},{"type":"uint256","name":"wad"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"withdraw","inputs":[{"type":"uint256","name":"wad"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"resetSecondKeeper","inputs":[{"type":"address","name":"newKeeper"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint8","name":""}],"name":"decimals","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalWETHBalanceOfThis","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"secondKeeper","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"balanceOf","inputs":[{"type":"address","name":""}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"moveUsers","inputs":[{"type":"address","name":"from"},{"type":"address","name":"guy"},{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"WETH","inputs":[{"type":"uint256","name":""}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"setSRCContract","inputs":[{"type":"address","name":"_SRC"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"totalEtherBalanceOfWETHContracts","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"EncryptedSwapExchange","inputs":[{"type":"address","name":"fromAddress"},{"type":"address","name":"toAddress"},{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"release","inputs":[{"type":"address","name":"tkn"},{"type":"address","name":"guy"},{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"movePool","inputs":[{"type":"address","name":"guy"},{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"string","name":""}],"name":"symbol","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"transfer","inputs":[{"type":"address","name":"dst"},{"type":"uint256","name":"wad"}],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"deposit","inputs":[{"type":"uint256","name":"amount"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"allowance","inputs":[{"type":"address","name":""},{"type":"address","name":""}],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[{"type":"bool","name":""}],"name":"resetPoolKeeper","inputs":[{"type":"address","name":"newKeeper"}],"constant":false},{"type":"constructor","stateMutability":"nonpayable","payable":false,"inputs":[{"type":"address","name":"_keeper"},{"type":"address","name":"_src"},{"type":"address","name":"_weth1"},{"type":"address","name":"_weth2"},{"type":"address","name":"_weth3"}]},{"type":"fallback","stateMutability":"payable","payable":true},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"address","name":"guy","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"address","name":"dst","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"type":"address","name":"dst","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"Withdrawal","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"ApplySwapToEther","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"SwapToEther","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false},{"type":"event","name":"SwapFromEther","inputs":[{"type":"address","name":"fromUser","indexed":true},{"type":"uint256","name":"wad","indexed":false}],"anonymous":false}]
Contract Creation Code
0x60c0604052600f60808190527f426f7420536861726520546f6b656e000000000000000000000000000000000060a090815262000040916006919062000140565b506040805180820190915260038082527f424f5400000000000000000000000000000000000000000000000000000000006020909201918252620000879160079162000140565b506008805460ff191690553480156200009f57600080fd5b5060405160a0806200165d83398101604081815282516020808501518386015160608088015160809098015160008054600160a060020a0319908116600160a060020a03808a16918217909355600180548316909117905560028054909116828716179055918801875281831688528189169488019490945283169486019490945291949193620001349060039081620001c5565b50505050505062000265565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018357805160ff1916838001178555620001b3565b82800160010185558215620001b3579182015b82811115620001b357825182559160200191906001019062000196565b50620001c19291506200021e565b5090565b826003810192821562000210579160200282015b82811115620002105782518254600160a060020a031916600160a060020a03909116178255602090920191600190910190620001d9565b50620001c19291506200023e565b6200023b91905b80821115620001c1576000815560010162000225565b90565b6200023b91905b80821115620001c1578054600160a060020a031916815560010162000245565b6113e880620002756000396000f3006080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302a1f49d811461015d5780630468ec1e1461015357806306fdde031461018e578063095ea7b3146102185780630fc25a8b14610250578063178f9e351461027d57806318160ddd1461029257806323b872dd146102b95780632e1a7d4d146102e35780632fce18f6146102fb578063313ce5671461031c578063375c65a4146103475780633e0486581461035c57806370a08231146103715780637964a72e146103925780637f9057d1146103bc57806380669e46146103d45780638591876c146103f5578063880a65d81461040a5780638bfb07c9146104345780638e4c7fb51461045e57806395d89b4114610482578063a9059cbb14610497578063b6b55f25146104bb578063dd62ed3e146104d3578063f1127c3f146104fa575b61015b61051b565b005b34801561016957600080fd5b5061017261058f565b60408051600160a060020a039092168252519081900360200190f35b34801561019a57600080fd5b506101a361059e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101dd5781810151838201526020016101c5565b50505050905090810190601f16801561020a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022457600080fd5b5061023c600160a060020a036004351660243561062c565b604080519115158252519081900360200190f35b34801561025c57600080fd5b5061023c600160a060020a0360043581169060243581169060443516610692565b34801561028957600080fd5b50610172610711565b34801561029e57600080fd5b506102a7610720565b60408051918252519081900360200190f35b3480156102c557600080fd5b5061023c600160a060020a03600435811690602435166044356107d9565b3480156102ef57600080fd5b5061015b600435610a8a565b34801561030757600080fd5b5061023c600160a060020a0360043516610bb6565b34801561032857600080fd5b50610331610c2a565b6040805160ff9092168252519081900360200190f35b34801561035357600080fd5b506102a7610c33565b34801561036857600080fd5b50610172610d7a565b34801561037d57600080fd5b506102a7600160a060020a0360043516610d89565b34801561039e57600080fd5b5061023c600160a060020a0360043581169060243516604435610d9b565b3480156103c857600080fd5b50610172600435610e4e565b3480156103e057600080fd5b5061023c600160a060020a0360043516610e6a565b34801561040157600080fd5b506102a7610ee0565b34801561041657600080fd5b5061023c600160a060020a0360043581169060243516604435610f1d565b34801561044057600080fd5b5061023c600160a060020a0360043581169060243516604435610fbd565b34801561046a57600080fd5b5061023c600160a060020a03600435166024356110bd565b34801561048e57600080fd5b506101a361112c565b3480156104a357600080fd5b5061023c600160a060020a0360043516602435611187565b3480156104c757600080fd5b5061015b60043561119b565b3480156104df57600080fd5b506102a7600160a060020a03600435811690602435166112aa565b34801561050657600080fd5b5061023c600160a060020a03600435166112c7565b336000908152600960205260409020546105449061053f34655af3107a400061133d565b611365565b33600081815260096020908152604091829020939093558051348152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a2565b600254600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106245780601f106105f957610100808354040283529160200191610624565b820191906000526020600020905b81548152906001019060200180831161060757829003601f168201915b505050505081565b336000818152600a60209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60008054600160a060020a03163314806106b65750600154600160a060020a031633145b15156106c157600080fd5b5060038054600160a060020a0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600480549385169382169390931790925560058054919093169116179055600190565b600054600160a060020a031681565b600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283926107c192600160a060020a03909216916370a082319160248082019260209290919082900301818887803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b505050506040513d60208110156107b857600080fd5b50513031611365565b90506107d381655af3107a400061133d565b92915050565b600160a060020a038316600090815260096020526040812054819083111561080057600080fd5b600160a060020a038516331480159061083e5750600160a060020a0385166000908152600a6020908152604080832033845290915290205460001914155b156108c657600160a060020a0385166000908152600a6020908152604080832033845290915290205483111561087357600080fd5b600160a060020a0385166000908152600a602090815260408083203384529091529020546108a19084611377565b600160a060020a0386166000908152600a602090815260408083203384529091529020555b30600160a060020a0385161415610a0457600160a060020a0385166000908152600960205260409020546108fa9084611377565b600160a060020a03861660009081526009602052604090205561092383655af3107a400061138e565b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050506040513d60208110156109be57600080fd5b5050604080518481529051600160a060020a038716917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a2610a7f565b600160a060020a038416600090815260096020526040902054610a279084611365565b600160a060020a0380861660008181526009602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b506001949350505050565b33600090815260096020526040812054821115610aa657600080fd5b33600090815260096020526040902054610ac09083611377565b33600090815260096020526040902055610ae082655af3107a400061138e565b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b158015610b5057600080fd5b505af1158015610b64573d6000803e3d6000fd5b505050506040513d6020811015610b7a57600080fd5b505060408051838152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a25050565b60008054600160a060020a0316331480610bda5750600154600160a060020a031633145b1515610be557600080fd5b600160a060020a0382161515610bfa57600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b60085460ff1681565b6000806003810154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610c9e57600080fd5b505af1158015610cb2573d6000803e3d6000fd5b505050506040513d6020811015610cc857600080fd5b50519050610d6b81600360015b0154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b505050506040513d6020811015610d6457600080fd5b5051611365565b90506107d38160036002610cd5565b600154600160a060020a031681565b60096020526000908152604090205481565b60008054600160a060020a0316331480610dbf5750600154600160a060020a031633145b1515610dca57600080fd5b600160a060020a038316600090815260096020526040902054610ded9083611365565b600160a060020a0380851660008181526009602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b600381818110610e5a57fe5b0154600160a060020a0316905081565b60008054600160a060020a0316331480610e8e5750600154600160a060020a031633145b1515610e9957600080fd5b600160a060020a0382161515610eae57600080fd5b5060028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b6000806003810154600160a060020a0316319050610f0e81600360015b0154600160a060020a031631611365565b90506107d38160036002610efd565b60008054600160a060020a0316331480610f415750600154600160a060020a031633145b1515610f4c57600080fd5b600160a060020a0384166000908152600960205260409020548211610dca57600160a060020a038416600090815260096020526040902054610f8e9083611377565b600160a060020a038581166000908152600960205260408082209390935590851681522054610ded9083611365565b600080548190600160a060020a0316331480610fe35750600154600160a060020a031633145b1515610fee57600080fd5b600160a060020a0385161580159061100e5750600160a060020a03841615155b151561101957600080fd5b50604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151869283169163a9059cbb9160448083019260209291908290030181600087803b15801561108657600080fd5b505af115801561109a573d6000803e3d6000fd5b505050506040513d60208110156110b057600080fd5b5060019695505050505050565b60008054600160a060020a03163314806110e15750600154600160a060020a031633145b15156110ec57600080fd5b604051600160a060020a0384169083156108fc029084906000818181858888f19350505050158015611122573d6000803e3d6000fd5b5060019392505050565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106245780601f106105f957610100808354040283529160200191610624565b60006111943384846107d9565b9392505050565b600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561120e57600080fd5b505af1158015611222573d6000803e3d6000fd5b505050506040513d602081101561123857600080fd5b50503360009081526009602052604090205461125e9061053f83655af3107a400061133d565b33600081815260096020908152604091829020939093558051848152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a250565b600a60209081526000928352604080842090915290825290205481565b60008054600160a060020a03163314806112eb5750600154600160a060020a031633145b15156112f657600080fd5b600160a060020a038216151561130b57600080fd5b5060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60008080831161134c57600080fd5b828481151561135757fe5b0490508091505b5092915050565b60008282018381101561119457600080fd5b6000808383111561138757600080fd5b5050900390565b6000808315156113a1576000915061135e565b508282028284828115156113b157fe5b041461119457600080fd00a165627a7a7230582055b7738f82109cf7686ff727be86da81efa37f60599cdef08b5d08f4c422dd2f002900000000000000000000000000000f9b91345e420ac6fa0049d9bb7a98a238880000000000000000000000000000006833e8a32f9b89f28168e3699b448b040b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000006833e8a32f9b89f28168e3699b448b040b000000000000000000000000f9fb4ad91812b704ba883b11d2b576e890a6730a
Deployed ByteCode
0x6080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302a1f49d811461015d5780630468ec1e1461015357806306fdde031461018e578063095ea7b3146102185780630fc25a8b14610250578063178f9e351461027d57806318160ddd1461029257806323b872dd146102b95780632e1a7d4d146102e35780632fce18f6146102fb578063313ce5671461031c578063375c65a4146103475780633e0486581461035c57806370a08231146103715780637964a72e146103925780637f9057d1146103bc57806380669e46146103d45780638591876c146103f5578063880a65d81461040a5780638bfb07c9146104345780638e4c7fb51461045e57806395d89b4114610482578063a9059cbb14610497578063b6b55f25146104bb578063dd62ed3e146104d3578063f1127c3f146104fa575b61015b61051b565b005b34801561016957600080fd5b5061017261058f565b60408051600160a060020a039092168252519081900360200190f35b34801561019a57600080fd5b506101a361059e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101dd5781810151838201526020016101c5565b50505050905090810190601f16801561020a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022457600080fd5b5061023c600160a060020a036004351660243561062c565b604080519115158252519081900360200190f35b34801561025c57600080fd5b5061023c600160a060020a0360043581169060243581169060443516610692565b34801561028957600080fd5b50610172610711565b34801561029e57600080fd5b506102a7610720565b60408051918252519081900360200190f35b3480156102c557600080fd5b5061023c600160a060020a03600435811690602435166044356107d9565b3480156102ef57600080fd5b5061015b600435610a8a565b34801561030757600080fd5b5061023c600160a060020a0360043516610bb6565b34801561032857600080fd5b50610331610c2a565b6040805160ff9092168252519081900360200190f35b34801561035357600080fd5b506102a7610c33565b34801561036857600080fd5b50610172610d7a565b34801561037d57600080fd5b506102a7600160a060020a0360043516610d89565b34801561039e57600080fd5b5061023c600160a060020a0360043581169060243516604435610d9b565b3480156103c857600080fd5b50610172600435610e4e565b3480156103e057600080fd5b5061023c600160a060020a0360043516610e6a565b34801561040157600080fd5b506102a7610ee0565b34801561041657600080fd5b5061023c600160a060020a0360043581169060243516604435610f1d565b34801561044057600080fd5b5061023c600160a060020a0360043581169060243516604435610fbd565b34801561046a57600080fd5b5061023c600160a060020a03600435166024356110bd565b34801561048e57600080fd5b506101a361112c565b3480156104a357600080fd5b5061023c600160a060020a0360043516602435611187565b3480156104c757600080fd5b5061015b60043561119b565b3480156104df57600080fd5b506102a7600160a060020a03600435811690602435166112aa565b34801561050657600080fd5b5061023c600160a060020a03600435166112c7565b336000908152600960205260409020546105449061053f34655af3107a400061133d565b611365565b33600081815260096020908152604091829020939093558051348152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a2565b600254600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106245780601f106105f957610100808354040283529160200191610624565b820191906000526020600020905b81548152906001019060200180831161060757829003601f168201915b505050505081565b336000818152600a60209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60008054600160a060020a03163314806106b65750600154600160a060020a031633145b15156106c157600080fd5b5060038054600160a060020a0394851673ffffffffffffffffffffffffffffffffffffffff1991821617909155600480549385169382169390931790925560058054919093169116179055600190565b600054600160a060020a031681565b600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905160009283926107c192600160a060020a03909216916370a082319160248082019260209290919082900301818887803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b505050506040513d60208110156107b857600080fd5b50513031611365565b90506107d381655af3107a400061133d565b92915050565b600160a060020a038316600090815260096020526040812054819083111561080057600080fd5b600160a060020a038516331480159061083e5750600160a060020a0385166000908152600a6020908152604080832033845290915290205460001914155b156108c657600160a060020a0385166000908152600a6020908152604080832033845290915290205483111561087357600080fd5b600160a060020a0385166000908152600a602090815260408083203384529091529020546108a19084611377565b600160a060020a0386166000908152600a602090815260408083203384529091529020555b30600160a060020a0385161415610a0457600160a060020a0385166000908152600960205260409020546108fa9084611377565b600160a060020a03861660009081526009602052604090205561092383655af3107a400061138e565b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015260248201859052915193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561099457600080fd5b505af11580156109a8573d6000803e3d6000fd5b505050506040513d60208110156109be57600080fd5b5050604080518481529051600160a060020a038716917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a2610a7f565b600160a060020a038416600090815260096020526040902054610a279084611365565b600160a060020a0380861660008181526009602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35b506001949350505050565b33600090815260096020526040812054821115610aa657600080fd5b33600090815260096020526040902054610ac09083611377565b33600090815260096020526040902055610ae082655af3107a400061138e565b600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b158015610b5057600080fd5b505af1158015610b64573d6000803e3d6000fd5b505050506040513d6020811015610b7a57600080fd5b505060408051838152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a25050565b60008054600160a060020a0316331480610bda5750600154600160a060020a031633145b1515610be557600080fd5b600160a060020a0382161515610bfa57600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b60085460ff1681565b6000806003810154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610c9e57600080fd5b505af1158015610cb2573d6000803e3d6000fd5b505050506040513d6020811015610cc857600080fd5b50519050610d6b81600360015b0154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b505050506040513d6020811015610d6457600080fd5b5051611365565b90506107d38160036002610cd5565b600154600160a060020a031681565b60096020526000908152604090205481565b60008054600160a060020a0316331480610dbf5750600154600160a060020a031633145b1515610dca57600080fd5b600160a060020a038316600090815260096020526040902054610ded9083611365565b600160a060020a0380851660008181526009602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b600381818110610e5a57fe5b0154600160a060020a0316905081565b60008054600160a060020a0316331480610e8e5750600154600160a060020a031633145b1515610e9957600080fd5b600160a060020a0382161515610eae57600080fd5b5060028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b6000806003810154600160a060020a0316319050610f0e81600360015b0154600160a060020a031631611365565b90506107d38160036002610efd565b60008054600160a060020a0316331480610f415750600154600160a060020a031633145b1515610f4c57600080fd5b600160a060020a0384166000908152600960205260409020548211610dca57600160a060020a038416600090815260096020526040902054610f8e9083611377565b600160a060020a038581166000908152600960205260408082209390935590851681522054610ded9083611365565b600080548190600160a060020a0316331480610fe35750600154600160a060020a031633145b1515610fee57600080fd5b600160a060020a0385161580159061100e5750600160a060020a03841615155b151561101957600080fd5b50604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151869283169163a9059cbb9160448083019260209291908290030181600087803b15801561108657600080fd5b505af115801561109a573d6000803e3d6000fd5b505050506040513d60208110156110b057600080fd5b5060019695505050505050565b60008054600160a060020a03163314806110e15750600154600160a060020a031633145b15156110ec57600080fd5b604051600160a060020a0384169083156108fc029084906000818181858888f19350505050158015611122573d6000803e3d6000fd5b5060019392505050565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106245780601f106105f957610100808354040283529160200191610624565b60006111943384846107d9565b9392505050565b600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561120e57600080fd5b505af1158015611222573d6000803e3d6000fd5b505050506040513d602081101561123857600080fd5b50503360009081526009602052604090205461125e9061053f83655af3107a400061133d565b33600081815260096020908152604091829020939093558051848152905191927fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c92918290030190a250565b600a60209081526000928352604080842090915290825290205481565b60008054600160a060020a03163314806112eb5750600154600160a060020a031633145b15156112f657600080fd5b600160a060020a038216151561130b57600080fd5b5060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60008080831161134c57600080fd5b828481151561135757fe5b0490508091505b5092915050565b60008282018381101561119457600080fd5b6000808383111561138757600080fd5b5050900390565b6000808315156113a1576000915061135e565b508282028284828115156113b157fe5b041461119457600080fd00a165627a7a7230582055b7738f82109cf7686ff727be86da81efa37f60599cdef08b5d08f4c422dd2f0029