Contract 0x8bd778b12b15416359a227f0533ce2d91844e1ed 2

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x8ea68b6ed0dd513b2f29b9fda14d34cec2759cebc5bab545f75e27850ec19e0e97218802021-08-03 19:57:391 hr 36 mins ago0x8860e700e0d0b5dc3e3e1053cb11ba2300724577 IN  SakeSwap: SAKE Token0 BNB0.000236335
0x9e066d8e8f3a427bacb6358dbd251dfecb6c788b2da609df96ead11b99a8ac2797191192021-08-03 17:37:103 hrs 56 mins ago0x69e0e2b3d523d3b247d798a49c3fa022a46dd6bd IN  SakeSwap: SAKE Token0 BNB0.000236335
0xe13aed746c3322e0cbe91734688c07ec25d3d4b725223f28aafdbeb93eb3cb2797151722021-08-03 14:09:437 hrs 24 mins ago0xa4cfdf288a319b68c94d916eaa04ece70fae9f25 IN  SakeSwap: SAKE Token0 BNB0.000236335
0x642797caf10db7885c87e86ba83addb29c091fa8ae1835d57eb9c552d3b8bde797089552021-08-03 8:43:3112 hrs 50 mins ago0x30e6c66c2bfcde06d3a8d50d71d55f07a56e5c55 IN  SakeSwap: SAKE Token0 BNB0.000236335
0x2464e91db6a59049f9175c1ea328ed288448fcf2bda782aca4bb7538d00ab1d797076342021-08-03 7:34:1313 hrs 59 mins ago0x51722c1720d50a627986e87d8f0c8faf80f0a8fd IN  SakeSwap: SAKE Token0 BNB0.000236335
0x2dfbf8eaa5973d7bbb783bf97a90f6547380806ab48c6592a7a54463901df72e97071722021-08-03 7:06:2014 hrs 27 mins ago0xc0b40aeaab87c103fe5ccd5615c011fe3a8da7fe IN  SakeSwap: SAKE Token0 BNB0.0002827695
0x2a3fa30274ed4c8cee87188e9bd531950b52a5b162ab017a94a7f0f72e4f904c97064062021-08-03 6:22:4615 hrs 11 mins ago0x693e608eb4e1ecb3107aa628f0b4f867eebbaa16 IN  SakeSwap: SAKE Token0 BNB0.000236335
0x21c29214cf7e6a30a2e4adc7570c16ab3a68959c823b8bf2c31230ce94cf964297040992021-08-03 4:04:4717 hrs 29 mins ago0x2cd5a9205e07951e35ff7423a6be36063903dc6d IN  SakeSwap: SAKE Token0 BNB0.000236335
0xed7c24cdfbe147757859237a3bd9b046117bd4c0d916831904b93b8e9ab8b6c997037432021-08-03 3:44:3217 hrs 49 mins ago0x7122c91049511b58a14ce2ce10f1acf318cc51d0 IN  SakeSwap: SAKE Token0 BNB0.000236335
0xe50a29950fef88c03baf0083c3b2668a5060c94825d673140445d2a246463e7c96965322021-08-02 21:28:201 day 5 mins ago0xc7a0086fadbabe7204bedca0be43a901405c9430 IN  SakeSwap: SAKE Token0 BNB0.000236335
0x6915c7c6a8addf8318420f6907fed698602f3badfc05d008531a939d3dcaf53f96924022021-08-02 17:58:091 day 3 hrs ago0xa7af9a50941ae23fcc294a2c6398e061337e39c7 IN  SakeSwap: SAKE Token0 BNB0.000236335
0x9471cc005ce3213b93759301bb01c28b0f5d829678d8894460e9c59ff0647f4696920282021-08-02 17:39:261 day 3 hrs ago0x54554c1615a6afe831ff73851e68b10831933b3a IN  SakeSwap: SAKE Token0 BNB0.000127285
0x4794a5231aa984bf25b9ee7a7a5e378b7a3988bff6faae1663227d110a972ec596907162021-08-02 16:31:101 day 5 hrs ago0x514a082c4b28fab0a5cb693bd0f9e44dcecb4907 IN  SakeSwap: SAKE Token0 BNB0.000202285
0x79e66069964ee4aa0d04ab315813606f60acb94842237298c315848af10ae64396869872021-08-02 13:12:181 day 8 hrs ago0xa83bfa295e842286ae745d1af5122bcea2094c42 IN  SakeSwap: SAKE Token0 BNB0.000236335
0x64dc2d1746e22bace96b8dc03f7808072681a6efc7a294c400f8b0ba20f51fc496857332021-08-02 12:07:411 day 9 hrs ago0x4f0d72a1978e4039129521b15958a75683dff4aa IN  SakeSwap: SAKE Token0 BNB0.000236335
0x90b82205d7307a90fca7f5808c65f4797fd7ea9f6f9ae09ce50fe983a6de151496834202021-08-02 10:07:151 day 11 hrs ago0xb949523c6e57ae6682c210a2a13b6fdcab8e22b0 IN  SakeSwap: SAKE Token0 BNB0.000236335
0x182d46154eea253e445a6ae4bda5e529f80372906180172ad0097c4d58a0124296764322021-08-02 4:08:541 day 17 hrs ago0x3fdf750fb555583374b26a5ff476abbd7f6e6fb5 IN  SakeSwap: SAKE Token0 BNB0.0003051455
0xc85474a22b0d69ecd540eae1bf2f26d39c60bdf889adf53cd368851716dadc1a96697122021-08-01 22:23:511 day 23 hrs ago0x3b0422bc9d683135ca744a3bd511221d0b52009d IN  SakeSwap: SAKE Token0 BNB0.000236335
0xd3130570b2a9ca2f21381686dd20051435497096eb7c61292bd03e863ded376f96661242021-08-01 19:19:452 days 2 hrs ago0xc0b2b41e79caca1b3772b15ff7f6eff9355eaf67 IN  SakeSwap: SAKE Token0 BNB0.000202405
0x5dbcd0ae2bf5395df20b0b1292f03e6ca0da9c9e5bd63a256e4e91dd89fcaa5596587672021-08-01 12:48:272 days 8 hrs ago0xee29c5fce0cf54b429b9ca5865be7774ad201634 IN  SakeSwap: SAKE Token0 BNB0.000236335
0xa1fe754d7d1c0510f40bd352d79f70fb17513f0eb2a7f266b8fbf424ae03009b96582782021-08-01 12:22:342 days 9 hrs ago0xb7379b165895f148aef801b71cd554b67a8a1909 IN  SakeSwap: SAKE Token0 BNB0.000236335
0x71292ccae8671f23f3f46c174f55af2e8dab283bd23cafdafa2f3886c4d7f84696410092021-07-31 21:36:522 days 23 hrs ago0x3910f2815b8da948d855ba9af9f42cf968f84ebf IN  SakeSwap: SAKE Token0 BNB0.000236335
0x43ba91a6f4002f73287111961dcefca7df73def42ed0cc2d0d2e279e5b63631e96402512021-07-31 20:58:553 days 35 mins ago0x91a797806855a9c036122dd33ee9457f9ffe6f34 IN  SakeSwap: SAKE Token0 BNB0.000236335
0xf157eec652ff8efc9d5189134b9f80a51dd785fc36ef054017988fe06be31ba296380282021-07-31 19:04:213 days 2 hrs ago0xfd357d7ed010f383f0ae256651c2f76104f6a2df IN  SakeSwap: SAKE Token0 BNB0.000079325
0x635939745d276a565b72287013046670ca6fd83458c1d3a0ec60cdc2c9eaf41396380232021-07-31 19:04:063 days 2 hrs ago0xfd357d7ed010f383f0ae256651c2f76104f6a2df IN  SakeSwap: SAKE Token0 BNB0.000079325
[ Download CSV Export 

OVERVIEW

SAKE is the governance token in DeFi that supports both spot market and futures market with SakeSwap's AMM, DEX and SakePerp Perpetual Contract.

Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xc824e773beb6b594d9c128b8aa9cd0b41987ffd1d21684ed0d0e3048aa99350059346952021-03-23 15:02:59133 days 6 hrs ago SakeSwap: Deployer  Contract Creation0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenProxy

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at BscScan.com on 2021-03-23
*/

// File: contracts\upgradeability\Proxy.sol

pragma solidity 0.7.5;

/**
 * @title Proxy
 * @dev Gives the possibility to delegate any call to a foreign implementation.
 */
abstract contract Proxy {
    /**
     * @dev Tells the address of the implementation where every call will be delegated.
     * @return address of the implementation to which it will be delegated
     */
    function implementation() public view virtual returns (address);

    /**
     * @dev Fallback function allowing to perform a delegatecall to the given implementation.
     * This function will return whatever the implementation call returns
     */
    fallback() external payable {
        // solhint-disable-previous-line no-complex-fallback
        address _impl = implementation();
        require(_impl != address(0));
        assembly {
            /*
                0x40 is the "free memory slot", meaning a pointer to next slot of empty memory. mload(0x40)
                loads the data in the free memory slot, so `ptr` is a pointer to the next slot of empty
                memory. It's needed because we're going to write the return data of delegatecall to the
                free memory slot.
            */
            let ptr := mload(0x40)
            /*
                `calldatacopy` is copy calldatasize bytes from calldata
                First argument is the destination to which data is copied(ptr)
                Second argument specifies the start position of the copied data.
                    Since calldata is sort of its own unique location in memory,
                    0 doesn't refer to 0 in memory or 0 in storage - it just refers to the zeroth byte of calldata.
                    That's always going to be the zeroth byte of the function selector.
                Third argument, calldatasize, specifies how much data will be copied.
                    calldata is naturally calldatasize bytes long (same thing as msg.data.length)
            */
            calldatacopy(ptr, 0, calldatasize())
            /*
                delegatecall params explained:
                gas: the amount of gas to provide for the call. `gas` is an Opcode that gives
                    us the amount of gas still available to execution

                _impl: address of the contract to delegate to

                ptr: to pass copied data

                calldatasize: loads the size of `bytes memory data`, same as msg.data.length

                0, 0: These are for the `out` and `outsize` params. Because the output could be dynamic,
                        these are set to 0, 0 so the output data will not be written to memory. The output
                        data will be read using `returndatasize` and `returdatacopy` instead.

                result: This will be 0 if the call fails and 1 if it succeeds
            */
            let result := delegatecall(gas(), _impl, ptr, calldatasize(), 0, 0)
            /*

            */
            /*
                ptr current points to the value stored at 0x40,
                because we assigned it like ptr := mload(0x40).
                Because we use 0x40 as a free memory pointer,
                we want to make sure that the next time we want to allocate memory,
                we aren't overwriting anything important.
                So, by adding ptr and returndatasize,
                we get a memory location beyond the end of the data we will be copying to ptr.
                We place this in at 0x40, and any reads from 0x40 will now read from free memory
            */
            mstore(0x40, add(ptr, returndatasize()))
            /*
                `returndatacopy` is an Opcode that copies the last return data to a slot. `ptr` is the
                    slot it will copy to, 0 means copy from the beginning of the return data, and size is
                    the amount of data to copy.
                `returndatasize` is an Opcode that gives us the size of the last return data. In this case, that is the size of the data returned from delegatecall
            */
            returndatacopy(ptr, 0, returndatasize())

            /*
                if `result` is 0, revert.
                if `result` is 1, return `size` amount of data from `ptr`. This is the data that was
                copied to `ptr` from the delegatecall return data
            */
            switch result
                case 0 {
                    revert(ptr, returndatasize())
                }
                default {
                    return(ptr, returndatasize())
                }
        }
    }
}

// File: contracts\upgradeable_contracts\modules\factory\TokenProxy.sol

pragma solidity 0.7.5;


interface IPermittableTokenVersion {
    function version() external pure returns (string memory);
}

/**
 * @title TokenProxy
 * @dev Helps to reduces the size of the deployed bytecode for automatically created tokens, by using a proxy contract.
 */
contract TokenProxy is Proxy {
    // storage layout is copied from PermittableToken.sol
    string internal name;
    string internal symbol;
    uint8 internal decimals;
    mapping(address => uint256) internal balances;
    uint256 internal totalSupply;
    mapping(address => mapping(address => uint256)) internal allowed;
    address internal owner;
    bool internal mintingFinished;
    address internal bridgeContractAddr;
    // string public constant version = "1";
    // solhint-disable-next-line var-name-mixedcase
    bytes32 internal DOMAIN_SEPARATOR;
    // bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb;
    mapping(address => uint256) internal nonces;
    mapping(address => mapping(address => uint256)) internal expirations;

    /**
     * @dev Creates a non-upgradeable token proxy for PermitableToken.sol, initializes its eternalStorage.
     * @param _tokenImage address of the token image used for mirroring all functions.
     * @param _name token name.
     * @param _symbol token symbol.
     * @param _decimals token decimals.
     * @param _chainId chain id for current network.
     * @param _owner address of the owner for this contract.
     */
    constructor(
        address _tokenImage,
        string memory _name,
        string memory _symbol,
        uint8 _decimals,
        uint256 _chainId,
        address _owner
    ) {
        string memory version = IPermittableTokenVersion(_tokenImage).version();

        assembly {
            // EIP 1967
            // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
            sstore(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc, _tokenImage)
        }
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        owner = _owner; // _owner == HomeOmnibridge/ForeignOmnibridge mediator
        bridgeContractAddr = _owner;
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                keccak256(bytes(_name)),
                keccak256(bytes(version)),
                _chainId,
                address(this)
            )
        );
    }

    /**
     * @dev Retrieves the implementation contract address, mirrored token image.
     * @return impl token image address.
     */
    function implementation() public view override returns (address impl) {
        assembly {
            impl := sload(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc)
        }
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_tokenImage","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint256","name":"_chainId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b5060405161057d38038061057d833981810160405260c081101561003357600080fd5b81516020830180516040519294929383019291908464010000000082111561005a57600080fd5b90830190602082018581111561006f57600080fd5b825164010000000081118282018810171561008957600080fd5b82525081516020918201929091019080838360005b838110156100b657818101518382015260200161009e565b50505050905090810190601f1680156100e35780820380516001836020036101000a031916815260200191505b506040526020018051604051939291908464010000000082111561010657600080fd5b90830190602082018581111561011b57600080fd5b825164010000000081118282018810171561013557600080fd5b82525081516020918201929091019080838360005b8381101561016257818101518382015260200161014a565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b50604081815260208301518382015160609485015163054fd4d560e41b8552925191965094509092916001600160a01b038916916354fd4d5091600480820192600092909190829003018186803b1580156101e957600080fd5b505afa1580156101fd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561022657600080fd5b810190808051604051939291908464010000000082111561024657600080fd5b90830190602082018581111561025b57600080fd5b825164010000000081118282018810171561027557600080fd5b82525081516020918201929091019080838360005b838110156102a257818101518382015260200161028a565b50505050905090810190601f1680156102cf5780820380516001836020036101000a031916815260200191505b506040525050507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc88905586519091506103109060009060208901906103e4565b5084516103249060019060208801906103e4565b506002805460ff90951660ff1990951694909417909355600680546001600160a01b039092166001600160a01b03199283168117909155600780549092161790558351602094850120825192850192909220604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8188015280820194909452606084019190915260808301919091523060a0808401919091528151808403909101815260c090920190528051920191909120600855506104859050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261041a5760008555610460565b82601f1061043357805160ff1916838001178555610460565b82800160010185558215610460579182015b82811115610460578251825591602001919060010190610445565b5061046c929150610470565b5090565b5b8082111561046c5760008155600101610471565b60ea806104936000396000f3fe608060405260043610601c5760003560e01c80635c60da1b146061575b60006024608f565b90506001600160a01b038116603857600080fd5b60405136600082376000803683855af43d82016040523d6000833e808015605d573d83f35b3d83fd5b348015606c57600080fd5b506073608f565b604080516001600160a01b039092168252519081900360200190f35b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc549056fea264697066735822122070d14273ca364f24589d9b85708e9dc89b77248a32d81d68f9876feaabeeb24264736f6c63430007050033000000000000000000000000e219ec464ffabbe70d3bf192dc8c98aa5846b4f600000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000038000000000000000000000000f93c01934e54f8975c92e102d5b2d61111e699a4000000000000000000000000000000000000000000000000000000000000000953616b65546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000453414b4500000000000000000000000000000000000000000000000000000000

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

000000000000000000000000e219ec464ffabbe70d3bf192dc8c98aa5846b4f600000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000038000000000000000000000000f93c01934e54f8975c92e102d5b2d61111e699a4000000000000000000000000000000000000000000000000000000000000000953616b65546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000453414b4500000000000000000000000000000000000000000000000000000000

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 000000000000000000000000e219ec464ffabbe70d3bf192dc8c98aa5846b4f6
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000038
Arg [5] : 000000000000000000000000f93c01934e54f8975c92e102d5b2d61111e699a4
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [7] : 53616b65546f6b656e0000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [9] : 53414b4500000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

5055:2694:0:-:0;;;;;;;;;;;;;;;;;;756:13;772:16;:14;:16::i;:::-;756:32;-1:-1:-1;;;;;;807:19:0;;799:28;;;;;;1265:4;1259:11;2046:14;2043:1;2038:3;2025:36;2983:1;2980;2964:14;2959:3;2952:5;2945;2932:53;3673:16;3668:3;3664:26;3658:4;3651:40;4185:16;4182:1;4177:3;4162:40;4469:6;4493:78;;;;4632:16;4627:3;4620:29;4493:78;4535:16;4530:3;4523:29;7542:204;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;7542:204:0;;;;;;;;;;;;;;;7661:66;7655:73;;7632:107::o

Swarm Source

ipfs://70d14273ca364f24589d9b85708e9dc89b77248a32d81d68f9876feaabeeb242
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.