Source Code
Latest 25 from a total of 4,098 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Okxswap | 402770913 | 64 days ago | IN | 0.01 ETH | 0.00001766 | ||||
| Okxswap | 402770180 | 64 days ago | IN | 0.01 ETH | 0.0000188 | ||||
| Okxswap | 402768698 | 64 days ago | IN | 0.01 ETH | 0.00002761 | ||||
| Okxswap | 402768654 | 64 days ago | IN | 0.01 ETH | 0.00001806 | ||||
| Okxswap | 402768575 | 64 days ago | IN | 0.01 ETH | 0.00000849 | ||||
| Okxswap | 402768535 | 64 days ago | IN | 0.01 ETH | 0.00002129 | ||||
| Okxswap | 402768514 | 64 days ago | IN | 0.01 ETH | 0.00002514 | ||||
| Okxswap | 402768495 | 64 days ago | IN | 0.01 ETH | 0.0000271 | ||||
| Okxswap | 402768466 | 64 days ago | IN | 0.01 ETH | 0.00001958 | ||||
| Okxswap | 402767453 | 64 days ago | IN | 0.01 ETH | 0.00003112 | ||||
| Okxswap | 402767358 | 64 days ago | IN | 0.01 ETH | 0.00002715 | ||||
| Okxswap | 402767321 | 64 days ago | IN | 0.01 ETH | 0.00002884 | ||||
| Okxswap | 402767275 | 64 days ago | IN | 0.01 ETH | 0.00003118 | ||||
| Okxswap | 402767177 | 64 days ago | IN | 0.01 ETH | 0.00002024 | ||||
| Okxswap | 402766507 | 64 days ago | IN | 0.01 ETH | 0.00002823 | ||||
| Okxswap | 402766486 | 64 days ago | IN | 0.01 ETH | 0.00001961 | ||||
| Okxswap | 402766451 | 64 days ago | IN | 0.01 ETH | 0.00002625 | ||||
| Okxswap | 402766401 | 64 days ago | IN | 0.01 ETH | 0.00002512 | ||||
| Okxswap | 402766276 | 64 days ago | IN | 0.01 ETH | 0.00001953 | ||||
| Okxswap | 402766245 | 64 days ago | IN | 0.01 ETH | 0.00002344 | ||||
| Okxswap | 402765831 | 64 days ago | IN | 0.01 ETH | 0.00004397 | ||||
| Okxswap | 402765821 | 64 days ago | IN | 0.01 ETH | 0.000033 | ||||
| Okxswap | 402765804 | 64 days ago | IN | 0.01 ETH | 0.0000352 | ||||
| Okxswap | 402765792 | 64 days ago | IN | 0.01 ETH | 0.00002005 | ||||
| Okxswap | 402765769 | 64 days ago | IN | 0.01 ETH | 0.0000337 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 402770913 | 64 days ago | 0.01 ETH | ||||
| 402770180 | 64 days ago | 0.01 ETH | ||||
| 402768698 | 64 days ago | 0.01 ETH | ||||
| 402768654 | 64 days ago | 0.01 ETH | ||||
| 402768535 | 64 days ago | 0.01 ETH | ||||
| 402768514 | 64 days ago | 0.01 ETH | ||||
| 402767453 | 64 days ago | 0.01 ETH | ||||
| 402767358 | 64 days ago | 0.01 ETH | ||||
| 402767321 | 64 days ago | 0.01 ETH | ||||
| 402767275 | 64 days ago | 0.01 ETH | ||||
| 402767177 | 64 days ago | 0.01 ETH | ||||
| 402766507 | 64 days ago | 0.01 ETH | ||||
| 402766486 | 64 days ago | 0.01 ETH | ||||
| 402766451 | 64 days ago | 0.01 ETH | ||||
| 402766401 | 64 days ago | 0.01 ETH | ||||
| 402766276 | 64 days ago | 0.01 ETH | ||||
| 402766245 | 64 days ago | 0.01 ETH | ||||
| 402765831 | 64 days ago | 0.01 ETH | ||||
| 402765804 | 64 days ago | 0.01 ETH | ||||
| 402765769 | 64 days ago | 0.01 ETH | ||||
| 402765638 | 64 days ago | 0.01 ETH | ||||
| 402765620 | 64 days ago | 0.01 ETH | ||||
| 402765569 | 64 days ago | 0.01 ETH | ||||
| 402765550 | 64 days ago | 0.01 ETH | ||||
| 402765506 | 64 days ago | 0.01 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MySwap
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
shanghai EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// 在用encodeWithSignature时候,如果数组内变量类型都写明比如(uint256,uint256,uint256)这种可能就是结构体!!
// 如果是unit256[]这种才是列表!!!而且这种列表的形式要在encode之前就将列表声明,要不在编码过程中会丢失数量,具体可以参考multicall的写法
interface IERC20 {
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
function balanceOf(address owner) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
}
struct Three_parameter_address {
address receiver;
address cancellationReceiver;
address callbackContract;
address uiFeeReceiver;
address market;
address initialCollateralToken;
address[] swapPath;
}
struct Three_parameter_numbers {
uint256 sizeDeltaUsd;
uint256 initialCollateralDeltaAmount;
uint256 triggerPrice;
uint256 acceptablePrice;
uint256 executionFee;
uint256 callbackGasLimit;
uint256 minOutputAmount;
uint256 validFromTime;
}
struct Three_parameter {
Three_parameter_address addresses;
Three_parameter_numbers numbers;
uint8 orderType;
uint8 decreasePositionSwapType;
bool isLong;
bool shouldUnwrapNativeToken;
bool autoCancel;
bytes32 referralCode;
bytes32[] dataList;
}
struct PriceList {
uint256 in_token_price_max;
uint256 in_token_price_min;
uint256 out_token_price_max;
uint256 out_token_price_min;
}
//注意注意,此SwapFees结构体中的变量名都没有实际意义!!!!!!!!!!!!!后续复盘代码的时候是看变量类型就行了,变量名无所谓,变量名是AI生成的!!!
struct SwapFees {
uint256 protocolFeeAmount; // 协议费用
uint256 poolFeeAmount; // 池费用
uint256 uiFeeAmount; // UI 费用
address protocolFeeReceiver; // 协议费用接收者
uint256 poolFeeReceiver; // 池费用接收者
uint256 uiFeeReceiver; // UI 费用接收者
}
contract MySwap {
address private admin_address = 0xa7B1Ba3D486dF413F54667e88fE3B42F979cc131;
address public constant PARASWAP_SWAP_ADDRESS = 0x6A000F20005980200259B80c5102003040001068;
address public constant OKX_SWAP_ADDRESS = 0x3608c8186fF3dCa322DeEFb8c27162162d581081;
address public constant GMX_SWAP_ADDRESS = 0x87d66368cD08a7Ca42252f5ab44B2fb6d1Fb8d15;
address public constant PARASWAP_APPROVE_ADDRESS = 0x6A000F20005980200259B80c5102003040001068;
address public constant GMX_APPROVE_ADDRESS = 0x7452c558d45f8afC8c83dAe62C3f8A5BE19c71f6;
address public constant OKX_APPROVE_ADDRESS = 0x70cBb871E8f30Fc8Ce23609E9E0Ea87B6b222F58;
address public callGetSwapAmountOutAddress = 0xf60becbba223EEA9495Da3f606753867eC10d139;
address public dataStore = 0xFD70de6b91282D8017aA4E741e9Ae325CAb992d8;
address public uiFeeReceiver = address(0);
address public USDC_address = 0xaf88d065e77c8cC2239327C5EDb3A432268e5831;
// 主函数:一步执行 okxswap 和 GMX 的 swap
function okxswap(
bytes calldata okxData, // okxswap 的调用数据
address router_address,
address inTokenAddress, // 输入代币地址
uint256 inTokenAmount, // 输入代币数量
address throughTokenAddress, // 中间代币地址
PriceList memory price_list,
uint256 minReturnAmount
) public payable {
require(msg.sender == admin_address, "Only owner can call");
// okx交易准备,数量和授权
IERC20 inToken = IERC20(inTokenAddress);
inToken.transferFrom(msg.sender, address(this), inTokenAmount);
inToken.approve(OKX_APPROVE_ADDRESS, inTokenAmount * 2);
// okx交易
(bool okxSuccess, ) = OKX_SWAP_ADDRESS.call{value: 0}(okxData);
require(okxSuccess, "OKX swap failed");
// gmx交易准备,数量和授权
IERC20 throughToken = IERC20(throughTokenAddress);
uint256 gmxTokenAmount = throughToken.balanceOf(address(this));
uint256 callGmxAmount = callGetSwapAmountOut(router_address,throughTokenAddress,inTokenAddress,price_list,gmxTokenAmount);
require(callGmxAmount >= minReturnAmount, "OKX swap amount low");
throughToken.approve(GMX_APPROVE_ADDRESS,gmxTokenAmount * 2);
// gmx交易
bytes memory gmxData = createGMXswapdata(create1stParameter(msg.value),create2ndParameter(throughTokenAddress,gmxTokenAmount),create3rdParameter(router_address,throughTokenAddress,gmxTokenAmount,msg.value,minReturnAmount*9/10));
(bool gmxSuccess, ) = GMX_SWAP_ADDRESS.call{value: msg.value}(gmxData);
require(gmxSuccess, "GMX swap failed");
}
// 主函数:一步执行 paraswap 和 GMX 的 swap
function paraswap(
bytes calldata paraswapData, // paraswap 的调用数据
address router_address,
address inTokenAddress, // 输入代币地址
uint256 inTokenAmount, // 输入代币数量
address throughTokenAddress, // 中间代币地址
PriceList memory price_list,
uint256 minReturnAmount
) public payable {
require(msg.sender == admin_address, "Only owner can call");
// paraswap交易准备,数量和授权
IERC20 inToken = IERC20(inTokenAddress);
inToken.transferFrom(msg.sender, address(this), inTokenAmount);
inToken.approve(PARASWAP_APPROVE_ADDRESS, inTokenAmount * 2);
// paraswap交易
(bool paraSuccess, ) = PARASWAP_SWAP_ADDRESS.call{value: 0}(paraswapData);
require(paraSuccess, "Paraswap swap failed");
// gmx交易准备,数量和授权
IERC20 throughToken = IERC20(throughTokenAddress);
uint256 gmxTokenAmount = throughToken.balanceOf(address(this));
uint256 callGmxAmount = callGetSwapAmountOut(router_address,throughTokenAddress,inTokenAddress,price_list,gmxTokenAmount);
require(callGmxAmount >= minReturnAmount, "Paraswap swap amount low");
throughToken.approve(GMX_APPROVE_ADDRESS,gmxTokenAmount * 2);
// gmx交易
bytes memory gmxData = createGMXswapdata(create1stParameter(msg.value),create2ndParameter(throughTokenAddress,gmxTokenAmount),create3rdParameter(router_address,throughTokenAddress,gmxTokenAmount,msg.value,minReturnAmount*9/10));
(bool gmxSuccess, ) = GMX_SWAP_ADDRESS.call{value: msg.value}(gmxData);
require(gmxSuccess, "GMX swap failed");
}
function callGetSwapAmountOut(
address router_address,
address in_token,
address out_token,
PriceList memory price_list,
uint256 amountIn
) public view returns (uint256) {
if (in_token == USDC_address){
bytes memory _data = abi.encodeWithSignature(
"getSwapAmountOut(address,(address,address,address,address),((uint256,uint256),(uint256,uint256),(uint256,uint256)),address,uint256,address)",
dataStore,
[router_address,out_token,out_token,in_token],
[[price_list.out_token_price_max,price_list.out_token_price_min],[price_list.out_token_price_max,price_list.out_token_price_min],[price_list.in_token_price_max,price_list.in_token_price_min]],
in_token,
amountIn,
uiFeeReceiver
);
// 使用 staticcall 调用目标合约
(bool success, bytes memory result) = callGetSwapAmountOutAddress.staticcall(_data);
require(success, "Call failed");
// 解码返回的 amountOut
(uint256 amountOut, , ) = abi.decode(result, (uint256, uint256, SwapFees));
return amountOut;
}else {
bytes memory _data = abi.encodeWithSignature(
"getSwapAmountOut(address,(address,address,address,address),((uint256,uint256),(uint256,uint256),(uint256,uint256)),address,uint256,address)",
dataStore,
[router_address,in_token,in_token,out_token],
[[price_list.in_token_price_max,price_list.in_token_price_min],[price_list.in_token_price_max,price_list.in_token_price_min],[price_list.out_token_price_max,price_list.out_token_price_min]],
in_token,
amountIn,
uiFeeReceiver
);
// 使用 staticcall 调用目标合约
(bool success, bytes memory result) = callGetSwapAmountOutAddress.staticcall(_data);
require(success, "Call failed");
// 解码返回的 amountOut
(uint256 amountOut, , ) = abi.decode(result, (uint256, uint256, SwapFees));
return amountOut;
}
}
// 构造第 1 个参数(输入ETH数量)
function create1stParameter(uint256 ethAmount) public pure returns (bytes memory) {
return abi.encodeWithSignature(
"sendWnt(address,uint256)",
address(0x31eF83a530Fde1B38EE9A18093A333D8Bbbc40D5),
ethAmount
);
}
// 构造第 2 个参数(输入代币和数量)
function create2ndParameter(address gmxToken, uint256 gmxAmount) public pure returns (bytes memory) {
return abi.encodeWithSignature(
"sendTokens(address,address,uint256)",
gmxToken,
address(0x31eF83a530Fde1B38EE9A18093A333D8Bbbc40D5),
gmxAmount
);
}
// 构造第 3 个参数
function create3rdParameter(address router_address,address in_token,uint256 in_token_amount,uint256 ethAmount,uint256 minGMXreturn) public view returns (bytes memory) {
bytes32 zeroBytes = 0x0000000000000000000000000000000000000000000000000000000000000000;
address[] memory routerArray = new address[](1);
bytes32[] memory kongArray = new bytes32[](0);
routerArray[0] = router_address;
Three_parameter_address memory this_address = Three_parameter_address({
receiver: admin_address,
cancellationReceiver: admin_address, //这里如果是address(0),如果GMX执行失败会将失败的token发送到合约地址中
callbackContract: address(0),
uiFeeReceiver: 0xff00000000000000000000000000000000000001,
market: address(0),
initialCollateralToken: in_token,
swapPath: routerArray
});
Three_parameter_numbers memory this_numbers = Three_parameter_numbers({
sizeDeltaUsd: 0,
initialCollateralDeltaAmount:in_token_amount,
triggerPrice:0,
acceptablePrice:0,
executionFee:ethAmount,
callbackGasLimit:0,
minOutputAmount:minGMXreturn,
validFromTime:0
});
Three_parameter memory this_parameter = Three_parameter({
addresses:this_address,
numbers:this_numbers,
orderType:0,
decreasePositionSwapType:0,
isLong:false,
shouldUnwrapNativeToken:false,
autoCancel:false,
referralCode:zeroBytes,
dataList:kongArray
});
return abi.encodeWithSignature(
"createOrder(((address,address,address,address,address,address,address[]),(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256),uint8,uint8,bool,bool,bool,bytes32,bytes32[]))",
this_parameter
);
}
// 构造GMX交易最终参数(输入代币和数量)
function createGMXswapdata(bytes memory OneP,bytes memory TwoP,bytes memory ThreeP) public pure returns (bytes memory) {
// 这里这么写,而不是把参数直接传递给encode是因为multicall是个可变长度的数组,如果直接传递编码中会缺少数组长度的参数!!!
bytes[] memory dataArray = new bytes[](3);
dataArray[0] = OneP;
dataArray[1] = TwoP;
dataArray[2] = ThreeP;
return abi.encodeWithSignature(
"multicall(bytes[])",
dataArray
);
}
// 更改admin地址
function changeAdmin(address _address) public {
require(msg.sender == admin_address, "Only owner can call");
admin_address=_address;
}
// 提取合约中的ETH
function withdrawETH() public {
require(msg.sender == admin_address, "Only owner can call");
payable(admin_address).transfer(address(this).balance);
}
// 提取合约中的ERC20
function withdrawTOKEN(IERC20 token) public {
require(msg.sender == admin_address, "Only owner can call");
token.transfer(admin_address, token.balanceOf(address(this)));
}
// 接收 ETH
receive() external payable {}
}{
"evmVersion": "shanghai",
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": [],
"viaIR": true,
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"GMX_APPROVE_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GMX_SWAP_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OKX_APPROVE_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OKX_SWAP_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PARASWAP_APPROVE_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PARASWAP_SWAP_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"router_address","type":"address"},{"internalType":"address","name":"in_token","type":"address"},{"internalType":"address","name":"out_token","type":"address"},{"components":[{"internalType":"uint256","name":"in_token_price_max","type":"uint256"},{"internalType":"uint256","name":"in_token_price_min","type":"uint256"},{"internalType":"uint256","name":"out_token_price_max","type":"uint256"},{"internalType":"uint256","name":"out_token_price_min","type":"uint256"}],"internalType":"struct PriceList","name":"price_list","type":"tuple"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"name":"callGetSwapAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"callGetSwapAmountOutAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"create1stParameter","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"gmxToken","type":"address"},{"internalType":"uint256","name":"gmxAmount","type":"uint256"}],"name":"create2ndParameter","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"router_address","type":"address"},{"internalType":"address","name":"in_token","type":"address"},{"internalType":"uint256","name":"in_token_amount","type":"uint256"},{"internalType":"uint256","name":"ethAmount","type":"uint256"},{"internalType":"uint256","name":"minGMXreturn","type":"uint256"}],"name":"create3rdParameter","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"OneP","type":"bytes"},{"internalType":"bytes","name":"TwoP","type":"bytes"},{"internalType":"bytes","name":"ThreeP","type":"bytes"}],"name":"createGMXswapdata","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dataStore","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"okxData","type":"bytes"},{"internalType":"address","name":"router_address","type":"address"},{"internalType":"address","name":"inTokenAddress","type":"address"},{"internalType":"uint256","name":"inTokenAmount","type":"uint256"},{"internalType":"address","name":"throughTokenAddress","type":"address"},{"components":[{"internalType":"uint256","name":"in_token_price_max","type":"uint256"},{"internalType":"uint256","name":"in_token_price_min","type":"uint256"},{"internalType":"uint256","name":"out_token_price_max","type":"uint256"},{"internalType":"uint256","name":"out_token_price_min","type":"uint256"}],"internalType":"struct PriceList","name":"price_list","type":"tuple"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"}],"name":"okxswap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"paraswapData","type":"bytes"},{"internalType":"address","name":"router_address","type":"address"},{"internalType":"address","name":"inTokenAddress","type":"address"},{"internalType":"uint256","name":"inTokenAmount","type":"uint256"},{"internalType":"address","name":"throughTokenAddress","type":"address"},{"components":[{"internalType":"uint256","name":"in_token_price_max","type":"uint256"},{"internalType":"uint256","name":"in_token_price_min","type":"uint256"},{"internalType":"uint256","name":"out_token_price_max","type":"uint256"},{"internalType":"uint256","name":"out_token_price_min","type":"uint256"}],"internalType":"struct PriceList","name":"price_list","type":"tuple"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"}],"name":"paraswap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"uiFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"withdrawTOKEN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080806040523461009b5773af88d065e77c8cc2239327c5edb3a432268e583160018060a01b031973a7b1ba3d486df413f54667e88fe3b42f979cc131815f5416175f5573f60becbba223eea9495da3f606753867ec10d13981600154161760015573fd70de6b91282d8017aa4e741e9ae325cab992d88160025416176002558060035416600355600454161760045561169890816100a08239f35b5f80fdfe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c908163034b484a14610b0e575080632dff4bb41461086d578063310e2b69146108455780633fc931c3146107c157806345a56f53146107935780635be097ac14610728578063660d0d67146107005780636c5dd931146106e15780637a7a0266146102245780638f2839701461069c578063b3e83ae21461066e578063c285ef8a14610646578063c6cef84b14610618578063c8128ce4146105f0578063e04cd982146105a0578063e086e5ec14610558578063e66cef1614610229578063e7cfacd214610224578063f926e5fb146101305763f9abd26c14610104575f61000f565b3461012c575f36600319011261012c576004546040516001600160a01b039091168152602090f35b5f80fd5b3461012c5760208060031936011261012c576004356001600160a01b038181169182900361012c575f5416610166813314610d7b565b6040516370a0823160e01b8152306004820152908382602481865afa9081156101e75784925f926101f2575b506044905f604051958694859363a9059cbb60e01b8552600485015260248401525af180156101e7576101c157005b8161001a92903d106101e0575b6101d88183610bce565b810190610dbd565b503d6101ce565b6040513d5f823e3d90fd5b8381949293503d831161021d575b61020a8183610bce565b8101031261012c57905183916044610192565b503d610200565b610d4d565b61023236610bf0565b969092919561024b60018060a01b035f54163314610d7b565b6040516323b872dd60e01b8152336004820152306024820152604481018490526020816064815f6001600160a01b038b165af180156101e757610539575b50828060011b046002148315171561043b5760405163095ea7b360e01b81527370cbb871e8f30fc8ce23609e9e0ea87b6b222f58600482015260019390931b60248401526020836044815f6001600160a01b038a165af19182156101e7575f93849361051a575b508160405192839283378101838152039082733608c8186ff3dca322deefb8c27162162d5810815af1610321610dd5565b50156104e3576040516370a0823160e01b81523060048201526001600160a01b03851691602082602481865afa9384156101e75787925f956104a9575b5061036c9185918888610fb8565b1061046e578160011b8281046002148315171561043b575f916044602092604051948593849263095ea7b360e01b8452737452c558d45f8afc8c83dae62c3f8a5be19c71f6600485015260248401525af180156101e75761044f575b506103d2346112c8565b6103dc8285611305565b60098602958087046009149015171561043b576104095f95869561040f95600a61001a9a04923492611368565b916111d0565b602081519101347387d66368cd08a7ca42252f5ab44b2fb6d1fb8d155af1610435610dd5565b50610e04565b634e487b7160e01b5f52601160045260245ffd5b6104679060203d6020116101e0576101d88183610bce565b50846103c8565b60405162461bcd60e51b81526020600482015260136024820152724f4b58207377617020616d6f756e74206c6f7760681b6044820152606490fd5b91945091506020813d6020116104db575b816104c760209383610bce565b8101031261012c575192869161036c61035e565b3d91506104ba565b60405162461bcd60e51b815260206004820152600f60248201526e13d2d6081cddd85c0819985a5b1959608a1b6044820152606490fd5b6105329060203d6020116101e0576101d88183610bce565b50896102f0565b6105519060203d6020116101e0576101d88183610bce565b5088610289565b3461012c575f36600319011261012c575f80548190819081906001600160a01b0316610585338214610d7b565b4790828215610597575bf1156101e757005b506108fc61058f565b3461012c5760a036600319011261012c576105ec6105d86105bf610b3a565b6105c7610b50565b608435916064359160443591611368565b604051918291602083526020830190610d0f565b0390f35b3461012c57604036600319011261012c576105ec6105d861060f610b3a565b60243590611305565b3461012c575f36600319011261012c5760206040517387d66368cd08a7ca42252f5ab44b2fb6d1fb8d158152f35b3461012c575f36600319011261012c576003546040516001600160a01b039091168152602090f35b3461012c575f36600319011261012c5760206040517370cbb871e8f30fc8ce23609e9e0ea87b6b222f588152f35b3461012c57602036600319011261012c576106b5610b3a565b5f54906001600160a01b03906106ce3383851614610d7b565b6001600160a01b03199092169116175f55005b3461012c57602036600319011261012c576105ec6105d86004356112c8565b3461012c575f36600319011261012c576002546040516001600160a01b039091168152602090f35b3461012c57606036600319011261012c5767ffffffffffffffff60043581811161012c5761075a903690600401610cc9565b9060243581811161012c57610773903690600401610cc9565b9160443591821161012c576105ec926104096105d8933690600401610cc9565b3461012c575f36600319011261012c576020604051737452c558d45f8afc8c83dae62c3f8a5be19c71f68152f35b3461012c5761010036600319011261012c576107db610b3a565b6107e3610b50565b90604435906001600160a01b038216820361012c57608036606319011261012c5760209261083d926040519161081883610b66565b60643583526084358684015260a435604084015260c435606084015260e43593610fb8565b604051908152f35b3461012c575f36600319011261012c576001546040516001600160a01b039091168152602090f35b61087636610bf0565b969092919561088f60018060a01b035f54163314610d7b565b6040516323b872dd60e01b8152336004820152306024820152604481018490526020816064815f6001600160a01b038b165af180156101e757610aef575b50828060011b046002148315171561043b5760405163095ea7b360e01b8152736a000f20005980200259b80c5102003040001068600482015260019390931b60248401526020836044815f6001600160a01b038a165af19182156101e7575f938493610ad0575b508160405192839283378101838152039082736a000f20005980200259b80c51020030400010685af1610965610dd5565b5015610a94576040516370a0823160e01b81523060048201526001600160a01b03851691602082602481865afa9384156101e75787925f95610a5a575b506109b09185918888610fb8565b10610a15578160011b8281046002148315171561043b575f916044602092604051948593849263095ea7b360e01b8452737452c558d45f8afc8c83dae62c3f8a5be19c71f6600485015260248401525af180156101e75761044f57506103d2346112c8565b60405162461bcd60e51b815260206004820152601860248201527f5061726173776170207377617020616d6f756e74206c6f7700000000000000006044820152606490fd5b91945091506020813d602011610a8c575b81610a7860209383610bce565b8101031261012c57519286916109b06109a2565b3d9150610a6b565b60405162461bcd60e51b815260206004820152601460248201527314185c985cddd85c081cddd85c0819985a5b195960621b6044820152606490fd5b610ae89060203d6020116101e0576101d88183610bce565b5089610934565b610b079060203d6020116101e0576101d88183610bce565b50886108cd565b3461012c575f36600319011261012c5780733608c8186ff3dca322deefb8c27162162d58108160209252f35b600435906001600160a01b038216820361012c57565b602435906001600160a01b038216820361012c57565b6080810190811067ffffffffffffffff821117610b8257604052565b634e487b7160e01b5f52604160045260245ffd5b6060810190811067ffffffffffffffff821117610b8257604052565b6040810190811067ffffffffffffffff821117610b8257604052565b90601f8019910116810190811067ffffffffffffffff821117610b8257604052565b9061014060031983011261012c5767ffffffffffffffff9160043583811161012c578160238201121561012c57806004013593841161012c57816024858301011161012c5760249081019392906001600160a01b039035818116810361012c5792604435828116810361012c579260643592608435908116810361012c576080909260a319011261012c57604051610c8781610b66565b60a435815260c435602082015260e4356040820152610104356060820152906101243590565b67ffffffffffffffff8111610b8257601f01601f191660200190565b81601f8201121561012c57803590610ce082610cad565b92610cee6040519485610bce565b8284526020838301011161012c57815f926020809301838601378301015290565b91908251928382525f5b848110610d39575050825f602080949584010152601f8019910116010190565b602081830181015184830182015201610d19565b3461012c575f36600319011261012c576020604051736a000f20005980200259b80c51020030400010688152f35b15610d8257565b60405162461bcd60e51b815260206004820152601360248201527213db9b1e481bdddb995c8818d85b8818d85b1b606a1b6044820152606490fd5b9081602091031261012c5751801515810361012c5790565b3d15610dff573d90610de682610cad565b91610df46040519384610bce565b82523d5f602084013e565b606090565b15610e0b57565b60405162461bcd60e51b815260206004820152600f60248201526e11d356081cddd85c0819985a5b1959608a1b6044820152606490fd5b6001600160a01b0391821681526101c08101979690959194909391929091906020905f8289015b8360048310610edb575050505060a087015f905b60038210610ea157505050508316610160850152610180840152166101a090910152565b82845182905f915b60028310610ec557505050604060019201940191019092610e7d565b8151815286936001909301929182019101610ea9565b806001928b865116815201930191019091610e69565b15610ef857565b60405162461bcd60e51b815260206004820152600b60248201526a10d85b1b0819985a5b195960aa1b6044820152606490fd5b8092910390610100821261012c5782519260c0602082015193603f19011261012c576040519060c0820182811067ffffffffffffffff821117610b825760409081528181015183526060820151602084015260808201519083015260a0810151906001600160a01b038216820361012c5760e091606084015260c08101516080840152015160a082015290565b60045490946001600160a01b039493838616939092861684036110d0576110a36110cb976110955f97958897958a9586600254169760409388855197610ffd89610b66565b16875260209d8e911680918801528487015260608601528251986110208a610b96565b835161102b81610bb2565b8d858301918251815260608401908151838201528d5286519261104d84610bb2565b51835251908201528d8b01528c84519161106683610bb2565b8051835201518d820152838a0152866003541692519889958d87019963409f37c760e01b8b5260248801610e42565b03601f198101855284610bce565b600154169151915afa906110be6110b8610dd5565b92610ef1565b8082518301019101610f2b565b505090565b90946110a36110cb976110955f979588979985600254169686604093818551976110f989610b66565b1687528d60209e8f8901528588015216606086015282519861111a8a610b96565b8c845161112681610bb2565b82518152818301918251908201528b528d85519161114383610bb2565b8351835251908201528d8b0152606084519161115e83610bb2565b85810151835201518d820152838a0152866003541692519889958d87019963409f37c760e01b8b5260248801610e42565b80511561119c5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561119c5760400190565b80516002101561119c5760600190565b909192604051906111e082610b66565b600382526020945f5b6060808210156112005784820188015286016111e9565b505091939094926112108561118f565b5261121a8461118f565b50611224846111b0565b5261122e836111b0565b50611238836111c0565b52611242826111c0565b506040518092631592ca1b60e31b8383015260448201836024840152815180915260648301938060648360051b8601019301945f905b8382106112995750505050611296925003601f198101835282610bce565b90565b91600191939550806112b681966063198b82030186528951610d0f565b97019201920186949295939195611278565b60405190637d39aaf160e01b60208301527331ef83a530fde1b38ee9a18093a333d8bbbc40d5602483015260448201526044815261129681610b66565b604051631cdacd5960e31b60208201526001600160a01b0390911660248201527331ef83a530fde1b38ee9a18093a333d8bbbc40d5604482015260648082019290925290815260a0810167ffffffffffffffff811182821017610b825760405290565b9391906040519261137884610bb2565b600184526020368186013760405193602085019667ffffffffffffffff9786811089821117610b82576040525f86526113b08261118f565b6001600160a01b0391821690525f5460405194911660e0850189811186821017610b825760405280855260208501525f6040850152600160ff60981b0160608501525f608085015260018060a01b031660a084015260c0830152604051946101009384870187811089821117610b82576040525f875260208701525f60408701525f606087015260808601525f60a086015260c08501525f60e08501526040519461012086019086821090821117610b82576040959392955282526020820192835260408201935f8552606083015f8152608084015f815260a08501905f825260c08601925f845260e08701945f8652870195865260405198899763f59c48eb60e01b60208a0152602060248a0152519861020060448a015260c06103248a019a60018060a01b038151166102448c015260018060a01b036020820151166102648c015260018060a01b036040820151166102848c015260018060a01b036060820151166102a48c015260018060a01b036080820151166102c48c015260018060a01b0360a0820151166102e48c015201519960e06103048b01528a5180915260206103448b019b01905f5b8181106116405750505060ff929160e0849251805160648d0152602081015160848d0152604081015160a48d0152606081015160c48d0152608081015160e48d015260a08101516101048d015260c08101516101248d015201516101448b0152511661016489015251166101848701525115156101a48601525115156101c48501525115156101e4840152516102048301525160431982840301610224830152602080825194858152019101925f5b818110611627575050611296925003601f198101835282610bce565b845183526020948501948694509092019160010161160b565b82516001600160a01b03168d5260209c8d019c8e9c509092019160010161155c56fea264697066735822122030aea01e96d82a8ee2ab50b25e344badcfa979710fd9df6e22e7d451b584bf5a64736f6c63430008180033
Deployed Bytecode
0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c908163034b484a14610b0e575080632dff4bb41461086d578063310e2b69146108455780633fc931c3146107c157806345a56f53146107935780635be097ac14610728578063660d0d67146107005780636c5dd931146106e15780637a7a0266146102245780638f2839701461069c578063b3e83ae21461066e578063c285ef8a14610646578063c6cef84b14610618578063c8128ce4146105f0578063e04cd982146105a0578063e086e5ec14610558578063e66cef1614610229578063e7cfacd214610224578063f926e5fb146101305763f9abd26c14610104575f61000f565b3461012c575f36600319011261012c576004546040516001600160a01b039091168152602090f35b5f80fd5b3461012c5760208060031936011261012c576004356001600160a01b038181169182900361012c575f5416610166813314610d7b565b6040516370a0823160e01b8152306004820152908382602481865afa9081156101e75784925f926101f2575b506044905f604051958694859363a9059cbb60e01b8552600485015260248401525af180156101e7576101c157005b8161001a92903d106101e0575b6101d88183610bce565b810190610dbd565b503d6101ce565b6040513d5f823e3d90fd5b8381949293503d831161021d575b61020a8183610bce565b8101031261012c57905183916044610192565b503d610200565b610d4d565b61023236610bf0565b969092919561024b60018060a01b035f54163314610d7b565b6040516323b872dd60e01b8152336004820152306024820152604481018490526020816064815f6001600160a01b038b165af180156101e757610539575b50828060011b046002148315171561043b5760405163095ea7b360e01b81527370cbb871e8f30fc8ce23609e9e0ea87b6b222f58600482015260019390931b60248401526020836044815f6001600160a01b038a165af19182156101e7575f93849361051a575b508160405192839283378101838152039082733608c8186ff3dca322deefb8c27162162d5810815af1610321610dd5565b50156104e3576040516370a0823160e01b81523060048201526001600160a01b03851691602082602481865afa9384156101e75787925f956104a9575b5061036c9185918888610fb8565b1061046e578160011b8281046002148315171561043b575f916044602092604051948593849263095ea7b360e01b8452737452c558d45f8afc8c83dae62c3f8a5be19c71f6600485015260248401525af180156101e75761044f575b506103d2346112c8565b6103dc8285611305565b60098602958087046009149015171561043b576104095f95869561040f95600a61001a9a04923492611368565b916111d0565b602081519101347387d66368cd08a7ca42252f5ab44b2fb6d1fb8d155af1610435610dd5565b50610e04565b634e487b7160e01b5f52601160045260245ffd5b6104679060203d6020116101e0576101d88183610bce565b50846103c8565b60405162461bcd60e51b81526020600482015260136024820152724f4b58207377617020616d6f756e74206c6f7760681b6044820152606490fd5b91945091506020813d6020116104db575b816104c760209383610bce565b8101031261012c575192869161036c61035e565b3d91506104ba565b60405162461bcd60e51b815260206004820152600f60248201526e13d2d6081cddd85c0819985a5b1959608a1b6044820152606490fd5b6105329060203d6020116101e0576101d88183610bce565b50896102f0565b6105519060203d6020116101e0576101d88183610bce565b5088610289565b3461012c575f36600319011261012c575f80548190819081906001600160a01b0316610585338214610d7b565b4790828215610597575bf1156101e757005b506108fc61058f565b3461012c5760a036600319011261012c576105ec6105d86105bf610b3a565b6105c7610b50565b608435916064359160443591611368565b604051918291602083526020830190610d0f565b0390f35b3461012c57604036600319011261012c576105ec6105d861060f610b3a565b60243590611305565b3461012c575f36600319011261012c5760206040517387d66368cd08a7ca42252f5ab44b2fb6d1fb8d158152f35b3461012c575f36600319011261012c576003546040516001600160a01b039091168152602090f35b3461012c575f36600319011261012c5760206040517370cbb871e8f30fc8ce23609e9e0ea87b6b222f588152f35b3461012c57602036600319011261012c576106b5610b3a565b5f54906001600160a01b03906106ce3383851614610d7b565b6001600160a01b03199092169116175f55005b3461012c57602036600319011261012c576105ec6105d86004356112c8565b3461012c575f36600319011261012c576002546040516001600160a01b039091168152602090f35b3461012c57606036600319011261012c5767ffffffffffffffff60043581811161012c5761075a903690600401610cc9565b9060243581811161012c57610773903690600401610cc9565b9160443591821161012c576105ec926104096105d8933690600401610cc9565b3461012c575f36600319011261012c576020604051737452c558d45f8afc8c83dae62c3f8a5be19c71f68152f35b3461012c5761010036600319011261012c576107db610b3a565b6107e3610b50565b90604435906001600160a01b038216820361012c57608036606319011261012c5760209261083d926040519161081883610b66565b60643583526084358684015260a435604084015260c435606084015260e43593610fb8565b604051908152f35b3461012c575f36600319011261012c576001546040516001600160a01b039091168152602090f35b61087636610bf0565b969092919561088f60018060a01b035f54163314610d7b565b6040516323b872dd60e01b8152336004820152306024820152604481018490526020816064815f6001600160a01b038b165af180156101e757610aef575b50828060011b046002148315171561043b5760405163095ea7b360e01b8152736a000f20005980200259b80c5102003040001068600482015260019390931b60248401526020836044815f6001600160a01b038a165af19182156101e7575f938493610ad0575b508160405192839283378101838152039082736a000f20005980200259b80c51020030400010685af1610965610dd5565b5015610a94576040516370a0823160e01b81523060048201526001600160a01b03851691602082602481865afa9384156101e75787925f95610a5a575b506109b09185918888610fb8565b10610a15578160011b8281046002148315171561043b575f916044602092604051948593849263095ea7b360e01b8452737452c558d45f8afc8c83dae62c3f8a5be19c71f6600485015260248401525af180156101e75761044f57506103d2346112c8565b60405162461bcd60e51b815260206004820152601860248201527f5061726173776170207377617020616d6f756e74206c6f7700000000000000006044820152606490fd5b91945091506020813d602011610a8c575b81610a7860209383610bce565b8101031261012c57519286916109b06109a2565b3d9150610a6b565b60405162461bcd60e51b815260206004820152601460248201527314185c985cddd85c081cddd85c0819985a5b195960621b6044820152606490fd5b610ae89060203d6020116101e0576101d88183610bce565b5089610934565b610b079060203d6020116101e0576101d88183610bce565b50886108cd565b3461012c575f36600319011261012c5780733608c8186ff3dca322deefb8c27162162d58108160209252f35b600435906001600160a01b038216820361012c57565b602435906001600160a01b038216820361012c57565b6080810190811067ffffffffffffffff821117610b8257604052565b634e487b7160e01b5f52604160045260245ffd5b6060810190811067ffffffffffffffff821117610b8257604052565b6040810190811067ffffffffffffffff821117610b8257604052565b90601f8019910116810190811067ffffffffffffffff821117610b8257604052565b9061014060031983011261012c5767ffffffffffffffff9160043583811161012c578160238201121561012c57806004013593841161012c57816024858301011161012c5760249081019392906001600160a01b039035818116810361012c5792604435828116810361012c579260643592608435908116810361012c576080909260a319011261012c57604051610c8781610b66565b60a435815260c435602082015260e4356040820152610104356060820152906101243590565b67ffffffffffffffff8111610b8257601f01601f191660200190565b81601f8201121561012c57803590610ce082610cad565b92610cee6040519485610bce565b8284526020838301011161012c57815f926020809301838601378301015290565b91908251928382525f5b848110610d39575050825f602080949584010152601f8019910116010190565b602081830181015184830182015201610d19565b3461012c575f36600319011261012c576020604051736a000f20005980200259b80c51020030400010688152f35b15610d8257565b60405162461bcd60e51b815260206004820152601360248201527213db9b1e481bdddb995c8818d85b8818d85b1b606a1b6044820152606490fd5b9081602091031261012c5751801515810361012c5790565b3d15610dff573d90610de682610cad565b91610df46040519384610bce565b82523d5f602084013e565b606090565b15610e0b57565b60405162461bcd60e51b815260206004820152600f60248201526e11d356081cddd85c0819985a5b1959608a1b6044820152606490fd5b6001600160a01b0391821681526101c08101979690959194909391929091906020905f8289015b8360048310610edb575050505060a087015f905b60038210610ea157505050508316610160850152610180840152166101a090910152565b82845182905f915b60028310610ec557505050604060019201940191019092610e7d565b8151815286936001909301929182019101610ea9565b806001928b865116815201930191019091610e69565b15610ef857565b60405162461bcd60e51b815260206004820152600b60248201526a10d85b1b0819985a5b195960aa1b6044820152606490fd5b8092910390610100821261012c5782519260c0602082015193603f19011261012c576040519060c0820182811067ffffffffffffffff821117610b825760409081528181015183526060820151602084015260808201519083015260a0810151906001600160a01b038216820361012c5760e091606084015260c08101516080840152015160a082015290565b60045490946001600160a01b039493838616939092861684036110d0576110a36110cb976110955f97958897958a9586600254169760409388855197610ffd89610b66565b16875260209d8e911680918801528487015260608601528251986110208a610b96565b835161102b81610bb2565b8d858301918251815260608401908151838201528d5286519261104d84610bb2565b51835251908201528d8b01528c84519161106683610bb2565b8051835201518d820152838a0152866003541692519889958d87019963409f37c760e01b8b5260248801610e42565b03601f198101855284610bce565b600154169151915afa906110be6110b8610dd5565b92610ef1565b8082518301019101610f2b565b505090565b90946110a36110cb976110955f979588979985600254169686604093818551976110f989610b66565b1687528d60209e8f8901528588015216606086015282519861111a8a610b96565b8c845161112681610bb2565b82518152818301918251908201528b528d85519161114383610bb2565b8351835251908201528d8b0152606084519161115e83610bb2565b85810151835201518d820152838a0152866003541692519889958d87019963409f37c760e01b8b5260248801610e42565b80511561119c5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561119c5760400190565b80516002101561119c5760600190565b909192604051906111e082610b66565b600382526020945f5b6060808210156112005784820188015286016111e9565b505091939094926112108561118f565b5261121a8461118f565b50611224846111b0565b5261122e836111b0565b50611238836111c0565b52611242826111c0565b506040518092631592ca1b60e31b8383015260448201836024840152815180915260648301938060648360051b8601019301945f905b8382106112995750505050611296925003601f198101835282610bce565b90565b91600191939550806112b681966063198b82030186528951610d0f565b97019201920186949295939195611278565b60405190637d39aaf160e01b60208301527331ef83a530fde1b38ee9a18093a333d8bbbc40d5602483015260448201526044815261129681610b66565b604051631cdacd5960e31b60208201526001600160a01b0390911660248201527331ef83a530fde1b38ee9a18093a333d8bbbc40d5604482015260648082019290925290815260a0810167ffffffffffffffff811182821017610b825760405290565b9391906040519261137884610bb2565b600184526020368186013760405193602085019667ffffffffffffffff9786811089821117610b82576040525f86526113b08261118f565b6001600160a01b0391821690525f5460405194911660e0850189811186821017610b825760405280855260208501525f6040850152600160ff60981b0160608501525f608085015260018060a01b031660a084015260c0830152604051946101009384870187811089821117610b82576040525f875260208701525f60408701525f606087015260808601525f60a086015260c08501525f60e08501526040519461012086019086821090821117610b82576040959392955282526020820192835260408201935f8552606083015f8152608084015f815260a08501905f825260c08601925f845260e08701945f8652870195865260405198899763f59c48eb60e01b60208a0152602060248a0152519861020060448a015260c06103248a019a60018060a01b038151166102448c015260018060a01b036020820151166102648c015260018060a01b036040820151166102848c015260018060a01b036060820151166102a48c015260018060a01b036080820151166102c48c015260018060a01b0360a0820151166102e48c015201519960e06103048b01528a5180915260206103448b019b01905f5b8181106116405750505060ff929160e0849251805160648d0152602081015160848d0152604081015160a48d0152606081015160c48d0152608081015160e48d015260a08101516101048d015260c08101516101248d015201516101448b0152511661016489015251166101848701525115156101a48601525115156101c48501525115156101e4840152516102048301525160431982840301610224830152602080825194858152019101925f5b818110611627575050611296925003601f198101835282610bce565b845183526020948501948694509092019160010161160b565b82516001600160a01b03168d5260209c8d019c8e9c509092019160010161155c56fea264697066735822122030aea01e96d82a8ee2ab50b25e344badcfa979710fd9df6e22e7d451b584bf5a64736f6c63430008180033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.