WOWswap
  • 👋Introduction
  • ❓FAQ
  • About
    • 🤓Functioning of WOW protocol
    • 📉Leveraged short-swap
    • 💸Lending (Earn)
    • 🚨Liquidation
    • 💹Portfolio Page
    • 💲Hourly Interest Rate
    • 💰Insurance Fund
    • 💱Fees
  • How-to-Guide
    • 📊Trading overview on WOWswap
    • 👍Opening a trade
    • 😮How to stake WOW in Governance
    • ⛓Depositing Assets to Polygon and Connect to WOWswap
    • 🤖Set Stop Loss and Take Profit Orders
    • 🔔Receive Notifications for Profits, Liquidations and High APY
    • 🩺Running WOWswap liquidation bot
    • 🕶️Trading on WOWswap Pro
  • Governance
    • 🏛WOW Governance Model
    • 😮WOW token & contracts
    • 🔵xWOW token
  • Useful Links
    • 📱WOW App
    • 🥞Buy WOW on Pancakeswap
    • 🐲Buy WOW on Quickswap
    • 🔥Buy WOW on Pangolin (Avalanche)
    • 🎭Buy WOW on Mimo (IoTeX)
    • 🍣Buy WOW on Sushi (Ethereum)
    • 🧙‍♂️Buy WOW on MDEX (HECO)
    • 🐥Twitter
    • 🦜Discord
    • 👨‍👨‍👧‍👦Telegram Community
    • 📃Whitepaper
    • 🔒Audit
  • For devs
    • WOW Architecture
    • Smart contracts
    • Trading ABI and Documentation
Powered by GitBook
On this page
  • ABI
  • Structs
  • ClosePositionRequest
  • OpenPositionRequest
  • OpenShortPositionRequest

Was this helpful?

  1. For devs

Trading ABI and Documentation

PreviousSmart contracts

Last updated 2 years ago

Was this helpful?

ABI

Structs

ClosePositionRequest

📄 Configuration parameters for a closing position transaction

Developer should use pragma experimental ABIEncoderV2; to pack struct to calldata with struct

All positions tokens support EIP-2612 for disbursement via an offchain signature, not a approve of transaction

Fields:

➡ short should be true if a short position is closed (false if a long position)

➡ amountIn the number of position tokens to close (can pass type(uint256).max to close the all position)

➡ amountOutMin minimum allowed number of tokens to be received lendable after closing (if the exchange returns less during the closing process - the transaction will be rejected)

➡ lendable is an address of lendable token

➡ proxy is an address of proxy token (should be address(0) if direct swap)

➡ tradable is an address of tradable token if position is long, overwise is shortable

➡ trader is an address of position holder

➡ deadline deadline of permit on spending position tokens for Router instance

➡ referrer is an address of position holder referrer (should be address(0) if no referrer)

➡ permit is a structure of v , r , s with ERC-2612 permit

➡ convertToNative should be true if lendable is wrapped native currency and expect unwrapping to native at the end of transaction

OpenPositionRequest

📄 Transaction configuration parameters for opening a long position

Developer should use pragma experimental ABIEncoderV2; to pack struct to calldata with struct Developer should call PriceSigner service to obtain guarded field data before call open position

➡ amountIn the number of lendable tokens to open a position and to be used as collateral for the position

➡ leverageFactor determines the leverage of the position (specified in decimals, i.e. x1 is 10000 and x1.5 is 15000)

➡ amountOutMin minimum allowed number of received position tokens after opening (if the exchange returns less during the opening - the transaction will be rejected)

➡ lendable is an address of lendable token

➡ proxy is an address of proxy token (should be address(0) if direct swap)

➡ tradable is an address of tradable token if position is long, overwise is shortable

➡ trader is an address of position holder

➡ deadline deprecated field

➡ referrer is an address of position holder referrer (should be address(0) if no referrer)

➡ guarded a signed message from the oracle with the expected value of the asset (protection against flash-loan attacks)

➡ terminationConditions user-signed position auto termination conditions (can be initialized with zeros to cancel auto termination)

➡ terminationReward amount in native tokens to compensate for the gas and work of the termination bot (must be added to msg.value)

➡ convertFromNative If lendable token is wrapped native currency (e.g. BNB in BNB Chain), can pass the amount as transaction value and setting convertFromNative as true to wrap the native currency into ERC20 token

OpenShortPositionRequest

📄 Transaction configuration parameters of short position opening

Developer should use pragma experimental ABIEncoderV2; to pack struct to calldata with struct Developer should call PriceSigner service to obtain guarded field data before call open position

➡ amountIn number of lendable tokens (stablecoin) to open a position and to be used as collateral for the position

➡ baseBorrowAmount base loan. Calculated as baseBorrowAmount *leverageFactor = loan, where loan * tradablePrice <= amountInleverageFactor determines the leverage of the position (specified in decimals, i.e. x1 is 10000 and x1.5 - 15000)

➡ amountOutMin minimum allowed number of received position tokens after opening (if the exchange returns less during the opening - the transaction will be rejected)

➡ lendable is an address of lendable token

➡ proxy is an address of proxy token (should be address(0) if direct swap)

➡ tradable is an address of tradable token if position is long, overwise is shortable

➡ trader is an address of position holder

➡ deadline deprecated field referrer is an address of position holder

➡ referrer (should be address(0) if no referrer)

➡ guarded a signed message from the oracle with the expected value of the asset (protection against flash-loan attacks)

➡ terminationConditions user-signed position auto termination conditions (can be initialized with zeros to cancel auto termination)

➡ terminationReward amount in native tokens to compensate for the gas and work of the termination bot (must be added to msg.value)

➡ convertFromNative If lendable token is wrapped native currency (e.g. BNB in BNB Chain), can pass the amount as transaction value and setting convertFromNative as true to wrap the native currency into ERC20 token

WithdrawRequest

📄 Withdrawal parameters from the reserve All ib tokens support EIP-2612 for disbursement via offchain signature, not approve transaction

https://github.com/wowswap-io/evm-sdk-public