More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 118 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 16511114 | 1119 days ago | IN | 0 ETH | 0.0020172 | ||||
| Transfer | 16498945 | 1121 days ago | IN | 0 ETH | 0.00460478 | ||||
| Transfer | 12875845 | 1675 days ago | IN | 0 ETH | 0.00081568 | ||||
| Transfer | 12875832 | 1675 days ago | IN | 0 ETH | 0.00115336 | ||||
| Transfer | 12875825 | 1675 days ago | IN | 0 ETH | 0.00146121 | ||||
| Transfer | 12218819 | 1777 days ago | IN | 0 ETH | 0.00464504 | ||||
| Transfer | 11732980 | 1852 days ago | IN | 0 ETH | 0.00553903 | ||||
| Approve | 11584674 | 1875 days ago | IN | 0 ETH | 0.01281858 | ||||
| Transfer | 11415995 | 1901 days ago | IN | 0 ETH | 0.00182205 | ||||
| Transfer | 11000281 | 1965 days ago | IN | 0 ETH | 0.00799652 | ||||
| Transfer | 10356013 | 2064 days ago | IN | 0 ETH | 0.00368485 | ||||
| Approve | 10290872 | 2074 days ago | IN | 0 ETH | 0.00056621 | ||||
| Approve | 10290871 | 2074 days ago | IN | 0 ETH | 0.00032931 | ||||
| Transfer | 9454045 | 2203 days ago | IN | 0 ETH | 0.00014576 | ||||
| Transfer | 9448036 | 2204 days ago | IN | 0 ETH | 0.00014505 | ||||
| Transfer | 9447958 | 2204 days ago | IN | 0 ETH | 0.00009279 | ||||
| Transfer | 9378428 | 2215 days ago | IN | 0 ETH | 0.00006447 | ||||
| Transfer | 9317000 | 2224 days ago | IN | 0 ETH | 0.00166497 | ||||
| Transfer | 9252962 | 2234 days ago | IN | 0 ETH | 0.0001689 | ||||
| Transfer | 9232899 | 2237 days ago | IN | 0 ETH | 0.00026554 | ||||
| Transfer | 9093379 | 2263 days ago | IN | 0 ETH | 0.00166627 | ||||
| Transfer | 8945885 | 2289 days ago | IN | 0 ETH | 0.00142503 | ||||
| Transfer | 8894932 | 2297 days ago | IN | 0 ETH | 0.00139799 | ||||
| Transfer | 8778856 | 2316 days ago | IN | 0 ETH | 0.00509297 | ||||
| Transfer | 8680771 | 2331 days ago | IN | 0 ETH | 0.00401476 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
GoldBackedToken
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-01-12
*/
pragma solidity ^0.4.17;
/**
* @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;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() 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 {
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 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 ERC20Basic
* @dev Simpler version of ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/179
*/
contract ERC20Basic {
//uint256 public totalSupply;
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract GoldFees is Ownable {
using SafeMath for uint256;
// e.g. if rate = 0.0054
//uint rateN = 9999452055;
uint rateN = 9999452054794520548;
uint rateD = 19;
uint public maxDays;
uint public maxRate;
function GoldFees() public {
calcMax();
}
function calcMax() internal {
maxDays = 1;
maxRate = rateN;
uint pow = 2;
do {
uint newN = rateN ** pow;
if (newN / maxRate != maxRate) {
maxDays = pow / 2;
break;
}
maxRate = newN;
pow *= 2;
} while (pow < 2000);
}
function updateRate(uint256 _n, uint256 _d) public onlyOwner {
rateN = _n;
rateD = _d;
calcMax();
}
function rateForDays(uint256 numDays) public view returns (uint256 rate) {
if (numDays <= maxDays) {
uint r = rateN ** numDays;
uint d = rateD * numDays;
if (d > 18) {
uint div = 10 ** (d-18);
rate = r / div;
} else {
div = 10 ** (18 - d);
rate = r * div;
}
} else {
uint256 md1 = numDays / 2;
uint256 md2 = numDays - md1;
uint256 r2;
uint256 r1 = rateForDays(md1);
if (md1 == md2) {
r2 = r1;
} else {
r2 = rateForDays(md2);
}
//uint256 r1 = rateForDays(maxDays);
//uint256 r2 = rateForDays(numDays-maxDays);
rate = r1.mul(r2)/(10**18);
}
return;
}
uint256 constant public UTC2MYT = 1483200000;
function wotDay(uint256 time) public pure returns (uint256) {
return (time - UTC2MYT) / (1 days);
}
// minimum fee is 1 unless same day
function calcFees(uint256 start, uint256 end, uint256 startAmount) public view returns (uint256 amount, uint256 fee) {
if (startAmount == 0)
return;
uint256 numberOfDays = wotDay(end) - wotDay(start);
if (numberOfDays == 0) {
amount = startAmount;
return;
}
amount = (rateForDays(numberOfDays) * startAmount) / (1 ether);
if ((fee == 0) && (amount != 0))
amount--;
fee = startAmount.sub(amount);
}
}
contract Reclaimable is Ownable {
ERC20Basic constant internal RECLAIM_ETHER = ERC20Basic(0x0);
function reclaim(ERC20Basic token)
public
onlyOwner
{
address reclaimer = msg.sender;
if (token == RECLAIM_ETHER) {
reclaimer.transfer(this.balance);
} else {
uint256 balance = token.balanceOf(this);
require(token.transfer(reclaimer, balance));
}
}
}
// This is primarity used for the migration. Use in the GBT contract is for convenience
contract GBTBasic {
struct Balance {
uint256 amount; // amount through update or transfer
uint256 lastUpdated; // DATE last updated
uint256 nextAllocationIndex; // which allocationsOverTime record contains next update
uint256 allocationShare; // the share of allocationPool that this holder gets (means they hold HGT)
}
/*Creates an array with all balances*/
mapping (address => Balance) public balances;
struct Allocation {
uint256 amount;
uint256 date;
}
Allocation[] public allocationsOverTime;
Allocation[] public currentAllocations;
function currentAllocationLength() view public returns (uint256) {
return currentAllocations.length;
}
function aotLength() view public returns (uint256) {
return allocationsOverTime.length;
}
}
contract GoldBackedToken is Ownable, ERC20, Pausable, GBTBasic, Reclaimable {
using SafeMath for uint;
function GoldBackedToken(GoldFees feeCalc, GBTBasic _oldToken) public {
uint delta = 3799997201200178500814753;
feeCalculator = feeCalc;
oldToken = _oldToken;
// now migrate the non balance stuff
uint x;
for (x = 0; x < oldToken.aotLength(); x++) {
Allocation memory al;
(al.amount, al.date) = oldToken.allocationsOverTime(x);
allocationsOverTime.push(al);
}
allocationsOverTime[3].amount = allocationsOverTime[3].amount.sub(delta);
for (x = 0; x < oldToken.currentAllocationLength(); x++) {
(al.amount, al.date) = oldToken.currentAllocations(x);
al.amount = al.amount.sub(delta);
currentAllocations.push(al);
}
// 1st Minting : TxHash 0x8ba9175d77ed5d3bbf0ddb3666df496d3789da5aa41e46228df91357d9eae8bd
// amount = 528359800000000000000;
// date = 1512646845;
// 2nd Minting : TxHash 0xb3ec483dc8cf7dbbe29f4b86bd371702dd0fdaccd91d1b2d57d5e9a18b23d022
// date = 1513855345;
// amount = 1003203581831868623088;
// Get values of first minting at second minting date
// feeCalc(1512646845,1513855345,528359800000000000000) => (527954627221032516031,405172778967483969)
mintedGBT.date = 1515700247;
mintedGBT.amount = 1529313490861692541644;
}
function totalSupply() view public returns (uint256) {
uint256 minted;
uint256 mFees;
uint256 uminted;
uint256 umFees;
uint256 allocated;
uint256 aFees;
(minted,mFees) = calcFees(mintedGBT.date,now,mintedGBT.amount);
(uminted,umFees) = calcFees(unmintedGBT.date,now,unmintedGBT.amount);
(allocated,aFees) = calcFees(currentAllocations[0].date,now,currentAllocations[0].amount);
if (minted+allocated>uminted) {
return minted.add(allocated).sub(uminted);
} else {
return 0;
}
}
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed owner, address indexed spender, uint value);
event DeductFees(address indexed owner,uint256 amount);
event TokenMinted(address destination, uint256 amount);
event TokenBurned(address source, uint256 amount);
string public name = "GOLDX";
string public symbol = "GOLDX";
uint256 constant public decimals = 18; // same as ETH
uint256 constant public hgtDecimals = 8;
uint256 constant public allocationPool = 1 * 10**9 * 10**hgtDecimals; // total HGT holdings
uint256 public maxAllocation = 38 * 10**5 * 10**decimals; // max GBT that can ever ever be given out
uint256 public totAllocation; // amount of GBT so far
GoldFees public feeCalculator;
address public HGT; // HGT contract address
function updateMaxAllocation(uint256 newMax) public onlyOwner {
require(newMax > 38 * 10**5 * 10**decimals);
maxAllocation = newMax;
}
function setFeeCalculator(GoldFees newFC) public onlyOwner {
feeCalculator = newFC;
}
// GoldFees needs to take care of Domain Offset - do not do here
function calcFees(uint256 from, uint256 to, uint256 amount) view public returns (uint256 val, uint256 fee) {
return feeCalculator.calcFees(from,to,amount);
}
mapping (address => mapping (address => uint)) public allowance;
mapping (address => bool) updated;
GBTBasic oldToken;
function migrateBalance(address where) public {
if (!updated[where]) {
uint256 am;
uint256 lu;
uint256 ne;
uint256 al;
(am,lu,ne,al) = oldToken.balances(where);
balances[where] = Balance(am,lu,ne,al);
updated[where] = true;
}
}
function update(address where) internal {
uint256 pos;
uint256 fees;
uint256 val;
migrateBalance(where);
(val,fees,pos) = updatedBalance(where);
balances[where].nextAllocationIndex = pos;
balances[where].amount = val;
balances[where].lastUpdated = now;
}
function updatedBalance(address where) view public returns (uint val, uint fees, uint pos) {
uint256 cVal;
uint256 cFees;
uint256 cAmount;
uint256 am;
uint256 lu;
uint256 ne;
uint256 al;
Balance memory bb;
// calculate update of balance in account
if (updated[where]) {
bb = balances[where];
am = bb.amount;
lu = bb.lastUpdated;
ne = bb.nextAllocationIndex;
al = bb.allocationShare;
} else {
(am,lu,ne,al) = oldToken.balances(where);
}
(val,fees) = calcFees(lu,now,am);
// calculate update based on accrued disbursals
pos = ne;
if ((pos < currentAllocations.length) && (al != 0)) {
cAmount = currentAllocations[ne].amount.mul(al).div( allocationPool);
(cVal,cFees) = calcFees(currentAllocations[ne].date,now,cAmount);
}
val = val.add(cVal);
fees = fees.add(cFees);
pos = currentAllocations.length;
}
function balanceOf(address where) view public returns (uint256 val) {
uint256 fees;
uint256 pos;
(val,fees,pos) = updatedBalance(where);
return ;
}
event GoldAllocation(uint256 amount, uint256 date);
event FeeOnAllocation(uint256 fees, uint256 date);
event PartComplete();
event StillToGo(uint numLeft);
uint256 public partPos;
uint256 public partFees;
uint256 partL;
Allocation[] public partAllocations;
function partAllocationLength() view public returns (uint) {
return partAllocations.length;
}
function addAllocationPartOne(uint newAllocation,uint numSteps)
public
onlyMinter
{
require(partPos == 0);
uint256 thisAllocation = newAllocation;
require(totAllocation < maxAllocation); // cannot allocate more than this;
if (currentAllocations.length > partAllocations.length) {
partAllocations = currentAllocations;
}
if (totAllocation + thisAllocation > maxAllocation) {
thisAllocation = maxAllocation.sub(totAllocation);
log0("max alloc reached");
}
totAllocation = totAllocation.add(thisAllocation);
GoldAllocation(thisAllocation,now);
Allocation memory newDiv;
newDiv.amount = thisAllocation;
newDiv.date = now;
// store into history
allocationsOverTime.push(newDiv);
// add this record to the end of currentAllocations
partL = partAllocations.push(newDiv);
// update all other records with calcs from last record
if (partAllocations.length < 2) { // no fees to consider
PartComplete();
currentAllocations = partAllocations;
FeeOnAllocation(0,now);
return;
}
//
// The only fees that need to be collected are the fees on location zero.
// Since they are the last calculated = they come out with the break
//
for (partPos = partAllocations.length - 2; partPos >= 0; partPos-- ) {
(partAllocations[partPos].amount,partFees) = calcFees(partAllocations[partPos].date,now,partAllocations[partPos].amount);
partAllocations[partPos].amount = partAllocations[partPos].amount.add(partAllocations[partL - 1].amount);
partAllocations[partPos].date = now;
if ((partPos == 0) || (partPos == partAllocations.length-numSteps)) {
break;
}
}
if (partPos != 0) {
StillToGo(partPos);
return; // not done yet
}
PartComplete();
FeeOnAllocation(partFees,now);
currentAllocations = partAllocations;
}
function addAllocationPartTwo(uint numSteps)
public
onlyMinter
{
require(numSteps > 0);
require(partPos > 0);
for (uint i = 0; i < numSteps; i++ ) {
partPos--;
(partAllocations[partPos].amount,partFees) = calcFees(partAllocations[partPos].date,now,partAllocations[partPos].amount);
partAllocations[partPos].amount = partAllocations[partPos].amount.add(partAllocations[partL - 1].amount);
partAllocations[partPos].date = now;
if (partPos == 0) {
break;
}
}
if (partPos != 0) {
StillToGo(partPos);
return; // not done yet
}
PartComplete();
FeeOnAllocation(partFees,now);
currentAllocations = partAllocations;
}
function setHGT(address _hgt) public onlyOwner {
HGT = _hgt;
}
function parentFees(address where) public whenNotPaused {
require(msg.sender == HGT);
update(where);
}
function parentChange(address where, uint newValue) public whenNotPaused { // called when HGT balance changes
require(msg.sender == HGT);
balances[where].allocationShare = newValue;
}
/* send GBT */
function transfer(address _to, uint256 _value) public whenNotPaused returns (bool ok) {
require(_to != address(0));
update(msg.sender); // Do this to ensure sender has enough funds.
update(_to);
balances[msg.sender].amount = balances[msg.sender].amount.sub(_value);
balances[_to].amount = balances[_to].amount.add(_value);
Transfer(msg.sender, _to, _value); //Notify anyone listening that this transfer took place
return true;
}
function transferFrom(address _from, address _to, uint _value) public whenNotPaused returns (bool success) {
require(_to != address(0));
var _allowance = allowance[_from][msg.sender];
update(_from); // Do this to ensure sender has enough funds.
update(_to);
balances[_to].amount = balances[_to].amount.add(_value);
balances[_from].amount = balances[_from].amount.sub(_value);
allowance[_from][msg.sender] = _allowance.sub(_value);
Transfer(_from, _to, _value);
return true;
}
function approve(address _spender, uint _value) public whenNotPaused returns (bool success) {
require((_value == 0) || (allowance[msg.sender][_spender] == 0));
allowance[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/**
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
*/
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowance[msg.sender][_spender] = allowance[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowance[msg.sender][_spender]);
return true;
}
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowance[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowance[msg.sender][_spender] = 0;
} else {
allowance[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowance[msg.sender][_spender]);
return true;
}
function allowance(address _owner, address _spender) public view returns (uint remaining) {
return allowance[_owner][_spender];
}
// Minting Functions
address public authorisedMinter;
function setMinter(address minter) public onlyOwner {
authorisedMinter = minter;
}
modifier onlyMinter() {
require(msg.sender == authorisedMinter);
_;
}
Allocation public mintedGBT; // minting adds to this one
Allocation public unmintedGBT; // allocating adds here, burning takes from here if minted is empty
function mintTokens(address destination, uint256 amount)
onlyMinter
public
{
require(msg.sender == authorisedMinter);
update(destination);
balances[destination].amount = balances[destination].amount.add(amount);
TokenMinted(destination,amount);
Transfer(0x0,destination,amount); // ERC20 compliance
//
// TotalAllocation stuff
//
uint256 fees;
(mintedGBT.amount,fees) = calcFees(mintedGBT.date,now,mintedGBT.amount);
mintedGBT.amount = mintedGBT.amount.add(amount);
mintedGBT.date = now;
}
function burnTokens(address source, uint256 amount)
onlyMinter
public
{
update(source);
balances[source].amount = balances[source].amount.sub(amount);
TokenBurned(source,amount);
Transfer(source,0x0,amount); // ERC20 compliance
//
// TotalAllocation stuff
//
uint256 fees;
(unmintedGBT.amount,fees) = calcFees(unmintedGBT.date,now,unmintedGBT.amount);
unmintedGBT.date = now;
unmintedGBT.amount = unmintedGBT.amount.add(amount);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"currentAllocations","outputs":[{"name":"amount","type":"uint256"},{"name":"date","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"source","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMax","type":"uint256"}],"name":"updateMaxAllocation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"amount","type":"uint256"},{"name":"lastUpdated","type":"uint256"},{"name":"nextAllocationIndex","type":"uint256"},{"name":"allocationShare","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"where","type":"address"}],"name":"migrateBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"where","type":"address"}],"name":"parentFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentAllocationLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintedGBT","outputs":[{"name":"amount","type":"uint256"},{"name":"date","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"where","type":"address"}],"name":"balanceOf","outputs":[{"name":"val","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"where","type":"address"}],"name":"updatedBalance","outputs":[{"name":"val","type":"uint256"},{"name":"fees","type":"uint256"},{"name":"pos","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allocationsOverTime","outputs":[{"name":"amount","type":"uint256"},{"name":"date","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"authorisedMinter","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"partAllocationLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newFC","type":"address"}],"name":"setFeeCalculator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allocationPool","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeCalculator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"numSteps","type":"uint256"}],"name":"addAllocationPartTwo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"partAllocations","outputs":[{"name":"amount","type":"uint256"},{"name":"date","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_hgt","type":"address"}],"name":"setHGT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"aotLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"amount","type":"uint256"}],"name":"calcFees","outputs":[{"name":"val","type":"uint256"},{"name":"fee","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAllocation","type":"uint256"},{"name":"numSteps","type":"uint256"}],"name":"addAllocationPartOne","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"partFees","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unmintedGBT","outputs":[{"name":"amount","type":"uint256"},{"name":"date","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"where","type":"address"},{"name":"newValue","type":"uint256"}],"name":"parentChange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"HGT","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"amount","type":"uint256"}],"name":"mintTokens","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":"partPos","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"minter","type":"address"}],"name":"setMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hgtDecimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"feeCalc","type":"address"},{"name":"_oldToken","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"DeductFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"destination","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"source","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"date","type":"uint256"}],"name":"GoldAllocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"fees","type":"uint256"},{"indexed":false,"name":"date","type":"uint256"}],"name":"FeeOnAllocation","type":"event"},{"anonymous":false,"inputs":[],"name":"PartComplete","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"numLeft","type":"uint256"}],"name":"StillToGo","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
606060409081526000805460a060020a60ff02191690558051908101604052600581527f474f4c4458000000000000000000000000000000000000000000000000000000602082015260049080516200005d9291602001906200049d565b506040805190810160405260058082527f474f4c44580000000000000000000000000000000000000000000000000000006020830152908051620000a69291602001906200049d565b506a0324ae69ab7120970000006006553415620000c257600080fd5b6040516040806200280d833981016040528080519190602001805191506000905080620000ee62000522565b60008054600160a060020a03338116600160a060020a031992831617835560088054898316908416179055600c8054918816919092161790556a0324ae42d41b84b11d47a1935091505b600c54600160a060020a031663cb1a32a46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200019a57600080fd5b6102c65a03f11515620001ac57600080fd5b505050604051805190508210156200029157600c54600160a060020a03166378388eb6836000604051604001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff841602815260048101919091526024016040805180830381600087803b15156200022857600080fd5b6102c65a03f115156200023a57600080fd5b50505060405180519060200180516020840152508152600280546001810162000264838262000539565b60009283526020909220839160020201815181556020820151600191820155939093019250620001389050565b620002cd8360026003815481101515620002a757fe5b600091825260209091206002909102015490640100000000620020af6200048a82021704565b600280546003908110620002dd57fe5b6000918252602082206002909102019190915591505b600c54600160a060020a0316633e7d1acc6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156200035557600080fd5b6102c65a03f115156200036757600080fd5b505050604051805190508210156200046a57600c54600160a060020a0316630901a3f1836000604051604001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff841602815260048101919091526024016040805180830381600087803b1515620003e357600080fd5b6102c65a03f11515620003f557600080fd5b505050604051805190602001805160208401525081526200042783825190640100000000620020af6200048a82021704565b815260038054600181016200043d838262000539565b60009283526020909220839160020201815181556020820151600191820155939093019250620002f39050565b5050635a57c01760135550506852e77cf549dfc7dacc60125550620005b0565b6000828211156200049757fe5b50900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004e057805160ff191683800117855562000510565b8280016001018555821562000510579182015b8281111562000510578251825591602001919060010190620004f3565b506200051e9291506200056d565b5090565b604080519081016040526000808252602082015290565b81548183558181151162000568576002028160020283600052602060002091820191016200056891906200058d565b505050565b6200058a91905b808211156200051e576000815560010162000574565b90565b6200058a91905b808211156200051e576000808255600182015560020162000594565b61224d80620005c06000396000f30060606040526004361061022c5763ffffffff60e060020a60003504166306fdde0381146102315780630901a3f1146102bb578063095ea7b3146102e95780630d1118ce1461031f57806318160ddd1461034357806323b872dd1461036857806324da48a31461039057806327e235e3146103a65780632988e36b146103f05780632a774c271461040f578063313ce5671461042257806336b69367146104355780633e7d1acc146104545780633f4ba83a146104675780635bbfd0d71461047a5780635c975abb1461048d57806366188463146104a057806370a08231146104c2578063735d3e81146104e157806378388eb6146105245780637fc29fc91461053a5780638456cb591461056957806385a735dd1461057c5780638c66d04f1461058f5780638da5cb5b146105ae57806395d89b41146105c15780639b3ba79f146105d45780639b9073e4146105e7578063a9059cbb146105fa578063b00eb9fe1461061c578063b64e8ad81461062f578063c074304414610645578063c74a96eb1461065b578063cb1a32a41461067a578063d0699c981461068d578063d6edb047146106a9578063d73dd623146106c2578063d8aba1c6146106e4578063dd62ed3e146106f7578063e267761f1461071c578063e5a7b51f1461072f578063ed39eab314610751578063f0dda65c14610764578063f2fde38b14610786578063f764e8a0146107a5578063fc772c8b146107b8578063fca3b5aa146107d7578063ffc0d035146107f6575b600080fd5b341561023c57600080fd5b610244610809565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102c657600080fd5b6102d16004356108a7565b60405191825260208201526040908101905180910390f35b34156102f457600080fd5b61030b600160a060020a03600435166024356108d3565b604051901515815260200160405180910390f35b341561032a57600080fd5b610341600160a060020a036004351660243561098f565b005b341561034e57600080fd5b610356610aa4565b60405190815260200160405180910390f35b341561037357600080fd5b61030b600160a060020a0360043581169060243516604435610b73565b341561039b57600080fd5b610341600435610cbf565b34156103b157600080fd5b6103c5600160a060020a0360043516610cf6565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34156103fb57600080fd5b610341600160a060020a0360043516610d1e565b341561041a57600080fd5b610356610e60565b341561042d57600080fd5b610356610e66565b341561044057600080fd5b610341600160a060020a0360043516610e6b565b341561045f57600080fd5b610356610ea9565b341561047257600080fd5b610341610eb0565b341561048557600080fd5b6102d1610f2f565b341561049857600080fd5b61030b610f38565b34156104ab57600080fd5b61030b600160a060020a0360043516602435610f48565b34156104cd57600080fd5b610356600160a060020a0360043516611044565b34156104ec57600080fd5b610500600160a060020a036004351661105d565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561052f57600080fd5b6102d160043561126e565b341561054557600080fd5b61054d61127c565b604051600160a060020a03909116815260200160405180910390f35b341561057457600080fd5b61034161128b565b341561058757600080fd5b61035661130f565b341561059a57600080fd5b610341600160a060020a0360043516611315565b34156105b957600080fd5b61054d61135f565b34156105cc57600080fd5b61024461136e565b34156105df57600080fd5b6103566113d9565b34156105f257600080fd5b6103566113df565b341561060557600080fd5b61030b600160a060020a03600435166024356113eb565b341561062757600080fd5b61054d6114d7565b341561063a57600080fd5b6103416004356114e6565b341561065057600080fd5b6102d160043561170a565b341561066657600080fd5b610341600160a060020a0360043516611718565b341561068557600080fd5b610356611762565b341561069857600080fd5b6102d1600435602435604435611768565b34156106b457600080fd5b6103416004356024356117f8565b34156106cd57600080fd5b61030b600160a060020a0360043516602435611b9d565b34156106ef57600080fd5b610356611c41565b341561070257600080fd5b610356600160a060020a0360043581169060243516611c47565b341561072757600080fd5b6102d1611c72565b341561073a57600080fd5b610341600160a060020a0360043516602435611c7b565b341561075c57600080fd5b61054d611ccc565b341561076f57600080fd5b610341600160a060020a0360043516602435611cdb565b341561079157600080fd5b610341600160a060020a0360043516611e0b565b34156107b057600080fd5b610356611ea6565b34156107c357600080fd5b610341600160a060020a0360043516611eac565b34156107e257600080fd5b610341600160a060020a0360043516612015565b341561080157600080fd5b61035661205f565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089f5780601f106108745761010080835404028352916020019161089f565b820191906000526020600020905b81548152906001019060200180831161088257829003601f168201915b505050505081565b60038054829081106108b557fe5b60009182526020909120600290910201805460019091015490915082565b6000805460a060020a900460ff16156108eb57600080fd5b81158061091b5750600160a060020a033381166000908152600a6020908152604080832093871683529290522054155b151561092657600080fd5b600160a060020a033381166000818152600a6020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60115460009033600160a060020a039081169116146109ad57600080fd5b6109b683612064565b600160a060020a0383166000908152600160205260409020546109df908363ffffffff6120af16565b600160a060020a03841660009081526001602052604090819020919091557f1af5163f80e79b5e554f61e1d052084d3a3fe1166e42a265798c4e2ddce8ffa2908490849051600160a060020a03909216825260208201526040908101905180910390a1600083600160a060020a03166000805160206122028339815191528460405190815260200160405180910390a3601554601454610a8191904290611768565b6014829055426015559150610a9c908363ffffffff6120c116565b601455505050565b6000806000806000806000610ac460126001015442601260000154611768565b601554601454929850909650610adb914290611768565b60038054929650909450610b2e916000908110610af457fe5b9060005260206000209060020201600101544260036000815481101515610b1757fe5b906000526020600020906002020160000154611768565b909250905085820184901115610b6557610b5e84610b52888563ffffffff6120c116565b9063ffffffff6120af16565b9650610b6a565b600096505b50505050505090565b60008054819060a060020a900460ff1615610b8d57600080fd5b600160a060020a0384161515610ba257600080fd5b50600160a060020a038085166000908152600a602090815260408083203390941683529290522054610bd385612064565b610bdc84612064565b600160a060020a038416600090815260016020526040902054610c05908463ffffffff6120c116565b600160a060020a038086166000908152600160205260408082209390935590871681522054610c3a908463ffffffff6120af16565b600160a060020a038616600090815260016020526040902055610c63818463ffffffff6120af16565b600160a060020a038087166000818152600a6020908152604080832033861684529091529081902093909355908616916000805160206122028339815191529086905190815260200160405180910390a3506001949350505050565b60005433600160a060020a03908116911614610cda57600080fd5b6a0324ae69ab7120970000008111610cf157600080fd5b600655565b6001602081905260009182526040909120805491810154600282015460039092015490919084565b600160a060020a0381166000908152600b602052604081205481908190819060ff161515610e5957600c54600160a060020a03166327e235e38660006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b1515610d9f57600080fd5b6102c65a03f11515610db057600080fd5b50505060405180519060200180519060200180519060200180519397509195509350909150608090506040519081016040908152858252602080830186905281830185905260608301849052600160a060020a0388166000908152600190915220815181556020820151816001015560408201518160020155606082015160039091015550600160a060020a0385166000908152600b60205260409020805460ff191660011790555b5050505050565b60075481565b601281565b60005460a060020a900460ff1615610e8257600080fd5b60095433600160a060020a03908116911614610e9d57600080fd5b610ea681612064565b50565b6003545b90565b60005433600160a060020a03908116911614610ecb57600080fd5b60005460a060020a900460ff161515610ee357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60125460135482565b60005460a060020a900460ff1681565b600160a060020a033381166000908152600a6020908152604080832093861683529290529081205480831115610fa557600160a060020a033381166000908152600a60209081526040808320938816835292905290812055610fdc565b610fb5818463ffffffff6120af16565b600160a060020a033381166000908152600a60209081526040808320938916835292905220555b600160a060020a033381166000818152600a602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b60008060006110528461105d565b509095945050505050565b600080600080600080600080600080611074612119565b600160a060020a038c166000908152600b602052604090205460ff16156110fe57600160a060020a038c1660009081526001602052604090819020906080905190810160409081528254825260018301546020830152600283015490820152600390910154606082015290508051945080602001519350806040015192508060600151915061118f565b600c54600160a060020a03166327e235e38d60006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151561115757600080fd5b6102c65a03f1151561116857600080fd5b50505060405180519060200180519060200180519060200180519398509196509450909250505b61119a844287611768565b600354919c509a509298508892831080156111b457508115155b1561123757600380546112049167016345785d8a0000916111f8918691889081106111db57fe5b60009182526020909120600290910201549063ffffffff6120d716565b9063ffffffff61210216565b955061123160038481548110151561121857fe5b9060005260206000209060020201600101544288611768565b90985096505b6112478b8963ffffffff6120c116565b9a506112598a8863ffffffff6120c116565b6003549b9d909c509950505050505050505050565b60028054829081106108b557fe5b601154600160a060020a031681565b60005433600160a060020a039081169116146112a657600080fd5b60005460a060020a900460ff16156112bd57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60105490565b60005433600160a060020a0390811691161461133057600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089f5780601f106108745761010080835404028352916020019161089f565b60065481565b67016345785d8a000081565b6000805460a060020a900460ff161561140357600080fd5b600160a060020a038316151561141857600080fd5b61142133612064565b61142a83612064565b600160a060020a033316600090815260016020526040902054611453908363ffffffff6120af16565b600160a060020a033381166000908152600160205260408082209390935590851681522054611488908363ffffffff6120c116565b600160a060020a0380851660008181526001602052604090819020939093559133909116906000805160206122028339815191529085905190815260200160405180910390a350600192915050565b600854600160a060020a031681565b60115460009033600160a060020a0390811691161461150457600080fd5b6000821161151157600080fd5b600d546000901161152157600080fd5b5060005b8181101561164a57600d805460001901908190556010805461156e9290811061154a57fe5b906000526020600020906002020160010154426010600d54815481101515610b1757fe5b6010600d5481548110151561157f57fe5b60009182526020909120600e929092556002020155600f54601080546115ec92600019019081106115ac57fe5b9060005260206000209060020201600001546010600d548154811015156115cf57fe5b60009182526020909120600290910201549063ffffffff6120c116565b6010600d548154811015156115fd57fe5b6000918252602090912060029091020155600d5460108054429290811061162057fe5b6000918252602090912060016002909202010155600d5415156116425761164a565b600101611525565b600d541561168c577fc94f798321235fa17dd9603fb88bb2634abbb740fede709d211ad44ba8c63870600d5460405190815260200160405180910390a1611706565b7fcadcbce497c428a85330c77795a87b336eeb93bc01259e2fea1cd998196f935060405160405180910390a17f2a0213f6a9134dfad8fe565f70d7764a32fe66ccfa431bd1f981d6a4db282680600e544260405191825260208201526040908101905180910390a16010805461170491600391612142565b505b5050565b60108054829081106108b557fe5b60005433600160a060020a0390811691161461173357600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025490565b6008546000908190600160a060020a031663d0699c98868686856040516040015260405160e060020a63ffffffff86160281526004810193909352602483019190915260448201526064016040805180830381600087803b15156117cb57600080fd5b6102c65a03f115156117dc57600080fd5b5050506040518051906020018051905091509150935093915050565b60006118026121a2565b60115433600160a060020a0390811691161461181d57600080fd5b600d541561182a57600080fd5b6006546007548593501061183d57600080fd5b601054600354111561185b576003805461185991601091612142565b505b600654826007540111156118b25760075460065461187e9163ffffffff6120af16565b91506040517f6d617820616c6c6f632072656163686564000000000000000000000000000000815260110160405180910390a05b6007546118c5908363ffffffff6120c116565b6007557fde11823ad4c1d9d7ef9f5a42932881fa9a2b92c55d0fa17bf38aa270d915f815824260405191825260208201526040908101905180910390a1818152426020820152600280546001810161191d83826121b9565b6000928352602090922083916002020181518155602082015181600101555050506010805480600101828161195291906121b9565b6000928352602090922083916002020181518155602082015160019091015550600f5560105460029010156119fe577fcadcbce497c428a85330c77795a87b336eeb93bc01259e2fea1cd998196f935060405160405180910390a1601080546119bd91600391612142565b507f2a0213f6a9134dfad8fe565f70d7764a32fe66ccfa431bd1f981d6a4db28268060004260405191825260208201526040908101905180910390a1611b97565b60105460011901600d555b600d5460009010611add57611a286010600d5481548110151561154a57fe5b6010600d54815481101515611a3957fe5b60009182526020909120600e929092556002020155600f5460108054611a6692600019019081106115ac57fe5b6010600d54815481101515611a7757fe5b6000918252602090912060029091020155600d54601080544292908110611a9a57fe5b6000918252602090912060016002909202010155600d541580611ac45750601054600d5490849003145b15611ace57611add565b600d8054600019019055611a09565b600d5415611b1f577fc94f798321235fa17dd9603fb88bb2634abbb740fede709d211ad44ba8c63870600d5460405190815260200160405180910390a1611b97565b7fcadcbce497c428a85330c77795a87b336eeb93bc01259e2fea1cd998196f935060405160405180910390a17f2a0213f6a9134dfad8fe565f70d7764a32fe66ccfa431bd1f981d6a4db282680600e544260405191825260208201526040908101905180910390a160108054610e5991600391612142565b50505050565b600160a060020a033381166000908152600a60209081526040808320938616835292905290812054611bd5908363ffffffff6120c116565b600160a060020a033381166000818152600a602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600e5481565b600160a060020a039182166000908152600a6020908152604080832093909416825291909152205490565b60145460155482565b60005460a060020a900460ff1615611c9257600080fd5b60095433600160a060020a03908116911614611cad57600080fd5b600160a060020a03909116600090815260016020526040902060030155565b600954600160a060020a031681565b60115460009033600160a060020a03908116911614611cf957600080fd5b60115433600160a060020a03908116911614611d1457600080fd5b611d1d83612064565b600160a060020a038316600090815260016020526040902054611d46908363ffffffff6120c116565b600160a060020a03841660009081526001602052604090819020919091557fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a8908490849051600160a060020a03909216825260208201526040908101905180910390a182600160a060020a031660006000805160206122028339815191528460405190815260200160405180910390a3601354601254611de891904290611768565b60128290559150611dff908363ffffffff6120c116565b60125550504260135550565b60005433600160a060020a03908116911614611e2657600080fd5b600160a060020a0381161515611e3b57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600d5481565b60008054819033600160a060020a03908116911614611eca57600080fd5b339150600160a060020a0383161515611f1f5781600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501515611f1a57600080fd5b611704565b82600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611f7657600080fd5b6102c65a03f11515611f8757600080fd5b5050506040518051915050600160a060020a03831663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611fef57600080fd5b6102c65a03f1151561200057600080fd5b50505060405180519050151561170457600080fd5b60005433600160a060020a0390811691161461203057600080fd5b6011805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600881565b600080600061207284610d1e565b61207b8461105d565b600160a060020a03909616600090815260016020819052604090912060028101979097559186555042940193909355505050565b6000828211156120bb57fe5b50900390565b6000828201838110156120d057fe5b9392505050565b6000808315156120ea576000915061103d565b508282028284828115156120fa57fe5b04146120d057fe5b600080828481151561211057fe5b04949350505050565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b8280548282559060005260206000209060020281019282156121925760005260206000209160020282015b828111156121925782548255600180840154908301556002928301929091019061216d565b5061219e9291506121e1565b5090565b604080519081016040526000808252602082015290565b8154818355818115116117045760020281600202836000526020600020918201910161170491905b610ead91905b8082111561219e57600080825560018201556002016121e75600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820e73ca8a5b339e27414e8f0263555347fb1c452f32550226b36f547e4d2635cba0029000000000000000000000000d56ed0dae33a546d063e60a214dd76538a1ba5ab0000000000000000000000007585f835ae2d522722d2684323a0ba83401f32f5
Deployed Bytecode
0x60606040526004361061022c5763ffffffff60e060020a60003504166306fdde0381146102315780630901a3f1146102bb578063095ea7b3146102e95780630d1118ce1461031f57806318160ddd1461034357806323b872dd1461036857806324da48a31461039057806327e235e3146103a65780632988e36b146103f05780632a774c271461040f578063313ce5671461042257806336b69367146104355780633e7d1acc146104545780633f4ba83a146104675780635bbfd0d71461047a5780635c975abb1461048d57806366188463146104a057806370a08231146104c2578063735d3e81146104e157806378388eb6146105245780637fc29fc91461053a5780638456cb591461056957806385a735dd1461057c5780638c66d04f1461058f5780638da5cb5b146105ae57806395d89b41146105c15780639b3ba79f146105d45780639b9073e4146105e7578063a9059cbb146105fa578063b00eb9fe1461061c578063b64e8ad81461062f578063c074304414610645578063c74a96eb1461065b578063cb1a32a41461067a578063d0699c981461068d578063d6edb047146106a9578063d73dd623146106c2578063d8aba1c6146106e4578063dd62ed3e146106f7578063e267761f1461071c578063e5a7b51f1461072f578063ed39eab314610751578063f0dda65c14610764578063f2fde38b14610786578063f764e8a0146107a5578063fc772c8b146107b8578063fca3b5aa146107d7578063ffc0d035146107f6575b600080fd5b341561023c57600080fd5b610244610809565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610280578082015183820152602001610268565b50505050905090810190601f1680156102ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102c657600080fd5b6102d16004356108a7565b60405191825260208201526040908101905180910390f35b34156102f457600080fd5b61030b600160a060020a03600435166024356108d3565b604051901515815260200160405180910390f35b341561032a57600080fd5b610341600160a060020a036004351660243561098f565b005b341561034e57600080fd5b610356610aa4565b60405190815260200160405180910390f35b341561037357600080fd5b61030b600160a060020a0360043581169060243516604435610b73565b341561039b57600080fd5b610341600435610cbf565b34156103b157600080fd5b6103c5600160a060020a0360043516610cf6565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34156103fb57600080fd5b610341600160a060020a0360043516610d1e565b341561041a57600080fd5b610356610e60565b341561042d57600080fd5b610356610e66565b341561044057600080fd5b610341600160a060020a0360043516610e6b565b341561045f57600080fd5b610356610ea9565b341561047257600080fd5b610341610eb0565b341561048557600080fd5b6102d1610f2f565b341561049857600080fd5b61030b610f38565b34156104ab57600080fd5b61030b600160a060020a0360043516602435610f48565b34156104cd57600080fd5b610356600160a060020a0360043516611044565b34156104ec57600080fd5b610500600160a060020a036004351661105d565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561052f57600080fd5b6102d160043561126e565b341561054557600080fd5b61054d61127c565b604051600160a060020a03909116815260200160405180910390f35b341561057457600080fd5b61034161128b565b341561058757600080fd5b61035661130f565b341561059a57600080fd5b610341600160a060020a0360043516611315565b34156105b957600080fd5b61054d61135f565b34156105cc57600080fd5b61024461136e565b34156105df57600080fd5b6103566113d9565b34156105f257600080fd5b6103566113df565b341561060557600080fd5b61030b600160a060020a03600435166024356113eb565b341561062757600080fd5b61054d6114d7565b341561063a57600080fd5b6103416004356114e6565b341561065057600080fd5b6102d160043561170a565b341561066657600080fd5b610341600160a060020a0360043516611718565b341561068557600080fd5b610356611762565b341561069857600080fd5b6102d1600435602435604435611768565b34156106b457600080fd5b6103416004356024356117f8565b34156106cd57600080fd5b61030b600160a060020a0360043516602435611b9d565b34156106ef57600080fd5b610356611c41565b341561070257600080fd5b610356600160a060020a0360043581169060243516611c47565b341561072757600080fd5b6102d1611c72565b341561073a57600080fd5b610341600160a060020a0360043516602435611c7b565b341561075c57600080fd5b61054d611ccc565b341561076f57600080fd5b610341600160a060020a0360043516602435611cdb565b341561079157600080fd5b610341600160a060020a0360043516611e0b565b34156107b057600080fd5b610356611ea6565b34156107c357600080fd5b610341600160a060020a0360043516611eac565b34156107e257600080fd5b610341600160a060020a0360043516612015565b341561080157600080fd5b61035661205f565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089f5780601f106108745761010080835404028352916020019161089f565b820191906000526020600020905b81548152906001019060200180831161088257829003601f168201915b505050505081565b60038054829081106108b557fe5b60009182526020909120600290910201805460019091015490915082565b6000805460a060020a900460ff16156108eb57600080fd5b81158061091b5750600160a060020a033381166000908152600a6020908152604080832093871683529290522054155b151561092657600080fd5b600160a060020a033381166000818152600a6020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60115460009033600160a060020a039081169116146109ad57600080fd5b6109b683612064565b600160a060020a0383166000908152600160205260409020546109df908363ffffffff6120af16565b600160a060020a03841660009081526001602052604090819020919091557f1af5163f80e79b5e554f61e1d052084d3a3fe1166e42a265798c4e2ddce8ffa2908490849051600160a060020a03909216825260208201526040908101905180910390a1600083600160a060020a03166000805160206122028339815191528460405190815260200160405180910390a3601554601454610a8191904290611768565b6014829055426015559150610a9c908363ffffffff6120c116565b601455505050565b6000806000806000806000610ac460126001015442601260000154611768565b601554601454929850909650610adb914290611768565b60038054929650909450610b2e916000908110610af457fe5b9060005260206000209060020201600101544260036000815481101515610b1757fe5b906000526020600020906002020160000154611768565b909250905085820184901115610b6557610b5e84610b52888563ffffffff6120c116565b9063ffffffff6120af16565b9650610b6a565b600096505b50505050505090565b60008054819060a060020a900460ff1615610b8d57600080fd5b600160a060020a0384161515610ba257600080fd5b50600160a060020a038085166000908152600a602090815260408083203390941683529290522054610bd385612064565b610bdc84612064565b600160a060020a038416600090815260016020526040902054610c05908463ffffffff6120c116565b600160a060020a038086166000908152600160205260408082209390935590871681522054610c3a908463ffffffff6120af16565b600160a060020a038616600090815260016020526040902055610c63818463ffffffff6120af16565b600160a060020a038087166000818152600a6020908152604080832033861684529091529081902093909355908616916000805160206122028339815191529086905190815260200160405180910390a3506001949350505050565b60005433600160a060020a03908116911614610cda57600080fd5b6a0324ae69ab7120970000008111610cf157600080fd5b600655565b6001602081905260009182526040909120805491810154600282015460039092015490919084565b600160a060020a0381166000908152600b602052604081205481908190819060ff161515610e5957600c54600160a060020a03166327e235e38660006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b1515610d9f57600080fd5b6102c65a03f11515610db057600080fd5b50505060405180519060200180519060200180519060200180519397509195509350909150608090506040519081016040908152858252602080830186905281830185905260608301849052600160a060020a0388166000908152600190915220815181556020820151816001015560408201518160020155606082015160039091015550600160a060020a0385166000908152600b60205260409020805460ff191660011790555b5050505050565b60075481565b601281565b60005460a060020a900460ff1615610e8257600080fd5b60095433600160a060020a03908116911614610e9d57600080fd5b610ea681612064565b50565b6003545b90565b60005433600160a060020a03908116911614610ecb57600080fd5b60005460a060020a900460ff161515610ee357600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60125460135482565b60005460a060020a900460ff1681565b600160a060020a033381166000908152600a6020908152604080832093861683529290529081205480831115610fa557600160a060020a033381166000908152600a60209081526040808320938816835292905290812055610fdc565b610fb5818463ffffffff6120af16565b600160a060020a033381166000908152600a60209081526040808320938916835292905220555b600160a060020a033381166000818152600a602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b60008060006110528461105d565b509095945050505050565b600080600080600080600080600080611074612119565b600160a060020a038c166000908152600b602052604090205460ff16156110fe57600160a060020a038c1660009081526001602052604090819020906080905190810160409081528254825260018301546020830152600283015490820152600390910154606082015290508051945080602001519350806040015192508060600151915061118f565b600c54600160a060020a03166327e235e38d60006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151561115757600080fd5b6102c65a03f1151561116857600080fd5b50505060405180519060200180519060200180519060200180519398509196509450909250505b61119a844287611768565b600354919c509a509298508892831080156111b457508115155b1561123757600380546112049167016345785d8a0000916111f8918691889081106111db57fe5b60009182526020909120600290910201549063ffffffff6120d716565b9063ffffffff61210216565b955061123160038481548110151561121857fe5b9060005260206000209060020201600101544288611768565b90985096505b6112478b8963ffffffff6120c116565b9a506112598a8863ffffffff6120c116565b6003549b9d909c509950505050505050505050565b60028054829081106108b557fe5b601154600160a060020a031681565b60005433600160a060020a039081169116146112a657600080fd5b60005460a060020a900460ff16156112bd57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60105490565b60005433600160a060020a0390811691161461133057600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089f5780601f106108745761010080835404028352916020019161089f565b60065481565b67016345785d8a000081565b6000805460a060020a900460ff161561140357600080fd5b600160a060020a038316151561141857600080fd5b61142133612064565b61142a83612064565b600160a060020a033316600090815260016020526040902054611453908363ffffffff6120af16565b600160a060020a033381166000908152600160205260408082209390935590851681522054611488908363ffffffff6120c116565b600160a060020a0380851660008181526001602052604090819020939093559133909116906000805160206122028339815191529085905190815260200160405180910390a350600192915050565b600854600160a060020a031681565b60115460009033600160a060020a0390811691161461150457600080fd5b6000821161151157600080fd5b600d546000901161152157600080fd5b5060005b8181101561164a57600d805460001901908190556010805461156e9290811061154a57fe5b906000526020600020906002020160010154426010600d54815481101515610b1757fe5b6010600d5481548110151561157f57fe5b60009182526020909120600e929092556002020155600f54601080546115ec92600019019081106115ac57fe5b9060005260206000209060020201600001546010600d548154811015156115cf57fe5b60009182526020909120600290910201549063ffffffff6120c116565b6010600d548154811015156115fd57fe5b6000918252602090912060029091020155600d5460108054429290811061162057fe5b6000918252602090912060016002909202010155600d5415156116425761164a565b600101611525565b600d541561168c577fc94f798321235fa17dd9603fb88bb2634abbb740fede709d211ad44ba8c63870600d5460405190815260200160405180910390a1611706565b7fcadcbce497c428a85330c77795a87b336eeb93bc01259e2fea1cd998196f935060405160405180910390a17f2a0213f6a9134dfad8fe565f70d7764a32fe66ccfa431bd1f981d6a4db282680600e544260405191825260208201526040908101905180910390a16010805461170491600391612142565b505b5050565b60108054829081106108b557fe5b60005433600160a060020a0390811691161461173357600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025490565b6008546000908190600160a060020a031663d0699c98868686856040516040015260405160e060020a63ffffffff86160281526004810193909352602483019190915260448201526064016040805180830381600087803b15156117cb57600080fd5b6102c65a03f115156117dc57600080fd5b5050506040518051906020018051905091509150935093915050565b60006118026121a2565b60115433600160a060020a0390811691161461181d57600080fd5b600d541561182a57600080fd5b6006546007548593501061183d57600080fd5b601054600354111561185b576003805461185991601091612142565b505b600654826007540111156118b25760075460065461187e9163ffffffff6120af16565b91506040517f6d617820616c6c6f632072656163686564000000000000000000000000000000815260110160405180910390a05b6007546118c5908363ffffffff6120c116565b6007557fde11823ad4c1d9d7ef9f5a42932881fa9a2b92c55d0fa17bf38aa270d915f815824260405191825260208201526040908101905180910390a1818152426020820152600280546001810161191d83826121b9565b6000928352602090922083916002020181518155602082015181600101555050506010805480600101828161195291906121b9565b6000928352602090922083916002020181518155602082015160019091015550600f5560105460029010156119fe577fcadcbce497c428a85330c77795a87b336eeb93bc01259e2fea1cd998196f935060405160405180910390a1601080546119bd91600391612142565b507f2a0213f6a9134dfad8fe565f70d7764a32fe66ccfa431bd1f981d6a4db28268060004260405191825260208201526040908101905180910390a1611b97565b60105460011901600d555b600d5460009010611add57611a286010600d5481548110151561154a57fe5b6010600d54815481101515611a3957fe5b60009182526020909120600e929092556002020155600f5460108054611a6692600019019081106115ac57fe5b6010600d54815481101515611a7757fe5b6000918252602090912060029091020155600d54601080544292908110611a9a57fe5b6000918252602090912060016002909202010155600d541580611ac45750601054600d5490849003145b15611ace57611add565b600d8054600019019055611a09565b600d5415611b1f577fc94f798321235fa17dd9603fb88bb2634abbb740fede709d211ad44ba8c63870600d5460405190815260200160405180910390a1611b97565b7fcadcbce497c428a85330c77795a87b336eeb93bc01259e2fea1cd998196f935060405160405180910390a17f2a0213f6a9134dfad8fe565f70d7764a32fe66ccfa431bd1f981d6a4db282680600e544260405191825260208201526040908101905180910390a160108054610e5991600391612142565b50505050565b600160a060020a033381166000908152600a60209081526040808320938616835292905290812054611bd5908363ffffffff6120c116565b600160a060020a033381166000818152600a602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600e5481565b600160a060020a039182166000908152600a6020908152604080832093909416825291909152205490565b60145460155482565b60005460a060020a900460ff1615611c9257600080fd5b60095433600160a060020a03908116911614611cad57600080fd5b600160a060020a03909116600090815260016020526040902060030155565b600954600160a060020a031681565b60115460009033600160a060020a03908116911614611cf957600080fd5b60115433600160a060020a03908116911614611d1457600080fd5b611d1d83612064565b600160a060020a038316600090815260016020526040902054611d46908363ffffffff6120c116565b600160a060020a03841660009081526001602052604090819020919091557fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a8908490849051600160a060020a03909216825260208201526040908101905180910390a182600160a060020a031660006000805160206122028339815191528460405190815260200160405180910390a3601354601254611de891904290611768565b60128290559150611dff908363ffffffff6120c116565b60125550504260135550565b60005433600160a060020a03908116911614611e2657600080fd5b600160a060020a0381161515611e3b57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600d5481565b60008054819033600160a060020a03908116911614611eca57600080fd5b339150600160a060020a0383161515611f1f5781600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501515611f1a57600080fd5b611704565b82600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611f7657600080fd5b6102c65a03f11515611f8757600080fd5b5050506040518051915050600160a060020a03831663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611fef57600080fd5b6102c65a03f1151561200057600080fd5b50505060405180519050151561170457600080fd5b60005433600160a060020a0390811691161461203057600080fd5b6011805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600881565b600080600061207284610d1e565b61207b8461105d565b600160a060020a03909616600090815260016020819052604090912060028101979097559186555042940193909355505050565b6000828211156120bb57fe5b50900390565b6000828201838110156120d057fe5b9392505050565b6000808315156120ea576000915061103d565b508282028284828115156120fa57fe5b04146120d057fe5b600080828481151561211057fe5b04949350505050565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b8280548282559060005260206000209060020281019282156121925760005260206000209160020282015b828111156121925782548255600180840154908301556002928301929091019061216d565b5061219e9291506121e1565b5090565b604080519081016040526000808252602082015290565b8154818355818115116117045760020281600202836000526020600020918201910161170491905b610ead91905b8082111561219e57600080825560018201556002016121e75600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820e73ca8a5b339e27414e8f0263555347fb1c452f32550226b36f547e4d2635cba0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d56ed0dae33a546d063e60a214dd76538a1ba5ab0000000000000000000000007585f835ae2d522722d2684323a0ba83401f32f5
-----Decoded View---------------
Arg [0] : feeCalc (address): 0xd56ed0DAE33A546D063e60a214Dd76538a1ba5AB
Arg [1] : _oldToken (address): 0x7585F835ae2d522722d2684323a0ba83401f32f5
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d56ed0dae33a546d063e60a214dd76538a1ba5ab
Arg [1] : 0000000000000000000000007585f835ae2d522722d2684323a0ba83401f32f5
Swarm Source
bzzr://e73ca8a5b339e27414e8f0263555347fb1c452f32550226b36f547e4d2635cba
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 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.