Contract Overview
Balance:
0 MOVR
MOVR Value:
$0.00
My Name Tag:
Not Available, login to update
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0xd3c08371258e7c5f04611bb60787e3084d1188041944fce7e8ebf20c5f8f41d5 | 0x60806040 | 2573436 | 379 days 16 hrs ago | Zircon: Deployer | IN | Create: ZirconEnergyFactory | 0 MOVR | 0.003705814747 |
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
ZirconEnergyFactory
Compiler Version
v0.5.16+commit.9c3226ce
Optimization Enabled:
Yes with 1 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0 pragma solidity =0.5.16; import "./ZirconEnergy.sol"; import "./ZirconEnergyRevenue.sol"; import "./interfaces/IZirconEnergyFactory.sol"; import "./interfaces/IZirconEnergyRevenue.sol"; contract ZirconEnergyFactory is IZirconEnergyFactory{ mapping(address => mapping(address => address)) public getEnergy; mapping(address => mapping(address => address)) public getEnergyRevenue; address[] public allEnergies; address[] public allEnergiesRevenue; address public feeToSetter; address public migrator; uint public insurancePerMille; uint public feePercentageRev; uint public feePercentageEnergy; struct Fee { uint112 minPylonFee; uint112 maxPylonFee; } Fee private fee; event EnergyCreated(address indexed pair, address indexed energy, address tokenA, address tokenB, uint); modifier onlyFeeToSetter { require(msg.sender == feeToSetter, 'ZPT: FORBIDDEN'); _; } modifier onlyMigrator { require(msg.sender == migrator, 'ZPT: FORBIDDEN'); _; } constructor(address _feeToSetter, address _migrator) public { fee = Fee({minPylonFee: 1, maxPylonFee: 50}); insurancePerMille = 100; feePercentageRev = 20; feeToSetter = _feeToSetter; migrator = _migrator; } function getMinMaxFee() external view returns (uint112 minFee, uint112 maxFee) { minFee = fee.minPylonFee; maxFee = fee.maxPylonFee; } function setFee(uint112 _minPylonFee, uint112 _maxPylonFee) external onlyFeeToSetter { fee.minPylonFee = _minPylonFee; fee.maxPylonFee = _maxPylonFee; } function setInsurancePerMille(uint _insurancePerMille) external onlyFeeToSetter { insurancePerMille = _insurancePerMille; } function allEnergiesLength() external view returns (uint) { return allEnergies.length; } function allEnergiesRevenueLength() external view returns (uint) { return allEnergiesRevenue.length; } function energyCodeHash() public pure returns (bytes32) { return keccak256(type(ZirconEnergy).creationCode); } function energyRevenueCodeHash() public pure returns (bytes32) { return keccak256(type(ZirconEnergy).creationCode); } function energyFor(address token, address pair) view internal returns (address energy) { energy = address(uint(keccak256(abi.encodePacked( hex'ff', address(this), keccak256(abi.encodePacked(pair, token)), hex'f7f47583f133c1e04059755d96b165532bef2114faae8e068f21ffd8fe846bd0' // init code hash )))); } function pylonFor(address tokenA, address tokenB, address pair, address pylonFactory) pure internal returns (address pylon) { // console.log("pylonFor", tokenA, tokenB); // console.log("pylonFor", pair, pylonFactory); pylon = address(uint(keccak256(abi.encodePacked( hex'ff', pylonFactory, keccak256(abi.encodePacked(tokenA, tokenB, pair)), hex'9fc442a4d7a12215c697eb81564442a0cd83ff2b9db622486b898fe36004e492' // init code hash )))); } function createEnergyRev(address _pair, address _tokenA, address _tokenB, address _pylonFactory) external returns (address energy) { require(_tokenA != _tokenB, 'ZF: IDENTICAL_ADDRESS'); require(_pair != address(0), 'ZE: ZERO_ADDRESS'); (address token0, address token1) = _tokenA < _tokenB ? (_tokenA, _tokenB) : (_tokenB, _tokenA); require(getEnergyRevenue[token0][token1] == address(0), 'ZE: ENERGY_EXISTS'); // single check is sufficient bytes memory bytecode = type(ZirconEnergyRevenue).creationCode; require(bytecode.length != 0, "Create2: bytecode length is zero"); bytes32 salt = keccak256(abi.encodePacked(_pair, token0, token1)); assembly { energy := create2(0, add(bytecode, 32), mload(bytecode), salt) } require(energy != address(0), "Create2: Failed on deploy"); address energy0 = energyFor(token0, _pair); address energy1 = energyFor(token1, _pair); // pylon 0 always with token0 first address pylon0 = pylonFor(token0, token1, _pair, _pylonFactory); address pylon1 = pylonFor(token1, token0, _pair, _pylonFactory); IZirconEnergyRevenue(energy).initialize(_pair, token0, token1, energy0, energy1, pylon0, pylon1); getEnergyRevenue[token0][token1] = energy; getEnergyRevenue[token1][token0] = energy; allEnergiesRevenue.push(energy); emit EnergyCreated(_pair, energy, token0, token1, allEnergies.length); } function createEnergy(address _pylon, address _pair, address _tokenA, address _tokenB) external returns (address energy) { require(_tokenA != _tokenB, 'ZF: IDENTICAL_ADDRESS'); require(_pylon != address(0) && _pair != address(0), 'ZE: ZERO_ADDRESS'); require(getEnergy[_tokenA][_tokenB] == address(0), 'ZE: ENERGY_EXISTS'); // single check is sufficient bytes memory bytecode = type(ZirconEnergy).creationCode; require(bytecode.length != 0, "Create2: bytecode length is zero"); bytes32 salt = keccak256(abi.encodePacked(_pair, _tokenA)); assembly { energy := create2(0, add(bytecode, 32), mload(bytecode), salt) } require(energy != address(0), "Create2: Failed on deploy"); IZirconEnergy(energy).initialize(_pylon, _pair, _tokenA, _tokenB); getEnergy[_tokenA][_tokenB] = energy; allEnergies.push(energy); emit EnergyCreated(_pair, energy, _tokenA, _tokenB, allEnergies.length); } function migrateEnergyLiquidity(address pair, address token, address newEnergy) external onlyMigrator{ require(newEnergy != address(0), 'ZE: ZERO_ADDRESS'); address energy = address(uint(keccak256(abi.encodePacked( hex'ff', address(this), keccak256(abi.encodePacked(pair, token)), energyCodeHash() // init code hash )))); IZirconEnergy(energy).migrateLiquidity(newEnergy); } function migrateEnergyRevenue(address oldEnergy, address newEnergy) external onlyMigrator{ require(newEnergy != address(0), 'ZE: ZERO_ADDRESS'); IZirconEnergyRevenue(oldEnergy).migrateLiquidity(newEnergy); } function migrateEnergyRevenueFees(address oldEnergy, address newEnergy) external onlyMigrator{ require(newEnergy != address(0), 'ZE: ZERO_ADDRESS'); uint feeValue0 = IZirconEnergyRevenue(oldEnergy).feeValue0(); uint feeValue1 = IZirconEnergyRevenue(oldEnergy).feeValue1(); IZirconEnergyRevenue(newEnergy).setFeeValue(feeValue0, feeValue1); } function migrateEnergy(address oldEnergy, address newEnergy) external onlyMigrator{ require(newEnergy != address(0), 'ZE: ZERO_ADDRESS'); IZirconEnergy(oldEnergy).migrateLiquidity(newEnergy); } function setFeePercentageRev(uint _fee) external onlyFeeToSetter { require(_fee <= 100, 'ZE: FEE_TOO_HIGH'); require(_fee >= 0, 'ZE: FEE_TOO_LOW'); feePercentageRev = _fee; } function setFeePercentageEnergy(uint _fee) external onlyFeeToSetter { require(_fee <= 100, 'ZE: FEE_TOO_HIGH'); require(_fee >= 0, 'ZE: FEE_TOO_LOW'); feePercentageEnergy = _fee; } function setFeeToSetter(address _feeToSetter) external onlyFeeToSetter { feeToSetter = _feeToSetter; } function setMigrator(address _migrator) external onlyMigrator { migrator = _migrator; } function getFees(address _token, uint _amount, address _to, address energyRev) external onlyFeeToSetter { require(_amount != 0, "Operations: Cannot recover zero balance"); IZirconEnergyRevenue(energyRev).getFees(_token, _amount, _to); } }
//SPDX-License-Identifier: Unlicense pragma solidity =0.5.16; //import "hardhat/console.sol"; import "./interfaces/IZirconEnergy.sol"; import '@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.sol'; import "./libraries/SafeMath.sol"; import "./interfaces/IZirconEnergyFactory.sol"; import "../interfaces/IZirconPair.sol"; import "../interfaces/IZirconPylon.sol"; import '../libraries/Math.sol'; contract ZirconEnergy is IZirconEnergy { /* Zircon Energy is the protocol-wide accumulator of revenue. Each Pylon ahas an energy that works as a "bank account" and works as an insurance portion balance */ using SafeMath for uint112; using SafeMath for uint256; struct Pylon { address pylonAddress; address pairAddress; address floatToken; address anchorToken; } Pylon pylon; address energyFactory; uint anchorReserve; //Used to track balances and sync up in case of donations bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)'))); // **** MODIFIERS ***** uint public initialized = 0; modifier _initialize() { require(initialized == 1, 'Zircon: FORBIDDEN'); _; } constructor() public { energyFactory = msg.sender; } function getFee() internal view returns (uint112 minFee, uint112 maxFee) { (minFee, maxFee) = IZirconEnergyFactory(energyFactory).getMinMaxFee(); } function initialize(address _pylon, address _pair, address _token0, address _token1) external { require(initialized == 0, "ZER: AI"); require(msg.sender == energyFactory, 'Zircon: FORBIDDEN'); // sufficient check bool isFloatToken0 = IZirconPair(_pair).token0() == _token0; (address tokenA, address tokenB) = isFloatToken0 ? (_token0, _token1) : (_token1, _token0); pylon = Pylon( _pylon, _pair, tokenA, tokenB ); // Approving pylon to use anchor tokens IUniswapV2ERC20(_pair).approve(_pylon, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); IUniswapV2ERC20(tokenB).approve(_pylon, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); initialized = 1; } // ****** HELPER FUNCTIONS ***** function _safeTransfer(address token, address to, uint value) private { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'Zircon Pylon: TRANSFER_FAILED'); } modifier _onlyPylon() { require(pylon.pylonAddress == msg.sender, "ZE: Not Pylon"); _; } modifier _onlyPair() { require(pylon.pairAddress == msg.sender, "ZE: Not Pylon"); _; } function registerFee() external _onlyPylon _initialize{ uint balance = IUniswapV2ERC20(pylon.anchorToken).balanceOf(address(this)); require(balance >= anchorReserve, "ZE: Anchor not sent"); uint register = balance.sub(anchorReserve); uint feePercentageForRev = IZirconEnergyFactory(energyFactory).feePercentageEnergy(); address energyRevAddress = IZirconEnergyFactory(energyFactory).getEnergyRevenue(pylon.floatToken, pylon.anchorToken); uint toSend = register.mul(feePercentageForRev)/(100); if(toSend != 0) _safeTransfer(pylon.anchorToken, energyRevAddress, toSend); anchorReserve = balance.sub(toSend); } //Called when tokens are withdrawn to ensure pylon doesn't get bricked function syncReserve() external _onlyPylon _initialize { anchorReserve = IUniswapV2ERC20(pylon.anchorToken).balanceOf(address(this)); } //Returns the fee in basis points (0.01% units, needs to be divided by 10000) //Uses two piece-wise parabolas. Between 0.45 and 0.55 the fee is very low (minFee). //After the cutoff it uses a steeper parabola defined by a max fee at the extremes (very high, up to 1% by default). function getFeeByGamma(uint gammaMulDecimals) _initialize external view returns (uint amount) { (uint _minFee, uint _maxFee) = getFee(); uint _gammaHalf = 5e17; uint x = (gammaMulDecimals > _gammaHalf) ? (gammaMulDecimals - _gammaHalf).mul(10) : (_gammaHalf - gammaMulDecimals).mul(10); if (gammaMulDecimals <= 45e16 || gammaMulDecimals >= 55e16) { amount = (_maxFee.mul(x).mul(x))/(25e36); //25 is a reduction factor based on the 0.45-0.55 range we're using. } else { amount = (_minFee.mul(x).mul(x).mul(36)/(1e36)).add(_minFee); //Ensures minFee is the lowest value. } } function migrateLiquidity(address newEnergy) external{ require(msg.sender == energyFactory, 'ZP: FORBIDDEN'); // sufficient check uint balance = IZirconPair(pylon.pairAddress).balanceOf(address(this)); uint balanceAnchor = IUniswapV2ERC20(pylon.anchorToken).balanceOf(address(this)); _safeTransfer(pylon.pairAddress, newEnergy, balance); _safeTransfer(pylon.anchorToken, newEnergy, balanceAnchor); } }
pragma solidity =0.5.16; import '@uniswap/v2-core/contracts/interfaces/IUniswapV2ERC20.sol'; import "./libraries/SafeMath.sol"; import "../interfaces/IZirconPair.sol"; import "../interfaces/IZirconPylon.sol"; import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; import "hardhat/console.sol"; import "./interfaces/IZirconEnergyFactory.sol"; contract ZirconEnergyRevenue is ReentrancyGuard { using SafeMath for uint112; using SafeMath for uint256; uint public reserve; address public energyFactory; uint public feeValue1; uint public feeValue0; struct Zircon { address pairAddress; address floatToken; address anchorToken; address energy0; address energy1; address pylon0; address pylon1; } Zircon zircon; bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)'))); function _safeTransfer(address token, address to, uint value) private { (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'Zircon Pylon: TRANSFER_FAILED'); } // **** MODIFIERS ***** uint public initialized = 0; modifier _initialize() { require(initialized == 1, 'Zircon: FORBIDDEN'); _; } modifier _onlyPair() { require(zircon.pairAddress == msg.sender, "ZE: Not Pair"); _; } constructor() public { energyFactory = msg.sender; } function initialize(address _pair, address _tokenA, address _tokenB, address _energy0, address _energy1, address _pylon0, address _pylon1) external { require(initialized == 0, "ZER: Not Factory"); require(energyFactory == msg.sender, "ZER: Not Factory"); zircon = Zircon( _pair, _tokenA, _tokenB, _energy0, _energy1, _pylon0, _pylon1 ); initialized = 1; } function setFeeValue(uint _feeValue0, uint _feeValue1) external { require(energyFactory == msg.sender, "ZER: Not Factory"); feeValue1 = _feeValue1; feeValue0 = _feeValue0; } function calculate(uint percentage) external _onlyPair nonReentrant _initialize { uint balance = IUniswapV2ERC20(zircon.pairAddress).balanceOf(address(this)); require(balance > reserve, "ZER: Reverted"); //Percentage is feeValue/TPV, percentage of pool reserves that are actually fee //It's reduced by mint fee already uint totalSupply = IUniswapV2ERC20(zircon.pairAddress).totalSupply(); //These are the PTBs, balance of pool tokens held by each pylon vault uint pylonBalance0 = IUniswapV2ERC20(zircon.pairAddress).balanceOf(zircon.pylon0); uint pylonBalance1 = IUniswapV2ERC20(zircon.pairAddress).balanceOf(zircon.pylon1); { (uint112 _reservePair0, uint112 _reservePair1,) = IZirconPair(zircon.pairAddress).getReserves(); //Increments the contract variable that stores total fees acquired by pair. Multiplies by each Pylon's share feeValue0 += percentage.mul(_reservePair1).mul(2).mul(pylonBalance0)/totalSupply.mul(1e18); feeValue1 += percentage.mul(_reservePair0).mul(2).mul(pylonBalance1)/totalSupply.mul(1e18); } { uint feePercentageForRev = IZirconEnergyFactory(energyFactory).feePercentageRev(); uint amount = balance.sub(reserve); uint pylon0Liq = (amount.mul(pylonBalance0)/totalSupply).mul(100 - feePercentageForRev)/(100); uint pylon1Liq = (amount.mul(pylonBalance1)/totalSupply).mul(100 - feePercentageForRev)/(100); _safeTransfer(zircon.pairAddress, zircon.energy0, pylon0Liq); _safeTransfer(zircon.pairAddress, zircon.energy1, pylon1Liq); reserve = balance.sub(pylon0Liq.add(pylon1Liq)); } } function changePylonAddresses(address _pylonAddressA, address _pylonAddressB) external { require(msg.sender == energyFactory, 'Zircon: FORBIDDEN'); // sufficient check zircon.pylon0 = _pylonAddressA; zircon.pylon1 = _pylonAddressB; } function migrateLiquidity(address newEnergy) external{ require(msg.sender == energyFactory, 'ZP: FORBIDDEN'); // sufficient check uint balance = IZirconPair(zircon.pairAddress).balanceOf(address(this)); uint anchorBalance = IZirconPair(zircon.anchorToken).balanceOf(address(this)); uint floatBalance = IZirconPair(zircon.floatToken).balanceOf(address(this)); _safeTransfer(zircon.pairAddress, newEnergy, balance); _safeTransfer(zircon.anchorToken, newEnergy, anchorBalance); _safeTransfer(zircon.floatToken, newEnergy, floatBalance); } function getBalanceFromPair() external _initialize returns (uint balance) { require(msg.sender == zircon.pylon0 || msg.sender == zircon.pylon1, "ZE: Not Pylon"); if(msg.sender == zircon.pylon0) { balance = feeValue0; feeValue0 = 0; } else if(msg.sender == zircon.pylon1) { balance = feeValue1; feeValue1 = 0; } } function getFees(address _token, uint _amount, address _to) external { require(msg.sender == energyFactory, "ZER: Not properly called"); require(_amount != 0, "Operations: Cannot recover zero balance"); if(_token == zircon.pairAddress) { require(_amount <= reserve, "ZER: Reverted"); reserve = reserve.sub(_amount); } _safeTransfer(_token, _to, _amount); } }
pragma solidity =0.5.16; interface IZirconEnergyFactory { // Variables function allEnergies(uint p) external view returns (address); function insurancePerMille() external view returns (uint); function feePercentageRev() external view returns (uint); function feePercentageEnergy() external view returns (uint); function getEnergy(address _tokenA, address _tokenB) external view returns (address energy); function getEnergyRevenue(address _tokenA, address _tokenB) external view returns (address energy); function allEnergiesLength() external view returns (uint); function feeToSetter() external pure returns (address); function setMigrator(address _migrator) external; function setFeeToSetter(address _feeToSetter) external; function setInsurancePerMille(uint _insurancePerMille) external; function setFeePercentageRev(uint fee) external; function setFeePercentageEnergy(uint fee) external; // Functions function createEnergy(address, address, address, address) external returns (address energy); function createEnergyRev(address, address, address, address) external returns (address energy); function setFee(uint112 _minPylonFee, uint112 _maxPylonFee) external; function getMinMaxFee() external view returns (uint112 minFee, uint112 maxFee); function getFees(address _token, uint _amount, address _to, address energyRev) external; function migrateEnergyLiquidity(address pair, address token, address newEnergy) external; function migrateEnergyRevenue(address oldEnergy, address newEnergy) external; function migrateEnergyRevenueFees(address oldEnergy, address newEnergy) external; function migrateEnergy(address oldEnergy, address newEnergy) external; }
pragma solidity =0.5.16; interface IZirconEnergyRevenue { function initialize(address _pair, address _tokenA, address _tokenB, address energy0, address energy1, address pylon0, address pylon1) external; function calculate(uint percentage) external; function migrateLiquidity(address newEnergy) external; function getBalanceFromPair() external returns (uint); function feeValue1() external returns (uint); function feeValue0() external returns (uint); function getFees(address _token, uint _amount, address _to) external; function setFeeValue(uint _feeValue0, uint _feeValue1) external; }
pragma solidity =0.5.16; interface IZirconEnergy { function initialize(address _pylon, address _pair, address _token0, address _token1) external; // function breakPiggybank(uint _requestedLiquidity) external returns (uint returnedLiquidity); // function syncPylonFee() external; // function syncPairFee() external; function getFeeByGamma(uint gammaMulDecimals) external view returns (uint amount); function registerFee() external; function syncReserve() external; function migrateLiquidity(address newEnergy) external; }
pragma solidity >=0.5.0; interface IUniswapV2ERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; }
// SPDX-License-Identifier: GPL-3.0 pragma solidity =0.5.16; // a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math) library SafeMath { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x, 'ds-math-add-overflow'); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x, 'ds-math-sub-underflow'); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow'); } }
// SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.5.16; interface IZirconPair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function energyRevenueAddress() external pure returns (address); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burnOneSide(address to, bool isReserve0) external returns (uint amount); function mintOneSide(address to, bool isReserve0) external returns (uint liquidity, uint amount0, uint amount1); function publicMintFee() external; function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; // function skim(address to) external; function sync() external; function tryLock() external; function initialize(address, address, address) external; function changeEnergyRevAddress(address _revAddress) external; }
pragma solidity >=0.5.16; interface IZirconPylon { function initialized() external view returns (uint); // function anchorPoolTokenAddress() external view returns (address); // function floatPoolTokenAddress() external view returns (address); // function energyAddress() external view returns (address); function gammaMulDecimals() external view returns (uint); function isFloatReserve0() external view returns (bool); function virtualAnchorBalance() external view returns (uint); function anchorKFactor() external view returns (uint); function lastRootKTranslated() external view returns (uint); function formulaSwitch() external view returns (bool); function EMABlockNumber() external view returns (bool); function getSyncReserves() external view returns (uint112 _reserve0, uint112 _reserve1); // Called once by the factory at time of deployment // @_floatPoolToken -> Contains Address Of Float PT // @_anchorPoolToken -> Contains Address Of Anchor PT // @token0 -> Float token // @token1 -> Anchor token function initMigratedPylon(uint _gamma, uint _vab, uint _anchorKFactor, bool _formulaSwitch) external; function initialize(address _floatPoolTokenAddress, address _anchorPoolTokenAddress, address _floatToken, address _anchorToken, address _pairAddress, address _pairFactoryAddress, address _energy, address _energyRev) external; // On init pylon we have to handle two cases // The first case is when we initialize the pair through the pylon // And the second one is when initialize the pylon with a pair al ready existing function initPylon(address _to) external returns (uint floatLiquidity, uint anchorLiquidity); // External Function called to mint pool Token // Liquidity have to be sent before function mintPoolTokens(address to, bool isAnchor) external returns (uint liquidity); // function mintAsync100(address to, bool isAnchor) external returns (uint liquidity); function mintAsync(address to, bool shouldMintAnchor) external returns (uint liquidity); // Burn Async send both tokens 50-50 // Liquidity has to be sent before function burnAsync(address _to, bool _isAnchor) external returns (uint amount0, uint amount1); // Burn send liquidity back to user burning Pool tokens // The function first uses the reserves of the Pylon // If not enough reserves it burns The Pool Tokens of the pylon function burn(address _to, bool _isAnchor) external returns (uint amount); function changeEnergyAddress(address _energyAddress, address _energyRevAddress) external; }
// SPDX-License-Identifier: GPL-3.0 pragma solidity =0.5.16; // a library for performing various math operations library Math { function min(uint x, uint y) internal pure returns (uint z) { z = x < y ? x : y; } function max(uint x, uint y) internal pure returns (uint z) { z = x > y ? x : y; } // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method) function sqrt(uint y) internal pure returns (uint z) { if (y > 3) { z = y; uint x = y / 2 + 1; while (x < z) { z = x; x = (y / x + x) / 2; } } else if (y != 0) { z = 1; } } }
pragma solidity ^0.5.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. * * _Since v2.5.0:_ this module is now much more gas efficient, given net gas * metering changes introduced in the Istanbul hardfork. */ contract ReentrancyGuard { bool private _notEntered; constructor () internal { // Storing an initial non-zero value makes deployment a bit more // expensive, but in exchange the refund on every call to nonReentrant // will be lower in amount. Since refunds are capped to a percetange of // the total transaction's gas, it is best to keep them low in cases // like this one, to increase the likelihood of the full refund coming // into effect. _notEntered = true; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_notEntered, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _notEntered = false; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _notEntered = true; } }
// SPDX-License-Identifier: MIT pragma solidity >= 0.4.22 <0.9.0; library console { address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67); function _sendLogPayload(bytes memory payload) private view { uint256 payloadLength = payload.length; address consoleAddress = CONSOLE_ADDRESS; assembly { let payloadStart := add(payload, 32) let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0) } } function log() internal view { _sendLogPayload(abi.encodeWithSignature("log()")); } function logInt(int p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(int)", p0)); } function logUint(uint p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); } function logString(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function logBool(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function logAddress(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function logBytes(bytes memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes)", p0)); } function logBytes1(bytes1 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0)); } function logBytes2(bytes2 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0)); } function logBytes3(bytes3 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0)); } function logBytes4(bytes4 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0)); } function logBytes5(bytes5 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0)); } function logBytes6(bytes6 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0)); } function logBytes7(bytes7 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0)); } function logBytes8(bytes8 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0)); } function logBytes9(bytes9 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0)); } function logBytes10(bytes10 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0)); } function logBytes11(bytes11 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0)); } function logBytes12(bytes12 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0)); } function logBytes13(bytes13 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0)); } function logBytes14(bytes14 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0)); } function logBytes15(bytes15 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0)); } function logBytes16(bytes16 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0)); } function logBytes17(bytes17 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0)); } function logBytes18(bytes18 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0)); } function logBytes19(bytes19 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0)); } function logBytes20(bytes20 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0)); } function logBytes21(bytes21 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0)); } function logBytes22(bytes22 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0)); } function logBytes23(bytes23 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0)); } function logBytes24(bytes24 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0)); } function logBytes25(bytes25 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0)); } function logBytes26(bytes26 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0)); } function logBytes27(bytes27 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0)); } function logBytes28(bytes28 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0)); } function logBytes29(bytes29 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0)); } function logBytes30(bytes30 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0)); } function logBytes31(bytes31 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0)); } function logBytes32(bytes32 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0)); } function log(uint p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); } function log(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function log(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function log(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function log(uint p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1)); } function log(uint p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1)); } function log(uint p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1)); } function log(uint p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1)); } function log(string memory p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1)); } function log(string memory p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1)); } function log(string memory p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1)); } function log(string memory p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1)); } function log(bool p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1)); } function log(bool p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1)); } function log(bool p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1)); } function log(bool p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1)); } function log(address p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1)); } function log(address p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1)); } function log(address p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1)); } function log(address p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1)); } function log(uint p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2)); } function log(uint p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2)); } function log(uint p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2)); } function log(uint p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2)); } function log(uint p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2)); } function log(uint p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2)); } function log(uint p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2)); } function log(uint p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2)); } function log(uint p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2)); } function log(uint p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2)); } function log(uint p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2)); } function log(uint p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2)); } function log(uint p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2)); } function log(uint p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2)); } function log(uint p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2)); } function log(uint p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2)); } function log(string memory p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2)); } function log(string memory p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2)); } function log(string memory p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2)); } function log(string memory p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2)); } function log(string memory p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2)); } function log(string memory p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); } function log(string memory p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); } function log(string memory p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); } function log(string memory p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2)); } function log(string memory p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); } function log(string memory p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); } function log(string memory p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); } function log(string memory p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2)); } function log(string memory p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); } function log(string memory p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); } function log(string memory p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); } function log(bool p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2)); } function log(bool p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2)); } function log(bool p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2)); } function log(bool p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2)); } function log(bool p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2)); } function log(bool p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); } function log(bool p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); } function log(bool p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); } function log(bool p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2)); } function log(bool p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); } function log(bool p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); } function log(bool p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); } function log(bool p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2)); } function log(bool p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); } function log(bool p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); } function log(bool p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); } function log(address p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2)); } function log(address p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2)); } function log(address p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2)); } function log(address p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2)); } function log(address p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2)); } function log(address p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); } function log(address p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); } function log(address p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); } function log(address p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2)); } function log(address p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); } function log(address p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); } function log(address p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); } function log(address p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2)); } function log(address p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); } function log(address p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); } function log(address p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); } function log(uint p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); } }
{ "optimizer": { "enabled": true, "runs": 1 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
[{"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"},{"internalType":"address","name":"_migrator","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"address","name":"energy","type":"address"},{"indexed":false,"internalType":"address","name":"tokenA","type":"address"},{"indexed":false,"internalType":"address","name":"tokenB","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"EnergyCreated","type":"event"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allEnergies","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allEnergiesLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allEnergiesRevenue","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allEnergiesRevenueLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_pylon","type":"address"},{"internalType":"address","name":"_pair","type":"address"},{"internalType":"address","name":"_tokenA","type":"address"},{"internalType":"address","name":"_tokenB","type":"address"}],"name":"createEnergy","outputs":[{"internalType":"address","name":"energy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"address","name":"_tokenA","type":"address"},{"internalType":"address","name":"_tokenB","type":"address"},{"internalType":"address","name":"_pylonFactory","type":"address"}],"name":"createEnergyRev","outputs":[{"internalType":"address","name":"energy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"energyCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"energyRevenueCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"feePercentageEnergy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feePercentageRev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"getEnergy","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"getEnergyRevenue","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"address","name":"energyRev","type":"address"}],"name":"getFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMinMaxFee","outputs":[{"internalType":"uint112","name":"minFee","type":"uint112"},{"internalType":"uint112","name":"maxFee","type":"uint112"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"insurancePerMille","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"oldEnergy","type":"address"},{"internalType":"address","name":"newEnergy","type":"address"}],"name":"migrateEnergy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"newEnergy","type":"address"}],"name":"migrateEnergyLiquidity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"oldEnergy","type":"address"},{"internalType":"address","name":"newEnergy","type":"address"}],"name":"migrateEnergyRevenue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"oldEnergy","type":"address"},{"internalType":"address","name":"newEnergy","type":"address"}],"name":"migrateEnergyRevenueFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"migrator","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint112","name":"_minPylonFee","type":"uint112"},{"internalType":"uint112","name":"_maxPylonFee","type":"uint112"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFeePercentageEnergy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFeePercentageRev","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"name":"setFeeToSetter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_insurancePerMille","type":"uint256"}],"name":"setInsurancePerMille","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_migrator","type":"address"}],"name":"setMigrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516139563803806139568339818101604052604081101561003357600080fd5b50805160209182015160408051808201909152600180825260329190940152600980546001600160701b031916909317600160701b600160e01b031916601960711b1790925560646006556014600755600480546001600160a01b03199081166001600160a01b03938416179091556005805490911691909216179055613897806100bf6000396000f3fe608060405234801561001057600080fd5b50600436106101495760003560e01c8063094b74151461014e5780630b0d7eb1146101725780630c16293a146101a25780631b151bc1146101de57806323cf3118146101fb578063295305d1146102215780634dd814421461024f57806363e1240114610269578063708284b41461029757806373e56b141461029f5780637cd07e47146102a757806388413ca0146102af5780638d72dfee146102dd5780639172e784146102fa5780639364a2961461029f57806394a77e5b14610338578063957ddb16146103765780639f9c54c914610393578063a2669ce7146103b0578063a2e74af6146103b8578063b5b729f6146103de578063ba77c79214610416578063cd2ba9641461041e578063d63135601461043b578063dcd8fc0b14610469578063e95078cf14610221578063f732ff4b14610471575b600080fd5b61015661049f565b604080516001600160a01b039092168252519081900360200190f35b6101a06004803603604081101561018857600080fd5b506001600160701b03813581169160200135166104ae565b005b6101a0600480360360808110156101b857600080fd5b506001600160a01b03813581169160208101359160408201358116916060013516610539565b6101a0600480360360208110156101f457600080fd5b503561063d565b6101a06004803603602081101561021157600080fd5b50356001600160a01b03166106db565b6101a06004803603604081101561023757600080fd5b506001600160a01b038135811691602001351661074d565b61025761085f565b60408051918252519081900360200190f35b610271610865565b604080516001600160701b03938416815291909216602082015281519081900390910190f35b610257610880565b610257610886565b6101566108b8565b610156600480360360408110156102c557600080fd5b506001600160a01b03813581169160200135166108c7565b6101a0600480360360208110156102f357600080fd5b50356108ed565b6101566004803603608081101561031057600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516610942565b6101566004803603608081101561034e57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516610cc9565b6101566004803603602081101561038c57600080fd5b503561121a565b6101a0600480360360208110156103a957600080fd5b5035611241565b6102576112df565b6101a0600480360360208110156103ce57600080fd5b50356001600160a01b03166112e5565b6101a0600480360360608110156103f457600080fd5b506001600160a01b038135811691602081013582169160409091013516611357565b61025761150f565b6101566004803603602081101561043457600080fd5b5035611515565b6101a06004803603604081101561045157600080fd5b506001600160a01b0381358116916020013516611522565b6102576116ef565b6101566004803603604081101561048757600080fd5b506001600160a01b03813581169160200135166116f5565b6004546001600160a01b031681565b6004546001600160a01b031633146104fe576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b600980546001600160701b03928316600160701b02600160701b600160e01b0319949093166001600160701b03199091161792909216179055565b6004546001600160a01b03163314610589576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b826105c55760405162461bcd60e51b81526004018080602001828103825260278152602001806137fc6027913960400191505060405180910390fd5b604080516365b7c8b760e11b81526001600160a01b03868116600483015260248201869052848116604483015291519183169163cb6f916e9160648082019260009290919082900301818387803b15801561061f57600080fd5b505af1158015610633573d6000803e3d6000fd5b5050505050505050565b6004546001600160a01b0316331461068d576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b60648111156106d6576040805162461bcd60e51b815260206004820152601060248201526f0b48a74408c8a8abea89e9ebe90928e960831b604482015290519081900360640190fd5b600755565b6005546001600160a01b0316331461072b576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b0316331461079d576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b6001600160a01b0381166107eb576040805162461bcd60e51b815260206004820152601060248201526f5a453a205a45524f5f4144445245535360801b604482015290519081900360640190fd5b816001600160a01b031663438ab5ac826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561084357600080fd5b505af1158015610857573d6000803e3d6000fd5b505050505050565b60035490565b6009546001600160701b0380821692600160701b9092041690565b60085481565b6000604051806020016108989061185f565b6020820181038252601f19601f8201166040525080519060200120905090565b6005546001600160a01b031681565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b6004546001600160a01b0316331461093d576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b600655565b6000816001600160a01b0316836001600160a01b031614156109a3576040805162461bcd60e51b81526020600482015260156024820152745a463a204944454e544943414c5f4144445245535360581b604482015290519081900360640190fd5b6001600160a01b038516158015906109c357506001600160a01b03841615155b610a07576040805162461bcd60e51b815260206004820152601060248201526f5a453a205a45524f5f4144445245535360801b604482015290519081900360640190fd5b6001600160a01b0383811660009081526020818152604080832086851684529091529020541615610a73576040805162461bcd60e51b81526020600482015260116024820152705a453a20454e455247595f45584953545360781b604482015290519081900360640190fd5b606060405180602001610a859061185f565b601f1982820381018352601f909101166040528051909150610adc576040805162461bcd60e51b81526020600482018190526024820152600080516020613823833981519152604482015290519081900360640190fd5b6000858560405160200180836001600160a01b03166001600160a01b031660601b8152601401826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f592506001600160a01b038316610b9c576040805162461bcd60e51b8152602060048201526019602482015278437265617465323a204661696c6564206f6e206465706c6f7960381b604482015290519081900360640190fd5b60408051637c643b2f60e11b81526001600160a01b03898116600483015288811660248301528781166044830152868116606483015291519185169163f8c8765e9160848082019260009290919082900301818387803b158015610bff57600080fd5b505af1158015610c13573d6000803e3d6000fd5b5050506001600160a01b038087166000818152602081815260408083208a86168085529083528184208054878c166001600160a01b0319918216811790925560028054600181018255968190527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90960180549091168217905593548251958652928501528381019190915251909350918916916000805160206138438339815191529181900360600190a35050949350505050565b6000826001600160a01b0316846001600160a01b03161415610d2a576040805162461bcd60e51b81526020600482015260156024820152745a463a204944454e544943414c5f4144445245535360581b604482015290519081900360640190fd5b6001600160a01b038516610d78576040805162461bcd60e51b815260206004820152601060248201526f5a453a205a45524f5f4144445245535360801b604482015290519081900360640190fd5b600080846001600160a01b0316866001600160a01b031610610d9b578486610d9e565b85855b6001600160a01b03808316600090815260016020908152604080832084861684529091529020549294509092501615610e12576040805162461bcd60e51b81526020600482015260116024820152705a453a20454e455247595f45584953545360781b604482015290519081900360640190fd5b606060405180602001610e249061186c565b601f1982820381018352601f909101166040528051909150610e7b576040805162461bcd60e51b81526020600482018190526024820152600080516020613823833981519152604482015290519081900360640190fd5b6040805160608a811b6001600160601b031990811660208085019190915287831b821660348501529186901b1660488301528251808303603c018152605c9092019092528051908201208251909182919084016000f594506001600160a01b038516610f2a576040805162461bcd60e51b8152602060048201526019602482015278437265617465323a204661696c6564206f6e206465706c6f7960381b604482015290519081900360640190fd5b6000610f36858b611718565b90506000610f44858c611718565b90506000610f5487878e8c6117b6565b90506000610f6487898f8d6117b6565b9050886001600160a01b031663358764768e8a8a888888886040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b03168152602001975050505050505050600060405180830381600087803b15801561105a57600080fd5b505af115801561106e573d6000803e3d6000fd5b5050505088600160008a6001600160a01b03166001600160a01b031681526020019081526020016000206000896001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508860016000896001600160a01b03166001600160a01b0316815260200190815260200160002060008a6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060038990806001815401808255809150509060018203906000526020600020016000909192909190916101000a8154816001600160a01b0302191690836001600160a01b0316021790555050886001600160a01b03168d6001600160a01b03166000805160206138438339815191528a8a60028054905060405180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b03168152602001828152602001935050505060405180910390a35050505050505050949350505050565b6002818154811061122757fe5b6000918252602090912001546001600160a01b0316905081565b6004546001600160a01b03163314611291576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b60648111156112da576040805162461bcd60e51b815260206004820152601060248201526f0b48a74408c8a8abea89e9ebe90928e960831b604482015290519081900360640190fd5b600855565b60025490565b6004546001600160a01b03163314611335576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113a7576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b6001600160a01b0381166113f5576040805162461bcd60e51b815260206004820152601060248201526f5a453a205a45524f5f4144445245535360801b604482015290519081900360640190fd5b600030848460405160200180836001600160a01b03166001600160a01b031660601b8152601401826001600160a01b03166001600160a01b031660601b81526014019250505060405160208183030381529060405280519060200120611459610886565b60405160200180806001600160f81b0319815250600101846001600160a01b03166001600160a01b031660601b815260140183815260200182815260200193505050506040516020818303038152906040528051906020012060001c9050806001600160a01b031663438ab5ac836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561061f57600080fd5b60075481565b6003818154811061122757fe5b6005546001600160a01b03163314611572576040805162461bcd60e51b815260206004820152600e60248201526d2d282a1d102327a92124a22222a760911b604482015290519081900360640190fd5b6001600160a01b0381166115c0576040805162461bcd60e51b815260206004820152601060248201526f5a453a205a45524f5f4144445245535360801b604482015290519081900360640190fd5b6000826001600160a01b03166386f6f4306040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156115fd57600080fd5b505af1158015611611573d6000803e3d6000fd5b505050506040513d602081101561162757600080fd5b5051604080516350d7de8560e11b815290519192506000916001600160a01b0386169163a1afbd0a91600480830192602092919082900301818787803b15801561167057600080fd5b505af1158015611684573d6000803e3d6000fd5b505050506040513d602081101561169a57600080fd5b50516040805163f222771560e01b8152600481018590526024810183905290519192506001600160a01b0385169163f22277159160448082019260009290919082900301818387803b15801561061f57600080fd5b60065481565b60006020818152928152604080822090935290815220546001600160a01b031681565b604080516001600160601b0319606093841b811660208084019190915294841b166034820152815160288183030181526048820183528051908501206001600160f81b031960688301523090931b6069820152607d8101929092527ff7f47583f133c1e04059755d96b165532bef2114faae8e068f21ffd8fe846bd0609d808401919091528151808403909101815260bd9092019052805191012090565b604080516001600160601b0319606096871b811660208084019190915295871b8116603483015293861b841660488201528151603c818303018152605c820183528051908601206001600160f81b0319607c8301529290951b909216607d85015260918401527f9fc442a4d7a12215c697eb81564442a0cd83ff2b9db622486b898fe36004e49260b1808501919091528151808503909101815260d19093019052815191012090565b610df48061187a83390190565b61118e8061266e8339019056fe6080604052600060065534801561001557600080fd5b50600480546001600160a01b03191633179055610dbd806100376000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630269b9ca1461006757806303f187ea14610096578063158ef93e146100a0578063438ab5ac146100a85780634923b230146100ce578063f8c8765e146100d6575b600080fd5b6100846004803603602081101561007d57600080fd5b5035610114565b60408051918252519081900360200190f35b61009e610268565b005b610084610542565b61009e600480360360208110156100be57600080fd5b50356001600160a01b0316610548565b61009e6106c1565b61009e600480360360808110156100ec57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160600135166107d7565b6000600654600114610161576040805162461bcd60e51b81526020600482015260116024820152702d34b931b7b71d102327a92124a22222a760791b604482015290519081900360640190fd5b60008061016c610a6a565b6001600160701b0391821693501690506706f05b59d3b2000060008186116101a6576101a1868303600a63ffffffff610aea16565b6101b9565b6101b9828703600a63ffffffff610aea16565b905067063eb89da4ed0000861115806101da57506707a1fe16027700008610155b1561021e576b012ced32a16a1b11e826288960241b61020f82610203868263ffffffff610aea16565b9063ffffffff610aea16565b8161021657fe5b04945061025f565b61025c846a0c097ce7bc90715b34b9f160241b61024860246102038681868263ffffffff610aea16565b8161024f57fe5b049063ffffffff610b5316565b94505b50505050919050565b6000546001600160a01b031633146102b7576040805162461bcd60e51b815260206004820152600d60248201526c2d229d102737ba10283cb637b760991b604482015290519081900360640190fd5b600654600114610302576040805162461bcd60e51b81526020600482015260116024820152702d34b931b7b71d102327a92124a22222a760791b604482015290519081900360640190fd5b600354604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561034d57600080fd5b505afa158015610361573d6000803e3d6000fd5b505050506040513d602081101561037757600080fd5b50516005549091508110156103c9576040805162461bcd60e51b815260206004820152601360248201527216914e88105b98da1bdc881b9bdd081cd95b9d606a1b604482015290519081900360640190fd5b60006103e060055483610ba290919063ffffffff16565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663708284b46040518163ffffffff1660e01b815260040160206040518083038186803b15801561043257600080fd5b505afa158015610446573d6000803e3d6000fd5b505050506040513d602081101561045c57600080fd5b5051600480546002546003546040805163044209e560e51b81526001600160a01b03938416958101959095529082166024850152519394506000939116916388413ca0916044808301926020929190829003018186803b1580156104bf57600080fd5b505afa1580156104d3573d6000803e3d6000fd5b505050506040513d60208110156104e957600080fd5b5051905060006064610501858563ffffffff610aea16565b8161050857fe5b049050801561052857600354610528906001600160a01b03168383610bf2565b610538858263ffffffff610ba216565b6005555050505050565b60065481565b6004546001600160a01b03163314610597576040805162461bcd60e51b815260206004820152600d60248201526c2d281d102327a92124a22222a760991b604482015290519081900360640190fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156105e257600080fd5b505afa1580156105f6573d6000803e3d6000fd5b505050506040513d602081101561060c57600080fd5b5051600354604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561065f57600080fd5b505afa158015610673573d6000803e3d6000fd5b505050506040513d602081101561068957600080fd5b50516001549091506106a5906001600160a01b03168484610bf2565b6003546106bc906001600160a01b03168483610bf2565b505050565b6000546001600160a01b03163314610710576040805162461bcd60e51b815260206004820152600d60248201526c2d229d102737ba10283cb637b760991b604482015290519081900360640190fd5b60065460011461075b576040805162461bcd60e51b81526020600482015260116024820152702d34b931b7b71d102327a92124a22222a760791b604482015290519081900360640190fd5b600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156107a657600080fd5b505afa1580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b5051600555565b60065415610816576040805162461bcd60e51b81526020600482015260076024820152665a45523a20414960c81b604482015290519081900360640190fd5b6004546001600160a01b03163314610869576040805162461bcd60e51b81526020600482015260116024820152702d34b931b7b71d102327a92124a22222a760791b604482015290519081900360640190fd5b6000826001600160a01b0316846001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156108ae57600080fd5b505afa1580156108c2573d6000803e3d6000fd5b505050506040513d60208110156108d857600080fd5b50516001600160a01b0316149050600080826108f55783856108f8565b84845b604080516080810182526001600160a01b03808c168083528b821660208085018290528388168587018190529387166060909501859052600080546001600160a01b0319908116851782556001805482168517905560028054821690961790955560038054909516909517909355845163095ea7b360e01b8152600481019290925260001960248301529351959750939550919363095ea7b39360448082019493918390030190829087803b1580156109b057600080fd5b505af11580156109c4573d6000803e3d6000fd5b505050506040513d60208110156109da57600080fd5b50506040805163095ea7b360e01b81526001600160a01b038981166004830152600019602483015291519183169163095ea7b3916044808201926020929091908290030181600087803b158015610a3057600080fd5b505af1158015610a44573d6000803e3d6000fd5b505050506040513d6020811015610a5a57600080fd5b5050600160065550505050505050565b60048054604080516363e1240160e01b8152815160009485946001600160a01b0316936363e124019380830193919290829003018186803b158015610aae57600080fd5b505afa158015610ac2573d6000803e3d6000fd5b505050506040513d6040811015610ad857600080fd5b50805160209091015190939092509050565b6000811580610b0557505080820282828281610b0257fe5b04145b610b4d576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b80820182811015610b4d576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b4d576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b60408051808201825260198152787472616e7366657228616464726573732c75696e743235362960381b60209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310610c9b5780518252601f199092019160209182019101610c7c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610cfd576040519150601f19603f3d011682016040523d82523d6000602084013e610d02565b606091505b5091509150818015610d30575080511580610d305750808060200190516020811015610d2d57600080fd5b50515b610d81576040805162461bcd60e51b815260206004820152601d60248201527f5a6972636f6e2050796c6f6e3a205452414e534645525f4641494c4544000000604482015290519081900360640190fd5b505050505056fea265627a7a723158209902d661ff4fb63696078ea7b4bc6b449e7ce11e13953a0e85b46977b3bb7bb964736f6c6343000510003260806040526000600c5534801561001557600080fd5b506000805460ff19166001179055600280546001600160a01b0319163317905561114a806100446000396000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c80630b48bd23146100a9578063158ef93e146100c357806317d1ff9f146100cb57806335876476146100ef578063438ab5ac1461014957806349d20f661461016f57806386f6f4301461019d578063a1afbd0a146101a5578063b9d92de8146101ad578063cb6f916e146101ca578063cd3293de14610200578063f222771514610208575b600080fd5b6100b161022b565b60408051918252519081900360200190f35b6100b161031f565b6100d3610325565b604080516001600160a01b039092168252519081900360200190f35b610147600480360360e081101561010557600080fd5b506001600160a01b038135811691602081013582169160408201358116916060810135821691608082013581169160a081013582169160c09091013516610334565b005b6101476004803603602081101561015f57600080fd5b50356001600160a01b0316610485565b6101476004803603604081101561018557600080fd5b506001600160a01b0381358116916020013516610693565b6100b1610714565b6100b161071a565b610147600480360360208110156101c357600080fd5b5035610720565b610147600480360360608110156101e057600080fd5b506001600160a01b03813581169160208101359160409091013516610cd6565b6100b1610df0565b6101476004803603604081101561021e57600080fd5b5080359060200135610df6565b6000600c54600114610278576040805162461bcd60e51b81526020600482015260116024820152702d34b931b7b71d102327a92124a22222a760791b604482015290519081900360640190fd5b600a546001600160a01b031633148061029b5750600b546001600160a01b031633145b6102dc576040805162461bcd60e51b815260206004820152600d60248201526c2d229d102737ba10283cb637b760991b604482015290519081900360640190fd5b600a546001600160a01b03163314156102fe575060048054600090915561031c565b600b546001600160a01b031633141561031c57506003805460009091555b90565b600c5481565b6002546001600160a01b031681565b600c541561037c576040805162461bcd60e51b815260206004820152601060248201526f5a45523a204e6f7420466163746f727960801b604482015290519081900360640190fd5b6002546001600160a01b031633146103ce576040805162461bcd60e51b815260206004820152601060248201526f5a45523a204e6f7420466163746f727960801b604482015290519081900360640190fd5b6040805160e0810182526001600160a01b0398891680825297891660208201819052968916918101829052948816606086018190529388166080860181905292881660a086018190529190971660c0909401849052600580546001600160a01b031990811690971790556006805487169095179094556007805486169096179095556008805485169091179055600980548416909417909355600a805483169091179055600b805490911690911790556001600c55565b6002546001600160a01b031633146104d4576040805162461bcd60e51b815260206004820152600d60248201526c2d281d102327a92124a22222a760991b604482015290519081900360640190fd5b600554604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561051f57600080fd5b505afa158015610533573d6000803e3d6000fd5b505050506040513d602081101561054957600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561059c57600080fd5b505afa1580156105b0573d6000803e3d6000fd5b505050506040513d60208110156105c657600080fd5b5051600654604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561061957600080fd5b505afa15801561062d573d6000803e3d6000fd5b505050506040513d602081101561064357600080fd5b505160055490915061065f906001600160a01b03168585610e50565b600754610676906001600160a01b03168584610e50565b60065461068d906001600160a01b03168583610e50565b50505050565b6002546001600160a01b031633146106e6576040805162461bcd60e51b81526020600482015260116024820152702d34b931b7b71d102327a92124a22222a760791b604482015290519081900360640190fd5b600a80546001600160a01b039384166001600160a01b031991821617909155600b8054929093169116179055565b60045481565b60035481565b6005546001600160a01b0316331461076e576040805162461bcd60e51b815260206004820152600c60248201526b2d229d102737ba102830b4b960a11b604482015290519081900360640190fd5b60005460ff166107c5576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6000805460ff19169055600c5460011461081a576040805162461bcd60e51b81526020600482015260116024820152702d34b931b7b71d102327a92124a22222a760791b604482015290519081900360640190fd5b600554604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561086557600080fd5b505afa158015610879573d6000803e3d6000fd5b505050506040513d602081101561088f57600080fd5b505160015490915081116108da576040805162461bcd60e51b815260206004820152600d60248201526c1691548e8814995d995c9d1959609a1b604482015290519081900360640190fd5b600554604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561091f57600080fd5b505afa158015610933573d6000803e3d6000fd5b505050506040513d602081101561094957600080fd5b5051600554600a54604080516370a0823160e01b81526001600160a01b039283166004820152905193945060009391909216916370a08231916024808301926020929190829003018186803b1580156109a157600080fd5b505afa1580156109b5573d6000803e3d6000fd5b505050506040513d60208110156109cb57600080fd5b5051600554600b54604080516370a0823160e01b81526001600160a01b039283166004820152905193945060009391909216916370a08231916024808301926020929190829003018186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d6020811015610a4d57600080fd5b505160055460408051630240bc6b60e21b8152905192935060009283926001600160a01b031691630902f1ac916004808301926060929190829003018186803b158015610a9957600080fd5b505afa158015610aad573d6000803e3d6000fd5b505050506040513d6060811015610ac357600080fd5b5080516020909101519092509050610ae985670de0b6b3a764000063ffffffff610fe616565b610b1585610b096002818c6001600160701b03881663ffffffff610fe616565b9063ffffffff610fe616565b81610b1c57fe5b60048054929091049091019055610b3b85670de0b6b3a7640000610fe6565b610b5b84610b096002818c6001600160701b03891663ffffffff610fe616565b81610b6257fe5b60038054929091049091019055505060025460408051635d3be3c960e11b815290516000926001600160a01b03169163ba77c792916004808301926020929190829003018186803b158015610bb657600080fd5b505afa158015610bca573d6000803e3d6000fd5b505050506040513d6020811015610be057600080fd5b5051600154909150600090610bfc90879063ffffffff61104f16565b905060006064610c2d84820388610c19868a63ffffffff610fe616565b81610c2057fe5b049063ffffffff610fe616565b81610c3457fe5b04905060006064610c5285820389610c19878a63ffffffff610fe616565b81610c5957fe5b600554600854929091049250610c7c916001600160a01b03918216911684610e50565b600554600954610c99916001600160a01b03908116911683610e50565b610cb9610cac838363ffffffff61109f16565b899063ffffffff61104f16565b60019081556000805460ff19169091179055505050505050505050565b6002546001600160a01b03163314610d30576040805162461bcd60e51b81526020600482015260186024820152771691548e88139bdd081c1c9bdc195c9b1e4818d85b1b195960421b604482015290519081900360640190fd5b81610d6c5760405162461bcd60e51b81526004018080602001828103825260278152602001806110ef6027913960400191505060405180910390fd5b6005546001600160a01b0384811691161415610de057600154821115610dc9576040805162461bcd60e51b815260206004820152600d60248201526c1691548e8814995d995c9d1959609a1b604482015290519081900360640190fd5b600154610ddc908363ffffffff61104f16565b6001555b610deb838284610e50565b505050565b60015481565b6002546001600160a01b03163314610e48576040805162461bcd60e51b815260206004820152601060248201526f5a45523a204e6f7420466163746f727960801b604482015290519081900360640190fd5b600355600455565b60408051808201825260198152787472616e7366657228616464726573732c75696e743235362960381b60209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310610ef95780518252601f199092019160209182019101610eda565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610f5b576040519150601f19603f3d011682016040523d82523d6000602084013e610f60565b606091505b5091509150818015610f8e575080511580610f8e5750808060200190516020811015610f8b57600080fd5b50515b610fdf576040805162461bcd60e51b815260206004820152601d60248201527f5a6972636f6e2050796c6f6e3a205452414e534645525f4641494c4544000000604482015290519081900360640190fd5b5050505050565b600081158061100157505080820282828281610ffe57fe5b04145b611049576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b92915050565b80820382811115611049576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b80820182811015611049576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe4f7065726174696f6e733a2043616e6e6f74207265636f766572207a65726f2062616c616e6365a265627a7a7231582072ec96ea622bee2792b7c61061d3846cbdb3956f7c993cb20c92fd66680e907664736f6c634300051000324f7065726174696f6e733a2043616e6e6f74207265636f766572207a65726f2062616c616e6365437265617465323a2062797465636f6465206c656e677468206973207a65726f3b4e72e4103178db6cd2e27320e98d9afdd1ab6f078b707886d1bf92b9fd8b25a265627a7a72315820b5cb53795b27a5aee37d897cc57581562248c36a37dba54c82528fc1d2db9b2d64736f6c634300051000320000000000000000000000004ba754989b77925f47e26c54aaa1b03df23b32ce0000000000000000000000009aef9098af9d1e2d78fcd9b928c946a7f23307d3
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004ba754989b77925f47e26c54aaa1b03df23b32ce0000000000000000000000009aef9098af9d1e2d78fcd9b928c946a7f23307d3
-----Decoded View---------------
Arg [0] : _feeToSetter (address): 0x4ba754989b77925f47e26c54aaa1b03df23b32ce
Arg [1] : _migrator (address): 0x9aef9098af9d1e2d78fcd9b928c946a7f23307d3
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000004ba754989b77925f47e26c54aaa1b03df23b32ce
Arg [1] : 0000000000000000000000009aef9098af9d1e2d78fcd9b928c946a7f23307d3
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.