Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 275 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdrawal | 6234857 | 2384 days ago | IN | 0 ETH | 0.00009714 | ||||
Pay | 6230310 | 2384 days ago | IN | 0 ETH | 0.00063351 | ||||
Withdrawal | 6140333 | 2400 days ago | IN | 0 ETH | 0.00011209 | ||||
Pay | 6083059 | 2409 days ago | IN | 0 ETH | 0.01520005 | ||||
Withdrawal | 6063358 | 2413 days ago | IN | 0 ETH | 0.0000411 | ||||
Pay | 6041060 | 2416 days ago | IN | 0 ETH | 0.008 | ||||
Pay | 6040959 | 2416 days ago | IN | 0 ETH | 0.0304001 | ||||
Pay | 6035274 | 2417 days ago | IN | 0 ETH | 0.00607157 | ||||
Pay | 6035261 | 2417 days ago | IN | 0 ETH | 0.00207157 | ||||
Pay | 6035102 | 2417 days ago | IN | 0 ETH | 0.00063578 | ||||
Pay | 6034954 | 2417 days ago | IN | 0 ETH | 0.00081157 | ||||
Pay | 6034551 | 2417 days ago | IN | 0 ETH | 0.00051448 | ||||
Pay | 6034441 | 2417 days ago | IN | 0 ETH | 0.00051468 | ||||
Pay | 6034432 | 2417 days ago | IN | 0 ETH | 0.0102936 | ||||
Pay | 6034354 | 2418 days ago | IN | 0 ETH | 0.01357137 | ||||
Pay | 6034334 | 2418 days ago | IN | 0 ETH | 0.00459 | ||||
Pay | 6029479 | 2418 days ago | IN | 0 ETH | 0.00034312 | ||||
Pay | 6028555 | 2418 days ago | IN | 0 ETH | 0.00072055 | ||||
Pay | 6027973 | 2419 days ago | IN | 0 ETH | 0.00039186 | ||||
Lend | 5480900 | 2514 days ago | IN | 0 ETH | 0.00044086 | ||||
Lend | 5455452 | 2518 days ago | IN | 0 ETH | 0.00019289 | ||||
Approve | 5429221 | 2522 days ago | IN | 0 ETH | 0.00013472 | ||||
Create Loan | 5429219 | 2522 days ago | IN | 0 ETH | 0.0001486 | ||||
Approve | 5404637 | 2526 days ago | IN | 0 ETH | 0.00008981 | ||||
Create Loan | 5404636 | 2526 days ago | IN | 0 ETH | 0.00029721 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
NanoLoanEngine
Compiler Version
v0.4.15+commit.bbb8e64f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-11-15 */ pragma solidity ^0.4.15; contract Oracle { event NewSymbol(string _symbol, uint8 _decimals); function getTimestamp(string symbol) constant returns(uint256); function getRateFor(string symbol) returns (uint256); function getCost(string symbol) constant returns (uint256); function getDecimals(string symbol) constant returns (uint256); } contract Token { function transfer(address _to, uint _value) returns (bool success); function transferFrom(address _from, address _to, uint256 _value) returns (bool success); function allowance(address _owner, address _spender) constant returns (uint256 remaining); function approve(address _spender, uint256 _value) returns (bool success); function increaseApproval (address _spender, uint _addedValue) public returns (bool success); function balanceOf(address _owner) constant returns (uint256 balance); } contract RpSafeMath { function safeAdd(uint256 x, uint256 y) internal returns(uint256) { uint256 z = x + y; assert((z >= x) && (z >= y)); return z; } function safeSubtract(uint256 x, uint256 y) internal returns(uint256) { assert(x >= y); uint256 z = x - y; return z; } function safeMult(uint256 x, uint256 y) internal returns(uint256) { uint256 z = x * y; assert((x == 0)||(z/x == y)); return z; } function min(uint256 a, uint256 b) internal returns(uint256) { if (a < b) { return a; } else { return b; } } function max(uint256 a, uint256 b) internal returns(uint256) { if (a > b) { return a; } else { return b; } } } contract NanoLoanEngine is RpSafeMath { uint256 public constant VERSION = 15; Token public token; enum Status { initial, lent, paid, destroyed } address public owner; bool public deprecated; uint256 public totalLenderBalance; event CreatedLoan(uint _index, address _borrower, address _creator); event ApprovedBy(uint _index, address _address); event Lent(uint _index, address _lender); event CreatedDebt(uint _index, address _lend); event DestroyedBy(uint _index, address _address); event PartialPayment(uint _index, address _sender, address _from, uint256 _amount); event Transfer(uint _index, address _from, address _to); event TotalPayment(uint _index); function NanoLoanEngine(Token _token) { owner = msg.sender; token = _token; } struct Loan { Oracle oracle; Status status; address borrower; address cosigner; address lender; address creator; uint256 amount; uint256 interest; uint256 punitoryInterest; uint256 interestTimestamp; uint256 paid; uint256 cosignerFee; uint256 interestRate; uint256 interestRatePunitory; uint256 dueTime; uint256 duesIn; string currency; uint256 cancelableAt; uint256 lenderBalance; address approvedTransfer; uint256 expirationRequest; mapping(address => bool) approbations; } Loan[] private loans; // _oracleContract: Address of the Oracle contract, must implement OracleInterface. 0x0 for no oracle // _cosigner: Responsable of the payment of the loan if the lender does not pay. 0x0 for no cosigner // _cosignerFee: absolute amount in currency // _interestRate: 100 000 / interest; ej 100 000 = 100 %; 10 000 000 = 1% (by second) function createLoan(Oracle _oracleContract, address _borrower, address _cosigner, uint256 _cosignerFee, string _currency, uint256 _amount, uint256 _interestRate, uint256 _interestRatePunitory, uint256 _duesIn, uint256 _cancelableAt, uint256 _expirationRequest) returns (uint256) { require(!deprecated); require(_cancelableAt <= _duesIn); require(_oracleContract != address(0) || bytes(_currency).length == 0); require(_cosigner != address(0) || _cosignerFee == 0); require(_borrower != address(0)); require(_amount != 0); require(_interestRatePunitory != 0); require(_interestRate != 0); require(_expirationRequest > block.timestamp); var loan = Loan(_oracleContract, Status.initial, _borrower, _cosigner, 0x0, msg.sender, _amount, 0, 0, 0, 0, _cosignerFee, _interestRate, _interestRatePunitory, 0, _duesIn, _currency, _cancelableAt, 0, 0x0, _expirationRequest); uint index = loans.push(loan) - 1; CreatedLoan(index, _borrower, msg.sender); return index; } function getLoanConfig(uint index) constant returns (address oracle, address borrower, address lender, address creator, uint amount, uint cosignerFee, uint interestRate, uint interestRatePunitory, uint duesIn, uint cancelableAt, uint decimals, bytes32 currencyHash, uint256 expirationRequest) { Loan storage loan = loans[index]; oracle = loan.oracle; borrower = loan.borrower; lender = loan.lender; creator = loan.creator; amount = loan.amount; cosignerFee = loan.cosignerFee; interestRate = loan.interestRate; interestRatePunitory = loan.interestRatePunitory; duesIn = loan.duesIn; cancelableAt = loan.cancelableAt; decimals = loan.oracle.getDecimals(loan.currency); currencyHash = keccak256(loan.currency); expirationRequest = loan.expirationRequest; } function getLoanState(uint index) constant returns (uint interest, uint punitoryInterest, uint interestTimestamp, uint paid, uint dueTime, Status status, uint lenderBalance, address approvedTransfer, bool approved) { Loan storage loan = loans[index]; interest = loan.interest; punitoryInterest = loan.punitoryInterest; interestTimestamp = loan.interestTimestamp; paid = loan.paid; dueTime = loan.dueTime; status = loan.status; lenderBalance = loan.lenderBalance; approvedTransfer = loan.approvedTransfer; approved = isApproved(index); } function getTotalLoans() constant returns (uint256) { return loans.length; } function getOracle(uint index) constant returns (Oracle) { return loans[index].oracle; } function getBorrower(uint index) constant returns (address) { return loans[index].borrower; } function getCosigner(uint index) constant returns (address) { return loans[index].cosigner; } function getLender(uint index) constant returns (address) { return loans[index].lender; } function getCreator(uint index) constant returns (address) { return loans[index].creator; } function getAmount(uint index) constant returns (uint256) { return loans[index].amount; } function getInterest(uint index) constant returns (uint256) { return loans[index].interest; } function getPunitoryInterest(uint index) constant returns (uint256) { return loans[index].punitoryInterest; } function getInterestTimestamp(uint index) constant returns (uint256) { return loans[index].interestTimestamp; } function getPaid(uint index) constant returns (uint256) { return loans[index].paid; } function getCosignerFee(uint index) constant returns (uint256) { return loans[index].cosignerFee; } function getInterestRate(uint index) constant returns (uint256) { return loans[index].interestRate; } function getInterestRatePunitory(uint index) constant returns (uint256) { return loans[index].interestRatePunitory; } function getDueTime(uint index) constant returns (uint256) { return loans[index].dueTime; } function getDuesIn(uint index) constant returns (uint256) { return loans[index].duesIn; } function getCurrency(uint index) constant returns (string) { return loans[index].currency; } function getCancelableAt(uint index) constant returns (uint256) { return loans[index].cancelableAt; } function getApprobation(uint index, address _address) constant returns (bool) { return loans[index].approbations[_address]; } function getStatus(uint index) constant returns (Status) { return loans[index].status; } function getLenderBalance(uint index) constant returns (uint256) { return loans[index].lenderBalance; } function getCurrencyLength(uint index) constant returns (uint256) { return bytes(loans[index].currency).length; } function getCurrencyByte(uint index, uint cindex) constant returns (bytes1) { return bytes(loans[index].currency)[cindex]; } function getApprovedTransfer(uint index) constant returns (address) {return loans[index].approvedTransfer; } function getCurrencyHash(uint index) constant returns (bytes32) { return keccak256(loans[index].currency); } function getCurrencyDecimals(uint index) constant returns (uint256) { return loans[index].oracle.getDecimals(loans[index].currency); } function getExpirationRequest(uint index) constant returns (uint256) { return loans[index].expirationRequest; } function isApproved(uint index) constant returns (bool) { Loan storage loan = loans[index]; return loan.approbations[loan.borrower] && (loan.approbations[loan.cosigner] || loan.cosigner == address(0)); } function approve(uint index) public returns(bool) { Loan storage loan = loans[index]; require(loan.status == Status.initial); loan.approbations[msg.sender] = true; ApprovedBy(index, msg.sender); return true; } function lend(uint index) public returns (bool) { Loan storage loan = loans[index]; require(loan.status == Status.initial); require(isApproved(index)); require(block.timestamp <= loan.expirationRequest); loan.lender = msg.sender; loan.dueTime = safeAdd(block.timestamp, loan.duesIn); loan.interestTimestamp = block.timestamp; loan.status = Status.lent; if (loan.cancelableAt > 0) internalAddInterest(index, safeAdd(block.timestamp, loan.cancelableAt)); uint256 rate = getOracleRate(index); require(token.transferFrom(msg.sender, loan.borrower, safeMult(loan.amount, rate))); if (loan.cosigner != address(0)) require(token.transferFrom(msg.sender, loan.cosigner, safeMult(loan.cosignerFee, rate))); Lent(index, loan.lender); return true; } function destroy(uint index) public returns (bool) { Loan storage loan = loans[index]; require(loan.status != Status.destroyed); require(msg.sender == loan.lender || ((msg.sender == loan.borrower || msg.sender == loan.cosigner) && loan.status == Status.initial)); DestroyedBy(index, msg.sender); loan.status = Status.destroyed; return true; } function transfer(uint index, address to) public returns (bool) { Loan storage loan = loans[index]; require(loan.status != Status.destroyed); require(msg.sender == loan.lender || msg.sender == loan.approvedTransfer); require(to != address(0)); Transfer(index, loan.lender, to); loan.lender = to; loan.approvedTransfer = address(0); return true; } function approveTransfer(uint index, address to) public returns (bool) { Loan storage loan = loans[index]; require(msg.sender == loan.lender); loan.approvedTransfer = to; return true; } function getPendingAmount(uint index) public constant returns (uint256) { Loan storage loan = loans[index]; return safeSubtract(safeAdd(safeAdd(loan.amount, loan.interest), loan.punitoryInterest), loan.paid); } function calculateInterest(uint256 timeDelta, uint256 interestRate, uint256 amount) public constant returns (uint256 realDelta, uint256 interest) { interest = safeMult(safeMult(100000, amount), timeDelta) / interestRate; realDelta = safeMult(interest, interestRate) / (amount * 100000); } function internalAddInterest(uint index, uint256 timestamp) internal { Loan storage loan = loans[index]; if (timestamp > loan.interestTimestamp) { uint256 newInterest = loan.interest; uint256 newPunitoryInterest = loan.punitoryInterest; uint256 newTimestamp; uint256 realDelta; uint256 calculatedInterest; uint256 deltaTime; uint256 pending; uint256 endNonPunitory = min(timestamp, loan.dueTime); if (endNonPunitory > loan.interestTimestamp) { deltaTime = safeSubtract(endNonPunitory, loan.interestTimestamp); pending = safeSubtract(loan.amount, loan.paid); (realDelta, calculatedInterest) = calculateInterest(deltaTime, loan.interestRate, pending); newInterest = safeAdd(calculatedInterest, newInterest); newTimestamp = loan.interestTimestamp + realDelta; } if (timestamp > loan.dueTime) { uint256 startPunitory = max(loan.dueTime, loan.interestTimestamp); deltaTime = safeSubtract(timestamp, startPunitory); pending = safeSubtract(safeAdd(loan.amount, newInterest), loan.paid); (realDelta, calculatedInterest) = calculateInterest(deltaTime, loan.interestRatePunitory, pending); newPunitoryInterest = safeAdd(newPunitoryInterest, calculatedInterest); newTimestamp = startPunitory + realDelta; } if (newInterest != loan.interest || newPunitoryInterest != loan.punitoryInterest) { loan.interestTimestamp = newTimestamp; loan.interest = newInterest; loan.punitoryInterest = newPunitoryInterest; } } } function addInterestUpTo(uint index, uint256 timestamp) internal { Loan storage loan = loans[index]; require(loan.status == Status.lent); if (timestamp <= block.timestamp) { internalAddInterest(index, timestamp); } } function addInterest(uint index) public { addInterestUpTo(index, block.timestamp); } function pay(uint index, uint256 _amount, address _from) public returns (bool) { Loan storage loan = loans[index]; require(loan.status == Status.lent); addInterest(index); uint256 toPay = min(getPendingAmount(index), _amount); loan.paid = safeAdd(loan.paid, toPay); if (getPendingAmount(index) == 0) { TotalPayment(index); loan.status = Status.paid; } uint256 transferValue = safeMult(toPay, getOracleRate(index)); require(token.transferFrom(msg.sender, this, transferValue)); loan.lenderBalance = safeAdd(transferValue, loan.lenderBalance); totalLenderBalance = safeAdd(transferValue, totalLenderBalance); PartialPayment(index, msg.sender, _from, toPay); return true; } function withdrawal(uint index, address to, uint256 amount) public returns (bool) { Loan storage loan = loans[index]; require(to != address(0)); if (msg.sender == loan.lender && loan.lenderBalance >= amount) { loan.lenderBalance = safeSubtract(loan.lenderBalance, amount); totalLenderBalance = safeSubtract(totalLenderBalance, amount); require(token.transfer(to, amount)); return true; } } function changeOwner(address to) public { require(msg.sender == owner); require(to != address(0)); owner = to; } function setDeprecated(bool _deprecated) public { require(msg.sender == owner); deprecated = _deprecated; } function getOracleRate(uint index) internal returns (uint256) { Loan storage loan = loans[index]; if (loan.oracle == address(0)) return 1; uint256 costOracle = loan.oracle.getCost(loan.currency); require(token.transferFrom(msg.sender, this, costOracle)); require(token.approve(loan.oracle, costOracle)); uint256 rate = loan.oracle.getRateFor(loan.currency); require(rate != 0); return rate; } function emergencyWithdrawal(Token _token, address to, uint256 amount) returns (bool) { require(msg.sender == owner); require(_token != token || safeSubtract(token.balanceOf(this), totalLenderBalance) >= amount); require(to != address(0)); return _token.transfer(to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getLoanConfig","outputs":[{"name":"oracle","type":"address"},{"name":"borrower","type":"address"},{"name":"lender","type":"address"},{"name":"creator","type":"address"},{"name":"amount","type":"uint256"},{"name":"cosignerFee","type":"uint256"},{"name":"interestRate","type":"uint256"},{"name":"interestRatePunitory","type":"uint256"},{"name":"duesIn","type":"uint256"},{"name":"cancelableAt","type":"uint256"},{"name":"decimals","type":"uint256"},{"name":"currencyHash","type":"bytes32"},{"name":"expirationRequest","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getApprovedTransfer","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"timeDelta","type":"uint256"},{"name":"interestRate","type":"uint256"},{"name":"amount","type":"uint256"}],"name":"calculateInterest","outputs":[{"name":"realDelta","type":"uint256"},{"name":"interest","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"_amount","type":"uint256"},{"name":"_from","type":"address"}],"name":"pay","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getInterestRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getOracle","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getInterestTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getPaid","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"addInterest","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getCurrencyDecimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getDuesIn","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getInterestRatePunitory","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getLenderBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getLoanState","outputs":[{"name":"interest","type":"uint256"},{"name":"punitoryInterest","type":"uint256"},{"name":"interestTimestamp","type":"uint256"},{"name":"paid","type":"uint256"},{"name":"dueTime","type":"uint256"},{"name":"status","type":"uint8"},{"name":"lenderBalance","type":"uint256"},{"name":"approvedTransfer","type":"address"},{"name":"approved","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getDueTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getStatus","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"},{"name":"cindex","type":"uint256"}],"name":"getCurrencyByte","outputs":[{"name":"","type":"bytes1"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getInterest","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"isApproved","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getTotalLoans","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getBorrower","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"emergencyWithdrawal","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getPendingAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getPunitoryInterest","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getCosigner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"destroy","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"to","type":"address"}],"name":"approveTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"},{"name":"_address","type":"address"}],"name":"getApprobation","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"lend","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getCosignerFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"to","type":"address"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getCancelableAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getCurrency","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getCreator","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_deprecated","type":"bool"}],"name":"setDeprecated","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getCurrencyHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalLenderBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getExpirationRequest","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"withdrawal","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getLender","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getCurrencyLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_oracleContract","type":"address"},{"name":"_borrower","type":"address"},{"name":"_cosigner","type":"address"},{"name":"_cosignerFee","type":"uint256"},{"name":"_currency","type":"string"},{"name":"_amount","type":"uint256"},{"name":"_interestRate","type":"uint256"},{"name":"_interestRatePunitory","type":"uint256"},{"name":"_duesIn","type":"uint256"},{"name":"_cancelableAt","type":"uint256"},{"name":"_expirationRequest","type":"uint256"}],"name":"createLoan","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"VERSION","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_index","type":"uint256"},{"indexed":false,"name":"_borrower","type":"address"},{"indexed":false,"name":"_creator","type":"address"}],"name":"CreatedLoan","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_index","type":"uint256"},{"indexed":false,"name":"_address","type":"address"}],"name":"ApprovedBy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_index","type":"uint256"},{"indexed":false,"name":"_lender","type":"address"}],"name":"Lent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_index","type":"uint256"},{"indexed":false,"name":"_lend","type":"address"}],"name":"CreatedDebt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_index","type":"uint256"},{"indexed":false,"name":"_address","type":"address"}],"name":"DestroyedBy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_index","type":"uint256"},{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"PartialPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_index","type":"uint256"},{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_to","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_index","type":"uint256"}],"name":"TotalPayment","type":"event"}]
Contract Creation Code
6060604052341561000f57600080fd5b604051602080613131833981016040528080519150505b60018054600160a060020a03338116600160a060020a03199283161790925560008054928416929091169190911790555b505b6130c9806100686000396000f300606060405236156102345763ffffffff60e060020a600035041662442a0781146102395780630557b2b0146102c657806305e1bd8c146102f85780630ad6ac851461032c5780630c196a74146103655780630e136b191461038d57806310a9de60146103b45780632924e254146103e65780632a92362c1461040e5780633290f5151461043657806335a3e83c1461044e5780634a8e4d78146104765780634d5e9a2a1461049e57806355121498146104c6578063567e75c4146104ee57806359357045146105765780635c622a0e1461059e5780635f5fa782146105d85780635fe2d689146106265780637910867b1461064e578063833be5d5146106785780638500d9191461069d5780638d8e5da7146106cf5780638da5cb5b1461070b57806391cb98af1461073a5780639380614414610762578063964f61f91461078a5780639980ec86146107bc5780639d118770146107e4578063a40868541461080e578063a578ae3214610844578063a6aa57ce1461087a578063a6f9dae1146108a4578063a78cb567146108c5578063b759f954146108ed578063b7760c8f14610917578063bed33cae1461094d578063cdf9b77e14610975578063d48e638a14610a03578063d848dee714610a35578063dac3ab8814610a4f578063e47dace514610a77578063e6c8fcf114610a9c578063f24ff92c14610ac4578063fa2c7f9b14610afd578063fc0c546a14610b2f578063fe7eba0614610b5e578063fe925e8014610b86578063ffa1ad7414610c26575b600080fd5b341561024457600080fd5b61024f600435610c4b565b604051600160a060020a039d8e1681529b8d1660208d0152998c166040808d019190915298909b1660608b015260808a019690965260a089019490945260c088019290925260e08701526101008601526101208501526101408401526101608301939093526101808201526101a001905180910390f35b34156102d157600080fd5b6102dc600435610e9b565b604051600160a060020a03909116815260200160405180910390f35b341561030357600080fd5b610314600435602435604435610ed3565b60405191825260208201526040908101905180910390f35b341561033757600080fd5b610351600435602435600160a060020a0360443516610f1e565b604051901515815260200160405180910390f35b341561037057600080fd5b61037b600435611143565b60405190815260200160405180910390f35b341561039857600080fd5b610351611172565b604051901515815260200160405180910390f35b34156103bf57600080fd5b6102dc600435611182565b604051600160a060020a03909116815260200160405180910390f35b34156103f157600080fd5b61037b6004356111b7565b60405190815260200160405180910390f35b341561041957600080fd5b61037b6004356111e6565b60405190815260200160405180910390f35b341561044157600080fd5b61044c600435611215565b005b341561045957600080fd5b61037b600435611223565b60405190815260200160405180910390f35b341561048157600080fd5b61037b600435611357565b60405190815260200160405180910390f35b34156104a957600080fd5b61037b600435611386565b60405190815260200160405180910390f35b34156104d157600080fd5b61037b6004356113b5565b60405190815260200160405180910390f35b34156104f957600080fd5b6105046004356113e4565b604051808a815260200189815260200188815260200187815260200186815260200185600381111561053257fe5b60ff16815260200184815260200183600160a060020a0316600160a060020a0316815260200182151515158152602001995050505050505050505060405180910390f35b341561058157600080fd5b61037b600435611488565b60405190815260200160405180910390f35b34156105a957600080fd5b6105b46004356114b7565b604051808260038111156105c457fe5b60ff16815260200191505060405180910390f35b34156105e357600080fd5b6105f16004356024356114ed565b6040517fff00000000000000000000000000000000000000000000000000000000000000909116815260200160405180910390f35b341561063157600080fd5b61037b60043561157f565b60405190815260200160405180910390f35b341561065957600080fd5b6103516004356115ae565b604051901515815260200160405180910390f35b341561068357600080fd5b61037b611640565b60405190815260200160405180910390f35b34156106a857600080fd5b6102dc600435611647565b604051600160a060020a03909116815260200160405180910390f35b34156106da57600080fd5b610351600160a060020a036004358116906024351660443561167f565b604051901515815260200160405180910390f35b341561071657600080fd5b6102dc6117dd565b604051600160a060020a03909116815260200160405180910390f35b341561074557600080fd5b61037b6004356117ec565b60405190815260200160405180910390f35b341561076d57600080fd5b61037b600435611847565b60405190815260200160405180910390f35b341561079557600080fd5b6102dc600435611876565b604051600160a060020a03909116815260200160405180910390f35b34156107c757600080fd5b61037b6004356118ae565b60405190815260200160405180910390f35b34156107ef57600080fd5b6103516004356118dd565b604051901515815260200160405180910390f35b341561081957600080fd5b610351600435600160a060020a0360243516611a19565b604051901515815260200160405180910390f35b341561084f57600080fd5b610351600435600160a060020a0360243516611a86565b604051901515815260200160405180910390f35b341561088557600080fd5b610351600435611ad2565b604051901515815260200160405180910390f35b34156108af57600080fd5b61044c600160a060020a0360043516611da0565b005b34156108d057600080fd5b61037b600435611def565b60405190815260200160405180910390f35b34156108f857600080fd5b610351600435611e1e565b604051901515815260200160405180910390f35b341561092257600080fd5b610351600435600160a060020a0360243516611ede565b604051901515815260200160405180910390f35b341561095857600080fd5b61037b60043561200e565b60405190815260200160405180910390f35b341561098057600080fd5b61098b60043561203d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156109c85780820151818401525b6020016109af565b50505050905090810190601f1680156109f55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a0e57600080fd5b6102dc600435612109565b604051600160a060020a03909116815260200160405180910390f35b3415610a4057600080fd5b61044c6004351515612141565b005b3415610a5a57600080fd5b61037b600435612188565b60405190815260200160405180910390f35b3415610a8257600080fd5b61037b61221e565b60405190815260200160405180910390f35b3415610aa757600080fd5b61037b600435612224565b60405190815260200160405180910390f35b3415610acf57600080fd5b610351600435600160a060020a0360243516604435612253565b604051901515815260200160405180910390f35b3415610b0857600080fd5b6102dc600435612370565b604051600160a060020a03909116815260200160405180910390f35b3415610b3a57600080fd5b6102dc6123a8565b604051600160a060020a03909116815260200160405180910390f35b3415610b6957600080fd5b61037b6004356123b7565b60405190815260200160405180910390f35b3415610b9157600080fd5b61037b60048035600160a060020a03908116916024803583169260443516916064359160a49060843590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020810135945060408101359350606081013592506080810135915060a001356123f9565b60405190815260200160405180910390f35b3415610c3157600080fd5b61037b6127d0565b60405190815260200160405180910390f35b60008060008060008060008060008060008060008060038f815481101515610c6f57fe5b906000526020600020906015020160005b5090508060000160009054906101000a9004600160a060020a03169d508060010160009054906101000a9004600160a060020a03169c508060030160009054906101000a9004600160a060020a03169b508060040160009054906101000a9004600160a060020a03169a508060050154995080600a0154985080600b0154975080600c0154965080600e01549550806010015494508060000160009054906101000a9004600160a060020a0316600160a060020a031663afd0fd1d82600f0160006040516020015260405160e060020a63ffffffff8416028152602060048201908152825460026000196101006001841615020190911604602483018190529091829160449091019084908015610dd85780601f10610dad57610100808354040283529160200191610dd8565b820191906000526020600020905b815481529060010190602001808311610dbb57829003601f168201915b505092505050602060405180830381600087803b1515610df757600080fd5b6102c65a03f11515610e0857600080fd5b5050506040518051945050600f81016040518082805460018160011615610100020316600290048015610e725780601f10610e50576101008083540402835291820191610e72565b820191906000526020600020905b815481529060010190602001808311610e5e575b505091505060405180910390209250806013015491505b5091939597999b9d90929496989a9c50565b6000600382815481101515610eac57fe5b906000526020600020906015020160005b5060120154600160a060020a031690505b919050565b60008083610eed610ee7620186a0866127d5565b876127d5565b811515610ef657fe5b04905082620186a002610f0982866127d5565b811515610f1257fe5b0491505b935093915050565b600080600080600387815481101515610f3357fe5b906000526020600020906015020160005b50925060015b835460a060020a900460ff166003811115610f6157fe5b14610f6b57600080fd5b610f7487611215565b610f86610f80886117ec565b87612804565b9150610f96836009015483612823565b6009840155610fa4876117ec565b1515611009577f45bbf9b5373297284296c5c84c733f3e536eb719e3fe3ee1771900622621cfb78760405190815260200160405180910390a18254600290849074ff0000000000000000000000000000000000000000191660a060020a835b02179055505b61101b826110168961284b565b6127d5565b60008054919250600160a060020a03909116906323b872dd903390309085906040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561109057600080fd5b6102c65a03f115156110a157600080fd5b5050506040518051905015156110b657600080fd5b6110c4818460110154612823565b60118401556002546110d7908290612823565b6002557f208972b4933bf2f7f9bb4c3c61cd484970eb0babe7539d22a18ab1d80fa7bec687338785604051938452600160a060020a039283166020850152911660408084019190915260608301919091526080909101905180910390a1600193505b5050509392505050565b600060038281548110151561115457fe5b906000526020600020906015020160005b50600b015490505b919050565b60015460a060020a900460ff1681565b600060038281548110151561119357fe5b906000526020600020906015020160005b5054600160a060020a031690505b919050565b60006003828154811015156111c857fe5b906000526020600020906015020160005b506008015490505b919050565b60006003828154811015156111f757fe5b906000526020600020906015020160005b506009015490505b919050565b61121f8142612b9e565b5b50565b600060038281548110151561123457fe5b906000526020600020906015020160005b505460038054600160a060020a039092169163afd0fd1d91908590811061126857fe5b906000526020600020906015020160005b50600f0160006040516020015260405160e060020a63ffffffff84160281526020600482019081528254600260001961010060018416150201909116046024830181905290918291604490910190849080156113165780601f106112eb57610100808354040283529160200191611316565b820191906000526020600020905b8154815290600101906020018083116112f957829003601f168201915b505092505050602060405180830381600087803b151561133557600080fd5b6102c65a03f1151561134657600080fd5b50505060405180519150505b919050565b600060038281548110151561136857fe5b906000526020600020906015020160005b50600e015490505b919050565b600060038281548110151561139757fe5b906000526020600020906015020160005b50600c015490505b919050565b60006003828154811015156113c657fe5b906000526020600020906015020160005b506011015490505b919050565b60008060008060008060008060008060038b81548110151561140257fe5b906000526020600020906015020160005b5090508060060154995080600701549850806008015497508060090154965080600d015495508060000160149054906101000a900460ff169450806011015493508060120160009054906101000a9004600160a060020a031692506114778b6115ae565b91505b509193959799909294969850565b600060038281548110151561149957fe5b906000526020600020906015020160005b50600d015490505b919050565b60006003828154811015156114c857fe5b906000526020600020906015020160005b505460a060020a900460ff1690505b919050565b60006003838154811015156114fe57fe5b906000526020600020906015020160005b50600f0182815460018160011615610100020316600290048110151561153157fe5b8154600116156115505790600052602060002090602091828204019190065b9054901a7f01000000000000000000000000000000000000000000000000000000000000000290505b92915050565b600060038281548110151561159057fe5b906000526020600020906015020160005b506006015490505b919050565b6000806003838154811015156115c057fe5b906000526020600020906015020160005b506001810154600160a060020a0316600090815260148201602052604090205490915060ff16801561163657506002810154600160a060020a0316600090815260148201602052604090205460ff168061163657506002810154600160a060020a0316155b5b91505b50919050565b6003545b90565b600060038281548110151561165857fe5b906000526020600020906015020160005b5060010154600160a060020a031690505b919050565b60015460009033600160a060020a0390811691161461169d57600080fd5b600054600160a060020a03858116911614158061173c575060008054839161173991600160a060020a0316906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561171657600080fd5b6102c65a03f1151561172757600080fd5b50505060405180519050600254612bff565b10155b151561174757600080fd5b600160a060020a038316151561175c57600080fd5b83600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156117b957600080fd5b6102c65a03f115156117ca57600080fd5b50505060405180519150505b9392505050565b600154600160a060020a031681565b6000806003838154811015156117fe57fe5b906000526020600020906015020160005b50905061163661183461182a83600501548460060154612823565b8360070154612823565b8260090154612bff565b91505b50919050565b600060038281548110151561185857fe5b906000526020600020906015020160005b506007015490505b919050565b600060038281548110151561188757fe5b906000526020600020906015020160005b5060020154600160a060020a031690505b919050565b60006003828154811015156118bf57fe5b906000526020600020906015020160005b506005015490505b919050565b6000806003838154811015156118ef57fe5b906000526020600020906015020160005b50905060035b815460a060020a900460ff16600381111561191d57fe5b141561192857600080fd5b600381015433600160a060020a03908116911614806119945750600181015433600160a060020a03908116911614806119715750600281015433600160a060020a039081169116145b8015611994575060005b815460a060020a900460ff16600381111561199257fe5b145b5b15156119a057600080fd5b7f5e81ba96d90c4ed224a3379b681aa7910d3832eabf32b38d8fffdfb58b3ed9628333604051918252600160a060020a031660208201526040908101905180910390a18054600390829074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600191505b50919050565b600080600384815481101515611a2b57fe5b906000526020600020906015020160005b50600381015490915033600160a060020a03908116911614611a5d57600080fd5b601281018054600160a060020a031916600160a060020a038516179055600191505b5092915050565b6000600383815481101515611a9757fe5b906000526020600020906015020160005b50600160a060020a0383166000908152601491909101602052604090205460ff1690505b92915050565b6000806000600384815481101515611ae657fe5b906000526020600020906015020160005b50915060005b825460a060020a900460ff166003811115611b1457fe5b14611b1e57600080fd5b611b27846115ae565b1515611b3257600080fd5b6013820154421115611b4357600080fd5b600382018054600160a060020a03191633600160a060020a0316179055600e820154611b70904290612823565b600d8301554260088301558154600190839074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600082601001541115611bca57611bca84611bc5428560100154612823565b612c1a565b5b611bd48461284b565b60005460018401546005850154929350600160a060020a03918216926323b872dd9233921690611c0490866127d5565b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611c5c57600080fd5b6102c65a03f11515611c6d57600080fd5b505050604051805190501515611c8257600080fd5b6002820154600160a060020a031615611d41576000546002830154600a840154600160a060020a03928316926323b872dd923392911690611cc390866127d5565b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611d1b57600080fd5b6102c65a03f11515611d2c57600080fd5b505050604051805190501515611d4157600080fd5b5b60038201547fe69a2d9a97bd2617dba9d6377976d828bb5b0c24b515820e3a191eb1c5d57bc3908590600160a060020a0316604051918252600160a060020a031660208201526040908101905180910390a1600192505b5050919050565b60015433600160a060020a03908116911614611dbb57600080fd5b600160a060020a0381161515611dd057600080fd5b60018054600160a060020a031916600160a060020a0383161790555b50565b6000600382815481101515611e0057fe5b906000526020600020906015020160005b50600a015490505b919050565b600080600383815481101515611e3057fe5b906000526020600020906015020160005b50905060005b815460a060020a900460ff166003811115611e5e57fe5b14611e6857600080fd5b600160a060020a0333908116600090815260148301602052604090819020805460ff191660011790557f25892f9206787c4121725a78d5ce4ccdd67396188489c0ec7181390a436776a991859151918252600160a060020a031660208201526040908101905180910390a1600191505b50919050565b600080600384815481101515611ef057fe5b906000526020600020906015020160005b50905060035b815460a060020a900460ff166003811115611f1e57fe5b1415611f2957600080fd5b600381015433600160a060020a0390811691161480611f585750601281015433600160a060020a039081169116145b1515611f6357600080fd5b600160a060020a0383161515611f7857600080fd5b60038101547f0a429aba3d89849a2db0153e4534d95c46a1d83c8109d73893f55ebc44010ff4908590600160a060020a031685604051928352600160a060020a039182166020840152166040808301919091526060909101905180910390a1600381018054600160a060020a038516600160a060020a0319918216179091556012820180549091169055600191505b5092915050565b600060038281548110151561201f57fe5b906000526020600020906015020160005b506010015490505b919050565b612045612da0565b600380548390811061205357fe5b906000526020600020906015020160005b50600f018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120fc5780601f106120d1576101008083540402835291602001916120fc565b820191906000526020600020905b8154815290600101906020018083116120df57829003601f168201915b505050505090505b919050565b600060038281548110151561211a57fe5b906000526020600020906015020160005b5060040154600160a060020a031690505b919050565b60015433600160a060020a0390811691161461215c57600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a831515021790555b50565b600060038281548110151561219957fe5b906000526020600020906015020160005b50600f0160405180828054600181600116156101000203166002900480156122095780601f106121e7576101008083540402835291820191612209565b820191906000526020600020905b8154815290600101906020018083116121f5575b5050915050604051809103902090505b919050565b60025481565b600060038281548110151561223557fe5b906000526020600020906015020160005b506013015490505b919050565b60008060038581548110151561226557fe5b906000526020600020906015020160005b509050600160a060020a038416151561228e57600080fd5b600381015433600160a060020a0390811691161480156122b2575082816011015410155b15612367576122c5816011015484612bff565b60118201556002546122d79084612bff565b60025560008054600160a060020a03169063a9059cbb90869086906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561233c57600080fd5b6102c65a03f1151561234d57600080fd5b50505060405180519050151561236257600080fd5b600191505b5b509392505050565b600060038281548110151561238157fe5b906000526020600020906015020160005b5060030154600160a060020a031690505b919050565b600054600160a060020a031681565b60006003828154811015156123c857fe5b906000526020600020906015020160005b50600f01546002600019610100600184161502019091160490505b919050565b6000612403612db2565b60015460009060a060020a900460ff161561241d57600080fd5b8585111561242a57600080fd5b600160a060020a038e1615158061244057508951155b151561244b57600080fd5b600160a060020a038c1615158061246057508a155b151561246b57600080fd5b600160a060020a038d16151561248057600080fd5b88151561248c57600080fd5b86151561249857600080fd5b8715156124a457600080fd5b4284116124b057600080fd5b6102a0604051908101604052600160a060020a038f1681526020810160005b81526020018e600160a060020a031681526020018d600160a060020a031681526020016000600160a060020a0316815260200133600160a060020a031681526020018a8152602001600081526020016000815260200160008152602001600081526020018c8152602001898152602001888152602001600081526020018781526020018b8152602001868152602001600081526020016000600160a060020a031681526020018581525091506001600380548060010182816125919190612e87565b916000526020600020906015020160005b50849081518154600160a060020a031916600160a060020a039190911617815560208201518154829074ff0000000000000000000000000000000000000000191660a060020a8360038111156125f457fe5b02179055506040820151600182018054600160a060020a031916600160a060020a03929092169190911790556060820151600282018054600160a060020a031916600160a060020a03929092169190911790556080820151600382018054600160a060020a031916600160a060020a039290921691909117905560a0820151600482018054600160a060020a031916600160a060020a039290921691909117905560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080155610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c01556101c082015181600d01556101e082015181600e015561020082015181600f0190805161271c929160200190612eb9565b5061022082015181601001556102408201518160110155610260820151601282018054600160a060020a031916600160a060020a0392909216919091179055610280820151816013015550500390507fd1acb464ac8b592a0bd76da52fada20c0b6e5fc41cccd5ad10a27f7e410a9302818e33604051928352600160a060020a039182166020840152166040808301919091526060909101905180910390a18092505b50509b9a5050505050505050505050565b600f81565b60008282028315806127f157508284828115156127ee57fe5b04145b15156127f957fe5b8091505b5092915050565b600081831015612815575081611579565b5080611579565b5b92915050565b60008282018381108015906127f15750828110155b15156127f957fe5b8091505b5092915050565b60008060008060038581548110151561286057fe5b906000526020600020906015020160005b508054909350600160a060020a0316151561288f5760019350612b96565b8254600160a060020a0316639ca3c29c600f850160006040516020015260405160e060020a63ffffffff841602815260206004820190815282546002600019610100600184161502019091160460248301819052909182916044909101908490801561293c5780601f106129115761010080835404028352916020019161293c565b820191906000526020600020905b81548152906001019060200180831161291f57829003601f168201915b505092505050602060405180830381600087803b151561295b57600080fd5b6102c65a03f1151561296c57600080fd5b505050604051805160008054919450600160a060020a0390911691506323b872dd903390309086906040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156129ea57600080fd5b6102c65a03f115156129fb57600080fd5b505050604051805190501515612a1057600080fd5b600080548454600160a060020a039182169263095ea7b3929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a7857600080fd5b6102c65a03f11515612a8957600080fd5b505050604051805190501515612a9e57600080fd5b8254600160a060020a0316634a2ff078600f850160006040516020015260405160e060020a63ffffffff8416028152602060048201908152825460026000196101006001841615020190911604602483018190529091829160449091019084908015612b4b5780601f10612b2057610100808354040283529160200191612b4b565b820191906000526020600020905b815481529060010190602001808311612b2e57829003601f168201915b505092505050602060405180830381600087803b1515612b6a57600080fd5b6102c65a03f11515612b7b57600080fd5b5050506040518051915050801515612b9257600080fd5b8093505b505050919050565b6000600383815481101515612baf57fe5b906000526020600020906015020160005b50905060015b815460a060020a900460ff166003811115612bdd57fe5b14612be757600080fd5b428211612bf857612bf88383612c1a565b5b5b505050565b60008082841015612c0c57fe5b5050808203805b5092915050565b60008060008060008060008060008060038c815481101515612c3857fe5b906000526020600020906015020160005b50995089600801548b1115612d71578960060154985089600701549750612c748b8b600d0154612804565b91508960080154821115612cd057612c90828b60080154612bff565b9350612ca48a600501548b60090154612bff565b9250612cb5848b600b015485610ed3565b9096509450612cc4858a612823565b9850858a600801540196505b89600d01548b1115612d3f57612cee8a600d01548b60080154612d81565b9050612cfa8b82612bff565b9350612d17612d0d8b600501548b612823565b8b60090154612bff565b9250612d28848b600c015485610ed3565b9096509450612d378886612823565b975085810196505b896006015489141580612d56575089600701548814155b15612d715760088a0187905560068a0189905560078a018890555b5b5b505050505050505050505050565b600081831115612815575081611579565b5080611579565b5b92915050565b60206040519081016040526000815290565b6102a0604051908101604052600080825260208201905b81526020016000600160a060020a031681526020016000600160a060020a031681526020016000600160a060020a031681526020016000600160a060020a0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001612e5c612da0565b815260200160008152602001600081526020016000600160a060020a03168152602001600081525090565b815481835581811511612bf857601502816015028360005260206000209182019101612bf89190612f4a565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612efa57805160ff1916838001178555612f27565b82800160010185558215612f27579182015b82811115612f27578251825591602001919060010190612f0c565b5b50612f34929150613034565b5090565b60206040519081016040526000815290565b61164491905b80821115612f3457805474ffffffffffffffffffffffffffffffffffffffffff19168155600181018054600160a060020a03199081169091556002820180548216905560038201805482169055600482018054909116905560006005820181905560068201819055600782018190556008820181905560098201819055600a8201819055600b8201819055600c8201819055600d8201819055600e8201819055612ffd600f830182613055565b5060006010820181905560118201819055601282018054600160a060020a03191690556013820155601501612f50565b5090565b90565b61164491905b80821115612f34576000815560010161303a565b5090565b90565b50805460018160011615610100020316600290046000825580601f1061307b575061121f565b601f01602090049060005260206000209081019061121f9190613034565b5b505600a165627a7a72305820a496e31d812cdb278dfadf3f08b3bc811c549dd46a87c90258a1d218c6d4241c0029000000000000000000000000f970b8e36e23f7fc3fd752eea86f8be8d83375a6
Deployed Bytecode
0x606060405236156102345763ffffffff60e060020a600035041662442a0781146102395780630557b2b0146102c657806305e1bd8c146102f85780630ad6ac851461032c5780630c196a74146103655780630e136b191461038d57806310a9de60146103b45780632924e254146103e65780632a92362c1461040e5780633290f5151461043657806335a3e83c1461044e5780634a8e4d78146104765780634d5e9a2a1461049e57806355121498146104c6578063567e75c4146104ee57806359357045146105765780635c622a0e1461059e5780635f5fa782146105d85780635fe2d689146106265780637910867b1461064e578063833be5d5146106785780638500d9191461069d5780638d8e5da7146106cf5780638da5cb5b1461070b57806391cb98af1461073a5780639380614414610762578063964f61f91461078a5780639980ec86146107bc5780639d118770146107e4578063a40868541461080e578063a578ae3214610844578063a6aa57ce1461087a578063a6f9dae1146108a4578063a78cb567146108c5578063b759f954146108ed578063b7760c8f14610917578063bed33cae1461094d578063cdf9b77e14610975578063d48e638a14610a03578063d848dee714610a35578063dac3ab8814610a4f578063e47dace514610a77578063e6c8fcf114610a9c578063f24ff92c14610ac4578063fa2c7f9b14610afd578063fc0c546a14610b2f578063fe7eba0614610b5e578063fe925e8014610b86578063ffa1ad7414610c26575b600080fd5b341561024457600080fd5b61024f600435610c4b565b604051600160a060020a039d8e1681529b8d1660208d0152998c166040808d019190915298909b1660608b015260808a019690965260a089019490945260c088019290925260e08701526101008601526101208501526101408401526101608301939093526101808201526101a001905180910390f35b34156102d157600080fd5b6102dc600435610e9b565b604051600160a060020a03909116815260200160405180910390f35b341561030357600080fd5b610314600435602435604435610ed3565b60405191825260208201526040908101905180910390f35b341561033757600080fd5b610351600435602435600160a060020a0360443516610f1e565b604051901515815260200160405180910390f35b341561037057600080fd5b61037b600435611143565b60405190815260200160405180910390f35b341561039857600080fd5b610351611172565b604051901515815260200160405180910390f35b34156103bf57600080fd5b6102dc600435611182565b604051600160a060020a03909116815260200160405180910390f35b34156103f157600080fd5b61037b6004356111b7565b60405190815260200160405180910390f35b341561041957600080fd5b61037b6004356111e6565b60405190815260200160405180910390f35b341561044157600080fd5b61044c600435611215565b005b341561045957600080fd5b61037b600435611223565b60405190815260200160405180910390f35b341561048157600080fd5b61037b600435611357565b60405190815260200160405180910390f35b34156104a957600080fd5b61037b600435611386565b60405190815260200160405180910390f35b34156104d157600080fd5b61037b6004356113b5565b60405190815260200160405180910390f35b34156104f957600080fd5b6105046004356113e4565b604051808a815260200189815260200188815260200187815260200186815260200185600381111561053257fe5b60ff16815260200184815260200183600160a060020a0316600160a060020a0316815260200182151515158152602001995050505050505050505060405180910390f35b341561058157600080fd5b61037b600435611488565b60405190815260200160405180910390f35b34156105a957600080fd5b6105b46004356114b7565b604051808260038111156105c457fe5b60ff16815260200191505060405180910390f35b34156105e357600080fd5b6105f16004356024356114ed565b6040517fff00000000000000000000000000000000000000000000000000000000000000909116815260200160405180910390f35b341561063157600080fd5b61037b60043561157f565b60405190815260200160405180910390f35b341561065957600080fd5b6103516004356115ae565b604051901515815260200160405180910390f35b341561068357600080fd5b61037b611640565b60405190815260200160405180910390f35b34156106a857600080fd5b6102dc600435611647565b604051600160a060020a03909116815260200160405180910390f35b34156106da57600080fd5b610351600160a060020a036004358116906024351660443561167f565b604051901515815260200160405180910390f35b341561071657600080fd5b6102dc6117dd565b604051600160a060020a03909116815260200160405180910390f35b341561074557600080fd5b61037b6004356117ec565b60405190815260200160405180910390f35b341561076d57600080fd5b61037b600435611847565b60405190815260200160405180910390f35b341561079557600080fd5b6102dc600435611876565b604051600160a060020a03909116815260200160405180910390f35b34156107c757600080fd5b61037b6004356118ae565b60405190815260200160405180910390f35b34156107ef57600080fd5b6103516004356118dd565b604051901515815260200160405180910390f35b341561081957600080fd5b610351600435600160a060020a0360243516611a19565b604051901515815260200160405180910390f35b341561084f57600080fd5b610351600435600160a060020a0360243516611a86565b604051901515815260200160405180910390f35b341561088557600080fd5b610351600435611ad2565b604051901515815260200160405180910390f35b34156108af57600080fd5b61044c600160a060020a0360043516611da0565b005b34156108d057600080fd5b61037b600435611def565b60405190815260200160405180910390f35b34156108f857600080fd5b610351600435611e1e565b604051901515815260200160405180910390f35b341561092257600080fd5b610351600435600160a060020a0360243516611ede565b604051901515815260200160405180910390f35b341561095857600080fd5b61037b60043561200e565b60405190815260200160405180910390f35b341561098057600080fd5b61098b60043561203d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156109c85780820151818401525b6020016109af565b50505050905090810190601f1680156109f55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a0e57600080fd5b6102dc600435612109565b604051600160a060020a03909116815260200160405180910390f35b3415610a4057600080fd5b61044c6004351515612141565b005b3415610a5a57600080fd5b61037b600435612188565b60405190815260200160405180910390f35b3415610a8257600080fd5b61037b61221e565b60405190815260200160405180910390f35b3415610aa757600080fd5b61037b600435612224565b60405190815260200160405180910390f35b3415610acf57600080fd5b610351600435600160a060020a0360243516604435612253565b604051901515815260200160405180910390f35b3415610b0857600080fd5b6102dc600435612370565b604051600160a060020a03909116815260200160405180910390f35b3415610b3a57600080fd5b6102dc6123a8565b604051600160a060020a03909116815260200160405180910390f35b3415610b6957600080fd5b61037b6004356123b7565b60405190815260200160405180910390f35b3415610b9157600080fd5b61037b60048035600160a060020a03908116916024803583169260443516916064359160a49060843590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020810135945060408101359350606081013592506080810135915060a001356123f9565b60405190815260200160405180910390f35b3415610c3157600080fd5b61037b6127d0565b60405190815260200160405180910390f35b60008060008060008060008060008060008060008060038f815481101515610c6f57fe5b906000526020600020906015020160005b5090508060000160009054906101000a9004600160a060020a03169d508060010160009054906101000a9004600160a060020a03169c508060030160009054906101000a9004600160a060020a03169b508060040160009054906101000a9004600160a060020a03169a508060050154995080600a0154985080600b0154975080600c0154965080600e01549550806010015494508060000160009054906101000a9004600160a060020a0316600160a060020a031663afd0fd1d82600f0160006040516020015260405160e060020a63ffffffff8416028152602060048201908152825460026000196101006001841615020190911604602483018190529091829160449091019084908015610dd85780601f10610dad57610100808354040283529160200191610dd8565b820191906000526020600020905b815481529060010190602001808311610dbb57829003601f168201915b505092505050602060405180830381600087803b1515610df757600080fd5b6102c65a03f11515610e0857600080fd5b5050506040518051945050600f81016040518082805460018160011615610100020316600290048015610e725780601f10610e50576101008083540402835291820191610e72565b820191906000526020600020905b815481529060010190602001808311610e5e575b505091505060405180910390209250806013015491505b5091939597999b9d90929496989a9c50565b6000600382815481101515610eac57fe5b906000526020600020906015020160005b5060120154600160a060020a031690505b919050565b60008083610eed610ee7620186a0866127d5565b876127d5565b811515610ef657fe5b04905082620186a002610f0982866127d5565b811515610f1257fe5b0491505b935093915050565b600080600080600387815481101515610f3357fe5b906000526020600020906015020160005b50925060015b835460a060020a900460ff166003811115610f6157fe5b14610f6b57600080fd5b610f7487611215565b610f86610f80886117ec565b87612804565b9150610f96836009015483612823565b6009840155610fa4876117ec565b1515611009577f45bbf9b5373297284296c5c84c733f3e536eb719e3fe3ee1771900622621cfb78760405190815260200160405180910390a18254600290849074ff0000000000000000000000000000000000000000191660a060020a835b02179055505b61101b826110168961284b565b6127d5565b60008054919250600160a060020a03909116906323b872dd903390309085906040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561109057600080fd5b6102c65a03f115156110a157600080fd5b5050506040518051905015156110b657600080fd5b6110c4818460110154612823565b60118401556002546110d7908290612823565b6002557f208972b4933bf2f7f9bb4c3c61cd484970eb0babe7539d22a18ab1d80fa7bec687338785604051938452600160a060020a039283166020850152911660408084019190915260608301919091526080909101905180910390a1600193505b5050509392505050565b600060038281548110151561115457fe5b906000526020600020906015020160005b50600b015490505b919050565b60015460a060020a900460ff1681565b600060038281548110151561119357fe5b906000526020600020906015020160005b5054600160a060020a031690505b919050565b60006003828154811015156111c857fe5b906000526020600020906015020160005b506008015490505b919050565b60006003828154811015156111f757fe5b906000526020600020906015020160005b506009015490505b919050565b61121f8142612b9e565b5b50565b600060038281548110151561123457fe5b906000526020600020906015020160005b505460038054600160a060020a039092169163afd0fd1d91908590811061126857fe5b906000526020600020906015020160005b50600f0160006040516020015260405160e060020a63ffffffff84160281526020600482019081528254600260001961010060018416150201909116046024830181905290918291604490910190849080156113165780601f106112eb57610100808354040283529160200191611316565b820191906000526020600020905b8154815290600101906020018083116112f957829003601f168201915b505092505050602060405180830381600087803b151561133557600080fd5b6102c65a03f1151561134657600080fd5b50505060405180519150505b919050565b600060038281548110151561136857fe5b906000526020600020906015020160005b50600e015490505b919050565b600060038281548110151561139757fe5b906000526020600020906015020160005b50600c015490505b919050565b60006003828154811015156113c657fe5b906000526020600020906015020160005b506011015490505b919050565b60008060008060008060008060008060038b81548110151561140257fe5b906000526020600020906015020160005b5090508060060154995080600701549850806008015497508060090154965080600d015495508060000160149054906101000a900460ff169450806011015493508060120160009054906101000a9004600160a060020a031692506114778b6115ae565b91505b509193959799909294969850565b600060038281548110151561149957fe5b906000526020600020906015020160005b50600d015490505b919050565b60006003828154811015156114c857fe5b906000526020600020906015020160005b505460a060020a900460ff1690505b919050565b60006003838154811015156114fe57fe5b906000526020600020906015020160005b50600f0182815460018160011615610100020316600290048110151561153157fe5b8154600116156115505790600052602060002090602091828204019190065b9054901a7f01000000000000000000000000000000000000000000000000000000000000000290505b92915050565b600060038281548110151561159057fe5b906000526020600020906015020160005b506006015490505b919050565b6000806003838154811015156115c057fe5b906000526020600020906015020160005b506001810154600160a060020a0316600090815260148201602052604090205490915060ff16801561163657506002810154600160a060020a0316600090815260148201602052604090205460ff168061163657506002810154600160a060020a0316155b5b91505b50919050565b6003545b90565b600060038281548110151561165857fe5b906000526020600020906015020160005b5060010154600160a060020a031690505b919050565b60015460009033600160a060020a0390811691161461169d57600080fd5b600054600160a060020a03858116911614158061173c575060008054839161173991600160a060020a0316906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561171657600080fd5b6102c65a03f1151561172757600080fd5b50505060405180519050600254612bff565b10155b151561174757600080fd5b600160a060020a038316151561175c57600080fd5b83600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156117b957600080fd5b6102c65a03f115156117ca57600080fd5b50505060405180519150505b9392505050565b600154600160a060020a031681565b6000806003838154811015156117fe57fe5b906000526020600020906015020160005b50905061163661183461182a83600501548460060154612823565b8360070154612823565b8260090154612bff565b91505b50919050565b600060038281548110151561185857fe5b906000526020600020906015020160005b506007015490505b919050565b600060038281548110151561188757fe5b906000526020600020906015020160005b5060020154600160a060020a031690505b919050565b60006003828154811015156118bf57fe5b906000526020600020906015020160005b506005015490505b919050565b6000806003838154811015156118ef57fe5b906000526020600020906015020160005b50905060035b815460a060020a900460ff16600381111561191d57fe5b141561192857600080fd5b600381015433600160a060020a03908116911614806119945750600181015433600160a060020a03908116911614806119715750600281015433600160a060020a039081169116145b8015611994575060005b815460a060020a900460ff16600381111561199257fe5b145b5b15156119a057600080fd5b7f5e81ba96d90c4ed224a3379b681aa7910d3832eabf32b38d8fffdfb58b3ed9628333604051918252600160a060020a031660208201526040908101905180910390a18054600390829074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600191505b50919050565b600080600384815481101515611a2b57fe5b906000526020600020906015020160005b50600381015490915033600160a060020a03908116911614611a5d57600080fd5b601281018054600160a060020a031916600160a060020a038516179055600191505b5092915050565b6000600383815481101515611a9757fe5b906000526020600020906015020160005b50600160a060020a0383166000908152601491909101602052604090205460ff1690505b92915050565b6000806000600384815481101515611ae657fe5b906000526020600020906015020160005b50915060005b825460a060020a900460ff166003811115611b1457fe5b14611b1e57600080fd5b611b27846115ae565b1515611b3257600080fd5b6013820154421115611b4357600080fd5b600382018054600160a060020a03191633600160a060020a0316179055600e820154611b70904290612823565b600d8301554260088301558154600190839074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600082601001541115611bca57611bca84611bc5428560100154612823565b612c1a565b5b611bd48461284b565b60005460018401546005850154929350600160a060020a03918216926323b872dd9233921690611c0490866127d5565b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611c5c57600080fd5b6102c65a03f11515611c6d57600080fd5b505050604051805190501515611c8257600080fd5b6002820154600160a060020a031615611d41576000546002830154600a840154600160a060020a03928316926323b872dd923392911690611cc390866127d5565b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611d1b57600080fd5b6102c65a03f11515611d2c57600080fd5b505050604051805190501515611d4157600080fd5b5b60038201547fe69a2d9a97bd2617dba9d6377976d828bb5b0c24b515820e3a191eb1c5d57bc3908590600160a060020a0316604051918252600160a060020a031660208201526040908101905180910390a1600192505b5050919050565b60015433600160a060020a03908116911614611dbb57600080fd5b600160a060020a0381161515611dd057600080fd5b60018054600160a060020a031916600160a060020a0383161790555b50565b6000600382815481101515611e0057fe5b906000526020600020906015020160005b50600a015490505b919050565b600080600383815481101515611e3057fe5b906000526020600020906015020160005b50905060005b815460a060020a900460ff166003811115611e5e57fe5b14611e6857600080fd5b600160a060020a0333908116600090815260148301602052604090819020805460ff191660011790557f25892f9206787c4121725a78d5ce4ccdd67396188489c0ec7181390a436776a991859151918252600160a060020a031660208201526040908101905180910390a1600191505b50919050565b600080600384815481101515611ef057fe5b906000526020600020906015020160005b50905060035b815460a060020a900460ff166003811115611f1e57fe5b1415611f2957600080fd5b600381015433600160a060020a0390811691161480611f585750601281015433600160a060020a039081169116145b1515611f6357600080fd5b600160a060020a0383161515611f7857600080fd5b60038101547f0a429aba3d89849a2db0153e4534d95c46a1d83c8109d73893f55ebc44010ff4908590600160a060020a031685604051928352600160a060020a039182166020840152166040808301919091526060909101905180910390a1600381018054600160a060020a038516600160a060020a0319918216179091556012820180549091169055600191505b5092915050565b600060038281548110151561201f57fe5b906000526020600020906015020160005b506010015490505b919050565b612045612da0565b600380548390811061205357fe5b906000526020600020906015020160005b50600f018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120fc5780601f106120d1576101008083540402835291602001916120fc565b820191906000526020600020905b8154815290600101906020018083116120df57829003601f168201915b505050505090505b919050565b600060038281548110151561211a57fe5b906000526020600020906015020160005b5060040154600160a060020a031690505b919050565b60015433600160a060020a0390811691161461215c57600080fd5b6001805474ff0000000000000000000000000000000000000000191660a060020a831515021790555b50565b600060038281548110151561219957fe5b906000526020600020906015020160005b50600f0160405180828054600181600116156101000203166002900480156122095780601f106121e7576101008083540402835291820191612209565b820191906000526020600020905b8154815290600101906020018083116121f5575b5050915050604051809103902090505b919050565b60025481565b600060038281548110151561223557fe5b906000526020600020906015020160005b506013015490505b919050565b60008060038581548110151561226557fe5b906000526020600020906015020160005b509050600160a060020a038416151561228e57600080fd5b600381015433600160a060020a0390811691161480156122b2575082816011015410155b15612367576122c5816011015484612bff565b60118201556002546122d79084612bff565b60025560008054600160a060020a03169063a9059cbb90869086906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561233c57600080fd5b6102c65a03f1151561234d57600080fd5b50505060405180519050151561236257600080fd5b600191505b5b509392505050565b600060038281548110151561238157fe5b906000526020600020906015020160005b5060030154600160a060020a031690505b919050565b600054600160a060020a031681565b60006003828154811015156123c857fe5b906000526020600020906015020160005b50600f01546002600019610100600184161502019091160490505b919050565b6000612403612db2565b60015460009060a060020a900460ff161561241d57600080fd5b8585111561242a57600080fd5b600160a060020a038e1615158061244057508951155b151561244b57600080fd5b600160a060020a038c1615158061246057508a155b151561246b57600080fd5b600160a060020a038d16151561248057600080fd5b88151561248c57600080fd5b86151561249857600080fd5b8715156124a457600080fd5b4284116124b057600080fd5b6102a0604051908101604052600160a060020a038f1681526020810160005b81526020018e600160a060020a031681526020018d600160a060020a031681526020016000600160a060020a0316815260200133600160a060020a031681526020018a8152602001600081526020016000815260200160008152602001600081526020018c8152602001898152602001888152602001600081526020018781526020018b8152602001868152602001600081526020016000600160a060020a031681526020018581525091506001600380548060010182816125919190612e87565b916000526020600020906015020160005b50849081518154600160a060020a031916600160a060020a039190911617815560208201518154829074ff0000000000000000000000000000000000000000191660a060020a8360038111156125f457fe5b02179055506040820151600182018054600160a060020a031916600160a060020a03929092169190911790556060820151600282018054600160a060020a031916600160a060020a03929092169190911790556080820151600382018054600160a060020a031916600160a060020a039290921691909117905560a0820151600482018054600160a060020a031916600160a060020a039290921691909117905560c0820151816005015560e0820151816006015561010082015181600701556101208201518160080155610140820151816009015561016082015181600a015561018082015181600b01556101a082015181600c01556101c082015181600d01556101e082015181600e015561020082015181600f0190805161271c929160200190612eb9565b5061022082015181601001556102408201518160110155610260820151601282018054600160a060020a031916600160a060020a0392909216919091179055610280820151816013015550500390507fd1acb464ac8b592a0bd76da52fada20c0b6e5fc41cccd5ad10a27f7e410a9302818e33604051928352600160a060020a039182166020840152166040808301919091526060909101905180910390a18092505b50509b9a5050505050505050505050565b600f81565b60008282028315806127f157508284828115156127ee57fe5b04145b15156127f957fe5b8091505b5092915050565b600081831015612815575081611579565b5080611579565b5b92915050565b60008282018381108015906127f15750828110155b15156127f957fe5b8091505b5092915050565b60008060008060038581548110151561286057fe5b906000526020600020906015020160005b508054909350600160a060020a0316151561288f5760019350612b96565b8254600160a060020a0316639ca3c29c600f850160006040516020015260405160e060020a63ffffffff841602815260206004820190815282546002600019610100600184161502019091160460248301819052909182916044909101908490801561293c5780601f106129115761010080835404028352916020019161293c565b820191906000526020600020905b81548152906001019060200180831161291f57829003601f168201915b505092505050602060405180830381600087803b151561295b57600080fd5b6102c65a03f1151561296c57600080fd5b505050604051805160008054919450600160a060020a0390911691506323b872dd903390309086906040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156129ea57600080fd5b6102c65a03f115156129fb57600080fd5b505050604051805190501515612a1057600080fd5b600080548454600160a060020a039182169263095ea7b3929091169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612a7857600080fd5b6102c65a03f11515612a8957600080fd5b505050604051805190501515612a9e57600080fd5b8254600160a060020a0316634a2ff078600f850160006040516020015260405160e060020a63ffffffff8416028152602060048201908152825460026000196101006001841615020190911604602483018190529091829160449091019084908015612b4b5780601f10612b2057610100808354040283529160200191612b4b565b820191906000526020600020905b815481529060010190602001808311612b2e57829003601f168201915b505092505050602060405180830381600087803b1515612b6a57600080fd5b6102c65a03f11515612b7b57600080fd5b5050506040518051915050801515612b9257600080fd5b8093505b505050919050565b6000600383815481101515612baf57fe5b906000526020600020906015020160005b50905060015b815460a060020a900460ff166003811115612bdd57fe5b14612be757600080fd5b428211612bf857612bf88383612c1a565b5b5b505050565b60008082841015612c0c57fe5b5050808203805b5092915050565b60008060008060008060008060008060038c815481101515612c3857fe5b906000526020600020906015020160005b50995089600801548b1115612d71578960060154985089600701549750612c748b8b600d0154612804565b91508960080154821115612cd057612c90828b60080154612bff565b9350612ca48a600501548b60090154612bff565b9250612cb5848b600b015485610ed3565b9096509450612cc4858a612823565b9850858a600801540196505b89600d01548b1115612d3f57612cee8a600d01548b60080154612d81565b9050612cfa8b82612bff565b9350612d17612d0d8b600501548b612823565b8b60090154612bff565b9250612d28848b600c015485610ed3565b9096509450612d378886612823565b975085810196505b896006015489141580612d56575089600701548814155b15612d715760088a0187905560068a0189905560078a018890555b5b5b505050505050505050505050565b600081831115612815575081611579565b5080611579565b5b92915050565b60206040519081016040526000815290565b6102a0604051908101604052600080825260208201905b81526020016000600160a060020a031681526020016000600160a060020a031681526020016000600160a060020a031681526020016000600160a060020a0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001612e5c612da0565b815260200160008152602001600081526020016000600160a060020a03168152602001600081525090565b815481835581811511612bf857601502816015028360005260206000209182019101612bf89190612f4a565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612efa57805160ff1916838001178555612f27565b82800160010185558215612f27579182015b82811115612f27578251825591602001919060010190612f0c565b5b50612f34929150613034565b5090565b60206040519081016040526000815290565b61164491905b80821115612f3457805474ffffffffffffffffffffffffffffffffffffffffff19168155600181018054600160a060020a03199081169091556002820180548216905560038201805482169055600482018054909116905560006005820181905560068201819055600782018190556008820181905560098201819055600a8201819055600b8201819055600c8201819055600d8201819055600e8201819055612ffd600f830182613055565b5060006010820181905560118201819055601282018054600160a060020a03191690556013820155601501612f50565b5090565b90565b61164491905b80821115612f34576000815560010161303a565b5090565b90565b50805460018160011615610100020316600290046000825580601f1061307b575061121f565b601f01602090049060005260206000209081019061121f9190613034565b5b505600a165627a7a72305820a496e31d812cdb278dfadf3f08b3bc811c549dd46a87c90258a1d218c6d4241c0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f970b8e36e23f7fc3fd752eea86f8be8d83375a6
-----Decoded View---------------
Arg [0] : _token (address): 0xF970b8E36e23F7fC3FD752EeA86f8Be8D83375A6
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f970b8e36e23f7fc3fd752eea86f8be8d83375a6
Swarm Source
bzzr://a496e31d812cdb278dfadf3f08b3bc811c549dd46a87c90258a1d218c6d4241c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000739 | 294.1623 | $0.2172 |
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.