Overview
Max Total Supply
1,803,078.188850848220358901 stUSDT
Holders
152 (0.00%)
Transfers
-
0
Market
Price
$0.99 @ 0.000440 ETH (-0.12%)
Onchain Market Cap
$1,791,922.54
Circulating Supply Market Cap
$61,990,622.00
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
StUSDTProxy
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-07-27
*/
// File contracts/AdminStorage.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
contract AdminStorage {
/**
* @notice Administrator for this contract
*/
address public admin;
/**
* @notice Pending administrator for this contract
*/
address public pendingAdmin;
/**
* @notice Active brains of this contract
*/
address public implementation;
/**
* @notice Pending brains of this contract
*/
address public pendingImplementation;
}
// File contracts/AdminProxy.sol
pragma solidity ^0.8.18;
abstract contract AdminProxy is AdminStorage {
/**
* @notice Emitted when pendingImplementation is changed
*/
event NewPendingImplementation(address oldPendingImplementation, address newPendingImplementation);
/**
* @notice Emitted when pendingImplementation is accepted, which means implementation is updated
*/
event NewImplementation(address oldImplementation, address newImplementation);
/**
* @notice Emitted when pendingAdmin is changed
*/
event NewPendingAdmin(address oldPendingAdmin, address newPendingAdmin);
/**
* @notice Emitted when pendingAdmin is accepted, which means admin is updated
*/
event NewAdmin(address oldAdmin, address newAdmin);
/**
* @dev Delegates execution to an implementation contract.
* It returns to the external caller whatever the implementation returns
* or forwards reverts.
*/
fallback() external payable {
// delegate all other functions to current implementation
(bool success, ) = implementation.delegatecall(msg.data);
assembly {
let free_mem_ptr := mload(0x40)
let size := returndatasize()
returndatacopy(free_mem_ptr, 0, size)
switch success
case 0 { revert(free_mem_ptr, size) }
default { return(free_mem_ptr, size) }
}
}
/*** Admin Functions ***/
function _setPendingImplementation(address newPendingImplementation) public {
require(msg.sender == admin, "SET_PENDING_IMPLEMENTATION_OWNER_CHECK");
address oldPendingImplementation = pendingImplementation;
pendingImplementation = newPendingImplementation;
emit NewPendingImplementation(oldPendingImplementation, pendingImplementation);
}
/**
* @notice Accepts new implementation of comptroller. msg.sender must be pendingImplementation
* @dev Admin function for new implementation to accept it's role as implementation
*/
function _acceptImplementation() public {
// Check caller is pendingImplementation and pendingImplementation ≠ address(0)
require(msg.sender == pendingImplementation && pendingImplementation != address(0),
"ACCEPT_PENDING_IMPLEMENTATION_ADDRESS_CHECK");
// Save current values for inclusion in log
address oldImplementation = implementation;
address oldPendingImplementation = pendingImplementation;
implementation = pendingImplementation;
pendingImplementation = address(0);
emit NewImplementation(oldImplementation, implementation);
emit NewPendingImplementation(oldPendingImplementation, pendingImplementation);
}
/**
* @notice Begins transfer of admin rights. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
* @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
* @param newPendingAdmin New pending admin.
*/
function _setPendingAdmin(address newPendingAdmin) public {
// Check caller = admin
require(msg.sender == admin, "SET_PENDING_ADMIN_OWNER_CHECK");
// Save current value, if any, for inclusion in log
address oldPendingAdmin = pendingAdmin;
// Store pendingAdmin with value newPendingAdmin
pendingAdmin = newPendingAdmin;
// Emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin)
emit NewPendingAdmin(oldPendingAdmin, newPendingAdmin);
}
/**
* @notice Accepts transfer of admin rights. msg.sender must be pendingAdmin
* @dev Admin function for pending admin to accept role and update admin
*/
function _acceptAdmin() public {
// Check caller is pendingAdmin and pendingAdmin ≠ address(0)
require(msg.sender == pendingAdmin && pendingAdmin != address(0), "ACCEPT_ADMIN_PENDING_ADMIN_CHECK");
// Save current values for inclusion in log
address oldAdmin = admin;
address oldPendingAdmin = pendingAdmin;
// Store admin with value pendingAdmin
admin = pendingAdmin;
// Clear the pending value
pendingAdmin = address(0);
emit NewAdmin(oldAdmin, admin);
emit NewPendingAdmin(oldPendingAdmin, pendingAdmin);
}
}
// File contracts/StUSDTProxy.sol
pragma solidity ^0.8.18;
contract StUSDTProxy is AdminProxy {
constructor(address _implementation) {
// Set admin to caller
admin = msg.sender;
implementation = _implementation;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"NewPendingAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldPendingImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newPendingImplementation","type":"address"}],"name":"NewPendingImplementation","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"_acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_acceptImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"_setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingImplementation","type":"address"}],"name":"_setPendingImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b506040516106ea3803806106ea83398101604081905261002f91610062565b60008054336001600160a01b031991821617909155600280549091166001600160a01b0392909216919091179055610092565b60006020828403121561007457600080fd5b81516001600160a01b038116811461008b57600080fd5b9392505050565b610649806100a16000396000f3fe60806040526004361061007b5760003560e01c8063c1e803341161004e578063c1e8033414610195578063e992a041146101aa578063e9c714f2146101ca578063f851a440146101df5761007b565b806326782247146100f9578063396f7b23146101355780635c60da1b14610155578063b71d1a0c14610175575b6002546040516000916001600160a01b03169061009b90839036906105d3565b600060405180830381855af49150503d80600081146100d6576040519150601f19603f3d011682016040523d82523d6000602084013e6100db565b606091505b505090506040513d806000833e8280156100f3578183f35b8183fd5b005b34801561010557600080fd5b50600154610119906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b34801561014157600080fd5b50600354610119906001600160a01b031681565b34801561016157600080fd5b50600254610119906001600160a01b031681565b34801561018157600080fd5b506100f76101903660046105e3565b6101ff565b3480156101a157600080fd5b506100f76102c0565b3480156101b657600080fd5b506100f76101c53660046105e3565b6103f2565b3480156101d657600080fd5b506100f76104b5565b3480156101eb57600080fd5b50600054610119906001600160a01b031681565b6000546001600160a01b0316331461025e5760405162461bcd60e51b815260206004820152601d60248201527f5345545f50454e44494e475f41444d494e5f4f574e45525f434845434b00000060448201526064015b60405180910390fd5b600180546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991015b60405180910390a15050565b6003546001600160a01b0316331480156102e457506003546001600160a01b031615155b6103445760405162461bcd60e51b815260206004820152602b60248201527f4143434550545f50454e44494e475f494d504c454d454e544154494f4e5f414460448201526a44524553535f434845434b60a81b6064820152608401610255565b60028054600380546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a1600354604080516001600160a01b03808516825290921660208301527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d81591016102b4565b6000546001600160a01b0316331461045b5760405162461bcd60e51b815260206004820152602660248201527f5345545f50454e44494e475f494d504c454d454e544154494f4e5f4f574e45526044820152655f434845434b60d01b6064820152608401610255565b600380546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d81591016102b4565b6001546001600160a01b0316331480156104d957506001546001600160a01b031615155b6105255760405162461bcd60e51b815260206004820181905260248201527f4143434550545f41444d494e5f50454e44494e475f41444d494e5f434845434b6044820152606401610255565b60008054600180546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc910160405180910390a1600154604080516001600160a01b03808516825290921660208301527fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991016102b4565b8183823760009101908152919050565b6000602082840312156105f557600080fd5b81356001600160a01b038116811461060c57600080fd5b939250505056fea26469706673582212201ce1a4f1cf1aae5cd645f976c5825aac21cbcafd8456760f5fbd1240c830f29b64736f6c634300081200330000000000000000000000003ece77928fbbac9b6d48db7e2d23498df2cb1f34
Deployed Bytecode
0x60806040526004361061007b5760003560e01c8063c1e803341161004e578063c1e8033414610195578063e992a041146101aa578063e9c714f2146101ca578063f851a440146101df5761007b565b806326782247146100f9578063396f7b23146101355780635c60da1b14610155578063b71d1a0c14610175575b6002546040516000916001600160a01b03169061009b90839036906105d3565b600060405180830381855af49150503d80600081146100d6576040519150601f19603f3d011682016040523d82523d6000602084013e6100db565b606091505b505090506040513d806000833e8280156100f3578183f35b8183fd5b005b34801561010557600080fd5b50600154610119906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b34801561014157600080fd5b50600354610119906001600160a01b031681565b34801561016157600080fd5b50600254610119906001600160a01b031681565b34801561018157600080fd5b506100f76101903660046105e3565b6101ff565b3480156101a157600080fd5b506100f76102c0565b3480156101b657600080fd5b506100f76101c53660046105e3565b6103f2565b3480156101d657600080fd5b506100f76104b5565b3480156101eb57600080fd5b50600054610119906001600160a01b031681565b6000546001600160a01b0316331461025e5760405162461bcd60e51b815260206004820152601d60248201527f5345545f50454e44494e475f41444d494e5f4f574e45525f434845434b00000060448201526064015b60405180910390fd5b600180546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991015b60405180910390a15050565b6003546001600160a01b0316331480156102e457506003546001600160a01b031615155b6103445760405162461bcd60e51b815260206004820152602b60248201527f4143434550545f50454e44494e475f494d504c454d454e544154494f4e5f414460448201526a44524553535f434845434b60a81b6064820152608401610255565b60028054600380546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a910160405180910390a1600354604080516001600160a01b03808516825290921660208301527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d81591016102b4565b6000546001600160a01b0316331461045b5760405162461bcd60e51b815260206004820152602660248201527f5345545f50454e44494e475f494d504c454d454e544154494f4e5f4f574e45526044820152655f434845434b60d01b6064820152608401610255565b600380546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527fe945ccee5d701fc83f9b8aa8ca94ea4219ec1fcbd4f4cab4f0ea57c5c3e1d81591016102b4565b6001546001600160a01b0316331480156104d957506001546001600160a01b031615155b6105255760405162461bcd60e51b815260206004820181905260248201527f4143434550545f41444d494e5f50454e44494e475f41444d494e5f434845434b6044820152606401610255565b60008054600180546001600160a01b038082166001600160a01b031980861682179096559490911690915560408051919092168082526020820184905292917ff9ffabca9c8276e99321725bcb43fb076a6c66a54b7f21c4e8146d8519b417dc910160405180910390a1600154604080516001600160a01b03808516825290921660208301527fca4f2f25d0898edd99413412fb94012f9e54ec8142f9b093e7720646a95b16a991016102b4565b8183823760009101908152919050565b6000602082840312156105f557600080fd5b81356001600160a01b038116811461060c57600080fd5b939250505056fea26469706673582212201ce1a4f1cf1aae5cd645f976c5825aac21cbcafd8456760f5fbd1240c830f29b64736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003ece77928fbbac9b6d48db7e2d23498df2cb1f34
-----Decoded View---------------
Arg [0] : _implementation (address): 0x3ece77928fBbac9B6d48db7E2d23498df2Cb1F34
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003ece77928fbbac9b6d48db7e2d23498df2cb1f34
Deployed Bytecode Sourcemap
5129:194:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1685:14;;:37;;1667:12;;-1:-1:-1;;;;;1685:14:0;;:37;;1667:12;;1713:8;;1685:37;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1666:56;;;1785:4;1779:11;1816:16;1878:4;1875:1;1861:12;1846:37;1906:7;1927:37;;;;2009:4;1995:12;1988:26;1927:37;1957:4;1943:12;1936:26;1899:117;;293:27;;;;;;;;;;-1:-1:-1;293:27:0;;;;-1:-1:-1;;;;;293:27:0;;;;;;-1:-1:-1;;;;;454:32:1;;;436:51;;424:2;409:18;293:27:0;;;;;;;494:36;;;;;;;;;;-1:-1:-1;494:36:0;;;;-1:-1:-1;;;;;494:36:0;;;392:29;;;;;;;;;;-1:-1:-1;392:29:0;;;;-1:-1:-1;;;;;392:29:0;;;3723:518;;;;;;;;;;-1:-1:-1;3723:518:0;;;;;:::i;:::-;;:::i;2671:725::-;;;;;;;;;;;;;:::i;2073:386::-;;;;;;;;;;-1:-1:-1;2073:386:0;;;;;:::i;:::-;;:::i;4430:623::-;;;;;;;;;;;;;:::i;192:20::-;;;;;;;;;;-1:-1:-1;192:20:0;;;;-1:-1:-1;;;;;192:20:0;;;3723:518;3847:5;;-1:-1:-1;;;;;3847:5:0;3833:10;:19;3825:61;;;;-1:-1:-1;;;3825:61:0;;991:2:1;3825:61:0;;;973:21:1;1030:2;1010:18;;;1003:30;1069:31;1049:18;;;1042:59;1118:18;;3825:61:0;;;;;;;;;3986:12;;;-1:-1:-1;;;;;4069:30:0;;;-1:-1:-1;;;;;;4069:30:0;;;;;;;4184:49;;;3986:12;;;;1359:34:1;;;1424:2;1409:18;;1402:43;;;;4184:49:0;;1294:18:1;4184:49:0;;;;;;;;3781:460;3723:518;:::o;2671:725::-;2835:21;;-1:-1:-1;;;;;2835:21:0;2821:10;:35;:74;;;;-1:-1:-1;2860:21:0;;-1:-1:-1;;;;;2860:21:0;:35;;2821:74;2813:143;;;;-1:-1:-1;;;2813:143:0;;1658:2:1;2813:143:0;;;1640:21:1;1697:2;1677:18;;;1670:30;1736:34;1716:18;;;1709:62;-1:-1:-1;;;1787:18:1;;;1780:41;1838:19;;2813:143:0;1456:407:1;2813:143:0;3050:14;;;3110:21;;;-1:-1:-1;;;;;3110:21:0;;;-1:-1:-1;;;;;;3144:38:0;;;;;;;;3195:34;;;;;;;3247:52;;;3050:14;;;;1359:34:1;;;1424:2;1409:18;;1402:43;;;3050:14:0;3110:21;3247:52;;1294:18:1;3247:52:0;;;;;;;3366:21;;3315:73;;;-1:-1:-1;;;;;1377:15:1;;;1359:34;;3366:21:0;;;1424:2:1;1409:18;;1402:43;3315:73:0;;1294:18:1;3315:73:0;1147:304:1;2073:386:0;2182:5;;-1:-1:-1;;;;;2182:5:0;2168:10;:19;2160:70;;;;-1:-1:-1;;;2160:70:0;;2070:2:1;2160:70:0;;;2052:21:1;2109:2;2089:18;;;2082:30;2148:34;2128:18;;;2121:62;-1:-1:-1;;;2199:18:1;;;2192:36;2245:19;;2160:70:0;1868:402:1;2160:70:0;2278:21;;;-1:-1:-1;;;;;2312:48:0;;;-1:-1:-1;;;;;;2312:48:0;;;;;;;2378:73;;;2278:21;;;;1359:34:1;;;1424:2;1409:18;;1402:43;;;;2378:73:0;;1294:18:1;2378:73:0;1147:304:1;4430:623:0;4567:12;;-1:-1:-1;;;;;4567:12:0;4553:10;:26;:56;;;;-1:-1:-1;4583:12:0;;-1:-1:-1;;;;;4583:12:0;:26;;4553:56;4545:101;;;;-1:-1:-1;;;4545:101:0;;2477:2:1;4545:101:0;;;2459:21:1;;;2496:18;;;2489:30;2555:34;2535:18;;;2528:62;2607:18;;4545:101:0;2275:356:1;4545:101:0;4712:16;4731:5;;;4773:12;;-1:-1:-1;;;;;4773:12:0;;;-1:-1:-1;;;;;;4846:20:0;;;;;;;;4915:25;;;;;;;4958;;;4731:5;;;;1359:34:1;;;1424:2;1409:18;;1402:43;;;4731:5:0;4773:12;4958:25;;1294:18:1;4958:25:0;;;;;;;5032:12;;4999:46;;;-1:-1:-1;;;;;1377:15:1;;;1359:34;;5032:12:0;;;1424:2:1;1409:18;;1402:43;4999:46:0;;1294:18:1;4999:46:0;1147:304:1;14:271;197:6;189;184:3;171:33;153:3;223:16;;248:13;;;223:16;14:271;-1:-1:-1;14:271:1:o;498:286::-;557:6;610:2;598:9;589:7;585:23;581:32;578:52;;;626:1;623;616:12;578:52;652:23;;-1:-1:-1;;;;;704:31:1;;694:42;;684:70;;750:1;747;740:12;684:70;773:5;498:286;-1:-1:-1;;;498:286:1:o
Swarm Source
ipfs://1ce1a4f1cf1aae5cd645f976c5825aac21cbcafd8456760f5fbd1240c830f29b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)