@coolwallet/kas
Version:
65 lines (57 loc) • 5 kB
text/typescript
import { calculateSigHash, getTransferArgumentBuffer, getUtxoArgumentBuffer, SIGHASH_ALL } from '../hash';
import {
testMaxTransaction,
testSendToV1AddressTransaction,
testSendToV8AddressTransaction,
testTransaction,
} from './testData';
describe('Test KAS SDK', () => {
it('Test getTransferArgument with v0 output address', async () => {
console.log('transaction: ' + JSON.stringify(testTransaction, null, 2));
const transferArgumentBuf = await getTransferArgumentBuffer(testTransaction);
expect(transferArgumentBuf.toString('hex')).toMatchInlineSnapshot(
`"0000b9040cd6c2cc517e2684744b61b9defaeb670312759d8a778007ab72c5d06e020f99135614633e507969d12522c80f967cff6ebc0436863e02ee42b2b66556fc8523b0471bcbea04575ccaa635eef9f9114f2890bda54367e5ff8caa3878bf820000000013006800000a3da6e8c7a8795440e60e4662686bc17cd965780095604c85d8d137e0f48079e803000000000000000022000000000000000122c8668c0000000000165472616e73616374696f6e5369676e696e6748617368328000002c8001b207800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"`
);
});
it('Test getTransferArgument with v1 output address', async () => {
console.log('transaction: ' + JSON.stringify(testSendToV1AddressTransaction, null, 2));
const transferArgumentBuf = await getTransferArgumentBuffer(testSendToV1AddressTransaction);
expect(transferArgumentBuf.toString('hex')).toMatchInlineSnapshot(
`"0000b9040cd6c2cc517e2684744b61b9defaeb670312759d8a778007ab72c5d06e020f99135614633e507969d12522c80f967cff6ebc0436863e02ee42b2b66556fc8523b0471bcbea04575ccaa635eef9f9114f2890bda54367e5ff8caa3878bf82000000001300690103b1b89146cea93cf8bec6fa3d4d79c26586ac09a1e8ebf37aa5904629f63c857de803000000000000000023000000000000000122c8668c0000000000165472616e73616374696f6e5369676e696e6748617368328000002c8001b207800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"`
);
});
it('Test getTransferArgument with v8 output address', async () => {
console.log('transaction: ' + JSON.stringify(testSendToV8AddressTransaction, null, 2));
const transferArgumentBuf = await getTransferArgumentBuffer(testSendToV8AddressTransaction);
expect(transferArgumentBuf.toString('hex')).toMatchInlineSnapshot(
`"0000b9040cd6c2cc517e2684744b61b9defaeb670312759d8a778007ab72c5d06e020f99135614633e507969d12522c80f967cff6ebc0436863e02ee42b2b66556fc8523b0471bcbea04575ccaa635eef9f9114f2890bda54367e5ff8caa3878bf82000000001300690200b815f3841cfb87b8fd834b2c1cba9a8790fb5f568cc7b3a377acd71350d08691e803000000000000000023000000000000000122c8668c0000000000165472616e73616374696f6e5369676e696e6748617368328000002c8001b207800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"`
);
});
it('Test getTransferArgument for max', async () => {
console.log('transaction: ' + JSON.stringify(testMaxTransaction, null, 2));
const transferArgumentBuf = await getTransferArgumentBuffer(testMaxTransaction);
expect(transferArgumentBuf.toString('hex')).toMatchInlineSnapshot(
`"0000b9040cd6c2cc517e2684744b61b9defaeb670312759d8a778007ab72c5d06e020f99135614633e507969d12522c80f967cff6ebc0436863e02ee42b2b66556fc8523b0471bcbea04575ccaa635eef9f9114f2890bda54367e5ff8caa3878bf820000000013003400000a3da6e8c7a8795440e60e4662686bc17cd965780095604c85d8d137e0f4807916e8668c000000000000220000000000000000000000000000000000165472616e73616374696f6e5369676e696e6748617368000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"`
);
});
it('Test getUtxoArgument', async () => {
const index = 0;
const utxo = testTransaction.utxos[index];
const input = testTransaction.inputs[index];
console.log('index: ' + index);
console.log('utxo: ' + JSON.stringify(utxo, null, 2));
console.log('input: ' + JSON.stringify(utxo, null, 2));
const utxoArgumentBuf = await getUtxoArgumentBuffer(input, utxo);
const utxoArgument = utxoArgumentBuf.toString('hex');
expect(utxoArgument).toMatchInlineSnapshot(
`"15328000002c8001b20780000000000000000000000021aa1aff85fc054381f8536d1ab8dbe68f1673a7c67b7ad7816431603c58d32e010000000000220000000000000020b1b89146cea93cf8bec6fa3d4d79c26586ac09a1e8ebf37aa5904629f63c857daccef3668c00000000000000000000000001"`
);
});
it('Test before sign schnorr', async () => {
testTransaction.inputs.forEach((_input, index) => {
const sigHashBuffer = calculateSigHash(testTransaction, SIGHASH_ALL, index, {});
const sigHash = sigHashBuffer.toString('hex');
expect(sigHash).toMatchInlineSnapshot(`"5f0fff866d90ff84dbad16155f93fc02811ac97b033c50123c27af46d715ba7d"`);
});
});
});