mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-14 11:15:50 +00:00
Update to QDN
This commit is contained in:
parent
e8b7cc7d7b
commit
afa3c07401
@ -2,7 +2,7 @@ export { request } from './fetch-request.js'
|
|||||||
|
|
||||||
export { transactionTypes as transactions } from './transactions/transactions.js'
|
export { transactionTypes as transactions } from './transactions/transactions.js'
|
||||||
|
|
||||||
export { processTransaction, createTransaction, computeChatNonce, signChatTransaction } from './createTransaction.js'
|
export { processTransaction, createTransaction, computeChatNonce, signChatTransaction, signArbitraryTransaction } from './createTransaction.js'
|
||||||
|
|
||||||
export { tradeBotCreateRequest, tradeBotRespondRequest, signTradeBotTxn, deleteTradeOffer, sendBtc, sendLtc, sendDoge } from './tradeRequest.js'
|
export { tradeBotCreateRequest, tradeBotRespondRequest, signTradeBotTxn, deleteTradeOffer, sendBtc, sendLtc, sendDoge } from './tradeRequest.js'
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ import { transactionTypes as transactions } from './transactions/transactions.js
|
|||||||
import Base58 from './deps/Base58.js'
|
import Base58 from './deps/Base58.js'
|
||||||
import { request } from './fetch-request'
|
import { request } from './fetch-request'
|
||||||
import signChat from './transactions/chat/signChat.js'
|
import signChat from './transactions/chat/signChat.js'
|
||||||
|
import signArbitrary from './transactions/arbitrary/signArbitrary.js'
|
||||||
|
|
||||||
|
|
||||||
export const createTransaction = (type, keyPair, params) => {
|
export const createTransaction = (type, keyPair, params) => {
|
||||||
@ -25,6 +26,11 @@ export const signChatTransaction = (chatBytes, nonce, keyPair) => {
|
|||||||
return signChat(chatBytes, nonce, keyPair)
|
return signChat(chatBytes, nonce, keyPair)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sign Arbitrary Transactions
|
||||||
|
export const signArbitraryTransaction = (arbitraryBytesBase58, arbitraryBytesForSigningBase58, nonce, keyPair) => {
|
||||||
|
return signArbitrary(arbitraryBytesBase58, arbitraryBytesForSigningBase58, nonce, keyPair)
|
||||||
|
}
|
||||||
|
|
||||||
// Process Transactions
|
// Process Transactions
|
||||||
export const processTransaction = bytes => request('/transactions/process', {
|
export const processTransaction = bytes => request('/transactions/process', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
@ -12,8 +12,9 @@ import { request } from './fetch-request'
|
|||||||
// TradeBotCreateRequest
|
// TradeBotCreateRequest
|
||||||
export const tradeBotCreateRequest = (requestObject) => {
|
export const tradeBotCreateRequest = (requestObject) => {
|
||||||
const txn = new TradeBotCreateRequest().createTransaction(requestObject)
|
const txn = new TradeBotCreateRequest().createTransaction(requestObject)
|
||||||
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
|
||||||
|
|
||||||
return request('/crosschain/tradebot/create', {
|
return request(`/crosschain/tradebot/create?apiKey=${myNode.apiKey}`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'text/plain',
|
'Accept': 'text/plain',
|
||||||
@ -26,8 +27,9 @@ export const tradeBotCreateRequest = (requestObject) => {
|
|||||||
// TradeBotRespondRequest
|
// TradeBotRespondRequest
|
||||||
export const tradeBotRespondRequest = (requestObject) => {
|
export const tradeBotRespondRequest = (requestObject) => {
|
||||||
const txn = new TradeBotRespondRequest().createTransaction(requestObject)
|
const txn = new TradeBotRespondRequest().createTransaction(requestObject)
|
||||||
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
|
||||||
|
|
||||||
return request('/crosschain/tradebot/respond', {
|
return request(`/crosschain/tradebot/respond?apiKey=${myNode.apiKey}`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
@ -46,8 +48,9 @@ export const signTradeBotTxn = (unsignedTxn, keyPair) => {
|
|||||||
// Delete Trade Offer
|
// Delete Trade Offer
|
||||||
export const deleteTradeOffer = (requestObject) => {
|
export const deleteTradeOffer = (requestObject) => {
|
||||||
const txn = new DeleteTradeOffer().createTransaction(requestObject)
|
const txn = new DeleteTradeOffer().createTransaction(requestObject)
|
||||||
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
|
||||||
|
|
||||||
return request('/crosschain/tradeoffer', {
|
return request(`/crosschain/tradeoffer?apiKey=${myNode.apiKey}`, {
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
@ -59,8 +62,9 @@ export const deleteTradeOffer = (requestObject) => {
|
|||||||
|
|
||||||
// Send BTC
|
// Send BTC
|
||||||
export const sendBtc = (requestObject) => {
|
export const sendBtc = (requestObject) => {
|
||||||
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
|
||||||
|
|
||||||
return request('/crosschain/btc/send', {
|
return request(`/crosschain/btc/send?apiKey=${myNode.apiKey}`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
@ -72,8 +76,9 @@ export const sendBtc = (requestObject) => {
|
|||||||
|
|
||||||
// Send LTC
|
// Send LTC
|
||||||
export const sendLtc = (requestObject) => {
|
export const sendLtc = (requestObject) => {
|
||||||
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
|
||||||
|
|
||||||
return request('/crosschain/ltc/send', {
|
return request(`/crosschain/ltc/send?apiKey=${myNode.apiKey}`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
@ -85,8 +90,9 @@ export const sendLtc = (requestObject) => {
|
|||||||
|
|
||||||
// Send DOGE
|
// Send DOGE
|
||||||
export const sendDoge = (requestObject) => {
|
export const sendDoge = (requestObject) => {
|
||||||
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
|
||||||
|
|
||||||
return request('/crosschain/doge/send', {
|
return request(`/crosschain/doge/send?apiKey=${myNode.apiKey}`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
|
39
qortal-ui-crypto/api/transactions/arbitrary/signArbitrary.js
Normal file
39
qortal-ui-crypto/api/transactions/arbitrary/signArbitrary.js
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import nacl from '../../deps/nacl-fast.js'
|
||||||
|
import utils from '../../deps/utils.js'
|
||||||
|
import Base58 from '../../deps/Base58.js'
|
||||||
|
|
||||||
|
|
||||||
|
const signArbitrary = (arbitraryBytesBase58, arbitraryBytesForSigningBase58, nonce, keyPair) => {
|
||||||
|
|
||||||
|
if (!arbitraryBytesBase58) {
|
||||||
|
throw new Error('ArbitraryBytesBase58 not defined')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!nonce) {
|
||||||
|
throw new Error('Nonce not defined')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!keyPair) {
|
||||||
|
throw new Error('keyPair not defined')
|
||||||
|
}
|
||||||
|
|
||||||
|
const arbitraryBytes = Base58.decode(arbitraryBytesBase58)
|
||||||
|
const _arbitraryBytesBuffer = Object.keys(arbitraryBytes).map(function (key) { return arbitraryBytes[key]; });
|
||||||
|
const arbitraryBytesBuffer = new Uint8Array(_arbitraryBytesBuffer)
|
||||||
|
|
||||||
|
const arbitraryBytesForSigning = Base58.decode(arbitraryBytesForSigningBase58)
|
||||||
|
const _arbitraryBytesForSigningBuffer = Object.keys(arbitraryBytesForSigning).map(function (key) { return arbitraryBytesForSigning[key]; });
|
||||||
|
const arbitraryBytesForSigningBuffer = new Uint8Array(_arbitraryBytesForSigningBuffer)
|
||||||
|
|
||||||
|
const _nonce = utils.int32ToBytes(nonce)
|
||||||
|
arbitraryBytesBuffer.set(_nonce, 112)
|
||||||
|
arbitraryBytesForSigningBuffer.set(_nonce, 112)
|
||||||
|
|
||||||
|
const signature = nacl.sign.detached(arbitraryBytesForSigningBuffer, keyPair.privateKey)
|
||||||
|
|
||||||
|
const signedBytes = utils.appendBuffer(arbitraryBytesBuffer, signature)
|
||||||
|
|
||||||
|
return signedBytes
|
||||||
|
}
|
||||||
|
|
||||||
|
export default signArbitrary
|
Loading…
x
Reference in New Issue
Block a user