Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DFS

Peripheral EOSIO smart contracts for interacting with DFS

Dependencies

Quickstart

#include <sx.dfs/dfs.hpp>
#include <sx.uniswap/uniswap.hpp>

// user input
const asset quantity = asset{10000, symbol{"EOS", 4}};
const uint64_t mid = 17; // EOS/USDT pair

// get dfs info
const auto [ reserve_in, reserve_out ] = dfs::get_reserves( mid, quantity.symbol );
const uint8_t fee = dfs::get_fee();

// calculate out price
const asset out = uniswap::get_amount_out( quantity, reserves_in, reserves_out, fee );
// => "2.6500 USDT"

Table of Content

STATIC get_reserves

Get reserves for a pair

params

  • {uint64_t} mid - market id
  • {symbol} sort - sort by symbol (reserve0 will be first item in pair)
  • {name} [code="defisswapcnt"] - code account

returns

  • {pair<asset, asset>} - pair of reserve assets

example

const uint64_t mid = 17;
const symbol sort = symbol{"EOS", 4};

const auto [reserve0, reserve1] = dfs::get_reserves( mid, sort );
// reserve0 => "4585193.1234 EOS"
// reserve1 => "12568203.3533 USDT"

STATIC get_fee

Get DFS total fee

params

  • {name} [code="defisswapcnt"] - code account

returns

  • {uint8_t} - total fee (trade + protocol)

example

const uint8_t fee = dfs::get_fee();
// => 30

STATIC get_rewards

Get rewards for trading

params

  • {uint64_t} pair_id - pair id
  • {asset} in - input quantity
  • {asset} out - out quantity
  • {name} [code="defisswapcnt"] - code account

returns

  • {asset} = rewards in DFS

example

const uint64_t pair_id = 12;
const asset in = asset{10000, {"EOS", 4}};
const asset out = asset{12345, {"USDT", 4}};

const auto rewards = dfs::get_rewards( pair_id, in, out );
// rewards => "0.123456 DFS"

About

SX DFS implementation

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages