@coolwallet/kas
Version:
130 lines (128 loc) • 3.78 kB
text/typescript
import { TxData, Input, Output, Change, ScriptType } from '../../config/types';
import { Transaction } from '../../transaction';
// input
export const testNormalInput: Input = {
preTxHash: '21aa1aff85fc054381f8536d1ab8dbe68f1673a7c67b7ad7816431603c58d32e',
preIndex: 1,
pubkeyBuf: Buffer.from('b1b89146cea93cf8bec6fa3d4d79c26586ac09a1e8ebf37aa5904629f63c857d', 'hex'),
purposeIndex: 44,
preValue: '2355557326',
addressIndex: 0,
scriptType: ScriptType.P2PK_SCHNORR,
};
export const testInputWithInvalidInputPublicKey = {
...testNormalInput,
pubkeyBuf: Buffer.alloc(0),
};
export const testInputWithoutTxId = {
...testNormalInput,
preTxHash: '',
};
export const testInputWithZeroAmount = {
...testNormalInput,
preValue: '0',
};
// output
export const testNormalOutput: Output = {
address: 'kaspa:qq9rmfhgc758j4zquc8yvcngd0qhekt90qqf2czvshvdzdlq7jq8jphmvr028',
value: '1000',
};
export const testMaxOutput: Output = {
address: 'kaspa:qq9rmfhgc758j4zquc8yvcngd0qhekt90qqf2czvshvdzdlq7jq8jphmvr028',
value: '2355554326',
};
export const testOutputWithInvalidAddress = {
...testNormalOutput,
address: 'kaspa:qq9rmfhgc758j4zyvcngd0qhekt90qqf2czvshvdzdlq7jq8jphmvr028',
};
export const testOutputWithZeroAmount = {
...testNormalOutput,
value: '0',
};
export const testOutputValueWithTooManyDecimals = {
...testNormalOutput,
value: '49991291000000000',
};
export const testOutputValueLessThanDust = {
...testNormalOutput,
value: '546',
};
export const testOutputValueMax = {
...testNormalOutput,
value: '2355547146',
};
export const testOutputTooLargeValue = {
...testNormalOutput,
value: '2355580000',
};
export const testNormalV1Output: Output = {
address: 'kaspa:qypmrwy3gm82j08chmr0502d08pxtp4vpxs736ln02jeq33f7c7g2lgk5a8egc4',
value: '1000',
};
export const testNormalV8Output: Output = {
address: 'kaspa:pzuptuuyrnac0w8asd9jc896n2rep76l26xv0varw7kdwy6s6zrfzvsukssy2',
value: '1000',
};
// change
export const testNormalChange: Change = {
value: '2355546146',
pubkeyBuf: Buffer.from('b1b89146cea93cf8bec6fa3d4d79c26586ac09a1e8ebf37aa5904629f63c857d', 'hex'),
purposeIndex: 44,
addressIndex: 0,
scriptType: ScriptType.P2PK_SCHNORR,
};
export const testInsufficientFeeChange: Change = {
...testNormalChange,
value: '2355555326',
};
export const testTooLargeChange: Change = {
...testNormalChange,
value: '1978668132840',
};
export const testInvalidChange: Change = {
...testNormalChange,
value: '-32854',
};
// txData
export const testTxData: TxData = {
version: 0,
inputs: [testNormalInput],
output: testNormalOutput,
change: testNormalChange,
dustSize: '600',
};
export const testTransaction: Transaction = Transaction.fromTxData(testTxData);
export const testMaxTxData: TxData = {
version: 0,
inputs: [testNormalInput],
output: testMaxOutput,
dustSize: '600',
};
export const testMaxTransaction: Transaction = Transaction.fromTxData(testMaxTxData);
export const testSendV1TxData: TxData = {
version: 0,
inputs: [testNormalInput],
output: testNormalV1Output,
change: testNormalChange,
dustSize: '600',
};
export const testSendToV1AddressTransaction: Transaction = Transaction.fromTxData(testSendV1TxData);
export const testSendToV8TxData: TxData = {
version: 0,
inputs: [testNormalInput],
output: testNormalV8Output,
change: testNormalChange,
dustSize: '600',
};
export const testSendToV8AddressTransaction: Transaction = Transaction.fromTxData(testSendToV8TxData);
const testTooLargeInputs = [];
for (let i = 0; i < 840; i++) {
testTooLargeInputs.push(testNormalInput);
}
export const testTxDataWithLargeInputs: TxData = {
...testTxData,
inputs: testTooLargeInputs,
output: testNormalOutput,
change: testTooLargeChange,
dustSize: '600',
};