PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/stellar-base/lib

Просмотр файла: signerkey.js

'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.SignerKey = undefined;

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _xdr = require('./xdr');

var _xdr2 = _interopRequireDefault(_xdr);

var _strkey = require('./strkey');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

/**
 * A container class with helpers to convert between signer keys
 * (`xdr.SignerKey`) and {@link StrKey}s.
 *
 * It's primarly used for manipulating the `extraSigners` precondition on a
 * {@link Transaction}.
 *
 * @see {@link TransactionBuilder.setExtraSigners}
 */
var SignerKey = exports.SignerKey = function () {
  function SignerKey() {
    _classCallCheck(this, SignerKey);
  }

  _createClass(SignerKey, null, [{
    key: 'decodeAddress',

    /**
     * Decodes a StrKey address into an xdr.SignerKey instance.
     *
     * Only ED25519 public keys (G...), pre-auth transactions (T...), hashes
     * (H...), and signed payloads (P...) can be signer keys.
     *
     * @param   {string} address  a StrKey-encoded signer address
     * @returns {xdr.SignerKey}
     */
    value: function decodeAddress(address) {
      var signerKeyMap = {
        ed25519PublicKey: _xdr2.default.SignerKey.signerKeyTypeEd25519,
        preAuthTx: _xdr2.default.SignerKey.signerKeyTypePreAuthTx,
        sha256Hash: _xdr2.default.SignerKey.signerKeyTypeHashX,
        signedPayload: _xdr2.default.SignerKey.signerKeyTypeEd25519SignedPayload
      };

      var vb = _strkey.StrKey.getVersionByteForPrefix(address);
      var encoder = signerKeyMap[vb];
      if (!encoder) {
        throw new Error('invalid signer key type (' + vb + ')');
      }

      var raw = (0, _strkey.decodeCheck)(vb, address);
      switch (vb) {
        case 'signedPayload':
          return encoder(new _xdr2.default.SignerKeyEd25519SignedPayload({
            ed25519: raw.slice(0, 32),
            payload: raw.slice(32 + 4)
          }));

        case 'ed25519PublicKey': // falls through
        case 'preAuthTx': // falls through
        case 'sha256Hash': // falls through
        default:
          return encoder(raw);
      }
    }

    /**
     * Encodes a signer key into its StrKey equivalent.
     *
     * @param   {xdr.SignerKey} signerKey   the signer
     * @returns {string} the StrKey representation of the signer
     */

  }, {
    key: 'encodeSignerKey',
    value: function encodeSignerKey(signerKey) {
      var strkeyType = void 0;
      var raw = void 0;

      switch (signerKey.switch()) {
        case _xdr2.default.SignerKeyType.signerKeyTypeEd25519():
          strkeyType = 'ed25519PublicKey';
          raw = signerKey.value();
          break;

        case _xdr2.default.SignerKeyType.signerKeyTypePreAuthTx():
          strkeyType = 'preAuthTx';
          raw = signerKey.value();
          break;

        case _xdr2.default.SignerKeyType.signerKeyTypeHashX():
          strkeyType = 'sha256Hash';
          raw = signerKey.value();
          break;

        case _xdr2.default.SignerKeyType.signerKeyTypeEd25519SignedPayload():
          strkeyType = 'signedPayload';
          raw = signerKey.ed25519SignedPayload().toXDR('raw');
          break;

        default:
          throw new Error('invalid SignerKey (type: ' + signerKey.switch() + ')');
      }

      return (0, _strkey.encodeCheck)(strkeyType, raw);
    }
  }]);

  return SignerKey;
}();

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


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