Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
MasterHealer
생성일
5년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
33 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
124 행
복사
17 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
112 행
복사
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: MIT
pragma solidity 0.8.6;
pragma solidity 0.8.6;
복사
복사됨
복사
복사됨
import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
import "./libs/IMasterchef.sol";
import "./libs/IMasterchef.sol";
import "./BaseStrategyLPSingle.sol";
import "./BaseStrategyLPSingle.sol";
복사
복사됨
복사
복사됨
contract StrategyMaster
Chef
is BaseStrategyLPSingle
, Initializable
{
contract StrategyMaster
Healer
is BaseStrategyLPSingle
{
using SafeMath for uint256;
using SafeMath for uint256;
using SafeERC20 for IERC20;
using SafeERC20 for IERC20;
address public masterchefAddress;
address public masterchefAddress;
uint256 public pid;
uint256 public pid;
복사
복사됨
복사
복사됨
/**
constructor(
address[8] _configAddresses,
address[
5
] memory _
configAddress, //vaulthealer, masterchef, unirouter, want, earned
_configAddresses[0] _vaultChefAddress,
_configAddresses[1] _masterchefAddress,
_configAddresses[2] _uniRouterAddress,
_configAddresses[3] _wantAddress,
_configAddress[4] _earnedAddress,
_configAddress[5] _usdAddress,
_configAddress[6] _bananaAddress,
*/
function initialize(
address[
7
] memory _
configAddresses,
uint256 _pid,
uint256 _pid,
복사
복사됨
복사
복사됨
address[] memory _earnedToW
n
ati
ve
Path,
uint256 _tolerance,
address[] memory _earnedToUsd
Path,
address[] memory _earnedToW
m
ati
c
Path,
address[] memory _earnedTo
Banana
Path,
address[] memory _earnedToUsd
c
Path,
address[] memory _earnedTo
Crystl
Path,
address[] memory _earnedToToken0Path,
address[] memory _earnedToToken0Path,
address[] memory _earnedToToken1Path,
address[] memory _earnedToToken1Path,
address[] memory _token0ToEarnedPath,
address[] memory _token0ToEarnedPath,
address[] memory _token1ToEarnedPath
address[] memory _token1ToEarnedPath
복사
복사됨
복사
복사됨
)
external initializer
{
)
{
govAddress = msg.sender;
govAddress = msg.sender;
복사
복사됨
복사
복사됨
vaultChefAddress = _configAddress
es
[0];
vaultChefAddress = _configAddress
[0];
masterchefAddress = _configAddress
es
[1];
masterchefAddress = _configAddress
[1];
uniRouterAddress = _configAddress
es
[2];
uniRouterAddress = _configAddress
[2];
복사
복사됨
복사
복사됨
wantAddress = _configAddress
es
[3];
wantAddress = _configAddress
[3];
token0Address = IUniPair(wantAddress).token0();
token0Address = IUniPair(wantAddress).token0();
token1Address = IUniPair(wantAddress).token1();
token1Address = IUniPair(wantAddress).token1();
pid = _pid;
pid = _pid;
복사
복사됨
복사
복사됨
earnedAddress = _configAddress
es
[4];
earnedAddress = _configAddress
[4];
usdAddress = _configAddresses[5];
tolerance
= _
tolerance
;
bananaAddress
= _
configAddresses[6]
;
복사
복사됨
복사
복사됨
earnedToWnativePath = _earnedToW
n
ati
ve
Path;
earnedToWnativePath = _earnedToW
m
ati
c
Path;
earnedToUsdPath = _earnedToUsd
Path;
earnedToUsdPath = _earnedToUsd
c
Path;
earnedTo
Banana
Path = _earnedTo
Banana
Path;
earnedTo
Crystl
Path = _earnedTo
Crystl
Path;
earnedToToken0Path = _earnedToToken0Path;
earnedToToken0Path = _earnedToToken0Path;
earnedToToken1Path = _earnedToToken1Path;
earnedToToken1Path = _earnedToToken1Path;
token0ToEarnedPath = _token0ToEarnedPath;
token0ToEarnedPath = _token0ToEarnedPath;
token1ToEarnedPath = _token1ToEarnedPath;
token1ToEarnedPath = _token1ToEarnedPath;
transferOwnership(vaultChefAddress);
transferOwnership(vaultChefAddress);
_resetAllowances();
_resetAllowances();
}
}
function _vaultDeposit(uint256 _amount) internal override {
function _vaultDeposit(uint256 _amount) internal override {
IMasterchef(masterchefAddress).deposit(pid, _amount);
IMasterchef(masterchefAddress).deposit(pid, _amount);
}
}
function _vaultWithdraw(uint256 _amount) internal override {
function _vaultWithdraw(uint256 _amount) internal override {
IMasterchef(masterchefAddress).withdraw(pid, _amount);
IMasterchef(masterchefAddress).withdraw(pid, _amount);
}
}
function _vaultHarvest() internal override {
function _vaultHarvest() internal override {
IMasterchef(masterchefAddress).withdraw(pid, 0);
IMasterchef(masterchefAddress).withdraw(pid, 0);
}
}
function vaultSharesTotal() public override view returns (uint256) {
function vaultSharesTotal() public override view returns (uint256) {
(uint256 amount,) = IMasterchef(masterchefAddress).userInfo(pid, address(this));
(uint256 amount,) = IMasterchef(masterchefAddress).userInfo(pid, address(this));
return amount;
return amount;
}
}
function wantLockedTotal() public override view returns (uint256) {
function wantLockedTotal() public override view returns (uint256) {
return IERC20(wantAddress).balanceOf(address(this))
return IERC20(wantAddress).balanceOf(address(this))
.add(vaultSharesTotal());
.add(vaultSharesTotal());
}
}
function _resetAllowances() internal override {
function _resetAllowances() internal override {
IERC20(wantAddress).safeApprove(masterchefAddress, uint256(0));
IERC20(wantAddress).safeApprove(masterchefAddress, uint256(0));
IERC20(wantAddress).safeIncreaseAllowance(
IERC20(wantAddress).safeIncreaseAllowance(
masterchefAddress,
masterchefAddress,
type(uint256).max
type(uint256).max
);
);
IERC20(earnedAddress).safeApprove(uniRouterAddress, uint256(0));
IERC20(earnedAddress).safeApprove(uniRouterAddress, uint256(0));
IERC20(earnedAddress).safeIncreaseAllowance(
IERC20(earnedAddress).safeIncreaseAllowance(
uniRouterAddress,
uniRouterAddress,
type(uint256).max
type(uint256).max
);
);
IERC20(token0Address).safeApprove(uniRouterAddress, uint256(0));
IERC20(token0Address).safeApprove(uniRouterAddress, uint256(0));
IERC20(token0Address).safeIncreaseAllowance(
IERC20(token0Address).safeIncreaseAllowance(
uniRouterAddress,
uniRouterAddress,
type(uint256).max
type(uint256).max
);
);
IERC20(token1Address).safeApprove(uniRouterAddress, uint256(0));
IERC20(token1Address).safeApprove(uniRouterAddress, uint256(0));
IERC20(token1Address).safeIncreaseAllowance(
IERC20(token1Address).safeIncreaseAllowance(
uniRouterAddress,
uniRouterAddress,
type(uint256).max
type(uint256).max
);
);
}
}
function _emergencyVaultWithdraw() internal override {
function _emergencyVaultWithdraw() internal override {
IMasterchef(masterchefAddress).emergencyWithdraw(pid);
IMasterchef(masterchefAddress).emergencyWithdraw(pid);
}
}
function _beforeDeposit(address _to) internal override {
function _beforeDeposit(address _to) internal override {
}
}
function _beforeWithdraw(address _to) internal override {
function _beforeWithdraw(address _to) internal override {
}
}
}
}
복사
복사됨
복사
복사됨
저장된 비교 결과
원본
파일 열기
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; import "./libs/IMasterchef.sol"; import "./BaseStrategyLPSingle.sol"; contract StrategyMasterChef is BaseStrategyLPSingle, Initializable { using SafeMath for uint256; using SafeERC20 for IERC20; address public masterchefAddress; uint256 public pid; /** address[8] _configAddresses, _configAddresses[0] _vaultChefAddress, _configAddresses[1] _masterchefAddress, _configAddresses[2] _uniRouterAddress, _configAddresses[3] _wantAddress, _configAddress[4] _earnedAddress, _configAddress[5] _usdAddress, _configAddress[6] _bananaAddress, */ function initialize( address[7] memory _configAddresses, uint256 _pid, address[] memory _earnedToWnativePath, address[] memory _earnedToUsdPath, address[] memory _earnedToBananaPath, address[] memory _earnedToToken0Path, address[] memory _earnedToToken1Path, address[] memory _token0ToEarnedPath, address[] memory _token1ToEarnedPath ) external initializer { govAddress = msg.sender; vaultChefAddress = _configAddresses[0]; masterchefAddress = _configAddresses[1]; uniRouterAddress = _configAddresses[2]; wantAddress = _configAddresses[3]; token0Address = IUniPair(wantAddress).token0(); token1Address = IUniPair(wantAddress).token1(); pid = _pid; earnedAddress = _configAddresses[4]; usdAddress = _configAddresses[5]; bananaAddress = _configAddresses[6]; earnedToWnativePath = _earnedToWnativePath; earnedToUsdPath = _earnedToUsdPath; earnedToBananaPath = _earnedToBananaPath; earnedToToken0Path = _earnedToToken0Path; earnedToToken1Path = _earnedToToken1Path; token0ToEarnedPath = _token0ToEarnedPath; token1ToEarnedPath = _token1ToEarnedPath; transferOwnership(vaultChefAddress); _resetAllowances(); } function _vaultDeposit(uint256 _amount) internal override { IMasterchef(masterchefAddress).deposit(pid, _amount); } function _vaultWithdraw(uint256 _amount) internal override { IMasterchef(masterchefAddress).withdraw(pid, _amount); } function _vaultHarvest() internal override { IMasterchef(masterchefAddress).withdraw(pid, 0); } function vaultSharesTotal() public override view returns (uint256) { (uint256 amount,) = IMasterchef(masterchefAddress).userInfo(pid, address(this)); return amount; } function wantLockedTotal() public override view returns (uint256) { return IERC20(wantAddress).balanceOf(address(this)) .add(vaultSharesTotal()); } function _resetAllowances() internal override { IERC20(wantAddress).safeApprove(masterchefAddress, uint256(0)); IERC20(wantAddress).safeIncreaseAllowance( masterchefAddress, type(uint256).max ); IERC20(earnedAddress).safeApprove(uniRouterAddress, uint256(0)); IERC20(earnedAddress).safeIncreaseAllowance( uniRouterAddress, type(uint256).max ); IERC20(token0Address).safeApprove(uniRouterAddress, uint256(0)); IERC20(token0Address).safeIncreaseAllowance( uniRouterAddress, type(uint256).max ); IERC20(token1Address).safeApprove(uniRouterAddress, uint256(0)); IERC20(token1Address).safeIncreaseAllowance( uniRouterAddress, type(uint256).max ); } function _emergencyVaultWithdraw() internal override { IMasterchef(masterchefAddress).emergencyWithdraw(pid); } function _beforeDeposit(address _to) internal override { } function _beforeWithdraw(address _to) internal override { } }
수정본
파일 열기
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "./libs/IMasterchef.sol"; import "./BaseStrategyLPSingle.sol"; contract StrategyMasterHealer is BaseStrategyLPSingle { using SafeMath for uint256; using SafeERC20 for IERC20; address public masterchefAddress; uint256 public pid; constructor( address[5] memory _configAddress, //vaulthealer, masterchef, unirouter, want, earned uint256 _pid, uint256 _tolerance, address[] memory _earnedToWmaticPath, address[] memory _earnedToUsdcPath, address[] memory _earnedToCrystlPath, address[] memory _earnedToToken0Path, address[] memory _earnedToToken1Path, address[] memory _token0ToEarnedPath, address[] memory _token1ToEarnedPath ) { govAddress = msg.sender; vaultChefAddress = _configAddress[0]; masterchefAddress = _configAddress[1]; uniRouterAddress = _configAddress[2]; wantAddress = _configAddress[3]; token0Address = IUniPair(wantAddress).token0(); token1Address = IUniPair(wantAddress).token1(); pid = _pid; earnedAddress = _configAddress[4]; tolerance = _tolerance; earnedToWnativePath = _earnedToWmaticPath; earnedToUsdPath = _earnedToUsdcPath; earnedToCrystlPath = _earnedToCrystlPath; earnedToToken0Path = _earnedToToken0Path; earnedToToken1Path = _earnedToToken1Path; token0ToEarnedPath = _token0ToEarnedPath; token1ToEarnedPath = _token1ToEarnedPath; transferOwnership(vaultChefAddress); _resetAllowances(); } function _vaultDeposit(uint256 _amount) internal override { IMasterchef(masterchefAddress).deposit(pid, _amount); } function _vaultWithdraw(uint256 _amount) internal override { IMasterchef(masterchefAddress).withdraw(pid, _amount); } function _vaultHarvest() internal override { IMasterchef(masterchefAddress).withdraw(pid, 0); } function vaultSharesTotal() public override view returns (uint256) { (uint256 amount,) = IMasterchef(masterchefAddress).userInfo(pid, address(this)); return amount; } function wantLockedTotal() public override view returns (uint256) { return IERC20(wantAddress).balanceOf(address(this)) .add(vaultSharesTotal()); } function _resetAllowances() internal override { IERC20(wantAddress).safeApprove(masterchefAddress, uint256(0)); IERC20(wantAddress).safeIncreaseAllowance( masterchefAddress, type(uint256).max ); IERC20(earnedAddress).safeApprove(uniRouterAddress, uint256(0)); IERC20(earnedAddress).safeIncreaseAllowance( uniRouterAddress, type(uint256).max ); IERC20(token0Address).safeApprove(uniRouterAddress, uint256(0)); IERC20(token0Address).safeIncreaseAllowance( uniRouterAddress, type(uint256).max ); IERC20(token1Address).safeApprove(uniRouterAddress, uint256(0)); IERC20(token1Address).safeIncreaseAllowance( uniRouterAddress, type(uint256).max ); } function _emergencyVaultWithdraw() internal override { IMasterchef(masterchefAddress).emergencyWithdraw(pid); } function _beforeDeposit(address _to) internal override { } function _beforeWithdraw(address _to) internal override { } }
비교하기