Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 16 from a total of 16 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Set Rates | 5451325 | 2888 days ago | IN | 0 ETH | 0.00207543 | ||||
| Transfer | 5415498 | 2894 days ago | IN | 0 ETH | 0.00272625 | ||||
| Set Whitelist | 5408377 | 2896 days ago | IN | 0 ETH | 0.00004611 | ||||
| Set Whitelist | 5390141 | 2899 days ago | IN | 0 ETH | 0.00009223 | ||||
| Set Whitelist | 5389943 | 2899 days ago | IN | 0 ETH | 0.00004611 | ||||
| Set Whitelist | 5341806 | 2907 days ago | IN | 0 ETH | 0.00009315 | ||||
| Set Whitelist | 5341802 | 2907 days ago | IN | 0 ETH | 0.00009334 | ||||
| Transfer | 5337352 | 2907 days ago | IN | 0 ETH | 0.003336 | ||||
| Transfer | 5337340 | 2907 days ago | IN | 0 ETH | 0.003951 | ||||
| Transfer | 5337281 | 2907 days ago | IN | 0 ETH | 0.00099593 | ||||
| Set Rates | 5324591 | 2910 days ago | IN | 0 ETH | 0.00202601 | ||||
| Set Rates | 5324572 | 2910 days ago | IN | 0 ETH | 0.00202339 | ||||
| Set Rates | 5324516 | 2910 days ago | IN | 0 ETH | 0.00202601 | ||||
| Set Whitelist | 5324324 | 2910 days ago | IN | 0 ETH | 0.00009223 | ||||
| Transfer Ownersh... | 5311339 | 2912 days ago | IN | 0 ETH | 0.00003103 | ||||
| Transfer Role | 5306205 | 2913 days ago | IN | 0 ETH | 0.00014614 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
HcftSale
Compiler Version
v0.4.20+commit.3155dd80
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-03-23
*/
pragma solidity ^0.4.0;
/**
* @title Ownable
* @dev Adds onlyOwner modifier. Subcontracts should implement checkOwner to check if caller is owner.
*/
contract Ownable {
modifier onlyOwner() {
checkOwner();
_;
}
function checkOwner() internal;
}
/**
* @title OwnableImpl
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract OwnableImpl is Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function OwnableImpl() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
function checkOwner() internal {
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) onlyOwner public {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
/**
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
*/
contract Pausable is Ownable {
event Pause();
event Unpause();
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;
Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() onlyOwner whenPaused public {
paused = false;
Unpause();
}
}
/**
* @title Read-only ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract ReadOnlyToken {
uint256 public totalSupply;
function balanceOf(address who) public constant returns (uint256);
function allowance(address owner, address spender) public constant returns (uint256);
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract Token is ReadOnlyToken {
function transfer(address to, uint256 value) public returns (bool);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract MintableToken is Token {
event Mint(address indexed to, uint256 amount);
function mint(address _to, uint256 _amount) public returns (bool);
}
/**
* @title Sale contract for Daonomic platform should implement this
*/
contract Sale {
/**
* @dev This event should be emitted when user buys something
*/
event Purchase(address indexed buyer, address token, uint256 value, uint256 sold, uint256 bonus);
/**
* @dev Should be emitted if new payment method added
*/
event RateAdd(address token);
/**
* @dev Should be emitted if payment method removed
*/
event RateRemove(address token);
/**
* @dev Calculate rate for specified payment method
*/
function getRate(address token) constant public returns (uint256);
/**
* @dev Calculate current bonus in tokens
*/
function getBonus(uint256 sold) constant public returns (uint256);
}
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
* @dev this version copied from zeppelin-solidity, constant changed to pure
*/
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 Token represents some external value (for example, BTC)
*/
contract ExternalToken is Token {
event Mint(address indexed to, uint256 value, bytes data);
event Burn(address indexed burner, uint256 value, bytes data);
function burn(uint256 _value, bytes _data) public;
}
/**
* @dev This adapter helps to receive tokens. It has some subcontracts for different tokens:
* ERC20ReceiveAdapter - for receiving simple ERC20 tokens
* ERC223ReceiveAdapter - for receiving ERC223 tokens
* ReceiveApprovalAdapter - for receiving ERC20 tokens when token notifies receiver with receiveApproval
* EtherReceiveAdapter - for receiving ether (onReceive callback will be used). this is needed for handling ether like tokens
* CompatReceiveApproval - implements all these adapters
*/
contract ReceiveAdapter {
/**
* @dev Receive tokens from someone. Owner of the tokens should approve first
*/
function onReceive(address _token, address _from, uint256 _value, bytes _data) internal;
}
/**
* @dev Helps to receive ERC20-complaint tokens. Owner should call token.approve first
*/
contract ERC20ReceiveAdapter is ReceiveAdapter {
function receive(address _token, uint256 _value, bytes _data) public {
Token token = Token(_token);
token.transferFrom(msg.sender, this, _value);
onReceive(_token, msg.sender, _value, _data);
}
}
/**
* @title ERC223 TokenReceiver interface
* @dev see https://github.com/ethereum/EIPs/issues/223
*/
contract TokenReceiver {
function onTokenTransfer(address _from, uint256 _value, bytes _data) public;
}
/**
* @dev Helps to receive ERC223-complaint tokens. ERC223 Token contract should notify receiver.
*/
contract ERC223ReceiveAdapter is TokenReceiver, ReceiveAdapter {
function tokenFallback(address _from, uint256 _value, bytes _data) public {
onReceive(msg.sender, _from, _value, _data);
}
function onTokenTransfer(address _from, uint256 _value, bytes _data) public {
onReceive(msg.sender, _from, _value, _data);
}
}
contract EtherReceiver {
function receiveWithData(bytes _data) payable public;
}
contract EtherReceiveAdapter is EtherReceiver, ReceiveAdapter {
function () payable public {
receiveWithData("");
}
function receiveWithData(bytes _data) payable public {
onReceive(address(0), msg.sender, msg.value, _data);
}
}
/**
* @dev This ReceiveAdapter supports all possible tokens
*/
contract CompatReceiveAdapter is ERC20ReceiveAdapter, ERC223ReceiveAdapter, EtherReceiveAdapter {
}
contract AbstractSale is Sale, CompatReceiveAdapter, Ownable {
using SafeMath for uint256;
event Withdraw(address token, address to, uint256 value);
event Burn(address token, uint256 value, bytes data);
function onReceive(address _token, address _from, uint256 _value, bytes _data) internal {
uint256 sold = getSold(_token, _value);
require(sold > 0);
uint256 bonus = getBonus(sold);
address buyer;
if (_data.length == 20) {
buyer = address(toBytes20(_data, 0));
} else {
require(_data.length == 0);
buyer = _from;
}
checkPurchaseValid(buyer, sold, bonus);
doPurchase(buyer, sold, bonus);
Purchase(buyer, _token, _value, sold, bonus);
onPurchase(buyer, _token, _value, sold, bonus);
}
function getSold(address _token, uint256 _value) constant public returns (uint256) {
uint256 rate = getRate(_token);
require(rate > 0);
return _value.mul(rate).div(10**18);
}
function getBonus(uint256 sold) constant public returns (uint256);
function getRate(address _token) constant public returns (uint256);
function doPurchase(address buyer, uint256 sold, uint256 bonus) internal;
function checkPurchaseValid(address /*buyer*/, uint256 /*sold*/, uint256 /*bonus*/) internal {
}
function onPurchase(address /*buyer*/, address /*token*/, uint256 /*value*/, uint256 /*sold*/, uint256 /*bonus*/) internal {
}
function toBytes20(bytes b, uint256 _start) pure internal returns (bytes20 result) {
require(_start + 20 <= b.length);
assembly {
let from := add(_start, add(b, 0x20))
result := mload(from)
}
}
function withdrawEth(address _to, uint256 _value) onlyOwner public {
withdraw(address(0), _to, _value);
}
function withdraw(address _token, address _to, uint256 _value) onlyOwner public {
require(_to != address(0));
verifyCanWithdraw(_token, _to, _value);
if (_token == address(0)) {
_to.transfer(_value);
} else {
Token(_token).transfer(_to, _value);
}
Withdraw(_token, _to, _value);
}
function verifyCanWithdraw(address token, address to, uint256 amount) internal;
function burnWithData(address _token, uint256 _value, bytes _data) onlyOwner public {
ExternalToken(_token).burn(_value, _data);
Burn(_token, _value, _data);
}
}
/**
* @title This sale mints token when user sends accepted payments
*/
contract MintingSale is AbstractSale {
MintableToken public token;
function MintingSale(address _token) public {
token = MintableToken(_token);
}
function doPurchase(address buyer, uint256 sold, uint256 bonus) internal {
token.mint(buyer, sold.add(bonus));
}
function verifyCanWithdraw(address, address, uint256) internal {
}
}
/**
* @title Secured
* @dev Adds only(role) modifier. Subcontracts should implement checkRole to check if caller is allowed to do action.
*/
contract Secured {
modifier only(string role) {
require(msg.sender == getRole(role));
_;
}
function getRole(string role) constant public returns (address);
}
contract Whitelist is Secured {
mapping(address => bool) whitelist;
event WhitelistChange(address indexed addr, bool allow);
function isInWhitelist(address addr) constant public returns (bool) {
return whitelist[addr];
}
function setWhitelist(address addr, bool allow) only("operator") public {
setWhitelistInternal(addr, allow);
}
function setWhitelistInternal(address addr, bool allow) internal {
whitelist[addr] = allow;
WhitelistChange(addr, allow);
}
}
contract WhitelistSale is AbstractSale, Whitelist {
function checkPurchaseValid(address buyer, uint256 sold, uint256 bonus) internal {
super.checkPurchaseValid(buyer, sold, bonus);
require(isInWhitelist(buyer));
}
}
contract SecuredImpl is Ownable, Secured {
mapping(string => address) users;
event RoleTransferred(address indexed previousUser, address indexed newUser, string role);
function getRole(string role) constant public returns (address) {
return users[role];
}
function transferRole(string role, address to) onlyOwner public {
require(to != address(0));
RoleTransferred(users[role], to, role);
users[role] = to;
}
}
contract RatesChangingSale is AbstractSale {
event RateChange(address token, uint256 rate);
mapping (address => uint256) rates;
function getRate(address _token) constant public returns (uint256) {
return rates[_token];
}
function setRate(address _token, uint256 _rate) onlyOwner public {
rates[_token] = _rate;
RateChange(_token, _rate);
if (_rate == 0) {
RateRemove(_token);
} else {
RateAdd(_token);
}
}
}
contract HcftSale is OwnableImpl, SecuredImpl, MintingSale, WhitelistSale, RatesChangingSale {
address public btcToken;
function HcftSale(address _mintableToken, address _btcToken)
MintingSale(_mintableToken) {
btcToken = _btcToken;
setRates(1000 * 10**18, 10000 * 10**28, 10**34);
}
function getSold(address _token, uint256 _value) constant public returns (uint256) {
return super.getSold(_token, _value).div(99).mul(98);
}
function getBonus(uint256 /*bonus*/) constant public returns (uint256) {
return 0;
}
function setRates(uint256 ethRate, uint256 btcRate, uint256 usdRate) onlyOwner public {
setRate(address(0), ethRate);
setRate(btcToken, btcRate);
setRate(address(1), usdRate);
}
function transferTokenOwnership(address newOwner) onlyOwner public {
OwnableImpl(token).transferOwnership(newOwner);
}
function pauseToken() onlyOwner public {
Pausable(token).pause();
}
function unpauseToken() onlyOwner public {
Pausable(token).unpause();
}
function withdrawBtc(bytes _to, uint256 _value) onlyOwner public {
burnWithData(btcToken, _value, _to);
}
function transfer(address beneficiary, uint256 amount) onlyOwner public {
emulatePurchase(beneficiary, address(10), 0, amount);
}
function emulatePurchase(address beneficiary, address paymentMethod, uint256 value, uint256 amount) onlyOwner public {
setWhitelistInternal(beneficiary, true);
doPurchase(beneficiary, amount, 0);
Purchase(beneficiary, paymentMethod, value, amount, 0);
onPurchase(beneficiary, paymentMethod, value, amount, 0);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"btcToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isInWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"withdrawEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferTokenOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"receive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_rate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pauseToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"bytes"},{"name":"_value","type":"uint256"}],"name":"withdrawBtc","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"getRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"getBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"role","type":"string"},{"name":"to","type":"address"}],"name":"transferRole","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpauseToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"allow","type":"bool"}],"name":"setWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"},{"name":"_value","type":"uint256"}],"name":"getSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"role","type":"string"}],"name":"getRole","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"paymentMethod","type":"address"},{"name":"value","type":"uint256"},{"name":"amount","type":"uint256"}],"name":"emulatePurchase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"burnWithData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_data","type":"bytes"}],"name":"receiveWithData","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"onTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ethRate","type":"uint256"},{"name":"btcRate","type":"uint256"},{"name":"usdRate","type":"uint256"}],"name":"setRates","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_mintableToken","type":"address"},{"name":"_btcToken","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"rate","type":"uint256"}],"name":"RateChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"allow","type":"bool"}],"name":"WhitelistChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousUser","type":"address"},{"indexed":true,"name":"newUser","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"data","type":"bytes"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"sold","type":"uint256"},{"indexed":false,"name":"bonus","type":"uint256"}],"name":"Purchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"RateAdd","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"}],"name":"RateRemove","type":"event"}]Contract Creation Code
606060405234156200001057600080fd5b604051604080620015e2833981016040528080519190602001805160008054600160a060020a03338116600160a060020a0319928316179092556002805483881690831617905560058054928416929091169190911790559150620000ad9050683635c9adc5dea000006d04ee2d6d415b85acef81000000006e01ed09bead87c0378d8e640000000064010000000062000e6c620000b582021704565b505062000253565b620000cd6401000000006200116e6200012e82021704565b620000e86000846401000000006200076d6200014c82021704565b6005546200010e90600160a060020a0316836401000000006200076d6200014c82021704565b620001296001826401000000006200076d6200014c82021704565b505050565b60005433600160a060020a039081169116146200014a57600080fd5b565b620001646401000000006200116e6200012e82021704565b600160a060020a038216600090815260046020526040908190208290557ffa9eee6b142afc22a1af1f2aa5676c202fd1aa4138fde6a13484e6dc6b3f4ac1908390839051600160a060020a03909216825260208201526040908101905180910390a180151562000211577f42ae07c0efe4ecce5b414088bb0b3a5466396d6afa097b0d1d07188e78fae7b382604051600160a060020a03909116815260200160405180910390a16200024f565b7f7fa3995810e92a3f38bcfa9eb48e2e5b8eceb6ff181c6d57445f1126b0cd687382604051600160a060020a03909116815260200160405180910390a15b5050565b61137f80620002636000396000f30060606040526004361061013a5763ffffffff60e060020a600035041663074bc101811461015357806309fd8212146101825780631b9a91a4146101b557806321e6b53d146101d757806327d23b86146101f65780632bdb70971461025b5780632c3496271461027d5780633294ab001461029057806337cef791146102e35780634aa66b28146103145780634cfe62c71461032a57806350669a031461038657806353d6fd59146103995780636b8393dd146103bd5780636e9067fb146103df57806371560f801461043057806383e49c531461045b5780638da5cb5b146104c0578063949a9d59146104d3578063a4c0ed3614610519578063a9059cbb1461057e578063c0ee0b8a14610519578063d004f38b146105a0578063d9caed12146105bc578063f2fde38b146105e4578063fc0c546a14610603575b610151602060405190810160405260008152610616565b005b341561015e57600080fd5b610166610626565b604051600160a060020a03909116815260200160405180910390f35b341561018d57600080fd5b6101a1600160a060020a0360043516610635565b604051901515815260200160405180910390f35b34156101c057600080fd5b610151600160a060020a0360043516602435610653565b34156101e257600080fd5b610151600160a060020a036004351661066b565b341561020157600080fd5b61015160048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506106da95505050505050565b341561026657600080fd5b610151600160a060020a036004351660243561076d565b341561028857600080fd5b610151610861565b341561029b57600080fd5b61015160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050933593506108be92505050565b34156102ee57600080fd5b610302600160a060020a03600435166108dd565b60405190815260200160405180910390f35b341561031f57600080fd5b6103026004356108f8565b341561033557600080fd5b61015160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a031692506108fe915050565b341561039157600080fd5b610151610ac3565b34156103a457600080fd5b610151600160a060020a03600435166024351515610b0a565b34156103c857600080fd5b610302600160a060020a0360043516602435610b70565b34156103ea57600080fd5b61016660046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610ba595505050505050565b341561043b57600080fd5b610151600160a060020a0360043581169060243516604435606435610c1d565b341561046657600080fd5b61015160048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610cb695505050505050565b34156104cb57600080fd5b610166610e3b565b61015160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061061695505050505050565b341561052457600080fd5b61015160048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610e4a95505050505050565b341561058957600080fd5b610151600160a060020a0360043516602435610e56565b34156105ab57600080fd5b610151600435602435604435610e6c565b34156105c757600080fd5b610151600160a060020a0360043581169060243516604435610ea0565b34156105ef57600080fd5b610151600160a060020a0360043516610fdc565b341561060e57600080fd5b610166611064565b6106236000333484611073565b50565b600554600160a060020a031681565b600160a060020a031660009081526003602052604090205460ff1690565b61065b61116e565b61066760008383610ea0565b5050565b61067361116e565b600254600160a060020a031663f2fde38b8260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156106c357600080fd5b6102c65a03f115156106d457600080fd5b50505050565b82600160a060020a0381166323b872dd33308660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561074557600080fd5b6102c65a03f1151561075657600080fd5b50505060405180519050506106d484338585611073565b61077561116e565b600160a060020a038216600090815260046020526040908190208290557ffa9eee6b142afc22a1af1f2aa5676c202fd1aa4138fde6a13484e6dc6b3f4ac1908390839051600160a060020a03909216825260208201526040908101905180910390a1801515610820577f42ae07c0efe4ecce5b414088bb0b3a5466396d6afa097b0d1d07188e78fae7b382604051600160a060020a03909116815260200160405180910390a1610667565b7f7fa3995810e92a3f38bcfa9eb48e2e5b8eceb6ff181c6d57445f1126b0cd687382604051600160a060020a03909116815260200160405180910390a15050565b61086961116e565b600254600160a060020a0316638456cb596040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156108a857600080fd5b6102c65a03f115156108b957600080fd5b505050565b6108c661116e565b60055461066790600160a060020a03168284610cb6565b600160a060020a031660009081526004602052604090205490565b50600090565b61090661116e565b600160a060020a038116151561091b57600080fd5b80600160a060020a03166001836040518082805190602001908083835b602083106109575780518252601f199092019160209182019101610938565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03167ff1c91f9eb8acad0d142210b9d2a050d74e664d8a3603351ebea896aa758a75148460405160208082528190810183818151815260200191508051906020019080838360005b838110156109f35780820151838201526020016109db565b50505050905090810190601f168015610a205780820380516001836020036101000a031916815260200191505b509250505060405180910390a3806001836040518082805190602001908083835b60208310610a605780518252601f199092019160209182019101610a41565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b610acb61116e565b600254600160a060020a0316633f4ba83a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156108a857600080fd5b60408051908101604052600881527f6f70657261746f720000000000000000000000000000000000000000000000006020820152610b4781610ba5565b600160a060020a031633600160a060020a0316141515610b6657600080fd5b6108b9838361118b565b6000610b9e6062610b926063610b8687876111ea565b9063ffffffff61122b16565b9063ffffffff61124216565b9392505050565b60006001826040518082805190602001908083835b60208310610bd95780518252601f199092019160209182019101610bba565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a031692915050565b610c2561116e565b610c3084600161118b565b610c3c8482600061126d565b83600160a060020a03167f8f7a55179307cea51948432d653dbd53a23fedc388bcb3e04e311f8220d8786484848460006040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a26106d48484848460006112fb565b610cbe61116e565b82600160a060020a031663fe9d930383836040518363ffffffff1660e060020a0281526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d24578082015183820152602001610d0c565b50505050905090810190601f168015610d515780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1515610d7057600080fd5b6102c65a03f11515610d8157600080fd5b5050507f8d38f5a0c1764ff1cca876ce8fe136163fddfce925659e6ad05437cfff6fd392838383604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b83811015610dfa578082015183820152602001610de2565b50505050905090810190601f168015610e275780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b600054600160a060020a031681565b6108b933848484611073565b610e5e61116e565b61066782600a600084610c1d565b610e7461116e565b610e7f60008461076d565b600554610e9590600160a060020a03168361076d565b6108b960018261076d565b610ea861116e565b600160a060020a0382161515610ebd57600080fd5b610ec88383836108b9565b600160a060020a0383161515610f0e57600160a060020a03821681156108fc0282604051600060405180830381858888f193505050501515610f0957600080fd5b610f87565b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f6b57600080fd5b6102c65a03f11515610f7c57600080fd5b505050604051805150505b7f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b610fe461116e565b600160a060020a0381161515610ff957600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600160a060020a031681565b60008060006110828786610b70565b92506000831161109157600080fd5b61109a836108f8565b91508351601414156110c8576110b1846000611302565b6c01000000000000000000000000900490506110d7565b8351156110d457600080fd5b50845b6110e2818484611325565b6110ed81848461126d565b80600160a060020a03167f8f7a55179307cea51948432d653dbd53a23fedc388bcb3e04e311f8220d87864888786866040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a261116581888786866112fb565b50505050505050565b60005433600160a060020a0390811691161461118957600080fd5b565b600160a060020a03821660008181526003602052604090819020805460ff19168415151790557f3f50d04114467f3ca25c50f1540e2864f8a852c0380bbbbb603ebfda10b5baf290839051901515815260200160405180910390a25050565b6000806111f6846108dd565b90506000811161120557600080fd5b611221670de0b6b3a7640000610b86858463ffffffff61124216565b91505b5092915050565b600080828481151561123957fe5b04949350505050565b6000808315156112555760009150611224565b5082820282848281151561126557fe5b0414610b9e57fe5b600254600160a060020a03166340c10f198461128f858563ffffffff61134416565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156112db57600080fd5b6102c65a03f115156112ec57600080fd5b50505060405180515050505050565b5050505050565b6000825160148301111561131557600080fd5b6020830182018051949350505050565b6113308383836108b9565b61133983610635565b15156108b957600080fd5b600082820183811015610b9e57fe00a165627a7a723058200c465c28bacfa5666e5cc02b3b12898899a3abeaa71e6977df50a0a222f81f2d002900000000000000000000000044afba0928e2175cfa326bffd6632e43b4b1a8d7000000000000000000000000f876c67ce21a03a848dbae562d583296ee5a8449
Deployed Bytecode
0x60606040526004361061013a5763ffffffff60e060020a600035041663074bc101811461015357806309fd8212146101825780631b9a91a4146101b557806321e6b53d146101d757806327d23b86146101f65780632bdb70971461025b5780632c3496271461027d5780633294ab001461029057806337cef791146102e35780634aa66b28146103145780634cfe62c71461032a57806350669a031461038657806353d6fd59146103995780636b8393dd146103bd5780636e9067fb146103df57806371560f801461043057806383e49c531461045b5780638da5cb5b146104c0578063949a9d59146104d3578063a4c0ed3614610519578063a9059cbb1461057e578063c0ee0b8a14610519578063d004f38b146105a0578063d9caed12146105bc578063f2fde38b146105e4578063fc0c546a14610603575b610151602060405190810160405260008152610616565b005b341561015e57600080fd5b610166610626565b604051600160a060020a03909116815260200160405180910390f35b341561018d57600080fd5b6101a1600160a060020a0360043516610635565b604051901515815260200160405180910390f35b34156101c057600080fd5b610151600160a060020a0360043516602435610653565b34156101e257600080fd5b610151600160a060020a036004351661066b565b341561020157600080fd5b61015160048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506106da95505050505050565b341561026657600080fd5b610151600160a060020a036004351660243561076d565b341561028857600080fd5b610151610861565b341561029b57600080fd5b61015160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050933593506108be92505050565b34156102ee57600080fd5b610302600160a060020a03600435166108dd565b60405190815260200160405180910390f35b341561031f57600080fd5b6103026004356108f8565b341561033557600080fd5b61015160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a031692506108fe915050565b341561039157600080fd5b610151610ac3565b34156103a457600080fd5b610151600160a060020a03600435166024351515610b0a565b34156103c857600080fd5b610302600160a060020a0360043516602435610b70565b34156103ea57600080fd5b61016660046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610ba595505050505050565b341561043b57600080fd5b610151600160a060020a0360043581169060243516604435606435610c1d565b341561046657600080fd5b61015160048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610cb695505050505050565b34156104cb57600080fd5b610166610e3b565b61015160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061061695505050505050565b341561052457600080fd5b61015160048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610e4a95505050505050565b341561058957600080fd5b610151600160a060020a0360043516602435610e56565b34156105ab57600080fd5b610151600435602435604435610e6c565b34156105c757600080fd5b610151600160a060020a0360043581169060243516604435610ea0565b34156105ef57600080fd5b610151600160a060020a0360043516610fdc565b341561060e57600080fd5b610166611064565b6106236000333484611073565b50565b600554600160a060020a031681565b600160a060020a031660009081526003602052604090205460ff1690565b61065b61116e565b61066760008383610ea0565b5050565b61067361116e565b600254600160a060020a031663f2fde38b8260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156106c357600080fd5b6102c65a03f115156106d457600080fd5b50505050565b82600160a060020a0381166323b872dd33308660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561074557600080fd5b6102c65a03f1151561075657600080fd5b50505060405180519050506106d484338585611073565b61077561116e565b600160a060020a038216600090815260046020526040908190208290557ffa9eee6b142afc22a1af1f2aa5676c202fd1aa4138fde6a13484e6dc6b3f4ac1908390839051600160a060020a03909216825260208201526040908101905180910390a1801515610820577f42ae07c0efe4ecce5b414088bb0b3a5466396d6afa097b0d1d07188e78fae7b382604051600160a060020a03909116815260200160405180910390a1610667565b7f7fa3995810e92a3f38bcfa9eb48e2e5b8eceb6ff181c6d57445f1126b0cd687382604051600160a060020a03909116815260200160405180910390a15050565b61086961116e565b600254600160a060020a0316638456cb596040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156108a857600080fd5b6102c65a03f115156108b957600080fd5b505050565b6108c661116e565b60055461066790600160a060020a03168284610cb6565b600160a060020a031660009081526004602052604090205490565b50600090565b61090661116e565b600160a060020a038116151561091b57600080fd5b80600160a060020a03166001836040518082805190602001908083835b602083106109575780518252601f199092019160209182019101610938565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03167ff1c91f9eb8acad0d142210b9d2a050d74e664d8a3603351ebea896aa758a75148460405160208082528190810183818151815260200191508051906020019080838360005b838110156109f35780820151838201526020016109db565b50505050905090810190601f168015610a205780820380516001836020036101000a031916815260200191505b509250505060405180910390a3806001836040518082805190602001908083835b60208310610a605780518252601f199092019160209182019101610a41565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b610acb61116e565b600254600160a060020a0316633f4ba83a6040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156108a857600080fd5b60408051908101604052600881527f6f70657261746f720000000000000000000000000000000000000000000000006020820152610b4781610ba5565b600160a060020a031633600160a060020a0316141515610b6657600080fd5b6108b9838361118b565b6000610b9e6062610b926063610b8687876111ea565b9063ffffffff61122b16565b9063ffffffff61124216565b9392505050565b60006001826040518082805190602001908083835b60208310610bd95780518252601f199092019160209182019101610bba565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a031692915050565b610c2561116e565b610c3084600161118b565b610c3c8482600061126d565b83600160a060020a03167f8f7a55179307cea51948432d653dbd53a23fedc388bcb3e04e311f8220d8786484848460006040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a26106d48484848460006112fb565b610cbe61116e565b82600160a060020a031663fe9d930383836040518363ffffffff1660e060020a0281526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610d24578082015183820152602001610d0c565b50505050905090810190601f168015610d515780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1515610d7057600080fd5b6102c65a03f11515610d8157600080fd5b5050507f8d38f5a0c1764ff1cca876ce8fe136163fddfce925659e6ad05437cfff6fd392838383604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b83811015610dfa578082015183820152602001610de2565b50505050905090810190601f168015610e275780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b600054600160a060020a031681565b6108b933848484611073565b610e5e61116e565b61066782600a600084610c1d565b610e7461116e565b610e7f60008461076d565b600554610e9590600160a060020a03168361076d565b6108b960018261076d565b610ea861116e565b600160a060020a0382161515610ebd57600080fd5b610ec88383836108b9565b600160a060020a0383161515610f0e57600160a060020a03821681156108fc0282604051600060405180830381858888f193505050501515610f0957600080fd5b610f87565b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610f6b57600080fd5b6102c65a03f11515610f7c57600080fd5b505050604051805150505b7f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b610fe461116e565b600160a060020a0381161515610ff957600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600160a060020a031681565b60008060006110828786610b70565b92506000831161109157600080fd5b61109a836108f8565b91508351601414156110c8576110b1846000611302565b6c01000000000000000000000000900490506110d7565b8351156110d457600080fd5b50845b6110e2818484611325565b6110ed81848461126d565b80600160a060020a03167f8f7a55179307cea51948432d653dbd53a23fedc388bcb3e04e311f8220d87864888786866040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a261116581888786866112fb565b50505050505050565b60005433600160a060020a0390811691161461118957600080fd5b565b600160a060020a03821660008181526003602052604090819020805460ff19168415151790557f3f50d04114467f3ca25c50f1540e2864f8a852c0380bbbbb603ebfda10b5baf290839051901515815260200160405180910390a25050565b6000806111f6846108dd565b90506000811161120557600080fd5b611221670de0b6b3a7640000610b86858463ffffffff61124216565b91505b5092915050565b600080828481151561123957fe5b04949350505050565b6000808315156112555760009150611224565b5082820282848281151561126557fe5b0414610b9e57fe5b600254600160a060020a03166340c10f198461128f858563ffffffff61134416565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156112db57600080fd5b6102c65a03f115156112ec57600080fd5b50505060405180515050505050565b5050505050565b6000825160148301111561131557600080fd5b6020830182018051949350505050565b6113308383836108b9565b61133983610635565b15156108b957600080fd5b600082820183811015610b9e57fe00a165627a7a723058200c465c28bacfa5666e5cc02b3b12898899a3abeaa71e6977df50a0a222f81f2d0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000044afba0928e2175cfa326bffd6632e43b4b1a8d7000000000000000000000000f876c67ce21a03a848dbae562d583296ee5a8449
-----Decoded View---------------
Arg [0] : _mintableToken (address): 0x44AfbA0928E2175Cfa326bffd6632e43b4B1A8D7
Arg [1] : _btcToken (address): 0xf876c67CE21a03A848dbaE562D583296Ee5A8449
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000044afba0928e2175cfa326bffd6632e43b4b1a8d7
Arg [1] : 000000000000000000000000f876c67ce21a03a848dbae562d583296ee5a8449
Swarm Source
bzzr://0c465c28bacfa5666e5cc02b3b12898899a3abeaa71e6977df50a0a222f81f2d
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.