Latest 25 from a total of 306 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 38088685 | 55 mins ago | IN | 0 ETH | 0.00000033 | ||||
| Approve | 38084955 | 3 hrs ago | IN | 0 ETH | 0.00000207 | ||||
| Transfer | 38084213 | 3 hrs ago | IN | 0 ETH | 0.00000023 | ||||
| Approve | 38079172 | 6 hrs ago | IN | 0 ETH | 0.00000006 | ||||
| Approve | 38063898 | 14 hrs ago | IN | 0 ETH | 0.00000032 | ||||
| Transfer | 38060808 | 16 hrs ago | IN | 0 ETH | 0.00000008 | ||||
| Transfer | 37994839 | 2 days ago | IN | 0 ETH | 0.00000015 | ||||
| Approve | 37983801 | 2 days ago | IN | 0 ETH | 0.00000006 | ||||
| Approve | 37970053 | 2 days ago | IN | 0 ETH | 0.00000017 | ||||
| Transfer | 37968648 | 2 days ago | IN | 0 ETH | 0.00000008 | ||||
| Approve | 37928238 | 3 days ago | IN | 0 ETH | 0.0000002 | ||||
| Approve | 37883770 | 4 days ago | IN | 0 ETH | 0.00000009 | ||||
| Approve | 37875277 | 4 days ago | IN | 0 ETH | 0.00000139 | ||||
| Approve | 37870978 | 5 days ago | IN | 0 ETH | 0.00000012 | ||||
| Approve | 37863579 | 5 days ago | IN | 0 ETH | 0.00000037 | ||||
| Transfer | 37851005 | 5 days ago | IN | 0 ETH | 0.00000012 | ||||
| Transfer | 37850832 | 5 days ago | IN | 0 ETH | 0.00000011 | ||||
| Approve | 37847246 | 5 days ago | IN | 0 ETH | 0.00000053 | ||||
| Transfer | 37835199 | 5 days ago | IN | 0 ETH | 0.00000017 | ||||
| Approve | 37826074 | 6 days ago | IN | 0 ETH | 0.00000212 | ||||
| Approve | 37824617 | 6 days ago | IN | 0 ETH | 0.00000047 | ||||
| Approve | 37824613 | 6 days ago | IN | 0 ETH | 0.00000081 | ||||
| Approve | 37795967 | 6 days ago | IN | 0 ETH | 0.00000035 | ||||
| Transfer | 37786544 | 7 days ago | IN | 0 ETH | 0.0000014 | ||||
| Transfer | 37758631 | 7 days ago | IN | 0 ETH | 0.00000109 |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Rage
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import {ERC20} from "./ERC20.sol";
import {RageStructs} from "./RageStructs.sol";
contract Rage is ERC20 {
// constant
uint256 private constant VERSION = 1;
address private constant DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD;
uint256 private constant MAX_SUPPLY_PERCENT = 5; // maximum supply percent that can be requested
uint256 private constant SUPPLY_DELAY = 1 days; // days between requestSupply from chaos engine
uint256 public constant FINAL_MAX_SUPPLY = 342_500_000e18; // 342.5M supply cap
// event
event RageChaosEngineSet(address indexed oldOwner, address indexed newOwner);
event SupplyRequested(address indexed rce, uint256 amount, uint256 percent);
event RageBurned(uint256 amount);
// state
address private owner;
uint256 private RAGE_INITIAL;
uint256 private RAGE_MINTED;
uint256 private RAGE_BURNED;
uint256 private LAST_REQUEST_SUPPLY;
// constructor
constructor(uint256 supply) ERC20("Rage Protocol", "RAGE", 18) {
owner = msg.sender;
_mint(owner, supply);
RAGE_INITIAL = supply;
}
// getTotalSupply
// get total rage supply minus the tokens that have been manually transfered to 0 or dead address
function getTotalSupply() public view returns (uint256) {
uint256 zeroAddressBalance = balanceOf[address(0)];
uint256 deadAddressBalance = balanceOf[DEAD_ADDRESS];
return totalSupply - zeroAddressBalance - deadAddressBalance;
}
// getInitialSupply
// amount of rage minted on token deployment
function getInitialSupply() public view returns (uint256) {
return RAGE_INITIAL;
}
// getMintedSupply
// tracks rage minted after initial mint
function getMintedSupply() public view returns (uint256) {
return RAGE_MINTED;
}
// getBurnedSupply
// tracks rage burned using the main burn function, transfer to 0 address are not counted
function getBurnedSupply() public view returns (uint256) {
return RAGE_BURNED;
}
// getMintableSupply
function getMintableSupply() public view returns (uint256) {
uint256 currentSupply = getTotalSupply();
if (currentSupply >= FINAL_MAX_SUPPLY) return 0;
return FINAL_MAX_SUPPLY - currentSupply;
}
// getState
function getState() external view returns (RageStructs.RageState memory) {
return RageStructs.RageState({
version: VERSION,
owner: owner,
supply: getTotalSupply(),
initial: getInitialSupply(),
mint: getMintedSupply(),
burn: getBurnedSupply(),
mintable: getMintableSupply(),
lastRequestSupply: LAST_REQUEST_SUPPLY
});
}
// burn
// anyone can burn rage tokens
function burn(uint256 amount) external {
_burn(msg.sender, amount);
RAGE_BURNED += amount;
emit RageBurned(amount);
}
// requestSupply
// rageChaosEngine can request supply once per day, for a maximum of 5% of the total supply until we reach final_max_supply
// the supply is sent directly to the rageChaosEngine
function requestSupply(uint256 percent) external {
require(msg.sender == owner, "unauthorized");
require(block.timestamp >= LAST_REQUEST_SUPPLY + SUPPLY_DELAY, "mustWait24Hours");
require(percent > 0 && percent <= MAX_SUPPLY_PERCENT, "invalidPercent");
uint256 supply = getTotalSupply();
uint256 amount = (supply * percent) / 100;
require(amount > 0, "amountTooSmall");
require(supply + amount <= FINAL_MAX_SUPPLY, "maxSupplyExceeded");
_mint(owner, amount);
RAGE_MINTED += amount;
LAST_REQUEST_SUPPLY = block.timestamp;
emit SupplyRequested(owner, amount, percent);
}
// setRageChaosEngine
// transfer to rageChaosEngine, once done it cannot be changed as the rage chaos engine as no functions to transfer ownership
function setRageChaosEngine(address newOwner) external {
require(msg.sender == owner, "unauthorized");
require(newOwner != address(0), "invalidAddress");
owner = newOwner;
emit RageChaosEngineSet(msg.sender, newOwner);
}
}// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;
/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
/*//////////////////////////////////////////////////////////////
EVENTS
//////////////////////////////////////////////////////////////*/
event Transfer(address indexed from, address indexed to, uint256 amount);
event Approval(address indexed owner, address indexed spender, uint256 amount);
/*//////////////////////////////////////////////////////////////
METADATA STORAGE
//////////////////////////////////////////////////////////////*/
string public name;
string public symbol;
uint8 public immutable decimals;
/*//////////////////////////////////////////////////////////////
ERC20 STORAGE
//////////////////////////////////////////////////////////////*/
uint256 public totalSupply;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
/*//////////////////////////////////////////////////////////////
EIP-2612 STORAGE
//////////////////////////////////////////////////////////////*/
uint256 internal immutable INITIAL_CHAIN_ID;
bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;
mapping(address => uint256) public nonces;
/*//////////////////////////////////////////////////////////////
CONSTRUCTOR
//////////////////////////////////////////////////////////////*/
constructor(
string memory _name,
string memory _symbol,
uint8 _decimals
) {
name = _name;
symbol = _symbol;
decimals = _decimals;
INITIAL_CHAIN_ID = block.chainid;
INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
}
/*//////////////////////////////////////////////////////////////
ERC20 LOGIC
//////////////////////////////////////////////////////////////*/
function approve(address spender, uint256 amount) public virtual returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transfer(address to, uint256 amount) public virtual returns (bool) {
balanceOf[msg.sender] -= amount;
// Cannot overflow because the sum of all user
// balances can't exceed the max uint256 value.
unchecked {
balanceOf[to] += amount;
}
emit Transfer(msg.sender, to, amount);
return true;
}
function transferFrom(
address from,
address to,
uint256 amount
) public virtual returns (bool) {
uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.
if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;
balanceOf[from] -= amount;
// Cannot overflow because the sum of all user
// balances can't exceed the max uint256 value.
unchecked {
balanceOf[to] += amount;
}
emit Transfer(from, to, amount);
return true;
}
/*//////////////////////////////////////////////////////////////
EIP-2612 LOGIC
//////////////////////////////////////////////////////////////*/
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) public virtual {
require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");
// Unchecked because the only math done is incrementing
// the owner's nonce which cannot realistically overflow.
unchecked {
address recoveredAddress = ecrecover(
keccak256(
abi.encodePacked(
"\x19\x01",
DOMAIN_SEPARATOR(),
keccak256(
abi.encode(
keccak256(
"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
),
owner,
spender,
value,
nonces[owner]++,
deadline
)
)
)
),
v,
r,
s
);
require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");
allowance[recoveredAddress][spender] = value;
}
emit Approval(owner, spender, value);
}
function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
}
function computeDomainSeparator() internal view virtual returns (bytes32) {
return
keccak256(
abi.encode(
keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
keccak256(bytes(name)),
keccak256("1"),
block.chainid,
address(this)
)
);
}
/*//////////////////////////////////////////////////////////////
INTERNAL MINT/BURN LOGIC
//////////////////////////////////////////////////////////////*/
function _mint(address to, uint256 amount) internal virtual {
totalSupply += amount;
// Cannot overflow because the sum of all user
// balances can't exceed the max uint256 value.
unchecked {
balanceOf[to] += amount;
}
emit Transfer(address(0), to, amount);
}
function _burn(address from, uint256 amount) internal virtual {
balanceOf[from] -= amount;
// Cannot underflow because a user's balance
// will never be larger than the total supply.
unchecked {
totalSupply -= amount;
}
emit Transfer(from, address(0), amount);
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
library RageStructs {
struct RbpState {
uint256 version; // rbp version
RageStructs.RbpStateValue state; // rbp internal state
RageStructs.RbpConfig config; // rbp internal configurations
RageStructs.RbpRecent recent; // rbp most recent actions
}
struct RbpViewState {
uint256 price; // current rage price
uint256 activeSupply; // active supply as declared by rce
uint256 fmv; // current rage fmv
uint256 backingPerShare; // current rage backing per share
uint256 activeAssetsUsdcValue; // Total USDC value of active assets
uint256 rawHestia; // Raw HESTIA balance
uint256 rawCircle; // Raw CIRCLE balance
uint256 pendingHestia; // Pending HESTIA
uint256 pendingCircle; // Pending CIRCLE
uint256 bonusHestia; // Available bonus HESTIA
uint256 bonusCircle; // Available bonus CIRCLE
uint256 activePhestia; // Active pHESTIA balance
uint256 activePcircle; // Active pCIRCLE balance
uint256 activeHestia; // Active HESTIA balance
uint256 activeCircle; // Active CIRCLE balance
uint256 investPercentHestia; // HESTIA investment percentage
uint256 investPercentCircle; // CIRCLE investment percentage
uint256 underlyingHestia; // HESTIA per RAGE
uint256 underlyingCircle; // CIRCLE per RAGE
uint256 underlyingHestiaValue; // USDC value of HESTIA per RAGE
uint256 underlyingCircleValue; // USDC value of CIRCLE per RAGE
uint256 underlyingTotalValue; // Total USDC value per RAGE
uint256 underlyingHestiaPercent; // HESTIA percentage
uint256 underlyingCirclePercent; // CIRCLE percentage
uint256 rageFromOnePercentUsdc; // RAGE received from one percent of active value in USDC
uint256 hestiaFromOnePercentRage; // HESTIA received from one percent of Rage active supply
uint256 circleFromOnePercentRage; // CIRCLE received from one percent of Rage active supply
}
struct RageState {
uint256 version; // version of the rage contract
address owner; // owner of the rage token
uint256 supply; // current rage supply
uint256 initial; // rage initial supply
uint256 mint; // total minted rage
uint256 burn; // total burned rage
uint256 mintable; // supply that can still be minted
uint256 lastRequestSupply; // timestamp of last supply request
}
struct RonState {
uint256 version; // version of the rage option contract
address rce; // address of the rce contract
address rbp; // address of the rbp contract
uint256 supply; // total nft supply
string baseUri; // base uri for the nft metadata
string contractUri; // uri of the contract metadata json file
}
struct RbpStateValue {
uint256 status; // Protocol status (0 = off, 1 = on)
uint256 nextConfigTime; // Next allowed configuration update timestamp
uint256 pendingHestia; // Amount of HESTIA tokens in pending backing
uint256 pendingCircle; // Amount of CIRCLE tokens in pending backing
uint256 totalOptions; // Total number of investment options created
uint256 optionsMint; // Options converted to RAGE tokens
uint256 optionsAdp; // Options minted using Asset Decline Protection
uint256 optionsAdpValue; // USDC value of options minted using Asset Decline Protection
uint256 optionsRefund; // Options that were refunded
uint256 optionsRefundValue; // USDC value of refunded options
uint256 totalInvest; // USDC value of invest
uint256 totalInvestorBonus; // USDC value of bonus given to investor
uint256 totalEcosystemBonus; // USDC value of bonus given to ecosystem
uint256 totalDebt; // Total USDC owed for potential refunds
uint256 totalClaims; // Total number of unique claim wallets
uint256 totalAdpDilution; // Total USDC value diluted through ADP
uint256 claimsProcessed; // Number of claims successfully processed
uint256 claimsHestia; // Total HESTIA tokens claimed
uint256 claimsCircle; // Total CIRCLE tokens claimed
}
struct OraclePrices {
uint256 wethTwapUsdcPrice; // TWAP price of WETH in USDC
uint256 hestiaTwapUsdcPrice; // TWAP price of HESTIA in USDC
uint256 circleTwapUsdcPrice; // TWAP price of CIRCLE in USDC
uint256 hestiaCircleTwapUsdcPrice; // TWAP price of 1 Hestia and 1 Circle in USDC
uint256 rageTwapUsdcPrice; // TWAP price of RAGE in USDC
uint256 hestiaUsdcPriceAfterBondDebond; // HESTIA price after bond/debond fees
uint256 circleUsdcPriceAfterBondDebond; // CIRCLE price after bond/debond fees
uint256 pHestiaUsdcPriceAfterDebond; // pHESTIA value in USDC after debonding
uint256 pCircleUsdcPriceAfterDebond; // pCIRCLE value in USDC after debonding
uint256 pHestiaInHestiaAfterDebond; // HESTIA received per pHESTIA after debond
uint256 pCircleInCircleAfterDebond; // CIRCLE received per pCIRCLE after debond
uint256 pHestiaRequiredForHestia; // pHESTIA needed to get 1 HESTIA
uint256 pCircleRequiredForCircle; // pCIRCLE needed to get 1 CIRCLE
uint256 pHestiaRequiredForHestiaResult; // HESTIA received when doing pHestiaRequiredForHestia (should be close to 1)
uint256 pCircleRequiredForCircleResult; // CIRCLE received when doing pHestiaRequiredForHestia (should be close to 1)
}
struct RbpConfig {
uint256 minInvest; // Adjustable from $1 to $100 (default $10) - determines the minimum amount of USDC to receive to create a position
uint256 maxInvest; // Adjustable from $1000 to $100000 (default $10000) - determines the maximum amount of USDC to receive to create a position
uint256 hestiaPercent; // Adjustable from 55% to 95% (default: 80%) - determines the percentage of each investment and bonus allocated to HESTIA tokens
uint256 investorBonus; // Adjustable from 1% to 15% (default: 6%) - sets the bonus percentage in both tokens (at their ratios) given to investors on their token purchases to cover wrapping fees and provide net benefit
uint256 mintDelay; // Adjustable from 1 to 90 days (default: 3 days) - controls the mandatory waiting period after investment before NFT receipts can be converted to RAGE tokens
uint256 adpDelay; // Adjustable from 30 to 300 days (default: 60 days) - sets the waiting period after investment before Asset Decline Protection becomes available for NFT conversion
uint256 adpPercent; // Adjustable from 55% to 90% (default: 75%) - determines the percentage of original investment value used for Asset Decline Protection calculations. Cannot be more than refund percent.
uint256 ecosystemBonus; // Adjustable from 1% to 15% (default: 6%) - controls the bonus tokens (distributed at their ratios) added to active assets with each new investment
uint256 refundPercent; // Adjustable from 55% to 95% (default: 85%) - sets the percentage of original investment recoverable through the USDC refund mechanism (does not affect Asset Decline Protection calculations)
uint256 refundDelay; // Adjustable from 500 days to 1500 days (default 1000 days) - sets the waiting period after investment before a refund can be requested
uint256 minClaim; // Adjustable from 1e15 to 1e18 (default 1e18) - sets the minimum amount of Rage to reserve a claim
uint256 maxClaim; // Adjustable from 100e18 to infinity (default 1000e18) - sets the maximum amount of Rage to reserve a claim
uint256 claimFee; // Adjustable from 1% to 20% (default: 10%) - determines the fee applied when users claim their RAGE tokens
uint256 claimDelay; // Adjustable from 10 to 100 days (default: 30 days) - sets the waiting period between creating and executing claims
uint256 claimValidity; // Adjustable from 1 to 30 days (default: 10 days) - sets the validity period of a claim
uint256 slippage; // Adjustable from 0 (off) to 2500 (25%), default is 500 or 5%, slippage when swapping on the pool
uint32 twap; // Adjustable from 1 seconds to 3600 seconds, default is 30 seconds, twap duration for price calculation
}
struct RceConfig {
uint256 stackRage; // amount of rage to sell in stack underlying (range: 100-10000, default: 100)
uint256 stackHestia; // percent of hestia for stack underlying (range: 0-100, default: 80)
uint256 boostRage; // amount of rage to sell in pool boost (0=off, range: 100-10000, default: 100)
uint128 crushDecrease; // liquidity decrease for rageCrush (0=off, range: 100-10000, default: 0)
bool crushBuy; // whether rageCrush buys with collected USDC (default: true)
uint256 burstRage; // amount of rage to sell in rage burst (range: 1e18-200e18, default: 10e18)
uint256 burstLoop; // number of loops to do in rage burst (range: 1-5, default: 2)
uint256 slippage; // slippage for swaps/liquidity (0=off, max: 2500, default: 500)
address podAddress; // pod address excluded from active supply (default: address(0))
address sideAddress1; // side pool address #1 excluded from active supply (default: address(0))
address sideAddress2; // side pool address #2 excluded from active supply (default: address(0))
}
struct RbpRecent {
uint256 lastInvest; // Option ID of most recent investment
uint256 lastMintRage; // Option ID of most recent RAGE mint
uint256 lastRefund; // Option ID of most recent refund
address lastReserveClaim; // Wallet address of most recent claim reservation
address lastClaim; // Wallet address of most recent claim execution
}
struct Option {
uint256 id; // Unique option identifier
uint256 version; // Contract version when created
uint8 status; // Option status (1=active, 2=minted, 3=minted with ADP, 4=refunded)
string transactionType; // Transaction type ("i"=invest, "e"=ETH invest, "r"=receive)
address walletCreated; // Original creator wallet address
address walletUpdated; // Wallet that last updated the option
address referral; // Referral address if applicable
uint256 dateCreated; // Timestamp when option was created
uint256 dateUpdated; // Timestamp of last update
uint256 dateMintable; // Timestamp when RAGE minting becomes available
uint256 dateAdpAble; // Timestamp when ADP protection activates
uint256 dateRefundable; // Timestamp when refund becomes available
uint256 price; // price per rage when option was created
uint256 fmv; // fmv when option was created
uint256 backingPerShare; // backing per share at the moment the option was created
uint256 usdcInvest; // Original USDC investment amount
uint256 usdcAdp; // USDC value protected by ADP
uint256 usdcRefund; // USDC amount refundable
uint256 pendingHestia; // HESTIA tokens pending in this option
uint256 pendingCircle; // CIRCLE tokens pending in this option
uint256 rageEstimated; // Estimated RAGE tokens at creation
uint256 rageMinted; // Actual RAGE tokens minted
uint256 usdcAdpDilution; // USDC value diluted if ADP was used
uint256 usdcInvestorBonus; // USDC value of bonus given to investor
uint256 hestiaInvestorBonus; // HESTIA bonus given to investor
uint256 circleInvestorBonus; // CIRCLE bonus given to investor
uint256 usdcEcosystemBonus; // USDC value of bonus given to ecosystem
uint256 hestiaEcosystemBonus; // HESTIA bonus given to ecosystem
uint256 circleEcosystemBonus; // CIRCLE bonus given to ecosystem
uint256 configHestiaPercent; // HESTIA allocation % at creation
uint256 configCirclePercent; // CIRCLE allocation % at creation
uint256 configInvestorBonus; // Investor bonus % at creation
uint256 configMintDelay; // Mint delay at creation
uint256 configAdpDelay; // ADP delay at creation
uint256 configAdpPercent; // ADP percentage at creation
uint256 configRefundPercent; // Refund percentage at creation
uint256 configRefundDelay; // Refund delay at creation
}
struct Claim {
address wallet; // Wallet address making the claim
uint256 version; // Contract version when created
uint8 status; // Claim status (1=active, 2=claimed)
uint256 claimedCount; // Number of times this wallet has claimed
uint256 dateCreated; // Timestamp when claim was reserved
uint256 dateUpdated; // Timestamp of last update
uint256 dateClaimableStart; // Start of claim validity window
uint256 dateClaimableEnd; // End of claim validity window
uint256 rageBurn; // RAGE tokens to burn (before fee)
uint256 rageAfterFee; // RAGE tokens after fee deduction
uint256 price; // price per rage when claim was created
uint256 fmv; // fmv when claim was created
uint256 backingPerShare; // backing per share at the moment the claim was created
uint256 claimHestia; // HESTIA tokens claimable
uint256 claimCircle; // CIRCLE tokens claimable
uint256 lastClaimHestia; // HESTIA claimed in last execution
uint256 lastClaimCircle; // CIRCLE claimed in last execution
uint256 totalClaimHestia; // All HESTIA claimed by this wallet
uint256 totalClaimCircle; // All CIRCLE claimed by this wallet
uint256 configClaimFee; // Claim fee % at reservation
uint256 configClaimDelay; // Claim delay at reservation
uint256 configClaimValidity; // Validity period at reservation
}
struct OptionsOverview {
uint256 totalDebt; // Total USDC owed for potential refunds
uint256 totalDebtReal; // Real debt considering current asset values
uint256 adpDebt; // USDC owed for ADP-eligible options
uint256 adpDebtReal; // Real ADP debt considering current asset values
uint256 refundDebt; // USDC owed for refundable options
uint256 refundDebtReal; // Real refund debt considering current asset values
uint256 mintableRage; // Total RAGE tokens mintable from active options
uint256 usdcInvested; // Total USDC invested across all options
uint256 usdcBonus; // Total USDC value of all bonuses
uint256 hestiaInvestorBonus; // Total HESTIA given as investor bonus
uint256 circleInvestorBonus; // Total CIRCLE given as investor bonus
uint256 optionActiveCount; // Count of options with status 1
uint256 optionMintCount; // Count of options with status 2
uint256 optionAdpCount; // Count of options with status 3
uint256 optionRefundCount; // Count of options with status 4
uint256 totalPendingHestia; // Sum of all pendingHestia in active options
uint256 totalPendingCircle; // Sum of all pendingCircle in active options
uint256 optionsRefundableWithinThreshold; // Options becoming refundable soon (for liquidation planning)
uint256 refundDebtRealThreshold; // Real refund debt in the next 30 days considering current asset values
uint256 optionsMintableNow; // Active options that can be minted right now
uint256 optionsAdpAbleNow; // Active options eligible for ADP right now
uint256 optionsRefundableNow; // Active options that can be refunded right now
uint256 totalAdpDilution; // Total USDC diluted through ADP (from status 3 options)
uint256 totalRefundValue; // Total USDC refunded (from status 4 options)
uint256 totalRageMinted; // Sum of rageMinted from minted options
}
struct ClaimsOverview {
uint256 activeClaimsCount; // Count of active claims (status 1)
uint256 claimedCount; // Count of claimed (status 2)
uint256 pendingClaimsCount; // Active claims not yet in claim window
uint256 claimableNowCount; // Active claims currently in claim window
uint256 expiredClaimsCount; // Active claims past their window
uint256 pendingHestia; // Total HESTIA in pending claims
uint256 pendingCircle; // Total CIRCLE in pending claims
uint256 claimableHestia; // Total HESTIA in claimable-now claims
uint256 claimableCircle; // Total CIRCLE in claimable-now claims
uint256 totalRageToBurn; // Total RAGE that will be burned from active claims
uint256 totalClaimedHestia; // Historical total of HESTIA claimed
uint256 totalClaimedCircle; // Historical total of CIRCLE claimed
}
struct InvestOverview {
address wallet; // Investor wallet address
string transactionType; // Transaction type identifier
bool canInvest; // Whether investment is allowed
bool isAmountValid; // Whether amount is within min/max limits
bool isPercentValid; // Whether allocation percentages sum to 100%
bool hasBonus; // Whether bonus HESTIA is available
uint256 rageEstimated; // Estimated RAGE tokens to receive
uint256 rageEstimatedValue; // Estimated USDC value of Rage tokens to receive
uint256 dateMintable; // When RAGE minting becomes available
uint256 dateAdpAble; // When ADP protection activates
uint256 dateRefundable; // When refund becomes available
uint256 usdcInvest; // USDC amount to invest
uint256 usdcAdp; // USDC protected by ADP
uint256 usdcRefund; // USDC refundable amount
uint256 usdcInvestorBonus; // USDC value of investor bonus
uint256 usdcEcosystemBonus; // USDC value of ecosystem bonus
uint256 usdcHestiaBonus; // USDC value of Hestia investor + ecosystem bonus
uint256 usdcCircleBonus; // USDC value of Circle investor + ecosystem bonus
uint256 hestiaInvestorBonus; // HESTIA tokens as investor bonus
uint256 hestiaEcosystemBonus; // HESTIA tokens as ecosystem bonus
uint256 circleInvestorBonus; // CIRCLE tokens as investor bonus
uint256 circleEcosystemBonus; // CIRCLE tokens as ecosystem bonus
uint256 configHestiaPercent; // Current HESTIA allocation %
uint256 configCirclePercent; // Current CIRCLE allocation %
uint256 configInvestorBonus; // Current investor bonus %
uint256 configMintDelay; // Current mint delay setting
uint256 configAdpDelay; // Current ADP delay setting
uint256 configAdpPercent; // Current ADP percentage
uint256 configRefundPercent; // Current refund percentage
uint256 configRefundDelay; // Current refund delay
}
struct OptionOverview {
address wallet; // Option owner wallet address
uint256 optionId; // Id of the option nft
bool canMint; // Whether RAGE minting is available
bool canMintWithAdp; // Whether ADP minting is available
bool canRefund; // Whether refund is available
bool hasRefundUsdc; // Whether contract has USDC for refund
uint256 rageMint; // RAGE tokens that can be minted
uint256 rageMintValue; // USDC value of Rage tokens to be minted
uint256 usdcAssets; // Current USDC value of the assets
uint256 usdcCurrent; // Current USDC value for minting
uint256 usdcBalance; // Contract's USDC balance
uint256 usdcAdpDilution; // ADP dilution amount in USDC
uint256 backingPerShare; // Current backing per share
bool mintValueProfitable; // Whether minting rage is profitable (rageMintValue higher than assets or adp value)
bool mintBackingProfitable; // Whether minting rage now has less backing that when option was created
}
struct ReserveClaimOverview {
address wallet; // Claimer wallet address
bool canReserve; // Whether claim can be reserved
bool hasActiveClaim; // Whether wallet has active claim
bool isFirstClaim; // Whether this is wallet's first claim
uint256 rageBurn; // RAGE to burn (before fee)
uint256 rageBurnValue; // USDC value of rage to burn (before fee)
uint256 rageAfterFee; // RAGE after fee deduction
uint256 claimHestia; // HESTIA claimable
uint256 claimCircle; // CIRCLE claimable
uint256 claimValue; // USDC value of claim assets
uint256 dateClaimableStart; // Start of validity window
uint256 dateClaimableEnd; // End of validity window
uint256 configClaimFee; // Current claim fee %
uint256 configClaimDelay; // Current claim delay
uint256 configClaimValidity; // Current validity period
}
struct ClaimOverview {
address wallet; // Claimer wallet address
bool canClaim; // Whether claim can be executed
bool hasBalance; // Whether wallet has RAGE balance
bool isValid; // Whether within validity window
uint256 rageBurn; // RAGE to burn (before fee)
uint256 rageBurnValue; // USDC value of rage to burn (before fee)
uint256 claimHestia; // HESTIA to receive
uint256 claimCircle; // CIRCLE to receive
uint256 claimValue; // USDC value of claim assets
uint256 pHestiaNeeded; // pHestia needed for debond
uint256 pCircleNeeded; // pCircle needed for debond
uint256 recalcClaimHestia; // Recalculated HESTIA amount
uint256 recalcClaimCircle; // Recalculated CIRCLE amount
uint256 recalcClaimValue; // USDC value of recalculated claim assets
uint256 backingPerShare; // Current backing per share
}
struct RceStateValue {
uint256 nextBoostTime;
uint256 nextStackTime;
uint256 nextCrushTime;
uint256 nextBurstTime;
uint256 nextConfigTime;
uint256 nextYearlyAllowance;
address poolToken0;
uint256 nftLocked;
address rageBuyingProtocol;
address pendingRbp;
address ownerProposer;
address owner1;
address owner2;
address automator;
uint256 amountAllowance;
uint256 amountTransfer;
uint256 amountMint;
uint256 amountRageStack;
uint256 amountUsdcBoost;
uint256 amountRageBoost;
uint256 amountUsdcCrush;
uint256 lastStackTime;
uint256 lastStackAmount;
uint256 lastBoostTime;
uint256 lastBoostAmount;
uint256 lastCrushTime;
uint256 lastCrushAmount;
uint256 lastBurstTime;
uint256 lastBurstAmount;
}
struct RceState {
uint256 version; // Contract version identifier
address rageSwapper; // Address of the Rage Swapper contract for DEX operations
address multisig; // Multisig wallet address for admin operations
address poolAddress; // Uniswap V3 pool address for RAGE/USDC
uint256 nftId; // Uniswap V3 NFT position ID
uint256 nftSupply; // RAGE tokens within the NFT of the RAGE/USDC pool
uint256 activeSupply; // RAGE tokens that are active and backed by underlying assets
uint256 rageBalance; // Current RAGE balance in contract
uint256 usdcBalance; // Current USDC balance in contract
RceConfig config;
RceStateValue state;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"viaIR": true,
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RageBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"RageChaosEngineSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rce","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"SupplyRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FINAL_MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMintableSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMintedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"components":[{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"uint256","name":"initial","type":"uint256"},{"internalType":"uint256","name":"mint","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"mintable","type":"uint256"},{"internalType":"uint256","name":"lastRequestSupply","type":"uint256"}],"internalType":"struct RageStructs.RageState","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"requestSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setRageChaosEngine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60e0806040523461049b57602081611594803803809161001f82856104a0565b83398101031261049b5751604051906100396040836104a0565b600d82526c149859d948141c9bdd1bd8dbdb609a1b6020830152604051906100626040836104a0565b60048252635241474560e01b602083015282516001600160401b0381116103c25761008e6000546104c3565b601f8111610449575b506020601f82116001146103e357819293946000926103d8575b50508160011b916000199060031b1c1916176000555b81516001600160401b0381116103c2576100e26001546104c3565b601f811161035d575b50602092601f82116001146102f857928192936000926102ed575b50508160011b916000199060031b1c1916176001555b60126080524660a0526040516000906000549181610139846104c3565b9182825260208201946001811690816000146102d15750600114610285575b610164925003826104a0565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526101d860c0826104a0565b51902060c052600680546001600160a01b0319163317905560025481810190811061026f57600255336000526003602052604060002081815401905560405181815260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a360075560405161107690816104fe823960805181610945015260a05181610df4015260c05181610e1b0152f35b634e487b7160e01b600052601160045260246000fd5b50600080805290916000805160206115748339815191525b8183106102b557505090602061016492820101610158565b602091935080600191548385880101520191019091839261029d565b60ff191686525061016492151560051b82016020019050610158565b015190503880610106565b601f198216936001600052806000209160005b868110610345575083600195961061032c575b505050811b0160015561011c565b015160001960f88460031b161c1916905538808061031e565b9192602060018192868501518155019401920161030b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c810191602084106103b8575b601f0160051c01905b8181106103ac57506100eb565b6000815560010161039f565b9091508190610396565b634e487b7160e01b600052604160045260246000fd5b0151905038806100b1565b601f1982169060008052806000209160005b81811061043157509583600195969710610418575b505050811b016000556100c7565b015160001960f88460031b161c1916905538808061040a565b9192602060018192868b0151815501940192016103f5565b60008052600080516020611574833981519152601f830160051c81019160208410610491575b601f0160051c01905b8181106104855750610097565b60008155600101610478565b909150819061046f565b600080fd5b601f909101601f19168101906001600160401b038211908210176103c257604052565b90600182811c921680156104f3575b60208310146104dd57565b634e487b7160e01b600052602260045260246000fd5b91607f16916104d256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde0314610c10578063095ea7b314610b96578063102c500314610b7857806318160ddd14610b5a5780631865c57d14610a665780631fcdbed314610a3f57806323b872dd14610969578063313ce5671461092b578063332b746e146109105780633644e515146108f557806342966c681461086957806370a082311461082f5780637ecebe00146107f557806381a4a6d8146107d75780638cddbfc11461072957806395d89b4114610649578063a9059cbb146105cf578063b198e1b5146103b6578063c4e41b2214610393578063d505accf14610182578063dd62ed3e146101315763f2113b5a1461010e57600080fd5b3461012c57600036600319011261012c576020600854604051908152f35b600080fd5b3461012c57604036600319011261012c5761014a610d70565b610152610d86565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b3461012c5760e036600319011261012c5761019b610d70565b6101a3610d86565b6044356064359260843560ff811680910361012c5742851061034e5760806000916020936101cf610def565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c0815261024c60e082610d05565b519020604051908682019261190160f01b84526022830152604282015260428152610278606282610d05565b519020906040519182528482015260a435604082015260c435606082015282805260015afa15610342576000516001600160a01b031680151580610339575b15610303577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259160209160005260048252604060002085600052825280604060002055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b508281146102b7565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b3461012c57600036600319011261012c5760206103ae610fb9565b604051908152f35b3461012c57602036600319011261012c57600654600435906001600160a01b03166103e2338214610f7e565b600a54620151808101809111610541574210610598578115158061058d575b156105575761040e610fb9565b90828202828104841483151715610541576064900491821561050b57610441836b011b4f32342d2bebe680000092610f71565b116104d257816040916104777ffd3d7013fc09061d166a60d8e0481284544d01db34c202ebba67ee1c23f93ebf94600254610f71565b60025580600052600360205282600020828154019055600060008051602061102183398151915260208551858152a36104b281600854610f71565b60085542600a5560018060a01b03600654169382519182526020820152a2005b60405162461bcd60e51b81526020600482015260116024820152701b585e14dd5c1c1b1e515e18d959591959607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d185b5bdd5b9d151bdbd4db585b1b60921b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5914195c98d95b9d60921b6044820152606490fd5b506005821115610401565b60405162461bcd60e51b815260206004820152600f60248201526e6d757374576169743234486f75727360881b6044820152606490fd5b3461012c57604036600319011261012c576105e8610d70565b602435903360005260036020526040600020610605838254610d9c565b905560018060a01b031690816000526003602052604060002081815401905560405190815260008051602061102183398151915260203392a3602060405160018152f35b3461012c57600036600319011261012c576040516001546000908161066d82610c98565b808552916001811690811561070257506001146106a5575b6106a18461069581860382610d05565b60405191829182610d27565b0390f35b600181527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106106e85750909150810160200161069582610685565b9192600181602092548385880101520191019092916106cf565b60ff191660208087019190915292151560051b850190920192506106959150839050610685565b3461012c57602036600319011261012c57610742610d70565b6006549061075a336001600160a01b03841614610f7e565b6001600160a01b03169081156107a1576001600160a01b0319168117600655337f10b35f6837cc3382dde80a8dc8ef211a8786e14e1f8ed5c0b2320d091c92912b600080a3005b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c69644164647265737360901b6044820152606490fd5b3461012c57600036600319011261012c576020600754604051908152f35b3461012c57602036600319011261012c576001600160a01b03610816610d70565b1660005260056020526020604060002054604051908152f35b3461012c57602036600319011261012c576001600160a01b03610850610d70565b1660005260036020526020604060002054604051908152f35b3461012c57602036600319011261012c577f2bbc7f1958700d1a653af8f27f9697416bfe42b495ec5dd5aaae48892297b3d86020600435336000526003825260406000206108b8828254610d9c565b905580600254036002556000604051828152600080516020611021833981519152843392a36108e981600954610f71565b600955604051908152a1005b3461012c57600036600319011261012c5760206103ae610def565b3461012c57600036600319011261012c5760206103ae610da9565b3461012c57600036600319011261012c57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57606036600319011261012c57610982610d70565b61098a610d86565b6001600160a01b0390911660008181526004602090815260408083203384528252909120546044359360008051602061102183398151915292918560018201610a19575b5050836000526003825260406000206109e8868254610d9c565b90556001600160a01b03166000818152600383526040908190208054870190555194855293a3602060405160018152f35b610a2291610d9c565b6000858152600484526040808220338352855290205585856109ce565b3461012c57600036600319011261012c5760206040516b011b4f32342d2bebe68000008152f35b3461012c57600036600319011261012c57600060e0604051610a8781610cd2565b8281528260208201528260408201528260608201528260808201528260a08201528260c0820152015261010060018060a01b0360065416610ac6610fb9565b60075460085460095490610ad8610da9565b92600a549460e0604051610aeb81610cd2565b600181526020810198895260408101928352606081019384526080810194855260a0810195865260c0810196875201958652604051966001885260018060a01b0390511660208801525160408701525160608601525160808501525160a08401525160c08301525160e0820152f35b3461012c57600036600319011261012c576020600254604051908152f35b3461012c57600036600319011261012c576020600954604051908152f35b3461012c57604036600319011261012c57610baf610d70565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b3461012c57600036600319011261012c576040516000805481610c3282610c98565b80855291600181169081156107025750600114610c59576106a18461069581860382610d05565b80805260208120939250905b808210610c7e5750909150810160200161069582610685565b919260018160209254838588010152019101909291610c65565b90600182811c92168015610cc8575b6020831014610cb257565b634e487b7160e01b600052602260045260246000fd5b91607f1691610ca7565b610100810190811067ffffffffffffffff821117610cef57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610cef57604052565b91909160208152825180602083015260005b818110610d5a575060409293506000838284010152601f8019910116010190565b8060208092870101516040828601015201610d39565b600435906001600160a01b038216820361012c57565b602435906001600160a01b038216820361012c57565b9190820391821161054157565b610db1610fb9565b6b011b4f32342d2bebe6800000811015610de9576b011b4f32342d2bebe6800000036b011b4f32342d2bebe680000081116105415790565b50600090565b6000467f000000000000000000000000000000000000000000000000000000000000000003610e3d57507f000000000000000000000000000000000000000000000000000000000000000090565b6040518181815493610e4e85610c98565b928383526020830195600181169081600014610f525750600114610ef4575b50610e7a92500382610d05565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a08152610eee60c082610d05565b51902090565b808093949250527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610f36575050906020610e7a9282010138610e6d565b6020919350806001915483858801015201910190918392610f1d565b60ff1916875250610e7a93151560051b83016020019150389050610e6d565b9190820180921161054157565b15610f8557565b60405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606490fd5b60036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5461dead6000527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c5460025461101d9261101891610d9c565b610d9c565b9056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f1f0570eb5169b56667753c4809be103b77aa4da23ebbe21b722a5c69df35fe164736f6c634300081a0033290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563000000000000000000000000000000000000000000000740b23b7fb908e80000
Deployed Bytecode
0x6080604052600436101561001257600080fd5b60003560e01c806306fdde0314610c10578063095ea7b314610b96578063102c500314610b7857806318160ddd14610b5a5780631865c57d14610a665780631fcdbed314610a3f57806323b872dd14610969578063313ce5671461092b578063332b746e146109105780633644e515146108f557806342966c681461086957806370a082311461082f5780637ecebe00146107f557806381a4a6d8146107d75780638cddbfc11461072957806395d89b4114610649578063a9059cbb146105cf578063b198e1b5146103b6578063c4e41b2214610393578063d505accf14610182578063dd62ed3e146101315763f2113b5a1461010e57600080fd5b3461012c57600036600319011261012c576020600854604051908152f35b600080fd5b3461012c57604036600319011261012c5761014a610d70565b610152610d86565b6001600160a01b039182166000908152600460209081526040808320949093168252928352819020549051908152f35b3461012c5760e036600319011261012c5761019b610d70565b6101a3610d86565b6044356064359260843560ff811680910361012c5742851061034e5760806000916020936101cf610def565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c0815261024c60e082610d05565b519020604051908682019261190160f01b84526022830152604282015260428152610278606282610d05565b519020906040519182528482015260a435604082015260c435606082015282805260015afa15610342576000516001600160a01b031680151580610339575b15610303577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259160209160005260048252604060002085600052825280604060002055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b508281146102b7565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b3461012c57600036600319011261012c5760206103ae610fb9565b604051908152f35b3461012c57602036600319011261012c57600654600435906001600160a01b03166103e2338214610f7e565b600a54620151808101809111610541574210610598578115158061058d575b156105575761040e610fb9565b90828202828104841483151715610541576064900491821561050b57610441836b011b4f32342d2bebe680000092610f71565b116104d257816040916104777ffd3d7013fc09061d166a60d8e0481284544d01db34c202ebba67ee1c23f93ebf94600254610f71565b60025580600052600360205282600020828154019055600060008051602061102183398151915260208551858152a36104b281600854610f71565b60085542600a5560018060a01b03600654169382519182526020820152a2005b60405162461bcd60e51b81526020600482015260116024820152701b585e14dd5c1c1b1e515e18d959591959607a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d185b5bdd5b9d151bdbd4db585b1b60921b6044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5914195c98d95b9d60921b6044820152606490fd5b506005821115610401565b60405162461bcd60e51b815260206004820152600f60248201526e6d757374576169743234486f75727360881b6044820152606490fd5b3461012c57604036600319011261012c576105e8610d70565b602435903360005260036020526040600020610605838254610d9c565b905560018060a01b031690816000526003602052604060002081815401905560405190815260008051602061102183398151915260203392a3602060405160018152f35b3461012c57600036600319011261012c576040516001546000908161066d82610c98565b808552916001811690811561070257506001146106a5575b6106a18461069581860382610d05565b60405191829182610d27565b0390f35b600181527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106106e85750909150810160200161069582610685565b9192600181602092548385880101520191019092916106cf565b60ff191660208087019190915292151560051b850190920192506106959150839050610685565b3461012c57602036600319011261012c57610742610d70565b6006549061075a336001600160a01b03841614610f7e565b6001600160a01b03169081156107a1576001600160a01b0319168117600655337f10b35f6837cc3382dde80a8dc8ef211a8786e14e1f8ed5c0b2320d091c92912b600080a3005b60405162461bcd60e51b815260206004820152600e60248201526d696e76616c69644164647265737360901b6044820152606490fd5b3461012c57600036600319011261012c576020600754604051908152f35b3461012c57602036600319011261012c576001600160a01b03610816610d70565b1660005260056020526020604060002054604051908152f35b3461012c57602036600319011261012c576001600160a01b03610850610d70565b1660005260036020526020604060002054604051908152f35b3461012c57602036600319011261012c577f2bbc7f1958700d1a653af8f27f9697416bfe42b495ec5dd5aaae48892297b3d86020600435336000526003825260406000206108b8828254610d9c565b905580600254036002556000604051828152600080516020611021833981519152843392a36108e981600954610f71565b600955604051908152a1005b3461012c57600036600319011261012c5760206103ae610def565b3461012c57600036600319011261012c5760206103ae610da9565b3461012c57600036600319011261012c57602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b3461012c57606036600319011261012c57610982610d70565b61098a610d86565b6001600160a01b0390911660008181526004602090815260408083203384528252909120546044359360008051602061102183398151915292918560018201610a19575b5050836000526003825260406000206109e8868254610d9c565b90556001600160a01b03166000818152600383526040908190208054870190555194855293a3602060405160018152f35b610a2291610d9c565b6000858152600484526040808220338352855290205585856109ce565b3461012c57600036600319011261012c5760206040516b011b4f32342d2bebe68000008152f35b3461012c57600036600319011261012c57600060e0604051610a8781610cd2565b8281528260208201528260408201528260608201528260808201528260a08201528260c0820152015261010060018060a01b0360065416610ac6610fb9565b60075460085460095490610ad8610da9565b92600a549460e0604051610aeb81610cd2565b600181526020810198895260408101928352606081019384526080810194855260a0810195865260c0810196875201958652604051966001885260018060a01b0390511660208801525160408701525160608601525160808501525160a08401525160c08301525160e0820152f35b3461012c57600036600319011261012c576020600254604051908152f35b3461012c57600036600319011261012c576020600954604051908152f35b3461012c57604036600319011261012c57610baf610d70565b3360008181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b3461012c57600036600319011261012c576040516000805481610c3282610c98565b80855291600181169081156107025750600114610c59576106a18461069581860382610d05565b80805260208120939250905b808210610c7e5750909150810160200161069582610685565b919260018160209254838588010152019101909291610c65565b90600182811c92168015610cc8575b6020831014610cb257565b634e487b7160e01b600052602260045260246000fd5b91607f1691610ca7565b610100810190811067ffffffffffffffff821117610cef57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610cef57604052565b91909160208152825180602083015260005b818110610d5a575060409293506000838284010152601f8019910116010190565b8060208092870101516040828601015201610d39565b600435906001600160a01b038216820361012c57565b602435906001600160a01b038216820361012c57565b9190820391821161054157565b610db1610fb9565b6b011b4f32342d2bebe6800000811015610de9576b011b4f32342d2bebe6800000036b011b4f32342d2bebe680000081116105415790565b50600090565b6000467f000000000000000000000000000000000000000000000000000000000000210503610e3d57507fd3effdd75209a66881d02d370e8246f86147a38da120c974d6b9627f9137689990565b6040518181815493610e4e85610c98565b928383526020830195600181169081600014610f525750600114610ef4575b50610e7a92500382610d05565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a08152610eee60c082610d05565b51902090565b808093949250527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b818310610f36575050906020610e7a9282010138610e6d565b6020919350806001915483858801015201910190918392610f1d565b60ff1916875250610e7a93151560051b83016020019150389050610e6d565b9190820180921161054157565b15610f8557565b60405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606490fd5b60036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5461dead6000527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c5460025461101d9261101891610d9c565b610d9c565b9056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f1f0570eb5169b56667753c4809be103b77aa4da23ebbe21b722a5c69df35fe164736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000740b23b7fb908e80000
-----Decoded View---------------
Arg [0] : supply (uint256): 34250000000000000000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000740b23b7fb908e80000
Loading...
Loading
Loading...
Loading
OVERVIEW
Self-growing treasury powered by $HESTIA + $ULTRAROUND. Rage and the Rage Buying Protocol reimagines MicroStrategy through smart contract automation on-chain.Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.