Contract 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d

Contract Overview

Balance:
0 BNB
Txn Hash
Block
From
To
Value [Txn Fee]
0x39d6eb0c043f4c2a3121648d374186e5a9e62b8747564bfbaed5bf87b51763a141068442020-12-01 1:00:39193 days 16 hrs ago0xa975d1de6d7da3140e9e293509337373402558be IN  Contract Creation0 BNB0.00637108
[ Download CSV Export 
Latest 18 internal transactions
Parent Txn Hash Block From To Value
0x830bdf7c6c8295b3b7c09949023217f296f2c4ac23e1b5341e5cc8bb32abb18a73399682021-03-23 14:05:3181 days 3 hrs ago 0x58f24a413f6fb98f217600703c7086ea22b49c47 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x830bdf7c6c8295b3b7c09949023217f296f2c4ac23e1b5341e5cc8bb32abb18a73399682021-03-23 14:05:3181 days 3 hrs ago 0x30c42a5f0099f67c6d9036a61fed44c823b7cc83 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x754f008f6a1017af4baf70c0bf316363edb483e48bee66c0ae15d7dbe20d198473399512021-03-23 14:04:4081 days 3 hrs ago 0x58f24a413f6fb98f217600703c7086ea22b49c47 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x754f008f6a1017af4baf70c0bf316363edb483e48bee66c0ae15d7dbe20d198473399512021-03-23 14:04:4081 days 3 hrs ago 0x30c42a5f0099f67c6d9036a61fed44c823b7cc83 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x7768b59388392255df6dd26fa6a6f4c69d67d78d7357ed4b00c4613b5811d4ce52798612021-01-10 19:36:08152 days 21 hrs ago 0x58f24a413f6fb98f217600703c7086ea22b49c47 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x7768b59388392255df6dd26fa6a6f4c69d67d78d7357ed4b00c4613b5811d4ce52798612021-01-10 19:36:08152 days 21 hrs ago 0x30c42a5f0099f67c6d9036a61fed44c823b7cc83 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0xde99b78db534bf845b8a6257349b7b18a8bdfdf3481d158ab1377a1e963c7e1049345012020-12-29 19:17:05164 days 21 hrs ago 0x58f24a413f6fb98f217600703c7086ea22b49c47 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0xde99b78db534bf845b8a6257349b7b18a8bdfdf3481d158ab1377a1e963c7e1049345012020-12-29 19:17:05164 days 21 hrs ago 0x30c42a5f0099f67c6d9036a61fed44c823b7cc83 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0xc90d1c9ec22e4a48067c6a0cf351ac1dcb6d63a9e4d01f8789ecff02b1d8704c45358632020-12-15 23:05:07178 days 18 hrs ago 0x58f24a413f6fb98f217600703c7086ea22b49c47 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0xc90d1c9ec22e4a48067c6a0cf351ac1dcb6d63a9e4d01f8789ecff02b1d8704c45358632020-12-15 23:05:07178 days 18 hrs ago 0x30c42a5f0099f67c6d9036a61fed44c823b7cc83 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x717229838cd25a04d79ff64168159280e9412328ca87283ea20567121e38271543697512020-12-10 4:39:31184 days 12 hrs ago 0x58f24a413f6fb98f217600703c7086ea22b49c47 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x717229838cd25a04d79ff64168159280e9412328ca87283ea20567121e38271543697512020-12-10 4:39:31184 days 12 hrs ago 0x30c42a5f0099f67c6d9036a61fed44c823b7cc83 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x4592b9615c3e47e4a4bb93a5ef9c8225a3e86434cf50d0d9f1c1ea0eaa61813643357462020-12-09 0:19:16185 days 16 hrs ago 0x58f24a413f6fb98f217600703c7086ea22b49c47 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x4592b9615c3e47e4a4bb93a5ef9c8225a3e86434cf50d0d9f1c1ea0eaa61813643357462020-12-09 0:19:16185 days 16 hrs ago 0x30c42a5f0099f67c6d9036a61fed44c823b7cc83 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x8bfe16ef296caff244a219de37a631d9a92073c7ffacf921d71e289cdb44cf4743048492020-12-07 22:34:25186 days 18 hrs ago 0x58f24a413f6fb98f217600703c7086ea22b49c47 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0x8bfe16ef296caff244a219de37a631d9a92073c7ffacf921d71e289cdb44cf4743048492020-12-07 22:34:25186 days 18 hrs ago 0x30c42a5f0099f67c6d9036a61fed44c823b7cc83 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0xf0cede4be7ab8fe15402b611819c06e9b9daea8fed93c014588104473b8c99a241071342020-12-01 1:19:37193 days 15 hrs ago 0x58f24a413f6fb98f217600703c7086ea22b49c47 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
0xf0cede4be7ab8fe15402b611819c06e9b9daea8fed93c014588104473b8c99a241071342020-12-01 1:19:37193 days 15 hrs ago 0x30c42a5f0099f67c6d9036a61fed44c823b7cc83 0xcf8033797367d6d2690d2c8380adcd55c83d1b8d0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CaptureTheFlag

Compiler Version
v0.6.10+commit.00c0fcaf

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 4 : CaptureTheFlag.sol
/**
 * SPDX-License-Identifier:MIT
 */
pragma solidity ^0.6.2;

import "@opengsn/gsn/contracts/BaseRelayRecipient.sol";

contract CaptureTheFlag is BaseRelayRecipient {

    event FlagCaptured(address previousHolder, address currentHolder);

    address public currentHolder = address(0);

    function versionRecipient() external override view returns (string memory) {
        return "1.0.0";
    }

    constructor(address _trustedForwarder) public {
        trustedForwarder = _trustedForwarder;
    }

    function captureTheFlag() external {
        address previousHolder = currentHolder;

        currentHolder = _msgSender();

        emit FlagCaptured(previousHolder, currentHolder);
    }
}

File 2 of 4 : Migrations.sol
/**
 * SPDX-License-Identifier:MIT
 */
pragma solidity >=0.4.25 <0.7.0;

contract Migrations {
  address public owner;
  uint public last_completed_migration;

  modifier restricted() {
    if (msg.sender == owner) _;
  }

  constructor() public {
    owner = msg.sender;
  }

  function setCompleted(uint completed) public restricted {
    last_completed_migration = completed;
  }
}

File 3 of 4 : BaseRelayRecipient.sol
// SPDX-License-Identifier:MIT
// solhint-disable no-inline-assembly
pragma solidity ^0.6.2;

import "./interfaces/IRelayRecipient.sol";

/**
 * A base contract to be inherited by any contract that want to receive relayed transactions
 * A subclass must use "_msgSender()" instead of "msg.sender"
 */
abstract contract BaseRelayRecipient is IRelayRecipient {

    /*
     * Forwarder singleton we accept calls from
     */
    address public trustedForwarder;

    function isTrustedForwarder(address forwarder) public override view returns(bool) {
        return forwarder == trustedForwarder;
    }

    /**
     * return the sender of this call.
     * if the call came through our trusted forwarder, return the original sender.
     * otherwise, return `msg.sender`.
     * should be used in the contract anywhere instead of msg.sender
     */
    function _msgSender() internal override virtual view returns (address payable ret) {
        if (msg.data.length >= 24 && isTrustedForwarder(msg.sender)) {
            // At this point we know that the sender is a trusted forwarder,
            // so we trust that the last bytes of msg.data are the verified sender address.
            // extract sender address from the end of msg.data
            assembly {
                ret := shr(96,calldataload(sub(calldatasize(),20)))
            }
        } else {
            return msg.sender;
        }
    }

    /**
     * return the msg.data of this call.
     * if the call came through our trusted forwarder, then the real sender was appended as the last 20 bytes
     * of the msg.data - so this method will strip those 20 bytes off.
     * otherwise, return `msg.data`
     * should be used in the contract instead of msg.data, where the difference matters (e.g. when explicitly
     * signing or hashing the
     */
    function _msgData() internal override virtual view returns (bytes memory ret) {
        if (msg.data.length >= 24 && isTrustedForwarder(msg.sender)) {
            // At this point we know that the sender is a trusted forwarder,
            // we copy the msg.data , except the last 20 bytes (and update the total length)
            assembly {
                let ptr := mload(0x40)
                // copy only size-20 bytes
                let size := sub(calldatasize(),20)
                // structure RLP data as <offset> <length> <bytes>
                mstore(ptr, 0x20)
                mstore(add(ptr,32), size)
                calldatacopy(add(ptr,64), 0, size)
                return(ptr, add(size,64))
            }
        } else {
            return msg.data;
        }
    }
}

File 4 of 4 : IRelayRecipient.sol
// SPDX-License-Identifier:MIT
pragma solidity ^0.6.2;

/**
 * a contract must implement this interface in order to support relayed transaction.
 * It is better to inherit the BaseRelayRecipient as its implementation.
 */
abstract contract IRelayRecipient {

    /**
     * return if the forwarder is trusted to forward relayed transactions to us.
     * the forwarder is required to verify the sender's signature, and verify
     * the call is not a replay.
     */
    function isTrustedForwarder(address forwarder) public virtual view returns(bool);

    /**
     * return the sender of this call.
     * if the call came through our trusted forwarder, then the real sender is appended as the last 20 bytes
     * of the msg.data.
     * otherwise, return `msg.sender`
     * should be used in the contract anywhere instead of msg.sender
     */
    function _msgSender() internal virtual view returns (address payable);

    /**
     * return the msg.data of this call.
     * if the call came through our trusted forwarder, then the real sender was appended as the last 20 bytes
     * of the msg.data - so this method will strip those 20 bytes off.
     * otherwise, return `msg.data`
     * should be used in the contract instead of msg.data, where the difference matters (e.g. when explicitly
     * signing or hashing the
     */
    function _msgData() internal virtual view returns (bytes memory);

    function versionRecipient() external virtual view returns (string memory);
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_trustedForwarder","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousHolder","type":"address"},{"indexed":false,"internalType":"address","name":"currentHolder","type":"address"}],"name":"FlagCaptured","type":"event"},{"inputs":[],"name":"captureTheFlag","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentHolder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"forwarder","type":"address"}],"name":"isTrustedForwarder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trustedForwarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"versionRecipient","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

60806040526000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005257600080fd5b5060405161052c38038061052c8339818101604052602081101561007557600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610456806100d66000396000f3fe608060405234801561001057600080fd5b50600436106100565760003560e01c80624225b81461005b578063239e26f2146100a5578063486ff0cd146100af578063572b6c05146101325780637da0a8771461018e575b600080fd5b6100636101d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100ad6101fe565b005b6100b7610329565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f75780820151818401526020810190506100dc565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101746004803603602081101561014857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610366565b604051808215151515815260200191505060405180910390f35b6101966103bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905061022d6103e4565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507facc718a11fbc93a22905740808767480f9efd07b1c0b0128095790cd1440048d81600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60606040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601860003690501015801561040057506103ff33610366565b5b1561041457601436033560601c905061041c565b33905061041d565b5b9056fea2646970667358221220331b102889f1e0f154dd525106ddb191bb40e7445c8b2db1409ca824307a4ea864736f6c634300060a003300000000000000000000000058f24a413f6fb98f217600703c7086ea22b49c47

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000058f24a413f6fb98f217600703c7086ea22b49c47

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000058f24a413f6fb98f217600703c7086ea22b49c47


Deployed ByteCode Sourcemap

121:580:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;246:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;511:188;;;:::i;:::-;;294:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;465:135:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;427:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;246:41:0;;;;;;;;;;;;;:::o;511:188::-;556:22;581:13;;;;;;;;;;;556:38;;621:12;:10;:12::i;:::-;605:13;;:28;;;;;;;;;;;;;;;;;;649:43;662:14;678:13;;;;;;;;;;;649:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;511:188;:::o;294:106::-;354:13;379:14;;;;;;;;;;;;;;;;;;;294:106;:::o;465:135:2:-;541:4;577:16;;;;;;;;;;;564:29;;:9;:29;;;557:36;;465:135;;;:::o;427:31::-;;;;;;;;;;;;;:::o;852:556::-;914:19;968:2;949:8;;:15;;:21;;:55;;;;;974:30;993:10;974:18;:30::i;:::-;949:55;945:457;;;1325:2;1310:14;1306:22;1293:36;1290:2;1286:44;1279:51;;1261:83;;;1381:10;1374:17;;;;945:457;852:556;;:::o

Swarm Source

ipfs://331b102889f1e0f154dd525106ddb191bb40e7445c8b2db1409ca824307a4ea8
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading