diff --git a/src/botPage/bot/__tests__/BotApi.js b/src/botPage/bot/__tests__/BotApi.js index dab0901c31..c9bed14728 100644 --- a/src/botPage/bot/__tests__/BotApi.js +++ b/src/botPage/bot/__tests__/BotApi.js @@ -32,6 +32,7 @@ describe('Interface', () => { currency : 'USD', duration : 5, duration_unit: 't', + basis : 'stake', }); watch('before').then(c => { diff --git a/src/botPage/bot/__tests__/UI.js b/src/botPage/bot/__tests__/UI.js index d37f3bef43..91a62c8489 100644 --- a/src/botPage/bot/__tests__/UI.js +++ b/src/botPage/bot/__tests__/UI.js @@ -38,6 +38,7 @@ expectReturnTrue( prediction: undefined, barrierOffset: undefined, secondBarrierOffset: undefined, + basis: 'stake', }); } diff --git a/src/botPage/bot/__tests__/tools.js b/src/botPage/bot/__tests__/tools.js index 1999d2bdf9..9dd018c4bf 100644 --- a/src/botPage/bot/__tests__/tools.js +++ b/src/botPage/bot/__tests__/tools.js @@ -15,7 +15,8 @@ export const start = options => ` Bot.start({ amount: 1, - currency: 'USD', ${options || ''} + currency: 'USD', ${options || ''}, + basis: 'stake', }); `; diff --git a/src/botPage/bot/tools.js b/src/botPage/bot/tools.js index d4f535ec5b..2b509e9c58 100644 --- a/src/botPage/bot/tools.js +++ b/src/botPage/bot/tools.js @@ -9,7 +9,7 @@ export const tradeOptionToProposal = tradeOption => tradeOption.contractTypes.map(type => { const proposal = { duration_unit: tradeOption.duration_unit, - basis : 'stake', + basis : tradeOption.basis, currency : tradeOption.currency, symbol : tradeOption.symbol, duration : tradeOption.duration, diff --git a/src/botPage/common/const.js b/src/botPage/common/const.js index a35f5888bb..4e5d2e7eb2 100644 --- a/src/botPage/common/const.js +++ b/src/botPage/common/const.js @@ -8,10 +8,6 @@ const CRYPTO_CURRENCIES = ['BTC', 'ETH', 'LTC', 'BCH']; const config = { lists: { - PAYOUTTYPE: [ - // [translate('Payout'), 'payout'], - [translate('Stake'), 'stake'], - ], CRYPTO_CURRENCIES, DETAILS: [ [translate('statement'), '1'], diff --git a/src/botPage/view/blockly/blocks/trade/components.js b/src/botPage/view/blockly/blocks/trade/components.js index a11467343e..a99f248f9b 100644 --- a/src/botPage/view/blockly/blocks/trade/components.js +++ b/src/botPage/view/blockly/blocks/trade/components.js @@ -61,11 +61,17 @@ export const duration = block => { export const payout = block => { if (!block.getInput('AMOUNT')) { - block - .appendValueInput('AMOUNT') - .setCheck('Number') - .appendField(`${translate('Stake')}:`) - .appendField(new Blockly.FieldDropdown(config.lists.CURRENCY), 'CURRENCY_LIST'); + const amountInput = block.appendValueInput('AMOUNT'); + + amountInput.setCheck('Number'); + + if (block.type === 'tradeOptions_payout') { + amountInput.appendField(`${translate('Payout')}:`); + } else { + amountInput.appendField(`${translate('Stake')}:`); + } + + amountInput.appendField(new Blockly.FieldDropdown(config.lists.CURRENCY), 'CURRENCY_LIST'); } }; diff --git a/src/botPage/view/blockly/blocks/trade/tradeOptions.js b/src/botPage/view/blockly/blocks/trade/tradeOptions.js index 83581524c3..aa9b8c2a71 100644 --- a/src/botPage/view/blockly/blocks/trade/tradeOptions.js +++ b/src/botPage/view/blockly/blocks/trade/tradeOptions.js @@ -49,7 +49,7 @@ export default () => { if (!symbol) return; const getNestedTradeOptions = block => { - if (block.type === 'tradeOptions') { + if (/^tradeOptions/.test(block.type)) { this.pollForContracts(symbol).then(contracts => { this.updateBarrierOffsetBlocks(contracts, false, false, [block.id]); this.applyBarrierHandlebars('BARRIEROFFSETTYPE_LIST', [ev.blockId], true); @@ -141,7 +141,7 @@ export default () => { }); }, updatePredictionBlocks(contracts, updateOnly = []) { - getBlocksByType('tradeOptions').forEach(tradeOptionsBlock => { + getBlocksByType(this.type).forEach(tradeOptionsBlock => { if (tradeOptionsBlock.disabled) return; if (updateOnly.length && !updateOnly.includes(tradeOptionsBlock.id)) return; @@ -166,7 +166,7 @@ export default () => { }); }, updateBarrierOffsetBlocks(contracts, useDefaultType = false, setDefaultValue = false, updateOnly = []) { - getBlocksByType('tradeOptions').forEach(tradeOptionsBlock => { + getBlocksByType(this.type).forEach(tradeOptionsBlock => { if (tradeOptionsBlock.disabled) return; if (updateOnly.length && !updateOnly.includes(tradeOptionsBlock.id)) return; @@ -241,7 +241,7 @@ export default () => { }); }, updateDurationLists(contracts, useDefaultUnit = false, setMinDuration = false, updateOnly = []) { - getBlocksByType('tradeOptions').forEach(tradeOptionsBlock => { + getBlocksByType(this.type).forEach(tradeOptionsBlock => { if (tradeOptionsBlock.disabled) return; if (updateOnly.length && !updateOnly.includes(tradeOptionsBlock.id)) return; @@ -290,7 +290,7 @@ export default () => { }); }, applyBarrierHandlebars(barrierFieldName, forceDistinct = false, updateOnly = []) { - getBlocksByType('tradeOptions').forEach(tradeOptionsBlock => { + getBlocksByType(this.type).forEach(tradeOptionsBlock => { if (tradeOptionsBlock.disabled) return; if (updateOnly.length && !updateOnly.includes(tradeOptionsBlock.id)) return; @@ -318,6 +318,8 @@ export default () => { }); }, }; + Blockly.Blocks.tradeOptions_payout = Blockly.Blocks.tradeOptions; + Blockly.JavaScript.tradeOptions = block => { const durationValue = Blockly.JavaScript.valueToCode(block, 'DURATION', Blockly.JavaScript.ORDER_ATOMIC) || '0'; const durationType = block.getFieldValue('DURATIONTYPE_LIST'); @@ -366,8 +368,10 @@ export default () => { prediction: ${predictionValue}, barrierOffset: ${barrierOffsetValue}, secondBarrierOffset: ${secondBarrierOffsetValue}, + basis: '${block.type === 'tradeOptions_payout' ? 'payout' : 'stake'}', }); `; return code; }; + Blockly.JavaScript.tradeOptions_payout = Blockly.JavaScript.tradeOptions; }; diff --git a/static/xml/toolbox.xml b/static/xml/toolbox.xml index 2dbce11e0b..56e5a54c00 100644 --- a/static/xml/toolbox.xml +++ b/static/xml/toolbox.xml @@ -259,6 +259,18 @@ + + + + 5 + + + + + 1 + + +