Contract 0x4ECaBa5870353805a9F068101A40E0f32ed605C6 9

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9e4123bbe6435cadb91bd3762cb27a867111f3a8cb9f3244e6b8f8be3d6d0da8Approve282733802023-06-03 19:35:006 mins ago0xa43f4473368dc16cbbf05949570b277b4e1613d8 IN  Tether: USDT Token0 xDAI0.001072707479
0xba78b4958a8f486cf799055bbdc53c5ef2890466bec221b415da3f734c3a622aApprove282731182023-06-03 19:12:1529 mins ago0x3a0eb6b4cfa5e093c9dc4620cb12276b3e7d6b3e IN  Tether: USDT Token0 xDAI0.000672204
0x56375a07cde7c130c824c16101548accb10c944809f3dbc0530b409a9b3e19c5Approve282730352023-06-03 19:05:0536 mins ago0x206abd9f3fe3a26339231590a5a1ad3e82f302af IN  Tether: USDT Token0 xDAI0.000941205599
0xeb994f7a03b4c5663e1fbb4a4976e520e2f7b4f072b7645ad245abac75838194Approve282727222023-06-03 18:37:401 hr 3 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x01d54ffc0dd6cd1d8c8051b7d6d8a8e60baf6bb902551c254cf5fc3581ae05ecApprove282727102023-06-03 18:36:401 hr 4 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x902aa5a50ea03f8e5a6dcf16743ef9040547a9caa0598461812284b32da19d1eApprove282727052023-06-03 18:36:151 hr 5 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0xe330328ae4cbca415c07006499d85a69a64f62ab5b902d25c0a26eabaebf5366Approve282727012023-06-03 18:35:501 hr 5 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x678560edca933af60791f78d8058a01231db8680b7f00a03351aa809f14dc7c7Approve282726952023-06-03 18:35:151 hr 6 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x3851e8f6945e572c1db3a2108f2d4ce1679c703789bff5229d654570017c4385Approve282726872023-06-03 18:34:351 hr 6 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x09ead05e245a12de6758f8dc370637829e5d1431783b9ab55b3964f54237296cApprove282726812023-06-03 18:34:001 hr 7 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0xa153ead591fb1f2029523ca03ce91ef96bb15bde175b405d6394b61470509340Approve282726732023-06-03 18:33:201 hr 8 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x4ae334bd76390b75efe02a29c5e5454c39b870bff6ac8c6f496e87f8d3fea87eApprove282726612023-06-03 18:32:151 hr 9 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x2de7595f9d62903038908f0c6afb632214db321994661c145e2e40bf123ba9b1Approve282726522023-06-03 18:31:301 hr 9 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x106423c3080e56347c08fafa56ddf65314256ef4fb7628b448bdc84735103cb1Approve282726452023-06-03 18:30:551 hr 10 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x0eafe7c4d1bae466f130d4199571a399c0942729d2ca0c423111be1275116335Approve282726372023-06-03 18:30:151 hr 11 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0xf82b19bdb8eb21ae23fef961feb99ea1188b4d996941ac0a4edd76cfb987c038Approve282726312023-06-03 18:29:451 hr 11 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0xf720a2bab384f16f98eaa715c6343f0d5c18ad63fc732037178bab5cc53aae0cApprove282726262023-06-03 18:29:201 hr 12 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x7b4dd2f5834564e93aaf216294bf1fffd1d115dd40dbaddb081b888e3709eaf5Approve282726222023-06-03 18:29:001 hr 12 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x6b3fdb66359a634c68e1cf48ae44e79db9d09eb0206cd2838b50d7afcc6904ebApprove282726202023-06-03 18:28:501 hr 12 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x72d7b0e905233e3be1679b259eeed4487fcb6ad26e86f932becce2c16b17f4ffApprove282726152023-06-03 18:28:251 hr 12 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0xd18d231876052c0efeee48a881cd17055db66c141722e0430e524a277ec1bed7Approve282726072023-06-03 18:27:451 hr 13 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x9c5978e9a8068fc45915b942838a133915836c41e0dff26967e1d82b115b41e3Approve282726032023-06-03 18:27:251 hr 13 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0x3fc1641b56d7dcec0b31bfde355f3edbe70f69f5a1b4058c669f1b4538b7fb6bApprove282726002023-06-03 18:27:051 hr 14 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0xc7185cdf78551333ac95ca0e3b031a3bece319b4803d6c9655063733e80a4119Approve282725972023-06-03 18:26:451 hr 14 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
0xfd94dddfc0e1e181711d0248940418a1f9dc57419ade36fb682959d9fa99106cApprove282725932023-06-03 18:26:201 hr 15 mins ago0x92234af8ef2dd7cd28e7de63137f9bb7ed37dac0 IN  Tether: USDT Token0 xDAI0.0003373924
[ Download CSV Export 

OVERVIEW

Tether gives you the joint benefits of open blockchain technology and traditional currency by converting your cash into a stable digital currency equivalent.

Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x2ef3e08aee0785458e967d59eb49c238136da161a21687660447f02b66edcaca116147662020-08-22 21:53:201014 days 21 hrs ago Gnosis: xDai Bridge  Contract Creation0 xDAI
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenProxy

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at gnosisscan.io on 2022-12-27
*/

pragma solidity 0.4.24;

/**
 * @title Proxy
 * @dev Gives the possibility to delegate any call to a foreign implementation.
 */
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
    */
    /* solcov ignore next */
    function implementation() public view returns (address);

    /**
    * @dev Fallback function allowing to perform a delegatecall to the given implementation.
    * This function will return whatever the implementation call returns
    */
    function() public 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)
                }
        }
    }
}

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

/**
* @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";
    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 mirrowing all functions.
    * @param _name token name.
    * @param _symbol token symbol.
    * @param _decimals token decimals.
    * @param _chainId chain id for current network.
    */
    constructor(address _tokenImage, string memory _name, string memory _symbol, uint8 _decimals, uint256 _chainId)
        public
    {
        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 = msg.sender; // msg.sender == HomeMultiAMBErc20ToErc677 mediator
        bridgeContractAddr = msg.sender;
        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, mirrowed token image.
    * @return token image address.
    */
    function implementation() public view returns (address impl) {
        assembly {
            impl := sload(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc)
        }
    }
}

Contract ABI

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

608060405234801561001057600080fd5b50604051610548380380610548833981016040818152825160208401518285015160608087015160808801517f54fd4d500000000000000000000000000000000000000000000000000000000088529551949793840196929093019492939091600160a060020a038816916354fd4d509160048082019260009290919082900301818387803b1580156100a257600080fd5b505af11580156100b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156100df57600080fd5b8101908080516401000000008111156100f757600080fd5b8201602081018481111561010a57600080fd5b815164010000000081118282018710171561012457600080fd5b50507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8a90558851909450610163935060009250602089019150610380565b508351610177906001906020870190610380565b506002805460ff851660ff1990911617905560068054600160a060020a031990811633908117909255600780549091169091179055604080517f454950373132446f6d61696e28737472696e67206e616d652c737472696e672081527f76657273696f6e2c75696e7432353620636861696e49642c61646472657373206020808301919091527f766572696679696e67436f6e74726163742900000000000000000000000000008284015291519081900360520181208751909288929182918401908083835b6020831061025c5780518252601f19909201916020918201910161023d565b51815160209384036101000a6000190180199092169116179052604051919093018190038120875190955087945090928392508401908083835b602083106102b55780518252601f199092019160209182019101610296565b51815160209384036101000a6000190180199092169116179052604080519290940182900382208282019890985281840196909652606081019690965250608085018790523060a0808701919091528151808703909101815260c09095019081905284519093849350850191508083835b602083106103455780518252601f199092019160209182019101610326565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091206008555061041b975050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106103c157805160ff19168380011785556103ee565b828001600101855582156103ee579182015b828111156103ee5782518255916020019190600101906103d3565b506103fa9291506103fe565b5090565b61041891905b808211156103fa5760008155600101610404565b90565b61011e8061042a6000396000f300608060405260043610603e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416635c60da1b81146092575b6000604660cd565b905073ffffffffffffffffffffffffffffffffffffffff81161515606957600080fd5b60405136600082376000803683855af43d82016040523d6000833e808015608e573d83f35b3d83fd5b348015609d57600080fd5b5060a460cd565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54905600a165627a7a723058205d442d0b224de4b205ca61128d615099ba3021d9d5d21bc18d96bc5e201685800029000000000000000000000000f8d1677c8a0c961938bf2f9adc3f3cfda759a9d900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000001254657468657220555344206f6e2078446169000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553445400000000000000000000000000000000000000000000000000000000

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

000000000000000000000000f8d1677c8a0c961938bf2f9adc3f3cfda759a9d900000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000001254657468657220555344206f6e2078446169000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553445400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _tokenImage (address): 0xf8d1677c8a0c961938bf2f9adc3f3cfda759a9d9
Arg [1] : _name (string): Tether USD on xDai
Arg [2] : _symbol (string): USDT
Arg [3] : _decimals (uint8): 6
Arg [4] : _chainId (uint256): 100

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 000000000000000000000000f8d1677c8a0c961938bf2f9adc3f3cfda759a9d9
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [6] : 54657468657220555344206f6e20784461690000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [8] : 5553445400000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

4887:2504:0:-;;;;;;;;;;;;;;;;;;;;715:13;731:16;:14;:16::i;:::-;715:32;-1:-1:-1;766:19:0;;;;;758:28;;;;;;1224:4;1218:11;2005:12;2002:1;1997:3;1984:34;2936:1;2933;2919:12;2914:3;2907:5;2902:3;2889:49;3626:14;3621:3;3617:24;3611:4;3604:38;4136:14;4133:1;4128:3;4113:38;4418:6;4442:76;;;;4579:14;4574:3;4567:27;4442:76;4484:14;4479:3;4472:27;7193:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7193:195:0;;;;;;;;;;;;;;;;;;;;;;;;7303:66;7297:73;;7274:107::o

Swarm Source

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