Changeset View
Changeset View
Standalone View
Standalone View
web/cashtab/src/utils/__tests__/txBuilder.test.js
/* eslint-disable no-native-reassign */ | /* eslint-disable no-native-reassign */ | ||||
import BigNumber from 'bignumber.js'; | import BigNumber from 'bignumber.js'; | ||||
import { currency } from 'components/Common/Ticker.js'; | import { currency } from 'components/Common/Ticker.js'; | ||||
import sendBCHMock from 'hooks/__mocks__/sendBCH'; | import sendBCHMock from 'hooks/__mocks__/sendBCH'; | ||||
import { | import { | ||||
generateTxInput, | generateTxInput, | ||||
generateTxOutput, | generateTxOutput, | ||||
signAndBuildTx, | signAndBuildTx, | ||||
} from 'utils/cashMethods'; | } from 'utils/cashMethods'; | ||||
import { | import { | ||||
mockOnetoOneXecInputOnlyTxBuilderObj, | mockOnetoOneXecInputOnlyTxBuilderObj, | ||||
mockOnetoOneXecInputAndOutputOnlyTxBuilderObj, | mockOnetoOneXecInputAndOutputOnlyTxBuilderObj, | ||||
mockOnetoOneXecInputOutputSignedRawHex, | mockOnetoOneXecInputOutputSignedRawHex, | ||||
} from 'utils/__mocks__/mockTxBuilderObj'; | } from 'utils/__mocks__/mockTxBuilderObj'; | ||||
import BCHJS from '@psf/bch-js'; | |||||
import TransactionBuilder from 'utils/txBuilder'; | import TransactionBuilder from 'utils/txBuilder'; | ||||
it(`Transaction Builder returns correct builder object with valid input and output params`, () => { | it(`Transaction Builder returns correct builder object with valid input and output params`, () => { | ||||
const BCH = new BCHJS(); | |||||
const isOneToMany = false; | const isOneToMany = false; | ||||
let txBuilder = new TransactionBuilder(); | let txBuilder = new TransactionBuilder(); | ||||
const { utxos, destinationAddress, wallet } = sendBCHMock; | const { utxos, destinationAddress, wallet } = sendBCHMock; | ||||
const satoshisToSend = new BigNumber(600); | const satoshisToSend = new BigNumber(600); | ||||
const txInputObj = generateTxInput( | const txInputObj = generateTxInput( | ||||
isOneToMany, | isOneToMany, | ||||
utxos, | utxos, | ||||
Show All 19 Lines | txBuilder = generateTxOutput( | ||||
txInputObj.txFee, | txInputObj.txFee, | ||||
txBuilder, | txBuilder, | ||||
); | ); | ||||
expect(JSON.stringify(txBuilder)).toStrictEqual( | expect(JSON.stringify(txBuilder)).toStrictEqual( | ||||
JSON.stringify(mockOnetoOneXecInputAndOutputOnlyTxBuilderObj), | JSON.stringify(mockOnetoOneXecInputAndOutputOnlyTxBuilderObj), | ||||
); | ); | ||||
// verify txBuilder after signing and building tx | // verify txBuilder after signing and building tx | ||||
const rawTxHex = signAndBuildTx( | const rawTxHex = signAndBuildTx(txInputObj.inputUtxos, txBuilder, wallet); | ||||
BCH, | |||||
txInputObj.inputUtxos, | |||||
txBuilder, | |||||
wallet, | |||||
); | |||||
expect(JSON.stringify(rawTxHex)).toStrictEqual( | expect(JSON.stringify(rawTxHex)).toStrictEqual( | ||||
JSON.stringify(mockOnetoOneXecInputOutputSignedRawHex), | JSON.stringify(mockOnetoOneXecInputOutputSignedRawHex), | ||||
); | ); | ||||
}); | }); |