Address Contract Verified
Address
0x07EdC192B03f057973706deCd025bBb76f059823
Balance
0 ETH
Nonce
1
Code Size
2185 bytes
Creator
0x860C5ec2...EFA7 at tx 0x8fac0414...17ee6c
Indexed Transactions
0 (1 on-chain, 0.7% indexed)
Contract Bytecode
2185 bytes
0x608060405234801561000f575f80fd5b5060043610610106575f3560e01c80635d10c28a1161009e578063bb62609b1161006e578063bb62609b14610245578063d9d3b84414610260578063da10f2311461027b578063e4a247cd1461028c578063fe904b7a1461029e575f80fd5b80635d10c28a146101da578063781cd99d1461020c5780639a2b907214610217578063ad2026a61461022a575f80fd5b806331979041116100d957806331979041146101915780633e722e77146101a45780633eaf5d9f146101b5578063423204a9146101bf575f80fd5b806316d3bfbb1461010a57806319a29b9814610128578063209210dc1461015b5780633097cc1914610176575b5f80fd5b6101156301e1338081565b6040519081526020015b60405180910390f35b61014373e7e1917e8060f3ebd7eb5629423a736714093f0781565b6040516001600160a01b03909116815260200161011f565b61014373fb5fb15373373456e0ae71b025442172f7a65af981565b610143739ea2a43e72aa35e1681053e2824df116ea949d8681565b61014361019f3660046107af565b6102a9565b6101156969e10de76676d080000081565b6101bd6102c7565b005b61014373933c05f5818928ff173cb200ff704b0f1aa005ad81565b6003546101f490600160401b90046001600160401b031681565b6040516001600160401b03909116815260200161011f565b6101f463694d436081565b6003546101f4906001600160401b031681565b61014373860c5ec2d3d55fcc120686d37ba05e8206deefa781565b610143736af3db1aa8cab5e7a9b46aa62b01ffbccbc2b4fe81565b61014373b525ab1110a0105248bddb322bb5ce86931711b281565b6101156934f086f3b33b6840000081565b6101156a0422ca8b0a00a42500000081565b610115630784ce0081565b5f81600381106102b7575f80fd5b01546001600160a01b0316905081565b5f5b60038110156106ee575f8082600381106102e5576102e56107c6565b01546003546001600160a01b0390911691506001600160401b03164210610445576040516323b872dd60e01b815273b525ab1110a0105248bddb322bb5ce86931711b26004820152739ea2a43e72aa35e1681053e2824df116ea949d8660248201526a0422ca8b0a00a42500000060448201526001600160a01b038216906323b872dd906064016020604051808303815f875af1158015610388573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ac91906107da565b6103f65760405162461bcd60e51b815260206004820152601660248201527515cc0b4f95cc481d1c985b9cd9995c8819985a5b195960521b60448201526064015b60405180910390fd5b604080516a0422ca8b0a00a42500000081524260208201526001600160a01b038316917f1b25c860373a1525faa0d3be1efce1e810bb4fa2f6b20a3e762cc5c1c6a6099a910160405180910390a25b600354600160401b90046001600160401b031642106106db576040516323b872dd60e01b8152739ea2a43e72aa35e1681053e2824df116ea949d86600482015273860c5ec2d3d55fcc120686d37ba05e8206deefa760248201526969e10de76676d080000060448201526001600160a01b038216906323b872dd906064016020604051808303815f875af11580156104df573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050391906107da565b61054f5760405162461bcd60e51b815260206004820152601a60248201527f57312d3e5733206f7073207472616e73666572206661696c656400000000000060448201526064016103ed565b604080516969e10de76676d080000081524260208201526001600160a01b038316917f257beb10d098cab6bde20847b149d4885bbaa9d2762365a5934cce65be5c90e3910160405180910390a26040516323b872dd60e01b8152739ea2a43e72aa35e1681053e2824df116ea949d86600482015273e7e1917e8060f3ebd7eb5629423a736714093f0760248201526934f086f3b33b6840000060448201526001600160a01b038216906323b872dd906064016020604051808303815f875af115801561061d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064191906107da565b61068d5760405162461bcd60e51b815260206004820181905260248201527f57312d3e5732206c6971756964697479207472616e73666572206661696c656460448201526064016103ed565b604080516934f086f3b33b6840000081524260208201526001600160a01b038316917f3607084ecbc8f5799eaf8017cfdb6777ee440a0258b5832a9318b69266096f97910160405180910390a25b50806106e681610814565b9150506102c9565b506003546001600160401b031642106107475760038054630784ce0091905f906107229084906001600160401b031661082c565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b600354600160401b90046001600160401b031642106107ad576301e13380600360088282829054906101000a90046001600160401b0316610788919061082c565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b565b5f602082840312156107bf575f80fd5b5035919050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156107ea575f80fd5b815180151581146107f9575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161082557610825610800565b5060010190565b6001600160401b0381811683821601908082111561084c5761084c610800565b509291505056fea264697066735822122033e9b07b02f4304c7b46f8b01aa9a5d7d7d9ea232f2c0da9f735d8dd580d071664736f6c63430008140033
Verified Source Code Full Match
Compiler: v0.8.20+commit.a1b79de6
EVM: shanghai
Optimization: Yes (200 runs)
TreasuryFlowSchedulerV2.sol 125 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
/**
* TreasuryFlowSchedulerV2
* Hard-coded deployment version
* - No constructor arguments
* - No Remix array parsing issues
* - Deterministic treasury flows
*/
interface IERC20 {
function transferFrom(address from, address to, uint256 amount) external returns (bool);
}
contract TreasuryFlowSchedulerV2 {
/*//////////////////////////////////////////////////////////////
CONSTANTS
//////////////////////////////////////////////////////////////*/
uint256 public constant ONE_YEAR = 365 days;
uint256 public constant FOUR_YEARS = 1460 days;
uint64 public constant START_TIMESTAMP = 1766671200; // 2025-12-25 14:00 UTC
/*//////////////////////////////////////////////////////////////
WALLETS
//////////////////////////////////////////////////////////////*/
address public constant W0_COLD_TREASURY =
0xb525ab1110a0105248bDdb322bB5CE86931711b2;
address public constant W1_ANNUAL_BUFFER =
0x9eA2A43E72aA35E1681053E2824dF116EA949D86;
address public constant W2_LIQUIDITY_SEED =
0xe7E1917E8060F3EbD7Eb5629423A736714093f07;
address public constant W3_HOT_OPS =
0x860C5ec2D3D55FcC120686d37Ba05E8206deEFA7;
/*//////////////////////////////////////////////////////////////
TOKENS
//////////////////////////////////////////////////////////////*/
IERC20 public constant LIBRA =
IERC20(0x933C05f5818928fF173CB200Ff704b0F1aa005aD);
IERC20 public constant LITH =
IERC20(0x6Af3dB1aA8cab5e7A9B46AA62b01FfBcCBc2b4fe);
IERC20 public constant ORION =
IERC20(0xfB5FB15373373456e0aE71B025442172F7A65Af9);
IERC20[3] public TOKENS = [LIBRA, LITH, ORION];
/*//////////////////////////////////////////////////////////////
FLOW PARAMETERS
//////////////////////////////////////////////////////////////*/
uint256 public constant AMOUNT_4Y = 5_000_000 ether; // W0 → W1
uint256 public constant AMOUNT_OPS = 500_000 ether; // W1 → W3
uint256 public constant AMOUNT_LIQ = 250_000 ether; // W1 → W2
uint64 public next4Y;
uint64 public nextAnnual;
/*//////////////////////////////////////////////////////////////
EVENTS
//////////////////////////////////////////////////////////////*/
event MacroTransfer(address indexed token, uint256 amount, uint256 timestamp);
event AnnualOpsTransfer(address indexed token, uint256 amount, uint256 timestamp);
event AnnualLiquidityTransfer(address indexed token, uint256 amount, uint256 timestamp);
/*//////////////////////////////////////////////////////////////
INIT
//////////////////////////////////////////////////////////////*/
constructor() {
next4Y = uint64(START_TIMESTAMP + FOUR_YEARS);
nextAnnual = uint64(START_TIMESTAMP + ONE_YEAR);
}
/*//////////////////////////////////////////////////////////////
EXECUTION (PUBLIC)
//////////////////////////////////////////////////////////////*/
function tick() public {
for (uint256 i = 0; i < TOKENS.length; i++) {
IERC20 token = TOKENS[i];
if (block.timestamp >= next4Y) {
require(
token.transferFrom(W0_COLD_TREASURY, W1_ANNUAL_BUFFER, AMOUNT_4Y),
"W0->W1 transfer failed"
);
emit MacroTransfer(address(token), AMOUNT_4Y, block.timestamp);
}
if (block.timestamp >= nextAnnual) {
require(
token.transferFrom(W1_ANNUAL_BUFFER, W3_HOT_OPS, AMOUNT_OPS),
"W1->W3 ops transfer failed"
);
emit AnnualOpsTransfer(address(token), AMOUNT_OPS, block.timestamp);
require(
token.transferFrom(W1_ANNUAL_BUFFER, W2_LIQUIDITY_SEED, AMOUNT_LIQ),
"W1->W2 liquidity transfer failed"
);
emit AnnualLiquidityTransfer(address(token), AMOUNT_LIQ, block.timestamp);
}
}
if (block.timestamp >= next4Y) {
next4Y += uint64(FOUR_YEARS);
}
if (block.timestamp >= nextAnnual) {
nextAnnual += uint64(ONE_YEAR);
}
}
}
Read Contract
AMOUNT_4Y 0xe4a247cd → uint256
AMOUNT_LIQ 0xda10f231 → uint256
AMOUNT_OPS 0x3e722e77 → uint256
FOUR_YEARS 0xfe904b7a → uint256
LIBRA 0x423204a9 → address
LITH 0xbb62609b → address
ONE_YEAR 0x16d3bfbb → uint256
ORION 0x209210dc → address
START_TIMESTAMP 0x781cd99d → uint64
TOKENS 0x31979041 → address
W0_COLD_TREASURY 0xd9d3b844 → address
W1_ANNUAL_BUFFER 0x3097cc19 → address
W2_LIQUIDITY_SEED 0x19a29b98 → address
W3_HOT_OPS 0xad2026a6 → address
next4Y 0x9a2b9072 → uint64
nextAnnual 0x5d10c28a → uint64
Write Contract 1 functions
These functions modify contract state and require a wallet transaction to execute.
tick 0x3eaf5d9f
No parameters
Recent Transactions
This address has 1 on-chain transactions, but only 0.7% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →