diff --git a/qortal-ui-core/src/plugins/routes.js b/qortal-ui-core/src/plugins/routes.js index 2567d201..db16959a 100644 --- a/qortal-ui-core/src/plugins/routes.js +++ b/qortal-ui-core/src/plugins/routes.js @@ -22,6 +22,9 @@ const sendLtc = api.sendLtc const sendDoge = api.sendDoge const sendDgb = api.sendDgb const sendRvn = api.sendRvn +const sendNmc = api.sendNmc +const sendDash = api.sendDash +const sendFiro = api.sendFiro export const routes = { hello: async (req) => { @@ -361,4 +364,43 @@ export const routes = { } return response }, + + sendNmc: async (req) => { + let response + try { + const res = await sendNmc(req.data) + response = res + } catch (e) { + console.error(e) + console.error(e.message) + response = e.message + } + return response + }, + + sendDash: async (req) => { + let response + try { + const res = await sendDash(req.data) + response = res + } catch (e) { + console.error(e) + console.error(e.message) + response = e.message + } + return response + }, + + sendFiro: async (req) => { + let response + try { + const res = await sendFiro(req.data) + response = res + } catch (e) { + console.error(e) + console.error(e.message) + response = e.message + } + return response + }, } diff --git a/qortal-ui-crypto/api/PhraseWallet.js b/qortal-ui-crypto/api/PhraseWallet.js index 34929ee4..9630b0cf 100644 --- a/qortal-ui-crypto/api/PhraseWallet.js +++ b/qortal-ui-crypto/api/PhraseWallet.js @@ -168,6 +168,51 @@ export default class PhraseWallet { } }).createWallet(new Uint8Array(rvnSeed), false, 'RVN'); + // Create Namecoin HD Wallet + const nmcSeed = [...addrSeed]; + const nmcWallet = new AltcoinHDWallet({ + mainnet: { + private: 0x0488ADE4, + public: 0x0488B21E, + prefix: 0x34 + }, + testnet: { + private: 0x04358394, + public: 0x043587CF, + prefix: 0x6F + } + }).createWallet(new Uint8Array(nmcSeed), false, 'NMC'); + + // Create Dash HD Wallet + const dashSeed = [...addrSeed]; + const dashWallet = new AltcoinHDWallet({ + mainnet: { + private: 0x0488ADE4, + public: 0x0488B21E, + prefix: 0x4C + }, + testnet: { + private: 0x04358394, + public: 0x043587CF, + prefix: 0x8C + } + }).createWallet(new Uint8Array(dashSeed), false, 'DASH'); + + // Create Firo HD Wallet + const firoSeed = [...addrSeed]; + const firoWallet = new AltcoinHDWallet({ + mainnet: { + private: 0x0488ADE4, + public: 0x0488B21E, + prefix: 0x52 + }, + testnet: { + private: 0x04358394, + public: 0x043587CF, + prefix: 0x41 + } + }).createWallet(new Uint8Array(firoSeed), false, 'FIRO'); + this._addresses[nonce] = { address, btcWallet, @@ -175,6 +220,9 @@ export default class PhraseWallet { dogeWallet, dgbWallet, rvnWallet, + nmcWallet, + dashWallet, + firoWallet, qoraAddress, keyPair: { publicKey: addrKeyPair.publicKey, diff --git a/qortal-ui-crypto/api/api.js b/qortal-ui-crypto/api/api.js index 30ca6d27..950f7e8a 100644 --- a/qortal-ui-crypto/api/api.js +++ b/qortal-ui-crypto/api/api.js @@ -4,6 +4,6 @@ export { transactionTypes as transactions } from './transactions/transactions.js export { processTransaction, createTransaction, computeChatNonce, signChatTransaction, signArbitraryTransaction } from './createTransaction.js' -export { tradeBotCreateRequest, tradeBotRespondRequest, signTradeBotTxn, deleteTradeOffer, sendBtc, sendLtc, sendDoge, sendDgb, sendRvn } from './tradeRequest.js' +export { tradeBotCreateRequest, tradeBotRespondRequest, signTradeBotTxn, deleteTradeOffer, sendBtc, sendLtc, sendDoge, sendDgb, sendRvn, sendNmc, sendDash, sendFiro } from './tradeRequest.js' export { cancelAllOffers } from './transactions/trade-portal/tradeoffer/cancelAllOffers.js' diff --git a/qortal-ui-crypto/api/tradeRequest.js b/qortal-ui-crypto/api/tradeRequest.js index fb4a2700..f1ea37e5 100644 --- a/qortal-ui-crypto/api/tradeRequest.js +++ b/qortal-ui-crypto/api/tradeRequest.js @@ -130,3 +130,44 @@ export const sendRvn = (requestObject) => { }) } +// Send NMC +export const sendNmc = (requestObject) => { + const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]; + + return request(`/crosschain/nmc/send?apiKey=${myNode.apiKey}`, { + method: 'POST', + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + }, + body: JSON.stringify(requestObject) + }) +} + +// Send DASH +export const sendDash = (requestObject) => { + const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]; + + return request(`/crosschain/dash/send?apiKey=${myNode.apiKey}`, { + method: 'POST', + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + }, + body: JSON.stringify(requestObject) + }) +} + +// Send FIRO +export const sendFiro = (requestObject) => { + const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]; + + return request(`/crosschain/firo/send?apiKey=${myNode.apiKey}`, { + method: 'POST', + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + }, + body: JSON.stringify(requestObject) + }) +}