Source Code
Latest 25 from a total of 148 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Unlock Tokens | 12166602 | 1805 days ago | IN | 0 ETH | 0.0080875 | ||||
| Unlock Tokens | 12052750 | 1822 days ago | IN | 0 ETH | 0.01318262 | ||||
| Add Holder | 7906090 | 2472 days ago | IN | 0 ETH | 0.00021328 | ||||
| Unlock Tokens | 7481308 | 2538 days ago | IN | 0 ETH | 0.003103 | ||||
| Add Holder | 7393646 | 2552 days ago | IN | 0 ETH | 0.00008531 | ||||
| Add Holder | 7393626 | 2552 days ago | IN | 0 ETH | 0.00021328 | ||||
| Add Holder | 7393626 | 2552 days ago | IN | 0 ETH | 0.00008531 | ||||
| Add Holder | 7393570 | 2552 days ago | IN | 0 ETH | 0.00012796 | ||||
| Add Holder | 7393543 | 2552 days ago | IN | 0 ETH | 0.00008531 | ||||
| Add Holder | 7248992 | 2577 days ago | IN | 0 ETH | 0.0003839 | ||||
| Add Holder | 7236886 | 2580 days ago | IN | 0 ETH | 0.00117962 | ||||
| Add Holder | 7236884 | 2580 days ago | IN | 0 ETH | 0.00117962 | ||||
| Add Holder | 7236884 | 2580 days ago | IN | 0 ETH | 0.00117962 | ||||
| Add Holder | 7236882 | 2580 days ago | IN | 0 ETH | 0.00042208 | ||||
| Add Holder | 7236882 | 2580 days ago | IN | 0 ETH | 0.00042208 | ||||
| Add Holder | 7236877 | 2580 days ago | IN | 0 ETH | 0.00063312 | ||||
| Add Holder | 7236875 | 2580 days ago | IN | 0 ETH | 0.00042208 | ||||
| Add Holder | 7236867 | 2580 days ago | IN | 0 ETH | 0.00042208 | ||||
| Add Holder | 7236865 | 2580 days ago | IN | 0 ETH | 0.00042208 | ||||
| Add Holder | 7236864 | 2580 days ago | IN | 0 ETH | 0.00042208 | ||||
| Add Holder | 7236810 | 2580 days ago | IN | 0 ETH | 0.00083746 | ||||
| Add Holder | 7236808 | 2580 days ago | IN | 0 ETH | 0.00075974 | ||||
| Add Holder | 7236808 | 2580 days ago | IN | 0 ETH | 0.00075974 | ||||
| Add Holder | 7236802 | 2580 days ago | IN | 0 ETH | 0.00075974 | ||||
| Add Holder | 7236797 | 2580 days ago | IN | 0 ETH | 0.00075974 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
HoldPresaleContract
Compiler Version
v0.4.15+commit.bbb8e64f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2017-10-18
*/
pragma solidity ^0.4.15;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
function mul(uint256 a, uint256 b) internal constant returns (uint256) {
uint256 c = a * b;
assert(a == 0 || c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal constant 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 constant returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal constant 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) constant returns (uint256);
function transfer(address to, uint256 value) returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
/**
* @title Basic token
* @dev Basic version of StandardToken, with no allowances.
*/
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) returns (bool) {
require(_to != address(0));
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _owner) constant returns (uint256 balance) {
return balances[_owner];
}
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) constant returns (uint256);
function transferFrom(address from, address to, uint256 value) returns (bool);
function approve(address spender, uint256 value) returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @title Standard ERC20 token
*
* @dev Implementation of the basic standard token.
* @dev https://github.com/ethereum/EIPs/issues/20
* @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
*/
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) allowed;
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
*/
function transferFrom(address _from, address _to, uint256 _value) returns (bool) {
require(_to != address(0));
var _allowance = allowed[_from][msg.sender];
// Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
// require (_value <= _allowance);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = _allowance.sub(_value);
Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
*/
function approve(address _spender, uint256 _value) returns (bool) {
// To change the approve amount you first have to reduce the addresses`
// allowance to zero by calling `approve(_spender, 0)` if it is not
// already 0 to mitigate the race condition described here:
// https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
require((_value == 0) || (allowed[msg.sender][_spender] == 0));
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
return allowed[_owner][_spender];
}
/**
* 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)
returns (bool success) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
function decreaseApproval (address _spender, uint _subtractedValue)
returns (bool success) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
/**
* @title SimpleToken
* @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator.
* Note they can later distribute these tokens as they wish using `transfer` and other
* `StandardToken` functions.
*/
contract OpportyToken is StandardToken {
string public constant name = "OpportyToken";
string public constant symbol = "OPP";
uint8 public constant decimals = 18;
uint256 public constant INITIAL_SUPPLY = 1000000000 * (10 ** uint256(decimals));
/**
* @dev Contructor that gives msg.sender all of existing tokens.
*/
function OpportyToken() {
totalSupply = INITIAL_SUPPLY;
balances[msg.sender] = INITIAL_SUPPLY;
}
}
/**
* @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() {
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) onlyOwner public {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract HoldPresaleContract is Ownable {
using SafeMath for uint256;
// Addresses and contracts
OpportyToken public OppToken;
address private presaleCont;
struct Holder {
bool isActive;
uint tokens;
uint8 holdPeriod;
uint holdPeriodTimestamp;
bool withdrawed;
}
mapping(address => Holder) public holderList;
mapping(uint => address) private holderIndexes;
mapping (uint => address) private assetOwners;
mapping (address => uint) private assetOwnersIndex;
uint public assetOwnersIndexes;
uint private holderIndex;
event TokensTransfered(address contributor , uint amount);
event Hold(address sender, address contributor, uint amount, uint8 holdPeriod);
modifier onlyAssetsOwners() {
require(assetOwnersIndex[msg.sender] > 0);
_;
}
/* constructor */
function HoldPresaleContract(address _OppToken) {
OppToken = OpportyToken(_OppToken);
}
function setPresaleCont(address pres) public onlyOwner
{
presaleCont = pres;
}
function addHolder(address holder, uint tokens, uint8 timed, uint timest) onlyAssetsOwners external {
if (holderList[holder].isActive == false) {
holderList[holder].isActive = true;
holderList[holder].tokens = tokens;
holderList[holder].holdPeriod = timed;
holderList[holder].holdPeriodTimestamp = timest;
holderIndexes[holderIndex] = holder;
holderIndex++;
} else {
holderList[holder].tokens += tokens;
holderList[holder].holdPeriod = timed;
holderList[holder].holdPeriodTimestamp = timest;
}
Hold(msg.sender, holder, tokens, timed);
}
function getBalance() constant returns (uint) {
return OppToken.balanceOf(this);
}
function unlockTokens() external {
address contributor = msg.sender;
if (holderList[contributor].isActive && !holderList[contributor].withdrawed) {
if (now >= holderList[contributor].holdPeriodTimestamp) {
if ( OppToken.transfer( msg.sender, holderList[contributor].tokens ) ) {
holderList[contributor].withdrawed = true;
TokensTransfered(contributor, holderList[contributor].tokens);
}
} else {
revert();
}
} else {
revert();
}
}
function addAssetsOwner(address _owner) public onlyOwner {
assetOwnersIndexes++;
assetOwners[assetOwnersIndexes] = _owner;
assetOwnersIndex[_owner] = assetOwnersIndexes;
}
function removeAssetsOwner(address _owner) public onlyOwner {
uint index = assetOwnersIndex[_owner];
delete assetOwnersIndex[_owner];
delete assetOwners[index];
assetOwnersIndexes--;
}
function getAssetsOwners(uint _index) onlyOwner public constant returns (address) {
return assetOwners[_index];
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"holderList","outputs":[{"name":"isActive","type":"bool"},{"name":"tokens","type":"uint256"},{"name":"holdPeriod","type":"uint8"},{"name":"holdPeriodTimestamp","type":"uint256"},{"name":"withdrawed","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"pres","type":"address"}],"name":"setPresaleCont","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"getAssetsOwners","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"OppToken","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"removeAssetsOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"assetOwnersIndexes","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"tokens","type":"uint256"},{"name":"timed","type":"uint8"},{"name":"timest","type":"uint256"}],"name":"addHolder","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unlockTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"addAssetsOwner","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_OppToken","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"contributor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokensTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"contributor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"holdPeriod","type":"uint8"}],"name":"Hold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
6060604052341561000f57600080fd5b604051602080610902833981016040528080519150505b5b60008054600160a060020a03191633600160a060020a03161790555b60018054600160a060020a031916600160a060020a0383161790555b505b610892806100706000396000f3006060604052361561009e5763ffffffff60e060020a60003504166305a955af81146100a357806312065fe0146100fd5780631df2bcbc146101225780632644f9f81461014357806328368e0f1461017557806368b2cee0146101a45780638da5cb5b146101c5578063a0c86718146101f4578063d29d503c14610219578063f2fde38b14610246578063f968f49314610267578063fb4ce0a91461027c575b600080fd5b34156100ae57600080fd5b6100c2600160a060020a036004351661029d565b6040519415158552602085019390935260ff9091166040808501919091526060840191909152901515608083015260a0909101905180910390f35b341561010857600080fd5b6101106102d4565b60405190815260200160405180910390f35b341561012d57600080fd5b610141600160a060020a036004351661034f565b005b341561014e57600080fd5b610159600435610397565b604051600160a060020a03909116815260200160405180910390f35b341561018057600080fd5b6101596103d3565b604051600160a060020a03909116815260200160405180910390f35b34156101af57600080fd5b610141600160a060020a03600435166103e2565b005b34156101d057600080fd5b610159610456565b604051600160a060020a03909116815260200160405180910390f35b34156101ff57600080fd5b610110610465565b60405190815260200160405180910390f35b341561022457600080fd5b610141600160a060020a036004351660243560ff6044351660643561046b565b005b341561025157600080fd5b610141600160a060020a03600435166105cc565b005b341561027257600080fd5b610141610665565b005b341561028757600080fd5b610141600160a060020a03600435166107f5565b005b60036020819052600091825260409091208054600182015460028301549383015460049093015460ff928316949193918316921685565b600154600090600160a060020a03166370a0823130836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561032f57600080fd5b6102c65a03f1151561034057600080fd5b50505060405180519150505b90565b60005433600160a060020a0390811691161461036a57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6000805433600160a060020a039081169116146103b357600080fd5b50600081815260056020526040902054600160a060020a03165b5b919050565b600154600160a060020a031681565b6000805433600160a060020a039081169116146103fe57600080fd5b50600160a060020a03811660009081526006602090815260408083208054908490558084526005909252909120805473ffffffffffffffffffffffffffffffffffffffff19169055600780546000190190555b5b5050565b600054600160a060020a031681565b60075481565b600160a060020a0333166000908152600660205260408120541161048e57600080fd5b600160a060020a03841660009081526003602052604090205460ff16151561052e57600160a060020a03841660008181526003602081815260408084208054600160ff19918216811783558083018b905560028301805490921660ff8b161790915593018690556008805485526004909252909220805473ffffffffffffffffffffffffffffffffffffffff191690931790925580549091019055610569565b600160a060020a03841660009081526003602081905260409091206001810180548601905560028101805460ff191660ff8616179055018190555b7fc68ad0a8abd86d7b83eaf1d0ccea7b846233e17ce28eadab92d143dec66900da33858585604051600160a060020a03948516815292909316602083015260408083019190915260ff9092166060820152608001905180910390a15b5b50505050565b60005433600160a060020a039081169116146105e757600080fd5b600160a060020a03811615156105fc57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b33600160a060020a03811660009081526003602052604090205460ff1680156106aa5750600160a060020a03811660009081526003602052604090206004015460ff16155b1561009e57600160a060020a03811660009081526003602081905260409091200154421061009e5760018054600160a060020a0383811660009081526003602052604080822090940154919092169263a9059cbb92339291516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561074a57600080fd5b6102c65a03f1151561075b57600080fd5b50505060405180519050156107dd57600160a060020a0381166000908152600360205260409081902060048101805460ff1916600190811790915501547fa267b5cf59cf96d97abf36d29c63cf7bdef867c208ca8575c47f2cafda39abc99183919051600160a060020a03909216825260208201526040908101905180910390a15b6107e7565b600080fd5b610393565b600080fd5b5b50565b60005433600160a060020a0390811691161461081057600080fd5b600780546001018082556000908152600560209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038716908117909155935493835260069091529020555b5b505600a165627a7a72305820286c772230b997b5ce3cac70ea566bb0a1aa01faaa59ccb42588ab2b1c98bda800290000000000000000000000008ef7c0cf8fe68076446803bb9035bd2a3a5e1581
Deployed Bytecode
0x6060604052361561009e5763ffffffff60e060020a60003504166305a955af81146100a357806312065fe0146100fd5780631df2bcbc146101225780632644f9f81461014357806328368e0f1461017557806368b2cee0146101a45780638da5cb5b146101c5578063a0c86718146101f4578063d29d503c14610219578063f2fde38b14610246578063f968f49314610267578063fb4ce0a91461027c575b600080fd5b34156100ae57600080fd5b6100c2600160a060020a036004351661029d565b6040519415158552602085019390935260ff9091166040808501919091526060840191909152901515608083015260a0909101905180910390f35b341561010857600080fd5b6101106102d4565b60405190815260200160405180910390f35b341561012d57600080fd5b610141600160a060020a036004351661034f565b005b341561014e57600080fd5b610159600435610397565b604051600160a060020a03909116815260200160405180910390f35b341561018057600080fd5b6101596103d3565b604051600160a060020a03909116815260200160405180910390f35b34156101af57600080fd5b610141600160a060020a03600435166103e2565b005b34156101d057600080fd5b610159610456565b604051600160a060020a03909116815260200160405180910390f35b34156101ff57600080fd5b610110610465565b60405190815260200160405180910390f35b341561022457600080fd5b610141600160a060020a036004351660243560ff6044351660643561046b565b005b341561025157600080fd5b610141600160a060020a03600435166105cc565b005b341561027257600080fd5b610141610665565b005b341561028757600080fd5b610141600160a060020a03600435166107f5565b005b60036020819052600091825260409091208054600182015460028301549383015460049093015460ff928316949193918316921685565b600154600090600160a060020a03166370a0823130836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561032f57600080fd5b6102c65a03f1151561034057600080fd5b50505060405180519150505b90565b60005433600160a060020a0390811691161461036a57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6000805433600160a060020a039081169116146103b357600080fd5b50600081815260056020526040902054600160a060020a03165b5b919050565b600154600160a060020a031681565b6000805433600160a060020a039081169116146103fe57600080fd5b50600160a060020a03811660009081526006602090815260408083208054908490558084526005909252909120805473ffffffffffffffffffffffffffffffffffffffff19169055600780546000190190555b5b5050565b600054600160a060020a031681565b60075481565b600160a060020a0333166000908152600660205260408120541161048e57600080fd5b600160a060020a03841660009081526003602052604090205460ff16151561052e57600160a060020a03841660008181526003602081815260408084208054600160ff19918216811783558083018b905560028301805490921660ff8b161790915593018690556008805485526004909252909220805473ffffffffffffffffffffffffffffffffffffffff191690931790925580549091019055610569565b600160a060020a03841660009081526003602081905260409091206001810180548601905560028101805460ff191660ff8616179055018190555b7fc68ad0a8abd86d7b83eaf1d0ccea7b846233e17ce28eadab92d143dec66900da33858585604051600160a060020a03948516815292909316602083015260408083019190915260ff9092166060820152608001905180910390a15b5b50505050565b60005433600160a060020a039081169116146105e757600080fd5b600160a060020a03811615156105fc57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b33600160a060020a03811660009081526003602052604090205460ff1680156106aa5750600160a060020a03811660009081526003602052604090206004015460ff16155b1561009e57600160a060020a03811660009081526003602081905260409091200154421061009e5760018054600160a060020a0383811660009081526003602052604080822090940154919092169263a9059cbb92339291516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561074a57600080fd5b6102c65a03f1151561075b57600080fd5b50505060405180519050156107dd57600160a060020a0381166000908152600360205260409081902060048101805460ff1916600190811790915501547fa267b5cf59cf96d97abf36d29c63cf7bdef867c208ca8575c47f2cafda39abc99183919051600160a060020a03909216825260208201526040908101905180910390a15b6107e7565b600080fd5b610393565b600080fd5b5b50565b60005433600160a060020a0390811691161461081057600080fd5b600780546001018082556000908152600560209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038716908117909155935493835260069091529020555b5b505600a165627a7a72305820286c772230b997b5ce3cac70ea566bb0a1aa01faaa59ccb42588ab2b1c98bda80029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008ef7c0cf8fe68076446803bb9035bd2a3a5e1581
-----Decoded View---------------
Arg [0] : _OppToken (address): 0x8EF7c0Cf8Fe68076446803Bb9035bd2A3A5E1581
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008ef7c0cf8fe68076446803bb9035bd2a3a5e1581
Swarm Source
bzzr://286c772230b997b5ce3cac70ea566bb0a1aa01faaa59ccb42588ab2b1c98bda8
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.