Skip to content

Commit

Permalink
fix: add new test for sign psbt
Browse files Browse the repository at this point in the history
  • Loading branch information
fbwoolf committed Mar 21, 2024
1 parent 80e70f4 commit 3d7ef5f
Showing 1 changed file with 31 additions and 3 deletions.
34 changes: 31 additions & 3 deletions tests/specs/rpc-sign-psbt/sign-psbt.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,18 @@ import { test } from '../../fixtures/fixtures';
const unsignedPsbtHex =
'70736274ff01007b02000000020c9199d8079e6fe8a6c78ac9c4e0311c97c9fcdc8b5586c56d191b6d98c0035e0000000000ffffffff087168f5b929b37a27704d338aa9d0d3508a819f879c244ba12128f04a5b37ef0000000000ffffffff01c800000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d000000000001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d0001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d0000';

const unsignedPsbtHexWithInputIndexGreaterThanOutputIndexes =
'70736274ff01007b02000000020c9199d8079e6fe8a6c78ac9c4e0311c97c9fcdc8b5586c56d191b6d98c0035e0000000000ffffffff087168f5b929b37a27704d338aa9d0d3508a819f879c244ba12128f04a5b37ef0200000000ffffffff01c800000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d000000000001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d0001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d0000';

const signedAllPsbt =
'70736274ff01007b02000000020c9199d8079e6fe8a6c78ac9c4e0311c97c9fcdc8b5586c56d191b6d98c0035e0000000000ffffffff087168f5b929b37a27704d338aa9d0d3508a819f879c244ba12128f04a5b37ef0000000000ffffffff01c800000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d000000000001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d220203fe21e3444109e30ff7d19da0f530c344cad2e35fbee89afb2413858e4a9d7aa5483045022100ea4c2a68f1032102ad2c73504096f5dbd63d242ccce8000aa9db1a0ce4c4c59402204269fdd3536697329ed9bffcf67e3584d2d3426f84bb004fe467286abe7b02d8010001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d220203fe21e3444109e30ff7d19da0f530c344cad2e35fbee89afb2413858e4a9d7aa54730440220014950184114126c0cfeef37c87fff342d297c33190fcbd3fb9bf7c960d2bbe3022057554115f480ae984b12d919a505b1f52cfa89e49cd25f25e877db03bc153a77010000';

const signedOnlyIndexZeroPsbt =
'70736274ff01007b02000000020c9199d8079e6fe8a6c78ac9c4e0311c97c9fcdc8b5586c56d191b6d98c0035e0000000000ffffffff087168f5b929b37a27704d338aa9d0d3508a819f879c244ba12128f04a5b37ef0000000000ffffffff01c800000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d000000000001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d220203fe21e3444109e30ff7d19da0f530c344cad2e35fbee89afb2413858e4a9d7aa5483045022100ea4c2a68f1032102ad2c73504096f5dbd63d242ccce8000aa9db1a0ce4c4c59402204269fdd3536697329ed9bffcf67e3584d2d3426f84bb004fe467286abe7b02d8010001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d0000';

const signedPsbtHexWithInputIndexGreaterThanOutputIndexes =
'70736274ff01007b02000000020c9199d8079e6fe8a6c78ac9c4e0311c97c9fcdc8b5586c56d191b6d98c0035e0000000000ffffffff087168f5b929b37a27704d338aa9d0d3508a819f879c244ba12128f04a5b37ef0200000000ffffffff01c800000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d000000000001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d220203fe21e3444109e30ff7d19da0f530c344cad2e35fbee89afb2413858e4a9d7aa5483045022100e0f1403f10a9f32dfa03423a199b20b3337dd52a53a115098a29f502cc0fbec1022032e91af46e1b1f5a80fa3a4ff4418d4e2091cde9c9978df591497971b7c0df8f010001011f6400000000000000160014a8113965cee4d5ffa2d9996a204866a58200131d220203fe21e3444109e30ff7d19da0f530c344cad2e35fbee89afb2413858e4a9d7aa5483045022100b8a18f8c42ec2b232e24c86cff8068f40a701f6929d2dfc7a6f74932d9ad012702202505e80b68bc334cfd86accb2b854e238455860dd89dd97968cfaac372eaa4a0010000';

test.describe('Sign PSBT', () => {
test.beforeEach(async ({ extensionId, globalPage, onboardingPage, page }) => {
await globalPage.setupAndUseApiCalls(extensionId);
Expand Down Expand Up @@ -46,6 +52,11 @@ test.describe('Sign PSBT', () => {
network: WalletDefaultNetworkConfigurationIds.testnet,
};

const signAllParamsWithInputIndexGreaterThanOutputIndexes = {
hex: unsignedPsbtHexWithInputIndexGreaterThanOutputIndexes,
network: WalletDefaultNetworkConfigurationIds.testnet,
};

const signAtIndexParams = {
hex: unsignedPsbtHex,
network: WalletDefaultNetworkConfigurationIds.testnet,
Expand All @@ -56,9 +67,9 @@ test.describe('Sign PSBT', () => {
return async (params: SignPsbtRequestParams & { broadcast?: boolean }) =>
page.evaluate(
async params =>
(window as any).LeatherProvider.request('signPsbt', { ...params }).catch(
(e: unknown) => e
),
(window as any).LeatherProvider.request('signPsbt', {
...params,
}).catch((e: unknown) => e),
{ ...params }
);
}
Expand All @@ -77,6 +88,23 @@ test.describe('Sign PSBT', () => {
});
});

test('that all inputs are signed even if input index is greater than output indexes', async ({
page,
context,
}) => {
const [result] = await Promise.all([
initiatePsbtSigning(page)(signAllParamsWithInputIndexGreaterThanOutputIndexes),
clickActionButton(context)('Confirm'),
]);

delete result.id;

test.expect(result).toEqual({
jsonrpc: '2.0',
result: { hex: signedPsbtHexWithInputIndexGreaterThanOutputIndexes },
});
});

test('that only requested inputs are signed', async ({ page, context }) => {
const [result] = await Promise.all([
initiatePsbtSigning(page)(signAtIndexParams),
Expand Down

0 comments on commit 3d7ef5f

Please sign in to comment.