Overview
Max Total Supply
45,104.615608419664053433 RAGE
Holders
109 (0.00%)
Transfers
-
21 ( -69.12%)
Market
Price
$9.23 @ 0.002678 ETH (-0.66%)
Onchain Market Cap
$416,315.60
Circulating Supply Market Cap
$416,351.00
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
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
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)