Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| 0x60806040 | 21538572 | 428 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PrisonToken
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 999999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: WTFPL
/*
_________________________
|| || || ||
|| ||, , ,|| ||
|| (||/|/(\||/ ||
|| ||| _'_`||| ||
|| || o o || ||
|| (|| - `||) ||
|| || = || ||
|| ||\___/|| ||
||___||) , (||___||
/||---||-\_/-||---||\
/ ||--_||_____||_--|| \
(_(||)-| $PRISON |-(||)_)
-------------------------
DEV1 0xf798e420ee4e25e3e1
ee72eca57fdc73d96f77ccae9
87b9ba7af49b46d96fabf
When we are slandered, we
answer kindly. We have
become the scum of the
earth, the garbage of the
world--right up to this
moment.
[1 Corinthians 4:13]
-------------------------
DEV2 0x11cfabfab712a63c52
23153d7891ffea37dfb347c36
f7e112365db6bffcd5e55
I testify that there is
no god but Allah ❤️
-------------------------
CODE IS LAW: If you find
a bug and exploit it, we
will not press charges.
If you decide to share
the bug with us (and not
exploit), we will pay a
10% bounty on the amount
the exploit would get.
Made with love in prison,
on an iPhone 7. It was
not easy lol.
-------------------------
THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY
OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT
NOT LIMITED TO THE
WARRANTIES OF
MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE
AND NONINFRINGEMENT. IN
NO EVENT SHALL THE
AUTHORS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT
OR OTHERWISE, ARISING
FROM, OUT OF OR IN
CONNECTION WITH THE
SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE
SOFTWARE.
*/
pragma solidity 0.8.28;
contract PrisonToken {
bytes32 constant _adminStorage = 0xf67be69b6ad25aabeffc62bd19264f3c30ad964894b5fc1e74e609a144194c7c;
bytes32 constant _allowanceStorage = 0xadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb90157;
bytes32 constant _balanceStorage = 0x146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845;
bytes32 constant _chainIdStorage = 0xd5cae22d506e84df30c510c1b8256278721345fcf8d4be64743ee4aa81e12864;
bytes32 constant _domainSeperatorStorage = 0x3027cd467a8723dc03f0378c9f873197ce7c4fbb7bf54996a65245113e26d96d;
bytes32 constant _nonceStorage = 0x4f77ee05ca2adc851fd5746b7fb0ecd7626242920d991bf3b91859dec213863a;
bytes32 constant _supplyStorage = 0x6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac473;
modifier admin() {
_onlyAdmin(msg.sender);
_;
}
fallback() external payable {
assembly ("memory-safe") {
revert(0, 0)
}
}
receive() external payable {
assembly ("memory-safe") {
revert(0, 0)
}
}
constructor() {
assembly ("memory-safe") {
sstore(_chainIdStorage, chainid())
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0xA0))
mstore(ptr, 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f)
mstore(add(ptr, 0x20), 0x1af0097cc103f3ba97f08c6bac2006fc42563cdbe9668c6d534c6be342fbc80d)
mstore(add(ptr, 0x40), 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6)
mstore(add(ptr, 0x60), chainid())
mstore(add(ptr, 0x80), address())
let typeHash := keccak256(ptr, 0xA0)
sstore(_domainSeperatorStorage, typeHash)
}
}
function allowance(address _owner, address _spender) external view returns (uint256 _remaining) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x60))
mstore(ptr, _allowanceStorage)
mstore(add(ptr, 0x20), _owner)
mstore(add(ptr, 0x40), _spender)
let slot := sub(keccak256(ptr, 0x60), 0x01)
_remaining := sload(slot)
}
}
function balanceOf(address _owner) external view returns (uint256) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x60))
mstore(ptr, _balanceStorage)
mstore(add(ptr, 0x20), _owner)
let slot := sub(keccak256(ptr, 0x40), 0x01)
mstore(add(ptr, 0x40), sload(slot))
return(add(ptr, 0x40), 0x20)
}
}
function decimals() external pure returns (uint8) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x20))
mstore(ptr, 0x12)
return(ptr, 0x20)
}
}
function DOMAIN_SEPARATOR() external view returns (bytes32 domainSeperator) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0xA0))
mstore(ptr, 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f)
mstore(add(ptr, 0x20), 0x1af0097cc103f3ba97f08c6bac2006fc42563cdbe9668c6d534c6be342fbc80d)
mstore(add(ptr, 0x40), 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6)
mstore(add(ptr, 0x60), chainid())
mstore(add(ptr, 0x80), address())
domainSeperator := keccak256(ptr, 0xA0)
}
}
function eip712Domain()
external
view
returns (
bytes1 fields,
string memory domainName,
string memory domainVersion,
uint256 chainId,
address verifyingContract,
bytes32 salt,
uint256[] memory extensions
)
{
return (0x0F, "Prison Token", "1", block.chainid, address(this), bytes32(0), new uint256[](0));
}
function getAdmin() external view returns (address _account) {
assembly ("memory-safe") {
_account := sload(_adminStorage)
}
}
function name() external pure returns (string memory) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x60))
mstore(ptr, 0x20)
mstore(add(ptr, 0x20), 0x0c)
mstore(add(ptr, 0x40), "Prison Token")
return(ptr, 0x60)
}
}
function nonces(address account) external view returns (uint256 nonce) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x40))
mstore(ptr, _nonceStorage)
mstore(add(ptr, 0x20), account)
let slot := sub(keccak256(ptr, 0x40), 0x01)
nonce := sload(slot)
}
}
function supportsInterface(bytes4 _id) external pure returns (bool _success) {
assembly ("memory-safe") {
switch _id
case 0x01ffc9a7 {
_success := true
}
case 0x36372b07 {
_success := true
}
case 0x313ce567 {
_success := true
}
case 0x06fdde03 {
_success := true
}
case 0x95d89b41 {
_success := true
}
case 0x39509351 {
_success := true
}
case 0xa457c2d7 {
_success := true
}
case 0x42966c68 {
_success := true
}
case 0x79cc6790 {
_success := true
}
case 0x9d8ff7da {
_success := true
}
case 0x3644e515 {
_success := true
}
case 0x7ecebe00 {
_success := true
}
case 0xd505accf {
_success := true
}
case 0xffffffff {
_success := false
}
default {
_success := false
}
}
}
function symbol() external pure returns (string memory) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x60))
mstore(ptr, 0x20)
mstore(add(ptr, 0x20), 0x06)
mstore(add(ptr, 0x40), "PRISON")
return(ptr, 0x60)
}
}
function totalSupply() external view returns (uint256) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x20))
mstore(ptr, sload(_supplyStorage))
return(ptr, 0x20)
}
}
function approve(address _spender, uint256 _value) external returns (bool _success) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x80))
mstore(ptr, _allowanceStorage)
mstore(add(ptr, 0x20), caller())
mstore(add(ptr, 0x40), _spender)
let slot := sub(keccak256(ptr, 0x60), 0x01)
sstore(slot, _value)
mstore(add(ptr, 0x60), _value)
log3(add(ptr, 0x60), 0x20, 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, caller(), _spender)
_success := true
}
}
function burn(uint256 _value) external returns (bool _success) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x40))
mstore(ptr, _balanceStorage)
mstore(add(ptr, 0x20), caller())
let slot := sub(keccak256(ptr, 0x40), 0x01)
let _balance := sload(slot)
if gt(_value, _balance) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1a)
mstore(add(ptr, 0x44), "PR1S0N: not enough balance")
revert(ptr, 0x64)
}
sstore(slot, sub(_balance, _value))
let _supply := sload(_supplyStorage)
sstore(_supplyStorage, sub(_supply, _value))
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x20))
mstore(ptr, _value)
log3(
ptr,
0x20,
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,
caller(),
0x0000000000000000000000000000000000000000
)
_success := true
}
}
function burnFrom(address _from, uint256 _value) external returns (bool _success) {
assembly ("memory-safe") {
let ptr
let slot
switch eq(caller(), _from)
case 0 {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x60))
mstore(ptr, _allowanceStorage)
mstore(add(ptr, 0x20), caller())
mstore(add(ptr, 0x40), _from)
slot := sub(keccak256(ptr, 0x60), 0x01)
let _allowance := sload(slot)
if gt(_value, _allowance) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1c)
mstore(add(ptr, 0x44), "PR1S0N: not enough allowance")
revert(ptr, 0x64)
}
if gt(0x8000000000000000000000000000000000000000000000000000000000000000, _allowance) {
sstore(slot, sub(_allowance, _value))
}
}
case 1 {}
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x40))
mstore(ptr, _balanceStorage)
mstore(add(ptr, 0x20), _from)
slot := sub(keccak256(ptr, 0x40), 0x01)
let _balance := sload(slot)
if gt(_value, _balance) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1a)
mstore(add(ptr, 0x44), "PR1S0N: not enough balance")
revert(ptr, 0x64)
}
sstore(slot, sub(_balance, _value))
let _supply := sload(_supplyStorage)
sstore(_supplyStorage, sub(_supply, _value))
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x20))
mstore(ptr, _value)
log3(
ptr,
0x20,
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,
_from,
0x0000000000000000000000000000000000000000
)
_success := true
}
}
function decreaseAllowance(address _spender, uint256 _subtractedValue) external returns (bool _success) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x80))
mstore(ptr, _allowanceStorage)
mstore(add(ptr, 0x20), caller())
mstore(add(ptr, 0x40), _spender)
let slot := sub(keccak256(ptr, 0x60), 0x01)
let _value := sload(slot)
if gt(0x8000000000000000000000000000000000000000000000000000000000000000, _value) {
let _newValue := sub(_value, _subtractedValue)
if gt(_newValue, _value) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x18)
mstore(add(ptr, 0x44), "PR1S0N: numeric overflow")
revert(ptr, 0x64)
}
sstore(slot, _newValue)
mstore(add(ptr, 0x60), _newValue)
log3(add(ptr, 0x60), 0x20, 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, caller(), _spender)
}
_success := true
}
}
function increaseAllowance(address _spender, uint256 _addedValue) external returns (bool _success) {
assembly ("memory-safe") {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x80))
mstore(ptr, _allowanceStorage)
mstore(add(ptr, 0x20), caller())
mstore(add(ptr, 0x40), _spender)
let slot := sub(keccak256(ptr, 0x60), 0x01)
let _value := sload(slot)
let _newValue := add(_value, _addedValue)
if gt(_value, _newValue) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x18)
mstore(add(ptr, 0x44), "PR1S0N: numeric overflow")
revert(ptr, 0x64)
}
sstore(slot, _newValue)
mstore(add(ptr, 0x60), _newValue)
log3(add(ptr, 0x60), 0x20, 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, caller(), _spender)
_success := true
}
}
function mint(address _to, uint256 _value) external admin returns (bool _success) {
assembly ("memory-safe") {
let ptr
let _supply := sload(_supplyStorage)
if gt(add(_supply, _value), 0xC9F2C9CD04674EDEA40000000) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x19)
mstore(add(ptr, 0x44), "PR1S0N: 1 trillion limit")
revert(ptr, 0x64)
}
sstore(_supplyStorage, add(_supply, _value))
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x40))
mstore(ptr, _balanceStorage)
mstore(add(ptr, 0x20), _to)
let slot := sub(keccak256(ptr, 0x40), 0x01)
let _balance := sload(slot)
sstore(slot, add(_balance, _value))
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x20))
mstore(ptr, _value)
log3(
ptr,
0x20,
0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,
0x0000000000000000000000000000000000000000,
_to
)
_success := true
}
}
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external {
assembly ("memory-safe") {
let ptr
let slot
if gt(timestamp(), deadline) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1b)
mstore(add(ptr, 0x44), "ERC2612: expired signature")
revert(ptr, 0x64)
}
let domainSeperator := sload(_domainSeperatorStorage)
switch eq(chainid(), sload(_chainIdStorage))
case 1 {}
case 0 {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0xA0))
mstore(ptr, 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f)
mstore(add(ptr, 0x20), 0x1af0097cc103f3ba97f08c6bac2006fc42563cdbe9668c6d534c6be342fbc80d)
mstore(add(ptr, 0x40), 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6)
mstore(add(ptr, 0x60), chainid())
mstore(add(ptr, 0x80), address())
domainSeperator := keccak256(ptr, 0xA0)
sstore(_domainSeperatorStorage, domainSeperator)
}
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x40))
mstore(ptr, _nonceStorage)
mstore(add(ptr, 0x20), owner)
slot := sub(keccak256(ptr, 0x40), 0x01)
let nonce := sload(slot)
sstore(slot, add(nonce, 0x01))
ptr := mload(0x40)
mstore(0x40, add(ptr, 0xC0))
mstore(ptr, 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9)
mstore(add(ptr, 0x20), owner)
mstore(add(ptr, 0x40), spender)
mstore(add(ptr, 0x60), value)
mstore(add(ptr, 0x80), nonce)
mstore(add(ptr, 0xA0), deadline)
let structHash := keccak256(ptr, 0xC0)
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x42))
mstore(ptr, 0x1901000000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x02), domainSeperator)
mstore(add(ptr, 0x22), structHash)
let hash := keccak256(ptr, 0x42)
if gt(s, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1b)
mstore(add(ptr, 0x44), "ERC2612: invalid signature s")
revert(ptr, 0x64)
}
ptr := mload(0x40)
mstore(0x40, add(ptr, 0xA0))
mstore(ptr, hash)
mstore(add(ptr, 0x20), v)
mstore(add(ptr, 0x40), r)
mstore(add(ptr, 0x60), s)
let result := staticcall(gas(), 0x01, ptr, 0x80, add(ptr, 0x80), 0x20)
if iszero(result) {
revert(0, 0)
}
let signer := mload(add(ptr, 0x80))
switch eq(signer, owner)
case 1 {
if iszero(signer) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1b)
mstore(add(ptr, 0x44), "ERC2612: invalid signature")
revert(ptr, 0x64)
}
}
case 0 {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1b)
mstore(add(ptr, 0x44), "ERC2612: invalid signer")
revert(ptr, 0x64)
}
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x80))
mstore(ptr, _allowanceStorage)
mstore(add(ptr, 0x20), owner)
mstore(add(ptr, 0x40), spender)
slot := sub(keccak256(ptr, 0x60), 0x01)
sstore(slot, value)
mstore(add(ptr, 0x60), value)
log3(add(ptr, 0x60), 0x20, 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, owner, spender)
}
}
function setAdmin(address _account) external admin {
assembly ("memory-safe") {
sstore(_adminStorage, _account)
}
}
function transfer(address _to, uint256 _value) external returns (bool _success) {
assembly ("memory-safe") {
let ptr
if iszero(_to) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x19)
mstore(add(ptr, 0x44), "PR1S0N: use burn function")
revert(ptr, 0x64)
}
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x40))
mstore(ptr, _balanceStorage)
mstore(add(ptr, 0x20), caller())
let slot := sub(keccak256(ptr, 0x40), 0x01)
let _balance := sload(slot)
if gt(_value, _balance) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1a)
mstore(add(ptr, 0x44), "PR1S0N: not enough balance")
revert(ptr, 0x64)
}
sstore(slot, sub(_balance, _value))
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x60))
mstore(ptr, _balanceStorage)
mstore(add(ptr, 0x20), _to)
slot := sub(keccak256(ptr, 0x40), 0x01)
_balance := sload(slot)
sstore(slot, add(_balance, _value))
mstore(add(ptr, 0x40), _value)
log3(add(ptr, 0x40), 0x20, 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, caller(), _to)
_success := true
}
}
function transferFrom(address _from, address _to, uint256 _value) external returns (bool _success) {
assembly ("memory-safe") {
let ptr
if iszero(_to) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x19)
mstore(add(ptr, 0x44), "PR1S0N: use burn function")
revert(ptr, 0x64)
}
let slot
switch eq(caller(), _from)
case 0 {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x60))
mstore(ptr, _allowanceStorage)
mstore(add(ptr, 0x20), _from)
mstore(add(ptr, 0x40), caller())
slot := sub(keccak256(ptr, 0x60), 0x01)
let _allowance := sload(slot)
if gt(_value, _allowance) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1c)
mstore(add(ptr, 0x44), "PR1S0N: not enough allowance")
revert(ptr, 0x64)
}
if gt(0x8000000000000000000000000000000000000000000000000000000000000000, _allowance) {
sstore(slot, sub(_allowance, _value))
}
}
case 1 {}
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x40))
mstore(ptr, _balanceStorage)
mstore(add(ptr, 0x20), _from)
slot := sub(keccak256(ptr, 0x40), 0x01)
let _balance := sload(slot)
if gt(_value, _balance) {
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1a)
mstore(add(ptr, 0x44), "PR1S0N: not enough balance")
revert(ptr, 0x64)
}
sstore(slot, sub(_balance, _value))
ptr := mload(0x40)
mstore(0x40, add(ptr, 0x60))
mstore(ptr, _balanceStorage)
mstore(add(ptr, 0x20), _to)
slot := sub(keccak256(ptr, 0x40), 0x01)
_balance := sload(slot)
sstore(slot, add(_balance, _value))
mstore(add(ptr, 0x40), _value)
log3(add(ptr, 0x40), 0x20, 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, _from, _to)
_success := true
}
}
function _onlyAdmin(address _account) internal view {
assembly ("memory-safe") {
let _admin := sload(_adminStorage)
let _found := 0
switch eq(_admin, _account)
case 1 {
_found := 1
}
case 0 {
if eq(_admin, 0x0000000000000000000000000000000000000000) {
_found := 1
}
}
switch _found
case 1 {}
case 0 {
let ptr := mload(0x40)
mstore(0x40, add(ptr, 0x64))
mstore(ptr, 0x08c379a000000000000000000000000000000000000000000000000000000000)
mstore(add(ptr, 0x04), 0x20)
mstore(add(ptr, 0x24), 0x1b)
mstore(add(ptr, 0x44), "PR1S0N: admin only function")
revert(ptr, 0x64)
}
}
}
}{
"optimizer": {
"enabled": true,
"runs": 999999
},
"metadata": {
"bytecodeHash": "none",
"useLiteralContent": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": [
"ds-test/=lib/forge-std/lib/ds-test/src/",
"erc721a-upgradeable/=erc721a-upgradeable/",
"forge-std/=lib/forge-std/src/"
],
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"domainSeperator","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"_remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"domainName","type":"string"},{"internalType":"string","name":"domainVersion","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_id","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052348015600e575f5ffd5b50467fd5cae22d506e84df30c510c1b8256278721345fcf8d4be64743ee4aa81e128645560405160a081016040527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f1af0097cc103f3ba97f08c6bac2006fc42563cdbe9668c6d534c6be342fbc80d60208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209050807f3027cd467a8723dc03f0378c9f873197ce7c4fbb7bf54996a65245113e26d96d5550611c59806100ee5f395ff3fe608060405260043610610162575f3560e01c80636e9960c3116100c657806384b0196e1161007c578063a9059cbb11610057578063a9059cbb146104ba578063d505accf146104d9578063dd62ed3e146104f8575f5ffd5b806384b0196e1461046057806395d89b4114610487578063a457c2d71461049b575f5ffd5b806370a08231116100ac57806370a08231146103ac57806379cc6790146103cb5780637ecebe00146103ea575f5ffd5b80636e9960c314610338578063704b6c021461038b575f5ffd5b8063313ce5671161011b578063395093511161010157806339509351146102db57806340c10f19146102fa57806342966c6814610319575f5ffd5b8063313ce5671461021b5780633644e51514610241575f5ffd5b8063095ea7b31161014b578063095ea7b3146101bb57806318160ddd146101da57806323b872dd146101fc575f5ffd5b806301ffc9a71461016657806306fdde031461019a575b5f5ffd5b348015610171575f5ffd5b50610185610180366004611991565b610576565b60405190151581526020015b60405180910390f35b3480156101a5575f5ffd5b506101ae61062d565b6040516101919190611a23565b3480156101c6575f5ffd5b506101856101d5366004611a5d565b61066f565b3480156101e5575f5ffd5b506101ee6106ee565b604051908152602001610191565b348015610207575f5ffd5b50610185610216366004611a85565b610722565b348015610226575f5ffd5b5061022f6109df565b60405160ff9091168152602001610191565b34801561024c575f5ffd5b506040805160a080820183527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f1af0097cc103f3ba97f08c6bac2006fc42563cdbe9668c6d534c6be342fbc80d60208301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc692820192909252466060820152306080820152206101ee565b3480156102e6575f5ffd5b506101856102f5366004611a5d565b6109f3565b348015610305575f5ffd5b50610185610314366004611a5d565b610ae9565b348015610324575f5ffd5b50610185610333366004611abf565b610c57565b348015610343575f5ffd5b507ff67be69b6ad25aabeffc62bd19264f3c30ad964894b5fc1e74e609a144194c7c5460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610191565b348015610396575f5ffd5b506103aa6103a5366004611ad6565b610d92565b005b3480156103b7575f5ffd5b506101ee6103c6366004611ad6565b610dbf565b3480156103d6575f5ffd5b506101856103e5366004611a5d565b610e0a565b3480156103f5575f5ffd5b506101ee610404366004611ad6565b6040805180820182527f4f77ee05ca2adc851fd5746b7fb0ecd7626242920d991bf3b91859dec213863a8152602081019290925290207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b34801561046b575f5ffd5b50610474611049565b6040516101919796959493929190611aef565b348015610492575f5ffd5b506101ae611103565b3480156104a6575f5ffd5b506101856104b5366004611a5d565b611145565b3480156104c5575f5ffd5b506101856104d4366004611a5d565b611264565b3480156104e4575f5ffd5b506103aa6104f3366004611bae565b611420565b348015610503575f5ffd5b506101ee610512366004611c1b565b60408051606080820183527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb901578252602082019490945290810191909152207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b5f816301ffc9a7811461061a576336372b07811461061a5763313ce567811461061a576306fdde03811461061a576395d89b41811461061a576339509351811461061a5763a457c2d7811461061a576342966c68811461061a576379cc6790811461061a57639d8ff7da811461061a57633644e515811461061a57637ecebe00811461061a5763d505accf811461061a5763ffffffff8114610623575f9150610627565b60019150610627565b5f91505b50919050565b60606040516060810160405260208152600c60208201527f507269736f6e20546f6b656e00000000000000000000000000000000000000006040820152606081f35b5f604051608081016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb901578152336020820152836040820152600160608220038381555082606082015283337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a35060019392505050565b5f604051602081016040527f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac473548152602081f35b5f5f83610791576040519050606481016040527f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50523153304e3a20757365206275726e2066756e6374696f6e000000000000006044820152606481fd5b5f33861480156107a8576001811461088e5761088e565b6040519250606083016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb90157835286602084015233604084015260016060842003915081548086111561085e576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601c60248501527f50523153304e3a206e6f7420656e6f75676820616c6c6f77616e6365000000006044850152606484fd5b807f8000000000000000000000000000000000000000000000000000000000000000111561088c5785810383555b505b506040519150604082016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845825285602083015260016040832003905080548085111561093f576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601a60248401527f50523153304e3a206e6f7420656e6f7567682062616c616e63650000000000006044840152606483fd5b849003905550604080516060810182527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845815260208082018690528282207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018054860190559181018481529091859187917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a3506001949350505050565b5f6040516020810160405260128152602081f35b5f604051608081016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb90157815233602082015283604082015260016060822003805484810180821115610aa9576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601860248501527f50523153304e3a206e756d65726963206f766572666c6f7700000000000000006044850152606484fd5b80835580606085015250505083337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a35060019392505050565b5f610af3336118bd565b5f7f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac473546c0c9f2c9cd04674edea400000008482011115610b95576040519150606482016040527f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152601960248301527f50523153304e3a2031207472696c6c696f6e206c696d697400000000000000006044830152606482fd5b83017f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac47355506040805180820182527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff784581526020808201869052908290207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805485019055815180820190925283825284905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084a35060019392505050565b5f604051604081016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845815233602082015260016040822003805480851115610d04576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601a60248401527f50523153304e3a206e6f7420656e6f7567682062616c616e63650000000000006044840152606483fd5b848103825550507f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac473548381037f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac47355506040519050602081016040528281525f337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602084a350600192915050565b610d9b336118bd565b7ff67be69b6ad25aabeffc62bd19264f3c30ad964894b5fc1e74e609a144194c7c55565b5f604051606081016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff78458152826020820152600160408220038054604083015250602060408201f35b5f80803385148015610e235760018114610f0957610f09565b6040519250606083016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb901578352336020840152856040840152600160608420039150815480861115610ed9576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601c60248501527f50523153304e3a206e6f7420656e6f75676820616c6c6f77616e6365000000006044850152606484fd5b807f80000000000000000000000000000000000000000000000000000000000000001115610f075785810383555b505b506040519150604082016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff78458252846020830152600160408320039050805480851115610fba576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601a60248401527f50523153304e3a206e6f7420656e6f7567682062616c616e63650000000000006044840152606483fd5b848103825550507f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac473548381037f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac47355506040519050602081016040528281525f847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602084a35060019392505050565b5f60608082808083600f46308480604051908082528060200260200182016040528015611080578160200160208202803683370190505b50604080518082018252600c81527f507269736f6e20546f6b656e00000000000000000000000000000000000000006020808301919091528251808401909352600183527f31000000000000000000000000000000000000000000000000000000000000009083015260f89690961b9d959c509a50929850909650945092509050565b60606040516060810160405260208152600660208201527f505249534f4e00000000000000000000000000000000000000000000000000006040820152606081f35b5f604051608081016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb901578152336020820152836040820152600160608220038054807f800000000000000000000000000000000000000000000000000000000000000011156112585784810381811115611223576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601860248501527f50523153304e3a206e756d65726963206f766572666c6f7700000000000000006044850152606484fd5b8083558060608501525085337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608701a35b50600195945050505050565b5f5f836112d3576040519050606481016040527f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50523153304e3a20757365206275726e2066756e6374696f6e000000000000006044820152606481fd5b6040519050604081016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845815233602082015260016040822003805480851115611381576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601a60248401527f50523153304e3a206e6f7420656e6f7567682062616c616e63650000000000006044840152606483fd5b849003905550604080516060810182527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845815260208082018690528282207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018054860190559181018481529091859133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a35060019392505050565b5f5f85421115611492576040519150606482016040527f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152601b60248301527f455243323631323a2065787069726564207369676e61747572650000000000006044830152606482fd5b7f3027cd467a8723dc03f0378c9f873197ce7c4fbb7bf54996a65245113e26d96d547fd5cae22d506e84df30c510c1b8256278721345fcf8d4be64743ee4aa81e12864544614600181146114eb5780156114f0576115a1565b6115a1565b604051935060a084016040527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f84527f1af0097cc103f3ba97f08c6bac2006fc42563cdbe9668c6d534c6be342fbc80d60208501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604085015246606085015230608085015260a084209150817f3027cd467a8723dc03f0378c9f873197ce7c4fbb7bf54996a65245113e26d96d555b506040519250604083016040527f4f77ee05ca2adc851fd5746b7fb0ecd7626242920d991bf3b91859dec213863a83528960208401526001604084200391508154600181018355604051935060c084016040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a6020850152896040850152886060850152806080850152508660a084015260c083206040519350604284016040527f190100000000000000000000000000000000000000000000000000000000000084528160028501528060228501525050604282207f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561170b576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601b60248401527f455243323631323a20696e76616c6964207369676e61747572652073000000006044840152606483fd5b604051925060a083016040528083525084602083015283604083015282606083015260206080830160808460015afa80611743575f5ffd5b5060808201518981146001811461175f5780156117d157611839565b816117cc576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601b60248501527f455243323631323a20696e76616c6964207369676e61747572650000000000006044850152606484fd5b611839565b6040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601b60248501527f455243323631323a20696e76616c6964207369676e65720000000000000000006044850152606484fd5b50506040519150608082016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb9015782528860208301528760408301526001606083200390508681555085606082015286887f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a35050505050505050565b7ff67be69b6ad25aabeffc62bd19264f3c30ad964894b5fc1e74e609a144194c7c545f828214600181146118f65780156118ff57611909565b60019150611909565b8261190957600191505b50806001811461191e5780156119235761198b565b61198b565b6040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601b60248401527f50523153304e3a2061646d696e206f6e6c792066756e6374696f6e00000000006044840152606483fd5b50505050565b5f602082840312156119a1575f5ffd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146119d0575f5ffd5b9392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6119d060208301846119d7565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a58575f5ffd5b919050565b5f5f60408385031215611a6e575f5ffd5b611a7783611a35565b946020939093013593505050565b5f5f5f60608486031215611a97575f5ffd5b611aa084611a35565b9250611aae60208501611a35565b929592945050506040919091013590565b5f60208284031215611acf575f5ffd5b5035919050565b5f60208284031215611ae6575f5ffd5b6119d082611a35565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201525f611b2960e08301896119d7565b8281036040840152611b3b81896119d7565b6060840188905273ffffffffffffffffffffffffffffffffffffffff8716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015611b9d578351835260209384019390920191600101611b7f565b50909b9a5050505050505050505050565b5f5f5f5f5f5f5f60e0888a031215611bc4575f5ffd5b611bcd88611a35565b9650611bdb60208901611a35565b95506040880135945060608801359350608088013560ff81168114611bfe575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215611c2c575f5ffd5b611c3583611a35565b9150611c4360208401611a35565b9050925092905056fea164736f6c634300081c000a
Deployed Bytecode
0x608060405260043610610162575f3560e01c80636e9960c3116100c657806384b0196e1161007c578063a9059cbb11610057578063a9059cbb146104ba578063d505accf146104d9578063dd62ed3e146104f8575f5ffd5b806384b0196e1461046057806395d89b4114610487578063a457c2d71461049b575f5ffd5b806370a08231116100ac57806370a08231146103ac57806379cc6790146103cb5780637ecebe00146103ea575f5ffd5b80636e9960c314610338578063704b6c021461038b575f5ffd5b8063313ce5671161011b578063395093511161010157806339509351146102db57806340c10f19146102fa57806342966c6814610319575f5ffd5b8063313ce5671461021b5780633644e51514610241575f5ffd5b8063095ea7b31161014b578063095ea7b3146101bb57806318160ddd146101da57806323b872dd146101fc575f5ffd5b806301ffc9a71461016657806306fdde031461019a575b5f5ffd5b348015610171575f5ffd5b50610185610180366004611991565b610576565b60405190151581526020015b60405180910390f35b3480156101a5575f5ffd5b506101ae61062d565b6040516101919190611a23565b3480156101c6575f5ffd5b506101856101d5366004611a5d565b61066f565b3480156101e5575f5ffd5b506101ee6106ee565b604051908152602001610191565b348015610207575f5ffd5b50610185610216366004611a85565b610722565b348015610226575f5ffd5b5061022f6109df565b60405160ff9091168152602001610191565b34801561024c575f5ffd5b506040805160a080820183527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f1af0097cc103f3ba97f08c6bac2006fc42563cdbe9668c6d534c6be342fbc80d60208301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc692820192909252466060820152306080820152206101ee565b3480156102e6575f5ffd5b506101856102f5366004611a5d565b6109f3565b348015610305575f5ffd5b50610185610314366004611a5d565b610ae9565b348015610324575f5ffd5b50610185610333366004611abf565b610c57565b348015610343575f5ffd5b507ff67be69b6ad25aabeffc62bd19264f3c30ad964894b5fc1e74e609a144194c7c5460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610191565b348015610396575f5ffd5b506103aa6103a5366004611ad6565b610d92565b005b3480156103b7575f5ffd5b506101ee6103c6366004611ad6565b610dbf565b3480156103d6575f5ffd5b506101856103e5366004611a5d565b610e0a565b3480156103f5575f5ffd5b506101ee610404366004611ad6565b6040805180820182527f4f77ee05ca2adc851fd5746b7fb0ecd7626242920d991bf3b91859dec213863a8152602081019290925290207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b34801561046b575f5ffd5b50610474611049565b6040516101919796959493929190611aef565b348015610492575f5ffd5b506101ae611103565b3480156104a6575f5ffd5b506101856104b5366004611a5d565b611145565b3480156104c5575f5ffd5b506101856104d4366004611a5d565b611264565b3480156104e4575f5ffd5b506103aa6104f3366004611bae565b611420565b348015610503575f5ffd5b506101ee610512366004611c1b565b60408051606080820183527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb901578252602082019490945290810191909152207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b5f816301ffc9a7811461061a576336372b07811461061a5763313ce567811461061a576306fdde03811461061a576395d89b41811461061a576339509351811461061a5763a457c2d7811461061a576342966c68811461061a576379cc6790811461061a57639d8ff7da811461061a57633644e515811461061a57637ecebe00811461061a5763d505accf811461061a5763ffffffff8114610623575f9150610627565b60019150610627565b5f91505b50919050565b60606040516060810160405260208152600c60208201527f507269736f6e20546f6b656e00000000000000000000000000000000000000006040820152606081f35b5f604051608081016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb901578152336020820152836040820152600160608220038381555082606082015283337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a35060019392505050565b5f604051602081016040527f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac473548152602081f35b5f5f83610791576040519050606481016040527f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50523153304e3a20757365206275726e2066756e6374696f6e000000000000006044820152606481fd5b5f33861480156107a8576001811461088e5761088e565b6040519250606083016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb90157835286602084015233604084015260016060842003915081548086111561085e576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601c60248501527f50523153304e3a206e6f7420656e6f75676820616c6c6f77616e6365000000006044850152606484fd5b807f8000000000000000000000000000000000000000000000000000000000000000111561088c5785810383555b505b506040519150604082016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845825285602083015260016040832003905080548085111561093f576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601a60248401527f50523153304e3a206e6f7420656e6f7567682062616c616e63650000000000006044840152606483fd5b849003905550604080516060810182527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845815260208082018690528282207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018054860190559181018481529091859187917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a3506001949350505050565b5f6040516020810160405260128152602081f35b5f604051608081016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb90157815233602082015283604082015260016060822003805484810180821115610aa9576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601860248501527f50523153304e3a206e756d65726963206f766572666c6f7700000000000000006044850152606484fd5b80835580606085015250505083337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a35060019392505050565b5f610af3336118bd565b5f7f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac473546c0c9f2c9cd04674edea400000008482011115610b95576040519150606482016040527f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152601960248301527f50523153304e3a2031207472696c6c696f6e206c696d697400000000000000006044830152606482fd5b83017f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac47355506040805180820182527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff784581526020808201869052908290207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805485019055815180820190925283825284905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084a35060019392505050565b5f604051604081016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845815233602082015260016040822003805480851115610d04576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601a60248401527f50523153304e3a206e6f7420656e6f7567682062616c616e63650000000000006044840152606483fd5b848103825550507f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac473548381037f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac47355506040519050602081016040528281525f337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602084a350600192915050565b610d9b336118bd565b7ff67be69b6ad25aabeffc62bd19264f3c30ad964894b5fc1e74e609a144194c7c55565b5f604051606081016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff78458152826020820152600160408220038054604083015250602060408201f35b5f80803385148015610e235760018114610f0957610f09565b6040519250606083016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb901578352336020840152856040840152600160608420039150815480861115610ed9576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601c60248501527f50523153304e3a206e6f7420656e6f75676820616c6c6f77616e6365000000006044850152606484fd5b807f80000000000000000000000000000000000000000000000000000000000000001115610f075785810383555b505b506040519150604082016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff78458252846020830152600160408320039050805480851115610fba576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601a60248401527f50523153304e3a206e6f7420656e6f7567682062616c616e63650000000000006044840152606483fd5b848103825550507f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac473548381037f6f385d8cb4190bdec0329fe907465553e5e421c9e47a5bce58d69c33100ac47355506040519050602081016040528281525f847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602084a35060019392505050565b5f60608082808083600f46308480604051908082528060200260200182016040528015611080578160200160208202803683370190505b50604080518082018252600c81527f507269736f6e20546f6b656e00000000000000000000000000000000000000006020808301919091528251808401909352600183527f31000000000000000000000000000000000000000000000000000000000000009083015260f89690961b9d959c509a50929850909650945092509050565b60606040516060810160405260208152600660208201527f505249534f4e00000000000000000000000000000000000000000000000000006040820152606081f35b5f604051608081016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb901578152336020820152836040820152600160608220038054807f800000000000000000000000000000000000000000000000000000000000000011156112585784810381811115611223576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601860248501527f50523153304e3a206e756d65726963206f766572666c6f7700000000000000006044850152606484fd5b8083558060608501525085337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608701a35b50600195945050505050565b5f5f836112d3576040519050606481016040527f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f50523153304e3a20757365206275726e2066756e6374696f6e000000000000006044820152606481fd5b6040519050604081016040527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845815233602082015260016040822003805480851115611381576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601a60248401527f50523153304e3a206e6f7420656e6f7567682062616c616e63650000000000006044840152606483fd5b849003905550604080516060810182527f146464e727c9f4b5af3a01a7cb966c630adbd470f82d401ae9430ce338ff7845815260208082018690528282207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018054860190559181018481529091859133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a35060019392505050565b5f5f85421115611492576040519150606482016040527f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152601b60248301527f455243323631323a2065787069726564207369676e61747572650000000000006044830152606482fd5b7f3027cd467a8723dc03f0378c9f873197ce7c4fbb7bf54996a65245113e26d96d547fd5cae22d506e84df30c510c1b8256278721345fcf8d4be64743ee4aa81e12864544614600181146114eb5780156114f0576115a1565b6115a1565b604051935060a084016040527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f84527f1af0097cc103f3ba97f08c6bac2006fc42563cdbe9668c6d534c6be342fbc80d60208501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604085015246606085015230608085015260a084209150817f3027cd467a8723dc03f0378c9f873197ce7c4fbb7bf54996a65245113e26d96d555b506040519250604083016040527f4f77ee05ca2adc851fd5746b7fb0ecd7626242920d991bf3b91859dec213863a83528960208401526001604084200391508154600181018355604051935060c084016040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a6020850152896040850152886060850152806080850152508660a084015260c083206040519350604284016040527f190100000000000000000000000000000000000000000000000000000000000084528160028501528060228501525050604282207f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561170b576040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601b60248401527f455243323631323a20696e76616c6964207369676e61747572652073000000006044840152606483fd5b604051925060a083016040528083525084602083015283604083015282606083015260206080830160808460015afa80611743575f5ffd5b5060808201518981146001811461175f5780156117d157611839565b816117cc576040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601b60248501527f455243323631323a20696e76616c6964207369676e61747572650000000000006044850152606484fd5b611839565b6040519350606484016040527f08c379a000000000000000000000000000000000000000000000000000000000845260206004850152601b60248501527f455243323631323a20696e76616c6964207369676e65720000000000000000006044850152606484fd5b50506040519150608082016040527fadbae967d9c307f2be79145ccac3c7dd3b1756d4168dc78420e5df547cb9015782528860208301528760408301526001606083200390508681555085606082015286887f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a35050505050505050565b7ff67be69b6ad25aabeffc62bd19264f3c30ad964894b5fc1e74e609a144194c7c545f828214600181146118f65780156118ff57611909565b60019150611909565b8261190957600191505b50806001811461191e5780156119235761198b565b61198b565b6040519250606483016040527f08c379a000000000000000000000000000000000000000000000000000000000835260206004840152601b60248401527f50523153304e3a2061646d696e206f6e6c792066756e6374696f6e00000000006044840152606483fd5b50505050565b5f602082840312156119a1575f5ffd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146119d0575f5ffd5b9392505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6119d060208301846119d7565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a58575f5ffd5b919050565b5f5f60408385031215611a6e575f5ffd5b611a7783611a35565b946020939093013593505050565b5f5f5f60608486031215611a97575f5ffd5b611aa084611a35565b9250611aae60208501611a35565b929592945050506040919091013590565b5f60208284031215611acf575f5ffd5b5035919050565b5f60208284031215611ae6575f5ffd5b6119d082611a35565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201525f611b2960e08301896119d7565b8281036040840152611b3b81896119d7565b6060840188905273ffffffffffffffffffffffffffffffffffffffff8716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015611b9d578351835260209384019390920191600101611b7f565b50909b9a5050505050505050505050565b5f5f5f5f5f5f5f60e0888a031215611bc4575f5ffd5b611bcd88611a35565b9650611bdb60208901611a35565b95506040880135945060608801359350608088013560ff81168114611bfe575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215611c2c575f5ffd5b611c3583611a35565b9150611c4360208401611a35565b9050925092905056fea164736f6c634300081c000a
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.