ETH Price: $2,967.73 (+3.59%)
Gas: 1 Gwei

Contract

0x5Be916Cff5f07870e9Aef205960e07d9e287eF27
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Propose Owner195146042024-03-25 22:59:35102 days ago1711407575IN
0x5Be916Cf...9e287eF27
0 ETH0.0015358325.8998169
Set Loans Periph...195144882024-03-25 22:36:23102 days ago1711406183IN
0x5Be916Cf...9e287eF27
0 ETH0.001649840
Claim Ownership195144532024-03-25 22:29:23102 days ago1711405763IN
0x5Be916Cf...9e287eF27
0 ETH0.0010264925.69959159
Propose Owner175387782023-06-23 0:40:11379 days ago1687480811IN
0x5Be916Cf...9e287eF27
0 ETH0.0010080817
Set Loans Periph...175386492023-06-23 0:14:23379 days ago1687479263IN
0x5Be916Cf...9e287eF27
0 ETH0.0007424118
Claim Ownership175385242023-06-22 23:49:11379 days ago1687477751IN
0x5Be916Cf...9e287eF27
0 ETH0.0007983820
Propose Owner175381472023-06-22 22:32:47379 days ago1687473167IN
0x5Be916Cf...9e287eF27
0 ETH0.0016597228
Set Loans Periph...175379502023-06-22 21:52:59379 days ago1687470779IN
0x5Be916Cf...9e287eF27
0 ETH0.0011535728
Set Loans Periph...173746452023-05-30 22:14:47402 days ago1685484887IN
0x5Be916Cf...9e287eF27
0 ETH0.0020966550
Set Loans Periph...172397872023-05-11 21:43:59421 days ago1683841439IN
0x5Be916Cf...9e287eF27
0 ETH0.0037482485
Set Loans Periph...168360042023-03-15 21:36:35478 days ago1678916195IN
0x5Be916Cf...9e287eF27
0 ETH0.001411132
Set Loans Periph...166945062023-02-23 23:58:35498 days ago1677196715IN
0x5Be916Cf...9e287eF27
0 ETH0.0015417835
Set Loans Periph...164228542023-01-17 0:12:11536 days ago1673914331IN
0x5Be916Cf...9e287eF27
0 ETH0.0010091522.86106423
Set Loans Periph...164228402023-01-17 0:09:23536 days ago1673914163IN
0x5Be916Cf...9e287eF27
0 ETH0.000950121.47855934
Set Loans Periph...164221282023-01-16 21:46:35536 days ago1673905595IN
0x5Be916Cf...9e287eF27
0 ETH0.0014125732
Set Loans Periph...161244562022-12-06 8:08:23577 days ago1670314103IN
0x5Be916Cf...9e287eF27
0 ETH0.000884720
Set Loans Periph...161213992022-12-05 21:54:11578 days ago1670277251IN
0x5Be916Cf...9e287eF27
0 ETH0.0004734310.70282046
Set Loans Periph...158886502022-11-03 9:37:35610 days ago1667468255IN
0x5Be916Cf...9e287eF27
0 ETH0.0021467235
0x34613509158886372022-11-03 9:34:59610 days ago1667468099IN
 Create: Vyper_contract
0 ETH0.1049674135

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.6

Optimization Enabled:
N/A

Other Settings:
None license

Contract Source Code (Vyper language format)

# @version ^0.3.6


# Interfaces

interface ILoansPeripheral:
    def lendingPoolPeripheralContract() -> address: view

interface ILendingPoolPeripheral:
    def erc20TokenContract() -> address: view


# Structs

struct Collateral:
    contractAddress: address
    tokenId: uint256
    amount: uint256

struct Loan:
    id: uint256
    amount: uint256
    interest: uint256 # parts per 10000, e.g. 2.5% is represented by 250 parts per 10000
    maturity: uint256
    startTime: uint256
    collaterals: DynArray[Collateral, 100]
    paidPrincipal: uint256
    paidInterestAmount: uint256
    started: bool
    invalidated: bool
    paid: bool
    defaulted: bool
    canceled: bool

struct TopStats:
    highestSingleCollateralLoan: Loan
    highestCollateralBundleLoan: Loan
    highestRepayment: Loan
    highestDefaultedLoan: Loan


# Events

event OwnerProposed:
    ownerIndexed: indexed(address)
    proposedOwnerIndexed: indexed(address)
    owner: address
    proposedOwner: address
    erc20TokenContract: address

event OwnershipTransferred:
    ownerIndexed: indexed(address)
    proposedOwnerIndexed: indexed(address)
    owner: address
    proposedOwner: address
    erc20TokenContract: address

event LoansPeripheralAddressSet:
    erc20TokenContractIndexed: indexed(address)
    currentValue: address
    newValue: address
    erc20TokenContract: address


# Global variables

owner: public(address)
proposedOwner: public(address)

loansPeripheral: public(address)

loans: HashMap[address, DynArray[Loan, 2**16]]
borrowedAmount: public(HashMap[address, uint256])
ongoingLoans: public(HashMap[address, uint256])

# key: bytes32 == _abi_encoded(token_address, token_id) -> map(borrower_address, loan_id)
collateralsInLoans: public(HashMap[bytes32, HashMap[address, uint256]]) # given a collateral and a borrower, what is the loan id
collateralsInLoansUsed: public(HashMap[bytes32, HashMap[address, HashMap[uint256, bool]]]) # given a collateral, a borrower and a loan id, is the collateral still used in that loan id
collateralKeys: DynArray[bytes32, 2**20] # array of collaterals expressed by their keys
collateralsUsed: public(HashMap[bytes32, bool]) # given a collateral, is it being used in a loan
collateralsData: public(HashMap[bytes32, Collateral]) # given a collateral key, what is its data
collateralsIdsByAddress: HashMap[address, DynArray[uint256, 2**20]] # given a collateral address, what are the token ids that were already in a loan

collectionsBorrowedAmount: public(HashMap[address, uint256])

# Stats
topStats: TopStats


##### INTERNAL METHODS #####

@view
@internal
def _isLoanCreated(_borrower: address, _loanId: uint256) -> bool:
    return _loanId < len(self.loans[_borrower])


@view
@internal
def _isLoanStarted(_borrower: address, _loanId: uint256) -> bool:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].started
    return False


@view
@internal
def _isLoanInvalidated(_borrower: address, _loanId: uint256) -> bool:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].invalidated
    return False


@pure
@internal
def _computeCollateralKey(_collateralAddress: address, _collateralId: uint256) -> bytes32:
  return keccak256(_abi_encode(_collateralAddress, convert(_collateralId, bytes32)))


@internal
def _addCollateralToLoan(_borrower: address, _collateral: Collateral, _loanId: uint256):
  key: bytes32 = self._computeCollateralKey(_collateral.contractAddress, _collateral.tokenId)
  self.collateralsInLoans[key][_borrower] = _loanId
  self.collateralsInLoansUsed[key][_borrower][_loanId] = True


@internal
def _removeCollateralFromLoan(_borrower: address, _collateral: Collateral, _loanId: uint256):
  key: bytes32 = self._computeCollateralKey(_collateral.contractAddress, _collateral.tokenId)
  self.collateralsInLoansUsed[key][_borrower][_loanId] = False


@internal
def _updateCollaterals(_collateral: Collateral, _toRemove: bool):
  key: bytes32 = self._computeCollateralKey(_collateral.contractAddress, _collateral.tokenId)

  if key not in self.collateralKeys and not _toRemove:
    self.collateralKeys.append(key)
    self.collateralsUsed[key] = True
    self.collateralsData[key] = _collateral
  elif key in self.collateralKeys:
    self.collateralsUsed[key] = not _toRemove

  if _collateral.tokenId not in self.collateralsIdsByAddress[_collateral.contractAddress] and not _toRemove:
    self.collateralsIdsByAddress[_collateral.contractAddress].append(_collateral.tokenId)


@internal
def _addLoan(_borrower: address, _loan: Loan) -> bool:
    if _loan.id == len(self.loans[_borrower]):
        self.loans[_borrower].append(_loan)
        self.ongoingLoans[_borrower] += 1
        return True
    return False


##### EXTERNAL METHODS #####

@external
def __init__():
    self.owner = msg.sender


@external
def proposeOwner(_address: address):
    assert msg.sender == self.owner, "msg.sender is not the owner"
    assert _address != empty(address), "_address it the zero address"
    assert self.owner != _address, "proposed owner addr is the owner"
    assert self.proposedOwner != _address, "proposed owner addr is the same"

    self.proposedOwner = _address

    log OwnerProposed(
        self.owner,
        _address,
        self.owner,
        _address,
        ILendingPoolPeripheral(
            ILoansPeripheral(self.loansPeripheral).lendingPoolPeripheralContract()
        ).erc20TokenContract()
    )


@external
def claimOwnership():
    assert msg.sender == self.proposedOwner, "msg.sender is not the proposed"

    log OwnershipTransferred(
        self.owner,
        self.proposedOwner,
        self.owner,
        self.proposedOwner,
        ILendingPoolPeripheral(
            ILoansPeripheral(self.loansPeripheral).lendingPoolPeripheralContract()
        ).erc20TokenContract()
    )

    self.owner = self.proposedOwner
    self.proposedOwner = empty(address)


@external
def setLoansPeripheral(_address: address):
    assert msg.sender == self.owner, "msg.sender is not the owner"
    assert _address != empty(address), "_address is the zero address"
    assert _address != self.loansPeripheral, "new loans addr is the same"

    log LoansPeripheralAddressSet(
        ILendingPoolPeripheral(
            ILoansPeripheral(_address).lendingPoolPeripheralContract()
        ).erc20TokenContract(),
        self.loansPeripheral,
        _address,
        ILendingPoolPeripheral(
            ILoansPeripheral(_address).lendingPoolPeripheralContract()
        ).erc20TokenContract()
    )

    self.loansPeripheral = _address


@view
@external
def isLoanCreated(_borrower: address, _loanId: uint256) -> bool:
    return self._isLoanCreated(_borrower, _loanId)


@view
@external
def isLoanStarted(_borrower: address, _loanId: uint256) -> bool:
    return self._isLoanStarted(_borrower, _loanId)


@view
@external
def getLoanAmount(_borrower: address, _loanId: uint256) -> uint256:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].amount
    return 0


@view
@external
def getLoanMaturity(_borrower: address, _loanId: uint256) -> uint256:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].maturity
    return 0


@view
@external
def getLoanInterest(_borrower: address, _loanId: uint256) -> uint256:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].interest
    return 0


@view
@external
def getLoanCollaterals(_borrower: address, _loanId: uint256) -> DynArray[Collateral, 100]:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].collaterals
    return empty(DynArray[Collateral, 100])


@view
@external
def getLoanStartTime(_borrower: address, _loanId: uint256) -> uint256:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].startTime
    return max_value(uint256)


@view
@external
def getLoanPaidPrincipal(_borrower: address, _loanId: uint256) -> uint256:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].paidPrincipal
    return 0


@view
@external
def getLoanPaidInterestAmount(_borrower: address, _loanId: uint256) -> uint256:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].paidInterestAmount
    return 0


@view
@external
def getLoanStarted(_borrower: address, _loanId: uint256) -> bool:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].started
    return False


@view
@external
def getLoanInvalidated(_borrower: address, _loanId: uint256) -> bool:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].invalidated
    return False


@view
@external
def getLoanPaid(_borrower: address, _loanId: uint256) -> bool:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].paid
    return False


@view
@external
def getLoanDefaulted(_borrower: address, _loanId: uint256) -> bool:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].defaulted
    return False


@view
@external
def getLoanCanceled(_borrower: address, _loanId: uint256) -> bool:
    if _loanId < len(self.loans[_borrower]):
        return self.loans[_borrower][_loanId].canceled
    return False


@view
@external
def getPendingLoan(_borrower: address, _loanId: uint256) -> Loan:
  if self._isLoanCreated(_borrower, _loanId) and not self._isLoanStarted(_borrower, _loanId) and not self._isLoanInvalidated(_borrower, _loanId):
    return self.loans[_borrower][_loanId]
  return empty(Loan)


@view
@external
def getLoan(_borrower: address, _loanId: uint256) -> Loan:
  if self._isLoanStarted(_borrower, _loanId) or self._isLoanInvalidated(_borrower, _loanId):
    return self.loans[_borrower][_loanId]
  return empty(Loan)


@view
@external
def getHighestSingleCollateralLoan() -> Loan:
    return self.topStats.highestSingleCollateralLoan


@view
@external
def getHighestCollateralBundleLoan() -> Loan:
    return self.topStats.highestCollateralBundleLoan


@view
@external
def getHighestRepayment() -> Loan:
    return self.topStats.highestRepayment


@view
@external
def getHighestDefaultedLoan() -> Loan:
    return self.topStats.highestDefaultedLoan


@view
@external
def collateralKeysArray() -> DynArray[bytes32, 2**20]:
  return self.collateralKeys


@view
@external
def getCollateralsIdsByAddress(_address: address) -> DynArray[uint256, 2**20]:
  return self.collateralsIdsByAddress[_address]


@external
def addCollateralToLoan(_borrower: address, _collateral: Collateral, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"
    assert self._isLoanCreated(_borrower, _loanId), "loan not found"

    self._addCollateralToLoan(_borrower, _collateral, _loanId)


@external
def removeCollateralFromLoan(_borrower: address, _collateral: Collateral, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"
    assert self._isLoanCreated(_borrower, _loanId), "loan not found"
    
    self._removeCollateralFromLoan(_borrower, _collateral, _loanId)


@external
def updateCollaterals(_collateral: Collateral, _toRemove: bool):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    self._updateCollaterals(_collateral, _toRemove)


@external
def addLoan(
    _borrower: address,
    _amount: uint256,
    _interest: uint256,
    _maturity: uint256,
    _collaterals: DynArray[Collateral, 100]
) -> uint256:
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    newLoan: Loan = Loan(
        {
            id: len(self.loans[_borrower]),
            amount: _amount,
            interest: _interest,
            maturity: _maturity,
            startTime: 0,
            collaterals: _collaterals,
            paidPrincipal: 0,
            paidInterestAmount: 0,
            started: False,
            invalidated: False,
            paid: False,
            defaulted: False,
            canceled: False,
        }
    )

    result: bool = self._addLoan(_borrower, newLoan)
    if not result:
        raise "adding loan for borrower failed"

    return newLoan.id


@external
def updateLoanStarted(_borrower: address, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    self.loans[_borrower][_loanId].startTime = block.timestamp
    self.loans[_borrower][_loanId].started = True

    self.borrowedAmount[_borrower] += self.loans[_borrower][_loanId].amount

    for collateral in self.loans[_borrower][_loanId].collaterals:
        self.collectionsBorrowedAmount[collateral.contractAddress] += collateral.amount


@external
def updateInvalidLoan(_borrower: address, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    self.loans[_borrower][_loanId].invalidated = True

    self.ongoingLoans[_borrower] -= 1


@external
def updateLoanPaidAmount(_borrower: address, _loanId: uint256, _paidPrincipal: uint256, _paidInterestAmount: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"
  
    self.loans[_borrower][_loanId].paidPrincipal += _paidPrincipal
    self.loans[_borrower][_loanId].paidInterestAmount += _paidInterestAmount


@external
def updatePaidLoan(_borrower: address, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    self.loans[_borrower][_loanId].paid = True

    self.borrowedAmount[_borrower] -= self.loans[_borrower][_loanId].amount

    self.ongoingLoans[_borrower] -= 1

    for collateral in self.loans[_borrower][_loanId].collaterals:
        self.collectionsBorrowedAmount[collateral.contractAddress] -= collateral.amount


@external
def updateDefaultedLoan(_borrower: address, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    self.loans[_borrower][_loanId].defaulted = True

    self.borrowedAmount[_borrower] -= self.loans[_borrower][_loanId].amount

    self.ongoingLoans[_borrower] -= 1

    for collateral in self.loans[_borrower][_loanId].collaterals:
        self.collectionsBorrowedAmount[collateral.contractAddress] -= collateral.amount


@external
def updateCanceledLoan(_borrower: address, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    self.loans[_borrower][_loanId].canceled = True

    self.ongoingLoans[_borrower] -= 1


@external
def updateHighestSingleCollateralLoan(_borrower: address, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"
  
    if len(self.loans[_borrower][_loanId].collaterals) == 1 and self.topStats.highestSingleCollateralLoan.amount < self.loans[_borrower][_loanId].amount:
        self.topStats.highestSingleCollateralLoan = self.loans[_borrower][_loanId]
  

@external
def updateHighestCollateralBundleLoan(_borrower: address, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    if len(self.loans[_borrower][_loanId].collaterals) > 1 and self.topStats.highestCollateralBundleLoan.amount < self.loans[_borrower][_loanId].amount:
        self.topStats.highestCollateralBundleLoan = self.loans[_borrower][_loanId]


@external
def updateHighestRepayment(_borrower: address, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    if self.topStats.highestRepayment.amount < self.loans[_borrower][_loanId].amount:
        self.topStats.highestRepayment = self.loans[_borrower][_loanId]


@external
def updateHighestDefaultedLoan(_borrower: address, _loanId: uint256):
    assert msg.sender == self.loansPeripheral, "msg.sender is not the loans addr"

    if self.topStats.highestDefaultedLoan.amount < self.loans[_borrower][_loanId].amount:
        self.topStats.highestDefaultedLoan = self.loans[_borrower][_loanId]

Contract Security Audit

Contract ABI

[{"name":"OwnerProposed","inputs":[{"name":"ownerIndexed","type":"address","indexed":true},{"name":"proposedOwnerIndexed","type":"address","indexed":true},{"name":"owner","type":"address","indexed":false},{"name":"proposedOwner","type":"address","indexed":false},{"name":"erc20TokenContract","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"OwnershipTransferred","inputs":[{"name":"ownerIndexed","type":"address","indexed":true},{"name":"proposedOwnerIndexed","type":"address","indexed":true},{"name":"owner","type":"address","indexed":false},{"name":"proposedOwner","type":"address","indexed":false},{"name":"erc20TokenContract","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"LoansPeripheralAddressSet","inputs":[{"name":"erc20TokenContractIndexed","type":"address","indexed":true},{"name":"currentValue","type":"address","indexed":false},{"name":"newValue","type":"address","indexed":false},{"name":"erc20TokenContract","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"proposeOwner","inputs":[{"name":"_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"claimOwnership","inputs":[],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setLoansPeripheral","inputs":[{"name":"_address","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"isLoanCreated","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"isLoanStarted","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"getLoanAmount","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"getLoanMaturity","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"getLoanInterest","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"getLoanCollaterals","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"tuple[]","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]}]},{"stateMutability":"view","type":"function","name":"getLoanStartTime","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"getLoanPaidPrincipal","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"getLoanPaidInterestAmount","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"getLoanStarted","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"getLoanInvalidated","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"getLoanPaid","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"getLoanDefaulted","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"getLoanCanceled","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"getPendingLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"id","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"interest","type":"uint256"},{"name":"maturity","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"collaterals","type":"tuple[]","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]},{"name":"paidPrincipal","type":"uint256"},{"name":"paidInterestAmount","type":"uint256"},{"name":"started","type":"bool"},{"name":"invalidated","type":"bool"},{"name":"paid","type":"bool"},{"name":"defaulted","type":"bool"},{"name":"canceled","type":"bool"}]}]},{"stateMutability":"view","type":"function","name":"getLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"id","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"interest","type":"uint256"},{"name":"maturity","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"collaterals","type":"tuple[]","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]},{"name":"paidPrincipal","type":"uint256"},{"name":"paidInterestAmount","type":"uint256"},{"name":"started","type":"bool"},{"name":"invalidated","type":"bool"},{"name":"paid","type":"bool"},{"name":"defaulted","type":"bool"},{"name":"canceled","type":"bool"}]}]},{"stateMutability":"view","type":"function","name":"getHighestSingleCollateralLoan","inputs":[],"outputs":[{"name":"","type":"tuple","components":[{"name":"id","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"interest","type":"uint256"},{"name":"maturity","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"collaterals","type":"tuple[]","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]},{"name":"paidPrincipal","type":"uint256"},{"name":"paidInterestAmount","type":"uint256"},{"name":"started","type":"bool"},{"name":"invalidated","type":"bool"},{"name":"paid","type":"bool"},{"name":"defaulted","type":"bool"},{"name":"canceled","type":"bool"}]}]},{"stateMutability":"view","type":"function","name":"getHighestCollateralBundleLoan","inputs":[],"outputs":[{"name":"","type":"tuple","components":[{"name":"id","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"interest","type":"uint256"},{"name":"maturity","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"collaterals","type":"tuple[]","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]},{"name":"paidPrincipal","type":"uint256"},{"name":"paidInterestAmount","type":"uint256"},{"name":"started","type":"bool"},{"name":"invalidated","type":"bool"},{"name":"paid","type":"bool"},{"name":"defaulted","type":"bool"},{"name":"canceled","type":"bool"}]}]},{"stateMutability":"view","type":"function","name":"getHighestRepayment","inputs":[],"outputs":[{"name":"","type":"tuple","components":[{"name":"id","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"interest","type":"uint256"},{"name":"maturity","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"collaterals","type":"tuple[]","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]},{"name":"paidPrincipal","type":"uint256"},{"name":"paidInterestAmount","type":"uint256"},{"name":"started","type":"bool"},{"name":"invalidated","type":"bool"},{"name":"paid","type":"bool"},{"name":"defaulted","type":"bool"},{"name":"canceled","type":"bool"}]}]},{"stateMutability":"view","type":"function","name":"getHighestDefaultedLoan","inputs":[],"outputs":[{"name":"","type":"tuple","components":[{"name":"id","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"interest","type":"uint256"},{"name":"maturity","type":"uint256"},{"name":"startTime","type":"uint256"},{"name":"collaterals","type":"tuple[]","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]},{"name":"paidPrincipal","type":"uint256"},{"name":"paidInterestAmount","type":"uint256"},{"name":"started","type":"bool"},{"name":"invalidated","type":"bool"},{"name":"paid","type":"bool"},{"name":"defaulted","type":"bool"},{"name":"canceled","type":"bool"}]}]},{"stateMutability":"view","type":"function","name":"collateralKeysArray","inputs":[],"outputs":[{"name":"","type":"bytes32[]"}]},{"stateMutability":"view","type":"function","name":"getCollateralsIdsByAddress","inputs":[{"name":"_address","type":"address"}],"outputs":[{"name":"","type":"uint256[]"}]},{"stateMutability":"nonpayable","type":"function","name":"addCollateralToLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_collateral","type":"tuple","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"removeCollateralFromLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_collateral","type":"tuple","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updateCollaterals","inputs":[{"name":"_collateral","type":"tuple","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]},{"name":"_toRemove","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"addLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_interest","type":"uint256"},{"name":"_maturity","type":"uint256"},{"name":"_collaterals","type":"tuple[]","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"updateLoanStarted","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updateInvalidLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updateLoanPaidAmount","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"},{"name":"_paidPrincipal","type":"uint256"},{"name":"_paidInterestAmount","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updatePaidLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updateDefaultedLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updateCanceledLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updateHighestSingleCollateralLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updateHighestCollateralBundleLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updateHighestRepayment","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"updateHighestDefaultedLoan","inputs":[{"name":"_borrower","type":"address"},{"name":"_loanId","type":"uint256"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"proposedOwner","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"loansPeripheral","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"borrowedAmount","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"ongoingLoans","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"collateralsInLoans","inputs":[{"name":"arg0","type":"bytes32"},{"name":"arg1","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"collateralsInLoansUsed","inputs":[{"name":"arg0","type":"bytes32"},{"name":"arg1","type":"address"},{"name":"arg2","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"collateralsUsed","inputs":[{"name":"arg0","type":"bytes32"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"collateralsData","inputs":[{"name":"arg0","type":"bytes32"}],"outputs":[{"name":"","type":"tuple","components":[{"name":"contractAddress","type":"address"},{"name":"tokenId","type":"uint256"},{"name":"amount","type":"uint256"}]}]},{"stateMutability":"view","type":"function","name":"collectionsBorrowedAmount","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"uint256"}]}]

3461350957336000556134ee61001a610000396134ee610000f36003361161000c57612fe7565b60003560e01c346134dc5763b5ed298a811861029957602436186134dc576004358060a01c6134dc5760405260005433181561009f57601b6060527f6d73672e73656e646572206973206e6f7420746865206f776e6572000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60405161010357601c6060527f5f6164647265737320697420746865207a65726f20616464726573730000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6040516000541861016b5760206060527f70726f706f736564206f776e6572206164647220697320746865206f776e657260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b604051600154186101d357601f6060527f70726f706f736564206f776e65722061646472206973207468652073616d650060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6040516001556040516000547fb4c8aadbed5e1d6c2b41b85b2a233853a33c3f9284159abad98bf7d24d5a6f74600054610120526040516101405260025463bbb6bbc6606052602060606004607c845afa610233573d600060003e3d6000fd5b60203d106134dc576060518060a01c6134dc5760a05260a090505163856e848860c052602060c0600460dc845afa610270573d600060003e3d6000fd5b60203d106134dc5760c0518060a01c6134dc5761010052610100905051610160526060610120a3005b634e71e0c881186103dc57600436186134dc5760015433181561031357601e6040527f6d73672e73656e646572206973206e6f74207468652070726f706f736564000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b6001546000547fd5b903f8ba0e47f8a7bfe27b5098230bd3900b46d8b430e37480be7096ca7f6d600054610100526001546101205260025463bbb6bbc6604052602060406004605c845afa61036d573d600060003e3d6000fd5b60203d106134dc576040518060a01c6134dc57608052608090505163856e848860a052602060a0600460bc845afa6103aa573d600060003e3d6000fd5b60203d106134dc5760a0518060a01c6134dc5760e05260e0905051610140526060610100a36001546000556000600155005b6345b5e171811861067957602436186134dc576004358060a01c6134dc5760405260005433181561046457601b6060527f6d73672e73656e646572206973206e6f7420746865206f776e6572000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6040516104c857601c6060527f5f6164647265737320697320746865207a65726f20616464726573730000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6002546040511861053057601a6060527f6e6577206c6f616e732061646472206973207468652073616d6500000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60405163bbb6bbc6606052602060606004607c845afa610555573d600060003e3d6000fd5b60203d106134dc576060518060a01c6134dc5760a05260a090505163856e848860c052602060c0600460dc845afa610592573d600060003e3d6000fd5b60203d106134dc5760c0518060a01c6134dc57610100526101009050517f0524dd63c4e156d7c3f5cc18e87c0474a724ea2d75c277bab3dc95390ba5e4d16002546101e0526040516102005260405163bbb6bbc6610120526020610120600461013c845afa610606573d600060003e3d6000fd5b60203d106134dc57610120518060a01c6134dc576101605261016090505163856e8488610180526020610180600461019c845afa610649573d600060003e3d6000fd5b60203d106134dc57610180518060a01c6134dc576101c0526101c09050516102205260606101e0a2604051600255005b63fdfda91281186106b657604436186134dc576004358060a01c6134dc5760805260206080516040526024356060526106b260a0612fed565b60a0f35b63c2224e0b81186106f357604436186134dc576004358060a01c6134dc5760805260206080516040526024356060526106ef60a0613007565b60a0f35b63a692d785811861077457604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610768576003604051602052600052604060002061013960243582548110156134dc5702600182010190506001810190505460605260206060610772565b6000606052602060605bf35b6368443d3b81186107f557604436186134dc576004358060a01c6134dc57604052600360405160205260005260406000205460243510156107e9576003604051602052600052604060002061013960243582548110156134dc57026001820101905060038101905054606052602060606107f3565b6000606052602060605bf35b63eb526774811861087657604436186134dc576004358060a01c6134dc576040526003604051602052600052604060002054602435101561086a576003604051602052600052604060002061013960243582548110156134dc5702600182010190506002810190505460605260206060610874565b6000606052602060605bf35b63426eda5281186109a857604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610956576020806060526003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050816060016000825480835260608102600082606481116134dc57801561093d57905b6060810260208701016003820260018901018054825260018101546020830152600281015460408301525050600101818118610906575b50508201602001915050905090508101905060606109a6565b60208060605280606001600060008252600060006000606481116134dc57801561099457905b6060366060830260208801013760010181811861097c575b50508101602001905090508101905060605bf35b63b0d9dcb38118610a4857604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610a1d576003604051602052600052604060002061013960243582548110156134dc5702600182010190506004810190505460605260206060610a46565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff606052602060605bf35b6334434d228118610aca57604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610abe576003604051602052600052604060002061013960243582548110156134dc570260018201019050610132810190505460605260206060610ac8565b6000606052602060605bf35b631462534d8118610b4c57604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610b40576003604051602052600052604060002061013960243582548110156134dc570260018201019050610133810190505460605260206060610b4a565b6000606052602060605bf35b63250bf8f48118610bce57604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610bc2576003604051602052600052604060002061013960243582548110156134dc570260018201019050610134810190505460605260206060610bcc565b6000606052602060605bf35b63593b58cd8118610c5057604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610c44576003604051602052600052604060002061013960243582548110156134dc570260018201019050610135810190505460605260206060610c4e565b6000606052602060605bf35b637c73ec148118610cd257604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610cc6576003604051602052600052604060002061013960243582548110156134dc570260018201019050610136810190505460605260206060610cd0565b6000606052602060605bf35b63b50486478118610d5457604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610d48576003604051602052600052604060002061013960243582548110156134dc570260018201019050610137810190505460605260206060610d52565b6000606052602060605bf35b632209ed1c8118610dd657604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610dca576003604051602052600052604060002061013960243582548110156134dc570260018201019050610138810190505460605260206060610dd4565b6000606052602060605bf35b6372d251fc811861105157604436186134dc576004358060a01c6134dc57608052608051604052602435606052610e0d60a0612fed565b60a051610e1b576000610e5a565b608051604052602435606052610e3160c0613007565b60c051610e5757608051604052602435606052610e4e60e0613060565b60e05115610e5a565b60005b15610f9757602080610100526003608051602052600052604060002061013960243582548110156134dc57026001820101905081610100016101a082548252600183015460208301526002830154604083015260038301546060830152600483015460808301528060a0830152600583018183016000825480835260608102600082606481116134dc578015610f2357905b6060810260208701016003820260018901018054825260018101546020830152600281015460408301525050600101818118610eec575b50508201602001915050905090508101905061013283015460c083015261013383015460e0830152610134830154610100830152610135830154610120830152610136830154610140830152610137830154610160830152610138830154610180830152905090508101905061010061104f565b60208060a0528060a0016101a060008252600060208301526000604083015260006060830152600060808301528060a0830152808201600060008252600060006000606481116134dc57801561100157905b60603660608302602088010137600101818118610fe9575b505081016020019050905081019050600060c0830152600060e08301526000610100830152600061012083015260006101408301526000610160830152600061018083015290508101905060a05bf35b63a1c5158681186112a457604436186134dc576004358060a01c6134dc5760805260805160405260243560605261108860a0613007565b60a0516110ad576080516040526024356060526110a560c0613060565b60c0516110b0565b60015b156111ea5760208060e0526003608051602052600052604060002061013960243582548110156134dc5702600182010190508160e0016101a082548252600183015460208301526002830154604083015260038301546060830152600483015460808301528060a0830152600583018183016000825480835260608102600082606481116134dc57801561117757905b6060810260208701016003820260018901018054825260018101546020830152600281015460408301525050600101818118611140575b50508201602001915050905090508101905061013283015460c083015261013383015460e0830152610134830154610100830152610135830154610120830152610136830154610140830152610137830154610160830152610138830154610180830152905090508101905060e06112a2565b60208060a0528060a0016101a060008252600060208301526000604083015260006060830152600060808301528060a0830152808201600060008252600060006000606481116134dc57801561125457905b6060366060830260208801013760010181811861123c575b505081016020019050905081019050600060c0830152600060e08301526000610100830152600061012083015260006101408301526000610160830152600061018083015290508101905060a05bf35b63ae66b88081186113b957600436186134dc57602080604052806040016101a06210000d5482526210000e5460208301526210000f54604083015262100010546060830152621000115460808301528060a08301528082016000621000125480835260608102600082606481116134dc57801561135457905b606081026020870101600382026210001301805482526001810154602083015260028101546040830152505060010181811861131d575b505082016020019150509050810190506210013f5460c0830152621001405460e0830152621001415461010083015262100142546101208301526210014354610140830152621001445461016083015262100145546101808301529050810190506040f35b633a5cfa4a81186114ce57600436186134dc57602080604052806040016101a0621001465482526210014754602083015262100148546040830152621001495460608301526210014a5460808301528060a083015280820160006210014b5480835260608102600082606481116134dc57801561146957905b606081026020870101600382026210014c018054825260018101546020830152600281015460408301525050600101818118611432575b50508201602001915050905081019050621002785460c0830152621002795460e08301526210027a546101008301526210027b546101208301526210027c546101408301526210027d546101608301526210027e546101808301529050810190506040f35b63234c909581186115e357600436186134dc57602080604052806040016101a06210027f548252621002805460208301526210028154604083015262100282546060830152621002835460808301528060a08301528082016000621002845480835260608102600082606481116134dc57801561157e57905b6060810260208701016003820262100285018054825260018101546020830152600281015460408301525050600101818118611547575b50508201602001915050905081019050621003b15460c0830152621003b25460e0830152621003b354610100830152621003b454610120830152621003b554610140830152621003b654610160830152621003b7546101808301529050810190506040f35b631e9cb2fc81186116f857600436186134dc57602080604052806040016101a0621003b8548252621003b9546020830152621003ba546040830152621003bb546060830152621003bc5460808301528060a08301528082016000621003bd5480835260608102600082606481116134dc57801561169357905b60608102602087010160038202621003be01805482526001810154602083015260028101546040830152505060010181811861165c575b50508201602001915050905081019050621004ea5460c0830152621004eb5460e0830152621004ec54610100830152621004ed54610120830152621004ee54610140830152621004ef54610160830152621004f0546101808301529050810190506040f35b630ea88fe8811861176457600436186134dc576020806040528060400160006008548083528060051b6000826210000081116134dc57801561175057905b80600901548160051b602088010152600101818118611736575b505082016020019150509050810190506040f35b63b4e449db81186117f357602436186134dc576004358060a01c6134dc576040526020806060526210000b604051602052600052604060002081606001600082548083528060051b6000826210000081116134dc5780156117dd57905b806001880101548160051b6020880101526001018181186117c1575b5050820160200191505090509050810190506060f35b63c4836b9781186119525760a436186134dc576004358060a01c6134dc576101c0526024358060a01c6134dc576101e052604060446102003760025433181561189c576020610240527f6d73672e73656e646572206973206e6f7420746865206c6f616e7320616464726102605261024050610240518061026001601f826000031636823750506308c379a061020052602061022052601f19601f61024051011660440161021cfd5b6101c0516040526084356060526118b4610240612fed565b6102405161192257600e610260527f6c6f616e206e6f7420666f756e640000000000000000000000000000000000006102805261026050610260518061028001601f826000031636823750506308c379a061022052602061024052601f19601f61026051011660440161023cfd5b6101c05160e0526101e0516101005261020051610120526102205161014052608435610160526119506130da565b005b631af860558118611ab15760a436186134dc576004358060a01c6134dc576101c0526024358060a01c6134dc576101e05260406044610200376002543318156119fb576020610240527f6d73672e73656e646572206973206e6f7420746865206c6f616e7320616464726102605261024050610240518061026001601f826000031636823750506308c379a061020052602061022052601f19601f61024051011660440161021cfd5b6101c051604052608435606052611a13610240612fed565b61024051611a8157600e610260527f6c6f616e206e6f7420666f756e640000000000000000000000000000000000006102805261026050610260518061028001601f826000031636823750506308c379a061022052602061024052601f19601f61026051011660440161023cfd5b6101c05160e0526101e051610100526102005161012052610220516101405260843561016052611aaf61315b565b005b63f7230a758118611b8357608436186134dc576004358060a01c6134dc576101a052604060246101c0376064358060011c6134dc5761020052600254331815611b5a576020610220527f6d73672e73656e646572206973206e6f7420746865206c6f616e7320616464726102405261022050610220518061024001601f826000031636823750506308c379a06101e052602061020052601f19601f6102205101166044016101fcfd5b6101a05160e0526101c051610100526101e051610120526102005161014052611b816131b5565b005b6326b7f5968118611dcd5760c436106134dc576004358060a01c6134dc576127805260843560040160648135116134dc578035806127a052600081606481116134dc578015611c0c57905b606081026127c00160608202602086010180358060a01c6134dc57825260208101356020830152604081013560408301525050600101818118611bce575b50505050600254331815611c80576020614d40527f6d73672e73656e646572206973206e6f7420746865206c6f616e732061646472614d6052614d4050614d405180614d6001601f826000031636823750506308c379a0614d00526020614d2052601f19601f614d40510116604401614d1cfd5b600361278051602052600052604060002054614d405260606024614d60376000614dc0526127a05180614de0526060810280614e00826127c060045afa50505060e0366173803761278051604052614d4051606052614d6051608052614d805160a052614da05160c052614dc05160e052614de0518061010052606081028061012082614e0060045afa505050617380516126a0526173a0516126c0526173c0516126e0526173e05161270052617400516127205261742051612740526174405161276052611d506174806133aa565b617480516174605261746051611dc657601f617480527f616464696e67206c6f616e20666f7220626f72726f776572206661696c6564006174a0526174805061748051806174a001601f826000031636823750506308c379a061744052602061746052601f19601f61748051011660440161745cfd5b6020614d40f35b634700e8bd8118611fcb57604436186134dc576004358060a01c6134dc57604052600254331815611e555760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b426003604051602052600052604060002061013960243582548110156134dc5702600182010190506004810190505560016003604051602052600052604060002061013960243582548110156134dc57026001820101905061013481019050556004604051602052600052604060002080546003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050548082018281106134dc579050905081555060006003604051602052600052604060002061013960243582548110156134dc57026001820101905060058101905054606481116134dc578015611fc757905b6003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050600382026001820101905080546060526001810154608052600281015460a052506210000c6060516020526000526040600020805460a0518082018281106134dc5790509050815550600101818118611f46575b5050005b63fb3319c481186120a857604436186134dc576004358060a01c6134dc576040526002543318156120535760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc5702600182010190506101358101905055600560405160205260005260406000208054600181038181116134dc579050815550005b63291a7e4c81186121ba57608436186134dc576004358060a01c6134dc576040526002543318156121305760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6003604051602052600052604060002061013960243582548110156134dc5702600182010190506101328101905080546044358082018281106134dc57905090508155506003604051602052600052604060002061013960243582548110156134dc5702600182010190506101338101905080546064358082018281106134dc5790509050815550005b63a07bda7f81186123ab57604436186134dc576004358060a01c6134dc576040526002543318156122425760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc57026001820101905061013681019050556004604051602052600052604060002080546003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050548082038281116134dc5790509050815550600560405160205260005260406000208054600181038181116134dc57905081555060006003604051602052600052604060002061013960243582548110156134dc57026001820101905060058101905054606481116134dc5780156123a757905b6003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050600382026001820101905080546060526001810154608052600281015460a052506210000c6060516020526000526040600020805460a0518082038281116134dc5790509050815550600101818118612326575b5050005b63cf2e4f76811861259c57604436186134dc576004358060a01c6134dc576040526002543318156124335760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc57026001820101905061013781019050556004604051602052600052604060002080546003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050548082038281116134dc5790509050815550600560405160205260005260406000208054600181038181116134dc57905081555060006003604051602052600052604060002061013960243582548110156134dc57026001820101905060058101905054606481116134dc57801561259857905b6003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050600382026001820101905080546060526001810154608052600281015460a052506210000c6060516020526000526040600020805460a0518082038281116134dc5790509050815550600101818118612517575b5050005b6398bd8de2811861267957604436186134dc576004358060a01c6134dc576040526002543318156126245760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc5702600182010190506101388101905055600560405160205260005260406000208054600181038181116134dc579050815550005b63e10cc41a811861286857604436186134dc576004358060a01c6134dc576040526002543318156127015760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050541861276f576003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050546210000e5410612772565b60005b15612866576003604051602052600052604060002061013960243582548110156134dc57026001820101905080546210000d5560018101546210000e5560028101546210000f5560038101546210001055600481015462100011556005810180548062100012556001820160608202600081601f0160051c61012c81116134dc57801561281157905b80840154816210001301556001018181186127fb575b5050505050506101328101546210013f55610133810154621001405561013481015462100141556101358101546210014255610136810154621001435561013781015462100144556101388101546210014555505b005b63c9876fbb8118612a5857604436186134dc576004358060a01c6134dc576040526002543318156128f05760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60026003604051602052600052604060002061013960243582548110156134dc57026001820101905060058101905054101561292d576000612962565b6003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050546210014754105b15612a56576003604051602052600052604060002061013960243582548110156134dc5702600182010190508054621001465560018101546210014755600281015462100148556003810154621001495560048101546210014a55600581018054806210014b556001820160608202600081601f0160051c61012c81116134dc578015612a0157905b80840154816210014c01556001018181186129eb575b505050505050610132810154621002785561013381015462100279556101348101546210027a556101358101546210027b556101368101546210027c556101378101546210027d556101388101546210027e55505b005b6361e8726d8118612c0a57604436186134dc576004358060a01c6134dc57604052600254331815612ae05760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6003604051602052600052604060002061013960243582548110156134dc5702600182010190506001810190505462100280541015612c08576003604051602052600052604060002061013960243582548110156134dc57026001820101905080546210027f55600181015462100280556002810154621002815560038101546210028255600481015462100283556005810180548062100284556001820160608202600081601f0160051c61012c81116134dc578015612bb357905b8084015481621002850155600101818118612b9d575b505050505050610132810154621003b155610133810154621003b255610134810154621003b355610135810154621003b455610136810154621003b555610137810154621003b655610138810154621003b755505b005b63b50c85ca8118612dbc57604436186134dc576004358060a01c6134dc57604052600254331815612c925760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6003604051602052600052604060002061013960243582548110156134dc57026001820101905060018101905054621003b9541015612dba576003604051602052600052604060002061013960243582548110156134dc5702600182010190508054621003b8556001810154621003b9556002810154621003ba556003810154621003bb556004810154621003bc5560058101805480621003bd556001820160608202600081601f0160051c61012c81116134dc578015612d6557905b8084015481621003be0155600101818118612d4f575b505050505050610132810154621004ea55610133810154621004eb55610134810154621004ec55610135810154621004ed55610136810154621004ee55610137810154621004ef55610138810154621004f055505b005b638da5cb5b8118612ddb57600436186134dc5760005460405260206040f35b63d153b60c8118612dfa57600436186134dc5760015460405260206040f35b6383eabbee8118612e1957600436186134dc5760025460405260206040f35b63948adb8f8118612e5457602436186134dc576004358060a01c6134dc57604052600460405160205260005260406000205460605260206060f35b63600898c68118612e8f57602436186134dc576004358060a01c6134dc57604052600560405160205260005260406000205460605260206060f35b63f35743c18118612edb57604436186134dc576024358060a01c6134dc576040526006600435602052600052604060002080604051602052600052604060002090505460605260206060f35b637330811c8118612f3857606436186134dc576024358060a01c6134dc5760405260076004356020526000526040600020806040516020526000526040600020905080604435602052600052604060002090505460605260206060f35b63fc6306198118612f6757602436186134dc576210000960043560205260005260406000205460405260206040f35b639319be4f8118612fa857602436186134dc576210000a60043560205260005260406000208054604052600181015460605260028101546080525060606040f35b6382ba67db8118612fe557602436186134dc576004358060a01c6134dc576040526210000c60405160205260005260406000205460605260206060f35b505b60006000fd5b600360405160205260005260406000205460605110815250565b60036040516020526000526040600020546060511015613058576003604051602052600052604060002061013960605182548110156134dc570260018201019050610134810190505481525061305e565b60008152505b565b600360405160205260005260406000205460605110156130b1576003604051602052600052604060002061013960605182548110156134dc57026001820101905061013581019050548152506130b7565b60008152505b565b60405160a05260605160c05260406080526080805160208201209050815250565b61010051604052610120516060526130f36101a06130b9565b6101a051610180526101605160066101805160205260005260406000208060e0516020526000526040600020905055600160076101805160205260005260406000208060e0516020526000526040600020905080610160516020526000526040600020905055565b61010051604052610120516060526131746101a06130b9565b6101a05161018052600060076101805160205260005260406000208060e0516020526000526040600020905080610160516020526000526040600020905055565b60e051604052610100516060526131cd6101806130b9565b61018051610160526101605160016101805260006008546210000081116134dc57801561321757905b8060090154831861320c57600061018052613217565b6001018181186131f6575b505061018051905061322a576000613230565b61014051155b6132a1576101605160006101805260006008546210000081116134dc57801561327657905b8060090154831861326b57600161018052613276565b600101818118613255575b5050610180519050156133015761014051156210000961016051602052600052604060002055613301565b600854620fffff81116134dc576001810160085561016051816009015550600162100009610160516020526000526040600020556210000a61016051602052600052604060002060e0518155610100516001820155610120516002820155505b610100516210000b60e0516020526000526040600020600161018052600081546210000081116134dc57801561335657905b80600184010154841861334b57600061018052613356565b600101818118613333575b5050610180519050905061336b576000613371565b61014051155b156133a8576210000b60e05160205260005260406000208054620fffff81116134dc57600181018255610100518160018401015550505b565b6003604051602052600052604060002054606051186134d45760036040516020526000526040600020805461ffff81116134dc57600181018255610139810260018301016060518155608051600182015560a051600282015560c051600382015560e0516004820155610100518060058301556060810260016005840101600082601f0160051c61012c81116134dc57801561345a57905b8060051b610120015181840155600101818118613442575b50505050506126a0516101328201556126c0516101338201556126e05161013482015561270051610135820155612720516101368201556127405161013782015561276051610138820155505050600560405160205260005260406000208054600181018181106134dc57905081555060018152506134da565b60008152505b565b600080fda165767970657283000306000b005b600080fd

Deployed Bytecode

0x6003361161000c57612fe7565b60003560e01c346134dc5763b5ed298a811861029957602436186134dc576004358060a01c6134dc5760405260005433181561009f57601b6060527f6d73672e73656e646572206973206e6f7420746865206f776e6572000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60405161010357601c6060527f5f6164647265737320697420746865207a65726f20616464726573730000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6040516000541861016b5760206060527f70726f706f736564206f776e6572206164647220697320746865206f776e657260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b604051600154186101d357601f6060527f70726f706f736564206f776e65722061646472206973207468652073616d650060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6040516001556040516000547fb4c8aadbed5e1d6c2b41b85b2a233853a33c3f9284159abad98bf7d24d5a6f74600054610120526040516101405260025463bbb6bbc6606052602060606004607c845afa610233573d600060003e3d6000fd5b60203d106134dc576060518060a01c6134dc5760a05260a090505163856e848860c052602060c0600460dc845afa610270573d600060003e3d6000fd5b60203d106134dc5760c0518060a01c6134dc5761010052610100905051610160526060610120a3005b634e71e0c881186103dc57600436186134dc5760015433181561031357601e6040527f6d73672e73656e646572206973206e6f74207468652070726f706f736564000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b6001546000547fd5b903f8ba0e47f8a7bfe27b5098230bd3900b46d8b430e37480be7096ca7f6d600054610100526001546101205260025463bbb6bbc6604052602060406004605c845afa61036d573d600060003e3d6000fd5b60203d106134dc576040518060a01c6134dc57608052608090505163856e848860a052602060a0600460bc845afa6103aa573d600060003e3d6000fd5b60203d106134dc5760a0518060a01c6134dc5760e05260e0905051610140526060610100a36001546000556000600155005b6345b5e171811861067957602436186134dc576004358060a01c6134dc5760405260005433181561046457601b6060527f6d73672e73656e646572206973206e6f7420746865206f776e6572000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6040516104c857601c6060527f5f6164647265737320697320746865207a65726f20616464726573730000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6002546040511861053057601a6060527f6e6577206c6f616e732061646472206973207468652073616d6500000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60405163bbb6bbc6606052602060606004607c845afa610555573d600060003e3d6000fd5b60203d106134dc576060518060a01c6134dc5760a05260a090505163856e848860c052602060c0600460dc845afa610592573d600060003e3d6000fd5b60203d106134dc5760c0518060a01c6134dc57610100526101009050517f0524dd63c4e156d7c3f5cc18e87c0474a724ea2d75c277bab3dc95390ba5e4d16002546101e0526040516102005260405163bbb6bbc6610120526020610120600461013c845afa610606573d600060003e3d6000fd5b60203d106134dc57610120518060a01c6134dc576101605261016090505163856e8488610180526020610180600461019c845afa610649573d600060003e3d6000fd5b60203d106134dc57610180518060a01c6134dc576101c0526101c09050516102205260606101e0a2604051600255005b63fdfda91281186106b657604436186134dc576004358060a01c6134dc5760805260206080516040526024356060526106b260a0612fed565b60a0f35b63c2224e0b81186106f357604436186134dc576004358060a01c6134dc5760805260206080516040526024356060526106ef60a0613007565b60a0f35b63a692d785811861077457604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610768576003604051602052600052604060002061013960243582548110156134dc5702600182010190506001810190505460605260206060610772565b6000606052602060605bf35b6368443d3b81186107f557604436186134dc576004358060a01c6134dc57604052600360405160205260005260406000205460243510156107e9576003604051602052600052604060002061013960243582548110156134dc57026001820101905060038101905054606052602060606107f3565b6000606052602060605bf35b63eb526774811861087657604436186134dc576004358060a01c6134dc576040526003604051602052600052604060002054602435101561086a576003604051602052600052604060002061013960243582548110156134dc5702600182010190506002810190505460605260206060610874565b6000606052602060605bf35b63426eda5281186109a857604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610956576020806060526003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050816060016000825480835260608102600082606481116134dc57801561093d57905b6060810260208701016003820260018901018054825260018101546020830152600281015460408301525050600101818118610906575b50508201602001915050905090508101905060606109a6565b60208060605280606001600060008252600060006000606481116134dc57801561099457905b6060366060830260208801013760010181811861097c575b50508101602001905090508101905060605bf35b63b0d9dcb38118610a4857604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610a1d576003604051602052600052604060002061013960243582548110156134dc5702600182010190506004810190505460605260206060610a46565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff606052602060605bf35b6334434d228118610aca57604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610abe576003604051602052600052604060002061013960243582548110156134dc570260018201019050610132810190505460605260206060610ac8565b6000606052602060605bf35b631462534d8118610b4c57604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610b40576003604051602052600052604060002061013960243582548110156134dc570260018201019050610133810190505460605260206060610b4a565b6000606052602060605bf35b63250bf8f48118610bce57604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610bc2576003604051602052600052604060002061013960243582548110156134dc570260018201019050610134810190505460605260206060610bcc565b6000606052602060605bf35b63593b58cd8118610c5057604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610c44576003604051602052600052604060002061013960243582548110156134dc570260018201019050610135810190505460605260206060610c4e565b6000606052602060605bf35b637c73ec148118610cd257604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610cc6576003604051602052600052604060002061013960243582548110156134dc570260018201019050610136810190505460605260206060610cd0565b6000606052602060605bf35b63b50486478118610d5457604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610d48576003604051602052600052604060002061013960243582548110156134dc570260018201019050610137810190505460605260206060610d52565b6000606052602060605bf35b632209ed1c8118610dd657604436186134dc576004358060a01c6134dc5760405260036040516020526000526040600020546024351015610dca576003604051602052600052604060002061013960243582548110156134dc570260018201019050610138810190505460605260206060610dd4565b6000606052602060605bf35b6372d251fc811861105157604436186134dc576004358060a01c6134dc57608052608051604052602435606052610e0d60a0612fed565b60a051610e1b576000610e5a565b608051604052602435606052610e3160c0613007565b60c051610e5757608051604052602435606052610e4e60e0613060565b60e05115610e5a565b60005b15610f9757602080610100526003608051602052600052604060002061013960243582548110156134dc57026001820101905081610100016101a082548252600183015460208301526002830154604083015260038301546060830152600483015460808301528060a0830152600583018183016000825480835260608102600082606481116134dc578015610f2357905b6060810260208701016003820260018901018054825260018101546020830152600281015460408301525050600101818118610eec575b50508201602001915050905090508101905061013283015460c083015261013383015460e0830152610134830154610100830152610135830154610120830152610136830154610140830152610137830154610160830152610138830154610180830152905090508101905061010061104f565b60208060a0528060a0016101a060008252600060208301526000604083015260006060830152600060808301528060a0830152808201600060008252600060006000606481116134dc57801561100157905b60603660608302602088010137600101818118610fe9575b505081016020019050905081019050600060c0830152600060e08301526000610100830152600061012083015260006101408301526000610160830152600061018083015290508101905060a05bf35b63a1c5158681186112a457604436186134dc576004358060a01c6134dc5760805260805160405260243560605261108860a0613007565b60a0516110ad576080516040526024356060526110a560c0613060565b60c0516110b0565b60015b156111ea5760208060e0526003608051602052600052604060002061013960243582548110156134dc5702600182010190508160e0016101a082548252600183015460208301526002830154604083015260038301546060830152600483015460808301528060a0830152600583018183016000825480835260608102600082606481116134dc57801561117757905b6060810260208701016003820260018901018054825260018101546020830152600281015460408301525050600101818118611140575b50508201602001915050905090508101905061013283015460c083015261013383015460e0830152610134830154610100830152610135830154610120830152610136830154610140830152610137830154610160830152610138830154610180830152905090508101905060e06112a2565b60208060a0528060a0016101a060008252600060208301526000604083015260006060830152600060808301528060a0830152808201600060008252600060006000606481116134dc57801561125457905b6060366060830260208801013760010181811861123c575b505081016020019050905081019050600060c0830152600060e08301526000610100830152600061012083015260006101408301526000610160830152600061018083015290508101905060a05bf35b63ae66b88081186113b957600436186134dc57602080604052806040016101a06210000d5482526210000e5460208301526210000f54604083015262100010546060830152621000115460808301528060a08301528082016000621000125480835260608102600082606481116134dc57801561135457905b606081026020870101600382026210001301805482526001810154602083015260028101546040830152505060010181811861131d575b505082016020019150509050810190506210013f5460c0830152621001405460e0830152621001415461010083015262100142546101208301526210014354610140830152621001445461016083015262100145546101808301529050810190506040f35b633a5cfa4a81186114ce57600436186134dc57602080604052806040016101a0621001465482526210014754602083015262100148546040830152621001495460608301526210014a5460808301528060a083015280820160006210014b5480835260608102600082606481116134dc57801561146957905b606081026020870101600382026210014c018054825260018101546020830152600281015460408301525050600101818118611432575b50508201602001915050905081019050621002785460c0830152621002795460e08301526210027a546101008301526210027b546101208301526210027c546101408301526210027d546101608301526210027e546101808301529050810190506040f35b63234c909581186115e357600436186134dc57602080604052806040016101a06210027f548252621002805460208301526210028154604083015262100282546060830152621002835460808301528060a08301528082016000621002845480835260608102600082606481116134dc57801561157e57905b6060810260208701016003820262100285018054825260018101546020830152600281015460408301525050600101818118611547575b50508201602001915050905081019050621003b15460c0830152621003b25460e0830152621003b354610100830152621003b454610120830152621003b554610140830152621003b654610160830152621003b7546101808301529050810190506040f35b631e9cb2fc81186116f857600436186134dc57602080604052806040016101a0621003b8548252621003b9546020830152621003ba546040830152621003bb546060830152621003bc5460808301528060a08301528082016000621003bd5480835260608102600082606481116134dc57801561169357905b60608102602087010160038202621003be01805482526001810154602083015260028101546040830152505060010181811861165c575b50508201602001915050905081019050621004ea5460c0830152621004eb5460e0830152621004ec54610100830152621004ed54610120830152621004ee54610140830152621004ef54610160830152621004f0546101808301529050810190506040f35b630ea88fe8811861176457600436186134dc576020806040528060400160006008548083528060051b6000826210000081116134dc57801561175057905b80600901548160051b602088010152600101818118611736575b505082016020019150509050810190506040f35b63b4e449db81186117f357602436186134dc576004358060a01c6134dc576040526020806060526210000b604051602052600052604060002081606001600082548083528060051b6000826210000081116134dc5780156117dd57905b806001880101548160051b6020880101526001018181186117c1575b5050820160200191505090509050810190506060f35b63c4836b9781186119525760a436186134dc576004358060a01c6134dc576101c0526024358060a01c6134dc576101e052604060446102003760025433181561189c576020610240527f6d73672e73656e646572206973206e6f7420746865206c6f616e7320616464726102605261024050610240518061026001601f826000031636823750506308c379a061020052602061022052601f19601f61024051011660440161021cfd5b6101c0516040526084356060526118b4610240612fed565b6102405161192257600e610260527f6c6f616e206e6f7420666f756e640000000000000000000000000000000000006102805261026050610260518061028001601f826000031636823750506308c379a061022052602061024052601f19601f61026051011660440161023cfd5b6101c05160e0526101e0516101005261020051610120526102205161014052608435610160526119506130da565b005b631af860558118611ab15760a436186134dc576004358060a01c6134dc576101c0526024358060a01c6134dc576101e05260406044610200376002543318156119fb576020610240527f6d73672e73656e646572206973206e6f7420746865206c6f616e7320616464726102605261024050610240518061026001601f826000031636823750506308c379a061020052602061022052601f19601f61024051011660440161021cfd5b6101c051604052608435606052611a13610240612fed565b61024051611a8157600e610260527f6c6f616e206e6f7420666f756e640000000000000000000000000000000000006102805261026050610260518061028001601f826000031636823750506308c379a061022052602061024052601f19601f61026051011660440161023cfd5b6101c05160e0526101e051610100526102005161012052610220516101405260843561016052611aaf61315b565b005b63f7230a758118611b8357608436186134dc576004358060a01c6134dc576101a052604060246101c0376064358060011c6134dc5761020052600254331815611b5a576020610220527f6d73672e73656e646572206973206e6f7420746865206c6f616e7320616464726102405261022050610220518061024001601f826000031636823750506308c379a06101e052602061020052601f19601f6102205101166044016101fcfd5b6101a05160e0526101c051610100526101e051610120526102005161014052611b816131b5565b005b6326b7f5968118611dcd5760c436106134dc576004358060a01c6134dc576127805260843560040160648135116134dc578035806127a052600081606481116134dc578015611c0c57905b606081026127c00160608202602086010180358060a01c6134dc57825260208101356020830152604081013560408301525050600101818118611bce575b50505050600254331815611c80576020614d40527f6d73672e73656e646572206973206e6f7420746865206c6f616e732061646472614d6052614d4050614d405180614d6001601f826000031636823750506308c379a0614d00526020614d2052601f19601f614d40510116604401614d1cfd5b600361278051602052600052604060002054614d405260606024614d60376000614dc0526127a05180614de0526060810280614e00826127c060045afa50505060e0366173803761278051604052614d4051606052614d6051608052614d805160a052614da05160c052614dc05160e052614de0518061010052606081028061012082614e0060045afa505050617380516126a0526173a0516126c0526173c0516126e0526173e05161270052617400516127205261742051612740526174405161276052611d506174806133aa565b617480516174605261746051611dc657601f617480527f616464696e67206c6f616e20666f7220626f72726f776572206661696c6564006174a0526174805061748051806174a001601f826000031636823750506308c379a061744052602061746052601f19601f61748051011660440161745cfd5b6020614d40f35b634700e8bd8118611fcb57604436186134dc576004358060a01c6134dc57604052600254331815611e555760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b426003604051602052600052604060002061013960243582548110156134dc5702600182010190506004810190505560016003604051602052600052604060002061013960243582548110156134dc57026001820101905061013481019050556004604051602052600052604060002080546003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050548082018281106134dc579050905081555060006003604051602052600052604060002061013960243582548110156134dc57026001820101905060058101905054606481116134dc578015611fc757905b6003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050600382026001820101905080546060526001810154608052600281015460a052506210000c6060516020526000526040600020805460a0518082018281106134dc5790509050815550600101818118611f46575b5050005b63fb3319c481186120a857604436186134dc576004358060a01c6134dc576040526002543318156120535760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc5702600182010190506101358101905055600560405160205260005260406000208054600181038181116134dc579050815550005b63291a7e4c81186121ba57608436186134dc576004358060a01c6134dc576040526002543318156121305760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6003604051602052600052604060002061013960243582548110156134dc5702600182010190506101328101905080546044358082018281106134dc57905090508155506003604051602052600052604060002061013960243582548110156134dc5702600182010190506101338101905080546064358082018281106134dc5790509050815550005b63a07bda7f81186123ab57604436186134dc576004358060a01c6134dc576040526002543318156122425760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc57026001820101905061013681019050556004604051602052600052604060002080546003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050548082038281116134dc5790509050815550600560405160205260005260406000208054600181038181116134dc57905081555060006003604051602052600052604060002061013960243582548110156134dc57026001820101905060058101905054606481116134dc5780156123a757905b6003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050600382026001820101905080546060526001810154608052600281015460a052506210000c6060516020526000526040600020805460a0518082038281116134dc5790509050815550600101818118612326575b5050005b63cf2e4f76811861259c57604436186134dc576004358060a01c6134dc576040526002543318156124335760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc57026001820101905061013781019050556004604051602052600052604060002080546003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050548082038281116134dc5790509050815550600560405160205260005260406000208054600181038181116134dc57905081555060006003604051602052600052604060002061013960243582548110156134dc57026001820101905060058101905054606481116134dc57801561259857905b6003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050600382026001820101905080546060526001810154608052600281015460a052506210000c6060516020526000526040600020805460a0518082038281116134dc5790509050815550600101818118612517575b5050005b6398bd8de2811861267957604436186134dc576004358060a01c6134dc576040526002543318156126245760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc5702600182010190506101388101905055600560405160205260005260406000208054600181038181116134dc579050815550005b63e10cc41a811861286857604436186134dc576004358060a01c6134dc576040526002543318156127015760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60016003604051602052600052604060002061013960243582548110156134dc570260018201019050600581019050541861276f576003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050546210000e5410612772565b60005b15612866576003604051602052600052604060002061013960243582548110156134dc57026001820101905080546210000d5560018101546210000e5560028101546210000f5560038101546210001055600481015462100011556005810180548062100012556001820160608202600081601f0160051c61012c81116134dc57801561281157905b80840154816210001301556001018181186127fb575b5050505050506101328101546210013f55610133810154621001405561013481015462100141556101358101546210014255610136810154621001435561013781015462100144556101388101546210014555505b005b63c9876fbb8118612a5857604436186134dc576004358060a01c6134dc576040526002543318156128f05760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b60026003604051602052600052604060002061013960243582548110156134dc57026001820101905060058101905054101561292d576000612962565b6003604051602052600052604060002061013960243582548110156134dc570260018201019050600181019050546210014754105b15612a56576003604051602052600052604060002061013960243582548110156134dc5702600182010190508054621001465560018101546210014755600281015462100148556003810154621001495560048101546210014a55600581018054806210014b556001820160608202600081601f0160051c61012c81116134dc578015612a0157905b80840154816210014c01556001018181186129eb575b505050505050610132810154621002785561013381015462100279556101348101546210027a556101358101546210027b556101368101546210027c556101378101546210027d556101388101546210027e55505b005b6361e8726d8118612c0a57604436186134dc576004358060a01c6134dc57604052600254331815612ae05760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6003604051602052600052604060002061013960243582548110156134dc5702600182010190506001810190505462100280541015612c08576003604051602052600052604060002061013960243582548110156134dc57026001820101905080546210027f55600181015462100280556002810154621002815560038101546210028255600481015462100283556005810180548062100284556001820160608202600081601f0160051c61012c81116134dc578015612bb357905b8084015481621002850155600101818118612b9d575b505050505050610132810154621003b155610133810154621003b255610134810154621003b355610135810154621003b455610136810154621003b555610137810154621003b655610138810154621003b755505b005b63b50c85ca8118612dbc57604436186134dc576004358060a01c6134dc57604052600254331815612c925760206060527f6d73672e73656e646572206973206e6f7420746865206c6f616e73206164647260805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6003604051602052600052604060002061013960243582548110156134dc57026001820101905060018101905054621003b9541015612dba576003604051602052600052604060002061013960243582548110156134dc5702600182010190508054621003b8556001810154621003b9556002810154621003ba556003810154621003bb556004810154621003bc5560058101805480621003bd556001820160608202600081601f0160051c61012c81116134dc578015612d6557905b8084015481621003be0155600101818118612d4f575b505050505050610132810154621004ea55610133810154621004eb55610134810154621004ec55610135810154621004ed55610136810154621004ee55610137810154621004ef55610138810154621004f055505b005b638da5cb5b8118612ddb57600436186134dc5760005460405260206040f35b63d153b60c8118612dfa57600436186134dc5760015460405260206040f35b6383eabbee8118612e1957600436186134dc5760025460405260206040f35b63948adb8f8118612e5457602436186134dc576004358060a01c6134dc57604052600460405160205260005260406000205460605260206060f35b63600898c68118612e8f57602436186134dc576004358060a01c6134dc57604052600560405160205260005260406000205460605260206060f35b63f35743c18118612edb57604436186134dc576024358060a01c6134dc576040526006600435602052600052604060002080604051602052600052604060002090505460605260206060f35b637330811c8118612f3857606436186134dc576024358060a01c6134dc5760405260076004356020526000526040600020806040516020526000526040600020905080604435602052600052604060002090505460605260206060f35b63fc6306198118612f6757602436186134dc576210000960043560205260005260406000205460405260206040f35b639319be4f8118612fa857602436186134dc576210000a60043560205260005260406000208054604052600181015460605260028101546080525060606040f35b6382ba67db8118612fe557602436186134dc576004358060a01c6134dc576040526210000c60405160205260005260406000205460605260206060f35b505b60006000fd5b600360405160205260005260406000205460605110815250565b60036040516020526000526040600020546060511015613058576003604051602052600052604060002061013960605182548110156134dc570260018201019050610134810190505481525061305e565b60008152505b565b600360405160205260005260406000205460605110156130b1576003604051602052600052604060002061013960605182548110156134dc57026001820101905061013581019050548152506130b7565b60008152505b565b60405160a05260605160c05260406080526080805160208201209050815250565b61010051604052610120516060526130f36101a06130b9565b6101a051610180526101605160066101805160205260005260406000208060e0516020526000526040600020905055600160076101805160205260005260406000208060e0516020526000526040600020905080610160516020526000526040600020905055565b61010051604052610120516060526131746101a06130b9565b6101a05161018052600060076101805160205260005260406000208060e0516020526000526040600020905080610160516020526000526040600020905055565b60e051604052610100516060526131cd6101806130b9565b61018051610160526101605160016101805260006008546210000081116134dc57801561321757905b8060090154831861320c57600061018052613217565b6001018181186131f6575b505061018051905061322a576000613230565b61014051155b6132a1576101605160006101805260006008546210000081116134dc57801561327657905b8060090154831861326b57600161018052613276565b600101818118613255575b5050610180519050156133015761014051156210000961016051602052600052604060002055613301565b600854620fffff81116134dc576001810160085561016051816009015550600162100009610160516020526000526040600020556210000a61016051602052600052604060002060e0518155610100516001820155610120516002820155505b610100516210000b60e0516020526000526040600020600161018052600081546210000081116134dc57801561335657905b80600184010154841861334b57600061018052613356565b600101818118613333575b5050610180519050905061336b576000613371565b61014051155b156133a8576210000b60e05160205260005260406000208054620fffff81116134dc57600181018255610100518160018401015550505b565b6003604051602052600052604060002054606051186134d45760036040516020526000526040600020805461ffff81116134dc57600181018255610139810260018301016060518155608051600182015560a051600282015560c051600382015560e0516004820155610100518060058301556060810260016005840101600082601f0160051c61012c81116134dc57801561345a57905b8060051b610120015181840155600101818118613442575b50505050506126a0516101328201556126c0516101338201556126e05161013482015561270051610135820155612720516101368201556127405161013782015561276051610138820155505050600560405160205260005260406000208054600181018181106134dc57905081555060018152506134da565b60008152505b565b600080fda165767970657283000306000b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.