diff --git a/modules/sdk-coin-canton/src/canton.ts b/modules/sdk-coin-canton/src/canton.ts index 4a10fe55a6..b499c37a38 100644 --- a/modules/sdk-coin-canton/src/canton.ts +++ b/modules/sdk-coin-canton/src/canton.ts @@ -20,6 +20,7 @@ import { InvalidAddressError, extractCommonKeychain, EDDSAMethods, + TokenEnablementConfig, } from '@bitgo/sdk-core'; import { auditEddsaPrivateKey } from '@bitgo/sdk-lib-mpc'; import { BaseCoin as StaticsBaseCoin, coins } from '@bitgo/statics'; @@ -111,6 +112,7 @@ export class Canton extends BaseCoin { case TransactionType.TransferAccept: case TransactionType.TransferReject: case TransactionType.TransferAcknowledge: + case TransactionType.OneStepPreApproval: // There is no input for these type of transactions, so always return true. return true; case TransactionType.Send: @@ -200,6 +202,14 @@ export class Canton extends BaseCoin { return utils.isValidAddress(address); } + /** @inheritDoc */ + getTokenEnablementConfig(): TokenEnablementConfig { + return { + requiresTokenEnablement: true, + supportsMultipleTokenEnablements: false, + }; + } + getAddressFromPublicKey(publicKeyHex: string): string { const publicKeyBase64 = Buffer.from(publicKeyHex, 'hex').toString('base64'); return utils.getAddressFromPublicKey(publicKeyBase64); diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index 90082cf1a2..9c5b641d77 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -491,6 +491,11 @@ export enum CoinFeature { * This coin supports alternative address identifier format */ ALTERNATIVE_ADDRESS_IDENTIFIER = 'alternative-address-identifier', + + /** + * This coin supports one-step deposit + */ + SUPPORTS_ONE_STEP_DEPOSIT = 'supports-one-step-deposit', } /** diff --git a/modules/statics/src/coinFeatures.ts b/modules/statics/src/coinFeatures.ts index 9fe987c98e..361509bd5d 100644 --- a/modules/statics/src/coinFeatures.ts +++ b/modules/statics/src/coinFeatures.ts @@ -711,4 +711,5 @@ export const CANTON_FEATURES = [ CoinFeature.CUSTODY_BITGO_KOREA, CoinFeature.CUSTODY_BITGO_EUROPE_APS, CoinFeature.CUSTODY_BITGO_FRANKFURT, + CoinFeature.SUPPORTS_ONE_STEP_DEPOSIT, ];