Skip to content

refactor(sdk-core): making supportsMultiSig as coin feature #6088

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions modules/abstract-utxo/src/abstractUtxoCoin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -695,11 +695,6 @@ export abstract class AbstractUtxoCoin extends BaseCoin {
return utxolib.bitgo.outputScripts.isSupportedScriptType(this.network, addressType);
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-algo/src/algo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -594,11 +594,6 @@ export class Algo extends BaseCoin {
return false;
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-arbeth/src/arbeth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,6 @@ export class Arbeth extends AbstractEthLikeNewCoins {
return userGasLimit;
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.tss;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-avaxc/src/avaxc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,11 +135,6 @@ export class AvaxC extends AbstractEthLikeNewCoins {
return false;
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-avaxp/src/avaxp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,6 @@ export class AvaxP extends BaseCoin {
return Math.pow(10, this._staticsCoin.decimalPlaces);
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-celo/src/celo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,6 @@ export class Celo extends AbstractEthLikeCoin {
return valid;
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-cspr/src/cspr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,6 @@ export class Cspr extends BaseCoin {
return Math.pow(10, this._staticsCoin.decimalPlaces);
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-eos/src/eos.ts
Original file line number Diff line number Diff line change
Expand Up @@ -232,11 +232,6 @@ export class Eos extends BaseCoin {
return 4;
}

/** {@inheritDoc } **/
supportsMultisig() {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-etc/src/etc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,6 @@ export class Etc extends AbstractEthLikeCoin {
return valid;
}

/** {@inheritDoc } **/
supportsMultisig() {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-hbar/src/hbar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -570,11 +570,6 @@ export class Hbar extends BaseCoin {
return false;
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-opeth/src/opeth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,6 @@ export class Opeth extends AbstractEthLikeNewCoins {
return userGasLimit;
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.tss;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-rbtc/src/rbtc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,6 @@ export class Rbtc extends AbstractEthLikeCoin {
return valid;
}

/** {@inheritDoc } **/
supportsMultisig() {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-stx/src/stx.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,6 @@ export class Stx extends BaseCoin {
return new TransactionBuilderFactory(coinConfig).getTransferBuilder();
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-trx/src/trx.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,11 +162,6 @@ export class Trx extends BaseCoin {
return true;
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-xlm/src/xlm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -299,11 +299,6 @@ export class Xlm extends BaseCoin {
return false;
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-xrp/src/xrp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,6 @@ export class Xrp extends BaseCoin {
return true;
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-xtz/src/xtz.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,6 @@ export class Xtz extends BaseCoin {
return Math.pow(10, this._staticsCoin.decimalPlaces);
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
5 changes: 0 additions & 5 deletions modules/sdk-coin-zketh/src/zketh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,6 @@ export class Zketh extends AbstractEthLikeNewCoins {
return await recoveryBlockchainExplorerQuery(query, explorerUrl as string);
}

/** {@inheritDoc } **/
supportsMultisig(): boolean {
return true;
}

/** inherited doc */
getDefaultMultisigType(): MultisigType {
return multisigTypes.onchain;
Expand Down
25 changes: 13 additions & 12 deletions modules/sdk-core/src/bitgo/baseCoin/baseCoin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
* @prettier
*/
import * as crypto from 'crypto';
import { Hash } from 'crypto';
import * as utxolib from '@bitgo/utxo-lib';
import { bip32 } from '@bitgo/utxo-lib';
import { BigNumber } from 'bignumber.js';

import * as utxolib from '@bitgo/utxo-lib';
import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics';
import { BaseCoin as StaticsBaseCoin, CoinFeature } from '@bitgo/statics';

import { InitiateRecoveryOptions } from '../recovery';
import { signMessage } from '../bip32util';
Expand All @@ -16,17 +16,22 @@ import { Enterprises } from '../enterprise';
import { Keychains, KeyIndices } from '../keychain';
import { Markets } from '../market';
import { PendingApprovals } from '../pendingApproval';
import { Wallets, IWallet, Wallet } from '../wallet';
import { IWallet, Wallet, Wallets } from '../wallet';
import { Webhooks } from '../webhook';
import {
BaseBroadcastTransactionOptions,
BaseBroadcastTransactionResult,
BuildNftTransferDataOptions,
DeriveKeyWithSeedOptions,
ExtraPrebuildParamsOptions,
FeeEstimateOptions,
IBaseCoin,
ParsedTransaction,
ITransactionExplanation,
KeychainsTriplet,
KeyPair,
MPCAlgorithm,
MultisigType,
ParsedTransaction,
ParseTransactionOptions,
PrecreateBitGoOptions,
PresignTransactionOptions,
Expand All @@ -39,14 +44,8 @@ import {
TransactionPrebuild,
VerifyAddressOptions,
VerifyTransactionOptions,
BuildNftTransferDataOptions,
BaseBroadcastTransactionOptions,
BaseBroadcastTransactionResult,
DeriveKeyWithSeedOptions,
MultisigType,
} from './iBaseCoin';
import { IInscriptionBuilder } from '../inscriptionBuilder';
import { Hash } from 'crypto';
import { MPCSweepRecoveryOptions, MPCTxs, PopulatedIntent, PrebuildTransactionWithIntentOptions } from '../utils';

export abstract class BaseCoin implements IBaseCoin {
Expand Down Expand Up @@ -186,11 +185,13 @@ export abstract class BaseCoin implements IBaseCoin {
}

/**
* @deprecated use CoinFeature.MULTISIG from statics instead
* Flag indicating if this coin supports MultiSig wallets.
* @return {boolean} True if MultiSig wallets can be created for this coin
*/
supportsMultisig(): boolean {
return false;
// Use the static coin configuration to check if MULTISIG is supported
return this._staticsCoin.features.includes(CoinFeature.MULTISIG);
}

/**
Expand Down
1 change: 1 addition & 0 deletions modules/statics/src/avaxp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export class AVAXPCoin extends BaseCoin {
CoinFeature.CUSTODY_BITGO_GERMANY,
CoinFeature.CUSTODY_BITGO_FRANKFURT,
CoinFeature.MULTISIG_COLD,
CoinFeature.MULTISIG,
CoinFeature.STAKING,
];

Expand Down
5 changes: 5 additions & 0 deletions modules/statics/src/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,11 @@ export enum CoinFeature {
* This coins is an EVM compatible coin and should use common EVM functionality
*/
SHARED_EVM_SIGNING = 'shared-evm-signing',

/**
* This coin supports multisig wallets
*/
MULTISIG = 'multisig',
}

/**
Expand Down
Loading