ETH Price: $2,668.68 (-4.91%)

Contract

0xFAA85a3aB6D12D5AB0b8Aa55b6BAadD9Dc457ABF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Pre Sig...123617942021-05-03 14:30:061393 days ago1620052206IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0036861239
Transfer Pre Sig...123617742021-05-03 14:25:181393 days ago1620051918IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0035914538
Transfer Pre Sig...123617742021-05-03 14:25:181393 days ago1620051918IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0035919138
Transfer Pre Sig...123587582021-05-03 3:14:101393 days ago1620011650IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0024703626
Transfer Pre Sig...123540982021-05-02 10:01:451394 days ago1619949705IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0022688624
Transfer Pre Sig...123540982021-05-02 10:01:451394 days ago1619949705IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0022683824
Transfer Pre Sig...123540982021-05-02 10:01:451394 days ago1619949705IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0022685724
Transfer Pre Sig...123540982021-05-02 10:01:451394 days ago1619949705IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0022801424
Transfer Pre Sig...123540982021-05-02 10:01:451394 days ago1619949705IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0022803324
Transfer Pre Sig...123540982021-05-02 10:01:451394 days ago1619949705IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0021743223
Transfer Pre Sig...123476022021-05-01 10:01:441395 days ago1619863304IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0030265327
Transfer Pre Sig...122762772021-04-20 9:45:361406 days ago1618911936IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0193232200
Transfer Pre Sig...122517082021-04-16 14:49:341410 days ago1618584574IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0141346200
Transfer Pre Sig...122517082021-04-16 14:49:341410 days ago1618584574IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0189072200
Transfer Pre Sig...122516332021-04-16 14:31:471410 days ago1618583507IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0189024200
Transfer Pre Sig...122516222021-04-16 14:30:231410 days ago1618583423IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0189048200
Transfer Pre Sig...122516222021-04-16 14:30:231410 days ago1618583423IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0189048200
Transfer Pre Sig...122516222021-04-16 14:30:231410 days ago1618583423IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0189008200
Transfer Pre Sig...122202312021-04-11 18:10:461414 days ago1618164646IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0069334883
Transfer Pre Sig...122202102021-04-11 18:06:401414 days ago1618164400IN
0xFAA85a3a...9Dc457ABF
0 ETH0.006930583
Transfer Pre Sig...122201932021-04-11 18:02:211414 days ago1618164141IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0069298383
Transfer Pre Sig...122201782021-04-11 17:59:121414 days ago1618163952IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0081748383
Transfer Pre Sig...122135092021-04-10 17:25:031415 days ago1618075503IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0048681983
Transfer Pre Sig...122135092021-04-10 17:25:031415 days ago1618075503IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0048681983
Transfer Pre Sig...122135092021-04-10 17:25:031415 days ago1618075503IN
0xFAA85a3a...9Dc457ABF
0 ETH0.0056868283
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
123617942021-05-03 14:30:061393 days ago1620052206
0xFAA85a3a...9Dc457ABF
0 ETH
123617742021-05-03 14:25:181393 days ago1620051918
0xFAA85a3a...9Dc457ABF
0 ETH
123617742021-05-03 14:25:181393 days ago1620051918
0xFAA85a3a...9Dc457ABF
0 ETH
123587582021-05-03 3:14:101393 days ago1620011650
0xFAA85a3a...9Dc457ABF
0 ETH
123540982021-05-02 10:01:451394 days ago1619949705
0xFAA85a3a...9Dc457ABF
0 ETH
123540982021-05-02 10:01:451394 days ago1619949705
0xFAA85a3a...9Dc457ABF
0 ETH
123540982021-05-02 10:01:451394 days ago1619949705
0xFAA85a3a...9Dc457ABF
0 ETH
123540982021-05-02 10:01:451394 days ago1619949705
0xFAA85a3a...9Dc457ABF
0 ETH
123540982021-05-02 10:01:451394 days ago1619949705
0xFAA85a3a...9Dc457ABF
0 ETH
123540982021-05-02 10:01:451394 days ago1619949705
0xFAA85a3a...9Dc457ABF
0 ETH
123476022021-05-01 10:01:441395 days ago1619863304
0xFAA85a3a...9Dc457ABF
0 ETH
122762772021-04-20 9:45:361406 days ago1618911936
0xFAA85a3a...9Dc457ABF
0 ETH
122517082021-04-16 14:49:341410 days ago1618584574
0xFAA85a3a...9Dc457ABF
0 ETH
122517082021-04-16 14:49:341410 days ago1618584574
0xFAA85a3a...9Dc457ABF
0 ETH
122516332021-04-16 14:31:471410 days ago1618583507
0xFAA85a3a...9Dc457ABF
0 ETH
122516222021-04-16 14:30:231410 days ago1618583423
0xFAA85a3a...9Dc457ABF
0 ETH
122516222021-04-16 14:30:231410 days ago1618583423
0xFAA85a3a...9Dc457ABF
0 ETH
122516222021-04-16 14:30:231410 days ago1618583423
0xFAA85a3a...9Dc457ABF
0 ETH
122202312021-04-11 18:10:461414 days ago1618164646
0xFAA85a3a...9Dc457ABF
0 ETH
122202102021-04-11 18:06:401414 days ago1618164400
0xFAA85a3a...9Dc457ABF
0 ETH
122201932021-04-11 18:02:211414 days ago1618164141
0xFAA85a3a...9Dc457ABF
0 ETH
122201782021-04-11 17:59:121414 days ago1618163952
0xFAA85a3a...9Dc457ABF
0 ETH
122135092021-04-10 17:25:031415 days ago1618075503
0xFAA85a3a...9Dc457ABF
0 ETH
122135092021-04-10 17:25:031415 days ago1618075503
0xFAA85a3a...9Dc457ABF
0 ETH
122135092021-04-10 17:25:031415 days ago1618075503
0xFAA85a3a...9Dc457ABF
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DelegatedTransferOperatorV5GasOptimized

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-01-28
*/

pragma solidity 0.4.25;

// File: contracts/ERC777/ERC777Token.sol

/* This Source Code Form is subject to the terms of the Mozilla external
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This code has not been reviewed.
 * Do not use or deploy this code before reviewing it personally first.
 */


interface ERC777Token {
  function name() external view returns (string);
  function symbol() external view returns (string);
  function totalSupply() external view returns (uint256);
  function balanceOf(address owner) external view returns (uint256);
  function granularity() external view returns (uint256);

  function defaultOperators() external view returns (address[]);
  function isOperatorFor(address operator, address tokenHolder) external view returns (bool);
  function authorizeOperator(address operator) external;
  function revokeOperator(address operator) external;

  function send(address to, uint256 amount, bytes holderData) external;
  function operatorSend(address from, address to, uint256 amount, bytes holderData, bytes operatorData) external;

  function burn(uint256 amount, bytes holderData) external;
  function operatorBurn(address from, uint256 amount, bytes holderData, bytes operatorData) external;

  event Sent(
    address indexed operator,
    address indexed from,
    address indexed to,
    uint256 amount,
    bytes holderData,
    bytes operatorData
  );
  event Minted(address indexed operator, address indexed to, uint256 amount, bytes operatorData);
  event Burned(address indexed operator, address indexed from, uint256 amount, bytes holderData, bytes operatorData);
  event AuthorizedOperator(address indexed operator, address indexed tokenHolder);
  event RevokedOperator(address indexed operator, address indexed tokenHolder);
}

// File: contracts/operators/DelegatedTransferOperatorV5GasOptimized.sol

/// @title DelegatedTransferOperatorV5GasOptimized
/// @author Roger Wu (Roger-Wu)
/// @dev A DelegatedTransferOperator contract that has the following features:
///   1. To prevent replay attack, we check if a _nonce has been used by a token holder.
///   2. Minimize the gas by making functions inline and remove trivial event.
///   3. Add `_userData`.
///   4. Add function `batchTransferPreSigned` which does multiple delegated Transfers in one transaction.
///   5. Support signature with "\x19Ethereum Signed Message:\n32" prefix
contract DelegatedTransferOperatorV5GasOptimized {
  mapping(address => uint256) public usedNonce;
  ERC777Token tokenContract = ERC777Token(0x67ab11058eF23D0a19178f61A050D3c38F81Ae21);

  /**
    * @notice Submit a presigned transfer
    * @param _to address The address which you want to transfer to.
    * @param _delegate address The address which is allowed to send this transaction.
    * @param _value uint256 The amount of tokens to be transferred.
    * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
    * @param _nonce uint256 Presigned transaction number.
    * @param _userData bytes Data generated by the user to be sent to the recipient.
    * @param _signedWithPrefix bool Whether "\x19Ethereum Signed Message:\n32" is prefixed
    * @param _sig_r bytes32 The r of the signature.
    * @param _sig_s bytes32 The s of the signature.
    * @param _sig_v uint8 The v of the signature.
    * @dev some rules:
    * 1. If _to is address(0), the tx will fail when doSend().
    * 2. If _delegate == address(0), then anyone can be the delegate.
    * 3. _nonce must be greater than the last used nonce by the token holder,
    *    but nonces don't have to be serial numbers.
    *    We recommend using unix time as nonce.
    * 4. _sig_v should be 27 or 28.
    */
  function transferPreSigned(
    address _to,
    address _delegate,
    uint256 _value,
    uint256 _fee,
    uint256 _nonce,
    bytes _userData,
    bool _signedWithPrefix,
    bytes32 _sig_r,
    bytes32 _sig_s,
    uint8 _sig_v
  )
    public
  {
    require(
      _delegate == address(0) || _delegate == msg.sender,
      "_delegate should be address(0) or msg.sender"
    );

    // bytes32 _hash = transferPreSignedHashing(...);
    bytes32 _hash = keccak256(
      abi.encodePacked(
        address(this),
        _to,
        _delegate,
        _value,
        _fee,
        _nonce,
        _userData
      )
    );
    if (_signedWithPrefix) {
      // _hash = toEthSignedMessageHash(_hash);
      _hash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", _hash));
    }

    // address _signer = recoverVrs(_hash, _sig_v, _sig_r, _sig_s);
    address _signer = (_sig_v != 27 && _sig_v != 28) ?
      address(0) :
      ecrecover(_hash, _sig_v, _sig_r, _sig_s);

    require(
      _signer != address(0),
      "_signature is invalid."
    );

    require(
      _nonce > usedNonce[_signer],
      "_nonce must be greater than the last used nonce of the token holder."
    );

    usedNonce[_signer] = _nonce;

    tokenContract.operatorSend(_signer, _to, _value, _userData, "");
    if (_fee > 0) {
      tokenContract.operatorSend(_signer, msg.sender, _fee, _userData, "");
    }
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"usedNonce","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_delegate","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_userData","type":"bytes"},{"name":"_signedWithPrefix","type":"bool"},{"name":"_sig_r","type":"bytes32"},{"name":"_sig_s","type":"bytes32"},{"name":"_sig_v","type":"uint8"}],"name":"transferPreSigned","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405260018054600160a060020a0319167367ab11058ef23d0a19178f61a050d3c38f81ae2117905534801561003657600080fd5b5061085a806100466000396000f3006080604052600436106100325763ffffffff60e060020a6000350416633e61e9dc81146100375780637f3d64181461006a575b600080fd5b34801561004357600080fd5b50610058600160a060020a03600435166100ff565b60408051918252519081900360200190f35b34801561007657600080fd5b50604080516020600460a43581810135601f81018490048402850184019095528484526100fd948235600160a060020a039081169560248035909216956044359560643595608435953695929460c494909390920191819084018382808284375094975050505082351515935050506020810135906040810135906060013560ff16610111565b005b60006020819052908152604090205481565b600080600160a060020a038b1615806101325750600160a060020a038b1633145b15156101c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5f64656c65676174652073686f756c642062652061646472657373283029206f60448201527f72206d73672e73656e6465720000000000000000000000000000000000000000606482015290519081900360840190fd5b308c8c8c8c8c8c6040516020018088600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140187600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140186600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140185815260200184815260200183815260200182805190602001908083835b602083106102855780518252601f199092019160209182019101610266565b6001836020036101000a0380198251168184511680821785525050505050509050019750505050505050506040516020818303038152906040526040518082805190602001908083835b602083106102ee5780518252601f1990920191602091820191016102cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915085156103c957604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830186905283518084039091018152605c90920192839052815191929182918401908083835b602083106103995780518252601f19909201916020918201910161037a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091505b8260ff16601b141580156103e157508260ff16601c14155b61044e57604080516000808252602080830180855286905260ff8716838501526060830189905260808301889052925160019360a0808501949193601f19840193928390039091019190865af115801561043f573d6000803e3d6000fd5b50505060206040510351610451565b60005b9050600160a060020a03811615156104ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5f7369676e617475726520697320696e76616c69642e00000000000000000000604482015290519081900360640190fd5b600160a060020a038116600090815260208190526040902054881161059d57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526044602482018190527f5f6e6f6e6365206d7573742062652067726561746572207468616e2074686520908201527f6c6173742075736564206e6f6e6365206f662074686520746f6b656e20686f6c60648201527f6465722e00000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b8760008083600160a060020a0316600160a060020a0316815260200190815260200160002081905550600160009054906101000a9004600160a060020a0316600160a060020a03166362ad1b83828e8d8b6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a031681526020018381526020018060200180602001838103835284818151815260200191508051906020019080838360005b8381101561067757818101518382015260200161065f565b50505050905090810190601f1680156106a45780820380516001836020036101000a031916815260200191505b508381038252600081526020016020019650505050505050600060405180830381600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b50505050600089111561082057600160009054906101000a9004600160a060020a0316600160a060020a03166362ad1b8382338c8b6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a031681526020018381526020018060200180602001838103835284818151815260200191508051906020019080838360005b838110156107a8578181015183820152602001610790565b50505050905090810190601f1680156107d55780820380516001836020036101000a031916815260200191505b508381038252600081526020016020019650505050505050600060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b505050505b5050505050505050505050505600a165627a7a7230582096ff3bdbe678aaaf9a86f6283bb7ea2df6fe4181107707d4d8996c098149618f0029

Deployed Bytecode

0x6080604052600436106100325763ffffffff60e060020a6000350416633e61e9dc81146100375780637f3d64181461006a575b600080fd5b34801561004357600080fd5b50610058600160a060020a03600435166100ff565b60408051918252519081900360200190f35b34801561007657600080fd5b50604080516020600460a43581810135601f81018490048402850184019095528484526100fd948235600160a060020a039081169560248035909216956044359560643595608435953695929460c494909390920191819084018382808284375094975050505082351515935050506020810135906040810135906060013560ff16610111565b005b60006020819052908152604090205481565b600080600160a060020a038b1615806101325750600160a060020a038b1633145b15156101c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5f64656c65676174652073686f756c642062652061646472657373283029206f60448201527f72206d73672e73656e6465720000000000000000000000000000000000000000606482015290519081900360840190fd5b308c8c8c8c8c8c6040516020018088600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140187600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140186600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140185815260200184815260200183815260200182805190602001908083835b602083106102855780518252601f199092019160209182019101610266565b6001836020036101000a0380198251168184511680821785525050505050509050019750505050505050506040516020818303038152906040526040518082805190602001908083835b602083106102ee5780518252601f1990920191602091820191016102cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915085156103c957604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830186905283518084039091018152605c90920192839052815191929182918401908083835b602083106103995780518252601f19909201916020918201910161037a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902091505b8260ff16601b141580156103e157508260ff16601c14155b61044e57604080516000808252602080830180855286905260ff8716838501526060830189905260808301889052925160019360a0808501949193601f19840193928390039091019190865af115801561043f573d6000803e3d6000fd5b50505060206040510351610451565b60005b9050600160a060020a03811615156104ca57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5f7369676e617475726520697320696e76616c69642e00000000000000000000604482015290519081900360640190fd5b600160a060020a038116600090815260208190526040902054881161059d57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526044602482018190527f5f6e6f6e6365206d7573742062652067726561746572207468616e2074686520908201527f6c6173742075736564206e6f6e6365206f662074686520746f6b656e20686f6c60648201527f6465722e00000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b8760008083600160a060020a0316600160a060020a0316815260200190815260200160002081905550600160009054906101000a9004600160a060020a0316600160a060020a03166362ad1b83828e8d8b6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a031681526020018381526020018060200180602001838103835284818151815260200191508051906020019080838360005b8381101561067757818101518382015260200161065f565b50505050905090810190601f1680156106a45780820380516001836020036101000a031916815260200191505b508381038252600081526020016020019650505050505050600060405180830381600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b50505050600089111561082057600160009054906101000a9004600160a060020a0316600160a060020a03166362ad1b8382338c8b6040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184600160a060020a0316600160a060020a031681526020018381526020018060200180602001838103835284818151815260200191508051906020019080838360005b838110156107a8578181015183820152602001610790565b50505050905090810190601f1680156107d55780820380516001836020036101000a031916815260200191505b508381038252600081526020016020019650505050505050600060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b505050505b5050505050505050505050505600a165627a7a7230582096ff3bdbe678aaaf9a86f6283bb7ea2df6fe4181107707d4d8996c098149618f0029

Swarm Source

bzzr://96ff3bdbe678aaaf9a86f6283bb7ea2df6fe4181107707d4d8996c098149618f

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.