PHP WebShell

Текущая директория: /opt/BitGoJS/modules/sdk-coin-xtz/src/lib

Просмотр файла: transferBuilder.ts

import { BuildTransactionError } from '@bitgo/sdk-core';
import { TransferData } from './iface';

/** Tezos transfer builder. */
// TODO: implement BaseTransferBuilder
export class TransferBuilder {
  private _amount: string;
  private _coin: string;
  private _toAddress: string;
  private _fromAddress: string;
  private _fee: string;
  private _gasLimit: string;
  private _storageLimit: string;
  private _dataToSign: string;
  private _counter: string;

  amount(amount: string): TransferBuilder {
    this._amount = amount;
    return this;
  }

  coin(coin: string): TransferBuilder {
    this._coin = coin;
    return this;
  }

  from(address: string): TransferBuilder {
    this._fromAddress = address;
    return this;
  }

  to(address: string): TransferBuilder {
    this._toAddress = address;
    return this;
  }

  fee(fee: string): TransferBuilder {
    this._fee = fee;
    return this;
  }

  gasLimit(gasLimit: string): TransferBuilder {
    this._gasLimit = gasLimit;
    return this;
  }

  storageLimit(storageLimit: string): TransferBuilder {
    this._storageLimit = storageLimit;
    return this;
  }

  dataToSign(dataToSign: string): TransferBuilder {
    this._dataToSign = dataToSign;
    return this;
  }

  counter(counter: string): TransferBuilder {
    this._counter = counter;
    return this;
  }

  build(): TransferData {
    if (!this._amount || !this._fromAddress || !this._toAddress || !this._fee) {
      throw new BuildTransactionError(
        'Missing transfer mandatory fields. Amount, from address, destination (to) address and fee are mandatory'
      );
    }
    return {
      amount: this._amount,
      coin: this._coin,
      from: this._fromAddress,
      to: this._toAddress,
      fee: {
        fee: this._fee,
        gasLimit: this._gasLimit,
        storageLimit: this._storageLimit,
      },
      dataToSign: this._dataToSign,
      counter: this._counter,
    };
  }
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!