Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 1,069 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Protocol Interac... | 19629956 | 693 days ago | IN | 0 ETH | 0.00068982 | ||||
| Protocol Interac... | 19560643 | 702 days ago | IN | 0 ETH | 0.0008532 | ||||
| Protocol Interac... | 19560218 | 702 days ago | IN | 0 ETH | 0.00087746 | ||||
| Protocol Interac... | 19003633 | 780 days ago | IN | 0 ETH | 0.00223668 | ||||
| Protocol Interac... | 18998366 | 781 days ago | IN | 0 ETH | 0.00094307 | ||||
| Protocol Interac... | 18998312 | 781 days ago | IN | 0 ETH | 0.00085675 | ||||
| Protocol Interac... | 18998258 | 781 days ago | IN | 0 ETH | 0.00082417 | ||||
| Protocol Interac... | 18998204 | 781 days ago | IN | 0 ETH | 0.00077222 | ||||
| Protocol Interac... | 18998149 | 781 days ago | IN | 0 ETH | 0.00089478 | ||||
| Protocol Interac... | 18202302 | 893 days ago | IN | 0 ETH | 0.00851606 | ||||
| Protocol Interac... | 18096888 | 908 days ago | IN | 0 ETH | 0.0020879 | ||||
| Protocol Interac... | 18052346 | 914 days ago | IN | 0 ETH | 0.00224407 | ||||
| Protocol Interac... | 16297082 | 1160 days ago | IN | 0 ETH | 0.00305356 | ||||
| Protocol Interac... | 16294269 | 1161 days ago | IN | 0 ETH | 0.0032885 | ||||
| Protocol Interac... | 16293914 | 1161 days ago | IN | 0 ETH | 0.00349104 | ||||
| Protocol Interac... | 16292921 | 1161 days ago | IN | 0 ETH | 0.00390845 | ||||
| Protocol Interac... | 16292226 | 1161 days ago | IN | 0 ETH | 0.00358882 | ||||
| Protocol Interac... | 16291871 | 1161 days ago | IN | 0 ETH | 0.00395638 | ||||
| Protocol Interac... | 16291512 | 1161 days ago | IN | 0 ETH | 0.0044329 | ||||
| Protocol Interac... | 16291511 | 1161 days ago | IN | 0 ETH | 0.0236918 | ||||
| Protocol Interac... | 16291192 | 1161 days ago | IN | 0 ETH | 0.04156599 | ||||
| Protocol Interac... | 16291190 | 1161 days ago | IN | 0 ETH | 0.01064278 | ||||
| Protocol Interac... | 16291186 | 1161 days ago | IN | 0 ETH | 0.04996374 | ||||
| Protocol Interac... | 16291154 | 1161 days ago | IN | 0 ETH | 0.00479219 | ||||
| Protocol Interac... | 16291100 | 1161 days ago | IN | 0 ETH | 0.00527146 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SDKFunctionV2
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 200 runs
Other Settings:
petersburg EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./interfaces/IPriceModule.sol";
import "./interfaces/IYieldsterVault.sol";
import "./interfaces/IAPContract.sol";
contract SDKFunctionV2 {
using SafeERC20 for IERC20;
address private priceModule;
address private sdkManager;
address private owner;
address private APContract;
constructor(address _priceModule, address _apContract) {
priceModule = _priceModule;
owner = msg.sender;
sdkManager = msg.sender;
APContract = _apContract;
}
modifier onlySDKManager() {
require(msg.sender == sdkManager, "only sdk manager can change this");
_;
}
function setSDKManager(address _manager) public onlySDKManager {
sdkManager = _manager;
}
function changePriceModule(address _priceModule) public {
require(owner == msg.sender, "not authorised");
priceModule = _priceModule;
}
function changeAPContract(address _apContract) public {
require(owner == msg.sender, "not authorised");
APContract = _apContract;
}
function getTokenPriceInUSD(address _tokenAddress, bool _isVault)
external
view
returns (uint256)
{
require(_tokenAddress != address(0), "invalid token address");
if (_isVault) {
return IYieldsterVault(_tokenAddress).tokenValueInUSD();
} else {
return IPriceModule(priceModule).getUSDPrice(_tokenAddress);
}
}
function getTokenBalance(address _tokenAddress, address _vaultAddress)
external
view
returns (uint256)
{
require(_tokenAddress != address(0), "invalid token address");
require(_vaultAddress != address(0), "invalid vault address");
return IYieldsterVault(_vaultAddress).getTokenBalance(_tokenAddress);
}
function getVaultNAV(address _vaultAddress)
external
view
returns (uint256)
{
require(_vaultAddress != address(0), "invalid vault address");
return IYieldsterVault(_vaultAddress).getVaultNAV();
}
function getVaultAssets(address _vaultAddress)
external
view
returns (address[] memory)
{
require(_vaultAddress != address(0), "invalid vault address");
address[] memory assets = IYieldsterVault(_vaultAddress).getAssetList();
address[] memory assetsWithBalance = new address[](assets.length);
for (uint256 i = 0; i < assets.length; i++) {
if (this.getTokenBalance(assets[i], _vaultAddress) > 0) {
assetsWithBalance[i] = assets[i];
}
}
return assetsWithBalance;
}
function protocolInteraction(
address _vaultAddress,
address _poolAddress,
bytes memory _instruction,
uint256[] memory _amount,
address[] memory _fromToken,
address[] memory _returnToken
) public {
require(_vaultAddress != address(0), "invalid vault address");
require(
IAPContract(APContract).checkWalletAddress(msg.sender),
"Unauthorized"
);
IYieldsterVault(_vaultAddress).protocolInteraction(
_poolAddress,
_instruction,
_amount,
_fromToken,
_returnToken
);
}
function y_Swap(
address _vaultAddress,
address _fromToken,
address _toToken,
uint256 _amount,
uint256 _slippage
) external returns (uint256) {
require(_vaultAddress != address(0), "invalid vault address");
require(_fromToken != address(0), "invalid fromToken address");
require(_toToken != address(0), "invalid toToken address");
require(
IAPContract(APContract).checkWalletAddress(msg.sender),
"Unauthorized"
);
require(
this.getTokenBalance(_fromToken, _vaultAddress) >= _amount,
"amount not present"
);
uint256 returnAmount = IYieldsterVault(_vaultAddress).exchangeToken(
_fromToken,
_toToken,
_amount,
_slippage
);
return returnAmount;
}
function y_0x_Swap(
address _vaultAddress,
address _toAddress,
address _fromToken,
uint256 _amount,
bytes memory _instruction,
address _returnToken
) external {
require(_fromToken != address(0), "No from token");
require(_returnToken != address(0), "No return Token");
require(
IAPContract(APContract).checkWalletAddress(msg.sender),
"Unauthorized"
);
uint256[] memory amount = new uint256[](1);
amount[0] = _amount;
address[] memory fromToken = new address[](1);
fromToken[0] = _fromToken;
address[] memory returnToken = new address[](1);
returnToken[0] = _returnToken;
protocolInteraction(
_vaultAddress,
_toAddress,
_instruction,
amount,
fromToken,
returnToken
);
}
function y_OB_Swap(
address _vaultAddress,
address _toAddress,
bytes calldata _instruction,
uint256 _amount,
address _fromToken,
address _returnToken
) external {
require(
IAPContract(APContract).checkWalletAddress(msg.sender),
"Unauthorized"
);
uint256[] memory amount = new uint256[](1);
amount[0] = _amount;
address[] memory fromToken = new address[](1);
fromToken[0] = _fromToken;
address[] memory returnToken = new address[](1);
returnToken[0] = _returnToken;
protocolInteraction(
_vaultAddress,
address(this),
new bytes(0),
amount,
fromToken,
new address[](0)
);
IERC20(_fromToken).safeTransferFrom(_vaultAddress, _toAddress, _amount);
protocolInteraction(
_vaultAddress,
_toAddress,
_instruction,
new uint256[](0),
new address[](0),
returnToken
);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
interface IYieldsterVault {
function tokenValueInUSD() external view returns (uint256);
function getVaultNAV() external view returns (uint256);
function getAssetList() external view returns (address[] memory);
function protocolInteraction(
address,
bytes memory,
uint256[] memory,
address[] memory,
address[] memory
) external;
function exchangeToken(
address,
address,
uint256,
uint256
) external returns (uint256);
function exchangeTokenUsing0x(
address,
address,
uint256,
bytes memory
) external;
function getTokenBalance(address _token) external view returns (uint256);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
interface IPriceModule
{
function getUSDPrice(address ) external view returns(uint256);
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
interface IAPContract {
function getUSDPrice(address) external view returns (uint256);
function stringUtils() external view returns (address);
function yieldsterGOD() external view returns (address);
function emergencyVault() external view returns (address);
function whitelistModule() external view returns (address);
function addVault(address,uint256[] calldata) external;
function setVaultSlippage(uint256) external;
function setVaultAssets(address[] calldata,address[] calldata,address[] calldata,address[] calldata) external;
function changeVaultAdmin(address _vaultAdmin) external;
function yieldsterDAO() external view returns (address);
function exchangeRegistry() external view returns (address);
function getVaultSlippage() external view returns (uint256);
function _isVaultAsset(address) external view returns (bool);
function yieldsterTreasury() external view returns (address);
function setVaultStatus(address) external;
function setVaultSmartStrategy(address, uint256) external;
function getWithdrawStrategy() external returns (address);
function getDepositStrategy() external returns (address);
function isDepositAsset(address) external view returns (bool);
function isWithdrawalAsset(address) external view returns (bool);
function getVaultManagementFee() external returns (address[] memory);
function safeMinter() external returns (address);
function safeUtils() external returns (address);
function getStrategyFromMinter(address) external view returns (address);
function sdkContract() external returns (address);
function getWETH()external view returns(address);
function calculateSlippage(address ,address, uint256, uint256)external view returns(uint256);
function vaultsCount(address) external view returns(uint256);
function getPlatformFeeStorage() external view returns(address);
function checkWalletAddress(address _walletAddress) external view returns(bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Address.sol)
pragma solidity ^0.8.0;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize, which returns 0 for contracts in
// construction, since the code is only stored at the end of the
// constructor execution.
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
import "../../../utils/Address.sol";
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using Address for address;
function safeTransfer(
IERC20 token,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(
IERC20 token,
address from,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
/**
* @dev Deprecated. This function has issues similar to the ones found in
* {IERC20-approve}, and its usage is discouraged.
*
* Whenever possible, use {safeIncreaseAllowance} and
* {safeDecreaseAllowance} instead.
*/
function safeApprove(
IERC20 token,
address spender,
uint256 value
) internal {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
require(
(value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function safeIncreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
uint256 newAllowance = token.allowance(address(this), spender) + value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function safeDecreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
unchecked {
uint256 oldAllowance = token.allowance(address(this), spender);
require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
uint256 newAllowance = oldAllowance - value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
}
/**
* @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
* on the return value: the return value is optional (but if data is returned, it must not be false).
* @param token The token targeted by the call.
* @param data The call data (encoded using abi.encode or one of its variants).
*/
function _callOptionalReturn(IERC20 token, bytes memory data) private {
// We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
// we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
// the target address contains contract code and also asserts for success in the low-level call.
bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
if (returndata.length > 0) {
// Return data is optional
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}{
"remappings": [],
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "petersburg",
"libraries": {},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_priceModule","type":"address"},{"internalType":"address","name":"_apContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_apContract","type":"address"}],"name":"changeAPContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_priceModule","type":"address"}],"name":"changePriceModule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_vaultAddress","type":"address"}],"name":"getTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"bool","name":"_isVault","type":"bool"}],"name":"getTokenPriceInUSD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultAddress","type":"address"}],"name":"getVaultAssets","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultAddress","type":"address"}],"name":"getVaultNAV","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultAddress","type":"address"},{"internalType":"address","name":"_poolAddress","type":"address"},{"internalType":"bytes","name":"_instruction","type":"bytes"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"},{"internalType":"address[]","name":"_fromToken","type":"address[]"},{"internalType":"address[]","name":"_returnToken","type":"address[]"}],"name":"protocolInteraction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"setSDKManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultAddress","type":"address"},{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"address","name":"_fromToken","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_instruction","type":"bytes"},{"internalType":"address","name":"_returnToken","type":"address"}],"name":"y_0x_Swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultAddress","type":"address"},{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"bytes","name":"_instruction","type":"bytes"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_fromToken","type":"address"},{"internalType":"address","name":"_returnToken","type":"address"}],"name":"y_OB_Swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vaultAddress","type":"address"},{"internalType":"address","name":"_fromToken","type":"address"},{"internalType":"address","name":"_toToken","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_slippage","type":"uint256"}],"name":"y_Swap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b5060405162001acb38038062001acb83398101604081905262000034916200009b565b600080546001600160a01b039384166001600160a01b03199182161790915560028054821633908117909155600180548316909117905560038054929093169116179055620000d3565b80516001600160a01b03811681146200009657600080fd5b919050565b60008060408385031215620000af57600080fd5b620000ba836200007e565b9150620000ca602084016200007e565b90509250929050565b6119e880620000e36000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80639cf74a4e116100715780639cf74a4e14610122578063b90f89c314610135578063c489744b14610148578063c548ec391461015b578063cbd6d02b1461017b578063edd43dfc1461018e57600080fd5b806343e0af9f146100ae5780634ba40b0f146100c357806359c9c41d146100e95780637a9ff303146100fc5780637ea46d151461010f575b600080fd5b6100c16100bc3660046113e0565b6101a1565b005b6100d66100d13660046114bb565b6102c6565b6040519081526020015b60405180910390f35b6100c16100f73660046114f4565b6103d5565b6100d661010a3660046114f4565b610442565b6100d661011d366004611511565b6104cc565b6100c161013036600461156c565b61076e565b6100c16101433660046114f4565b610993565b6100d661015636600461162f565b610a00565b61016e6101693660046114f4565b610ae7565b6040516100e091906116a1565b6100c16101893660046114f4565b610cd9565b6100c161019c3660046116b4565b610d55565b6001600160a01b0386166101d05760405162461bcd60e51b81526004016101c790611746565b60405180910390fd5b600354604051634f29bea960e11b81523360048201526001600160a01b0390911690639e537d5290602401602060405180830381865afa158015610218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023c9190611775565b6102585760405162461bcd60e51b81526004016101c790611792565b60405163b89f556760e01b81526001600160a01b0387169063b89f55679061028c9088908890889088908890600401611810565b600060405180830381600087803b1580156102a657600080fd5b505af11580156102ba573d6000803e3d6000fd5b50505050505050505050565b60006001600160a01b0383166103165760405162461bcd60e51b8152602060048201526015602482015274696e76616c696420746f6b656e206164647265737360581b60448201526064016101c7565b811561038557826001600160a01b0316635969326b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037e919061189e565b90506103cf565b600054604051638b2f0f4f60e01b81526001600160a01b03858116600483015290911690638b2f0f4f90602401602060405180830381865afa15801561035a573d6000803e3d6000fd5b92915050565b6002546001600160a01b031633146104205760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5cd95960921b60448201526064016101c7565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b03821661046a5760405162461bcd60e51b81526004016101c790611746565b816001600160a01b0316632c9a41056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cf919061189e565b60006001600160a01b0386166104f45760405162461bcd60e51b81526004016101c790611746565b6001600160a01b03851661054a5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642066726f6d546f6b656e20616464726573730000000000000060448201526064016101c7565b6001600160a01b0384166105a05760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420746f546f6b656e206164647265737300000000000000000060448201526064016101c7565b600354604051634f29bea960e11b81523360048201526001600160a01b0390911690639e537d5290602401602060405180830381865afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c9190611775565b6106285760405162461bcd60e51b81526004016101c790611792565b60405163c489744b60e01b81526001600160a01b038087166004830152871660248201528390309063c489744b90604401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a919061189e565b10156106dd5760405162461bcd60e51b8152602060048201526012602482015271185b5bdd5b9d081b9bdd081c1c995cd95b9d60721b60448201526064016101c7565b604051633384432160e01b81526001600160a01b03868116600483015285811660248301526044820185905260648201849052600091908816906333844321906084016020604051808303816000875af115801561073f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610763919061189e565b979650505050505050565b600354604051634f29bea960e11b81523360048201526001600160a01b0390911690639e537d5290602401602060405180830381865afa1580156107b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107da9190611775565b6107f65760405162461bcd60e51b81526004016101c790611792565b60408051600180825281830190925260009160208083019080368337019050509050838160008151811061082c5761082c6118b7565b6020908102919091010152604080516001808252818301909252600091816020016020820280368337019050509050838160008151811061086f5761086f6118b7565b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106108c0576108c06118b7565b6001600160a01b03929092166020928302919091018201526040805160008082529281019283528082019091526108fe918c913091879087906101a1565b6109136001600160a01b0386168b8b89610f6e565b6102ba8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250610954915050565b60405190808252806020026020018201604052801561097d578160200160208202803683370190505b50604080516000815260208101909152866101a1565b6002546001600160a01b031633146109de5760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5cd95960921b60448201526064016101c7565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b038316610a505760405162461bcd60e51b8152602060048201526015602482015274696e76616c696420746f6b656e206164647265737360581b60448201526064016101c7565b6001600160a01b038216610a765760405162461bcd60e51b81526004016101c790611746565b604051633aecd0e360e01b81526001600160a01b038481166004830152831690633aecd0e390602401602060405180830381865afa158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae0919061189e565b9392505050565b60606001600160a01b038216610b0f5760405162461bcd60e51b81526004016101c790611746565b6000826001600160a01b0316633765c0b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610b4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b7791908101906118cd565b90506000815167ffffffffffffffff811115610b9557610b95611236565b604051908082528060200260200182016040528015610bbe578160200160208202803683370190505b50905060005b8251811015610cd1576000306001600160a01b031663c489744b858481518110610bf057610bf06118b7565b6020026020010151886040518363ffffffff1660e01b8152600401610c2b9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015610c48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6c919061189e565b1115610cbf57828181518110610c8457610c846118b7565b6020026020010151828281518110610c9e57610c9e6118b7565b60200260200101906001600160a01b031690816001600160a01b0316815250505b80610cc98161195c565b915050610bc4565b509392505050565b6001546001600160a01b03163314610d335760405162461bcd60e51b815260206004820181905260248201527f6f6e6c792073646b206d616e616765722063616e206368616e6765207468697360448201526064016101c7565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038416610d9b5760405162461bcd60e51b815260206004820152600d60248201526c273790333937b6903a37b5b2b760991b60448201526064016101c7565b6001600160a01b038116610de35760405162461bcd60e51b815260206004820152600f60248201526e2737903932ba3ab937102a37b5b2b760891b60448201526064016101c7565b600354604051634f29bea960e11b81523360048201526001600160a01b0390911690639e537d5290602401602060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f9190611775565b610e6b5760405162461bcd60e51b81526004016101c790611792565b604080516001808252818301909252600091602080830190803683370190505090508381600081518110610ea157610ea16118b7565b60209081029190910101526040805160018082528183019092526000918160200160208202803683370190505090508581600081518110610ee457610ee46118b7565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090508381600081518110610f3557610f356118b7565b60200260200101906001600160a01b031690816001600160a01b031681525050610f638989878686866101a1565b505050505050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610fc8908590610fce565b50505050565b6000611023826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110a59092919063ffffffff16565b8051909150156110a057808060200190518101906110419190611775565b6110a05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016101c7565b505050565b60606110b484846000856110bc565b949350505050565b6060303183111561111e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016101c7565b843b61116c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101c7565b600080866001600160a01b031685876040516111889190611983565b60006040518083038185875af1925050503d80600081146111c5576040519150601f19603f3d011682016040523d82523d6000602084013e6111ca565b606091505b5091509150610763828286606083156111e4575081610ae0565b8251156111f45782518084602001fd5b8160405162461bcd60e51b81526004016101c7919061199f565b6001600160a01b038116811461122357600080fd5b50565b80356112318161120e565b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561127557611275611236565b604052919050565b600082601f83011261128e57600080fd5b813567ffffffffffffffff8111156112a8576112a8611236565b6112bb601f8201601f191660200161124c565b8181528460208386010111156112d057600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561130757611307611236565b5060051b60200190565b600082601f83011261132257600080fd5b81356020611337611332836112ed565b61124c565b82815260059290921b8401810191818101908684111561135657600080fd5b8286015b84811015611371578035835291830191830161135a565b509695505050505050565b600082601f83011261138d57600080fd5b8135602061139d611332836112ed565b82815260059290921b840181019181810190868411156113bc57600080fd5b8286015b848110156113715780356113d38161120e565b83529183019183016113c0565b60008060008060008060c087890312156113f957600080fd5b61140287611226565b955061141060208801611226565b9450604087013567ffffffffffffffff8082111561142d57600080fd5b6114398a838b0161127d565b9550606089013591508082111561144f57600080fd5b61145b8a838b01611311565b9450608089013591508082111561147157600080fd5b61147d8a838b0161137c565b935060a089013591508082111561149357600080fd5b506114a089828a0161137c565b9150509295509295509295565b801515811461122357600080fd5b600080604083850312156114ce57600080fd5b82356114d98161120e565b915060208301356114e9816114ad565b809150509250929050565b60006020828403121561150657600080fd5b8135610ae08161120e565b600080600080600060a0868803121561152957600080fd5b85356115348161120e565b945060208601356115448161120e565b935060408601356115548161120e565b94979396509394606081013594506080013592915050565b600080600080600080600060c0888a03121561158757600080fd5b87356115928161120e565b965060208801356115a28161120e565b9550604088013567ffffffffffffffff808211156115bf57600080fd5b818a0191508a601f8301126115d357600080fd5b8135818111156115e257600080fd5b8b60208285010111156115f457600080fd5b6020830197508096505050506060880135925061161360808901611226565b915061162160a08901611226565b905092959891949750929550565b6000806040838503121561164257600080fd5b823561164d8161120e565b915060208301356114e98161120e565b600081518084526020808501945080840160005b838110156116965781516001600160a01b031687529582019590820190600101611671565b509495945050505050565b602081526000610ae0602083018461165d565b60008060008060008060c087890312156116cd57600080fd5b86356116d88161120e565b955060208701356116e88161120e565b945060408701356116f88161120e565b935060608701359250608087013567ffffffffffffffff81111561171b57600080fd5b61172789828a0161127d565b92505060a08701356117388161120e565b809150509295509295509295565b602080825260159082015274696e76616c6964207661756c74206164647265737360581b604082015260600190565b60006020828403121561178757600080fd5b8151610ae0816114ad565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b60005b838110156117d35781810151838201526020016117bb565b83811115610fc85750506000910152565b600081518084526117fc8160208601602086016117b8565b601f01601f19169290920160200192915050565b6001600160a01b038616815260a06020808301829052600091611835908401886117e4565b838103604085015286518082528288019183019060005b818110156118685783518352928401929184019160010161184c565b5050848103606086015261187c818861165d565b925050508281036080840152611892818561165d565b98975050505050505050565b6000602082840312156118b057600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060208083850312156118e057600080fd5b825167ffffffffffffffff8111156118f757600080fd5b8301601f8101851361190857600080fd5b8051611916611332826112ed565b81815260059190911b8201830190838101908783111561193557600080fd5b928401925b8284101561076357835161194d8161120e565b8252928401929084019061193a565b60006001820161197c57634e487b7160e01b600052601160045260246000fd5b5060010190565b600082516119958184602087016117b8565b9190910192915050565b602081526000610ae060208301846117e456fea26469706673582212203743866f59cadbd673575a36b3a7c19fb7fac61efda5efc9276d78c685d36a4e64736f6c634300080d00330000000000000000000000008397a1aea0d3fc0e4be8a64d4baeaeecfdaf8ba6000000000000000000000000037b13dd88508a20601573bd97e74279ff38191f
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80639cf74a4e116100715780639cf74a4e14610122578063b90f89c314610135578063c489744b14610148578063c548ec391461015b578063cbd6d02b1461017b578063edd43dfc1461018e57600080fd5b806343e0af9f146100ae5780634ba40b0f146100c357806359c9c41d146100e95780637a9ff303146100fc5780637ea46d151461010f575b600080fd5b6100c16100bc3660046113e0565b6101a1565b005b6100d66100d13660046114bb565b6102c6565b6040519081526020015b60405180910390f35b6100c16100f73660046114f4565b6103d5565b6100d661010a3660046114f4565b610442565b6100d661011d366004611511565b6104cc565b6100c161013036600461156c565b61076e565b6100c16101433660046114f4565b610993565b6100d661015636600461162f565b610a00565b61016e6101693660046114f4565b610ae7565b6040516100e091906116a1565b6100c16101893660046114f4565b610cd9565b6100c161019c3660046116b4565b610d55565b6001600160a01b0386166101d05760405162461bcd60e51b81526004016101c790611746565b60405180910390fd5b600354604051634f29bea960e11b81523360048201526001600160a01b0390911690639e537d5290602401602060405180830381865afa158015610218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023c9190611775565b6102585760405162461bcd60e51b81526004016101c790611792565b60405163b89f556760e01b81526001600160a01b0387169063b89f55679061028c9088908890889088908890600401611810565b600060405180830381600087803b1580156102a657600080fd5b505af11580156102ba573d6000803e3d6000fd5b50505050505050505050565b60006001600160a01b0383166103165760405162461bcd60e51b8152602060048201526015602482015274696e76616c696420746f6b656e206164647265737360581b60448201526064016101c7565b811561038557826001600160a01b0316635969326b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037e919061189e565b90506103cf565b600054604051638b2f0f4f60e01b81526001600160a01b03858116600483015290911690638b2f0f4f90602401602060405180830381865afa15801561035a573d6000803e3d6000fd5b92915050565b6002546001600160a01b031633146104205760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5cd95960921b60448201526064016101c7565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b03821661046a5760405162461bcd60e51b81526004016101c790611746565b816001600160a01b0316632c9a41056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cf919061189e565b60006001600160a01b0386166104f45760405162461bcd60e51b81526004016101c790611746565b6001600160a01b03851661054a5760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642066726f6d546f6b656e20616464726573730000000000000060448201526064016101c7565b6001600160a01b0384166105a05760405162461bcd60e51b815260206004820152601760248201527f696e76616c696420746f546f6b656e206164647265737300000000000000000060448201526064016101c7565b600354604051634f29bea960e11b81523360048201526001600160a01b0390911690639e537d5290602401602060405180830381865afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c9190611775565b6106285760405162461bcd60e51b81526004016101c790611792565b60405163c489744b60e01b81526001600160a01b038087166004830152871660248201528390309063c489744b90604401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a919061189e565b10156106dd5760405162461bcd60e51b8152602060048201526012602482015271185b5bdd5b9d081b9bdd081c1c995cd95b9d60721b60448201526064016101c7565b604051633384432160e01b81526001600160a01b03868116600483015285811660248301526044820185905260648201849052600091908816906333844321906084016020604051808303816000875af115801561073f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610763919061189e565b979650505050505050565b600354604051634f29bea960e11b81523360048201526001600160a01b0390911690639e537d5290602401602060405180830381865afa1580156107b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107da9190611775565b6107f65760405162461bcd60e51b81526004016101c790611792565b60408051600180825281830190925260009160208083019080368337019050509050838160008151811061082c5761082c6118b7565b6020908102919091010152604080516001808252818301909252600091816020016020820280368337019050509050838160008151811061086f5761086f6118b7565b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905083816000815181106108c0576108c06118b7565b6001600160a01b03929092166020928302919091018201526040805160008082529281019283528082019091526108fe918c913091879087906101a1565b6109136001600160a01b0386168b8b89610f6e565b6102ba8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250610954915050565b60405190808252806020026020018201604052801561097d578160200160208202803683370190505b50604080516000815260208101909152866101a1565b6002546001600160a01b031633146109de5760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08185d5d1a1bdc9a5cd95960921b60448201526064016101c7565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b038316610a505760405162461bcd60e51b8152602060048201526015602482015274696e76616c696420746f6b656e206164647265737360581b60448201526064016101c7565b6001600160a01b038216610a765760405162461bcd60e51b81526004016101c790611746565b604051633aecd0e360e01b81526001600160a01b038481166004830152831690633aecd0e390602401602060405180830381865afa158015610abc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae0919061189e565b9392505050565b60606001600160a01b038216610b0f5760405162461bcd60e51b81526004016101c790611746565b6000826001600160a01b0316633765c0b86040518163ffffffff1660e01b8152600401600060405180830381865afa158015610b4f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b7791908101906118cd565b90506000815167ffffffffffffffff811115610b9557610b95611236565b604051908082528060200260200182016040528015610bbe578160200160208202803683370190505b50905060005b8251811015610cd1576000306001600160a01b031663c489744b858481518110610bf057610bf06118b7565b6020026020010151886040518363ffffffff1660e01b8152600401610c2b9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015610c48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6c919061189e565b1115610cbf57828181518110610c8457610c846118b7565b6020026020010151828281518110610c9e57610c9e6118b7565b60200260200101906001600160a01b031690816001600160a01b0316815250505b80610cc98161195c565b915050610bc4565b509392505050565b6001546001600160a01b03163314610d335760405162461bcd60e51b815260206004820181905260248201527f6f6e6c792073646b206d616e616765722063616e206368616e6765207468697360448201526064016101c7565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038416610d9b5760405162461bcd60e51b815260206004820152600d60248201526c273790333937b6903a37b5b2b760991b60448201526064016101c7565b6001600160a01b038116610de35760405162461bcd60e51b815260206004820152600f60248201526e2737903932ba3ab937102a37b5b2b760891b60448201526064016101c7565b600354604051634f29bea960e11b81523360048201526001600160a01b0390911690639e537d5290602401602060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f9190611775565b610e6b5760405162461bcd60e51b81526004016101c790611792565b604080516001808252818301909252600091602080830190803683370190505090508381600081518110610ea157610ea16118b7565b60209081029190910101526040805160018082528183019092526000918160200160208202803683370190505090508581600081518110610ee457610ee46118b7565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090508381600081518110610f3557610f356118b7565b60200260200101906001600160a01b031690816001600160a01b031681525050610f638989878686866101a1565b505050505050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610fc8908590610fce565b50505050565b6000611023826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110a59092919063ffffffff16565b8051909150156110a057808060200190518101906110419190611775565b6110a05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016101c7565b505050565b60606110b484846000856110bc565b949350505050565b6060303183111561111e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016101c7565b843b61116c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101c7565b600080866001600160a01b031685876040516111889190611983565b60006040518083038185875af1925050503d80600081146111c5576040519150601f19603f3d011682016040523d82523d6000602084013e6111ca565b606091505b5091509150610763828286606083156111e4575081610ae0565b8251156111f45782518084602001fd5b8160405162461bcd60e51b81526004016101c7919061199f565b6001600160a01b038116811461122357600080fd5b50565b80356112318161120e565b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561127557611275611236565b604052919050565b600082601f83011261128e57600080fd5b813567ffffffffffffffff8111156112a8576112a8611236565b6112bb601f8201601f191660200161124c565b8181528460208386010111156112d057600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff82111561130757611307611236565b5060051b60200190565b600082601f83011261132257600080fd5b81356020611337611332836112ed565b61124c565b82815260059290921b8401810191818101908684111561135657600080fd5b8286015b84811015611371578035835291830191830161135a565b509695505050505050565b600082601f83011261138d57600080fd5b8135602061139d611332836112ed565b82815260059290921b840181019181810190868411156113bc57600080fd5b8286015b848110156113715780356113d38161120e565b83529183019183016113c0565b60008060008060008060c087890312156113f957600080fd5b61140287611226565b955061141060208801611226565b9450604087013567ffffffffffffffff8082111561142d57600080fd5b6114398a838b0161127d565b9550606089013591508082111561144f57600080fd5b61145b8a838b01611311565b9450608089013591508082111561147157600080fd5b61147d8a838b0161137c565b935060a089013591508082111561149357600080fd5b506114a089828a0161137c565b9150509295509295509295565b801515811461122357600080fd5b600080604083850312156114ce57600080fd5b82356114d98161120e565b915060208301356114e9816114ad565b809150509250929050565b60006020828403121561150657600080fd5b8135610ae08161120e565b600080600080600060a0868803121561152957600080fd5b85356115348161120e565b945060208601356115448161120e565b935060408601356115548161120e565b94979396509394606081013594506080013592915050565b600080600080600080600060c0888a03121561158757600080fd5b87356115928161120e565b965060208801356115a28161120e565b9550604088013567ffffffffffffffff808211156115bf57600080fd5b818a0191508a601f8301126115d357600080fd5b8135818111156115e257600080fd5b8b60208285010111156115f457600080fd5b6020830197508096505050506060880135925061161360808901611226565b915061162160a08901611226565b905092959891949750929550565b6000806040838503121561164257600080fd5b823561164d8161120e565b915060208301356114e98161120e565b600081518084526020808501945080840160005b838110156116965781516001600160a01b031687529582019590820190600101611671565b509495945050505050565b602081526000610ae0602083018461165d565b60008060008060008060c087890312156116cd57600080fd5b86356116d88161120e565b955060208701356116e88161120e565b945060408701356116f88161120e565b935060608701359250608087013567ffffffffffffffff81111561171b57600080fd5b61172789828a0161127d565b92505060a08701356117388161120e565b809150509295509295509295565b602080825260159082015274696e76616c6964207661756c74206164647265737360581b604082015260600190565b60006020828403121561178757600080fd5b8151610ae0816114ad565b6020808252600c908201526b155b985d5d1a1bdc9a5e995960a21b604082015260600190565b60005b838110156117d35781810151838201526020016117bb565b83811115610fc85750506000910152565b600081518084526117fc8160208601602086016117b8565b601f01601f19169290920160200192915050565b6001600160a01b038616815260a06020808301829052600091611835908401886117e4565b838103604085015286518082528288019183019060005b818110156118685783518352928401929184019160010161184c565b5050848103606086015261187c818861165d565b925050508281036080840152611892818561165d565b98975050505050505050565b6000602082840312156118b057600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060208083850312156118e057600080fd5b825167ffffffffffffffff8111156118f757600080fd5b8301601f8101851361190857600080fd5b8051611916611332826112ed565b81815260059190911b8201830190838101908783111561193557600080fd5b928401925b8284101561076357835161194d8161120e565b8252928401929084019061193a565b60006001820161197c57634e487b7160e01b600052601160045260246000fd5b5060010190565b600082516119958184602087016117b8565b9190910192915050565b602081526000610ae060208301846117e456fea26469706673582212203743866f59cadbd673575a36b3a7c19fb7fac61efda5efc9276d78c685d36a4e64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008397a1aea0d3fc0e4be8a64d4baeaeecfdaf8ba6000000000000000000000000037b13dd88508a20601573bd97e74279ff38191f
-----Decoded View---------------
Arg [0] : _priceModule (address): 0x8397a1aEA0d3fC0E4be8a64D4bAEaEECFdAF8bA6
Arg [1] : _apContract (address): 0x037B13dD88508A20601573Bd97e74279fF38191f
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008397a1aea0d3fc0e4be8a64d4baeaeecfdaf8ba6
Arg [1] : 000000000000000000000000037b13dd88508a20601573bd97e74279ff38191f
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.