Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 8 from a total of 8 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unpause Contract | 4734037 | 2518 days ago | IN | 0 ETH | 0.0034503 | ||||
Set Crydr Contro... | 4734025 | 2518 days ago | IN | 0 ETH | 0.0032168 | ||||
Enable Manager | 4733976 | 2518 days ago | IN | 0 ETH | 0.0045293 | ||||
Grant Manager Pe... | 4733973 | 2518 days ago | IN | 0 ETH | 0.0048524 | ||||
Enable Manager | 4733970 | 2518 days ago | IN | 0 ETH | 0.0045293 | ||||
Grant Manager Pe... | 4733968 | 2518 days ago | IN | 0 ETH | 0.0048236 | ||||
Grant Manager Pe... | 4733967 | 2518 days ago | IN | 0 ETH | 0.0048092 | ||||
0x60606040 | 4733960 | 2518 days ago | IN | 0 ETH | 0.4257641 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xD7f21117...f71d72C9C The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
JNTStorage
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-07 */ /* Author: Victor Mezrin [email protected] */ pragma solidity ^0.4.18; /** * @title SafeMathInterface * @dev Math operations with safety checks that throw on error */ contract SafeMathInterface { function safeMul(uint256 a, uint256 b) internal pure returns (uint256); function safeDiv(uint256 a, uint256 b) internal pure returns (uint256); function safeSub(uint256 a, uint256 b) internal pure returns (uint256); function safeAdd(uint256 a, uint256 b) internal pure returns (uint256); } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ contract SafeMath is SafeMathInterface { function safeMul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function safeDiv(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 safeSub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title CommonModifiersInterface * @dev Base contract which contains common checks. */ contract CommonModifiersInterface { /** * @dev Assemble the given address bytecode. If bytecode exists then the _addr is a contract. */ function isContract(address _targetAddress) internal constant returns (bool); /** * @dev modifier to allow actions only when the _targetAddress is a contract. */ modifier onlyContractAddress(address _targetAddress) { require(isContract(_targetAddress) == true); _; } } /** * @title CommonModifiers * @dev Base contract which contains common checks. */ contract CommonModifiers is CommonModifiersInterface { /** * @dev Assemble the given address bytecode. If bytecode exists then the _addr is a contract. */ function isContract(address _targetAddress) internal constant returns (bool) { require (_targetAddress != address(0x0)); uint256 length; assembly { //retrieve the size of the code on target address, this needs assembly length := extcodesize(_targetAddress) } return (length > 0); } } /** * @title AssetIDInterface * @dev Interface of a contract that assigned to an asset (JNT, jUSD etc.) * @dev Contracts for the same asset (like JNT, jUSD etc.) will have the same AssetID. * @dev This will help to avoid misconfiguration of contracts */ contract AssetIDInterface { function getAssetID() public constant returns (string); function getAssetIDHash() public constant returns (bytes32); } /** * @title AssetID * @dev Base contract implementing AssetIDInterface */ contract AssetID is AssetIDInterface { /* Storage */ string assetID; /* Constructor */ function AssetID(string _assetID) public { require(bytes(_assetID).length > 0); assetID = _assetID; } /* Getters */ function getAssetID() public constant returns (string) { return assetID; } function getAssetIDHash() public constant returns (bytes32) { return keccak256(assetID); } } /** * @title OwnableInterface * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract OwnableInterface { /** * @dev The getter for "owner" contract variable */ function getOwner() public constant returns (address); /** * @dev Throws if called by any account other than the current owner. */ modifier onlyOwner() { require (msg.sender == getOwner()); _; } } /** * @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 is OwnableInterface { /* Storage */ address owner = address(0x0); address proposedOwner = address(0x0); /* Events */ event OwnerAssignedEvent(address indexed newowner); event OwnershipOfferCreatedEvent(address indexed currentowner, address indexed proposedowner); event OwnershipOfferAcceptedEvent(address indexed currentowner, address indexed proposedowner); event OwnershipOfferCancelledEvent(address indexed currentowner, address indexed proposedowner); /** * @dev The constructor sets the initial `owner` to the passed account. */ function Ownable() public { owner = msg.sender; OwnerAssignedEvent(owner); } /** * @dev Old owner requests transfer ownership to the new owner. * @param _proposedOwner The address to transfer ownership to. */ function createOwnershipOffer(address _proposedOwner) external onlyOwner { require (proposedOwner == address(0x0)); require (_proposedOwner != address(0x0)); require (_proposedOwner != address(this)); proposedOwner = _proposedOwner; OwnershipOfferCreatedEvent(owner, _proposedOwner); } /** * @dev Allows the new owner to accept an ownership offer to contract control. */ //noinspection UnprotectedFunction function acceptOwnershipOffer() external { require (proposedOwner != address(0x0)); require (msg.sender == proposedOwner); address _oldOwner = owner; owner = proposedOwner; proposedOwner = address(0x0); OwnerAssignedEvent(owner); OwnershipOfferAcceptedEvent(_oldOwner, owner); } /** * @dev Old owner cancels transfer ownership to the new owner. */ function cancelOwnershipOffer() external { require (proposedOwner != address(0x0)); require (msg.sender == owner || msg.sender == proposedOwner); address _oldProposedOwner = proposedOwner; proposedOwner = address(0x0); OwnershipOfferCancelledEvent(owner, _oldProposedOwner); } /** * @dev The getter for "owner" contract variable */ function getOwner() public constant returns (address) { return owner; } /** * @dev The getter for "proposedOwner" contract variable */ function getProposedOwner() public constant returns (address) { return proposedOwner; } } /** * @title ManageableInterface * @dev Contract that allows to grant permissions to any address * @dev In real life we are no able to perform all actions with just one Ethereum address * @dev because risks are too high. * @dev Instead owner delegates rights to manage an contract to the different addresses and * @dev stay able to revoke permissions at any time. */ contract ManageableInterface { /** * @dev Function to check if the manager can perform the action or not * @param _manager address Manager`s address * @param _permissionName string Permission name * @return True if manager is enabled and has been granted needed permission */ function isManagerAllowed(address _manager, string _permissionName) public constant returns (bool); /** * @dev Modifier to use in derived contracts */ modifier onlyAllowedManager(string _permissionName) { require(isManagerAllowed(msg.sender, _permissionName) == true); _; } } contract Manageable is OwnableInterface, ManageableInterface { /* Storage */ mapping (address => bool) managerEnabled; // hard switch for a manager - on/off mapping (address => mapping (string => bool)) managerPermissions; // detailed info about manager`s permissions /* Events */ event ManagerEnabledEvent(address indexed manager); event ManagerDisabledEvent(address indexed manager); event ManagerPermissionGrantedEvent(address indexed manager, string permission); event ManagerPermissionRevokedEvent(address indexed manager, string permission); /* Configure contract */ /** * @dev Function to add new manager * @param _manager address New manager */ function enableManager(address _manager) external onlyOwner onlyValidManagerAddress(_manager) { require(managerEnabled[_manager] == false); managerEnabled[_manager] = true; ManagerEnabledEvent(_manager); } /** * @dev Function to remove existing manager * @param _manager address Existing manager */ function disableManager(address _manager) external onlyOwner onlyValidManagerAddress(_manager) { require(managerEnabled[_manager] == true); managerEnabled[_manager] = false; ManagerDisabledEvent(_manager); } /** * @dev Function to grant new permission to the manager * @param _manager address Existing manager * @param _permissionName string Granted permission name */ function grantManagerPermission( address _manager, string _permissionName ) external onlyOwner onlyValidManagerAddress(_manager) onlyValidPermissionName(_permissionName) { require(managerPermissions[_manager][_permissionName] == false); managerPermissions[_manager][_permissionName] = true; ManagerPermissionGrantedEvent(_manager, _permissionName); } /** * @dev Function to revoke permission of the manager * @param _manager address Existing manager * @param _permissionName string Revoked permission name */ function revokeManagerPermission( address _manager, string _permissionName ) external onlyOwner onlyValidManagerAddress(_manager) onlyValidPermissionName(_permissionName) { require(managerPermissions[_manager][_permissionName] == true); managerPermissions[_manager][_permissionName] = false; ManagerPermissionRevokedEvent(_manager, _permissionName); } /* Getters */ /** * @dev Function to check manager status * @param _manager address Manager`s address * @return True if manager is enabled */ function isManagerEnabled( address _manager ) public constant onlyValidManagerAddress(_manager) returns (bool) { return managerEnabled[_manager]; } /** * @dev Function to check permissions of a manager * @param _manager address Manager`s address * @param _permissionName string Permission name * @return True if manager has been granted needed permission */ function isPermissionGranted( address _manager, string _permissionName ) public constant onlyValidManagerAddress(_manager) onlyValidPermissionName(_permissionName) returns (bool) { return managerPermissions[_manager][_permissionName]; } /** * @dev Function to check if the manager can perform the action or not * @param _manager address Manager`s address * @param _permissionName string Permission name * @return True if manager is enabled and has been granted needed permission */ function isManagerAllowed( address _manager, string _permissionName ) public constant onlyValidManagerAddress(_manager) onlyValidPermissionName(_permissionName) returns (bool) { return (managerEnabled[_manager] && managerPermissions[_manager][_permissionName]); } /* Helpers */ /** * @dev Modifier to check manager address */ modifier onlyValidManagerAddress(address _manager) { require(_manager != address(0x0)); _; } /** * @dev Modifier to check name of manager permission */ modifier onlyValidPermissionName(string _permissionName) { require(bytes(_permissionName).length != 0); _; } } /** * @title PausableInterface * @dev Base contract which allows children to implement an emergency stop mechanism. * @dev Based on zeppelin's Pausable, but integrated with Manageable * @dev Contract is in paused state by default and should be explicitly unlocked */ contract PausableInterface { /** * Events */ event PauseEvent(); event UnpauseEvent(); /** * @dev called by the manager to pause, triggers stopped state */ function pauseContract() public; /** * @dev called by the manager to unpause, returns to normal state */ function unpauseContract() public; /** * @dev The getter for "paused" contract variable */ function getPaused() public constant returns (bool); /** * @dev modifier to allow actions only when the contract IS paused */ modifier whenContractNotPaused() { require(getPaused() == false); _; } /** * @dev modifier to allow actions only when the contract IS NOT paused */ modifier whenContractPaused { require(getPaused() == true); _; } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. * @dev Based on zeppelin's Pausable, but integrated with Manageable * @dev Contract is in paused state by default and should be explicitly unlocked */ contract Pausable is ManageableInterface, PausableInterface { /** * Storage */ bool paused = true; /** * @dev called by the manager to pause, triggers stopped state */ function pauseContract() public onlyAllowedManager('pause_contract') whenContractNotPaused { paused = true; PauseEvent(); } /** * @dev called by the manager to unpause, returns to normal state */ function unpauseContract() public onlyAllowedManager('unpause_contract') whenContractPaused { paused = false; UnpauseEvent(); } /** * @dev The getter for "paused" contract variable */ function getPaused() public constant returns (bool) { return paused; } } /** * @title BytecodeExecutorInterface interface * @dev Implementation of a contract that execute any bytecode on behalf of the contract * @dev Last resort for the immutable and not-replaceable contract :) */ contract BytecodeExecutorInterface { /* Events */ event CallExecutedEvent(address indexed target, uint256 suppliedGas, uint256 ethValue, bytes32 transactionBytecodeHash); event DelegatecallExecutedEvent(address indexed target, uint256 suppliedGas, bytes32 transactionBytecodeHash); /* Functions */ function executeCall(address _target, uint256 _suppliedGas, uint256 _ethValue, bytes _transactionBytecode) external; function executeDelegatecall(address _target, uint256 _suppliedGas, bytes _transactionBytecode) external; } /** * @title BytecodeExecutor * @dev Implementation of a contract that execute any bytecode on behalf of the contract * @dev Last resort for the immutable and not-replaceable contract :) */ contract BytecodeExecutor is ManageableInterface, BytecodeExecutorInterface { /* Storage */ bool underExecution = false; /* BytecodeExecutorInterface */ function executeCall( address _target, uint256 _suppliedGas, uint256 _ethValue, bytes _transactionBytecode ) external onlyAllowedManager('execute_call') { require(underExecution == false); underExecution = true; // Avoid recursive calling _target.call.gas(_suppliedGas).value(_ethValue)(_transactionBytecode); underExecution = false; CallExecutedEvent(_target, _suppliedGas, _ethValue, keccak256(_transactionBytecode)); } function executeDelegatecall( address _target, uint256 _suppliedGas, bytes _transactionBytecode ) external onlyAllowedManager('execute_delegatecall') { require(underExecution == false); underExecution = true; // Avoid recursive calling _target.delegatecall.gas(_suppliedGas)(_transactionBytecode); underExecution = false; DelegatecallExecutedEvent(_target, _suppliedGas, keccak256(_transactionBytecode)); } } /** * @title CrydrStorageBaseInterface interface * @dev Interface of a contract that manages balance of an CryDR */ contract CrydrStorageBaseInterface { /* Events */ event CrydrControllerChangedEvent(address indexed crydrcontroller); /* Configuration */ function setCrydrController(address _newController) public; function getCrydrController() public constant returns (address); } /** * @title CrydrStorageBase */ contract CrydrStorageBase is CommonModifiersInterface, AssetIDInterface, ManageableInterface, PausableInterface, CrydrStorageBaseInterface { /* Storage */ address crydrController = address(0x0); /* CrydrStorageBaseInterface */ /* Configuration */ function setCrydrController( address _crydrController ) public whenContractPaused onlyContractAddress(_crydrController) onlyAllowedManager('set_crydr_controller') { require(_crydrController != address(crydrController)); require(_crydrController != address(this)); crydrController = _crydrController; CrydrControllerChangedEvent(_crydrController); } function getCrydrController() public constant returns (address) { return address(crydrController); } /* PausableInterface */ /** * @dev Override method to ensure that contract properly configured before it is unpaused */ function unpauseContract() public { require(isContract(crydrController) == true); require(getAssetIDHash() == AssetIDInterface(crydrController).getAssetIDHash()); super.unpauseContract(); } } /** * @title CrydrStorageBlocksInterface interface * @dev Interface of a contract that manages balance of an CryDR */ contract CrydrStorageBlocksInterface { /* Events */ event AccountBlockedEvent(address indexed account); event AccountUnblockedEvent(address indexed account); event AccountFundsBlockedEvent(address indexed account, uint256 value); event AccountFundsUnblockedEvent(address indexed account, uint256 value); /* Low-level change of blocks and getters */ function blockAccount(address _account) public; function unblockAccount(address _account) public; function getAccountBlocks(address _account) public constant returns (uint256); function blockAccountFunds(address _account, uint256 _value) public; function unblockAccountFunds(address _account, uint256 _value) public; function getAccountBlockedFunds(address _account) public constant returns (uint256); } /** * @title CrydrStorageBlocks */ contract CrydrStorageBlocks is SafeMathInterface, PausableInterface, CrydrStorageBaseInterface, CrydrStorageBlocksInterface { /* Storage */ mapping (address => uint256) accountBlocks; mapping (address => uint256) accountBlockedFunds; /* Constructor */ function CrydrStorageBlocks() public { accountBlocks[0x0] = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff; } /* Low-level change of blocks and getters */ function blockAccount( address _account ) public { require(msg.sender == getCrydrController()); require(_account != address(0x0)); accountBlocks[_account] = safeAdd(accountBlocks[_account], 1); AccountBlockedEvent(_account); } function unblockAccount( address _account ) public { require(msg.sender == getCrydrController()); require(_account != address(0x0)); accountBlocks[_account] = safeSub(accountBlocks[_account], 1); AccountUnblockedEvent(_account); } function getAccountBlocks( address _account ) public constant returns (uint256) { require(_account != address(0x0)); return accountBlocks[_account]; } function blockAccountFunds( address _account, uint256 _value ) public { require(msg.sender == getCrydrController()); require(_account != address(0x0)); require(_value > 0); accountBlockedFunds[_account] = safeAdd(accountBlockedFunds[_account], _value); AccountFundsBlockedEvent(_account, _value); } function unblockAccountFunds( address _account, uint256 _value ) public { require(msg.sender == getCrydrController()); require(_account != address(0x0)); require(_value > 0); accountBlockedFunds[_account] = safeSub(accountBlockedFunds[_account], _value); AccountFundsUnblockedEvent(_account, _value); } function getAccountBlockedFunds( address _account ) public constant returns (uint256) { require(_account != address(0x0)); return accountBlockedFunds[_account]; } } /** * @title CrydrStorageBalanceInterface interface * @dev Interface of a contract that manages balance of an CryDR */ contract CrydrStorageBalanceInterface { /* Events */ event AccountBalanceIncreasedEvent(address indexed account, uint256 value); event AccountBalanceDecreasedEvent(address indexed account, uint256 value); /* Low-level change of balance. Implied that totalSupply kept in sync. */ function increaseBalance(address _account, uint256 _value) public; function decreaseBalance(address _account, uint256 _value) public; function getBalance(address _account) public constant returns (uint256); function getTotalSupply() public constant returns (uint256); } /** * @title CrydrStorageBalance */ contract CrydrStorageBalance is SafeMathInterface, PausableInterface, CrydrStorageBaseInterface, CrydrStorageBalanceInterface { /* Storage */ mapping (address => uint256) balances; uint256 totalSupply = 0; /* Low-level change of balance and getters. Implied that totalSupply kept in sync. */ function increaseBalance( address _account, uint256 _value ) public whenContractNotPaused { require(msg.sender == getCrydrController()); require(_account != address(0x0)); require(_value > 0); balances[_account] = safeAdd(balances[_account], _value); totalSupply = safeAdd(totalSupply, _value); AccountBalanceIncreasedEvent(_account, _value); } function decreaseBalance( address _account, uint256 _value ) public whenContractNotPaused { require(msg.sender == getCrydrController()); require(_account != address(0x0)); require(_value > 0); balances[_account] = safeSub(balances[_account], _value); totalSupply = safeSub(totalSupply, _value); AccountBalanceDecreasedEvent(_account, _value); } function getBalance(address _account) public constant returns (uint256) { require(_account != address(0x0)); return balances[_account]; } function getTotalSupply() public constant returns (uint256) { return totalSupply; } } /** * @title CrydrStorageAllowanceInterface interface * @dev Interface of a contract that manages balance of an CryDR */ contract CrydrStorageAllowanceInterface { /* Events */ event AccountAllowanceIncreasedEvent(address indexed owner, address indexed spender, uint256 value); event AccountAllowanceDecreasedEvent(address indexed owner, address indexed spender, uint256 value); /* Low-level change of allowance */ function increaseAllowance(address _owner, address _spender, uint256 _value) public; function decreaseAllowance(address _owner, address _spender, uint256 _value) public; function getAllowance(address _owner, address _spender) public constant returns (uint256); } /** * @title CrydrStorageAllowance */ contract CrydrStorageAllowance is SafeMathInterface, PausableInterface, CrydrStorageBaseInterface, CrydrStorageAllowanceInterface { /* Storage */ mapping (address => mapping (address => uint256)) allowed; /* Low-level change of allowance and getters */ function increaseAllowance( address _owner, address _spender, uint256 _value ) public whenContractNotPaused { require(msg.sender == getCrydrController()); require(_owner != address(0x0)); require(_spender != address(0x0)); require(_owner != _spender); require(_value > 0); allowed[_owner][_spender] = safeAdd(allowed[_owner][_spender], _value); AccountAllowanceIncreasedEvent(_owner, _spender, _value); } function decreaseAllowance( address _owner, address _spender, uint256 _value ) public whenContractNotPaused { require(msg.sender == getCrydrController()); require(_owner != address(0x0)); require(_spender != address(0x0)); require(_owner != _spender); require(_value > 0); allowed[_owner][_spender] = safeSub(allowed[_owner][_spender], _value); AccountAllowanceDecreasedEvent(_owner, _spender, _value); } function getAllowance( address _owner, address _spender ) public constant returns (uint256) { require(_owner != address(0x0)); require(_spender != address(0x0)); require(_owner != _spender); return allowed[_owner][_spender]; } } /** * @title CrydrStorageERC20Interface interface * @dev Interface of a contract that manages balance of an CryDR and have optimization for ERC20 controllers */ contract CrydrStorageERC20Interface { /* Events */ event CrydrTransferredEvent(address indexed from, address indexed to, uint256 value); event CrydrTransferredFromEvent(address indexed spender, address indexed from, address indexed to, uint256 value); event CrydrSpendingApprovedEvent(address indexed owner, address indexed spender, uint256 value); /* ERC20 optimization. _msgsender - account that invoked CrydrView */ function transfer(address _msgsender, address _to, uint256 _value) public; function transferFrom(address _msgsender, address _from, address _to, uint256 _value) public; function approve(address _msgsender, address _spender, uint256 _value) public; } /** * @title CrydrStorageERC20 */ contract CrydrStorageERC20 is SafeMathInterface, PausableInterface, CrydrStorageBaseInterface, CrydrStorageBalanceInterface, CrydrStorageAllowanceInterface, CrydrStorageBlocksInterface, CrydrStorageERC20Interface { function transfer( address _msgsender, address _to, uint256 _value ) public whenContractNotPaused { require(msg.sender == getCrydrController()); require(_msgsender != _to); require(getAccountBlocks(_msgsender) == 0); require(safeSub(getBalance(_msgsender), _value) >= getAccountBlockedFunds(_msgsender)); decreaseBalance(_msgsender, _value); increaseBalance(_to, _value); CrydrTransferredEvent(_msgsender, _to, _value); } function transferFrom( address _msgsender, address _from, address _to, uint256 _value ) public whenContractNotPaused { require(msg.sender == getCrydrController()); require(getAccountBlocks(_msgsender) == 0); require(getAccountBlocks(_from) == 0); require(safeSub(getBalance(_from), _value) >= getAccountBlockedFunds(_from)); require(_from != _to); decreaseAllowance(_from, _msgsender, _value); decreaseBalance(_from, _value); increaseBalance(_to, _value); CrydrTransferredFromEvent(_msgsender, _from, _to, _value); } function approve( address _msgsender, address _spender, uint256 _value ) public whenContractNotPaused { require(msg.sender == getCrydrController()); require(getAccountBlocks(_msgsender) == 0); require(getAccountBlocks(_spender) == 0); uint256 currentAllowance = getAllowance(_msgsender, _spender); require(currentAllowance != _value); if (currentAllowance > _value) { decreaseAllowance(_msgsender, _spender, safeSub(currentAllowance, _value)); } else { increaseAllowance(_msgsender, _spender, safeSub(_value, currentAllowance)); } CrydrSpendingApprovedEvent(_msgsender, _spender, _value); } } /** * @title JCashCrydrStorage * @dev Implementation of a contract that manages data of an CryDR */ contract JCashCrydrStorage is SafeMath, CommonModifiers, AssetID, Ownable, Manageable, Pausable, BytecodeExecutor, CrydrStorageBase, CrydrStorageBalance, CrydrStorageAllowance, CrydrStorageBlocks, CrydrStorageERC20 { /* Constructor */ function JCashCrydrStorage(string _assetID) AssetID(_assetID) public { } } contract JNTStorage is JCashCrydrStorage { function JNTStorage() JCashCrydrStorage('JNT') public {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_manager","type":"address"},{"name":"_permissionName","type":"string"}],"name":"isManagerAllowed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"getAllowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_msgsender","type":"address"},{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cancelOwnershipOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_crydrController","type":"address"}],"name":"setCrydrController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_manager","type":"address"},{"name":"_permissionName","type":"string"}],"name":"isPermissionGranted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"unblockAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_value","type":"uint256"}],"name":"increaseBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"enableManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAssetID","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"increaseAllowance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"blockAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"},{"name":"_permissionName","type":"string"}],"name":"revokeManagerPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_value","type":"uint256"}],"name":"unblockAccountFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"},{"name":"_permissionName","type":"string"}],"name":"grantManagerPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_suppliedGas","type":"uint256"},{"name":"_ethValue","type":"uint256"},{"name":"_transactionBytecode","type":"bytes"}],"name":"executeCall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"getAccountBlocks","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_proposedOwner","type":"address"}],"name":"createOwnershipOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_manager","type":"address"}],"name":"isManagerEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAssetIDHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpauseContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"getAccountBlockedFunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_msgsender","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_value","type":"uint256"}],"name":"blockAccountFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCrydrController","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_suppliedGas","type":"uint256"},{"name":"_transactionBytecode","type":"bytes"}],"name":"executeDelegatecall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"disableManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"decreaseAllowance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_msgsender","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getProposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnershipOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_value","type":"uint256"}],"name":"decreaseBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"CrydrTransferredEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"spender","type":"address"},{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"CrydrTransferredFromEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"CrydrSpendingApprovedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AccountBlockedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"AccountUnblockedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"AccountFundsBlockedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"AccountFundsUnblockedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"AccountAllowanceIncreasedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"AccountAllowanceDecreasedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"AccountBalanceIncreasedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"AccountBalanceDecreasedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"crydrcontroller","type":"address"}],"name":"CrydrControllerChangedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"suppliedGas","type":"uint256"},{"indexed":false,"name":"ethValue","type":"uint256"},{"indexed":false,"name":"transactionBytecodeHash","type":"bytes32"}],"name":"CallExecutedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"suppliedGas","type":"uint256"},{"indexed":false,"name":"transactionBytecodeHash","type":"bytes32"}],"name":"DelegatecallExecutedEvent","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseEvent","type":"event"},{"anonymous":false,"inputs":[],"name":"UnpauseEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"manager","type":"address"}],"name":"ManagerEnabledEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"manager","type":"address"}],"name":"ManagerDisabledEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"manager","type":"address"},{"indexed":false,"name":"permission","type":"string"}],"name":"ManagerPermissionGrantedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"manager","type":"address"},{"indexed":false,"name":"permission","type":"string"}],"name":"ManagerPermissionRevokedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newowner","type":"address"}],"name":"OwnerAssignedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentowner","type":"address"},{"indexed":true,"name":"proposedowner","type":"address"}],"name":"OwnershipOfferCreatedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentowner","type":"address"},{"indexed":true,"name":"proposedowner","type":"address"}],"name":"OwnershipOfferAcceptedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentowner","type":"address"},{"indexed":true,"name":"proposedowner","type":"address"}],"name":"OwnershipOfferCancelledEvent","type":"event"}]
Deployed Bytecode
0x6060604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630392d2b4146101d25780630af4187d1461026657806315dacbea146102d25780631eb96a5c14610352578063305f17d51461036757806332a2fda7146103a0578063439766ce146104345780634d78fdc6146104495780635b86f599146104825780635ca5b334146104c45780636805b84b146104fd578063696b5fb71461052a5780636c43a2ca146105b85780637c0a893d146106195780637c0efb8b146106525780637fa879491461069f578063822b08d0146106e1578063893d20e81461072e5780638ba7e5701461078357806395534e00146107e25780639739db9d1461082f5780639b53d87c14610868578063a773d98a146108b9578063b33712c5146108ea578063be2a2ff2146108ff578063beabacc81461094c578063c4e41b22146109ad578063c60c13a3146109d6578063ca9c286214610a18578063d2b7d95714610a6d578063d4859dc514610ac3578063d73b1dc914610afc578063e1f21c6714610b5d578063eae5a62d14610bbe578063f538534514610c13578063f8b2cb4f14610c28578063ff05694914610c75575b600080fd5b34156101dd57600080fd5b61024c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610cb7565b604051808215151515815260200191505060405180910390f35b341561027157600080fd5b6102bc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e1d565b6040518082815260200191505060405180910390f35b34156102dd57600080fd5b610350600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f56565b005b341561035d57600080fd5b6103656110e3565b005b341561037257600080fd5b61039e600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112dc565b005b34156103ab57600080fd5b61041a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611485565b604051808215151515815260200191505060405180910390f35b341561043f57600080fd5b610447611596565b005b341561045457600080fd5b610480600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061164c565b005b341561048d57600080fd5b6104c2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061179c565b005b34156104cf57600080fd5b6104fb600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611932565b005b341561050857600080fd5b610510611aae565b604051808215151515815260200191505060405180910390f35b341561053557600080fd5b61053d611ac5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057d578082015181840152602081019050610562565b50505050905090810190601f1680156105aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105c357600080fd5b610617600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611b6d565b005b341561062457600080fd5b610650600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611dfa565b005b341561065d57600080fd5b61069d600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190820180359060200191909192905050611f4a565b005b34156106aa57600080fd5b6106df600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612178565b005b34156106ec57600080fd5b61072c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001919091929050506122e2565b005b341561073957600080fd5b610741612510565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561078e57600080fd5b6107e0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091908035906020019091908035906020019082018035906020019190919290505061253a565b005b34156107ed57600080fd5b610819600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506126af565b6040518082815260200191505060405180910390f35b341561083a57600080fd5b610866600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612733565b005b341561087357600080fd5b61089f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612908565b604051808215151515815260200191505060405180910390f35b34156108c457600080fd5b6108cc61299c565b60405180826000191660001916815260200191505060405180910390f35b34156108f557600080fd5b6108fd612a0c565b005b341561090a57600080fd5b610936600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612b18565b6040518082815260200191505060405180910390f35b341561095757600080fd5b6109ab600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612b9c565b005b34156109b857600080fd5b6109c0612cef565b6040518082815260200191505060405180910390f35b34156109e157600080fd5b610a16600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612cf9565b005b3415610a2357600080fd5b610a2b612e63565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a7857600080fd5b610ac1600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190820180359060200191909192905050612e8d565b005b3415610ace57600080fd5b610afa600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ff6565b005b3415610b0757600080fd5b610b5b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613172565b005b3415610b6857600080fd5b610bbc600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506133ff565b005b3415610bc957600080fd5b610bd1613545565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610c1e57600080fd5b610c2661356f565b005b3415610c3357600080fd5b610c5f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506137d8565b6040518082815260200191505060405180910390f35b3415610c8057600080fd5b610cb5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061385c565b005b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610cf657600080fd5b826000815114151515610d0857600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015610e135750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b602083101515610dd15780518252602082019150602081019050602083039250610dac565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff165b9250505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e5a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e9657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ed157600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60001515610f62611aae565b1515141515610f7057600080fd5b610f78612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fb157600080fd5b6000610fbc856126af565b141515610fc857600080fd5b6000610fd3846126af565b141515610fdf57600080fd5b610fe883612b18565b610ffa610ff4856137d8565b836139f2565b1015151561100757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561104257600080fd5b61104d838583613172565b611057838261385c565b611061828261179c565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fe3d776cf1ef825c35dbb8811a66dc929631899ddcfa44ed20af30a2ada287219846040518082815260200191505060405180910390a450505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561114257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111eb5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156111f657600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f223225995c0c0965e8752fd93ca10aba4bafcbca26f31b1565955adb68e76bda60405160405180910390a350565b600115156112e8611aae565b15151415156112f657600080fd5b806001151561130482613a0b565b151514151561131257600080fd5b6040805190810160405280601481526020017f7365745f63727964725f636f6e74726f6c6c6572000000000000000000000000815250600115156113563383610cb7565b151514151561136457600080fd5b600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156113c157600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156113fc57600080fd5b82600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff167f95e43e6707a0436b5cc3af93d12042ce56df5ec4fe857d77836fe6316dc8457060405160405180910390a2505050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156114c457600080fd5b8260008151141515156114d657600080fd5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b60208310151561154b5780518252602082019150602081019050602083039250611526565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff169250505092915050565b6040805190810160405280600e81526020017f70617573655f636f6e7472616374000000000000000000000000000000000000815250600115156115da3383610cb7565b15151415156115e857600080fd5b600015156115f4611aae565b151514151561160257600080fd5b6001600560006101000a81548160ff0219169083151502179055507f14cc32b2b0edca88201ca20553c392d108a2feb2c750a0ee14c707b4f34fbee260405160405180910390a150565b611654612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116c957600080fd5b611713600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460016139f2565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f81b9c84fba2126e059adb9872626ddf7b49e111cff0c1115f2e5366c808f1c3760405160405180910390a250565b600015156117a8611aae565b15151415156117b657600080fd5b6117be612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117f757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561183357600080fd5b60008111151561184257600080fd5b61188b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613a5a565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118da60075482613a5a565b6007819055508173ffffffffffffffffffffffffffffffffffffffff167f83c6d1dfd5f048a40d7fadd573780e453d8ff8fd61ea222d7e643a3d1c779c2d826040518082815260200191505060405180910390a25050565b61193a612510565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197357600080fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156119b057600080fd5b60001515600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515611a0f57600080fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f7f0b61f78ab0b549b68ce61404f4ee01a26ffdf8d421d099d271d789aaea3a8e60405160405180910390a25050565b6000600560009054906101000a900460ff16905090565b611acd613b2e565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b635780601f10611b3857610100808354040283529160200191611b63565b820191906000526020600020905b815481529060010190602001808311611b4657829003601f168201915b5050505050905090565b60001515611b79611aae565b1515141515611b8757600080fd5b611b8f612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611c0457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611c4057600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611c7b57600080fd5b600081111515611c8a57600080fd5b611d10600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613a5a565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f32e1b5603904861a1165c337e368b5c657f1fc8008aa19c0c790ca77397f47e4836040518082815260200191505060405180910390a3505050565b611e02612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e3b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e7757600080fd5b611ec1600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546001613a5a565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f2dc7c28266c3cbe06a9326adac266f3d4f5996dc8f70deb57730ed02bfeb87f760405160405180910390a250565b611f52612510565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f8b57600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fc857600080fd5b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050600081511415151561200c57600080fd5b60011515600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858560405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16151514151561208e57600080fd5b6000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167fe2b13fa06e3428fe0e43b2e517d25708ba477cafdff4fbcd06e3e93864517ddc8585604051808060200182810382528484828181526020019250808284378201915050935050505060405180910390a25050505050565b612180612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121b957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156121f557600080fd5b60008111151561220457600080fd5b61224d600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826139f2565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fdadab30385c25eca982350a1f6a5fe622a0d5fcac8f49d9fabba36d56273bc0a826040518082815260200191505060405180910390a25050565b6122ea612510565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561232357600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561236057600080fd5b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505060008151141515156123a457600080fd5b60001515600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858560405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16151514151561242657600080fd5b6001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167fb76b4ee2621e0744da93fa797bdc4851a3b9e303b2950f2f234a449e5f36d35e8585604051808060200182810382528484828181526020019250808284378201915050935050505060405180910390a25050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040805190810160405280600c81526020017f657865637574655f63616c6c00000000000000000000000000000000000000008152506001151561257e3383610cb7565b151514151561258c57600080fd5b60001515600560019054906101000a900460ff1615151415156125ae57600080fd5b6001600560016101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff168585858560405180838380828437820191505092505050600060405180830381858888f19350505050506000600560016101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff167f376185a1f1832ecd7ffd6a421a54d437594db00f80f6122e8534d19d978b65b686868686604051808383808284378201915050925050506040518091039020604051808481526020018381526020018260001916600019168152602001935050505060405180910390a2505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156126ec57600080fd5b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61273b612510565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561277457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127d157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561280d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561284857600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0c5d18b25c2665dfeec8ea7956663ec48f079fdd04799ddd335f2fdce1a9fceb60405160405180910390a350565b600081600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561294757600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16915050919050565b60008060405180828054600181600116156101000203166002900480156129fa5780601f106129d85761010080835404028352918201916129fa565b820191906000526020600020905b8154815290600101906020018083116129e6575b50509150506040518091039020905090565b60011515612a3b600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613a0b565b1515141515612a4957600080fd5b600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a773d98a6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515612ad757600080fd5b6102c65a03f11515612ae857600080fd5b5050506040518051905060001916612afe61299c565b60001916141515612b0e57600080fd5b612b16613a78565b565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612b5557600080fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60001515612ba8611aae565b1515141515612bb657600080fd5b612bbe612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bf757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612c3257600080fd5b6000612c3d846126af565b141515612c4957600080fd5b612c5283612b18565b612c64612c5e856137d8565b836139f2565b10151515612c7157600080fd5b612c7b838261385c565b612c85828261179c565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f785f57e51f803d3d6a09af16f87ff848450fc54f2d0b531a2a08117e18a5ff21836040518082815260200191505060405180910390a3505050565b6000600754905090565b612d01612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d3a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612d7657600080fd5b600081111515612d8557600080fd5b612dce600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482613a5a565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f45a0d7ac95749f67b40af5e7c66e83b9408196958b3e134a644a9f44bb552de1826040518082815260200191505060405180910390a25050565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040805190810160405280601481526020017f657865637574655f64656c656761746563616c6c00000000000000000000000081525060011515612ed13383610cb7565b1515141515612edf57600080fd5b60001515600560019054906101000a900460ff161515141515612f0157600080fd5b6001600560016101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff16848484604051808383808284378201915050925050506000604051808303818686f492505050506000600560016101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167ffd9a51b5876c403362d350caaea2a99618ed2c0b3eb601e0ab04606616e671888585856040518083838082843782019150509250505060405180910390206040518083815260200182600019166000191681526020019250505060405180910390a25050505050565b612ffe612510565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561303757600080fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561307457600080fd5b60011515600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156130d357600080fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f91975e22df3ba360814d3153e8eaef17954cf47d52a42840fc9747ad1086b35160405160405180910390a25050565b6000151561317e611aae565b151514151561318c57600080fd5b613194612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156131cd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561320957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561324557600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561328057600080fd5b60008111151561328f57600080fd5b613315600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826139f2565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb7956d03ae366cf172b1a1bd47b217105992bad229e73d5ba758678431dea82c836040518082815260200191505060405180910390a3505050565b600080151561340c611aae565b151514151561341a57600080fd5b613422612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561345b57600080fd5b6000613466856126af565b14151561347257600080fd5b600061347d846126af565b14151561348957600080fd5b6134938484610e1d565b90508181141515156134a457600080fd5b818111156134c5576134c084846134bb84866139f2565b613172565b6134da565b6134d984846134d485856139f2565b611b6d565b5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fa8be8e87e8fbceab291eb42413d9c78ee7b7898e718d2d16fe6958a3faeb1c8e846040518082815260200191505060405180910390a350505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156135ce57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561362a57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8d2a41ca5ff551a8f68510de75177b7d56e6019c8579b5509d2be1bb41a0d0af60405160405180910390a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f3912b3f6ff73ee5d4cd2894666c349dec2d3d2ed7dc6d35c28c5eabf105a88d860405160405180910390a350565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561381557600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60001515613868611aae565b151514151561387657600080fd5b61387e612e63565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156138b757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156138f357600080fd5b60008111151561390257600080fd5b61394b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826139f2565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061399a600754826139f2565b6007819055508173ffffffffffffffffffffffffffffffffffffffff167f276bbd423424ce251a4cee26b903235278ab7970a230885c80d3a75b05807256826040518082815260200191505060405180910390a25050565b6000828211151515613a0057fe5b818303905092915050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613a4a57600080fd5b823b905060008111915050919050565b6000808284019050838110151515613a6e57fe5b8091505092915050565b6040805190810160405280601081526020017f756e70617573655f636f6e74726163740000000000000000000000000000000081525060011515613abc3383610cb7565b1515141515613aca57600080fd5b60011515613ad6611aae565b1515141515613ae457600080fd5b6000600560006101000a81548160ff0219169083151502179055507f6249a5c797c884cbf33e63e8cfc250816032db24e22051de68a388315e64afc660405160405180910390a150565b6020604051908101604052806000815250905600a165627a7a723058206500ede71ec9cc54dae49f9a38711bb9cab89e0dbf77a37156c2d3a7b0191f480029
Swarm Source
bzzr://6500ede71ec9cc54dae49f9a38711bb9cab89e0dbf77a37156c2d3a7b0191f48
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.