From b1e4c6667009b1fbc682a862df4e8083b16ef257 Mon Sep 17 00:00:00 2001 From: Sergey Chystiakov Date: Wed, 3 Jun 2026 23:32:27 +0200 Subject: [PATCH 1/2] test: non-utxo input handle --- packages/sdk/tests/transfer.test.ts | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/packages/sdk/tests/transfer.test.ts b/packages/sdk/tests/transfer.test.ts index a5327ad..2d2e9b1 100644 --- a/packages/sdk/tests/transfer.test.ts +++ b/packages/sdk/tests/transfer.test.ts @@ -164,6 +164,40 @@ test('fails transfer if not enough utxo', async () => { })).rejects.toThrow('Not enough coin UTXOs'); }); +test('transfer ignores account entries without utxo', async () => { + fetchMock.mockIf('https://mojito-api.mintlayer.org/mintlayer/testnet/batch', async () => { + return { + body: JSON.stringify({ + results: [[ + { + input: { + input_type: 'Account', + account_type: 'DelegationBalance', + amount: { + atoms: '100000000000', + decimal: '1', + }, + delegation_id: 'tde1q9gndm5e2d6w33xtm26gppaj29qh52gnxwucnqlq', + nonce: 1, + }, + }, + ...utxos, + ]], + }), + }; + }); + + const client = await Client.create({ network: 'testnet', autoRestore: false }); + await client.connect(); + + const result = await client.transfer({ + to: 'tmt1q9mfg7d6ul2nt5yhmm7l7r6wwyqkd822rymr83uc', + amount: 10, + }); + + expect(result).toBe('signed-transaction'); +}); + test('transfer transfer fee precise', async () => { const client = await Client.create({ network: 'testnet', autoRestore: false }); From eb3602f52341c42388c4c66973fc8af4687b9293 Mon Sep 17 00:00:00 2001 From: Sergey Chystiakov Date: Wed, 3 Jun 2026 23:34:31 +0200 Subject: [PATCH 2/2] fix: handle non-utxo inputs --- packages/sdk/src/mintlayer-connect-sdk.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/sdk/src/mintlayer-connect-sdk.ts b/packages/sdk/src/mintlayer-connect-sdk.ts index 772577a..3f7502b 100644 --- a/packages/sdk/src/mintlayer-connect-sdk.ts +++ b/packages/sdk/src/mintlayer-connect-sdk.ts @@ -2449,6 +2449,10 @@ class Client { })) : []; const utxos: UtxoEntry[] = data_utxos.filter((item: UtxoEntry) => { + if (!item.utxo) { + return false; + } + // filter out UTXO with type htlc, they have to be added manually if (item.utxo.type === 'Htlc') { return false;