Skip to content

Commit e9982fe

Browse files
committed
chore: re-use generic mpc address verfn helper
TICKET: WP-6378
1 parent 78026ba commit e9982fe

File tree

3 files changed

+14
-33
lines changed

3 files changed

+14
-33
lines changed

modules/sdk-coin-iota/src/iota.ts

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ import {
1111
MultisigType,
1212
multisigTypes,
1313
MPCAlgorithm,
14-
InvalidAddressError,
15-
EDDSAMethods,
1614
TssVerifyAddressOptions,
1715
MPCType,
16+
verifyEddsaTssWalletAddress,
1817
} from '@bitgo/sdk-core';
1918
import { BaseCoin as StaticsBaseCoin, CoinFamily } from '@bitgo/statics';
2019
import utils from './lib/utils';
@@ -92,29 +91,11 @@ export class Iota extends BaseCoin {
9291
* @param params
9392
*/
9493
async isWalletAddress(params: TssVerifyAddressOptions): Promise<boolean> {
95-
const { keychains, address, index } = params;
96-
97-
if (!this.isValidAddress(address)) {
98-
throw new InvalidAddressError(`invalid address: ${address}`);
99-
}
100-
101-
if (!keychains) {
102-
throw new Error('missing required param keychains');
103-
}
104-
105-
for (const keychain of keychains) {
106-
const MPC = await EDDSAMethods.getInitializedMpcInstance();
107-
const commonKeychain = keychain.commonKeychain as string;
108-
109-
const derivationPath = 'm/' + index;
110-
const derivedPublicKey = MPC.deriveUnhardened(commonKeychain, derivationPath).slice(0, 64);
111-
const expectedAddress = utils.getAddressFromPublicKey(derivedPublicKey);
112-
113-
if (address !== expectedAddress) {
114-
return false;
115-
}
116-
}
117-
return true;
94+
return verifyEddsaTssWalletAddress(
95+
params,
96+
(address) => this.isValidAddress(address),
97+
(publicKey) => utils.getAddressFromPublicKey(publicKey)
98+
);
11899
}
119100

120101
/**

modules/sdk-coin-sui/src/sui.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
EDDSAMethods,
88
EDDSAMethodTypes,
99
Environments,
10-
InvalidAddressError,
1110
KeyPair,
1211
MPCAlgorithm,
1312
MPCRecoveryOptions,
@@ -30,6 +29,7 @@ import {
3029
MultisigType,
3130
multisigTypes,
3231
AuditDecryptedKeyParams,
32+
verifyEddsaTssWalletAddress,
3333
} from '@bitgo/sdk-core';
3434
import { BaseCoin as StaticsBaseCoin, BaseNetwork, coins, SuiCoin } from '@bitgo/statics';
3535
import BigNumber from 'bignumber.js';
@@ -188,12 +188,11 @@ export class Sui extends BaseCoin {
188188
}
189189

190190
async isWalletAddress(params: TssVerifyAddressOptions): Promise<boolean> {
191-
const { address: newAddress } = params;
192-
193-
if (!this.isValidAddress(newAddress)) {
194-
throw new InvalidAddressError(`invalid address: ${newAddress}`);
195-
}
196-
return true;
191+
return verifyEddsaTssWalletAddress(
192+
params,
193+
(address) => this.isValidAddress(address),
194+
(publicKey) => this.getAddressFromPublicKey(publicKey)
195+
);
197196
}
198197

199198
async parseTransaction(params: SuiParseTransactionOptions): Promise<SuiParsedTransaction> {

modules/sdk-core/src/bitgo/utils/tss/addressVerification.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { InvalidAddressError, TssVerifyAddressOptions } from '../../baseCoin/iBaseCoin';
1+
import { TssVerifyAddressOptions } from '../../baseCoin/iBaseCoin';
2+
import { InvalidAddressError } from '../../errors';
23
import { EDDSAMethods } from '../../tss';
34

45
/**

0 commit comments

Comments
 (0)