Skip to content

Commit 7cf4410

Browse files
refactor(abstract-utxo): make AbstractUtxoCoinWallet an interface
Issue: BTC-1450
1 parent bded43c commit 7cf4410

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed
Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BitGoBase, IBaseCoin, Wallet, WalletData } from '@bitgo/sdk-core';
1+
import { Wallet, WalletData } from '@bitgo/sdk-core';
22

33
// parseTransactions' return type makes use of WalletData's type but with customChangeKeySignatures as required.
44
export interface AbstractUtxoCoinWalletData extends WalletData {
@@ -9,10 +9,6 @@ export interface AbstractUtxoCoinWalletData extends WalletData {
99
};
1010
}
1111

12-
export class AbstractUtxoCoinWallet extends Wallet {
13-
public _wallet: AbstractUtxoCoinWalletData;
14-
15-
constructor(bitgo: BitGoBase, baseCoin: IBaseCoin, walletData: any) {
16-
super(bitgo, baseCoin, walletData);
17-
}
12+
export interface AbstractUtxoCoinWallet extends Wallet {
13+
_wallet: AbstractUtxoCoinWalletData;
1814
}

modules/bitgo/test/v2/unit/coins/abstractUtxoCoin.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as utxolib from '@bitgo/utxo-lib';
22
import * as should from 'should';
33
import * as sinon from 'sinon';
4-
import { UnexpectedAddressError, VerificationOptions } from '@bitgo/sdk-core';
4+
import { Wallet, UnexpectedAddressError, VerificationOptions } from '@bitgo/sdk-core';
55
import { TestBitGo } from '@bitgo/sdk-test';
66
import { BitGo } from '../../../../src/bitgo';
77
import {
@@ -31,7 +31,7 @@ describe('Abstract UTXO Coin:', () => {
3131
},
3232
};
3333

34-
const wallet = sinon.createStubInstance(AbstractUtxoCoinWallet, {
34+
const wallet = sinon.createStubInstance(Wallet, {
3535
migratedFrom: 'v1_wallet_base_address',
3636
});
3737

@@ -60,7 +60,7 @@ describe('Abstract UTXO Coin:', () => {
6060
const parsedTransaction = await coin.parseTransaction({
6161
txParams,
6262
txPrebuild: { txHex: '' },
63-
wallet: wallet as any,
63+
wallet: wallet as unknown as AbstractUtxoCoinWallet,
6464
verification,
6565
});
6666

@@ -177,8 +177,8 @@ describe('Abstract UTXO Coin:', () => {
177177
});
178178

179179
it('should consider addresses derived from the custom change keys as internal spends', async () => {
180-
const signedSendingWallet = sinon.createStubInstance(AbstractUtxoCoinWallet, stubData.signedSendingWallet as any);
181-
const changeWallet = sinon.createStubInstance(AbstractUtxoCoinWallet, stubData.changeWallet as any);
180+
const signedSendingWallet = sinon.createStubInstance(Wallet, stubData.signedSendingWallet as any);
181+
const changeWallet = sinon.createStubInstance(Wallet, stubData.changeWallet as any);
182182

183183
sinon.stub(coin, 'keychains').returns({
184184
get: sinon.stub().callsFake(({ id }) => {
@@ -319,14 +319,11 @@ describe('Abstract UTXO Coin:', () => {
319319
},
320320
};
321321

322-
const unsignedSendingWallet = sinon.createStubInstance(
323-
AbstractUtxoCoinWallet,
324-
stubData.unsignedSendingWallet as any
325-
);
322+
const unsignedSendingWallet = sinon.createStubInstance(Wallet, stubData.unsignedSendingWallet as any);
326323

327324
it('should fail if the user private key cannot be verified to match the user public key', async () => {
328325
sinon.stub(coin, 'parseTransaction').resolves(stubData.parseTransactionData.badKey as any);
329-
const verifyWallet = sinon.createStubInstance(AbstractUtxoCoinWallet, {});
326+
const verifyWallet = sinon.createStubInstance(Wallet, {});
330327

331328
await coin
332329
.verifyTransaction({

0 commit comments

Comments
 (0)