Source Code
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 20410785 | 540 days ago | 0.44463679 ETH | ||||
| Transfer | 20410785 | 540 days ago | 1.55622876 ETH | ||||
| Transfer | 20410785 | 540 days ago | 2.44550235 ETH | ||||
| Transfer | 20410785 | 540 days ago | 0.03334775 ETH | ||||
| Transfer | 20410785 | 540 days ago | 0.66695518 ETH | ||||
| Transfer | 20410785 | 540 days ago | 0.58692056 ETH | ||||
| Transfers Ether ... | 20410785 | 540 days ago | 5.73359142 ETH | ||||
| Transfer | 20173711 | 574 days ago | 0.4424857 ETH | ||||
| Transfer | 20173711 | 574 days ago | 0.03318642 ETH | ||||
| Transfer | 20173711 | 574 days ago | 1.54869997 ETH | ||||
| Transfer | 20173711 | 574 days ago | 2.43367139 ETH | ||||
| Transfer | 20173711 | 574 days ago | 0.97346855 ETH | ||||
| Transfer | 20173711 | 574 days ago | 0.27655356 ETH | ||||
| Transfers Ether ... | 20173711 | 574 days ago | 5.70806562 ETH | ||||
| Transfer | 20001847 | 598 days ago | 0.13897 ETH | ||||
| Transfer | 20001847 | 598 days ago | 0.06093 ETH | ||||
| Transfer | 20001847 | 598 days ago | 0.25628 ETH | ||||
| Transfer | 20001847 | 598 days ago | 0.02395 ETH | ||||
| Transfer | 20001847 | 598 days ago | 0.05893 ETH | ||||
| Transfer | 20001847 | 598 days ago | 0.57636 ETH | ||||
| Transfer | 20001847 | 598 days ago | 0.40741 ETH | ||||
| Transfers Ether | 20001847 | 598 days ago | 1.52283 ETH | ||||
| Transfer | 19951353 | 605 days ago | 1.09789789 ETH | ||||
| Transfer | 19951353 | 605 days ago | 0.87831831 ETH | ||||
| Transfer | 19951353 | 605 days ago | 2.19579578 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PermitTransfers
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.17;
import { ISignatureTransfer } from "./interfaces/ISignatureTransfer.sol";
contract PermitTransfers{
ISignatureTransfer public immutable PERMIT2;
constructor(address _permit) {
PERMIT2 = ISignatureTransfer(_permit);
}
/// @dev Ethers are sent together to multiple destinations
function transfersEther(
address payable[] calldata _recipients,
uint256[] calldata _values
) public payable {
bool success;
uint256 length = _recipients.length;
for (uint256 i; i < length;){
(success, ) = _recipients[i].call{value: _values[i]}("");
require(success, "Failed to send Ether");
unchecked{ ++i; }
}
uint256 balance = address(this).balance;
if (balance > 0){
(success, ) = payable(msg.sender).call{value: balance}("");
require(success, "Failed to send Ether");
}
}
/// @dev Multiple Tokens are forwarded together to multiple destinations
function transfersToken(
ISignatureTransfer.PermitBatchTransferFrom calldata _permit,
ISignatureTransfer.SignatureTransferDetails[] calldata _details,
bytes calldata _signature
) public {
PERMIT2.permitTransferFrom(
_permit,
_details,
msg.sender,
_signature
);
}
/// @dev Ethers and multiple Tokens are forwarded together to multiple destinations
function transfersEtherAndToken(
address payable[] calldata _etherRecipients,
uint256[] calldata _etherValues,
ISignatureTransfer.PermitBatchTransferFrom calldata _permit,
ISignatureTransfer.SignatureTransferDetails[] calldata _details,
bytes calldata _signature
) public payable{
transfersEther(_etherRecipients, _etherValues);
transfersToken(_permit, _details, _signature);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
/// @title SignatureTransfer
/// @notice Handles ERC20 token transfers through signature based actions
/// @dev Requires user's token approval on the Permit2 contract
interface ISignatureTransfer {
/// @notice Thrown when the requested amount for a transfer is larger than the permissioned amount
/// @param maxAmount The maximum amount a spender can request to transfer
error InvalidAmount(uint256 maxAmount);
/// @notice Thrown when the number of tokens permissioned to a spender does not match the number of tokens being transferred
/// @dev If the spender does not need to transfer the number of tokens permitted, the spender can request amount 0 to be transferred
error LengthMismatch();
/// @notice Emits an event when the owner successfully invalidates an unordered nonce.
event UnorderedNonceInvalidation(address indexed owner, uint256 word, uint256 mask);
/// @notice The token and amount details for a transfer signed in the permit transfer signature
struct TokenPermissions {
// ERC20 token address
address token;
// the maximum amount that can be spent
uint256 amount;
}
/// @notice The signed permit message for a single token transfer
struct PermitTransferFrom {
TokenPermissions permitted;
// a unique value for every token owner's signature to prevent signature replays
uint256 nonce;
// deadline on the permit signature
uint256 deadline;
}
/// @notice Specifies the recipient address and amount for batched transfers.
/// @dev Recipients and amounts correspond to the index of the signed token permissions array.
/// @dev Reverts if the requested amount is greater than the permitted signed amount.
struct SignatureTransferDetails {
// recipient address
address to;
// spender requested amount
uint256 requestedAmount;
}
/// @notice Used to reconstruct the signed permit message for multiple token transfers
/// @dev Do not need to pass in spender address as it is required that it is msg.sender
/// @dev Note that a user still signs over a spender address
struct PermitBatchTransferFrom {
// the tokens and corresponding amounts permitted for a transfer
TokenPermissions[] permitted;
// a unique value for every token owner's signature to prevent signature replays
uint256 nonce;
// deadline on the permit signature
uint256 deadline;
}
/// @notice A map from token owner address and a caller specified word index to a bitmap. Used to set bits in the bitmap to prevent against signature replay protection
/// @dev Uses unordered nonces so that permit messages do not need to be spent in a certain order
/// @dev The mapping is indexed first by the token owner, then by an index specified in the nonce
/// @dev It returns a uint256 bitmap
/// @dev The index, or wordPosition is capped at type(uint248).max
function nonceBitmap(address, uint256) external view returns (uint256);
/// @notice Transfers a token using a signed permit message
/// @dev Reverts if the requested amount is greater than the permitted signed amount
/// @param permit The permit data signed over by the owner
/// @param owner The owner of the tokens to transfer
/// @param transferDetails The spender's requested transfer details for the permitted token
/// @param signature The signature to verify
function permitTransferFrom(
PermitTransferFrom memory permit,
SignatureTransferDetails calldata transferDetails,
address owner,
bytes calldata signature
) external;
/// @notice Transfers a token using a signed permit message
/// @notice Includes extra data provided by the caller to verify signature over
/// @dev The witness type string must follow EIP712 ordering of nested structs and must include the TokenPermissions type definition
/// @dev Reverts if the requested amount is greater than the permitted signed amount
/// @param permit The permit data signed over by the owner
/// @param owner The owner of the tokens to transfer
/// @param transferDetails The spender's requested transfer details for the permitted token
/// @param witness Extra data to include when checking the user signature
/// @param witnessTypeString The EIP-712 type definition for remaining string stub of the typehash
/// @param signature The signature to verify
function permitWitnessTransferFrom(
PermitTransferFrom memory permit,
SignatureTransferDetails calldata transferDetails,
address owner,
bytes32 witness,
string calldata witnessTypeString,
bytes calldata signature
) external;
/// @notice Transfers multiple tokens using a signed permit message
/// @param permit The permit data signed over by the owner
/// @param owner The owner of the tokens to transfer
/// @param transferDetails Specifies the recipient and requested amount for the token transfer
/// @param signature The signature to verify
function permitTransferFrom(
PermitBatchTransferFrom memory permit,
SignatureTransferDetails[] calldata transferDetails,
address owner,
bytes calldata signature
) external;
/// @notice Transfers multiple tokens using a signed permit message
/// @dev The witness type string must follow EIP712 ordering of nested structs and must include the TokenPermissions type definition
/// @notice Includes extra data provided by the caller to verify signature over
/// @param permit The permit data signed over by the owner
/// @param owner The owner of the tokens to transfer
/// @param transferDetails Specifies the recipient and requested amount for the token transfer
/// @param witness Extra data to include when checking the user signature
/// @param witnessTypeString The EIP-712 type definition for remaining string stub of the typehash
/// @param signature The signature to verify
function permitWitnessTransferFrom(
PermitBatchTransferFrom memory permit,
SignatureTransferDetails[] calldata transferDetails,
address owner,
bytes32 witness,
string calldata witnessTypeString,
bytes calldata signature
) external;
/// @notice Invalidates the bits specified in mask for the bitmap at the word position
/// @dev The wordPos is maxed at type(uint248).max
/// @param wordPos A number to index the nonceBitmap at
/// @param mask A bitmap masked against msg.sender's current bitmap at the word position
function invalidateUnorderedNonces(uint256 wordPos, uint256 mask) external;
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_permit","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"PERMIT2","outputs":[{"internalType":"contract ISignatureTransfer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"_recipients","type":"address[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"transfersEther","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"_etherRecipients","type":"address[]"},{"internalType":"uint256[]","name":"_etherValues","type":"uint256[]"},{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct ISignatureTransfer.TokenPermissions[]","name":"permitted","type":"tuple[]"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct ISignatureTransfer.PermitBatchTransferFrom","name":"_permit","type":"tuple"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"}],"internalType":"struct ISignatureTransfer.SignatureTransferDetails[]","name":"_details","type":"tuple[]"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"transfersEtherAndToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct ISignatureTransfer.TokenPermissions[]","name":"permitted","type":"tuple[]"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct ISignatureTransfer.PermitBatchTransferFrom","name":"_permit","type":"tuple"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"}],"internalType":"struct ISignatureTransfer.SignatureTransferDetails[]","name":"_details","type":"tuple[]"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"transfersToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60a060405234801561001057600080fd5b50604051610ee3380380610ee3833981810160405281019061003291906100cf565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506100fc565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061009c82610071565b9050919050565b6100ac81610091565b81146100b757600080fd5b50565b6000815190506100c9816100a3565b92915050565b6000602082840312156100e5576100e461006c565b5b60006100f3848285016100ba565b91505092915050565b608051610dc561011e600039600081816102a201526102ea0152610dc56000f3fe60806040526004361061003f5760003560e01c80630584e2a3146100445780636afdd85014610060578063f10aa0871461008b578063fbb5d2fa146100a7575b600080fd5b61005e60048036038101906100599190610449565b6100d0565b005b34801561006c57600080fd5b506100756102a0565b6040516100829190610549565b60405180910390f35b6100a560048036038101906100a09190610634565b6102c4565b005b3480156100b357600080fd5b506100ce60048036038101906100c9919061074c565b6102e8565b005b60008085859050905060005b818110156101db578686828181106100f7576100f66107fd565b5b905060200201602081019061010c919061086a565b73ffffffffffffffffffffffffffffffffffffffff16858583818110610135576101346107fd565b5b90506020020135604051610148906108c8565b60006040518083038185875af1925050503d8060008114610185576040519150601f19603f3d011682016040523d82523d6000602084013e61018a565b606091505b505080935050826101d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c79061093a565b60405180910390fd5b8060010190506100dc565b5060004790506000811115610297573373ffffffffffffffffffffffffffffffffffffffff168160405161020e906108c8565b60006040518083038185875af1925050503d806000811461024b576040519150601f19603f3d011682016040523d82523d6000602084013e610250565b606091505b50508093505082610296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028d9061093a565b60405180910390fd5b5b50505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102d0898989896100d0565b6102dd85858585856102e8565b505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663edd9444b8686863387876040518763ffffffff1660e01b815260040161034b96959493929190610d31565b600060405180830381600087803b15801561036557600080fd5b505af1158015610379573d6000803e3d6000fd5b505050505050505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126103b3576103b261038e565b5b8235905067ffffffffffffffff8111156103d0576103cf610393565b5b6020830191508360208202830111156103ec576103eb610398565b5b9250929050565b60008083601f8401126104095761040861038e565b5b8235905067ffffffffffffffff81111561042657610425610393565b5b60208301915083602082028301111561044257610441610398565b5b9250929050565b6000806000806040858703121561046357610462610384565b5b600085013567ffffffffffffffff81111561048157610480610389565b5b61048d8782880161039d565b9450945050602085013567ffffffffffffffff8111156104b0576104af610389565b5b6104bc878288016103f3565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061050f61050a610505846104ca565b6104ea565b6104ca565b9050919050565b6000610521826104f4565b9050919050565b600061053382610516565b9050919050565b61054381610528565b82525050565b600060208201905061055e600083018461053a565b92915050565b600080fd5b60006060828403121561057f5761057e610564565b5b81905092915050565b60008083601f84011261059e5761059d61038e565b5b8235905067ffffffffffffffff8111156105bb576105ba610393565b5b6020830191508360408202830111156105d7576105d6610398565b5b9250929050565b60008083601f8401126105f4576105f361038e565b5b8235905067ffffffffffffffff81111561061157610610610393565b5b60208301915083600182028301111561062d5761062c610398565b5b9250929050565b600080600080600080600080600060a08a8c03121561065657610655610384565b5b60008a013567ffffffffffffffff81111561067457610673610389565b5b6106808c828d0161039d565b995099505060208a013567ffffffffffffffff8111156106a3576106a2610389565b5b6106af8c828d016103f3565b975097505060408a013567ffffffffffffffff8111156106d2576106d1610389565b5b6106de8c828d01610569565b95505060608a013567ffffffffffffffff8111156106ff576106fe610389565b5b61070b8c828d01610588565b945094505060808a013567ffffffffffffffff81111561072e5761072d610389565b5b61073a8c828d016105de565b92509250509295985092959850929598565b60008060008060006060868803121561076857610767610384565b5b600086013567ffffffffffffffff81111561078657610785610389565b5b61079288828901610569565b955050602086013567ffffffffffffffff8111156107b3576107b2610389565b5b6107bf88828901610588565b9450945050604086013567ffffffffffffffff8111156107e2576107e1610389565b5b6107ee888289016105de565b92509250509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000610837826104ca565b9050919050565b6108478161082c565b811461085257600080fd5b50565b6000813590506108648161083e565b92915050565b6000602082840312156108805761087f610384565b5b600061088e84828501610855565b91505092915050565b600081905092915050565b50565b60006108b2600083610897565b91506108bd826108a2565b600082019050919050565b60006108d3826108a5565b9150819050919050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b60006109246014836108dd565b915061092f826108ee565b602082019050919050565b6000602082019050818103600083015261095381610917565b9050919050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261098657610985610964565b5b83810192508235915060208301925067ffffffffffffffff8211156109ae576109ad61095a565b5b6040820236038313156109c4576109c361095f565b5b509250929050565b600082825260208201905092915050565b6000819050919050565b60006109f2826104ca565b9050919050565b610a02816109e7565b8114610a0d57600080fd5b50565b600081359050610a1f816109f9565b92915050565b6000610a346020840184610a10565b905092915050565b610a45816109e7565b82525050565b6000819050919050565b610a5e81610a4b565b8114610a6957600080fd5b50565b600081359050610a7b81610a55565b92915050565b6000610a906020840184610a6c565b905092915050565b610aa181610a4b565b82525050565b60408201610ab86000830183610a25565b610ac56000850182610a3c565b50610ad36020830183610a81565b610ae06020850182610a98565b50505050565b6000610af28383610aa7565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000610b2283856109cc565b9350610b2d826109dd565b8060005b85811015610b6657610b438284610afe565b610b4d8882610ae6565b9750610b5883610b09565b925050600181019050610b31565b5085925050509392505050565b600060608301610b866000840184610969565b8583036000870152610b99838284610b16565b92505050610baa6020840184610a81565b610bb76020860182610a98565b50610bc56040840184610a81565b610bd26040860182610a98565b508091505092915050565b600082825260208201905092915050565b6000819050919050565b60408201610c096000830183610a25565b610c166000850182610a3c565b50610c246020830183610a81565b610c316020850182610a98565b50505050565b6000610c438383610bf8565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000610c738385610bdd565b9350610c7e82610bee565b8060005b85811015610cb757610c948284610c4f565b610c9e8882610c37565b9750610ca983610c5a565b925050600181019050610c82565b5085925050509392505050565b610ccd816109e7565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610d108385610cd3565b9350610d1d838584610ce4565b610d2683610cf3565b840190509392505050565b60006080820190508181036000830152610d4b8189610b73565b90508181036020830152610d60818789610c67565b9050610d6f6040830186610cc4565b8181036060830152610d82818486610d04565b905097965050505050505056fea26469706673582212207b152b7c2f43ae96fbe2c810d08c8cb0bdd49ae3cc989dbceb957de8fe2856aa64736f6c63430008110033000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3
Deployed Bytecode
0x60806040526004361061003f5760003560e01c80630584e2a3146100445780636afdd85014610060578063f10aa0871461008b578063fbb5d2fa146100a7575b600080fd5b61005e60048036038101906100599190610449565b6100d0565b005b34801561006c57600080fd5b506100756102a0565b6040516100829190610549565b60405180910390f35b6100a560048036038101906100a09190610634565b6102c4565b005b3480156100b357600080fd5b506100ce60048036038101906100c9919061074c565b6102e8565b005b60008085859050905060005b818110156101db578686828181106100f7576100f66107fd565b5b905060200201602081019061010c919061086a565b73ffffffffffffffffffffffffffffffffffffffff16858583818110610135576101346107fd565b5b90506020020135604051610148906108c8565b60006040518083038185875af1925050503d8060008114610185576040519150601f19603f3d011682016040523d82523d6000602084013e61018a565b606091505b505080935050826101d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c79061093a565b60405180910390fd5b8060010190506100dc565b5060004790506000811115610297573373ffffffffffffffffffffffffffffffffffffffff168160405161020e906108c8565b60006040518083038185875af1925050503d806000811461024b576040519150601f19603f3d011682016040523d82523d6000602084013e610250565b606091505b50508093505082610296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028d9061093a565b60405180910390fd5b5b50505050505050565b7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba381565b6102d0898989896100d0565b6102dd85858585856102e8565b505050505050505050565b7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba373ffffffffffffffffffffffffffffffffffffffff1663edd9444b8686863387876040518763ffffffff1660e01b815260040161034b96959493929190610d31565b600060405180830381600087803b15801561036557600080fd5b505af1158015610379573d6000803e3d6000fd5b505050505050505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126103b3576103b261038e565b5b8235905067ffffffffffffffff8111156103d0576103cf610393565b5b6020830191508360208202830111156103ec576103eb610398565b5b9250929050565b60008083601f8401126104095761040861038e565b5b8235905067ffffffffffffffff81111561042657610425610393565b5b60208301915083602082028301111561044257610441610398565b5b9250929050565b6000806000806040858703121561046357610462610384565b5b600085013567ffffffffffffffff81111561048157610480610389565b5b61048d8782880161039d565b9450945050602085013567ffffffffffffffff8111156104b0576104af610389565b5b6104bc878288016103f3565b925092505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061050f61050a610505846104ca565b6104ea565b6104ca565b9050919050565b6000610521826104f4565b9050919050565b600061053382610516565b9050919050565b61054381610528565b82525050565b600060208201905061055e600083018461053a565b92915050565b600080fd5b60006060828403121561057f5761057e610564565b5b81905092915050565b60008083601f84011261059e5761059d61038e565b5b8235905067ffffffffffffffff8111156105bb576105ba610393565b5b6020830191508360408202830111156105d7576105d6610398565b5b9250929050565b60008083601f8401126105f4576105f361038e565b5b8235905067ffffffffffffffff81111561061157610610610393565b5b60208301915083600182028301111561062d5761062c610398565b5b9250929050565b600080600080600080600080600060a08a8c03121561065657610655610384565b5b60008a013567ffffffffffffffff81111561067457610673610389565b5b6106808c828d0161039d565b995099505060208a013567ffffffffffffffff8111156106a3576106a2610389565b5b6106af8c828d016103f3565b975097505060408a013567ffffffffffffffff8111156106d2576106d1610389565b5b6106de8c828d01610569565b95505060608a013567ffffffffffffffff8111156106ff576106fe610389565b5b61070b8c828d01610588565b945094505060808a013567ffffffffffffffff81111561072e5761072d610389565b5b61073a8c828d016105de565b92509250509295985092959850929598565b60008060008060006060868803121561076857610767610384565b5b600086013567ffffffffffffffff81111561078657610785610389565b5b61079288828901610569565b955050602086013567ffffffffffffffff8111156107b3576107b2610389565b5b6107bf88828901610588565b9450945050604086013567ffffffffffffffff8111156107e2576107e1610389565b5b6107ee888289016105de565b92509250509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000610837826104ca565b9050919050565b6108478161082c565b811461085257600080fd5b50565b6000813590506108648161083e565b92915050565b6000602082840312156108805761087f610384565b5b600061088e84828501610855565b91505092915050565b600081905092915050565b50565b60006108b2600083610897565b91506108bd826108a2565b600082019050919050565b60006108d3826108a5565b9150819050919050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b60006109246014836108dd565b915061092f826108ee565b602082019050919050565b6000602082019050818103600083015261095381610917565b9050919050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261098657610985610964565b5b83810192508235915060208301925067ffffffffffffffff8211156109ae576109ad61095a565b5b6040820236038313156109c4576109c361095f565b5b509250929050565b600082825260208201905092915050565b6000819050919050565b60006109f2826104ca565b9050919050565b610a02816109e7565b8114610a0d57600080fd5b50565b600081359050610a1f816109f9565b92915050565b6000610a346020840184610a10565b905092915050565b610a45816109e7565b82525050565b6000819050919050565b610a5e81610a4b565b8114610a6957600080fd5b50565b600081359050610a7b81610a55565b92915050565b6000610a906020840184610a6c565b905092915050565b610aa181610a4b565b82525050565b60408201610ab86000830183610a25565b610ac56000850182610a3c565b50610ad36020830183610a81565b610ae06020850182610a98565b50505050565b6000610af28383610aa7565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000610b2283856109cc565b9350610b2d826109dd565b8060005b85811015610b6657610b438284610afe565b610b4d8882610ae6565b9750610b5883610b09565b925050600181019050610b31565b5085925050509392505050565b600060608301610b866000840184610969565b8583036000870152610b99838284610b16565b92505050610baa6020840184610a81565b610bb76020860182610a98565b50610bc56040840184610a81565b610bd26040860182610a98565b508091505092915050565b600082825260208201905092915050565b6000819050919050565b60408201610c096000830183610a25565b610c166000850182610a3c565b50610c246020830183610a81565b610c316020850182610a98565b50505050565b6000610c438383610bf8565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000610c738385610bdd565b9350610c7e82610bee565b8060005b85811015610cb757610c948284610c4f565b610c9e8882610c37565b9750610ca983610c5a565b925050600181019050610c82565b5085925050509392505050565b610ccd816109e7565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610d108385610cd3565b9350610d1d838584610ce4565b610d2683610cf3565b840190509392505050565b60006080820190508181036000830152610d4b8189610b73565b90508181036020830152610d60818789610c67565b9050610d6f6040830186610cc4565b8181036060830152610d82818486610d04565b905097965050505050505056fea26469706673582212207b152b7c2f43ae96fbe2c810d08c8cb0bdd49ae3cc989dbceb957de8fe2856aa64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3
-----Decoded View---------------
Arg [0] : _permit (address): 0x000000000022D473030F116dDEE9F6B43aC78BA3
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.