Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Sponsored
Latest 4 from a total of 4 transactions
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
PnL
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-17 */ // SPDX-License-Identifier: AGPLv3 pragma solidity >=0.6.0 <0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } pragma solidity >=0.6.0 <0.7.0; interface IPnL { function calcPnL() external view returns (uint256, uint256); function increaseGTokenLastAmount(bool pwrd, uint256 dollarAmount) external; function decreaseGTokenLastAmount( bool pwrd, uint256 dollarAmount, uint256 bonus ) external; function lastGvtAssets() external view returns (uint256); function lastPwrdAssets() external view returns (uint256); function utilisationRatio() external view returns (uint256); function emergencyPnL() external; function recover() external; function distributeStrategyGainLoss( uint256 gain, uint256 loss, address reward ) external; function distributePriceChange(uint256 currentTotalAssets) external; } pragma solidity >=0.6.0 <0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } pragma solidity >=0.6.0 <0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } pragma solidity >=0.6.0 <0.7.0; interface IController { function stablecoins() external view returns (address[3] memory); function vaults() external view returns (address[3] memory); function underlyingVaults(uint256 i) external view returns (address vault); function curveVault() external view returns (address); function pnl() external view returns (address); function insurance() external view returns (address); function lifeGuard() external view returns (address); function buoy() external view returns (address); function reward() external view returns (address); function isValidBigFish( bool pwrd, bool deposit, uint256 amount ) external view returns (bool); function withdrawHandler() external view returns (address); function emergencyHandler() external view returns (address); function depositHandler() external view returns (address); function totalAssets() external view returns (uint256); function gTokenTotalAssets() external view returns (uint256); function eoaOnly(address sender) external; function getSkimPercent() external view returns (uint256); function gToken(bool _pwrd) external view returns (address); function emergencyState() external view returns (bool); function deadCoin() external view returns (uint256); function distributeStrategyGainLoss(uint256 gain, uint256 loss) external; function burnGToken( bool pwrd, bool all, address account, uint256 amount, uint256 bonus ) external; function mintGToken( bool pwrd, address account, uint256 amount ) external; function getUserAssets(bool pwrd, address account) external view returns (uint256 deductUsd); function referrals(address account) external view returns (address); function addReferral(address account, address referral) external; function getStrategiesTargetRatio() external view returns (uint256[] memory); function withdrawalFee(bool pwrd) external view returns (uint256); function validGTokenDecrease(uint256 amount) external view returns (bool); } pragma solidity >=0.6.0 <0.7.0; interface IPausable { function paused() external view returns (bool); } pragma solidity >=0.6.0 <0.7.0; contract Controllable is Ownable { address public controller; event ChangeController(address indexed oldController, address indexed newController); modifier whenNotPaused() { require(!_pausable().paused(), "Pausable: paused"); _; } modifier whenPaused() { require(_pausable().paused(), "Pausable: not paused"); _; } function ctrlPaused() public view returns (bool) { return _pausable().paused(); } function setController(address newController) external onlyOwner { require(newController != address(0), "setController: !0x"); address oldController = controller; controller = newController; emit ChangeController(oldController, newController); } function _controller() internal view returns (IController) { require(controller != address(0), "Controller not set"); return IController(controller); } function _pausable() internal view returns (IPausable) { require(controller != address(0), "Controller not set"); return IPausable(controller); } } pragma solidity >=0.6.0 <0.7.0; contract Constants { uint8 public constant N_COINS = 3; uint8 public constant DEFAULT_DECIMALS = 18; uint256 public constant DEFAULT_DECIMALS_FACTOR = uint256(10)**DEFAULT_DECIMALS; uint8 public constant CHAINLINK_PRICE_DECIMALS = 8; uint256 public constant CHAINLINK_PRICE_DECIMAL_FACTOR = uint256(10)**CHAINLINK_PRICE_DECIMALS; uint8 public constant PERCENTAGE_DECIMALS = 4; uint256 public constant PERCENTAGE_DECIMAL_FACTOR = uint256(10)**PERCENTAGE_DECIMALS; uint256 public constant CURVE_RATIO_DECIMALS = 6; uint256 public constant CURVE_RATIO_DECIMALS_FACTOR = uint256(10)**CURVE_RATIO_DECIMALS; } pragma solidity >=0.6.0 <0.7.0; interface IToken { function factor() external view returns (uint256); function factor(uint256 totalAssets) external view returns (uint256); function mint( address account, uint256 _factor, uint256 amount ) external; function burn( address account, uint256 _factor, uint256 amount ) external; function burnAll(address account) external; function totalAssets() external view returns (uint256); function getPricePerShare() external view returns (uint256); function getShareAssets(uint256 shares) external view returns (uint256); function getAssets(address account) external view returns (uint256); } pragma solidity >=0.6.0 <0.7.0; interface IVault { function withdraw(uint256 amount) external; function withdraw(uint256 amount, address recipient) external; function withdrawByStrategyOrder( uint256 amount, address recipient, bool reversed ) external; function withdrawByStrategyIndex( uint256 amount, address recipient, uint256 strategyIndex ) external; function deposit(uint256 amount) external; function updateStrategyRatio(uint256[] calldata strategyRetios) external; function totalAssets() external view returns (uint256); function getStrategiesLength() external view returns (uint256); function strategyHarvestTrigger(uint256 index, uint256 callCost) external view returns (bool); function strategyHarvest(uint256 index) external returns (bool); function getStrategyAssets(uint256 index) external view returns (uint256); function token() external view returns (address); function vault() external view returns (address); function investTrigger() external view returns (bool); function invest() external; } pragma solidity >=0.6.0 <0.7.0; contract FixedStablecoins is Constants { address public immutable DAI; address public immutable USDC; address public immutable USDT; uint256 public immutable DAI_DECIMALS; uint256 public immutable USDC_DECIMALS; uint256 public immutable USDT_DECIMALS; constructor(address[N_COINS] memory _tokens, uint256[N_COINS] memory _decimals) public { DAI = _tokens[0]; USDC = _tokens[1]; USDT = _tokens[2]; DAI_DECIMALS = _decimals[0]; USDC_DECIMALS = _decimals[1]; USDT_DECIMALS = _decimals[2]; } function underlyingTokens() internal view returns (address[N_COINS] memory tokens) { tokens[0] = DAI; tokens[1] = USDC; tokens[2] = USDT; } function getToken(uint256 index) internal view returns (address) { if (index == 0) { return DAI; } else if (index == 1) { return USDC; } else { return USDT; } } function decimals() internal view returns (uint256[N_COINS] memory _decimals) { _decimals[0] = DAI_DECIMALS; _decimals[1] = USDC_DECIMALS; _decimals[2] = USDT_DECIMALS; } function getDecimal(uint256 index) internal view returns (uint256) { if (index == 0) { return DAI_DECIMALS; } else if (index == 1) { return USDC_DECIMALS; } else { return USDT_DECIMALS; } } } contract FixedGTokens { IToken public immutable pwrd; IToken public immutable gvt; constructor(address _pwrd, address _gvt) public { pwrd = IToken(_pwrd); gvt = IToken(_gvt); } function gTokens(bool _pwrd) internal view returns (IToken) { if (_pwrd) { return pwrd; } else { return gvt; } } } contract FixedVaults is Constants { address public immutable DAI_VAULT; address public immutable USDC_VAULT; address public immutable USDT_VAULT; constructor(address[N_COINS] memory _vaults) public { DAI_VAULT = _vaults[0]; USDC_VAULT = _vaults[1]; USDT_VAULT = _vaults[2]; } function getVault(uint256 index) internal view returns (address) { if (index == 0) { return DAI_VAULT; } else if (index == 1) { return USDC_VAULT; } else { return USDT_VAULT; } } function vaults() internal view returns (address[N_COINS] memory _vaults) { _vaults[0] = DAI_VAULT; _vaults[1] = USDC_VAULT; _vaults[2] = USDT_VAULT; } } pragma solidity >=0.6.0 <0.7.0; contract PnL is Controllable, Constants, FixedGTokens, IPnL { using SafeMath for uint256; uint256 public override lastGvtAssets; uint256 public override lastPwrdAssets; bool public rebase = true; uint256 public performanceFee; event LogRebaseSwitch(bool status); event LogNewPerfromanceFee(uint256 fee); event LogNewGtokenChange(bool pwrd, int256 change); event LogPnLExecution( uint256 deductedAssets, int256 totalPnL, int256 investPnL, int256 pricePnL, uint256 withdrawalBonus, uint256 performanceBonus, uint256 beforeGvtAssets, uint256 beforePwrdAssets, uint256 afterGvtAssets, uint256 afterPwrdAssets ); constructor( address pwrd, address gvt, uint256 pwrdAssets, uint256 gvtAssets ) public FixedGTokens(pwrd, gvt) { lastPwrdAssets = pwrdAssets; lastGvtAssets = gvtAssets; } function setRebase(bool _rebase) external onlyOwner { rebase = _rebase; emit LogRebaseSwitch(_rebase); } function setPerformanceFee(uint256 _performanceFee) external onlyOwner { performanceFee = _performanceFee; emit LogNewPerfromanceFee(_performanceFee); } function increaseGTokenLastAmount(bool pwrd, uint256 dollarAmount) external override { require(msg.sender == controller, "increaseGTokenLastAmount: !controller"); if (!pwrd) { lastGvtAssets = lastGvtAssets.add(dollarAmount); } else { lastPwrdAssets = lastPwrdAssets.add(dollarAmount); } emit LogNewGtokenChange(pwrd, int256(dollarAmount)); } function decreaseGTokenLastAmount( bool pwrd, uint256 dollarAmount, uint256 bonus ) external override { require(msg.sender == controller, "decreaseGTokenLastAmount: !controller"); uint256 lastGA = lastGvtAssets; uint256 lastPA = lastPwrdAssets; if (!pwrd) { lastGA = dollarAmount > lastGA ? 0 : lastGA.sub(dollarAmount); } else { lastPA = dollarAmount > lastPA ? 0 : lastPA.sub(dollarAmount); } if (bonus > 0) { uint256 preGABeforeBonus = lastGA; uint256 prePABeforeBonus = lastPA; uint256 preTABeforeBonus = preGABeforeBonus.add(prePABeforeBonus); if (rebase) { lastGA = preGABeforeBonus.add(bonus.mul(preGABeforeBonus).div(preTABeforeBonus)); lastPA = prePABeforeBonus.add(bonus.mul(prePABeforeBonus).div(preTABeforeBonus)); } else { lastGA = preGABeforeBonus.add(bonus); } emit LogPnLExecution(0, int256(bonus), 0, 0, bonus, 0, preGABeforeBonus, prePABeforeBonus, lastGA, lastPA); } lastGvtAssets = lastGA; lastPwrdAssets = lastPA; emit LogNewGtokenChange(pwrd, -int256(dollarAmount)); } function calcPnL() external view override returns (uint256, uint256) { return (lastGvtAssets, lastPwrdAssets); } function utilisationRatio() external view override returns (uint256) { return lastGvtAssets != 0 ? lastPwrdAssets.mul(PERCENTAGE_DECIMAL_FACTOR).div(lastGvtAssets) : 0; } function emergencyPnL() external override { require(msg.sender == controller, "emergencyPnL: !controller"); forceDistribute(); } function recover() external override { require(msg.sender == controller, "recover: !controller"); forceDistribute(); } function handleInvestGain( uint256 gvtAssets, uint256 pwrdAssets, uint256 profit, address reward ) private view returns ( uint256, uint256, uint256 ) { uint256 performanceBonus; if (performanceFee > 0 && reward != address(0)) { performanceBonus = profit.mul(performanceFee).div(PERCENTAGE_DECIMAL_FACTOR); profit = profit.sub(performanceBonus); } if (rebase) { uint256 totalAssets = gvtAssets.add(pwrdAssets); uint256 gvtProfit = profit.mul(gvtAssets).div(totalAssets); uint256 pwrdProfit = profit.mul(pwrdAssets).div(totalAssets); uint256 factor = pwrdAssets.mul(10000).div(gvtAssets); if (factor > 10000) factor = 10000; if (factor < 8000) { factor = factor.mul(3).div(8).add(3000); } else { factor = factor.sub(8000).mul(2).add(6000); } uint256 portionFromPwrdProfit = pwrdProfit.mul(factor).div(10000); gvtAssets = gvtAssets.add(gvtProfit.add(portionFromPwrdProfit)); pwrdAssets = pwrdAssets.add(pwrdProfit.sub(portionFromPwrdProfit)); } else { gvtAssets = gvtAssets.add(profit); } return (gvtAssets, pwrdAssets, performanceBonus); } function handleLoss( uint256 gvtAssets, uint256 pwrdAssets, uint256 loss ) private pure returns (uint256, uint256) { uint256 maxGvtLoss = gvtAssets.sub(DEFAULT_DECIMALS_FACTOR); if (loss > maxGvtLoss) { gvtAssets = DEFAULT_DECIMALS_FACTOR; pwrdAssets = pwrdAssets.sub(loss.sub(maxGvtLoss)); } else { gvtAssets = gvtAssets - loss; } return (gvtAssets, pwrdAssets); } function forceDistribute() private { uint256 total = _controller().totalAssets(); if (total > lastPwrdAssets.add(DEFAULT_DECIMALS_FACTOR)) { lastGvtAssets = total - lastPwrdAssets; } else { lastGvtAssets = DEFAULT_DECIMALS_FACTOR; lastPwrdAssets = total.sub(DEFAULT_DECIMALS_FACTOR); } } function distributeStrategyGainLoss( uint256 gain, uint256 loss, address reward ) external override { require(msg.sender == controller, "!Controller"); uint256 lastGA = lastGvtAssets; uint256 lastPA = lastPwrdAssets; uint256 performanceBonus; uint256 gvtAssets; uint256 pwrdAssets; int256 investPnL; if (gain > 0) { (gvtAssets, pwrdAssets, performanceBonus) = handleInvestGain(lastGA, lastPA, gain, reward); if (performanceBonus > 0) { gvt.mint(reward, gvt.factor(gvtAssets), performanceBonus); gvtAssets = gvtAssets.add(performanceBonus); } lastGvtAssets = gvtAssets; lastPwrdAssets = pwrdAssets; investPnL = int256(gain); } else if (loss > 0) { (lastGvtAssets, lastPwrdAssets) = handleLoss(lastGA, lastPA, loss); investPnL = -int256(loss); } emit LogPnLExecution( 0, investPnL, investPnL, 0, 0, performanceBonus, lastGA, lastPA, lastGvtAssets, lastPwrdAssets ); } function distributePriceChange(uint256 currentTotalAssets) external override { require(msg.sender == controller, "!Controller"); uint256 gvtAssets = lastGvtAssets; uint256 pwrdAssets = lastPwrdAssets; uint256 totalAssets = gvtAssets.add(pwrdAssets); if (currentTotalAssets > totalAssets) { lastGvtAssets = gvtAssets.add(currentTotalAssets.sub(totalAssets)); } else if (currentTotalAssets < totalAssets) { (lastGvtAssets, lastPwrdAssets) = handleLoss(gvtAssets, pwrdAssets, totalAssets.sub(currentTotalAssets)); } int256 priceChange = int256(currentTotalAssets) - int256(totalAssets); emit LogPnLExecution( 0, priceChange, 0, priceChange, 0, 0, gvtAssets, pwrdAssets, lastGvtAssets, lastPwrdAssets ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"pwrd","type":"address"},{"internalType":"address","name":"gvt","type":"address"},{"internalType":"uint256","name":"pwrdAssets","type":"uint256"},{"internalType":"uint256","name":"gvtAssets","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldController","type":"address"},{"indexed":true,"internalType":"address","name":"newController","type":"address"}],"name":"ChangeController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"pwrd","type":"bool"},{"indexed":false,"internalType":"int256","name":"change","type":"int256"}],"name":"LogNewGtokenChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"LogNewPerfromanceFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"deductedAssets","type":"uint256"},{"indexed":false,"internalType":"int256","name":"totalPnL","type":"int256"},{"indexed":false,"internalType":"int256","name":"investPnL","type":"int256"},{"indexed":false,"internalType":"int256","name":"pricePnL","type":"int256"},{"indexed":false,"internalType":"uint256","name":"withdrawalBonus","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"performanceBonus","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"beforeGvtAssets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"beforePwrdAssets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"afterGvtAssets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"afterPwrdAssets","type":"uint256"}],"name":"LogPnLExecution","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"LogRebaseSwitch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"CHAINLINK_PRICE_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CHAINLINK_PRICE_DECIMAL_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CURVE_RATIO_DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CURVE_RATIO_DECIMALS_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_DECIMALS_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"N_COINS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERCENTAGE_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERCENTAGE_DECIMAL_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calcPnL","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ctrlPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"pwrd","type":"bool"},{"internalType":"uint256","name":"dollarAmount","type":"uint256"},{"internalType":"uint256","name":"bonus","type":"uint256"}],"name":"decreaseGTokenLastAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"currentTotalAssets","type":"uint256"}],"name":"distributePriceChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gain","type":"uint256"},{"internalType":"uint256","name":"loss","type":"uint256"},{"internalType":"address","name":"reward","type":"address"}],"name":"distributeStrategyGainLoss","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyPnL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gvt","outputs":[{"internalType":"contract IToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"pwrd","type":"bool"},{"internalType":"uint256","name":"dollarAmount","type":"uint256"}],"name":"increaseGTokenLastAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastGvtAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastPwrdAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"performanceFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pwrd","outputs":[{"internalType":"contract IToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newController","type":"address"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_performanceFee","type":"uint256"}],"name":"setPerformanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_rebase","type":"bool"}],"name":"setRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"utilisationRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c06040526004805460ff1916600117905534801561001d57600080fd5b506040516117423803806117428339818101604052608081101561004057600080fd5b5080516020820151604083015160609093015191929091838360006100636100d7565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606092831b8116608052911b1660a052600391909155600255506100db9050565b3390565b60805160601c60a05160601c61163461010e60003980610ac95280610b645280610b9452508061043e52506116346000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063907064251161010f578063c5008f46116100a2578063e963f18f11610071578063e963f18f146103fe578063ea0d5c5214610406578063f2fde38b1461040e578063f77c479114610434576101e5565b8063c5008f46146103c9578063ce746024146103d1578063e0501ecf146103d9578063e3d94944146103e1576101e5565b80639ecf47c1116100de5780639ecf47c11461037f578063a4723e2e146103b1578063ae70b98a146103b9578063af14052c146103c1576101e5565b8063907064251461034157806392eefe9b146103495780639bcd8aa11461036f5780639e574a1e14610377576101e5565b806343e35fd411610187578063715018a611610156578063715018a6146103045780637e2168c41461030c57806387788782146103315780638da5cb5b14610339576101e5565b806343e35fd4146102cf57806355f4253a146102d75780636f923e73146102df57806370897b23146102e7576101e5565b806320458c55116101c357806320458c551461024b578063250108f61461026c57806329357750146102865780634175e521146102a4576101e5565b8063087eb737146101ea57806313bd44811461020e57806319e409931461022f575b600080fd5b6101f261043c565b604080516001600160a01b039092168252519081900360200190f35b61022d6004803603602081101561022457600080fd5b50351515610460565b005b6102376104ff565b604080519115158252519081900360200190f35b610253610572565b6040805192835260208301919091528051918290030190f35b61027461057c565b60408051918252519081900360200190f35b61028e610583565b6040805160ff9092168252519081900360200190f35b61022d600480360360608110156102ba57600080fd5b50803515159060208101359060400135610588565b61027461074f565b61022d610755565b61028e6107be565b61022d600480360360208110156102fd57600080fd5b50356107c3565b61022d610856565b61022d6004803603604081101561032257600080fd5b508035151590602001356108f8565b6102746109ad565b6101f26109b3565b61028e6109c2565b61022d6004803603602081101561035f57600080fd5b50356001600160a01b03166109c7565b610274610ac1565b6101f2610ac7565b61022d6004803603606081101561039557600080fd5b50803590602081013590604001356001600160a01b0316610aeb565b610274610d5a565b610274610d8a565b610237610d90565b61028e610d99565b61022d610d9e565b610274610df4565b61022d600480360360208110156103f757600080fd5b5035610df9565b610274610f22565b610274610f2a565b61022d6004803603602081101561042457600080fd5b50356001600160a01b0316610f36565b6101f261102e565b7f000000000000000000000000000000000000000000000000000000000000000081565b61046861103d565b6000546001600160a01b039081169116146104b8576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b6004805482151560ff19909116811790915560408051918252517f308a325a9a7c180e9ab721beb4d3cd1c25d8f1870c68c51a355de2161212964b9181900360200190a150565b6000610509611041565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d602081101561056b57600080fd5b5051905090565b6002546003549091565b620f424081565b600381565b6001546001600160a01b031633146105d15760405162461bcd60e51b815260040180806020018281038252602581526020018061154e6025913960400191505060405180910390fd5b600254600354846105fc578184116105f2576105ed82856110a6565b6105f5565b60005b9150610618565b8084116106125761060d81856110a6565b610615565b60005b90505b82156106fe578181600061062c83836110f1565b60045490915060ff1615610679576106586106518261064b898761114b565b906111a4565b84906110f1565b945061067261066b8261064b898661114b565b83906110f1565b9350610686565b61068383876110f1565b94505b60408051600080825260208201899052818301819052606082018190526080820189905260a082015260c0810185905260e081018490526101008101879052610120810186905290517ff2d119552d7316f99d27eb713660ea3aecb21208fb6be5db18863114fd2cc6d6918190036101400190a15050505b600282905560038190556040805186151581526000869003602082015281517f0c9b8acb6da02b6a2b3147cd65dc109190905599b269cb241db9f074f3c66426929181900390910190a15050505050565b60025481565b6001546001600160a01b031633146107b4576040805162461bcd60e51b815260206004820152601960248201527f656d657267656e6379506e4c3a2021636f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6107bc6111e6565b565b600881565b6107cb61103d565b6000546001600160a01b0390811691161461081b576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b60058190556040805182815290517f0af2e26cbe8023b3d5bc41b2b0425695395082fd6ee7462be3dc716bbfc702d69181900360200190a150565b61085e61103d565b6000546001600160a01b039081169116146108ae576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001546001600160a01b031633146109415760405162461bcd60e51b81526004018080602001828103825260258152602001806115da6025913960400191505060405180910390fd5b8161095b5760025461095390826110f1565b60025561096c565b60035461096890826110f1565b6003555b6040805183151581526020810183905281517f0c9b8acb6da02b6a2b3147cd65dc109190905599b269cb241db9f074f3c66426929181900390910190a15050565b60055481565b6000546001600160a01b031690565b600481565b6109cf61103d565b6000546001600160a01b03908116911614610a1f576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b6001600160a01b038116610a6f576040805162461bcd60e51b81526020600482015260126024820152710e6cae886dedce8e4ded8d8cae474404260f60731b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f7bd9aab74fc8b860dff8328bda449632993abb9bd61340154740618a3debeb8990600090a35050565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b03163314610b38576040805162461bcd60e51b815260206004820152600b60248201526a10a1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b60025460035460008080808815610cb657610b5586868b8a6112a0565b955090935091508315610ca5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663156e29f6887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636131858e876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610bf657600080fd5b505afa158015610c0a573d6000803e3d6000fd5b505050506040513d6020811015610c2057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820188905251606480830192600092919082900301818387803b158015610c7757600080fd5b505af1158015610c8b573d6000803e3d6000fd5b50505050610ca284846110f190919063ffffffff16565b92505b506002829055600381905587610cd4565b8715610cd457610cc786868a6113fb565b6003556002555060008790035b6002546003546040805160008082526020820186905281830186905260608201819052608082015260a0810188905260c081018a905260e08101899052610100810193909352610120830191909152517ff2d119552d7316f99d27eb713660ea3aecb21208fb6be5db18863114fd2cc6d6918190036101400190a1505050505050505050565b600060025460001415610d6e576000610d85565b600254600354610d85919061064b9061271061114b565b905090565b61271081565b60045460ff1681565b601281565b6001546001600160a01b031633146107b4576040805162461bcd60e51b81526020600482015260146024820152733932b1b7bb32b91d1010b1b7b73a3937b63632b960611b604482015290519081900360640190fd5b600681565b6001546001600160a01b03163314610e46576040805162461bcd60e51b815260206004820152600b60248201526a10a1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b6002546003546000610e5883836110f1565b905080841115610e7757610e6f61065185836110a6565b600255610e9a565b80841015610e9a57610e938383610e8e84886110a6565b6113fb565b6003556002555b60025460035460408051600080825285890360208301819052828401829052606083018190526080830182905260a083019190915260c0820188905260e08201879052610100820194909452610120810192909252517ff2d119552d7316f99d27eb713660ea3aecb21208fb6be5db18863114fd2cc6d6918190036101400190a15050505050565b6305f5e10081565b670de0b6b3a764000081565b610f3e61103d565b6000546001600160a01b03908116911614610f8e576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b6001600160a01b038116610fd35760405162461bcd60e51b81526004018080602001828103825260268152602001806115736026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b3390565b6001546000906001600160a01b0316611096576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9bdb1b195c881b9bdd081cd95d60721b604482015290519081900360640190fd5b506001546001600160a01b031690565b60006110e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611451565b90505b92915050565b6000828201838110156110e8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261115a575060006110eb565b8282028284828161116757fe5b04146110e85760405162461bcd60e51b81526004018080602001828103825260218152602001806115996021913960400191505060405180910390fd5b60006110e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114e8565b60006111f0611041565b6001600160a01b03166301e1d1146040518163ffffffff1660e01b815260040160206040518083038186803b15801561122857600080fd5b505afa15801561123c573d6000803e3d6000fd5b505050506040513d602081101561125257600080fd5b505160035490915061126c90670de0b6b3a76400006110f1565b81111561128057600354810360025561129d565b670de0b6b3a764000060028190556112999082906110a6565b6003555b50565b60008060008060006005541180156112c057506001600160a01b03851615155b156112ea576005546112db906127109061064b90899061114b565b90506112e786826110a6565b95505b60045460ff16156113e157600061130189896110f1565b905060006113138261064b8a8d61114b565b905060006113258361064b8b8d61114b565b905060006113398c61064b8d61271061114b565b905061271081111561134a57506127105b611f4081101561137757611370610bb861136a600861064b85600361114b565b906110f1565b9050611397565b61139461177061136a600261138e85611f406110a6565b9061114b565b90505b60006113a961271061064b858561114b565b90506113bf6113b885836110f1565b8e906110f1565b9c506113d56113ce84836110a6565b8d906110f1565b9b5050505050506113ee565b6113eb88876110f1565b97505b9697959695945050505050565b6000808061141186670de0b6b3a76400006110a6565b90508084111561144157670de0b6b3a7640000955061143a61143385836110a6565b86906110a6565b9450611447565b83860395505b5093949293505050565b600081848411156114e05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114a557818101518382015260200161148d565b50505050905090810190601f1680156114d25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836115375760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156114a557818101518382015260200161148d565b50600083858161154357fe5b049594505050505056fe646563726561736547546f6b656e4c617374416d6f756e743a2021636f6e74726f6c6c65724f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572696e63726561736547546f6b656e4c617374416d6f756e743a2021636f6e74726f6c6c6572a264697066735822122067c1e1b843e865c250d9de13f99ad977cf44e80b5210fe4dca163fe36d882bfa64736f6c634300060c0033000000000000000000000000f0a93d4994b3d98fb5e3a2f90dbc2d69073cb86b0000000000000000000000003adb04e127b9c0a5d36094125669d4603ac52a0c00000000000000000000000000000000000000000000863731abbde088da577700000000000000000000000000000000000000000001a2920710413463cccfe7
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101e55760003560e01c8063907064251161010f578063c5008f46116100a2578063e963f18f11610071578063e963f18f146103fe578063ea0d5c5214610406578063f2fde38b1461040e578063f77c479114610434576101e5565b8063c5008f46146103c9578063ce746024146103d1578063e0501ecf146103d9578063e3d94944146103e1576101e5565b80639ecf47c1116100de5780639ecf47c11461037f578063a4723e2e146103b1578063ae70b98a146103b9578063af14052c146103c1576101e5565b8063907064251461034157806392eefe9b146103495780639bcd8aa11461036f5780639e574a1e14610377576101e5565b806343e35fd411610187578063715018a611610156578063715018a6146103045780637e2168c41461030c57806387788782146103315780638da5cb5b14610339576101e5565b806343e35fd4146102cf57806355f4253a146102d75780636f923e73146102df57806370897b23146102e7576101e5565b806320458c55116101c357806320458c551461024b578063250108f61461026c57806329357750146102865780634175e521146102a4576101e5565b8063087eb737146101ea57806313bd44811461020e57806319e409931461022f575b600080fd5b6101f261043c565b604080516001600160a01b039092168252519081900360200190f35b61022d6004803603602081101561022457600080fd5b50351515610460565b005b6102376104ff565b604080519115158252519081900360200190f35b610253610572565b6040805192835260208301919091528051918290030190f35b61027461057c565b60408051918252519081900360200190f35b61028e610583565b6040805160ff9092168252519081900360200190f35b61022d600480360360608110156102ba57600080fd5b50803515159060208101359060400135610588565b61027461074f565b61022d610755565b61028e6107be565b61022d600480360360208110156102fd57600080fd5b50356107c3565b61022d610856565b61022d6004803603604081101561032257600080fd5b508035151590602001356108f8565b6102746109ad565b6101f26109b3565b61028e6109c2565b61022d6004803603602081101561035f57600080fd5b50356001600160a01b03166109c7565b610274610ac1565b6101f2610ac7565b61022d6004803603606081101561039557600080fd5b50803590602081013590604001356001600160a01b0316610aeb565b610274610d5a565b610274610d8a565b610237610d90565b61028e610d99565b61022d610d9e565b610274610df4565b61022d600480360360208110156103f757600080fd5b5035610df9565b610274610f22565b610274610f2a565b61022d6004803603602081101561042457600080fd5b50356001600160a01b0316610f36565b6101f261102e565b7f000000000000000000000000f0a93d4994b3d98fb5e3a2f90dbc2d69073cb86b81565b61046861103d565b6000546001600160a01b039081169116146104b8576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b6004805482151560ff19909116811790915560408051918252517f308a325a9a7c180e9ab721beb4d3cd1c25d8f1870c68c51a355de2161212964b9181900360200190a150565b6000610509611041565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d602081101561056b57600080fd5b5051905090565b6002546003549091565b620f424081565b600381565b6001546001600160a01b031633146105d15760405162461bcd60e51b815260040180806020018281038252602581526020018061154e6025913960400191505060405180910390fd5b600254600354846105fc578184116105f2576105ed82856110a6565b6105f5565b60005b9150610618565b8084116106125761060d81856110a6565b610615565b60005b90505b82156106fe578181600061062c83836110f1565b60045490915060ff1615610679576106586106518261064b898761114b565b906111a4565b84906110f1565b945061067261066b8261064b898661114b565b83906110f1565b9350610686565b61068383876110f1565b94505b60408051600080825260208201899052818301819052606082018190526080820189905260a082015260c0810185905260e081018490526101008101879052610120810186905290517ff2d119552d7316f99d27eb713660ea3aecb21208fb6be5db18863114fd2cc6d6918190036101400190a15050505b600282905560038190556040805186151581526000869003602082015281517f0c9b8acb6da02b6a2b3147cd65dc109190905599b269cb241db9f074f3c66426929181900390910190a15050505050565b60025481565b6001546001600160a01b031633146107b4576040805162461bcd60e51b815260206004820152601960248201527f656d657267656e6379506e4c3a2021636f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6107bc6111e6565b565b600881565b6107cb61103d565b6000546001600160a01b0390811691161461081b576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b60058190556040805182815290517f0af2e26cbe8023b3d5bc41b2b0425695395082fd6ee7462be3dc716bbfc702d69181900360200190a150565b61085e61103d565b6000546001600160a01b039081169116146108ae576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001546001600160a01b031633146109415760405162461bcd60e51b81526004018080602001828103825260258152602001806115da6025913960400191505060405180910390fd5b8161095b5760025461095390826110f1565b60025561096c565b60035461096890826110f1565b6003555b6040805183151581526020810183905281517f0c9b8acb6da02b6a2b3147cd65dc109190905599b269cb241db9f074f3c66426929181900390910190a15050565b60055481565b6000546001600160a01b031690565b600481565b6109cf61103d565b6000546001600160a01b03908116911614610a1f576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b6001600160a01b038116610a6f576040805162461bcd60e51b81526020600482015260126024820152710e6cae886dedce8e4ded8d8cae474404260f60731b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f7bd9aab74fc8b860dff8328bda449632993abb9bd61340154740618a3debeb8990600090a35050565b60035481565b7f0000000000000000000000003adb04e127b9c0a5d36094125669d4603ac52a0c81565b6001546001600160a01b03163314610b38576040805162461bcd60e51b815260206004820152600b60248201526a10a1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b60025460035460008080808815610cb657610b5586868b8a6112a0565b955090935091508315610ca5577f0000000000000000000000003adb04e127b9c0a5d36094125669d4603ac52a0c6001600160a01b031663156e29f6887f0000000000000000000000003adb04e127b9c0a5d36094125669d4603ac52a0c6001600160a01b0316636131858e876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610bf657600080fd5b505afa158015610c0a573d6000803e3d6000fd5b505050506040513d6020811015610c2057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526044820188905251606480830192600092919082900301818387803b158015610c7757600080fd5b505af1158015610c8b573d6000803e3d6000fd5b50505050610ca284846110f190919063ffffffff16565b92505b506002829055600381905587610cd4565b8715610cd457610cc786868a6113fb565b6003556002555060008790035b6002546003546040805160008082526020820186905281830186905260608201819052608082015260a0810188905260c081018a905260e08101899052610100810193909352610120830191909152517ff2d119552d7316f99d27eb713660ea3aecb21208fb6be5db18863114fd2cc6d6918190036101400190a1505050505050505050565b600060025460001415610d6e576000610d85565b600254600354610d85919061064b9061271061114b565b905090565b61271081565b60045460ff1681565b601281565b6001546001600160a01b031633146107b4576040805162461bcd60e51b81526020600482015260146024820152733932b1b7bb32b91d1010b1b7b73a3937b63632b960611b604482015290519081900360640190fd5b600681565b6001546001600160a01b03163314610e46576040805162461bcd60e51b815260206004820152600b60248201526a10a1b7b73a3937b63632b960a91b604482015290519081900360640190fd5b6002546003546000610e5883836110f1565b905080841115610e7757610e6f61065185836110a6565b600255610e9a565b80841015610e9a57610e938383610e8e84886110a6565b6113fb565b6003556002555b60025460035460408051600080825285890360208301819052828401829052606083018190526080830182905260a083019190915260c0820188905260e08201879052610100820194909452610120810192909252517ff2d119552d7316f99d27eb713660ea3aecb21208fb6be5db18863114fd2cc6d6918190036101400190a15050505050565b6305f5e10081565b670de0b6b3a764000081565b610f3e61103d565b6000546001600160a01b03908116911614610f8e576040805162461bcd60e51b815260206004820181905260248201526000805160206115ba833981519152604482015290519081900360640190fd5b6001600160a01b038116610fd35760405162461bcd60e51b81526004018080602001828103825260268152602001806115736026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b3390565b6001546000906001600160a01b0316611096576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9bdb1b195c881b9bdd081cd95d60721b604482015290519081900360640190fd5b506001546001600160a01b031690565b60006110e883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611451565b90505b92915050565b6000828201838110156110e8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261115a575060006110eb565b8282028284828161116757fe5b04146110e85760405162461bcd60e51b81526004018080602001828103825260218152602001806115996021913960400191505060405180910390fd5b60006110e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114e8565b60006111f0611041565b6001600160a01b03166301e1d1146040518163ffffffff1660e01b815260040160206040518083038186803b15801561122857600080fd5b505afa15801561123c573d6000803e3d6000fd5b505050506040513d602081101561125257600080fd5b505160035490915061126c90670de0b6b3a76400006110f1565b81111561128057600354810360025561129d565b670de0b6b3a764000060028190556112999082906110a6565b6003555b50565b60008060008060006005541180156112c057506001600160a01b03851615155b156112ea576005546112db906127109061064b90899061114b565b90506112e786826110a6565b95505b60045460ff16156113e157600061130189896110f1565b905060006113138261064b8a8d61114b565b905060006113258361064b8b8d61114b565b905060006113398c61064b8d61271061114b565b905061271081111561134a57506127105b611f4081101561137757611370610bb861136a600861064b85600361114b565b906110f1565b9050611397565b61139461177061136a600261138e85611f406110a6565b9061114b565b90505b60006113a961271061064b858561114b565b90506113bf6113b885836110f1565b8e906110f1565b9c506113d56113ce84836110a6565b8d906110f1565b9b5050505050506113ee565b6113eb88876110f1565b97505b9697959695945050505050565b6000808061141186670de0b6b3a76400006110a6565b90508084111561144157670de0b6b3a7640000955061143a61143385836110a6565b86906110a6565b9450611447565b83860395505b5093949293505050565b600081848411156114e05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156114a557818101518382015260200161148d565b50505050905090810190601f1680156114d25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836115375760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156114a557818101518382015260200161148d565b50600083858161154357fe5b049594505050505056fe646563726561736547546f6b656e4c617374416d6f756e743a2021636f6e74726f6c6c65724f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572696e63726561736547546f6b656e4c617374416d6f756e743a2021636f6e74726f6c6c6572a264697066735822122067c1e1b843e865c250d9de13f99ad977cf44e80b5210fe4dca163fe36d882bfa64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f0a93d4994b3d98fb5e3a2f90dbc2d69073cb86b0000000000000000000000003adb04e127b9c0a5d36094125669d4603ac52a0c00000000000000000000000000000000000000000000863731abbde088da577700000000000000000000000000000000000000000001a2920710413463cccfe7
-----Decoded View---------------
Arg [0] : pwrd (address): 0xF0a93d4994B3d98Fb5e3A2F90dBc2d69073Cb86b
Arg [1] : gvt (address): 0x3ADb04E127b9C0a5D36094125669d4603AC52a0c
Arg [2] : pwrdAssets (uint256): 633815258791687426299767
Arg [3] : gvtAssets (uint256): 1976642923452724455198695
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000f0a93d4994b3d98fb5e3a2f90dbc2d69073cb86b
Arg [1] : 0000000000000000000000003adb04e127b9c0a5d36094125669d4603ac52a0c
Arg [2] : 00000000000000000000000000000000000000000000863731abbde088da5777
Arg [3] : 00000000000000000000000000000000000000000001a2920710413463cccfe7
Deployed Bytecode Sourcemap
17963:8259:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16763:28;;;:::i;:::-;;;;-1:-1:-1;;;;;16763:28:0;;;;;;;;;;;;;;18967:127;;;;;;;;;;;;;;;;-1:-1:-1;18967:127:0;;;;:::i;:::-;;11796:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;21014:126;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13144:87;;;:::i;:::-;;;;;;;;;;;;;;;;12611:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19710:1296;;;;;;;;;;;;;;;;-1:-1:-1;19710:1296:0;;;;;;;;;;;;;;:::i;18065:37::-;;;:::i;21340:151::-;;;:::i;12788:50::-;;;:::i;19102:175::-;;;;;;;;;;;;;;;;-1:-1:-1;19102:175:0;;:::i;8435:148::-;;;:::i;19285:417::-;;;;;;;;;;;;;;;;-1:-1:-1;19285:417:0;;;;;;;;;:::i;18188:29::-;;;:::i;7793:79::-;;;:::i;12946:45::-;;;:::i;11899:286::-;;;;;;;;;;;;;;;;-1:-1:-1;11899:286:0;-1:-1:-1;;;;;11899:286:0;;:::i;18109:38::-;;;:::i;16798:27::-;;;:::i;23973:1282::-;;;;;;;;;;;;;;;;-1:-1:-1;23973:1282:0;;;;;;;;;;;-1:-1:-1;;;;;23973:1282:0;;:::i;21148:184::-;;;:::i;12998:84::-;;;:::i;18154:25::-;;;:::i;12651:43::-;;;:::i;21499:141::-;;;:::i;13089:48::-;;;:::i;25263:956::-;;;;;;;;;;;;;;;;-1:-1:-1;25263:956:0;;:::i;12845:94::-;;;:::i;12702:79::-;;;:::i;8738:244::-;;;;;;;;;;;;;;;;-1:-1:-1;8738:244:0;-1:-1:-1;;;;;8738:244:0;;:::i;11441:25::-;;;:::i;16763:28::-;;;:::o;18967:127::-;8015:12;:10;:12::i;:::-;8005:6;;-1:-1:-1;;;;;8005:6:0;;;:22;;;7997:67;;;;;-1:-1:-1;;;7997:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7997:67:0;;;;;;;;;;;;;;;19030:6:::1;:16:::0;;;::::1;;-1:-1:-1::0;;19030:16:0;;::::1;::::0;::::1;::::0;;;19062:24:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;18967:127:::0;:::o;11796:95::-;11839:4;11863:11;:9;:11::i;:::-;-1:-1:-1;;;;;11863:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11863:20:0;;-1:-1:-1;11796:95:0;:::o;21014:126::-;21102:13;;21117:14;;21014:126;;:::o;13144:87::-;13198:33;13144:87;:::o;12611:33::-;12643:1;12611:33;:::o;19710:1296::-;19877:10;;-1:-1:-1;;;;;19877:10:0;19863;:24;19855:74;;;;-1:-1:-1;;;19855:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19957:13;;19998:14;;20028:4;20023:193;;20073:6;20058:12;:21;:52;;20086:24;:6;20097:12;20086:10;:24::i;:::-;20058:52;;;20082:1;20058:52;20049:61;;20023:193;;;20167:6;20152:12;:21;:52;;20180:24;:6;20191:12;20180:10;:24::i;:::-;20152:52;;;20176:1;20152:52;20143:61;;20023:193;20230:9;;20226:641;;20283:6;20331;20256:24;20379:38;20283:6;20331;20379:20;:38::i;:::-;20436:6;;20352:65;;-1:-1:-1;20436:6:0;;20432:303;;;20472:71;20493:49;20525:16;20493:27;:5;20503:16;20493:9;:27::i;:::-;:31;;:49::i;:::-;20472:16;;:20;:71::i;:::-;20463:80;-1:-1:-1;20571:71:0;20592:49;20624:16;20592:27;:5;20602:16;20592:9;:27::i;:49::-;20571:16;;:20;:71::i;:::-;20562:80;;20432:303;;;20692:27;:16;20713:5;20692:20;:27::i;:::-;20683:36;;20432:303;20754:101;;;20770:1;20754:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20226:641;;;;20879:13;:22;;;20912:14;:23;;;20951:47;;;;;;;;-1:-1:-1;20976:21:0;;;20951:47;;;;;;;;;;;;;;;;;19710:1296;;;;;:::o;18065:37::-;;;;:::o;21340:151::-;21415:10;;-1:-1:-1;;;;;21415:10:0;21401;:24;21393:62;;;;;-1:-1:-1;;;21393:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21466:17;:15;:17::i;:::-;21340:151::o;12788:50::-;12837:1;12788:50;:::o;19102:175::-;8015:12;:10;:12::i;:::-;8005:6;;-1:-1:-1;;;;;8005:6:0;;;:22;;;7997:67;;;;;-1:-1:-1;;;7997:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7997:67:0;;;;;;;;;;;;;;;19184:14:::1;:32:::0;;;19232:37:::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;19102:175:::0;:::o;8435:148::-;8015:12;:10;:12::i;:::-;8005:6;;-1:-1:-1;;;;;8005:6:0;;;:22;;;7997:67;;;;;-1:-1:-1;;;7997:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7997:67:0;;;;;;;;;;;;;;;8542:1:::1;8526:6:::0;;8505:40:::1;::::0;-1:-1:-1;;;;;8526:6:0;;::::1;::::0;8505:40:::1;::::0;8542:1;;8505:40:::1;8573:1;8556:19:::0;;-1:-1:-1;;;;;;8556:19:0::1;::::0;;8435:148::o;19285:417::-;19403:10;;-1:-1:-1;;;;;19403:10:0;19389;:24;19381:74;;;;-1:-1:-1;;;19381:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19471:4;19466:167;;19508:13;;:31;;19526:12;19508:17;:31::i;:::-;19492:13;:47;19466:167;;;19589:14;;:32;;19608:12;19589:18;:32::i;:::-;19572:14;:49;19466:167;19648:46;;;;;;;;;;;;;;;;;;;;;;;;;;;19285:417;;:::o;18188:29::-;;;;:::o;7793:79::-;7831:7;7858:6;-1:-1:-1;;;;;7858:6:0;7793:79;:::o;12946:45::-;12990:1;12946:45;:::o;11899:286::-;8015:12;:10;:12::i;:::-;8005:6;;-1:-1:-1;;;;;8005:6:0;;;:22;;;7997:67;;;;;-1:-1:-1;;;7997:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7997:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11983:27:0;::::1;11975:58;;;::::0;;-1:-1:-1;;;11975:58:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;11975:58:0;;;;;;;;;;;;;::::1;;12068:10;::::0;;-1:-1:-1;;;;;12089:26:0;;::::1;-1:-1:-1::0;;;;;;12089:26:0;::::1;::::0;::::1;::::0;;;12131:46:::1;::::0;12068:10;::::1;::::0;12089:26;12068:10;;12131:46:::1;::::0;12044:21:::1;::::0;12131:46:::1;8075:1;11899:286:::0;:::o;18109:38::-;;;;:::o;16798:27::-;;;:::o;23973:1282::-;24138:10;;-1:-1:-1;;;;;24138:10:0;24124;:24;24116:48;;;;;-1:-1:-1;;;24116:48:0;;;;;;;;;;;;-1:-1:-1;;;24116:48:0;;;;;;;;;;;;;;;24192:13;;24233:14;;24175;;;;24381:8;;24377:601;;24450:46;24467:6;24475;24483:4;24489:6;24450:16;:46::i;:::-;24406:90;-1:-1:-1;24406:90:0;;-1:-1:-1;24406:90:0;-1:-1:-1;24515:20:0;;24511:180;;24556:3;-1:-1:-1;;;;;24556:8:0;;24565:6;24573:3;-1:-1:-1;;;;;24573:10:0;;24584:9;24573:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24573:21:0;24556:57;;;-1:-1:-1;;;;;;24556:57:0;;;;;;;-1:-1:-1;;;;;24556:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24556:57:0;;;;;;;-1:-1:-1;24556:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24644:31;24658:16;24644:9;:13;;:31;;;;:::i;:::-;24632:43;;24511:180;-1:-1:-1;24707:13:0;:25;;;24747:14;:27;;;24808:4;24377:601;;;24835:8;;24831:147;;24894:32;24905:6;24913;24921:4;24894:10;:32::i;:::-;24876:14;24860:66;24861:13;24860:66;-1:-1:-1;24861:13:0;24953;;;24831:147;25194:13;;25222:14;;24995:252;;;25025:1;24995:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23973:1282;;;;;;;;;:::o;21148:184::-;21208:7;21235:13;;21252:1;21235:18;;:89;;21323:1;21235:89;;;21306:13;;21256:14;;:64;;21306:13;21256:45;;13050:32;21256:18;:45::i;:64::-;21228:96;;21148:184;:::o;12998:84::-;13050:32;12998:84;:::o;18154:25::-;;;;;;:::o;12651:43::-;12692:2;12651:43;:::o;21499:141::-;21569:10;;-1:-1:-1;;;;;21569:10:0;21555;:24;21547:57;;;;;-1:-1:-1;;;21547:57:0;;;;;;;;;;;;-1:-1:-1;;;21547:57:0;;;;;;;;;;;;;;13089:48;13136:1;13089:48;:::o;25263:956::-;25373:10;;-1:-1:-1;;;;;25373:10:0;25359;:24;25351:48;;;;;-1:-1:-1;;;25351:48:0;;;;;;;;;;;;-1:-1:-1;;;25351:48:0;;;;;;;;;;;;;;;25430:13;;25475:14;;25410:17;25522:25;25430:13;25475:14;25522:13;:25::i;:::-;25500:47;;25585:11;25564:18;:32;25560:306;;;25629:50;25643:35;:18;25666:11;25643:22;:35::i;25629:50::-;25613:13;:66;25560:306;;;25722:11;25701:18;:32;25697:169;;;25784:70;25795:9;25806:10;25818:35;:11;25834:18;25818:15;:35::i;:::-;25784:10;:70::i;:::-;25766:14;25750:104;25751:13;25750:104;25697:169;26158:13;;26186:14;;25963:248;;;25876:18;25963:248;;;25897:48;;;25963:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25263:956;;;;;:::o;12845:94::-;12902:37;12845:94;:::o;12702:79::-;12752:29;12702:79;:::o;8738:244::-;8015:12;:10;:12::i;:::-;8005:6;;-1:-1:-1;;;;;8005:6:0;;;:22;;;7997:67;;;;;-1:-1:-1;;;7997:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7997:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8827:22:0;::::1;8819:73;;;;-1:-1:-1::0;;;8819:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8929:6;::::0;;8908:38:::1;::::0;-1:-1:-1;;;;;8908:38:0;;::::1;::::0;8929:6;::::1;::::0;8908:38:::1;::::0;::::1;8957:6;:17:::0;;-1:-1:-1;;;;;;8957:17:0::1;-1:-1:-1::0;;;;;8957:17:0;;;::::1;::::0;;;::::1;::::0;;8738:244::o;11441:25::-;;;-1:-1:-1;;;;;11441:25:0;;:::o;6505:106::-;6593:10;6505:106;:::o;12375:168::-;12449:10;;12419:9;;-1:-1:-1;;;;;12449:10:0;12441:55;;;;;-1:-1:-1;;;12441:55:0;;;;;;;;;;;;-1:-1:-1;;;12441:55:0;;;;;;;;;;;;;;;-1:-1:-1;12524:10:0;;-1:-1:-1;;;;;12524:10:0;12375:168;:::o;1375:136::-;1433:7;1460:43;1464:1;1467;1460:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1453:50;;1375:136;;;;;:::o;911:181::-;969:7;1001:5;;;1025:6;;;;1017:46;;;;;-1:-1:-1;;;1017:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:280;2323:7;2377:6;2373:47;;-1:-1:-1;2407:1:0;2400:8;;2373:47;2444:5;;;2448:1;2444;:5;:1;2468:5;;;;;:10;2460:56;;;;-1:-1:-1;;;2460:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3021:132;3079:7;3106:39;3110:1;3113;3106:39;;;;;;;;;;;;;;;;;:3;:39::i;23596:369::-;23642:13;23658;:11;:13::i;:::-;-1:-1:-1;;;;;23658:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23658:27:0;23710:14;;23658:27;;-1:-1:-1;23710:43:0;;12752:29;23710:18;:43::i;:::-;23702:5;:51;23698:260;;;23794:14;;23786:22;;23770:13;:38;23698:260;;;12752:29;23841:13;:39;;;23912:34;;:5;;:9;:34::i;:::-;23895:14;:51;23698:260;23596:369;:::o;21648:1446::-;21851:7;21873;21895;21930:24;21986:1;21969:14;;:18;:42;;;;-1:-1:-1;;;;;;21991:20:0;;;;21969:42;21965:203;;;22058:14;;22047:57;;13050:32;;22047:26;;:6;;:10;:26::i;:57::-;22028:76;-1:-1:-1;22128:28:0;:6;22028:76;22128:10;:28::i;:::-;22119:37;;21965:203;22182:6;;;;22178:850;;;22205:19;22227:25;:9;22241:10;22227:13;:25::i;:::-;22205:47;-1:-1:-1;22267:17:0;22287:38;22205:47;22287:21;:6;22298:9;22287:10;:21::i;:38::-;22267:58;-1:-1:-1;22340:18:0;22361:39;22388:11;22361:22;:6;22372:10;22361;:22::i;:39::-;22340:60;-1:-1:-1;22417:14:0;22434:36;22460:9;22434:21;:10;22449:5;22434:14;:21::i;:36::-;22417:53;;22498:5;22489:6;:14;22485:34;;;-1:-1:-1;22514:5:0;22485:34;22547:4;22538:6;:13;22534:176;;;22581:30;22606:4;22581:20;22599:1;22581:13;:6;22592:1;22581:10;:13::i;:20::-;:24;;:30::i;:::-;22572:39;;22534:176;;;22661:33;22689:4;22661:23;22682:1;22661:16;:6;22672:4;22661:10;:16::i;:::-;:20;;:23::i;:33::-;22652:42;;22534:176;22726:29;22758:33;22785:5;22758:22;:10;22773:6;22758:14;:22::i;:33::-;22726:65;-1:-1:-1;22818:51:0;22832:36;:9;22726:65;22832:13;:36::i;:::-;22818:9;;:13;:51::i;:::-;22806:63;-1:-1:-1;22897:53:0;22912:37;:10;22927:21;22912:14;:37::i;:::-;22897:10;;:14;:53::i;:::-;22884:66;;22178:850;;;;;;;;22995:21;:9;23009:6;22995:13;:21::i;:::-;22983:33;;22178:850;23046:9;;23057:10;;23069:16;21648:1446;-1:-1:-1;;;;;21648:1446:0:o;23102:486::-;23231:7;;;23281:38;:9;12752:29;23281:13;:38::i;:::-;23260:59;;23341:10;23334:4;:17;23330:210;;;12752:29;;-1:-1:-1;23431:36:0;23446:20;:4;23455:10;23446:8;:20::i;:::-;23431:10;;:14;:36::i;:::-;23418:49;;23330:210;;;23524:4;23512:9;:16;23500:28;;23330:210;-1:-1:-1;23558:9:0;;23569:10;;-1:-1:-1;;;23102:486:0:o;1814:192::-;1900:7;1936:12;1928:6;;;;1920:29;;;;-1:-1:-1;;;1920:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1972:5:0;;;1814:192::o;3649:201::-;3735:7;3770:12;3763:5;3755:28;;;;-1:-1:-1;;;3755:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3794:9;3810:1;3806;:5;;;;;;;3649:201;-1:-1:-1;;;;;3649:201:0:o
Swarm Source
ipfs://67c1e1b843e865c250d9de13f99ad977cf44e80b5210fe4dca163fe36d882bfa
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.