PHP WebShell
Текущая директория: /opt/BitGoJS/modules/sdk-coin-ton/src/lib
Просмотр файла: transactionBuilderFactory.ts
import { BaseTransactionBuilderFactory, InvalidTransactionError, TransactionType } from '@bitgo/sdk-core';
import { TransactionBuilder } from './transactionBuilder';
import { TransferBuilder } from './transferBuilder';
import { BaseCoin as CoinConfig } from '@bitgo/statics';
import { SingleNominatorWithdrawBuilder } from './singleNominatorWithdrawBuilder';
import { Transaction } from './transaction';
export class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
constructor(_coinConfig: Readonly<CoinConfig>) {
super(_coinConfig);
}
/** @inheritdoc */
from(raw: string): TransactionBuilder {
let builder: TransactionBuilder;
const tx = new Transaction(this._coinConfig);
tx.fromRawTransaction(raw);
try {
switch (tx.type) {
case TransactionType.Send:
builder = this.getTransferBuilder();
break;
case TransactionType.SingleNominatorWithdraw:
builder = this.getSingleNominatorWithdrawBuilder();
break;
default:
throw new InvalidTransactionError('unsupported transaction');
}
builder.from(raw);
return builder;
} catch (e) {
throw e;
}
}
/** @inheritdoc */
getTransferBuilder(): TransferBuilder {
return new TransferBuilder(this._coinConfig);
}
/**
* Returns a specific builder to create a TON withdraw transaction
*/
getSingleNominatorWithdrawBuilder(): SingleNominatorWithdrawBuilder {
return new SingleNominatorWithdrawBuilder(this._coinConfig);
}
/** @inheritdoc */
getWalletInitializationBuilder(): void {
throw new Error('Method not implemented.');
}
}
Выполнить команду
Для локальной разработки. Не используйте в интернете!