Overview
ETH Balance
0 ETH
ETH Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
245469 | 30 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
DYLIAAPaymaster
Compiler Version
v0.8.24+commit.e11b9ed9
ZkSolc Version
v1.5.7
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; import "./IPaymaster.sol"; contract DYLIAAPaymaster is IPaymaster { address constant BOOTLOADER = address(0x8001); address public owner; modifier onlyOwner() { require(msg.sender == owner, "Not the owner"); _; } constructor() { owner = msg.sender; } function validateAndPayForPaymasterTransaction( bytes32, bytes32, Transaction calldata _transaction ) external payable returns (bytes4 magic, bytes memory context) { require( msg.sender == BOOTLOADER, "Only the Bootloader can call this function" ); context = ""; magic = PAYMASTER_VALIDATION_SUCCESS_MAGIC; uint requiredETH = _transaction.gasLimit * _transaction.maxFeePerGas; (bool success, ) = BOOTLOADER.call{value: requiredETH}(""); require(success, "Bootloader call failed"); } function withdraw(address payable _to, uint256 _amount) external onlyOwner { require(_to != address(0), "Invalid address"); require(_amount <= address(this).balance, "Insufficient balance"); (bool success, ) = _to.call{value: _amount}(""); require(success, "Withdraw failed"); } receive() external payable {} }
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; import "./Transaction.sol"; enum ExecutionResult { Revert, Success } bytes4 constant PAYMASTER_VALIDATION_SUCCESS_MAGIC = IPaymaster .validateAndPayForPaymasterTransaction .selector; interface IPaymaster { /// @dev Called by the bootloader to verify that the paymaster agrees to pay for the /// fee for the transaction. This transaction should also send the necessary amount of funds onto the bootloader /// address. /// @param _txHash The hash of the transaction /// @param _suggestedSignedHash The hash of the transaction that is signed by an EOA /// @param _transaction The transaction itself. /// @return magic The value that should be equal to the signature of the validateAndPayForPaymasterTransaction /// if the paymaster agrees to pay for the transaction. /// @return context The "context" of the transaction: an array of bytes of length at most 1024 bytes, which will be /// passed to the `postTransaction` method of the account. /// @dev The developer should strive to preserve as many steps as possible both for valid /// and invalid transactions as this very method is also used during the gas fee estimation /// (without some of the necessary data, e.g. signature). function validateAndPayForPaymasterTransaction( bytes32 _txHash, bytes32 _suggestedSignedHash, Transaction calldata _transaction ) external payable returns (bytes4 magic, bytes memory context); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.24; /// @notice Structure used to represent a zkSync transaction. struct Transaction { // The type of the transaction. uint256 txType; // The caller. uint256 from; // The callee. uint256 to; // The gasLimit to pass with the transaction. // It has the same meaning as Ethereum's gasLimit. uint256 gasLimit; // The maximum amount of gas the user is willing to pay for a byte of pubdata. uint256 gasPerPubdataByteLimit; // The maximum fee per gas that the user is willing to pay. // It is akin to EIP1559's maxFeePerGas. uint256 maxFeePerGas; // The maximum priority fee per gas that the user is willing to pay. // It is akin to EIP1559's maxPriorityFeePerGas. uint256 maxPriorityFeePerGas; // The transaction's paymaster. If there is no paymaster, it is equal to 0. uint256 paymaster; // The nonce of the transaction. uint256 nonce; // The value to pass with the transaction. uint256 value; // In the future, we might want to add some // new fields to the struct. The `txData` struct // is to be passed to account and any changes to its structure // would mean a breaking change to these accounts. In order to prevent this, // we should keep some fields as "reserved". // It is also recommended that their length is fixed, since // it would allow easier proof integration (in case we will need // some special circuit for preprocessing transactions). uint256[4] reserved; // The transaction's calldata. bytes data; // The signature of the transaction. bytes signature; // The properly formatted hashes of bytecodes that must be published on L1 // with the inclusion of this transaction. Note, that a bytecode has been published // before, the user won't pay fees for its republishing. bytes32[] factoryDeps; // The input to the paymaster. bytes paymasterInput; // Reserved dynamic type for the future use-case. Using it should be avoided, // But it is still here, just in case we want to enable some additional functionality. bytes reservedDynamic; }
{ "evmVersion": "paris", "optimizer": { "enabled": true, "mode": "3" }, "outputSelection": { "*": { "*": [ "abi", "metadata" ], "": [ "ast" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"},{"components":[{"internalType":"uint256","name":"txType","type":"uint256"},{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPerPubdataByteLimit","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"uint256","name":"paymaster","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256[4]","name":"reserved","type":"uint256[4]"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"bytes32[]","name":"factoryDeps","type":"bytes32[]"},{"internalType":"bytes","name":"paymasterInput","type":"bytes"},{"internalType":"bytes","name":"reservedDynamic","type":"bytes"}],"internalType":"struct Transaction","name":"_transaction","type":"tuple"}],"name":"validateAndPayForPaymasterTransaction","outputs":[{"internalType":"bytes4","name":"magic","type":"bytes4"},{"internalType":"bytes","name":"context","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
9c4d535b00000000000000000000000000000000000000000000000000000000000000000100007b9d021a96f54633abbcb40b0635c27d0b40e2c0296eb8f82cebf74b9700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x0002000000000002000200000000000200000060031002700000005b0330019700010000003103550000008004000039000000400040043f00000001002001900000002f0000c13d000000040030008c0000003c0000413d000000000201043b000000e0022002700000005e0020009c000000400000613d0000005f0020009c0000005b0000613d000000600020009c000000630000c13d000000440030008c000000630000413d0000000002000416000000000002004b000000630000c13d0000000402100370000000000202043b000000610020009c000000630000213d0000002401100370000000000401043b000000000100041a00000061011001970000000003000411000000000013004b000000650000c13d00000061012001980000007b0000c13d0000006201000041000000800010043f0000002001000039000000840010043f0000000f01000039000000a40010043f0000006c01000041000000c40010043f00000064010000410000016a000104300000000001000416000000000001004b000000630000c13d000000000100041a0000005c011001970000000002000411000000000121019f000000000010041b0000002001000039000001000010044300000120000004430000005d01000041000001690001042e000000000003004b000000630000c13d0000000001000019000001690001042e000000640030008c000000630000413d0000004402100370000000000202043b000000680020009c000000630000213d00000000032300490000006e0030009c000000630000213d000002640030008c000000630000413d0000000003000411000080010030008c0000006f0000c13d000000a003000039000000400030043f0000006403200039000000000331034f000000a402200039000000000121034f000000800000043f000000000101043b000000000203043b000000000002004b000000950000c13d00000000010004140000009c0000013d0000000001000416000000000001004b000000630000c13d000000000100041a0000006101100197000000800010043f0000006d01000041000001690001042e00000000010000190000016a000104300000006201000041000000800010043f0000002001000039000000840010043f0000000d01000039000000a40010043f0000006301000041000000c40010043f00000064010000410000016a000104300000006201000041000000800010043f0000002001000039000000840010043f0000002a01000039000000a40010043f0000006f01000041000000c40010043f0000007001000041000000e40010043f00000071010000410000016a00010430000100000001001d000200000004001d000000650100004100000000001004430000000001000410000000040010044300000000010004140000005b0010009c0000005b01008041000000c00110021000000066011001c70000800a02000039016801630000040f0000000100200190000000fe0000613d000000000101043b0000000203000029000000000013004b000001050000a13d000000400100043d00000044021000390000006b03000041000000000032043500000024021000390000001403000039000000f30000013d00000000032100a900000000022300d9000000000021004b000000ff0000c13d0000000001000414000000000003004b0000010c0000c13d0000005b0010009c0000005b01008041000000c00110021000008001020000390168015e0000040f000100000001035500000060031002700000005b0030019d0000005b03300198000000cb0000613d0000001f0430003900000074044001970000003f044000390000007504400197000000400500043d0000000004450019000000000054004b00000000060000390000000106004039000000680040009c000001570000213d0000000100600190000001570000c13d000000400040043f0000001f0430018f000000000635043600000076053001980000000003560019000000be0000613d000000000701034f000000007807043c0000000006860436000000000036004b000000ba0000c13d000000000004004b000000cb0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000400100043d0000000100200190000000ee0000613d000000200210003900000040030000390000000000320435000000780200004100000000002104350000004003100039000000800200043d00000000002304350000006003100039000000000002004b000000e10000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000024004b000000da0000413d0000001f0420003900000079044001970000000002320019000000000002043500000060024000390000005b0020009c0000005b0200804100000060022002100000005b0010009c0000005b010080410000004001100210000000000112019f000001690001042e000000440210003900000077030000410000000000320435000000240210003900000016030000390000000000320435000000620200004100000000002104350000000402100039000000200300003900000000003204350000005b0010009c0000005b0100804100000040011002100000006a011001c70000016a00010430000000000001042f0000007201000041000000000010043f0000001101000039000000040010043f00000073010000410000016a0001043000000000010004140000000104000029000000040040008c000001140000c13d00000001020000390000000001000031000001230000013d0000005b0010009c0000005b01008041000000c00110021000000067011001c7000080090200003900008001040000390000000005000019000000a00000013d0000005b0010009c0000005b01008041000000c001100210000000000003004b0000011b0000c13d00000000020400190000011e0000013d00000067011001c7000080090200003900000000050000190168015e0000040f000100000001035500000060011002700000005b0010019d0000005b01100197000000000001004b0000012e0000c13d00000001002001900000003e0000c13d000000400100043d00000044021000390000006903000041000000000032043500000024021000390000000f03000039000000f30000013d000000680010009c000001570000213d0000001f0410003900000079044001970000003f044000390000007905400197000000400400043d0000000005540019000000000045004b00000000060000390000000106004039000000680050009c000001570000213d0000000100600190000001570000c13d000000400050043f000000000614043600000079031001980000001f0410018f00000000013600190000000105000367000001490000613d000000000705034f000000007807043c0000000006860436000000000016004b000001450000c13d000000000004004b000001250000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000001250000013d0000007201000041000000000010043f0000004101000039000000040010043f00000073010000410000016a00010430000000000001042f00000161002104210000000102000039000000000001042d0000000002000019000000000001042d00000166002104230000000102000039000000000001042d0000000002000019000000000001042d0000016800000432000001690001042e0000016a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000038a24bc000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000f3fef3a3000000000000000000000000ffffffffffffffffffffffffffffffffffffffff08c379a0000000000000000000000000000000000000000000000000000000004e6f7420746865206f776e65720000000000000000000000000000000000000000000000000000000000000000000000000000640000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f3902000002000000000000000000000000000000240000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff5769746864726177206661696c656400000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000496e73756666696369656e742062616c616e6365000000000000000000000000496e76616c69642061646472657373000000000000000000000000000000000000000000000000000000000000000000000000200000008000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f6e6c792074686520426f6f746c6f616465722063616e2063616c6c20746869732066756e6374696f6e0000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000003ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0426f6f746c6f616465722063616c6c206661696c656400000000000000000000038a24bc00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0daede8e48707502778cc47018e6e1cd38fc5276930d5512d88fab4ad0f3e8171
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.