Created
May 30, 2023 15:14
-
-
Save owenThurm/0c31c2baaace67e5be39c64412546678 to your computer and use it in GitHub Desktop.
Decode CreateOrderParams
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// SPDX-License-Identifier: BUSL-1.1 | |
pragma solidity ^0.8.0; | |
import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; | |
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; | |
import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; | |
import "../src/exchange/DepositHandler.sol"; | |
import "../src/exchange/WithdrawalHandler.sol"; | |
import "../src/exchange/OrderHandler.sol"; | |
import "../src/utils/PayableMulticall.sol"; | |
import "../src/utils/AccountUtils.sol"; | |
import "forge-std/console.sol"; | |
struct CreateOrderParams { | |
CreateOrderParamsAddresses addresses; | |
CreateOrderParamsNumbers numbers; | |
Order.OrderType orderType; | |
Order.DecreasePositionSwapType decreasePositionSwapType; | |
bool isLong; | |
bool shouldUnwrapNativeToken; | |
bytes32 referralCode; | |
} | |
struct CreateOrderParamsAddresses { | |
address receiver; | |
address callbackContract; | |
address uiFeeReceiver; | |
address market; | |
address initialCollateralToken; | |
address[] swapPath; | |
} | |
struct CreateOrderParamsNumbers { | |
uint256 sizeDeltaUsd; | |
uint256 initialCollateralDeltaAmount; | |
uint256 triggerPrice; | |
uint256 acceptablePrice; | |
uint256 executionFee; | |
uint256 callbackGasLimit; | |
uint256 minOutputAmount; | |
} | |
contract EncodingTest { | |
address[] testAddresses; | |
function testEncode() public { | |
bytes memory encodedBytes = hex"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000b1a02fac5914898f0c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cdc1e5f9d480000000000000000000000000000000000000000000000000001c6bf526340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cb085d52bff5a0e380b3be7906ae76369d8babe300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7c34340b8805ec5a767050658cfa389c49304ca0000000000000000000000001d308089a2d1ced3f1ce36b1fcaf815b07217be300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000"; | |
CreateOrderParams memory params = abi.decode(encodedBytes, (CreateOrderParams)); | |
console.log("receiver: ", params.addresses.receiver); | |
console.log("callbackContract: ", params.addresses.callbackContract); | |
console.log("uiFeeReceiver: ", params.addresses.uiFeeReceiver); | |
console.log("market: ", params.addresses.market); | |
console.log("initialCollateralToken", params.addresses.initialCollateralToken); | |
console.log("swapPath length: ", params.addresses.swapPath.length); | |
console.log("sizeDeltaUsd: ", params.numbers.sizeDeltaUsd); | |
console.log("initialCollateralDeltaAmount: ", params.numbers.initialCollateralDeltaAmount); | |
console.log("triggerPrice: ", params.numbers.triggerPrice); | |
console.log("acceptablePrice: ", params.numbers.acceptablePrice); | |
console.log("executionFee: ", params.numbers.executionFee); | |
console.log("callbackGasLimit: ", params.numbers.callbackGasLimit); | |
console.log("minOutputAmount: ", params.numbers.minOutputAmount); | |
console.log("orderType: ", uint(params.orderType)); | |
console.log("decreasePositionSwapType: ", uint(params.decreasePositionSwapType)); | |
console.log("isLong: ", params.isLong); | |
console.log("shouldUnwrapNativeToken: ", params.shouldUnwrapNativeToken); | |
console.log("referralCode: "); | |
console.logBytes32(params.referralCode); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment