Transactions
Token Transfers
Internal Transactions
Coin Balance History
Code
Read Contract
Write Contract
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify.
View contract in Sourcify repository
- Contract name:
- FeeReceiverPLS
- Optimization enabled
- true
- Compiler version
- v0.8.20+commit.a1b79de6
- Optimization runs
- 1
- EVM Version
- shanghai
- Verified at
- 2026-02-12T04:01:30.706035Z
Constructor Arguments
000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a27000000000000000000000000bd48026e337f1419ec97f780b2045eb0ef2e0467000000000000000000000000a0419404ef7b81d9ec64367eb68e5f425eace618
Arg [0] (address) : 0xa1077a294dde1b09bb078844df40758a5d0f9a27
Arg [1] (address) : 0xbd48026e337f1419ec97f780b2045eb0ef2e0467
Arg [2] (address) : 0xa0419404ef7b81d9ec64367eb68e5f425eace618
contracts/Vaults/FeeReceiverPLS.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IWPLS {
function withdraw(uint256) external;
}
interface IERC20 {
function balanceOf(address) external view returns (uint256);
function transfer(address, uint256) external returns (bool);
}
/// @title FeeReceiverPLS
/// @notice Receives WPLS from strategies, splits between buyburn (PLS) and dev (WPLS)
/// @dev Fee split: 1% buyburn (as PLS), 3% dev (as WPLS) from the 4% treasury fee
contract FeeReceiverPLS {
address public immutable WPLS;
address public immutable buyburn; // receives 25% as native PLS (1% of total)
address public immutable dev; // receives 75% as WPLS (3% of total)
// 25% to buyburn (1/4 = 1% of the 4% treasury fee)
uint256 public constant BUYBURN_SHARE = 25;
uint256 public constant SHARE_DIVISOR = 100;
constructor(address _wpls, address _buyburn, address _dev) {
WPLS = _wpls;
buyburn = _buyburn;
dev = _dev;
}
/// @notice Splits WPLS: 25% unwrapped to PLS for buyburn, 75% WPLS to dev
function flush() public {
uint256 bal = IERC20(WPLS).balanceOf(address(this));
if (bal == 0) return;
uint256 buyBurnAmount = (bal * BUYBURN_SHARE) / SHARE_DIVISOR; // 25% = 1% of total
uint256 devAmount = bal - buyBurnAmount; // 75% = 3% of total
// Send WPLS to dev
if (devAmount > 0) {
IERC20(WPLS).transfer(dev, devAmount);
}
// Unwrap and send PLS to buyburn
if (buyBurnAmount > 0) {
IWPLS(WPLS).withdraw(buyBurnAmount);
(bool success, ) = buyburn.call{value: address(this).balance}("");
require(success, "PLS transfer failed");
}
}
/// @notice Auto-flush on WPLS receive via transferAndCall (if supported)
function onTokenTransfer(address, uint256, bytes calldata) external returns (bool) {
flush();
return true;
}
receive() external payable {}
}
Compiler Settings
{"remappings":[":@1inch/solidity-utils/=lib/solidity-utils/",":@chainlink/=lib/foundry-chainlink-toolkit/",":@chainlink/contracts/=lib/foundry-chainlink-toolkit/lib/chainlink-brownie-contracts/contracts/src/",":@forge-std/=lib/forge-std/src/",":@gearbox-protocol/core-v2/=lib/core-v2/",":@gearbox-protocol/core-v3/=lib/core-v3/",":@gearbox-protocol/sdk-gov/=lib/sdk-gov/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@redstone-finance/=lib/integrations-v3/node_modules/@redstone-finance/",":@uniswap/v2-core/=lib/v2-core/",":@uniswap/v2-periphery/=lib/v2-periphery/",":chainlink-brownie-contracts/=lib/foundry-chainlink-toolkit/lib/chainlink-brownie-contracts/contracts/src/v0.6/vendor/@arbitrum/nitro-contracts/src/",":chainlink/=lib/chainlink/",":core-v2/=lib/core-v2/contracts/",":core-v3/=lib/core-v3/contracts/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":foundry-chainlink-toolkit/=lib/foundry-chainlink-toolkit/",":foundry-devops/=lib/foundry-devops/",":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",":integrations-v3/=lib/integrations-v3/",":openzeppelin-contracts copy/=lib/openzeppelin-contracts copy/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":sdk-gov/=lib/sdk-gov/",":solidity-lib/=lib/solidity-lib/contracts/",":solidity-utils/=lib/solidity-utils/contracts/",":v2-core/=lib/v2-core/contracts/",":v2-periphery/=lib/v2-periphery/contracts/"],"optimizer":{"runs":1,"enabled":true},"metadata":{"bytecodeHash":"none"},"libraries":{},"evmVersion":"shanghai","compilationTarget":{"contracts/Vaults/FeeReceiverPLS.sol":"FeeReceiverPLS"}}
Contract ABI
[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_wpls","internalType":"address"},{"type":"address","name":"_buyburn","internalType":"address"},{"type":"address","name":"_dev","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BUYBURN_SHARE","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SHARE_DIVISOR","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"WPLS","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"buyburn","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"dev","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"flush","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"onTokenTransfer","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"bytes","name":"","internalType":"bytes"}]},{"type":"receive","stateMutability":"payable"}]
Contract Creation Code
0x60e060405234801561000f575f80fd5b5060405161069c38038061069c83398101604081905261002e91610066565b6001600160a01b0392831660805290821660a0521660c0526100a6565b80516001600160a01b0381168114610061575f80fd5b919050565b5f805f60608486031215610078575f80fd5b6100818461004b565b925061008f6020850161004b565b915061009d6040850161004b565b90509250925092565b60805160a05160c0516105ab6100f15f395f818160ff015261027401525f8181607e015261038d01525f8181610175015281816101b0015281816102a3015261032b01526105ab5ff3fe608060405260043610610062575f3560e01c80630490b9ea1461006d5780631b87d819146100b65780636b9f96ea146100d857806391cca3db146100ee578063a4c0ed3614610121578063b1d114e514610150578063ef8ef56f14610164575f80fd5b3661006957005b5f80fd5b348015610078575f80fd5b506100a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516100ad919061045e565b60405180910390f35b3480156100c1575f80fd5b506100ca601981565b6040519081526020016100ad565b3480156100e3575f80fd5b506100ec610197565b005b3480156100f9575f80fd5b506100a07f000000000000000000000000000000000000000000000000000000000000000081565b34801561012c575f80fd5b5061014061013b366004610472565b61044a565b60405190151581526020016100ad565b34801561015b575f80fd5b506100ca606481565b34801561016f575f80fd5b506100a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516370a0823160e01b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a08231906101e590309060040161045e565b602060405180830381865afa158015610200573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022491906104fe565b9050805f036102305750565b5f606461023e601984610529565b6102489190610546565b90505f6102558284610565565b9050801561030f5760405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303815f875af11580156102e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030d9190610578565b505b811561044557604051632e1a7d4d60e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015610374575f80fd5b505af1158015610386573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316476040515f6040518083038185875af1925050503d805f81146103f3576040519150601f19603f3d011682016040523d82523d5f602084013e6103f8565b606091505b50509050806104435760405162461bcd60e51b8152602060048201526013602482015272141314c81d1c985b9cd9995c8819985a5b1959606a1b604482015260640160405180910390fd5b505b505050565b5f610453610197565b506001949350505050565b6001600160a01b0391909116815260200190565b5f805f8060608587031215610485575f80fd5b84356001600160a01b038116811461049b575f80fd5b93506020850135925060408501356001600160401b03808211156104bd575f80fd5b818701915087601f8301126104d0575f80fd5b8135818111156104de575f80fd5b8860208285010111156104ef575f80fd5b95989497505060200194505050565b5f6020828403121561050e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761054057610540610515565b92915050565b5f8261056057634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561054057610540610515565b5f60208284031215610588575f80fd5b81518015158114610597575f80fd5b939250505056fea164736f6c6343000814000a000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a27000000000000000000000000bd48026e337f1419ec97f780b2045eb0ef2e0467000000000000000000000000a0419404ef7b81d9ec64367eb68e5f425eace618
Deployed ByteCode
0x608060405260043610610062575f3560e01c80630490b9ea1461006d5780631b87d819146100b65780636b9f96ea146100d857806391cca3db146100ee578063a4c0ed3614610121578063b1d114e514610150578063ef8ef56f14610164575f80fd5b3661006957005b5f80fd5b348015610078575f80fd5b506100a07f000000000000000000000000bd48026e337f1419ec97f780b2045eb0ef2e046781565b6040516100ad919061045e565b60405180910390f35b3480156100c1575f80fd5b506100ca601981565b6040519081526020016100ad565b3480156100e3575f80fd5b506100ec610197565b005b3480156100f9575f80fd5b506100a07f000000000000000000000000a0419404ef7b81d9ec64367eb68e5f425eace61881565b34801561012c575f80fd5b5061014061013b366004610472565b61044a565b60405190151581526020016100ad565b34801561015b575f80fd5b506100ca606481565b34801561016f575f80fd5b506100a07f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2781565b6040516370a0823160e01b81525f906001600160a01b037f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a2716906370a08231906101e590309060040161045e565b602060405180830381865afa158015610200573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022491906104fe565b9050805f036102305750565b5f606461023e601984610529565b6102489190610546565b90505f6102558284610565565b9050801561030f5760405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000a0419404ef7b81d9ec64367eb68e5f425eace61881166004830152602482018390527f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a27169063a9059cbb906044016020604051808303815f875af11580156102e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030d9190610578565b505b811561044557604051632e1a7d4d60e01b8152600481018390527f000000000000000000000000a1077a294dde1b09bb078844df40758a5d0f9a276001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015610374575f80fd5b505af1158015610386573d5f803e3d5ffd5b505050505f7f000000000000000000000000bd48026e337f1419ec97f780b2045eb0ef2e04676001600160a01b0316476040515f6040518083038185875af1925050503d805f81146103f3576040519150601f19603f3d011682016040523d82523d5f602084013e6103f8565b606091505b50509050806104435760405162461bcd60e51b8152602060048201526013602482015272141314c81d1c985b9cd9995c8819985a5b1959606a1b604482015260640160405180910390fd5b505b505050565b5f610453610197565b506001949350505050565b6001600160a01b0391909116815260200190565b5f805f8060608587031215610485575f80fd5b84356001600160a01b038116811461049b575f80fd5b93506020850135925060408501356001600160401b03808211156104bd575f80fd5b818701915087601f8301126104d0575f80fd5b8135818111156104de575f80fd5b8860208285010111156104ef575f80fd5b95989497505060200194505050565b5f6020828403121561050e575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761054057610540610515565b92915050565b5f8261056057634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561054057610540610515565b5f60208284031215610588575f80fd5b81518015158114610597575f80fd5b939250505056fea164736f6c6343000814000a