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
+
+
+