ETH Price: $3,532.41 (-1.61%)
Gas: 5 Gwei

Token

Wrapped Ribbits (wRBT)
 

Overview

Max Total Supply

187 wRBT

Holders

6

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
WrappedRibbits

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-03-31
*/

/*
 ___ _ _    _    _ _      
| _ (_) |__| |__(_) |_ ___
|   / | '_ \ '_ \ |  _(_-<
|_|_\_|_.__/_.__/_|\__/__/
A unique set of 1,000 collectable and tradable frog themed NFTs.

Website: https://ribbits.xyz/
Created by sol_dev

*/
pragma solidity ^0.5.17;

interface Receiver {
	function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes calldata _data) external returns (bytes4);
}

interface Callable {
	function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool);
}

interface Router {
	function WETH() external pure returns (address);
	function factory() external pure returns (address);
}

interface Factory {
	function createPair(address, address) external returns (address);
}

interface Pair {
	function token0() external view returns (address);
	function totalSupply() external view returns (uint256);
	function balanceOf(address) external view returns (uint256);
	function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
}

contract Metadata {
	string public name = "Ribbits";
	string public symbol = "RBT";
	function contractURI() external pure returns (string memory) {
		return "https://api.ribbits.xyz/metadata";
	}
	function baseTokenURI() public pure returns (string memory) {
		return "https://api.ribbits.xyz/ribbit/metadata/";
	}
	function tokenURI(uint256 _tokenId) external pure returns (string memory) {
		bytes memory _base = bytes(baseTokenURI());
		uint256 _digits = 1;
		uint256 _n = _tokenId;
		while (_n > 9) {
			_n /= 10;
			_digits++;
		}
		bytes memory _uri = new bytes(_base.length + _digits);
		for (uint256 i = 0; i < _uri.length; i++) {
			if (i < _base.length) {
				_uri[i] = _base[i];
			} else {
				uint256 _dec = (_tokenId / (10**(_uri.length - i - 1))) % 10;
				_uri[i] = byte(uint8(_dec) + 48);
			}
		}
		return string(_uri);
	}
}

contract WrappedRibbits {

	uint256 constant private UINT_MAX = uint256(-1);

	string constant public name = "Wrapped Ribbits";
	string constant public symbol = "wRBT";
	uint8 constant public decimals = 18;

	struct User {
		uint256 balance;
		mapping(address => uint256) allowance;
	}

	struct Info {
		uint256 totalSupply;
		mapping(address => User) users;
		Router router;
		Pair pair;
		Ribbits ribbits;
		bool weth0;
	}
	Info private info;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);


	constructor(Ribbits _ribbits) public {
		info.router = Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
		info.pair = Pair(Factory(info.router.factory()).createPair(info.router.WETH(), address(this)));
		info.weth0 = info.pair.token0() == info.router.WETH();
		info.ribbits = _ribbits;
	}

	function wrap(uint256[] calldata _tokenIds) external {
		uint256 _count = _tokenIds.length;
		require(_count > 0);
		for (uint256 i = 0; i < _count; i++) {
			info.ribbits.transferFrom(msg.sender, address(this), _tokenIds[i]);
		}
		uint256 _amount = _count * 1e18;
		info.totalSupply += _amount;
		info.users[msg.sender].balance += _amount;
		emit Transfer(address(0x0), msg.sender, _amount);
	}

	function unwrap(uint256[] calldata _tokenIds) external returns (uint256 totalUnwrapped) {
		uint256 _count = _tokenIds.length;
		require(balanceOf(msg.sender) >= _count * 1e18);
		totalUnwrapped = 0;
		for (uint256 i = 0; i < _count; i++) {
			if (info.ribbits.ownerOf(_tokenIds[i]) == address(this)) {
				info.ribbits.transferFrom(address(this), msg.sender, _tokenIds[i]);
				totalUnwrapped++;
			}
		}
		require(totalUnwrapped > 0);
		uint256 _cost = totalUnwrapped * 1e18;
		info.totalSupply -= _cost;
		info.users[msg.sender].balance -= _cost;
		emit Transfer(msg.sender, address(0x0), _cost);
	}

	function transfer(address _to, uint256 _tokens) external returns (bool) {
		return _transfer(msg.sender, _to, _tokens);
	}

	function approve(address _spender, uint256 _tokens) external returns (bool) {
		info.users[msg.sender].allowance[_spender] = _tokens;
		emit Approval(msg.sender, _spender, _tokens);
		return true;
	}

	function transferFrom(address _from, address _to, uint256 _tokens) external returns (bool) {
		uint256 _allowance = allowance(_from, msg.sender);
		require(_allowance >= _tokens);
		if (_allowance != UINT_MAX) {
			info.users[_from].allowance[msg.sender] -= _tokens;
		}
		return _transfer(_from, _to, _tokens);
	}

	function transferAndCall(address _to, uint256 _tokens, bytes calldata _data) external returns (bool) {
		_transfer(msg.sender, _to, _tokens);
		uint32 _size;
		assembly {
			_size := extcodesize(_to)
		}
		if (_size > 0) {
			require(Callable(_to).tokenCallback(msg.sender, _tokens, _data));
		}
		return true;
	}
	

	function totalSupply() public view returns (uint256) {
		return info.totalSupply;
	}

	function balanceOf(address _user) public view returns (uint256) {
		return info.users[_user].balance;
	}

	function allowance(address _user, address _spender) public view returns (uint256) {
		return info.users[_user].allowance[_spender];
	}

	function allInfoFor(address _user) external view returns (uint256 totalTokens, uint256 totalLPTokens, uint256 wethReserve, uint256 wrbtReserve, uint256 userRibbits, bool userApproved, uint256 userBalance, uint256 userLPBalance) {
		totalTokens = totalSupply();
		totalLPTokens = info.pair.totalSupply();
		(uint256 _res0, uint256 _res1, ) = info.pair.getReserves();
		wethReserve = info.weth0 ? _res0 : _res1;
		wrbtReserve = info.weth0 ? _res1 : _res0;
		userRibbits = info.ribbits.balanceOf(_user);
		userApproved = info.ribbits.isApprovedForAll(_user, address(this));
		userBalance = balanceOf(_user);
		userLPBalance = info.pair.balanceOf(_user);
	}


	function _transfer(address _from, address _to, uint256 _tokens) internal returns (bool) {
		require(balanceOf(_from) >= _tokens);
		info.users[_from].balance -= _tokens;
		info.users[_to].balance += _tokens;
		emit Transfer(_from, _to, _tokens);
		return true;
	}
}

contract Ribbits {

	uint256 constant private MAX_NAME_LENGTH = 32;
	uint256 constant private TOTAL_RIBBITS = 1000;
	uint256 constant private CLAIM_COST = 0.1 ether;

	struct User {
		uint256[] list;
		mapping(address => bool) approved;
		mapping(uint256 => uint256) indexOf;
	}

	struct Ribbit {
		bool claimed;
		address owner;
		address approved;
		string name;
	}

	struct Info {
		mapping(uint256 => Ribbit) list;
		mapping(address => User) users;
		Metadata metadata;
		address owner;
	}
	Info private info;

	mapping(bytes4 => bool) public supportsInterface;

	string constant public compositeHash = "11df1dfb29760fdf721b68137825ebbf350a69f92ac50a922088f0240e62e0d3";

	event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
	event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
	event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

	event Rename(address indexed owner, uint256 indexed tokenId, string name);


	constructor() public {
		info.metadata = new Metadata();
		info.owner = msg.sender;
		supportsInterface[0x01ffc9a7] = true; // ERC-165
		supportsInterface[0x80ac58cd] = true; // ERC-721
		supportsInterface[0x5b5e139f] = true; // Metadata
		supportsInterface[0x780e9d63] = true; // Enumerable

		// Initial Claims
		address _receiver = msg.sender;
		_claim(77,  _receiver);
		_claim(114, _receiver);
		_claim(168, _receiver);
		_claim(172, _receiver);
		_claim(173, _receiver);
		_claim(210, _receiver);
		_claim(275, _receiver);
		_claim(285, _receiver);
		_claim(595, _receiver);
		_claim(726, _receiver);

		_receiver = 0xcb4BfcF57aee5e8ad825Cde1012fEe1cC62d8e4c;
		_claim(368, _receiver);
		_claim(737, _receiver);
		_claim(751, _receiver);
		_claim(895, _receiver);
		_claim(49,  _receiver);
		_claim(242, _receiver);
		_claim(391, _receiver);

		_receiver = 0x8F83Eb7ABb2bCf57347298d9BF09A2d284190643;
		_claim(534, _receiver);
		_claim(729, _receiver);
		_claim(35,  _receiver);
		_claim(55,  _receiver);
		_claim(68,  _receiver);
		_claim(621, _receiver);
		_claim(796, _receiver);
		_claim(971, _receiver);
		_claim(167, _receiver);
		_claim(152, _receiver);
		_claim(202, _receiver);
		_claim(205, _receiver);
		_claim(221, _receiver);
		_claim(283, _receiver);
		_claim(299, _receiver);
		_claim(309, _receiver);
		_claim(325, _receiver);
		_claim(341, _receiver);
		_claim(367, _receiver);
		_claim(393, _receiver);
		_claim(405, _receiver);
		_claim(452, _receiver);
		_claim(485, _receiver);
		_claim(507, _receiver);
		_claim(526, _receiver);
		_claim(542, _receiver);
		_claim(609, _receiver);
		_claim(723, _receiver);
		_claim(500, _receiver);
		_claim(16,  _receiver);
		_claim(46,  _receiver);
		_claim(79,  _receiver);

		_claim(822, 0xACE5BeedDDc24dec659eeEcb21A3C21F5576e3C9);
		_claim(934, 0xface14522b18BE412e9DB0E1570Be94Cb9af0A88);
		_claim(894, 0xFADE7bB65A1e06D11B3F099b225ddC7C8Ae65967);
		_claim(946, 0xC0015CfE8C0e00423E2D84853E5A9052EdcdF8b2);
		_claim(957, 0xce1179C2e69edBaCaB52485a75C0Ae4a979b0919);
		_claim(712, 0xea5e37c75383331a1de5b7f7f1a93Ef080b319Be);
		_claim(539, 0xD1CEbD1Ad772c8A6dD05eCdFA0ae776a9266032c);
		_claim(549, 0xFEED4873Ab0D642dD4b694EdA6FF90cD732fE4C9);
		_claim(364, 0xCafe59428b2946FBc128fd6C36cb1Ec1443AeD6C);
		_claim(166, 0xb01d89cb608b46a9EB697ee11e2df6313BCbEb20);
		_claim(547, 0x1eadc5E9A94e61BFe4819274aBBEE1e23805bA38);
		_claim(515, 0xF01D2ba4F31161Bb89e7Ab3cf443AaA38426dC65);
		_claim(612, 0xF00Da17Fd777Bf2ae536816C016fF1593F9CDDC3);
	}

	function setOwner(address _owner) external {
		require(msg.sender == info.owner);
		info.owner = _owner;
	}

	function setMetadata(Metadata _metadata) external {
		require(msg.sender == info.owner);
		info.metadata = _metadata;
	}

	function ownerWithdraw() external {
		require(msg.sender == info.owner);
		uint256 _balance = address(this).balance;
		require(_balance > 0);
		msg.sender.transfer(_balance);
	}


	function claim(uint256 _tokenId) external payable {
		claimFor(_tokenId, msg.sender);
	}

	function claimFor(uint256 _tokenId, address _receiver) public payable {
		uint256[] memory _tokenIds = new uint256[](1);
		address[] memory _receivers = new address[](1);
		_tokenIds[0] = _tokenId;
		_receivers[0] = _receiver;
		claimManyFor(_tokenIds, _receivers);
	}

	function claimMany(uint256[] calldata _tokenIds) external payable returns (uint256) {
		uint256 _count = _tokenIds.length;
		address[] memory _receivers = new address[](_count);
		for (uint256 i = 0; i < _count; i++) {
			_receivers[i] = msg.sender;
		}
		return claimManyFor(_tokenIds, _receivers);
	}

	function claimManyFor(uint256[] memory _tokenIds, address[] memory _receivers) public payable returns (uint256 totalClaimed) {
		uint256 _count = _tokenIds.length;
		require(_count > 0 && _count == _receivers.length);
		require(msg.value >= CLAIM_COST * _count);
		totalClaimed = 0;
		for (uint256 i = 0; i < _count; i++) {
			if (!getClaimed(_tokenIds[i])) {
				_claim(_tokenIds[i], _receivers[i]);
				totalClaimed++;
			}
		}
		require(totalClaimed > 0);
		uint256 _cost = CLAIM_COST * totalClaimed;
		if (msg.value > _cost) {
			msg.sender.transfer(msg.value - _cost);
		}
	}

	function rename(uint256 _tokenId, string calldata _newName) external {
		require(bytes(_newName).length <= MAX_NAME_LENGTH);
		require(msg.sender == ownerOf(_tokenId));
		info.list[_tokenId].name = _newName;
		emit Rename(msg.sender, _tokenId, _newName);
	}

	function approve(address _approved, uint256 _tokenId) external {
		require(msg.sender == ownerOf(_tokenId));
		info.list[_tokenId].approved = _approved;
		emit Approval(msg.sender, _approved, _tokenId);
	}

	function setApprovalForAll(address _operator, bool _approved) external {
		info.users[msg.sender].approved[_operator] = _approved;
		emit ApprovalForAll(msg.sender, _operator, _approved);
	}

	function transferFrom(address _from, address _to, uint256 _tokenId) external {
		_transfer(_from, _to, _tokenId);
	}

	function safeTransferFrom(address _from, address _to, uint256 _tokenId) external {
		safeTransferFrom(_from, _to, _tokenId, "");
	}

	function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory _data) public {
		_transfer(_from, _to, _tokenId);
		uint32 _size;
		assembly {
			_size := extcodesize(_to)
		}
		if (_size > 0) {
			require(Receiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data) == 0x150b7a02);
		}
	}


	function name() external view returns (string memory) {
		return info.metadata.name();
	}

	function symbol() external view returns (string memory) {
		return info.metadata.symbol();
	}

	function contractURI() external view returns (string memory) {
		return info.metadata.contractURI();
	}

	function baseTokenURI() external view returns (string memory) {
		return info.metadata.baseTokenURI();
	}

	function tokenURI(uint256 _tokenId) external view returns (string memory) {
		return info.metadata.tokenURI(_tokenId);
	}

	function owner() public view returns (address) {
		return info.owner;
	}

	function totalSupply() public pure returns (uint256) {
		return TOTAL_RIBBITS;
	}

	function balanceOf(address _owner) public view returns (uint256) {
		return info.users[_owner].list.length;
	}

	function ownerOf(uint256 _tokenId) public view returns (address) {
		require(_tokenId < totalSupply());
		return info.list[_tokenId].owner;
	}

	function getApproved(uint256 _tokenId) public view returns (address) {
		require(_tokenId < totalSupply());
		return info.list[_tokenId].approved;
	}

	function isApprovedForAll(address _owner, address _operator) public view returns (bool) {
		return info.users[_owner].approved[_operator];
	}

	function getName(uint256 _tokenId) public view returns (string memory) {
		require(_tokenId < totalSupply());
		return info.list[_tokenId].name;
	}

	function getClaimed(uint256 _tokenId) public view returns (bool) {
		require(_tokenId < totalSupply());
		return info.list[_tokenId].claimed;
	}

	function tokenByIndex(uint256 _index) external pure returns (uint256) {
		require(_index < totalSupply());
		return _index;
	}

	function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256) {
		require(_index < balanceOf(_owner));
		return info.users[_owner].list[_index];
	}

	function getRibbit(uint256 _tokenId) public view returns (address tokenOwner, address approved, string memory tokenName, bool claimed) {
		return (ownerOf(_tokenId), getApproved(_tokenId), getName(_tokenId), getClaimed(_tokenId));
	}

	function getRibbits(uint256[] memory _tokenIds) public view returns (address[] memory owners, address[] memory approveds, bool[] memory claimeds) {
		uint256 _length = _tokenIds.length;
		owners = new address[](_length);
		approveds = new address[](_length);
		claimeds = new bool[](_length);
		for (uint256 i = 0; i < _length; i++) {
			(owners[i], approveds[i], , claimeds[i]) = getRibbit(_tokenIds[i]);
		}
	}

	function getRibbitsTable(uint256 _limit, uint256 _page, bool _isAsc) public view returns (uint256[] memory tokenIds, address[] memory owners, address[] memory approveds, bool[] memory claimeds, uint256 totalRibbits, uint256 totalPages) {
		require(_limit > 0);
		totalRibbits = totalSupply();

		if (totalRibbits > 0) {
			totalPages = (totalRibbits / _limit) + (totalRibbits % _limit == 0 ? 0 : 1);
			require(_page < totalPages);

			uint256 _offset = _limit * _page;
			if (_page == totalPages - 1 && totalRibbits % _limit != 0) {
				_limit = totalRibbits % _limit;
			}

			tokenIds = new uint256[](_limit);
			for (uint256 i = 0; i < _limit; i++) {
				tokenIds[i] = (_isAsc ? _offset + i : totalRibbits - _offset - i - 1);
			}
		} else {
			totalPages = 0;
			tokenIds = new uint256[](0);
		}
		(owners, approveds, claimeds) = getRibbits(tokenIds);
	}

	function getOwnerRibbitsTable(address _owner, uint256 _limit, uint256 _page, bool _isAsc) public view returns (uint256[] memory tokenIds, address[] memory approveds, uint256 totalRibbits, uint256 totalPages) {
		require(_limit > 0);
		totalRibbits = balanceOf(_owner);

		if (totalRibbits > 0) {
			totalPages = (totalRibbits / _limit) + (totalRibbits % _limit == 0 ? 0 : 1);
			require(_page < totalPages);

			uint256 _offset = _limit * _page;
			if (_page == totalPages - 1 && totalRibbits % _limit != 0) {
				_limit = totalRibbits % _limit;
			}

			tokenIds = new uint256[](_limit);
			for (uint256 i = 0; i < _limit; i++) {
				tokenIds[i] = tokenOfOwnerByIndex(_owner, _isAsc ? _offset + i : totalRibbits - _offset - i - 1);
			}
		} else {
			totalPages = 0;
			tokenIds = new uint256[](0);
		}
		( , approveds, ) = getRibbits(tokenIds);
	}

	function allClaimeds() external view returns (bool[] memory claimeds) {
		uint256 _length = totalSupply();
		claimeds = new bool[](_length);
		for (uint256 i = 0; i < _length; i++) {
			claimeds[i] = getClaimed(i);
		}
	}

	function allInfoFor(address _owner) external view returns (uint256 supply, uint256 ownerBalance) {
		return (totalSupply(), balanceOf(_owner));
	}


	function _transfer(address _from, address _to, uint256 _tokenId) internal {
		(address _owner, address _approved, , ) = getRibbit(_tokenId);
		require(_from == _owner);
		require(msg.sender == _owner || msg.sender == _approved || isApprovedForAll(_owner, msg.sender));

		info.list[_tokenId].owner = _to;
		if (_approved != address(0x0)) {
			info.list[_tokenId].approved = address(0x0);
			emit Approval(address(0x0), address(0x0), _tokenId);
		}

		uint256 _index = info.users[_from].indexOf[_tokenId] - 1;
		uint256 _movedRibbit = info.users[_from].list[info.users[_from].list.length - 1];
		info.users[_from].list[_index] = _movedRibbit;
		info.users[_from].indexOf[_movedRibbit] = _index + 1;
		info.users[_from].list.length--;
		delete info.users[_from].indexOf[_tokenId];
		info.users[_to].indexOf[_tokenId] = info.users[_to].list.push(_tokenId);
		emit Transfer(_from, _to, _tokenId);
	}

	function _claim(uint256 _tokenId, address _receiver) internal {
		require(!getClaimed(_tokenId));
		info.list[_tokenId].claimed = true;
		info.list[_tokenId].owner = _receiver;
		info.users[_receiver].indexOf[_tokenId] = info.users[_receiver].list.push(_tokenId);
		emit Transfer(address(0x0), _receiver, _tokenId);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract Ribbits","name":"_ribbits","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokens","type":"uint256"},{"internalType":"uint256","name":"totalLPTokens","type":"uint256"},{"internalType":"uint256","name":"wethReserve","type":"uint256"},{"internalType":"uint256","name":"wrbtReserve","type":"uint256"},{"internalType":"uint256","name":"userRibbits","type":"uint256"},{"internalType":"bool","name":"userApproved","type":"bool"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userLPBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"unwrap","outputs":[{"internalType":"uint256","name":"totalUnwrapped","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"wrap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516110e23803806110e28339818101604052602081101561003357600080fd5b5051600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556040805163c45a015560e01b815290516001600160a01b03929092169163c45a015591600480820192602092909190829003018186803b1580156100a057600080fd5b505afa1580156100b4573d6000803e3d6000fd5b505050506040513d60208110156100ca57600080fd5b5051600254604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b15801561011857600080fd5b505afa15801561012c573d6000803e3d6000fd5b505050506040513d602081101561014257600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b15801561019157600080fd5b505af11580156101a5573d6000803e3d6000fd5b505050506040513d60208110156101bb57600080fd5b5051600380546001600160a01b0319166001600160a01b03928316179055600254604080516315ab88c960e31b81529051919092169163ad5c4648916004808301926020929190829003018186803b15801561021657600080fd5b505afa15801561022a573d6000803e3d6000fd5b505050506040513d602081101561024057600080fd5b505160035460408051630dfe168160e01b815290516001600160a01b039384169390921691630dfe168191600480820192602092909190829003018186803b15801561028b57600080fd5b505afa15801561029f573d6000803e3d6000fd5b505050506040513d60208110156102b557600080fd5b50516004805460ff60a01b19166001600160a01b0392831693909314600160a01b02929092176001600160a01b0319169216919091179055610de6806102fc6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806357f6b8121161008c57806395d89b411161006657806395d89b4114610383578063a9059cbb1461038b578063cc17a5bf146103b7578063dd62ed3e14610429576100cf565b806357f6b8121461028457806363ac2a4c146102ed57806370a082311461035d576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab578063313ce567146101e15780634000aea0146101ff575b600080fd5b6100dc610457565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610482565b604080519115158252519081900360200190f35b6101996104ea565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b038135811691602081013590911690604001356104f0565b6101e9610556565b6040805160ff9092168252519081900360200190f35b61017d6004803603606081101561021557600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561024557600080fd5b82018360208201111561025757600080fd5b8035906020019184600183028401116401000000008311171561027957600080fd5b50909250905061055b565b6102aa6004803603602081101561029a57600080fd5b50356001600160a01b031661063f565b6040805198895260208901979097528787019590955260608701939093526080860191909152151560a085015260c084015260e083015251908190036101000190f35b6101996004803603602081101561030357600080fd5b81019060208101813564010000000081111561031e57600080fd5b82018360208201111561033057600080fd5b8035906020019184602083028401116401000000008311171561035257600080fd5b50909250905061098e565b6101996004803603602081101561037357600080fd5b50356001600160a01b0316610b7f565b6100dc610b9a565b61017d600480360360408110156103a157600080fd5b506001600160a01b038135169060200135610bba565b610427600480360360208110156103cd57600080fd5b8101906020810181356401000000008111156103e857600080fd5b8201836020820111156103fa57600080fd5b8035906020019184602083028401116401000000008311171561041c57600080fd5b509092509050610bce565b005b6101996004803603604081101561043f57600080fd5b506001600160a01b0381358116916020013516610cfd565b6040518060400160405280600f81526020016e57726170706564205269626269747360881b81525081565b3360008181526001602081815260408084206001600160a01b0388168086529301825280842086905580518681529051939492937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60005490565b6000806104fd8533610cfd565b90508281101561050c57600080fd5b6000198114610542576001600160a01b038516600090815260016020818152604080842033855290920190529020805484900390555b61054d858585610d29565b95945050505050565b601281565b6000610568338686610d29565b50843b63ffffffff81161561063357604051636be32e7360e01b8152336004820181815260248301889052606060448401908152606484018790526001600160a01b038a1693636be32e7393928a928a928a929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b1580156105fe57600080fd5b505af1158015610612573d6000803e3d6000fd5b505050506040513d602081101561062857600080fd5b505161063357600080fd5b50600195945050505050565b6000806000806000806000806106536104ea565b600354604080516318160ddd60e01b81529051929a506001600160a01b03909116916318160ddd91600480820192602092909190829003018186803b15801561069b57600080fd5b505afa1580156106af573d6000803e3d6000fd5b505050506040513d60208110156106c557600080fd5b505160035460408051630240bc6b60e21b8152905192995060009283926001600160a01b031691630902f1ac916004808301926060929190829003018186803b15801561071157600080fd5b505afa158015610725573d6000803e3d6000fd5b505050506040513d606081101561073b57600080fd5b5080516020909101516004546dffffffffffffffffffffffffffff928316945091169150600160a01b900460ff166107735780610775565b815b600454909850600160a01b900460ff1661078f5781610791565b805b9650600060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318c6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561080157600080fd5b505afa158015610815573d6000803e3d6000fd5b505050506040513d602081101561082b57600080fd5b81019080805190602001909291905050509550600060040160009054906101000a90046001600160a01b03166001600160a01b031663e985e9c58c306040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b1580156108c657600080fd5b505afa1580156108da573d6000803e3d6000fd5b505050506040513d60208110156108f057600080fd5b505194506108fd8b610b7f565b600354604080516370a0823160e01b81526001600160a01b038f8116600483015291519397509116916370a0823191602480820192602092909190829003018186803b15801561094c57600080fd5b505afa158015610960573d6000803e3d6000fd5b505050506040513d602081101561097657600080fd5b5051999b989a50969895979496509294919391925050565b600081670de0b6b3a764000081026109a533610b7f565b10156109b057600080fd5b60009150815b81811015610b085760045430906001600160a01b0316636352211e8787858181106109dd57fe5b905060200201356040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a1857600080fd5b505afa158015610a2c573d6000803e3d6000fd5b505050506040513d6020811015610a4257600080fd5b50516001600160a01b03161415610b00576004546001600160a01b03166323b872dd3033888886818110610a7257fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610ae157600080fd5b505af1158015610af5573d6000803e3d6000fd5b505060019094019350505b6001016109b6565b5060008211610b1657600080fd5b60008054670de0b6b3a764000084029081900382553380835260016020908152604080852080548590039055805184815290519394937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505092915050565b6001600160a01b031660009081526001602052604090205490565b604051806040016040528060048152602001631dd4909560e21b81525081565b6000610bc7338484610d29565b9392505050565b8080610bd957600080fd5b60005b81811015610c96576004546001600160a01b03166323b872dd3330878786818110610c0357fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610c7257600080fd5b505af1158015610c86573d6000803e3d6000fd5b505060019092019150610bdc9050565b5060008054670de0b6b3a7640000830290810182553380835260016020908152604080852080548501905580518481529051939492937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350505050565b6001600160a01b0391821660009081526001602081815260408084209490951683529201909152205490565b600081610d3585610b7f565b1015610d4057600080fd5b6001600160a01b03808516600081815260016020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001939250505056fea265627a7a72315820018b454828847ea364c5929214e10daf49ea332c548f9b07074c88e869f068ea64736f6c63430005110032000000000000000000000000a8e7366031d493a0df88a583196d092f80152029

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806357f6b8121161008c57806395d89b411161006657806395d89b4114610383578063a9059cbb1461038b578063cc17a5bf146103b7578063dd62ed3e14610429576100cf565b806357f6b8121461028457806363ac2a4c146102ed57806370a082311461035d576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab578063313ce567146101e15780634000aea0146101ff575b600080fd5b6100dc610457565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610482565b604080519115158252519081900360200190f35b6101996104ea565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b038135811691602081013590911690604001356104f0565b6101e9610556565b6040805160ff9092168252519081900360200190f35b61017d6004803603606081101561021557600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561024557600080fd5b82018360208201111561025757600080fd5b8035906020019184600183028401116401000000008311171561027957600080fd5b50909250905061055b565b6102aa6004803603602081101561029a57600080fd5b50356001600160a01b031661063f565b6040805198895260208901979097528787019590955260608701939093526080860191909152151560a085015260c084015260e083015251908190036101000190f35b6101996004803603602081101561030357600080fd5b81019060208101813564010000000081111561031e57600080fd5b82018360208201111561033057600080fd5b8035906020019184602083028401116401000000008311171561035257600080fd5b50909250905061098e565b6101996004803603602081101561037357600080fd5b50356001600160a01b0316610b7f565b6100dc610b9a565b61017d600480360360408110156103a157600080fd5b506001600160a01b038135169060200135610bba565b610427600480360360208110156103cd57600080fd5b8101906020810181356401000000008111156103e857600080fd5b8201836020820111156103fa57600080fd5b8035906020019184602083028401116401000000008311171561041c57600080fd5b509092509050610bce565b005b6101996004803603604081101561043f57600080fd5b506001600160a01b0381358116916020013516610cfd565b6040518060400160405280600f81526020016e57726170706564205269626269747360881b81525081565b3360008181526001602081815260408084206001600160a01b0388168086529301825280842086905580518681529051939492937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60005490565b6000806104fd8533610cfd565b90508281101561050c57600080fd5b6000198114610542576001600160a01b038516600090815260016020818152604080842033855290920190529020805484900390555b61054d858585610d29565b95945050505050565b601281565b6000610568338686610d29565b50843b63ffffffff81161561063357604051636be32e7360e01b8152336004820181815260248301889052606060448401908152606484018790526001600160a01b038a1693636be32e7393928a928a928a929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b1580156105fe57600080fd5b505af1158015610612573d6000803e3d6000fd5b505050506040513d602081101561062857600080fd5b505161063357600080fd5b50600195945050505050565b6000806000806000806000806106536104ea565b600354604080516318160ddd60e01b81529051929a506001600160a01b03909116916318160ddd91600480820192602092909190829003018186803b15801561069b57600080fd5b505afa1580156106af573d6000803e3d6000fd5b505050506040513d60208110156106c557600080fd5b505160035460408051630240bc6b60e21b8152905192995060009283926001600160a01b031691630902f1ac916004808301926060929190829003018186803b15801561071157600080fd5b505afa158015610725573d6000803e3d6000fd5b505050506040513d606081101561073b57600080fd5b5080516020909101516004546dffffffffffffffffffffffffffff928316945091169150600160a01b900460ff166107735780610775565b815b600454909850600160a01b900460ff1661078f5781610791565b805b9650600060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318c6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561080157600080fd5b505afa158015610815573d6000803e3d6000fd5b505050506040513d602081101561082b57600080fd5b81019080805190602001909291905050509550600060040160009054906101000a90046001600160a01b03166001600160a01b031663e985e9c58c306040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b1580156108c657600080fd5b505afa1580156108da573d6000803e3d6000fd5b505050506040513d60208110156108f057600080fd5b505194506108fd8b610b7f565b600354604080516370a0823160e01b81526001600160a01b038f8116600483015291519397509116916370a0823191602480820192602092909190829003018186803b15801561094c57600080fd5b505afa158015610960573d6000803e3d6000fd5b505050506040513d602081101561097657600080fd5b5051999b989a50969895979496509294919391925050565b600081670de0b6b3a764000081026109a533610b7f565b10156109b057600080fd5b60009150815b81811015610b085760045430906001600160a01b0316636352211e8787858181106109dd57fe5b905060200201356040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a1857600080fd5b505afa158015610a2c573d6000803e3d6000fd5b505050506040513d6020811015610a4257600080fd5b50516001600160a01b03161415610b00576004546001600160a01b03166323b872dd3033888886818110610a7257fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610ae157600080fd5b505af1158015610af5573d6000803e3d6000fd5b505060019094019350505b6001016109b6565b5060008211610b1657600080fd5b60008054670de0b6b3a764000084029081900382553380835260016020908152604080852080548590039055805184815290519394937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505092915050565b6001600160a01b031660009081526001602052604090205490565b604051806040016040528060048152602001631dd4909560e21b81525081565b6000610bc7338484610d29565b9392505050565b8080610bd957600080fd5b60005b81811015610c96576004546001600160a01b03166323b872dd3330878786818110610c0357fe5b905060200201356040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610c7257600080fd5b505af1158015610c86573d6000803e3d6000fd5b505060019092019150610bdc9050565b5060008054670de0b6b3a7640000830290810182553380835260016020908152604080852080548501905580518481529051939492937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350505050565b6001600160a01b0391821660009081526001602081815260408084209490951683529201909152205490565b600081610d3585610b7f565b1015610d4057600080fd5b6001600160a01b03808516600081815260016020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001939250505056fea265627a7a72315820018b454828847ea364c5929214e10daf49ea332c548f9b07074c88e869f068ea64736f6c63430005110032

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000a8e7366031d493a0df88a583196d092f80152029

-----Decoded View---------------
Arg [0] : _ribbits (address): 0xa8e7366031d493A0dF88A583196d092f80152029

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000a8e7366031d493a0df88a583196d092f80152029


Deployed Bytecode Sourcemap

1963:4247:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1963:4247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2046:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2046:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4060:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4060:203:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4925:86;;;:::i;:::-;;;;;;;;;;;;;;;;4268:321;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4268:321:0;;;;;;;;;;;;;;;;;:::i;2139:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4594:323;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;4594:323:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4594:323:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4594:323:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;4594:323:0;;-1:-1:-1;4594:323:0;-1:-1:-1;4594:323:0;:::i;5268:663::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5268:663:0;-1:-1:-1;;;;;5268:663:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3309:617;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3309:617:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3309:617:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3309:617:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;3309:617:0;;-1:-1:-1;3309:617:0;-1:-1:-1;3309:617:0;:::i;5016:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5016:106:0;-1:-1:-1;;;;;5016:106:0;;:::i;2097:38::-;;;:::i;3931:124::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3931:124:0;;;;;;;;:::i;2898:406::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2898:406:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2898:406:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2898:406:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;2898:406:0;;-1:-1:-1;2898:406:0;-1:-1:-1;2898:406:0;:::i;:::-;;5127:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5127:136:0;;;;;;;;;;:::i;2046:47::-;;;;;;;;;;;;;;-1:-1:-1;;;2046:47:0;;;;:::o;4060:203::-;4152:10;4130:4;4141:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;4141:42:0;;;;;:32;;:42;;;;;:52;;;4203:39;;;;;;;4130:4;;4141:42;;4203:39;;;;;;;;;;;-1:-1:-1;4254:4:0;4060:203;;;;:::o;4925:86::-;4969:7;4990:16;4925:86;:::o;4268:321::-;4353:4;4364:18;4385:28;4395:5;4402:10;4385:9;:28::i;:::-;4364:49;;4440:7;4426:10;:21;;4418:30;;;;;;-1:-1:-1;;4457:10:0;:22;4453:90;;-1:-1:-1;;;;;4487:17:0;;:4;:17;;;:10;:17;;;;;;;;4515:10;4487:39;;:27;;;:39;;;;:50;;;;;;;4453:90;4554:30;4564:5;4571:3;4576:7;4554:9;:30::i;:::-;4547:37;4268:321;-1:-1:-1;;;;;4268:321:0:o;2139:35::-;2172:2;2139:35;:::o;4594:323::-;4689:4;4700:35;4710:10;4722:3;4727:7;4700:9;:35::i;:::-;-1:-1:-1;4781:16:0;;4810:9;;;;4806:91;;4835:55;;-1:-1:-1;;;4835:55:0;;4863:10;4835:55;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4835:27:0;;;;;4863:10;4875:7;;4884:5;;;;4835:55;;;;4884:5;;;;4835:55;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4835:55:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4835:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4835:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4835:55:0;4827:64;;;;;;-1:-1:-1;4908:4:0;;4594:323;-1:-1:-1;;;;;4594:323:0:o;5268:663::-;5326:19;5347:21;5370:19;5391;5412;5433:17;5452:19;5473:21;5515:13;:11;:13::i;:::-;5549:9;;:23;;;-1:-1:-1;;;5549:23:0;;;;5501:27;;-1:-1:-1;;;;;;5549:9:0;;;;:21;;:23;;;;;;;;;;;;;;;:9;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;5549:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5549:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5549:23:0;5612:9;;:23;;;-1:-1:-1;;;5612:23:0;;;;5549;;-1:-1:-1;5578:13:0;;;;-1:-1:-1;;;;;5612:9:0;;:21;;:23;;;;;;;;;;;;;;:9;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;5612:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5612:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5612:23:0;;;;;;;5654:10;;5577:58;;;;;-1:-1:-1;5577:58:0;;;-1:-1:-1;;;;5654:10:0;;;;:26;;5675:5;5654:26;;;5667:5;5654:26;5699:10;;5640:40;;-1:-1:-1;;;;5699:10:0;;;;:26;;5720:5;5699:26;;;5712:5;5699:26;5685:40;;5744:4;:12;;;;;;;;;;-1:-1:-1;;;;;5744:12:0;-1:-1:-1;;;;;5744:22:0;;5767:5;5744:29;;;;;;;;;;;;;-1:-1:-1;;;;;5744:29:0;-1:-1:-1;;;;;5744:29:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5744:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5744:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5744:29:0;;;;;;;;;;;;;;;;5730:43;;5793:4;:12;;;;;;;;;;-1:-1:-1;;;;;5793:12:0;-1:-1:-1;;;;;5793:29:0;;5823:5;5838:4;5793:51;;;;;;;;;;;;;-1:-1:-1;;;;;5793:51:0;-1:-1:-1;;;;;5793:51:0;;;;;;-1:-1:-1;;;;;5793:51:0;-1:-1:-1;;;;;5793:51:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5793:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5793:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5793:51:0;;-1:-1:-1;5863:16:0;5873:5;5863:9;:16::i;:::-;5900:9;;:26;;;-1:-1:-1;;;5900:26:0;;-1:-1:-1;;;;;5900:26:0;;;;;;;;;5849:30;;-1:-1:-1;5900:9:0;;;:19;;:26;;;;;;;;;;;;;;;:9;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;5900:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5900:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5900:26:0;5268:663;;;;-1:-1:-1;5268:663:0;;;;;;-1:-1:-1;5268:663:0;;;;5900:26;;-1:-1:-1;;5268:663:0:o;3309:617::-;3373:22;3419:9;3482:4;3473:13;;3448:21;3458:10;3448:9;:21::i;:::-;:38;;3440:47;;;;;;3509:1;;-1:-1:-1;3509:1:0;3515:208;3539:6;3535:1;:10;3515:208;;;3562:12;;3608:4;;-1:-1:-1;;;;;3562:12:0;:20;3583:9;;3593:1;3583:12;;;;;;;;;;;;;3562:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3562:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3562:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3562:34:0;-1:-1:-1;;;;;3562:51:0;;3558:160;;;3622:12;;-1:-1:-1;;;;;3622:12:0;:25;3656:4;3663:10;3675:9;;3685:1;3675:12;;;;;;;;;;;;;3622:66;;;;;;;;;;;;;-1:-1:-1;;;;;3622:66:0;-1:-1:-1;;;;;3622:66:0;;;;;;-1:-1:-1;;;;;3622:66:0;-1:-1:-1;;;;;3622:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3622:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3695:16:0;;;;;-1:-1:-1;;3558:160:0;3547:3;;3515:208;;;;3752:1;3735:14;:18;3727:27;;;;;;3759:13;3801:25;;3792:4;3775:21;;3801:25;;;;;;3842:10;3831:22;;;-1:-1:-1;3831:22:0;;;;;;;;:39;;;;;;;3880:41;;;;;;;3775:21;;3759:13;3880:41;;;;;;;;;;;3309:617;;;;;;:::o;5016:106::-;-1:-1:-1;;;;;5092:17:0;5071:7;5092:17;;;:10;:17;;;;;:25;;5016:106::o;2097:38::-;;;;;;;;;;;;;;-1:-1:-1;;;2097:38:0;;;;:::o;3931:124::-;3997:4;4015:35;4025:10;4037:3;4042:7;4015:9;:35::i;:::-;4008:42;3931:124;-1:-1:-1;;;3931:124:0:o;2898:406::-;2973:9;3002:10;2994:19;;;;;;3023:9;3018:115;3042:6;3038:1;:10;3018:115;;;3061:12;;-1:-1:-1;;;;;3061:12:0;:25;3087:10;3107:4;3114:9;;3124:1;3114:12;;;;;;;;;;;;;3061:66;;;;;;;;;;;;;-1:-1:-1;;;;;3061:66:0;-1:-1:-1;;;;;3061:66:0;;;;;;-1:-1:-1;;;;;3061:66:0;-1:-1:-1;;;;;3061:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3061:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3050:3:0;;;;;-1:-1:-1;3018:115:0;;-1:-1:-1;3018:115:0;;-1:-1:-1;3137:15:0;3173:27;;3164:4;3155:13;;3173:27;;;;;3216:10;3205:22;;;-1:-1:-1;3205:22:0;;;;;;;;:41;;;;;;3256:43;;;;;;;3155:13;;3216:10;;3256:43;;;;;;;;;;;2898:406;;;;:::o;5127:136::-;-1:-1:-1;;;;;5221:17:0;;;5200:7;5221:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;:37;;;;;;5127:136::o;5938:269::-;6020:4;6059:7;6039:16;6049:5;6039:9;:16::i;:::-;:27;;6031:36;;;;;;-1:-1:-1;;;;;6072:17:0;;;:4;:17;;;:10;:17;;;;;;;;:36;;;;;;;6113:15;;;;;;;;;;:34;;;;;;6157:29;;;;;;;6113:15;;6157:29;;;;;;;;;;;-1:-1:-1;6198:4:0;5938:269;;;;;:::o

Swarm Source

bzzr://018b454828847ea364c5929214e10daf49ea332c548f9b07074c88e869f068ea
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.