import { transactionTypes as transactions } from './transactions/transactions.js' import Base58 from './deps/Base58.js' import { request } from './fetch-request' import signChat from './transactions/chat/signChat.js' import signArbitrary from './transactions/arbitrary/signArbitrary.js' import signArbitraryWithFee from './transactions/arbitrary/signArbitraryWithFee.js' export const createTransaction = (type, keyPair, params) => { const tx = new transactions[type]() tx.keyPair = keyPair Object.keys(params).forEach(param => { tx[param] = params[param] }) return tx } // Compute Chat Nonce export const computeChatNonce = bytes => request('/chat/compute', { method: 'POST', body: Base58.encode(bytes) }) // Sign Chat Transactions export const signChatTransaction = (chatBytes, nonce, keyPair) => { return signChat(chatBytes, nonce, keyPair) } // Sign Arbitrary Transactions export const signArbitraryTransaction = (arbitraryBytesBase58, arbitraryBytesForSigningBase58, nonce, keyPair) => { return signArbitrary(arbitraryBytesBase58, arbitraryBytesForSigningBase58, nonce, keyPair) } export const signArbitraryWithFeeTransaction = (arbitraryBytesBase58, arbitraryBytesForSigningBase58, keyPair) => { return signArbitraryWithFee(arbitraryBytesBase58, arbitraryBytesForSigningBase58, keyPair) } // Process Transactions export const processTransaction = bytes => request('/transactions/process', { method: 'POST', body: Base58.encode(bytes) }) export const processTransactionVersion2 = bytes => request('/transactions/process?apiVersion=2', { method: 'POST', body: Base58.encode(bytes) })