Overview
CELO Balance
CELO Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Multichain Info
Latest 25 from a total of 25 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 56576875 | 15 days ago | IN | 0 CELO | 0.00124032 | ||||
| Approve | 56576875 | 15 days ago | IN | 0 CELO | 0.0006875 | ||||
| Approve | 56576875 | 15 days ago | IN | 0 CELO | 0.00124032 | ||||
| Approve | 56576875 | 15 days ago | IN | 0 CELO | 0.0006875 | ||||
| Approve | 56576875 | 15 days ago | IN | 0 CELO | 0.00124032 | ||||
| Approve | 56576875 | 15 days ago | IN | 0 CELO | 0.0006875 | ||||
| Approve | 56576810 | 15 days ago | IN | 0 CELO | 0.00124032 | ||||
| Approve | 56576810 | 15 days ago | IN | 0 CELO | 0.0006875 | ||||
| Approve | 56576784 | 15 days ago | IN | 0 CELO | 0.00124032 | ||||
| Approve | 56576778 | 15 days ago | IN | 0 CELO | 0.0006875 | ||||
| Approve | 56572187 | 15 days ago | IN | 0 CELO | 0.00124032 | ||||
| Approve | 56572187 | 15 days ago | IN | 0 CELO | 0.0006875 | ||||
| Approve | 56571989 | 15 days ago | IN | 0 CELO | 0.00124032 | ||||
| Approve | 56571989 | 15 days ago | IN | 0 CELO | 0.0006875 | ||||
| Approve | 56571813 | 15 days ago | IN | 0 CELO | 0.00124032 | ||||
| Approve | 56571813 | 15 days ago | IN | 0 CELO | 0.0006875 | ||||
| Approve | 55966803 | 22 days ago | IN | 0 CELO | 0.00124062 | ||||
| Approve | 55966803 | 22 days ago | IN | 0 CELO | 0.0006875 | ||||
| Transfer | 55963286 | 22 days ago | IN | 0 CELO | 0.0008221 | ||||
| Transfer | 55963185 | 22 days ago | IN | 0 CELO | 0.0008221 | ||||
| Transfer | 55962706 | 22 days ago | IN | 0 CELO | 0.0008221 | ||||
| Transfer | 55962328 | 22 days ago | IN | 0 CELO | 0.00094211 | ||||
| Transfer | 55962015 | 22 days ago | IN | 0 CELO | 0.0008218 | ||||
| Approve | 55961860 | 22 days ago | IN | 0 CELO | 0.00124757 | ||||
| Approve | 55961860 | 22 days ago | IN | 0 CELO | 0.00069135 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x045B7f4D...8Dd48D834 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Source Code (Solidity)
/**
*Submitted for verification at celoscan.io on 2025-07-02
*/
pragma solidity >=0.8.0;
// SPDX-License-Identifier: AGPL-3.0-or-later
// File-Version: 3
contract GiftableToken {
// Implements EIP173
address public owner;
// Implements Writer
mapping(address => bool) writer;
// Implements ERC20
string public name;
// Implements ERC20
string public symbol;
// Implements ERC20
uint8 public decimals;
// Implements ERC20
mapping (address => uint256) public balanceOf;
// Implements ERC20
mapping (address => mapping (address => uint256)) public allowance;
// Implements Burner
uint256 public totalMinted;
// Implements Burner
uint256 public totalBurned;
// Implements Expire
uint256 public expires;
bool expired;
// Implements ERC20
event Transfer(address indexed _from, address indexed _to, uint256 _value);
// Implements ERC20
event TransferFrom(address indexed _from, address indexed _to, address indexed _spender, uint256 _value);
// Implements ERC20
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
// Implements Minter
event Mint(address indexed _minter, address indexed _beneficiary, uint256 _value);
// Implement Expire
event Expired(uint256 _timestamp);
// EIP173
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // EIP173
// Implements Writer
event WriterAdded(address _writer);
// Implements Writer
event WriterRemoved(address _writer);
// Implements Burner
event Burn(uint256 _value);
constructor(string memory _name, string memory _symbol, uint8 _decimals, uint256 _expireTimestamp) {
owner = msg.sender;
name = _name;
symbol = _symbol;
decimals = _decimals;
expires = _expireTimestamp;
}
// Implements ERC20
function totalSupply() public view returns (uint256) {
return totalMinted - totalBurned;
}
mapping(address => bool) writers;
// Implements Minter
function mintTo(address _to, uint256 _value) public returns (bool) {
require(writers[msg.sender] || msg.sender == owner);
balanceOf[_to] += _value;
totalMinted += _value;
emit Mint(msg.sender, _to, _value);
return true;
}
// Implements Minter
// Implements ERC5679Ext20
function mint(address _to, uint256 _value, bytes calldata _data) public {
_data;
mintTo(_to, _value);
}
// Implements Writer
function addWriter(address _minter) public returns (bool) {
require(msg.sender == owner);
writers[_minter] = true;
return true;
}
// Implements Writer
function deleteWriter(address _minter) public returns (bool) {
require(msg.sender == owner || msg.sender == _minter);
writers[_minter] = false;
return true;
}
// Implements Writer
function isWriter(address _minter) public view returns(bool) {
return writers[_minter] || _minter == owner;
}
// Implements Expire
function applyExpiry() public returns(uint8) {
if (expires == 0) {
return 0;
}
if (expired) {
return 1;
}
if (block.timestamp >= expires) {
expired = true;
emit Expired(block.timestamp);
return 2;
}
return 0;
}
// Implements ERC20
function transfer(address _to, uint256 _value) public returns (bool) {
require(applyExpiry() == 0);
require(balanceOf[msg.sender] >= _value);
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
emit Transfer(msg.sender, _to, _value);
return true;
}
// Implements Burner
function burn(uint256 _value) public returns (bool) {
require(msg.sender == owner, 'ERR_ACCESS');
require(balanceOf[msg.sender] >= _value, 'ERR_FUNDS');
balanceOf[msg.sender] -= _value;
totalBurned += _value;
emit Burn(_value);
return true;
}
// Implements Burner
function burn() public returns(bool) {
return burn(balanceOf[msg.sender]);
}
// Implements Burner
// Implements ERC5679Ext20
function burn(address _from, uint256 _value, bytes calldata _data) public {
require(msg.sender == _from, 'ERR_NOT_SELF');
_data;
burn(_value);
}
// Implements ERC20
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(applyExpiry() == 0);
require(allowance[_from][msg.sender] >= _value);
require(balanceOf[_from] >= _value);
allowance[_from][msg.sender] = allowance[_from][msg.sender] - _value;
balanceOf[_from] -= _value;
balanceOf[_to] += _value;
emit TransferFrom(_from, _to, msg.sender, _value);
return true;
}
// Implements ERC20
function approve(address _spender, uint256 _value) public returns (bool) {
require(applyExpiry() == 0);
if (_value > 0) {
require(allowance[msg.sender][_spender] == 0);
}
allowance[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
// Implements EIP173
function transferOwnership(address _newOwner) public returns (bool) {
address oldOwner;
require(msg.sender == owner);
oldOwner = owner;
owner = _newOwner;
emit OwnershipTransferred(oldOwner, owner);
return true;
}
// Implements EIP165
function supportsInterface(bytes4 _sum) public pure returns (bool) {
if (_sum == 0xb61bc941) { // ERC20
return true;
}
if (_sum == 0x449a52f8) { // Minter
return true;
}
if (_sum == 0x01ffc9a7) { // EIP165
return true;
}
if (_sum == 0x9493f8b2) { // EIP173
return true;
}
if (_sum == 0xabe1f1f5) { // Writer
return true;
}
if (_sum == 0xb1110c1b) { // Burner
return true;
}
if (_sum == 0x841a0e94) { // Expire
return true;
}
return false;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint256","name":"_expireTimestamp","type":"uint256"}],"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":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"Expired","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_minter","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"TransferFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_writer","type":"address"}],"name":"WriterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_writer","type":"address"}],"name":"WriterRemoved","type":"event"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"applyExpiry","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"deleteWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"expires","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"isWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"mintTo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
0x608060405234801561000f575f5ffd5b506040516110ec3803806110ec83398101604081905261002e9161012b565b5f80546001600160a01b03191633179055600261004b8582610232565b5060036100588482610232565b506004805460ff191660ff9390931692909217909155600955506102ec9050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261009c575f5ffd5b81516001600160401b038111156100b5576100b5610079565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100e3576100e3610079565b6040528181528382016020018510156100fa575f5ffd5b5f5b82811015610118576020818601810151838301820152016100fc565b505f918101602001919091529392505050565b5f5f5f5f6080858703121561013e575f5ffd5b84516001600160401b03811115610153575f5ffd5b61015f8782880161008d565b602087015190955090506001600160401b0381111561017c575f5ffd5b6101888782880161008d565b935050604085015160ff8116811461019e575f5ffd5b6060959095015193969295505050565b600181811c908216806101c257607f821691505b6020821081036101e057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561022d57805f5260205f20601f840160051c8101602085101561020b5750805b601f840160051c820191505b8181101561022a575f8155600101610217565b50505b505050565b81516001600160401b0381111561024b5761024b610079565b61025f8161025984546101ae565b846101e6565b6020601f821160018114610291575f831561027a5750848201515b5f19600385901b1c1916600184901b17845561022a565b5f84815260208120601f198516915b828110156102c057878501518255602094850194600190920191016102a0565b50848210156102dd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610df3806102f95f395ff3fe608060405234801561000f575f5ffd5b5060043610610153575f3560e01c80635f408c04116100bf578063a9059cbb11610079578063a9059cbb146102cd578063b1cb0db3146102e0578063d89135cd146102e9578063da2824a8146102f2578063dd62ed3e14610305578063f2fde38b1461032f575f5ffd5b80635f408c041461025857806370a08231146102605780638da5cb5b1461027f57806394d008ef146102a957806395d89b41146102bc578063a2309ff8146102c4575f5ffd5b8063313ce56711610110578063313ce567146101e357806342966c6814610202578063449a52f81461021557806344d171871461022857806344df8e701461023d5780635ae06f7e14610245575f5ffd5b806301ffc9a71461015757806306fdde031461017f578063095ea7b31461019457806318160ddd146101a757806323b872dd146101bd5780632b29ba23146101d0575b5f5ffd5b61016a610165366004610b71565b610342565b60405190151581526020015b60405180910390f35b61018761042a565b6040516101769190610b9f565b61016a6101a2366004610c05565b6104b6565b6101af610562565b604051908152602001610176565b61016a6101cb366004610c2d565b610578565b61016a6101de366004610c67565b6106cd565b6004546101f09060ff1681565b60405160ff9091168152602001610176565b61016a610210366004610c80565b610702565b61016a610223366004610c05565b61080e565b61023b610236366004610c97565b6108bd565b005b61016a610914565b61016a610253366004610c67565b61092c565b6101f0610979565b6101af61026e366004610c67565b60056020525f908152604090205481565b5f54610291906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61023b6102b7366004610c97565b6109f4565b6101876109fe565b6101af60075481565b61016a6102db366004610c05565b610a0b565b6101af60095481565b6101af60085481565b61016a610300366004610c67565b610ac6565b6101af610313366004610d1a565b600660209081525f928352604080842090915290825290205481565b61016a61033d366004610c67565b610b04565b5f6001600160e01b0319821663b61bc94160e01b0361036357506001919050565b6001600160e01b031982166308934a5f60e31b0361038357506001919050565b6001600160e01b031982166301ffc9a760e01b036103a357506001919050565b6001600160e01b03198216634a49fc5960e11b036103c357506001919050565b6001600160e01b0319821663abe1f1f560e01b036103e357506001919050565b6001600160e01b0319821663b1110c1b60e01b0361040357506001919050565b6001600160e01b0319821663210683a560e21b0361042357506001919050565b505f919050565b6002805461043790610d4b565b80601f016020809104026020016040519081016040528092919081815260200182805461046390610d4b565b80156104ae5780601f10610485576101008083540402835291602001916104ae565b820191905f5260205f20905b81548152906001019060200180831161049157829003601f168201915b505050505081565b5f6104bf610979565b60ff16156104cb575f5ffd5b81156104fd57335f9081526006602090815260408083206001600160a01b0387168452909152902054156104fd575f5ffd5b335f8181526006602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b5f6008546007546105739190610d97565b905090565b5f610581610979565b60ff161561058d575f5ffd5b6001600160a01b0384165f9081526006602090815260408083203384529091529020548211156105bb575f5ffd5b6001600160a01b0384165f908152600560205260409020548211156105de575f5ffd5b6001600160a01b0384165f90815260066020908152604080832033845290915290205461060c908390610d97565b6001600160a01b0385165f8181526006602090815260408083203384528252808320949094559181526005909152908120805484929061064d908490610d97565b90915550506001600160a01b0383165f9081526005602052604081208054849290610679908490610daa565b909155505060405182815233906001600160a01b0385811691908716907f5f7542858008eeb041631f30e6109ae94b83a58e9a58261dd2c42c508850f9399060200160405180910390a45060019392505050565b6001600160a01b0381165f908152600b602052604081205460ff168061055c5750505f546001600160a01b0390811691161490565b5f80546001600160a01b0316331461074e5760405162461bcd60e51b815260206004820152600a6024820152694552525f41434345535360b01b60448201526064015b60405180910390fd5b335f908152600560205260409020548211156107985760405162461bcd60e51b81526020600482015260096024820152684552525f46554e445360b81b6044820152606401610745565b335f90815260056020526040812080548492906107b6908490610d97565b925050819055508160085f8282546107ce9190610daa565b90915550506040518281527fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9060200160405180910390a1506001919050565b335f908152600b602052604081205460ff168061083457505f546001600160a01b031633145b61083c575f5ffd5b6001600160a01b0383165f9081526005602052604081208054849290610863908490610daa565b925050819055508160075f82825461087b9190610daa565b90915550506040518281526001600160a01b0384169033907fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f890602001610550565b336001600160a01b038516146109045760405162461bcd60e51b815260206004820152600c60248201526b22a9292fa727aa2fa9a2a62360a11b6044820152606401610745565b61090d83610702565b5050505050565b335f9081526005602052604081205461057390610702565b5f80546001600160a01b031633148061094d5750336001600160a01b038316145b610955575f5ffd5b506001600160a01b03165f908152600b60205260409020805460ff19169055600190565b5f6009545f0361098857505f90565b600a5460ff16156109995750600190565b60095442106109ef57600a805460ff191660011790556040517ff80dbaea4785589e52984ca36a31de106adc77759539a5c7d92883bf49692fe9906109e19042815260200190565b60405180910390a150600290565b505f90565b61090d848461080e565b6003805461043790610d4b565b5f610a14610979565b60ff1615610a20575f5ffd5b335f90815260056020526040902054821115610a3a575f5ffd5b335f9081526005602052604081208054849290610a58908490610d97565b90915550506001600160a01b0383165f9081526005602052604081208054849290610a84908490610daa565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610550565b5f80546001600160a01b03163314610adc575f5ffd5b506001600160a01b03165f908152600b60205260409020805460ff1916600190811790915590565b5f805481906001600160a01b03163314610b1c575f5ffd5b505f80546001600160a01b038481166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350600192915050565b5f60208284031215610b81575f5ffd5b81356001600160e01b031981168114610b98575f5ffd5b9392505050565b602081525f82518060208401525f5b81811015610bcb5760208186018101516040868401015201610bae565b505f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610c00575f5ffd5b919050565b5f5f60408385031215610c16575f5ffd5b610c1f83610bea565b946020939093013593505050565b5f5f5f60608486031215610c3f575f5ffd5b610c4884610bea565b9250610c5660208501610bea565b929592945050506040919091013590565b5f60208284031215610c77575f5ffd5b610b9882610bea565b5f60208284031215610c90575f5ffd5b5035919050565b5f5f5f5f60608587031215610caa575f5ffd5b610cb385610bea565b935060208501359250604085013567ffffffffffffffff811115610cd5575f5ffd5b8501601f81018713610ce5575f5ffd5b803567ffffffffffffffff811115610cfb575f5ffd5b876020828401011115610d0c575f5ffd5b949793965060200194505050565b5f5f60408385031215610d2b575f5ffd5b610d3483610bea565b9150610d4260208401610bea565b90509250929050565b600181811c90821680610d5f57607f821691505b602082108103610d7d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561055c5761055c610d83565b8082018082111561055c5761055c610d8356fea26469706673582212208cfe9650d4224347e313bf7a1d6b14bbdf38178a52a5437914f7da607bba820464736f6c634300081e0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000094d616d61207a617261000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024d5a0000000000000000000000000000000000000000000000000000000000006decb85d010080000000000000000000000000d08913a93c2c28b2bf6717264378c57083a5ef5c0000000000000000000000005523058cdffe5f3c1eadadd5015e55c6e00fb43900000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f5ffd5b5060043610610153575f3560e01c80635f408c04116100bf578063a9059cbb11610079578063a9059cbb146102cd578063b1cb0db3146102e0578063d89135cd146102e9578063da2824a8146102f2578063dd62ed3e14610305578063f2fde38b1461032f575f5ffd5b80635f408c041461025857806370a08231146102605780638da5cb5b1461027f57806394d008ef146102a957806395d89b41146102bc578063a2309ff8146102c4575f5ffd5b8063313ce56711610110578063313ce567146101e357806342966c6814610202578063449a52f81461021557806344d171871461022857806344df8e701461023d5780635ae06f7e14610245575f5ffd5b806301ffc9a71461015757806306fdde031461017f578063095ea7b31461019457806318160ddd146101a757806323b872dd146101bd5780632b29ba23146101d0575b5f5ffd5b61016a610165366004610b71565b610342565b60405190151581526020015b60405180910390f35b61018761042a565b6040516101769190610b9f565b61016a6101a2366004610c05565b6104b6565b6101af610562565b604051908152602001610176565b61016a6101cb366004610c2d565b610578565b61016a6101de366004610c67565b6106cd565b6004546101f09060ff1681565b60405160ff9091168152602001610176565b61016a610210366004610c80565b610702565b61016a610223366004610c05565b61080e565b61023b610236366004610c97565b6108bd565b005b61016a610914565b61016a610253366004610c67565b61092c565b6101f0610979565b6101af61026e366004610c67565b60056020525f908152604090205481565b5f54610291906001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61023b6102b7366004610c97565b6109f4565b6101876109fe565b6101af60075481565b61016a6102db366004610c05565b610a0b565b6101af60095481565b6101af60085481565b61016a610300366004610c67565b610ac6565b6101af610313366004610d1a565b600660209081525f928352604080842090915290825290205481565b61016a61033d366004610c67565b610b04565b5f6001600160e01b0319821663b61bc94160e01b0361036357506001919050565b6001600160e01b031982166308934a5f60e31b0361038357506001919050565b6001600160e01b031982166301ffc9a760e01b036103a357506001919050565b6001600160e01b03198216634a49fc5960e11b036103c357506001919050565b6001600160e01b0319821663abe1f1f560e01b036103e357506001919050565b6001600160e01b0319821663b1110c1b60e01b0361040357506001919050565b6001600160e01b0319821663210683a560e21b0361042357506001919050565b505f919050565b6002805461043790610d4b565b80601f016020809104026020016040519081016040528092919081815260200182805461046390610d4b565b80156104ae5780601f10610485576101008083540402835291602001916104ae565b820191905f5260205f20905b81548152906001019060200180831161049157829003601f168201915b505050505081565b5f6104bf610979565b60ff16156104cb575f5ffd5b81156104fd57335f9081526006602090815260408083206001600160a01b0387168452909152902054156104fd575f5ffd5b335f8181526006602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b5f6008546007546105739190610d97565b905090565b5f610581610979565b60ff161561058d575f5ffd5b6001600160a01b0384165f9081526006602090815260408083203384529091529020548211156105bb575f5ffd5b6001600160a01b0384165f908152600560205260409020548211156105de575f5ffd5b6001600160a01b0384165f90815260066020908152604080832033845290915290205461060c908390610d97565b6001600160a01b0385165f8181526006602090815260408083203384528252808320949094559181526005909152908120805484929061064d908490610d97565b90915550506001600160a01b0383165f9081526005602052604081208054849290610679908490610daa565b909155505060405182815233906001600160a01b0385811691908716907f5f7542858008eeb041631f30e6109ae94b83a58e9a58261dd2c42c508850f9399060200160405180910390a45060019392505050565b6001600160a01b0381165f908152600b602052604081205460ff168061055c5750505f546001600160a01b0390811691161490565b5f80546001600160a01b0316331461074e5760405162461bcd60e51b815260206004820152600a6024820152694552525f41434345535360b01b60448201526064015b60405180910390fd5b335f908152600560205260409020548211156107985760405162461bcd60e51b81526020600482015260096024820152684552525f46554e445360b81b6044820152606401610745565b335f90815260056020526040812080548492906107b6908490610d97565b925050819055508160085f8282546107ce9190610daa565b90915550506040518281527fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9060200160405180910390a1506001919050565b335f908152600b602052604081205460ff168061083457505f546001600160a01b031633145b61083c575f5ffd5b6001600160a01b0383165f9081526005602052604081208054849290610863908490610daa565b925050819055508160075f82825461087b9190610daa565b90915550506040518281526001600160a01b0384169033907fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f890602001610550565b336001600160a01b038516146109045760405162461bcd60e51b815260206004820152600c60248201526b22a9292fa727aa2fa9a2a62360a11b6044820152606401610745565b61090d83610702565b5050505050565b335f9081526005602052604081205461057390610702565b5f80546001600160a01b031633148061094d5750336001600160a01b038316145b610955575f5ffd5b506001600160a01b03165f908152600b60205260409020805460ff19169055600190565b5f6009545f0361098857505f90565b600a5460ff16156109995750600190565b60095442106109ef57600a805460ff191660011790556040517ff80dbaea4785589e52984ca36a31de106adc77759539a5c7d92883bf49692fe9906109e19042815260200190565b60405180910390a150600290565b505f90565b61090d848461080e565b6003805461043790610d4b565b5f610a14610979565b60ff1615610a20575f5ffd5b335f90815260056020526040902054821115610a3a575f5ffd5b335f9081526005602052604081208054849290610a58908490610d97565b90915550506001600160a01b0383165f9081526005602052604081208054849290610a84908490610daa565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610550565b5f80546001600160a01b03163314610adc575f5ffd5b506001600160a01b03165f908152600b60205260409020805460ff1916600190811790915590565b5f805481906001600160a01b03163314610b1c575f5ffd5b505f80546001600160a01b038481166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350600192915050565b5f60208284031215610b81575f5ffd5b81356001600160e01b031981168114610b98575f5ffd5b9392505050565b602081525f82518060208401525f5b81811015610bcb5760208186018101516040868401015201610bae565b505f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610c00575f5ffd5b919050565b5f5f60408385031215610c16575f5ffd5b610c1f83610bea565b946020939093013593505050565b5f5f5f60608486031215610c3f575f5ffd5b610c4884610bea565b9250610c5660208501610bea565b929592945050506040919091013590565b5f60208284031215610c77575f5ffd5b610b9882610bea565b5f60208284031215610c90575f5ffd5b5035919050565b5f5f5f5f60608587031215610caa575f5ffd5b610cb385610bea565b935060208501359250604085013567ffffffffffffffff811115610cd5575f5ffd5b8501601f81018713610ce5575f5ffd5b803567ffffffffffffffff811115610cfb575f5ffd5b876020828401011115610d0c575f5ffd5b949793965060200194505050565b5f5f60408385031215610d2b575f5ffd5b610d3483610bea565b9150610d4260208401610bea565b90509250929050565b600181811c90821680610d5f57607f821691505b602082108103610d7d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561055c5761055c610d83565b8082018082111561055c5761055c610d8356fea26469706673582212208cfe9650d4224347e313bf7a1d6b14bbdf38178a52a5437914f7da607bba820464736f6c634300081e0033
Deployed Bytecode Sourcemap
97:5578:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5157:515;;;;;;:::i;:::-;;:::i;:::-;;;470:14:1;;463:22;445:41;;433:2;418:18;5157:515:0;;;;;;;;257:18;;;:::i;:::-;;;;;;;:::i;4526:296::-;;;;;;:::i;:::-;;:::i;1762:95::-;;;:::i;:::-;;;1658:25:1;;;1646:2;1631:18;1762:95:0;1512:177:1;4078:421:0;;;;;;:::i;:::-;;:::i;2736:114::-;;;;;;:::i;:::-;;:::i;347:21::-;;;;;;;;;;;;2436:4:1;2424:17;;;2406:36;;2394:2;2379:18;347:21:0;2264:184:1;3464:266:0;;;;;;:::i;:::-;;:::i;1923:244::-;;;;;;:::i;:::-;;:::i;3896:155::-;;;;;;:::i;:::-;;:::i;:::-;;3758:81;;;:::i;2535:173::-;;;;;;:::i;:::-;;:::i;2878:255::-;;;:::i;394:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;149:20;;;;;-1:-1:-1;;;;;149:20:0;;;;;;-1:-1:-1;;;;;3627:32:1;;;3609:51;;3597:2;3582:18;149:20:0;3463:203:1;2224:111:0;;;;;;:::i;:::-;;:::i;301:20::-;;;:::i;560:26::-;;;;;;3160:276;;;;;;:::i;:::-;;:::i;668:22::-;;;;;;613:26;;;;;;2363:144;;;;;;:::i;:::-;;:::i;465:66::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;4853:276;;;;;;:::i;:::-;;:::i;5157:515::-;5218:4;-1:-1:-1;;;;;;5233:18:0;;-1:-1:-1;;;5233:18:0;5229:56;;-1:-1:-1;5275:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5229:56::-;-1:-1:-1;;;;;;5293:18:0;;-1:-1:-1;;;5293:18:0;5289:57;;-1:-1:-1;5336:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5289:57::-;-1:-1:-1;;;;;;5354:18:0;;-1:-1:-1;;;5354:18:0;5350:57;;-1:-1:-1;5397:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5350:57::-;-1:-1:-1;;;;;;5415:18:0;;-1:-1:-1;;;5415:18:0;5411:57;;-1:-1:-1;5458:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5411:57::-;-1:-1:-1;;;;;;5476:18:0;;-1:-1:-1;;;5476:18:0;5472:57;;-1:-1:-1;5519:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5472:57::-;-1:-1:-1;;;;;;5537:18:0;;-1:-1:-1;;;5537:18:0;5533:57;;-1:-1:-1;5580:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5533:57::-;-1:-1:-1;;;;;;5598:18:0;;-1:-1:-1;;;5598:18:0;5594:57;;-1:-1:-1;5641:4:0;;5157:515;-1:-1:-1;5157:515:0:o;5594:57::-;-1:-1:-1;5662:5:0;;5157:515;-1:-1:-1;5157:515:0:o;257:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4526:296::-;4593:4;4612:13;:11;:13::i;:::-;:18;;;4604:27;;;;;;4640:10;;4636:73;;4676:10;4666:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4666:31:0;;;;;;;;;;:36;4658:45;;;;;;4723:10;4713:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4713:31:0;;;;;;;;;;;;:40;;;4763:38;1658:25:1;;;4713:31:0;;4723:10;4763:38;;1631:18:1;4763:38:0;;;;;;;;-1:-1:-1;4813:4:0;4526:296;;;;;:::o;1762:95::-;1806:7;1841:11;;1827;;:25;;;;:::i;:::-;1820:32;;1762:95;:::o;4078:421::-;4160:4;4179:13;:11;:13::i;:::-;:18;;;4171:27;;;;;;-1:-1:-1;;;;;4211:16:0;;;;;;:9;:16;;;;;;;;4228:10;4211:28;;;;;;;;:38;-1:-1:-1;4211:38:0;4203:47;;;;;;-1:-1:-1;;;;;4263:16:0;;;;;;:9;:16;;;;;;:26;-1:-1:-1;4263:26:0;4255:35;;;;;;-1:-1:-1;;;;;4326:16:0;;;;;;:9;:16;;;;;;;;4343:10;4326:28;;;;;;;;:37;;4357:6;;4326:37;:::i;:::-;-1:-1:-1;;;;;4295:16:0;;;;;;:9;:16;;;;;;;;4312:10;4295:28;;;;;;;:68;;;;4368:16;;;:9;:16;;;;;;:26;;4388:6;;4295:16;4368:26;;4388:6;;4368:26;:::i;:::-;;;;-1:-1:-1;;;;;;;4400:14:0;;;;;;:9;:14;;;;;:24;;4418:6;;4400:14;:24;;4418:6;;4400:24;:::i;:::-;;;;-1:-1:-1;;4434:44:0;;1658:25:1;;;4459:10:0;;-1:-1:-1;;;;;4434:44:0;;;;;;;;;;1646:2:1;1631:18;4434:44:0;;;;;;;-1:-1:-1;4490:4:0;4078:421;;;;;:::o;2736:114::-;-1:-1:-1;;;;;2809:16:0;;2791:4;2809:16;;;:7;:16;;;;;;;;;:36;;-1:-1:-1;;2840:5:0;;-1:-1:-1;;;;;2840:5:0;;;2829:16;;;;2736:114::o;3464:266::-;3510:4;3543:5;;-1:-1:-1;;;;;3543:5:0;3529:10;:19;3521:42;;;;-1:-1:-1;;;3521:42:0;;4918:2:1;3521:42:0;;;4900:21:1;4957:2;4937:18;;;4930:30;-1:-1:-1;;;4976:18:1;;;4969:40;5026:18;;3521:42:0;;;;;;;;;3586:10;3576:21;;;;:9;:21;;;;;;:31;-1:-1:-1;3576:31:0;3568:53;;;;-1:-1:-1;;;3568:53:0;;5257:2:1;3568:53:0;;;5239:21:1;5296:1;5276:18;;;5269:29;-1:-1:-1;;;5314:18:1;;;5307:39;5363:18;;3568:53:0;5055:332:1;3568:53:0;3638:10;3628:21;;;;:9;:21;;;;;:31;;3653:6;;3628:21;:31;;3653:6;;3628:31;:::i;:::-;;;;;;;;3679:6;3664:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;3697:12:0;;1658:25:1;;;3697:12:0;;1646:2:1;1631:18;3697:12:0;;;;;;;-1:-1:-1;3721:4:0;;3464:266;-1:-1:-1;3464:266:0:o;1923:244::-;2011:10;1984:4;2003:19;;;:7;:19;;;;;;;;;:42;;-1:-1:-1;2040:5:0;;-1:-1:-1;;;;;2040:5:0;2026:10;:19;2003:42;1995:51;;;;;;-1:-1:-1;;;;;2053:14:0;;;;;;:9;:14;;;;;:24;;2071:6;;2053:14;:24;;2071:6;;2053:24;:::i;:::-;;;;;;;;2097:6;2082:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;2115:29:0;;1658:25:1;;;-1:-1:-1;;;;;2115:29:0;;;2120:10;;2115:29;;1646:2:1;1631:18;2115:29:0;1512:177:1;3896:155:0;3983:10;-1:-1:-1;;;;;3983:19:0;;;3975:44;;;;-1:-1:-1;;;3975:44:0;;5594:2:1;3975:44:0;;;5576:21:1;5633:2;5613:18;;;5606:30;-1:-1:-1;;;5652:18:1;;;5645:42;5704:18;;3975:44:0;5392:336:1;3975:44:0;4034:12;4039:6;4034:4;:12::i;:::-;;3896:155;;;;:::o;3758:81::-;3822:10;3789:4;3812:21;;;:9;:21;;;;;;3807:27;;:4;:27::i;2535:173::-;2590:4;2623:5;;-1:-1:-1;;;;;2623:5:0;2609:10;:19;;:44;;-1:-1:-1;2632:10:0;-1:-1:-1;;;;;2632:21:0;;;2609:44;2601:53;;;;;;-1:-1:-1;;;;;;2661:16:0;2680:5;2661:16;;;:7;:16;;;;;:24;;-1:-1:-1;;2661:24:0;;;;;2535:173::o;2878:255::-;2916:5;2932:7;;2943:1;2932:12;2928:38;;-1:-1:-1;2959:1:0;;2878:255::o;2928:38::-;2974:7;;;;2970:33;;;-1:-1:-1;2996:1:0;;2878:255::o;2970:33::-;3030:7;;3011:15;:26;3007:107;;3045:7;:14;;-1:-1:-1;;3045:14:0;3055:4;3045:14;;;3070:24;;;;;;3078:15;1658:25:1;;1646:2;1631:18;;1512:177;3070:24:0;;;;;;;;-1:-1:-1;3107:1:0;;2878:255::o;3007:107::-;-1:-1:-1;3125:1:0;;2878:255::o;2224:111::-;2311:19;2318:3;2323:6;2311;:19::i;301:20::-;;;;;;;:::i;3160:276::-;3223:4;3242:13;:11;:13::i;:::-;:18;;;3234:27;;;;;;3284:10;3274:21;;;;:9;:21;;;;;;:31;-1:-1:-1;3274:31:0;3266:40;;;;;;3321:10;3311:21;;;;:9;:21;;;;;:31;;3336:6;;3311:21;:31;;3336:6;;3311:31;:::i;:::-;;;;-1:-1:-1;;;;;;;3348:14:0;;;;;;:9;:14;;;;;:24;;3366:6;;3348:14;:24;;3366:6;;3348:24;:::i;:::-;;;;-1:-1:-1;;3382:33:0;;1658:25:1;;;-1:-1:-1;;;;;3382:33:0;;;3391:10;;3382:33;;1646:2:1;1631:18;3382:33:0;1512:177:1;2363:144:0;2415:4;2448:5;;-1:-1:-1;;;;;2448:5:0;2434:10;:19;2426:28;;;;;;-1:-1:-1;;;;;;2461:16:0;;;;;:7;:16;;;;;:23;;-1:-1:-1;;2461:23:0;2480:4;2461:23;;;;;;2480:4;2363:144::o;4853:276::-;4915:4;4983:5;;4915:4;;-1:-1:-1;;;;;4983:5:0;4969:10;:19;4961:28;;;;;;-1:-1:-1;5011:5:0;;;-1:-1:-1;;;;;5027:17:0;;;-1:-1:-1;;;;;;5027:17:0;;;;;;5062:37;;5011:5;;;;;;;5062:37;;5011:5;5062:37;-1:-1:-1;5117:4:0;;4853:276;-1:-1:-1;;4853:276:0:o;14:286:1:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:1;;209:43;;199:71;;266:1;263;256:12;199:71;289:5;14:286;-1:-1:-1;;;14:286:1:o;497:527::-;646:2;635:9;628:21;609:4;678:6;672:13;721:6;716:2;705:9;701:18;694:34;746:1;756:140;770:6;767:1;764:13;756:140;;;881:2;865:14;;;861:23;;855:30;850:2;831:17;;;827:26;820:66;785:10;756:140;;;760:3;945:1;940:2;931:6;920:9;916:22;912:31;905:42;1015:2;1008;1004:7;999:2;991:6;987:15;983:29;972:9;968:45;964:54;956:62;;;497:527;;;;:::o;1029:173::-;1097:20;;-1:-1:-1;;;;;1146:31:1;;1136:42;;1126:70;;1192:1;1189;1182:12;1126:70;1029:173;;;:::o;1207:300::-;1275:6;1283;1336:2;1324:9;1315:7;1311:23;1307:32;1304:52;;;1352:1;1349;1342:12;1304:52;1375:29;1394:9;1375:29;:::i;:::-;1365:39;1473:2;1458:18;;;;1445:32;;-1:-1:-1;;;1207:300:1:o;1694:374::-;1771:6;1779;1787;1840:2;1828:9;1819:7;1815:23;1811:32;1808:52;;;1856:1;1853;1846:12;1808:52;1879:29;1898:9;1879:29;:::i;:::-;1869:39;;1927:38;1961:2;1950:9;1946:18;1927:38;:::i;:::-;1694:374;;1917:48;;-1:-1:-1;;;2034:2:1;2019:18;;;;2006:32;;1694:374::o;2073:186::-;2132:6;2185:2;2173:9;2164:7;2160:23;2156:32;2153:52;;;2201:1;2198;2191:12;2153:52;2224:29;2243:9;2224:29;:::i;2453:226::-;2512:6;2565:2;2553:9;2544:7;2540:23;2536:32;2533:52;;;2581:1;2578;2571:12;2533:52;-1:-1:-1;2626:23:1;;2453:226;-1:-1:-1;2453:226:1:o;2684:774::-;2772:6;2780;2788;2796;2849:2;2837:9;2828:7;2824:23;2820:32;2817:52;;;2865:1;2862;2855:12;2817:52;2888:29;2907:9;2888:29;:::i;:::-;2878:39;-1:-1:-1;2986:2:1;2971:18;;2958:32;;-1:-1:-1;3065:2:1;3050:18;;3037:32;3092:18;3081:30;;3078:50;;;3124:1;3121;3114:12;3078:50;3147:22;;3200:4;3192:13;;3188:27;-1:-1:-1;3178:55:1;;3229:1;3226;3219:12;3178:55;3269:2;3256:16;3295:18;3287:6;3284:30;3281:50;;;3327:1;3324;3317:12;3281:50;3372:7;3367:2;3358:6;3354:2;3350:15;3346:24;3343:37;3340:57;;;3393:1;3390;3383:12;3340:57;2684:774;;;;-1:-1:-1;3424:2:1;3416:11;;-1:-1:-1;;;2684:774:1:o;3671:260::-;3739:6;3747;3800:2;3788:9;3779:7;3775:23;3771:32;3768:52;;;3816:1;3813;3806:12;3768:52;3839:29;3858:9;3839:29;:::i;:::-;3829:39;;3887:38;3921:2;3910:9;3906:18;3887:38;:::i;:::-;3877:48;;3671:260;;;;;:::o;3936:380::-;4015:1;4011:12;;;;4058;;;4079:61;;4133:4;4125:6;4121:17;4111:27;;4079:61;4186:2;4178:6;4175:14;4155:18;4152:38;4149:161;;4232:10;4227:3;4223:20;4220:1;4213:31;4267:4;4264:1;4257:15;4295:4;4292:1;4285:15;4149:161;;3936:380;;;:::o;4321:127::-;4382:10;4377:3;4373:20;4370:1;4363:31;4413:4;4410:1;4403:15;4437:4;4434:1;4427:15;4453:128;4520:9;;;4541:11;;;4538:37;;;4555:18;;:::i;4586:125::-;4651:9;;;4672:10;;;4669:36;;;4685:18;;:::i
Swarm Source
ipfs://8cfe9650d4224347e313bf7a1d6b14bbdf38178a52a5437914f7da607bba8204
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.