AllowanceHolder
0x50c4e75a512f2a14a7b304787adf79c4531a5909
Verification
Verified
v0.8.25+commit.b61c2a91
Type
Contract
1,469 bytes
ABI entries
3
0 read · 0 write
License
none
Contract information
- Address
- 0x50c4e75a512f2a14a7b304787adf79c4531a5909
- Chain
- Robinhood Chain (4663)
- Compiler
- v0.8.25+commit.b61c2a91
- Optimization
- Enabled
- Creator
- 0xC837354FcA…7D57cdc8BE
- Creation tx
- 0xa9c1600144…6e1c38ff7d
Token
Not a token
This contract does not expose ERC-20 metadata.
Read contract (0)
No read functions
The ABI is unavailable or exposes no view functions.
ABI
[
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "ConfusedDeputy",
"type": "error"
},
{
"stateMutability": "payable",
"type": "fallback"
}
]Source code
// SPDX-License-Identifier: MIT
pragma solidity =0.8.25;
import {AllowanceHolderBase} from "./AllowanceHolderBase.sol";
import {TransientStorage} from "./TransientStorage.sol";
/// @custom:security-contact security@0x.org
contract AllowanceHolder is TransientStorage, AllowanceHolderBase {
constructor() {
require(address(this) == 0x50c4E75a512F2A14A7b304787Adf79C4531A5909 || block.chainid == 31337);
}
/// @inheritdoc AllowanceHolderBase
function exec(address operator, address token, uint256 amount, address payable target, bytes calldata data)
internal
override
returns (bytes memory)
{
(bytes memory result, address sender, TSlot allowance) = _exec(operator, token, amount, target, data);
// EIP-3074 seems unlikely
if (sender != tx.origin) {
_set(allowance, 0);
}
return result;
}
}
Chain explorer5330msChain node87ms