diff --git a/modules/account-lib/src/coin/xrp/index.ts b/modules/account-lib/src/coin/xrp/index.ts deleted file mode 100644 index f6bc90256e..0000000000 --- a/modules/account-lib/src/coin/xrp/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import * as Utils from './utils'; - -export { KeyPair } from './keyPair'; -export { TransactionBuilderFactory } from './transactionBuilderFactory'; -export { Utils }; diff --git a/modules/account-lib/src/coin/xrp/keyPair.ts b/modules/account-lib/src/coin/xrp/keyPair.ts deleted file mode 100644 index 112bdc05bc..0000000000 --- a/modules/account-lib/src/coin/xrp/keyPair.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo/sdk-core'; - -export class KeyPair extends Secp256k1ExtendedKeyPair { - /** - * Public constructor. By default, creates a key pair with a random master seed. - * - * @param { KeyPairOptions } source Either a master seed, a private key, or a public key - */ - constructor(source?: KeyPairOptions) { - super(source); - } -} diff --git a/modules/account-lib/src/coin/xrp/transaction.ts b/modules/account-lib/src/coin/xrp/transaction.ts deleted file mode 100644 index 14bd959ceb..0000000000 --- a/modules/account-lib/src/coin/xrp/transaction.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { BaseKey, BaseTransaction, NotImplementedError } from '@bitgo/sdk-core'; - -export class Transaction extends BaseTransaction { - /** @inheritdoc */ - canSign(key: BaseKey): boolean { - throw new NotImplementedError('canSign not implemented'); - } - - /** @inheritdoc */ - toBroadcastFormat(): string { - throw new NotImplementedError('toBroadcastFormat not implemented'); - } - - /** @inheritdoc */ - toJson(): any { - throw new NotImplementedError('toJson not implemented'); - } -} diff --git a/modules/account-lib/src/coin/xrp/transactionBuilder.ts b/modules/account-lib/src/coin/xrp/transactionBuilder.ts deleted file mode 100644 index 92b8f33369..0000000000 --- a/modules/account-lib/src/coin/xrp/transactionBuilder.ts +++ /dev/null @@ -1,55 +0,0 @@ -import BigNumber from 'bignumber.js'; -import { BaseCoin as CoinConfig } from '@bitgo/statics'; -import { BaseAddress, BaseKey, BaseTransactionBuilder, NotImplementedError } from '@bitgo/sdk-core'; -import { Transaction } from './transaction'; - -export abstract class TransactionBuilder extends BaseTransactionBuilder { - private _transaction: Transaction; - - constructor(_coinConfig: Readonly) { - super(_coinConfig); - } - - /** - * Initialize the transaction builder fields using the decoded transaction data - * - * @param {Transaction} tx the transaction data - */ - initBuilder(tx: Transaction): void { - throw new NotImplementedError('initBuilder not implemented'); - } - - // region Getters and Setters - /** @inheritdoc */ - protected get transaction(): Transaction { - return this._transaction; - } - // endregion - - // region Validators - /** @inheritdoc */ - validateAddress(address: BaseAddress, addressFormat?: string): void { - throw new NotImplementedError('validateAddress not implemented'); - } - - /** @inheritdoc */ - validateKey(key: BaseKey): void { - throw new NotImplementedError('validateKey not implemented'); - } - - /** @inheritdoc */ - validateRawTransaction(rawTransaction: any): void { - throw new NotImplementedError('validateRawTransaction not implemented'); - } - - /** @inheritdoc */ - validateTransaction(transaction?: Transaction): void { - throw new NotImplementedError('validateTransaction not implemented'); - } - - /** @inheritdoc */ - validateValue(value: BigNumber): void { - throw new NotImplementedError('validateValue not implemented'); - } - // endregion -} diff --git a/modules/account-lib/src/coin/xrp/transactionBuilderFactory.ts b/modules/account-lib/src/coin/xrp/transactionBuilderFactory.ts deleted file mode 100644 index 08302fb5d3..0000000000 --- a/modules/account-lib/src/coin/xrp/transactionBuilderFactory.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { BaseCoin as CoinConfig } from '@bitgo/statics'; -import { BaseTransactionBuilderFactory, NotImplementedError } from '@bitgo/sdk-core'; -import { TransferBuilder } from './transferBuilder'; -import { WalletInitializationBuilder } from './walletInitializationBuilder'; -import { TransactionBuilder } from './transactionBuilder'; -import { Transaction } from './transaction'; - -export class TransactionBuilderFactory extends BaseTransactionBuilderFactory { - constructor(_coinConfig: Readonly) { - super(_coinConfig); - } - - /** @inheritdoc */ - from(raw: Uint8Array | string): TransactionBuilder { - throw new NotImplementedError('from not implemented'); - } - - /** @inheritdoc */ - getWalletInitializationBuilder(tx?: Transaction): WalletInitializationBuilder { - return TransactionBuilderFactory.initializeBuilder(tx, new WalletInitializationBuilder(this._coinConfig)); - } - - /** @inheritdoc */ - getTransferBuilder(tx?: Transaction): TransferBuilder { - return TransactionBuilderFactory.initializeBuilder(tx, new TransferBuilder(this._coinConfig)); - } - - /** - * Initialize the builder with the given transaction - * - * @param {Transaction | undefined} tx - the transaction used to initialize the builder - * @param {TransactionBuilder} builder - the builder to be initialized - * @returns {TransactionBuilder} the builder initialized - */ - private static initializeBuilder(tx: Transaction | undefined, builder: T): T { - if (tx) { - builder.initBuilder(tx); - } - return builder; - } -} diff --git a/modules/account-lib/src/coin/xrp/transferBuilder.ts b/modules/account-lib/src/coin/xrp/transferBuilder.ts deleted file mode 100644 index 4625f31e93..0000000000 --- a/modules/account-lib/src/coin/xrp/transferBuilder.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { BaseCoin as CoinConfig } from '@bitgo/statics'; -import { BaseKey, NotImplementedError } from '@bitgo/sdk-core'; -import { TransactionBuilder } from './transactionBuilder'; -import { Transaction } from './transaction'; - -export class TransferBuilder extends TransactionBuilder { - constructor(_coinConfig: Readonly) { - super(_coinConfig); - } - - /** @inheritdoc */ - protected async buildImplementation(): Promise { - throw new NotImplementedError('method not implemented'); - } - - /** @inheritdoc */ - protected fromImplementation(rawTransaction: any): Transaction { - throw new NotImplementedError('method not implemented'); - } - - /** @inheritdoc */ - protected signImplementation(key: BaseKey): Transaction { - throw new NotImplementedError('method not implemented'); - } -} diff --git a/modules/account-lib/src/coin/xrp/utils.ts b/modules/account-lib/src/coin/xrp/utils.ts deleted file mode 100644 index f426d95a0f..0000000000 --- a/modules/account-lib/src/coin/xrp/utils.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { BaseUtils, NotImplementedError } from '@bitgo/sdk-core'; - -export class Utils implements BaseUtils { - /** @inheritdoc */ - isValidAddress(address: string): boolean { - throw new NotImplementedError('method not implemented'); - } - - /** @inheritdoc */ - isValidBlockId(hash: string): boolean { - throw new NotImplementedError('method not implemented'); - } - - /** @inheritdoc */ - isValidPrivateKey(key: string): boolean { - throw new NotImplementedError('method not implemented'); - } - - /** @inheritdoc */ - isValidPublicKey(key: string): boolean { - throw new NotImplementedError('method not implemented'); - } - - /** @inheritdoc */ - isValidSignature(signature: string): boolean { - throw new NotImplementedError('method not implemented'); - } - - /** @inheritdoc */ - isValidTransactionId(txId: string): boolean { - throw new NotImplementedError('method not implemented'); - } -} diff --git a/modules/account-lib/src/coin/xrp/walletInitializationBuilder.ts b/modules/account-lib/src/coin/xrp/walletInitializationBuilder.ts deleted file mode 100644 index 5f755d513b..0000000000 --- a/modules/account-lib/src/coin/xrp/walletInitializationBuilder.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { BaseCoin as CoinConfig } from '@bitgo/statics'; -import { BaseKey, NotImplementedError } from '@bitgo/sdk-core'; -import { Transaction } from './transaction'; -import { TransactionBuilder } from './transactionBuilder'; - -export class WalletInitializationBuilder extends TransactionBuilder { - constructor(_coinConfig: Readonly) { - super(_coinConfig); - } - - /** @inheritdoc */ - protected async buildImplementation(): Promise { - throw new NotImplementedError('method not implemented'); - } - - /** @inheritdoc */ - protected fromImplementation(rawTransaction: any): Transaction { - throw new NotImplementedError('method not implemented'); - } - - /** @inheritdoc */ - protected signImplementation(key: BaseKey): Transaction { - throw new NotImplementedError('method not implemented'); - } -} diff --git a/modules/account-lib/src/index.ts b/modules/account-lib/src/index.ts index 71e5cc615c..e9d25caeca 100644 --- a/modules/account-lib/src/index.ts +++ b/modules/account-lib/src/index.ts @@ -56,9 +56,6 @@ export { Hbar }; import { CsprLib as Cspr } from '@bitgo/sdk-coin-cspr'; export { Cspr }; -import * as Xrp from './coin/xrp'; -export { Xrp }; - import { StxLib as Stx } from '@bitgo/sdk-coin-stx'; export { Stx }; @@ -102,8 +99,6 @@ const coinBuilderMap = { thbar: Hbar.TransactionBuilderFactory, cspr: Cspr.TransactionBuilderFactory, tcspr: Cspr.TransactionBuilderFactory, - xrp: Xrp.TransactionBuilderFactory, - txrp: Xrp.TransactionBuilderFactory, stx: Stx.TransactionBuilderFactory, tstx: Stx.TransactionBuilderFactory, algo: Algo.TransactionBuilderFactory, diff --git a/modules/bitgo/src/v2/coins/index.ts b/modules/bitgo/src/v2/coins/index.ts index f951679a82..ff8a411ceb 100644 --- a/modules/bitgo/src/v2/coins/index.ts +++ b/modules/bitgo/src/v2/coins/index.ts @@ -55,14 +55,6 @@ export { Xtz, Txtz }; import { Zec, Tzec } from '@bitgo/sdk-coin-zec'; export { Zec, Tzec }; - -export { Ofc } from './ofc'; // TODO: SDKT-15: make abstract and remove from exported list -export { OfcToken } from './ofcToken'; -export { Susd } from './susd'; -export { FiatUsd } from './fiatusd'; -export { FiatEur } from './fiateur'; -export { FiatGBP } from './fiatgbp'; -export { Tsusd } from './tsusd'; -export { TfiatUsd } from './tfiatusd'; -export { TfiatEur } from './tfiateur'; -export { TfiatGBP } from './tfiatgbp'; +import { coins } from '@bitgo/sdk-core'; +const { Ofc, OfcToken, Susd, FiatUsd, FiatEur, FiatGBP, Tsusd, TfiatUsd, TfiatEur, TfiatGBP } = coins; +export { Ofc, OfcToken, Susd, FiatUsd, FiatEur, FiatGBP, Tsusd, TfiatUsd, TfiatEur, TfiatGBP }; diff --git a/modules/sdk-coin-eth/src/eth.ts b/modules/sdk-coin-eth/src/eth.ts index 952fc05bf1..b8ddbc4047 100644 --- a/modules/sdk-coin-eth/src/eth.ts +++ b/modules/sdk-coin-eth/src/eth.ts @@ -21,7 +21,6 @@ import { FeeEstimateOptions, getIsKrsRecovery, getIsUnsignedSweep, - HalfSignedAccountTransaction, InvalidAddressError, InvalidAddressVerificationObjectPropertyError, IWallet, @@ -38,6 +37,9 @@ import { VerifyAddressOptions as BaseVerifyAddressOptions, VerifyTransactionOptions, Wallet, + Recipient, + HalfSignedTransaction, + FullySignedTransaction, } from '@bitgo/sdk-core'; import { BaseCoin as StaticsBaseCoin, EthereumNetwork, ethGasConfigs } from '@bitgo/statics'; @@ -45,6 +47,8 @@ import type * as EthTxLib from '@ethereumjs/tx'; import type * as EthCommon from '@ethereumjs/common'; import { calculateForwarderV1Address, getProxyInitcode } from './lib'; +export { Recipient, HalfSignedTransaction, FullySignedTransaction }; + const debug = debugLib('bitgo:v2:eth'); export const optionalDeps = { @@ -118,12 +122,6 @@ interface HopPrebuild { gasPriceMax: number; } -export interface Recipient { - address: string; - amount: string; - data?: string; -} - interface EIP1559 { maxPriorityFeePerGas: number; maxFeePerGas: number; @@ -167,20 +165,6 @@ export interface SignTransactionOptions extends BaseSignTransactionOptions, Sign custodianTransactionId?: string; } -export interface HalfSignedTransaction extends HalfSignedAccountTransaction { - halfSigned: { - recipients: Recipient[]; - expireTime: number; - contractSequenceId: number; - sequenceId: number; - txHex?: never; - }; -} - -export interface FullySignedTransaction { - txHex: string; -} - export type SignedTransaction = HalfSignedTransaction | FullySignedTransaction; interface PrecreateBitGoOptions { diff --git a/modules/sdk-coin-xrp/package.json b/modules/sdk-coin-xrp/package.json index c8830eae0a..4648f9ab3c 100644 --- a/modules/sdk-coin-xrp/package.json +++ b/modules/sdk-coin-xrp/package.json @@ -41,9 +41,11 @@ ] }, "dependencies": { + "@bitgo/abstract-eth": "^1.0.0", "@bitgo/sdk-core": "^1.0.1", + "@bitgo/statics": "^6.17.0", "@bitgo/utxo-lib": "^2.2.2", - "bignumber.js": "^8.0.1", + "bignumber.js": "^9.0.0", "bip32": "^2.0.6", "lodash": "^4.17.14", "ripple-address-codec": "~4.1.3", diff --git a/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts b/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts index 3cba3dd40b..a7382fda27 100644 --- a/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts +++ b/modules/sdk-core/src/bitgo/baseCoin/iBaseCoin.ts @@ -262,6 +262,16 @@ export interface HalfSignedAccountTransaction { }; } +export interface HalfSignedTransaction extends HalfSignedAccountTransaction { + halfSigned: { + recipients: Recipient[]; + expireTime: number; + contractSequenceId: number; + sequenceId: number; + txHex?: never; + }; +} + export interface SignedTransactionRequest { txRequestId: string; } diff --git a/modules/bitgo/src/v2/coins/fiateur.ts b/modules/sdk-core/src/coins/fiateur.ts similarity index 98% rename from modules/bitgo/src/v2/coins/fiateur.ts rename to modules/sdk-core/src/coins/fiateur.ts index dca9d09413..ebb6aa7f09 100644 --- a/modules/bitgo/src/v2/coins/fiateur.ts +++ b/modules/sdk-core/src/coins/fiateur.ts @@ -12,7 +12,7 @@ import { SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions, -} from '@bitgo/sdk-core'; +} from '../'; export class FiatEur extends BaseCoin { static createInstance(bitgo: BitGoBase): BaseCoin { diff --git a/modules/bitgo/src/v2/coins/fiatgbp.ts b/modules/sdk-core/src/coins/fiatgbp.ts similarity index 98% rename from modules/bitgo/src/v2/coins/fiatgbp.ts rename to modules/sdk-core/src/coins/fiatgbp.ts index 16a218edfb..9e304163cd 100644 --- a/modules/bitgo/src/v2/coins/fiatgbp.ts +++ b/modules/sdk-core/src/coins/fiatgbp.ts @@ -12,7 +12,7 @@ import { SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions, -} from '@bitgo/sdk-core'; +} from '../'; export class FiatGBP extends BaseCoin { static createInstance(bitgo: BitGoBase): BaseCoin { diff --git a/modules/bitgo/src/v2/coins/fiatusd.ts b/modules/sdk-core/src/coins/fiatusd.ts similarity index 98% rename from modules/bitgo/src/v2/coins/fiatusd.ts rename to modules/sdk-core/src/coins/fiatusd.ts index 32dbe61bf5..655dccf108 100644 --- a/modules/bitgo/src/v2/coins/fiatusd.ts +++ b/modules/sdk-core/src/coins/fiatusd.ts @@ -12,7 +12,7 @@ import { SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions, -} from '@bitgo/sdk-core'; +} from '../'; export class FiatUsd extends BaseCoin { static createInstance(bitgo: BitGoBase): BaseCoin { diff --git a/modules/sdk-core/src/coins/index.ts b/modules/sdk-core/src/coins/index.ts new file mode 100644 index 0000000000..3a80bb6f05 --- /dev/null +++ b/modules/sdk-core/src/coins/index.ts @@ -0,0 +1,10 @@ +export * from './fiateur'; +export * from './tfiateur'; +export * from './fiatgbp'; +export * from './tfiatgbp'; +export * from './fiatusd'; +export * from './tfiatusd'; +export * from './ofc'; +export * from './ofcToken'; +export * from './susd'; +export * from './tsusd'; diff --git a/modules/bitgo/src/v2/coins/ofc.ts b/modules/sdk-core/src/coins/ofc.ts similarity index 98% rename from modules/bitgo/src/v2/coins/ofc.ts rename to modules/sdk-core/src/coins/ofc.ts index eaa8d848e7..857bde563c 100644 --- a/modules/bitgo/src/v2/coins/ofc.ts +++ b/modules/sdk-core/src/coins/ofc.ts @@ -14,7 +14,7 @@ import { SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions, -} from '@bitgo/sdk-core'; +} from '../'; export class Ofc extends BaseCoin { static createInstance(bitgo: BitGoBase): BaseCoin { diff --git a/modules/bitgo/src/v2/coins/ofcToken.ts b/modules/sdk-core/src/coins/ofcToken.ts similarity index 93% rename from modules/bitgo/src/v2/coins/ofcToken.ts rename to modules/sdk-core/src/coins/ofcToken.ts index 6dd8d90dc2..84ffbb4406 100644 --- a/modules/bitgo/src/v2/coins/ofcToken.ts +++ b/modules/sdk-core/src/coins/ofcToken.ts @@ -1,11 +1,15 @@ /** * @prettier */ +import { OfcTokenConfig } from '@bitgo/statics'; import { isString } from 'lodash'; +import { + BitGoBase, + CoinConstructor, + SignTransactionOptions as BaseSignTransactionOptions, + SignedTransaction, +} from '../'; import { Ofc } from './ofc'; -import { BitGoBase, CoinConstructor, SignTransactionOptions as BaseSignTransactionOptions } from '@bitgo/sdk-core'; -import { SignedTransaction } from '@bitgo/sdk-coin-eth'; -import { OfcTokenConfig } from '@bitgo/statics'; export interface SignTransactionOptions extends BaseSignTransactionOptions { txPrebuild: { diff --git a/modules/bitgo/src/v2/coins/susd.ts b/modules/sdk-core/src/coins/susd.ts similarity index 98% rename from modules/bitgo/src/v2/coins/susd.ts rename to modules/sdk-core/src/coins/susd.ts index 3f073967a0..80ea10d177 100644 --- a/modules/bitgo/src/v2/coins/susd.ts +++ b/modules/sdk-core/src/coins/susd.ts @@ -12,7 +12,7 @@ import { SignTransactionOptions, VerifyAddressOptions, VerifyTransactionOptions, -} from '@bitgo/sdk-core'; +} from '../'; export class Susd extends BaseCoin { static createInstance(bitgo: BitGoBase): BaseCoin { diff --git a/modules/bitgo/src/v2/coins/tfiateur.ts b/modules/sdk-core/src/coins/tfiateur.ts similarity index 84% rename from modules/bitgo/src/v2/coins/tfiateur.ts rename to modules/sdk-core/src/coins/tfiateur.ts index 668430c29b..5d4533a1a5 100644 --- a/modules/bitgo/src/v2/coins/tfiateur.ts +++ b/modules/sdk-core/src/coins/tfiateur.ts @@ -1,7 +1,7 @@ /** * @prettier */ -import { BaseCoin, BitGoBase } from '@bitgo/sdk-core'; +import { BaseCoin, BitGoBase } from '../'; import { FiatEur } from './fiateur'; export class TfiatEur extends FiatEur { diff --git a/modules/bitgo/src/v2/coins/tfiatgbp.ts b/modules/sdk-core/src/coins/tfiatgbp.ts similarity index 84% rename from modules/bitgo/src/v2/coins/tfiatgbp.ts rename to modules/sdk-core/src/coins/tfiatgbp.ts index 3172098959..b38a131b3e 100644 --- a/modules/bitgo/src/v2/coins/tfiatgbp.ts +++ b/modules/sdk-core/src/coins/tfiatgbp.ts @@ -1,7 +1,7 @@ /** * @prettier */ -import { BaseCoin, BitGoBase } from '@bitgo/sdk-core'; +import { BaseCoin, BitGoBase } from '../'; import { FiatGBP } from './fiatgbp'; export class TfiatGBP extends FiatGBP { diff --git a/modules/bitgo/src/v2/coins/tfiatusd.ts b/modules/sdk-core/src/coins/tfiatusd.ts similarity index 84% rename from modules/bitgo/src/v2/coins/tfiatusd.ts rename to modules/sdk-core/src/coins/tfiatusd.ts index 2755d33b5e..3ce1bd1088 100644 --- a/modules/bitgo/src/v2/coins/tfiatusd.ts +++ b/modules/sdk-core/src/coins/tfiatusd.ts @@ -1,7 +1,7 @@ /** * @prettier */ -import { BaseCoin, BitGoBase } from '@bitgo/sdk-core'; +import { BaseCoin, BitGoBase } from '../'; import { FiatUsd } from './fiatusd'; export class TfiatUsd extends FiatUsd { diff --git a/modules/bitgo/src/v2/coins/tsusd.ts b/modules/sdk-core/src/coins/tsusd.ts similarity index 83% rename from modules/bitgo/src/v2/coins/tsusd.ts rename to modules/sdk-core/src/coins/tsusd.ts index 4f94926656..a2331e5c92 100644 --- a/modules/bitgo/src/v2/coins/tsusd.ts +++ b/modules/sdk-core/src/coins/tsusd.ts @@ -1,7 +1,7 @@ /** * @prettier */ -import { BaseCoin, BitGoBase } from '@bitgo/sdk-core'; +import { BaseCoin, BitGoBase } from '../'; import { Susd } from './susd'; export class Tsusd extends Susd { diff --git a/modules/sdk-core/src/index.ts b/modules/sdk-core/src/index.ts index b1c2b48e5b..3012e5fd63 100644 --- a/modules/sdk-core/src/index.ts +++ b/modules/sdk-core/src/index.ts @@ -3,5 +3,6 @@ export * as accountLib from './account-lib'; export * from './api'; export * from './bitgo'; export * from './bitgojsError'; +export * as coins from './coins'; import * as common from './common'; export { common };