Skip to content

Commit db92c38

Browse files
committed
refactor: renames types and made function naming more clear
TICKET: WP-6461
1 parent 74440e7 commit db92c38

File tree

1 file changed

+27
-35
lines changed

1 file changed

+27
-35
lines changed

modules/abstract-eth/src/abstractEthLikeNewCoins.ts

Lines changed: 27 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ export interface KeychainWithEthAddress {
424424
* BIP32 wallet base address verification options
425425
* Supports V1, V2, and V4 wallets that use ethAddress-based derivation
426426
*/
427-
export interface VerifyBip32BaseAddressOptions extends VerifyEthAddressOptions {
427+
export interface VerifyContractBaseAddressOptions extends VerifyEthAddressOptions {
428428
walletVersion: number;
429429
keychains: KeychainWithEthAddress[];
430430
}
@@ -433,9 +433,9 @@ export interface VerifyBip32BaseAddressOptions extends VerifyEthAddressOptions {
433433
* Type guard to check if params are for BIP32 base address verification (V1, V2, V4)
434434
* These wallet versions use ethAddress for address derivation
435435
*/
436-
export function isVerifyBip32BaseAddressOptions(
436+
export function isVerifyContractBaseAddressOptions(
437437
params: VerifyEthAddressOptions | TssVerifyEthAddressOptions
438-
): params is VerifyBip32BaseAddressOptions {
438+
): params is VerifyContractBaseAddressOptions {
439439
return (
440440
(params.walletVersion === 1 || params.walletVersion === 2 || params.walletVersion === 4) &&
441441
'keychains' in params &&
@@ -2770,16 +2770,16 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
27702770
* Get forwarder factory and implementation addresses for deposit address verification.
27712771
* Forwarders are smart contracts that forward funds to the base wallet address.
27722772
*
2773-
* @param {number | undefined} walletVersion - The wallet version
2773+
* @param {number | undefined} forwarderVersion - The wallet version
27742774
* @returns {object} Factory and implementation addresses for forwarders
27752775
*/
2776-
getForwarderFactoryAddressesAndForwarderImplementationAddress(walletVersion: number | undefined): {
2776+
getForwarderFactoryAddressesAndForwarderImplementationAddress(forwarderVersion: number | undefined): {
27772777
forwarderFactoryAddress: string;
27782778
forwarderImplementationAddress: string;
27792779
} {
27802780
const ethNetwork = this.getNetwork();
27812781

2782-
switch (walletVersion) {
2782+
switch (forwarderVersion) {
27832783
case 2:
27842784
if (!ethNetwork?.walletV2ForwarderFactoryAddress || !ethNetwork?.walletV2ForwarderImplementationAddress) {
27852785
throw new Error('Wallet v2 factory addresses not configured for this network');
@@ -2791,7 +2791,7 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
27912791
case 4:
27922792
case 5:
27932793
if (!ethNetwork?.walletV4ForwarderFactoryAddress || !ethNetwork?.walletV4ForwarderImplementationAddress) {
2794-
throw new Error(`Forwarder v${walletVersion} factory addresses not configured for this network`);
2794+
throw new Error(`Forwarder v${forwarderVersion} factory addresses not configured for this network`);
27952795
}
27962796
return {
27972797
forwarderFactoryAddress: ethNetwork.walletV4ForwarderFactoryAddress,
@@ -2817,7 +2817,7 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
28172817
* @returns {object} Factory and implementation addresses for the wallet base address
28182818
* @throws {Error} if wallet version addresses are not configured
28192819
*/
2820-
getWalletBaseAddressFactoryAddressesAndImplementationAddress(walletVersion: number): {
2820+
getWalletAddressFactoryAddressesAndImplementationAddress(walletVersion: number): {
28212821
walletFactoryAddress: string;
28222822
walletImplementationAddress: string;
28232823
} {
@@ -2872,10 +2872,7 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
28722872
* @param {VerifyBip32BaseAddressOptions} params - Verification parameters
28732873
* @returns {object} Expected and actual addresses for comparison
28742874
*/
2875-
private verifyBip32BaseAddress(params: VerifyBip32BaseAddressOptions): {
2876-
expectedAddress: string;
2877-
actualAddress: string;
2878-
} {
2875+
private verifyCreate2BaseAddress(params: VerifyContractBaseAddressOptions): boolean {
28792876
const { address, coinSpecific, keychains, walletVersion } = params;
28802877

28812878
if (!coinSpecific.salt) {
@@ -2884,7 +2881,7 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
28842881

28852882
// Get wallet factory and implementation addresses for the wallet version
28862883
const { walletFactoryAddress, walletImplementationAddress } =
2887-
this.getWalletBaseAddressFactoryAddressesAndImplementationAddress(walletVersion);
2884+
this.getWalletAddressFactoryAddressesAndImplementationAddress(walletVersion);
28882885
const initcode = getProxyInitcode(walletImplementationAddress);
28892886

28902887
// Convert the wallet salt to a buffer, pad to 32 bytes
@@ -2903,7 +2900,12 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
29032900
);
29042901

29052902
const expectedAddress = calculateForwarderV1Address(walletFactoryAddress, calculationSalt, initcode);
2906-
return { expectedAddress, actualAddress: address };
2903+
2904+
if (expectedAddress !== address) {
2905+
throw new UnexpectedAddressError(`address validation failure: expected ${expectedAddress} but got ${address}`);
2906+
}
2907+
2908+
return true;
29072909
}
29082910

29092911
/**
@@ -2914,14 +2916,11 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
29142916
* @param {number} forwarderVersion - The forwarder version
29152917
* @returns {object} Expected and actual addresses for comparison
29162918
*/
2917-
private verifyForwarderAddress(
2918-
params: VerifyEthAddressOptions,
2919-
forwarderVersion: number
2920-
): { expectedAddress: string; actualAddress: string } {
2919+
private verifyForwarderAddress(params: VerifyEthAddressOptions, forwarderVersion: number): boolean {
29212920
const { address, coinSpecific, baseAddress } = params;
29222921

29232922
const { forwarderFactoryAddress, forwarderImplementationAddress } =
2924-
this.getForwarderFactoryAddressesAndForwarderImplementationAddress(params.walletVersion);
2923+
this.getForwarderFactoryAddressesAndForwarderImplementationAddress(forwarderVersion);
29252924
const initcode = getProxyInitcode(forwarderImplementationAddress);
29262925
const saltBuffer = this.createSaltBuffer(coinSpecific.salt || '');
29272926

@@ -2935,7 +2934,12 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
29352934
);
29362935

29372936
const expectedAddress = calculateForwarderV1Address(forwarderFactoryAddress, calculationSalt, initcode);
2938-
return { expectedAddress, actualAddress: address };
2937+
2938+
if (expectedAddress !== address) {
2939+
throw new UnexpectedAddressError(`address validation failure: expected ${expectedAddress} but got ${address}`);
2940+
}
2941+
2942+
return true;
29392943
}
29402944

29412945
/**
@@ -3000,25 +3004,13 @@ export abstract class AbstractEthLikeNewCoins extends AbstractEthLikeCoin {
30003004
}
30013005

30023006
// BIP32 wallet base address verification (V1, V2, V4)
3003-
if (isVerifyingBaseAddress && isVerifyBip32BaseAddressOptions(params)) {
3004-
const { expectedAddress, actualAddress } = this.verifyBip32BaseAddress(params);
3005-
3006-
if (expectedAddress !== actualAddress) {
3007-
throw new UnexpectedAddressError(`address validation failure: expected ${expectedAddress} but got ${address}`);
3008-
}
3009-
3010-
return true;
3007+
if (isVerifyingBaseAddress && isVerifyContractBaseAddressOptions(params)) {
3008+
return this.verifyCreate2BaseAddress(params);
30113009
}
30123010

30133011
// Forwarder receive address verification (deposit addresses)
30143012
if (!isVerifyingBaseAddress) {
3015-
const { expectedAddress, actualAddress } = this.verifyForwarderAddress(params, forwarderVersion);
3016-
3017-
if (expectedAddress !== actualAddress) {
3018-
throw new UnexpectedAddressError(`address validation failure: expected ${expectedAddress} but got ${address}`);
3019-
}
3020-
3021-
return true;
3013+
return this.verifyForwarderAddress(params, forwarderVersion);
30223014
}
30233015

30243016
// If we reach here, it's a base address verification for an unsupported wallet version

0 commit comments

Comments
 (0)