diff --git a/core/src/plugins/routes.js b/core/src/plugins/routes.js
index d50c95b25..6dd953fd9 100644
--- a/core/src/plugins/routes.js
+++ b/core/src/plugins/routes.js
@@ -24,6 +24,7 @@ const signArbitraryTransaction = api.signArbitraryTransaction
const signArbitraryWithFeeTransaction = api.signArbitraryWithFeeTransaction
const tradeBotCreateRequest = api.tradeBotCreateRequest
const tradeBotRespondRequest = api.tradeBotRespondRequest
+const tradeBotRespondMultipleRequest = api.tradeBotRespondMultipleRequest
const signTradeBotTxn = api.signTradeBotTxn
const deleteTradeOffer = api.deleteTradeOffer
const cancelAllOffers = api.cancelAllOffers
@@ -396,6 +397,21 @@ export const routes = {
return response
},
+ tradeBotRespondMultipleRequest: async (req) => {
+ let response
+
+ try {
+ response = await tradeBotRespondMultipleRequest(req.data)
+ } catch (e) {
+ console.error(e)
+ console.error(e.message)
+
+ response = e.message
+ }
+
+ return response
+ },
+
deleteTradeOffer: async (req) => {
let response
diff --git a/core/src/tradebot/trade-bot-routes.js b/core/src/tradebot/trade-bot-routes.js
index de0a47f24..cb0c1d587 100644
--- a/core/src/tradebot/trade-bot-routes.js
+++ b/core/src/tradebot/trade-bot-routes.js
@@ -6,6 +6,7 @@ const createTransaction = api.createTransaction
const processTransaction = api.processTransaction
const tradeBotCreateRequest = api.tradeBotCreateRequest
const tradeBotRespondRequest = api.tradeBotRespondRequest
+const tradeBotRespondMultipleRequest = api.tradeBotRespondMultipleRequest
const signTradeBotTxn = api.signTradeBotTxn
const deleteTradeOffer = api.deleteTradeOffer
const cancelAllOffers = api.cancelAllOffers
@@ -163,6 +164,21 @@ export const routes = {
return response
},
+ tradeBotRespondMultipleRequest: async (req) => {
+ let response
+
+ try {
+ response = await tradeBotRespondMultipleRequest(req.data)
+ } catch (e) {
+ console.error(e)
+ console.error(e.message)
+
+ response = e.message
+ }
+
+ return response
+ },
+
deleteTradeOffer: async (req) => {
let response
diff --git a/crypto/api/api.js b/crypto/api/api.js
index 3c240b2eb..f264bc853 100644
--- a/crypto/api/api.js
+++ b/crypto/api/api.js
@@ -1,5 +1,5 @@
export { request } from './fetch-request'
export { transactionTypes as transactions } from './transactions/transactions'
export { processTransaction, processTransactionVersion2, createTransaction, computeChatNonce, signChatTransaction, signArbitraryTransaction, signArbitraryWithFeeTransaction } from './createTransaction'
-export { tradeBotCreateRequest, tradeBotRespondRequest, signTradeBotTxn, deleteTradeOffer, sendBtc, sendLtc, sendDoge, sendDgb, sendRvn, sendArrr } from './tradeRequest'
+export { tradeBotCreateRequest, tradeBotRespondRequest, tradeBotRespondMultipleRequest, signTradeBotTxn, deleteTradeOffer, sendBtc, sendLtc, sendDoge, sendDgb, sendRvn, sendArrr } from './tradeRequest'
export { cancelAllOffers } from './transactions/trade-portal/tradeoffer/cancelAllOffers'
diff --git a/crypto/api/tradeRequest.js b/crypto/api/tradeRequest.js
index f95380b75..69420c383 100644
--- a/crypto/api/tradeRequest.js
+++ b/crypto/api/tradeRequest.js
@@ -4,6 +4,7 @@ import TradeBotRespondRequest from './transactions/trade-portal/tradebot/TradeBo
import signTradeBotTransaction from './transactions/trade-portal/tradebot/signTradeBotTransaction'
import DeleteTradeOffer from './transactions/trade-portal/tradeoffer/DeleteTradeOffer'
import { request } from './fetch-request'
+import TradeBotRespondMultipleRequest from "./transactions/trade-portal/tradebot/TradeBotRespondMultipleRequest";
// TradeBotCreateRequest
export const tradeBotCreateRequest = (requestObject) => {
@@ -35,6 +36,21 @@ export const tradeBotRespondRequest = (requestObject) => {
})
}
+// TradeBotRespondRequest
+export const tradeBotRespondMultipleRequest = (requestObject) => {
+ const txn = new TradeBotRespondMultipleRequest().createTransaction(requestObject)
+ const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
+
+ return request(`/crosschain/tradebot/respondmultiple?apiKey=${myNode.apiKey}`, {
+ method: 'POST',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(txn)
+ })
+}
+
// Sign Trade Transactions
export const signTradeBotTxn = (unsignedTxn, keyPair) => {
return signTradeBotTransaction(unsignedTxn, keyPair)
diff --git a/crypto/api/transactions/trade-portal/tradebot/TradeBotRespondMultipleRequest.js b/crypto/api/transactions/trade-portal/tradebot/TradeBotRespondMultipleRequest.js
new file mode 100644
index 000000000..5dcc2e402
--- /dev/null
+++ b/crypto/api/transactions/trade-portal/tradebot/TradeBotRespondMultipleRequest.js
@@ -0,0 +1,39 @@
+/**
+ * CrossChain - TradeBot Respond Multiple Request (Buy Action)
+ *
+ * These are special types of transactions (JSON ENCODED)
+ */
+
+export default class TradeBotRespondMultipleRequest {
+ constructor() {
+ // ...
+ }
+
+ createTransaction(txnReq) {
+ this.addresses(txnReq.addresses)
+ this.foreignKey(txnReq.foreignKey)
+ this.receivingAddress(txnReq.receivingAddress)
+
+ return this.txnRequest()
+ }
+
+ addresses(addresses) {
+ this._addresses = addresses
+ }
+
+ foreignKey(foreignKey) {
+ this._foreignKey = foreignKey
+ }
+
+ receivingAddress(receivingAddress) {
+ this._receivingAddress = receivingAddress
+ }
+
+ txnRequest() {
+ return {
+ addresses: this._addresses,
+ foreignKey: this._foreignKey,
+ receivingAddress: this._receivingAddress
+ }
+ }
+}
diff --git a/plugins/plugins/core/trade-portal/trade-portal.src.js b/plugins/plugins/core/trade-portal/trade-portal.src.js
index d122b0df6..f42d3ab33 100644
--- a/plugins/plugins/core/trade-portal/trade-portal.src.js
+++ b/plugins/plugins/core/trade-portal/trade-portal.src.js
@@ -30,6 +30,7 @@ import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@vaadin/grid'
import '@vaadin/grid/vaadin-grid-sorter'
import '@vaadin/password-field'
+import '@vaadin/grid/vaadin-grid-selection-column.js'
// Multi language support
import { get, registerTranslateConfig, translate, use } from '../../../../core/translate'
@@ -498,6 +499,10 @@ class TradePortal extends LitElement {
this._openOrdersGrid = this.shadowRoot.getElementById('openOrdersGrid')
+ this._openOrdersGrid.addEventListener("selected-items-changed", function(event){
+ _this.fillBuyFormMultiple(event.detail.value);
+ });
+
this._openOrdersGrid.querySelector('#priceColumn').headerRenderer = function (root) {
const priceString = get("tradepage.tchange9")
root.innerHTML = '