FTM Price: $0.48 (+2.95%)
Gas: 52 GWei

Contract

0xD93CDb63A1e7573CDc5e2AA8767588B0d1b2608B
 

Overview

FTM Balance

Fantom LogoFantom LogoFantom Logo0 FTM

FTM Value

$0.00

Sponsored

Transaction Hash
Method
Block
From
To
Value
Follow681181152023-09-12 17:38:35170 days 31 mins ago1694540315IN
0xD93CDb...d1b2608B
0 FTM0.01111157183.0149643
Follow612435812023-05-01 20:59:03303 days 21 hrs ago1682974743IN
0xD93CDb...d1b2608B
0 FTM0.01671054223.0362389
Follow612423102023-05-01 20:38:43303 days 21 hrs ago1682973523IN
0xD93CDb...d1b2608B
0 FTM0.01761341235.08690573
Follow532377072023-01-04 21:55:35420 days 20 hrs ago1672869335IN
0xD93CDb...d1b2608B
0 FTM0.0021223740.02748311
Follow530091552022-12-29 12:54:52427 days 5 hrs ago1672318492IN
0xD93CDb...d1b2608B
0 FTM0.0038429651.29214208
Follow524729872022-12-17 14:03:30439 days 4 hrs ago1671285810IN
0xD93CDb...d1b2608B
0 FTM0.00783291106.38360096
Follow523493132022-12-14 20:55:35441 days 21 hrs ago1671051335IN
0xD93CDb...d1b2608B
0 FTM0.0013447223.25594341
Follow523492572022-12-14 20:54:44441 days 21 hrs ago1671051284IN
0xD93CDb...d1b2608B
0 FTM0.0013447223.25594341
Follow523325962022-12-14 14:24:05442 days 3 hrs ago1671027845IN
0xD93CDb...d1b2608B
0 FTM0.0027909448.26706156
Follow523324572022-12-14 14:19:07442 days 3 hrs ago1671027547IN
0xD93CDb...d1b2608B
0 FTM0.0036457263.04970995
Follow523324322022-12-14 14:18:21442 days 3 hrs ago1671027501IN
0xD93CDb...d1b2608B
0 FTM0.0010481518.12700676
Follow523323972022-12-14 14:17:14442 days 3 hrs ago1671027434IN
0xD93CDb...d1b2608B
0 FTM0.0045407660.6057042
Follow517236232022-12-01 16:21:50455 days 1 hr ago1669911710IN
0xD93CDb...d1b2608B
0 FTM0.00753806100.61083181
Follow503175092022-10-31 18:27:32485 days 23 hrs ago1667240852IN
0xD93CDb...d1b2608B
0 FTM0.0030870653.38822959
Follow503122122022-10-31 15:08:22486 days 3 hrs ago1667228902IN
0xD93CDb...d1b2608B
0 FTM0.0492203851.22369258
Follow503122002022-10-31 15:07:42486 days 3 hrs ago1667228862IN
0xD93CDb...d1b2608B
0 FTM0.01482408197.85755874
Follow501147702022-10-27 16:55:41490 days 1 hr ago1666889741IN
0xD93CDb...d1b2608B
0 FTM0.000193572.58368287
Follow501050852022-10-27 13:33:50490 days 4 hrs ago1666877630IN
0xD93CDb...d1b2608B
0 FTM0.000145652.51896446
Follow501048932022-10-27 13:30:23490 days 4 hrs ago1666877423IN
0xD93CDb...d1b2608B
0 FTM0.00018732.5
Follow501048512022-10-27 13:29:42490 days 4 hrs ago1666877382IN
0xD93CDb...d1b2608B
0 FTM0.000484798.38413102
Unfollow501048292022-10-27 13:29:17490 days 4 hrs ago1666877357IN
0xD93CDb...d1b2608B
0 FTM0.000346839.73
Follow501047812022-10-27 13:28:18490 days 4 hrs ago1666877298IN
0xD93CDb...d1b2608B
0 FTM0.000225689.32852777
Follow501047022022-10-27 13:26:54490 days 4 hrs ago1666877214IN
0xD93CDb...d1b2608B
0 FTM0.0003789115.66217552
Follow501044062022-10-27 13:18:36490 days 4 hrs ago1666876716IN
0xD93CDb...d1b2608B
0 FTM0.00006082.51319423
Follow501034622022-10-27 13:01:28490 days 5 hrs ago1666875688IN
0xD93CDb...d1b2608B
0 FTM0.0028316830.77144514
View all transactions

Latest 1 internal transaction

Parent Txn Hash Block From To Value
500630262022-10-26 22:59:11490 days 19 hrs ago1666825151  Contract Creation0 FTM
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FollowContract

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at ftmscan.com on 2022-10-27
*/

// Follow.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/**
 * A simple Follow implementation
 *
 * Bob can follow(Alice) and unfollow(Alice)
 *
 * This is not a good idea to copy and deploy your own version of that contract.
 * The whole point of that contract is to be unique.
 * Simply use that deployed contract in your Web3 application to make it social.
 * If Bob has already followed Alice in another Web3 social app, then Bob will be
 * following Alice in your application too.
 * Please, don't tie the followers of your users to your application.
 * If Alice has 10 000 followers via your application, then, let her followers be hers:
 * meaning, if she goes to another app, she should be able to keep her followers with her.
 *
 * Don't keep a Web2 mindset. This is Web3 now.
 * Our users should have the power over our apps.
 *
 *
 * Owner powers:
 *   - none
 *
 * Governance:
 *   - none
 *
 * This contract has been deployed on Fantom at address:
 * 0xD93CDb63A1e7573CDc5e2AA8767588B0d1b2608B
 * By MetaZebre:
 * 0xedB00816FB204b4CD9bCb45FF2EF693E99723484
 *
 * To discuss about this contract, go to:
 * https://cherrific.io/0xedB00816FB204b4CD9bCb45FF2EF693E99723484/story/27
 *
 * Please, follow me on ... Fantom !!!  :-D
 */


// From OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
// simplified (not is Context)

abstract contract Ownable {
  // ==== Events      ====
  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

  // ==== Storage     ====
  // Private so it cannot be changed by inherited contracts
  address private _owner;

  // ==== Constructor ====
  constructor() {
    _transferOwnership(msg.sender);
  }

  // ==== Modifiers   ====
  modifier onlyOwner() {
    require(_owner == msg.sender, "Ownable: caller is not the owner");
    _;
  }

  // ==== Views       ====
  function owner() public view virtual returns (address) {
    return _owner;
  }

  // ==== Mutators    ====
  function renounceOwnership() public virtual onlyOwner {
    _transferOwnership(address(0));
  }

  function transferOwnership(address newOwner_) public virtual onlyOwner {
    require(newOwner_ != address(0), "Ownable: new owner is the zero address");
    _transferOwnership(newOwner_);
  }


  // ==== Internals   ====
  function _transferOwnership(address newOwner_) internal virtual {
    address oldOwner = owner();
    _owner = newOwner_;
    emit OwnershipTransferred(oldOwner, newOwner_);
  }
}



contract FollowContract is Ownable {

  // ----- Events -----
  event Follow    (address indexed follower, address indexed followed);
  event Unfollow  (address indexed follower, address indexed followed);


  // ----- Structs -----
  // 1 slot
  // describes the following link
  struct Followage {
    uint40  timestamp;
    uint40  order;
    // 176 bits left: what could we do with them?
  }

  // describes a user
  struct User {
    uint40 followers; // nb of followers
    uint40 following; // nb of following
    uint40 orderCount; // for ordering of followers
    uint40 lastUpdate; // time the user was last updated
    // 96 bits left: what could we do with them
  }


  // ----- Storage -----

  // mapping of users
  // users[userAddress] = {followers, following}
  mapping(address => User) public users;

  // mapping of follows
  // followers[followerAddres][followedAddress] = {timestamp, order}
  mapping(address => mapping(address => Followage)) public follows;


  // ----- Governance -----
  // nothing

  // ----- Views -----
  // direct access to public storage


  // ----- Mutators -----
  function follow(address followed_) external returns (bool) {
    Followage memory fol = follows[msg.sender][followed_];

    // already following
    if (fol.timestamp > 0) {
      return false;
    }

    // update followed user
    User memory target = users[followed_];
    target.followers  += 1;
    target.orderCount += 1;
    target.lastUpdate = uint40(block.timestamp);
    users[followed_] = target;

    // update follower user
    User memory follower = users[msg.sender];
    follower.following += 1;
    follower.lastUpdate = uint40(block.timestamp);
    users[msg.sender] = follower;

    // add follow
    fol.order = target.orderCount;
    fol.timestamp = uint40(block.timestamp);
    follows[msg.sender][followed_] = fol;

    emit Follow(msg.sender, followed_);

    return true;
  }

  function unfollow(address followed_) external returns (bool) {
    Followage memory fol = follows[msg.sender][followed_];

    // not already following
    if (fol.timestamp == 0) {
      return false;
    }

    // update followed user
    User memory target = users[followed_];
    target.followers  -= 1;
    target.lastUpdate = uint40(block.timestamp);
    users[followed_] = target;

    // update follower user
    User memory follower = users[msg.sender];
    follower.following -= 1;
    follower.lastUpdate = uint40(block.timestamp);
    users[msg.sender] = follower;

    // remove follow
    delete follows[msg.sender][followed_];

    emit Unfollow(msg.sender, followed_);

    return true;
  }

}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"follower","type":"address"},{"indexed":true,"internalType":"address","name":"followed","type":"address"}],"name":"Follow","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"follower","type":"address"},{"indexed":true,"internalType":"address","name":"followed","type":"address"}],"name":"Unfollow","type":"event"},{"inputs":[{"internalType":"address","name":"followed_","type":"address"}],"name":"follow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"follows","outputs":[{"internalType":"uint40","name":"timestamp","type":"uint40"},{"internalType":"uint40","name":"order","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"followed_","type":"address"}],"name":"unfollow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint40","name":"followers","type":"uint40"},{"internalType":"uint40","name":"following","type":"uint40"},{"internalType":"uint40","name":"orderCount","type":"uint40"},{"internalType":"uint40","name":"lastUpdate","type":"uint40"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a218061007e6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063715018a61161005b578063715018a61461011a5780638da5cb5b14610124578063a87430ba1461013f578063f2fde38b146101b857600080fd5b8063015a4ead146100825780634dbf27cc146100aa5780635d1ca476146100bd575b600080fd5b610095610090366004610924565b6101cb565b60405190151581526020015b60405180910390f35b6100956100b8366004610924565b61046c565b6100fc6100cb366004610946565b600260209081526000928352604080842090915290825290205464ffffffffff808216916501000000000090041682565b6040805164ffffffffff9384168152929091166020830152016100a1565b610122610753565b005b6000546040516001600160a01b0390911681526020016100a1565b61018761014d366004610924565b60016020526000908152604090205464ffffffffff80821691650100000000008104821691600160501b8204811691600160781b90041684565b6040805164ffffffffff958616815293851660208501529184169183019190915290911660608201526080016100a1565b6101226101c6366004610924565b6107be565b3360009081526002602090815260408083206001600160a01b0385168452825280832081518083019092525464ffffffffff8082168084526501000000000090920416928201929092529082036102255750600092915050565b6001600160a01b0383166000908152600160208181526040928390208351608081018552905464ffffffffff808216808452650100000000008304821694840194909452600160501b8204811695830195909552600160781b9004909316606084015282906102959083906109a8565b64ffffffffff90811690915242811660608481019182526001600160a01b038816600090815260016020818152604080842089518154848c0151848d01519951928b1669ffffffffffffffffffff199092169190911765010000000000918b1682021773ffffffffffffffffffff000000000000000000001916600160501b998b168a0264ffffffffff60781b191617600160781b928b168302179092553386529482902082516080810184529054808a1682529182048916938101848152978204891692810192909252939093049095169282019290925293509161037c9083906109a8565b64ffffffffff9081169091524281166060840190815233600081815260016020908152604080832088518154848b0151848c01519851928a1669ffffffffffffffffffff199283161765010000000000918b16919091021773ffffffffffffffffffff000000000000000000001916600160501b988a169890980264ffffffffff60781b191697909717600160781b919098160296909617909555600281528482206001600160a01b038c16808452915284822080549094169093559251919350917f083700fd0d85112c9d8c5823585c7542e8fadb693c9902e5bc590ab367f7a15e91a3506001949350505050565b3360009081526002602090815260408083206001600160a01b0385168452825280832081518083019092525464ffffffffff80821680845265010000000000909204169282019290925290156104c55750600092915050565b6001600160a01b0383166000908152600160208181526040928390208351608081018552905464ffffffffff808216808452650100000000008304821694840194909452600160501b8204811695830195909552600160781b9004909316606084015282906105359083906109cd565b64ffffffffff16905250604081018051600191906105549083906109cd565b64ffffffffff90811690915242811660608481019182526001600160a01b038816600090815260016020818152604080842089518154848c0151848d01519951928b1669ffffffffffffffffffff199092169190911765010000000000918b1682021773ffffffffffffffffffff000000000000000000001916600160501b998b168a0264ffffffffff60781b191617600160781b928b168302179092553386529482902082516080810184529054808a1682529182048916938101848152978204891692810192909252939093049095169282019290925293509161063b9083906109cd565b64ffffffffff9081169091524281166060840181815233600081815260016020908152604080832089518154848c0151848d015198518b16600160781b0264ffffffffff60781b19998c16600160501b029990991673ffffffffffffffffffff0000000000000000000019918c166501000000000090810269ffffffffffffffffffff19948516958e1695909517949094179190911617979097179091558a82015188168c8401908152968c52848452600283528184206001600160a01b038f1680865293528184208c51815498518a16909202979096169716969096179490941790925592519193507fbccc71dc7842b86291138666aa18e133ee6d41aa71e6d7c650debad1a057663591a3506001949350505050565b6000546001600160a01b031633146107b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6107bc60006108a0565b565b6000546001600160a01b031633146108185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a9565b6001600160a01b0381166108945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107a9565b61089d816108a0565b50565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461091f57600080fd5b919050565b60006020828403121561093657600080fd5b61093f82610908565b9392505050565b6000806040838503121561095957600080fd5b61096283610908565b915061097060208401610908565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b64ffffffffff8281168282160390808211156109c6576109c6610979565b5092915050565b64ffffffffff8181168382160190808211156109c6576109c661097956fea26469706673582212200f64d03a306f232c2ae51ad96a06ab7108a77f1400e30fbf68652ca5ea7e4c0d64736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063715018a61161005b578063715018a61461011a5780638da5cb5b14610124578063a87430ba1461013f578063f2fde38b146101b857600080fd5b8063015a4ead146100825780634dbf27cc146100aa5780635d1ca476146100bd575b600080fd5b610095610090366004610924565b6101cb565b60405190151581526020015b60405180910390f35b6100956100b8366004610924565b61046c565b6100fc6100cb366004610946565b600260209081526000928352604080842090915290825290205464ffffffffff808216916501000000000090041682565b6040805164ffffffffff9384168152929091166020830152016100a1565b610122610753565b005b6000546040516001600160a01b0390911681526020016100a1565b61018761014d366004610924565b60016020526000908152604090205464ffffffffff80821691650100000000008104821691600160501b8204811691600160781b90041684565b6040805164ffffffffff958616815293851660208501529184169183019190915290911660608201526080016100a1565b6101226101c6366004610924565b6107be565b3360009081526002602090815260408083206001600160a01b0385168452825280832081518083019092525464ffffffffff8082168084526501000000000090920416928201929092529082036102255750600092915050565b6001600160a01b0383166000908152600160208181526040928390208351608081018552905464ffffffffff808216808452650100000000008304821694840194909452600160501b8204811695830195909552600160781b9004909316606084015282906102959083906109a8565b64ffffffffff90811690915242811660608481019182526001600160a01b038816600090815260016020818152604080842089518154848c0151848d01519951928b1669ffffffffffffffffffff199092169190911765010000000000918b1682021773ffffffffffffffffffff000000000000000000001916600160501b998b168a0264ffffffffff60781b191617600160781b928b168302179092553386529482902082516080810184529054808a1682529182048916938101848152978204891692810192909252939093049095169282019290925293509161037c9083906109a8565b64ffffffffff9081169091524281166060840190815233600081815260016020908152604080832088518154848b0151848c01519851928a1669ffffffffffffffffffff199283161765010000000000918b16919091021773ffffffffffffffffffff000000000000000000001916600160501b988a169890980264ffffffffff60781b191697909717600160781b919098160296909617909555600281528482206001600160a01b038c16808452915284822080549094169093559251919350917f083700fd0d85112c9d8c5823585c7542e8fadb693c9902e5bc590ab367f7a15e91a3506001949350505050565b3360009081526002602090815260408083206001600160a01b0385168452825280832081518083019092525464ffffffffff80821680845265010000000000909204169282019290925290156104c55750600092915050565b6001600160a01b0383166000908152600160208181526040928390208351608081018552905464ffffffffff808216808452650100000000008304821694840194909452600160501b8204811695830195909552600160781b9004909316606084015282906105359083906109cd565b64ffffffffff16905250604081018051600191906105549083906109cd565b64ffffffffff90811690915242811660608481019182526001600160a01b038816600090815260016020818152604080842089518154848c0151848d01519951928b1669ffffffffffffffffffff199092169190911765010000000000918b1682021773ffffffffffffffffffff000000000000000000001916600160501b998b168a0264ffffffffff60781b191617600160781b928b168302179092553386529482902082516080810184529054808a1682529182048916938101848152978204891692810192909252939093049095169282019290925293509161063b9083906109cd565b64ffffffffff9081169091524281166060840181815233600081815260016020908152604080832089518154848c0151848d015198518b16600160781b0264ffffffffff60781b19998c16600160501b029990991673ffffffffffffffffffff0000000000000000000019918c166501000000000090810269ffffffffffffffffffff19948516958e1695909517949094179190911617979097179091558a82015188168c8401908152968c52848452600283528184206001600160a01b038f1680865293528184208c51815498518a16909202979096169716969096179490941790925592519193507fbccc71dc7842b86291138666aa18e133ee6d41aa71e6d7c650debad1a057663591a3506001949350505050565b6000546001600160a01b031633146107b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6107bc60006108a0565b565b6000546001600160a01b031633146108185760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a9565b6001600160a01b0381166108945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107a9565b61089d816108a0565b50565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461091f57600080fd5b919050565b60006020828403121561093657600080fd5b61093f82610908565b9392505050565b6000806040838503121561095957600080fd5b61096283610908565b915061097060208401610908565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b64ffffffffff8281168282160390808211156109c6576109c6610979565b5092915050565b64ffffffffff8181168382160190808211156109c6576109c661097956fea26469706673582212200f64d03a306f232c2ae51ad96a06ab7108a77f1400e30fbf68652ca5ea7e4c0d64736f6c63430008110033

Deployed Bytecode Sourcemap

2575:2732:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4570:732;;;;;;:::i;:::-;;:::i;:::-;;;571:14:1;;564:22;546:41;;534:2;519:18;4570:732:0;;;;;;;;3734:830;;;;;;:::i;:::-;;:::i;3523:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1043:12:1;1082:15;;;1064:34;;1134:15;;;;1129:2;1114:18;;1107:43;1006:18;3523:64:0;863:293:1;2050:97:0;;;:::i;:::-;;1935:81;1981:7;2004:6;1935:81;;-1:-1:-1;;;;;2004:6:0;;;1307:74:1;;1295:2;1280:18;1935:81:0;1161:226:1;3384:37:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3384:37:0;;;;;-1:-1:-1;;;3384:37:0;;;;;;;;;1625:12:1;1664:15;;;1646:34;;1716:15;;;1711:2;1696:18;;1689:43;1768:15;;;1748:18;;;1741:43;;;;1820:15;;;1815:2;1800:18;;1793:43;1602:3;1587:19;3384:37:0;1392:450:1;2153:194:0;;;;;;:::i;:::-;;:::i;4570:732::-;4669:10;4625:4;4661:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;4661:30:0;;;;;;;;;4638:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4734:18;;4730:53;;-1:-1:-1;4770:5:0;;4570:732;-1:-1:-1;;4570:732:0:o;4730:53::-;-1:-1:-1;;;;;4841:16:0;;4820:18;4841:16;;;:5;:16;;;;;;;;;4820:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4820:37:0;;;;;;;;;;;-1:-1:-1;;;4820:37:0;;;;;;;;;;;4864:22;;4841:5;;4864:22;:::i;:::-;;;;;;;;4920:15;4893:43;;:17;;;;:43;;;-1:-1:-1;;;;;4943:16:0;;;;;;:5;:16;;;;;;;;:25;;;;;;;;;;;;;;;;;-1:-1:-1;;4943:25:0;;;;;;;;;;;;;;-1:-1:-1;;4943:25:0;-1:-1:-1;;;4943:25:0;;;;;-1:-1:-1;;;;4943:25:0;;-1:-1:-1;;;4943:25:0;;;;;;;;;5035:10;5029:17;;;;;;5006:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4943:5:0;5053:23;;4943:5;;5053:23;:::i;:::-;;;;;;;;5112:15;5083:45;;:19;;;:45;;;5141:10;5135:17;;;;:5;:17;;;;;;;;:28;;;;;;;;;;;;;;;;;-1:-1:-1;;5135:28:0;;;;;;;;;;;;;-1:-1:-1;;5135:28:0;-1:-1:-1;;;5135:28:0;;;;;;;-1:-1:-1;;;;5135:28:0;;;;;-1:-1:-1;;;5135:28:0;;;;;;;;;;;;5201:7;:19;;;;;-1:-1:-1;;;;;5201:30:0;;;;;;;;;;5194:37;;;;;;;;5245:31;;5201:30;;-1:-1:-1;5141:10:0;5245:31;;;-1:-1:-1;5292:4:0;;4570:732;-1:-1:-1;;;;4570:732:0:o;3734:830::-;3831:10;3787:4;3823:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3823:30:0;;;;;;;;;3800:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3892:17;3888:52;;-1:-1:-1;3927:5:0;;3734:830;-1:-1:-1;;3734:830:0:o;3888:52::-;-1:-1:-1;;;;;3998:16:0;;3977:18;3998:16;;;:5;:16;;;;;;;;;3977:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3977:37:0;;;;;;;;;;;-1:-1:-1;;;3977:37:0;;;;;;;;;;;4021:22;;3998:5;;4021:22;:::i;:::-;;;;;-1:-1:-1;4050:17:0;;;:22;;4071:1;;4050:17;:22;;4071:1;;4050:22;:::i;:::-;;;;;;;;4106:15;4079:43;;:17;;;;:43;;;-1:-1:-1;;;;;4129:16:0;;;;;;:5;:16;;;;;;;;:25;;;;;;;;;;;;;;;;;-1:-1:-1;;4129:25:0;;;;;;;;;;;;;;-1:-1:-1;;4129:25:0;-1:-1:-1;;;4129:25:0;;;;;-1:-1:-1;;;;4129:25:0;;-1:-1:-1;;;4129:25:0;;;;;;;;;4221:10;4215:17;;;;;;4192:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4129:5:0;4239:23;;4129:5;;4239:23;:::i;:::-;;;;;;;;4298:15;4269:45;;:19;;;:45;;;4327:10;4321:17;;;;:5;:17;;;;;;;;:28;;;;;;;;;;;;;;;;-1:-1:-1;;;4321:28:0;-1:-1:-1;;;;4321:28:0;;;-1:-1:-1;;;4321:28:0;;;;;-1:-1:-1;;4321:28:0;;;;;;;-1:-1:-1;;4321:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;4389:17;;;;4377:29;;:9;;;:29;;;4413:39;;;4459:19;;;:7;:19;;;;;-1:-1:-1;;;;;4459:30:0;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;4509:29;;4459:30;;-1:-1:-1;4509:29:0;;;-1:-1:-1;4554:4:0;;3734:830;-1:-1:-1;;;;3734:830:0:o;2050:97::-;1830:6;;-1:-1:-1;;;;;1830:6:0;1840:10;1830:20;1822:65;;;;-1:-1:-1;;;1822:65:0;;2599:2:1;1822:65:0;;;2581:21:1;;;2618:18;;;2611:30;2677:34;2657:18;;;2650:62;2729:18;;1822:65:0;;;;;;;;;2111:30:::1;2138:1;2111:18;:30::i;:::-;2050:97::o:0;2153:194::-;1830:6;;-1:-1:-1;;;;;1830:6:0;1840:10;1830:20;1822:65;;;;-1:-1:-1;;;1822:65:0;;2599:2:1;1822:65:0;;;2581:21:1;;;2618:18;;;2611:30;2677:34;2657:18;;;2650:62;2729:18;;1822:65:0;2397:356:1;1822:65:0;-1:-1:-1;;;;;2239:23:0;::::1;2231:74;;;::::0;-1:-1:-1;;;2231:74:0;;2960:2:1;2231:74:0::1;::::0;::::1;2942:21:1::0;2999:2;2979:18;;;2972:30;3038:34;3018:18;;;3011:62;3109:8;3089:18;;;3082:36;3135:19;;2231:74:0::1;2758:402:1::0;2231:74:0::1;2312:29;2331:9;2312:18;:29::i;:::-;2153:194:::0;:::o;2383:181::-;2454:16;2004:6;;-1:-1:-1;;;;;2487:18:0;;;;;;;;;;2517:41;;2004:6;;;;;;;2517:41;;2454:16;2517:41;2447:117;2383:181;:::o;14:196:1:-;82:20;;-1:-1:-1;;;;;131:54:1;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:1:o;598:260::-;666:6;674;727:2;715:9;706:7;702:23;698:32;695:52;;;743:1;740;733:12;695:52;766:29;785:9;766:29;:::i;:::-;756:39;;814:38;848:2;837:9;833:18;814:38;:::i;:::-;804:48;;598:260;;;;;:::o;1847:184::-;1899:77;1896:1;1889:88;1996:4;1993:1;1986:15;2020:4;2017:1;2010:15;2036:177;2104:12;2149:10;;;2137;;;2133:27;;2172:12;;;2169:38;;;2187:18;;:::i;:::-;2169:38;2036:177;;;;:::o;2218:174::-;2285:12;2317:10;;;2329;;;2313:27;;2352:11;;;2349:37;;;2366:18;;:::i

Swarm Source

ipfs://0f64d03a306f232c2ae51ad96a06ab7108a77f1400e30fbf68652ca5ea7e4c0d

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ 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.