diff --git a/README.md b/README.md index bd86893..043fb25 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ KRAKEN_API_SECRET="privateKeyFromTheKrakenSettings" KRAKEN_ORDER_TYPE="market" # "limit" (default) or "market" KRAKEN_API_FIAT="USD" # the governmental shitcoin you are selling KRAKEN_BUY_AMOUNT=21 # fiat amount you trade for the future of money +KRAKEN_FEE_CURRENCY="XBT" # pay fee in this currency, e.g. buying XBT for USD and paying fee in XBT # used for withdrawal KRAKEN_MAX_REL_FEE=0.5 # maximum fee in % that you are willing to pay diff --git a/commands/stack.js b/commands/stack.js index a79d101..552ea42 100644 --- a/commands/stack.js +++ b/commands/stack.js @@ -1,5 +1,5 @@ module.exports = async (kraken, validate, { getEnv, getEnvOpt }) => { - const [fiat, amount] = getEnv('KRAKEN_API_FIAT', 'KRAKEN_BUY_AMOUNT') + const [fiat, amount, feeCurrency] = getEnv('KRAKEN_API_FIAT', 'KRAKEN_BUY_AMOUNT', 'KRAKEN_FEE_CURRENCY') const ordertype = getEnvOpt('KRAKEN_ORDER_TYPE', 'limit', ['limit', 'market']) // if living in Germany, one needs to add an additional parameter to explicitly agree to the trade // if the parameter is not set one will get the following error: EOrder:Trading agreement required @@ -10,6 +10,16 @@ module.exports = async (kraken, validate, { getEnv, getEnvOpt }) => { const crypto = 'XBT' const pair = `${crypto}${fiat}` + // for explanation of oflags see https://www.kraken.com/features/api#add-standard-order + var fee = "" + if (feeCurrency == crypto) { + fee = "fcib" + } else if (feeCurrency == fiat) { + fee = "fciq" + } else { + fee = "" + } + // Fetch and display information const { result: balance } = await kraken.api('Balance') const { result: ticker } = await kraken.api('Ticker', { pair }) @@ -32,6 +42,7 @@ module.exports = async (kraken, validate, { getEnv, getEnvOpt }) => { const details = { pair, type: 'buy', ordertype, price, volume } if (validate) details.validate = true if (trading_agreement) details.trading_agreement = trading_agreement + if (fee) details.oflags = fee const { result: { descr: { order }, txid } } = await kraken.api('AddOrder', details)