@cosmos-kit/terra-extension
Version:
cosmos-kit wallet connector
90 lines (89 loc) • 3.77 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.OfflineSigner = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _feather = require("@terra-money/feather.js");
var OfflineSigner = /*#__PURE__*/function () {
function OfflineSigner(extension, accountInfo) {
(0, _classCallCheck2["default"])(this, OfflineSigner);
(0, _defineProperty2["default"])(this, "extension", void 0);
(0, _defineProperty2["default"])(this, "accountInfo", void 0);
this.extension = extension;
this.accountInfo = accountInfo;
}
(0, _createClass2["default"])(OfflineSigner, [{
key: "getAccounts",
value: function () {
var _getAccounts = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
return _context.abrupt("return", [{
address: this.accountInfo.address,
algo: this.accountInfo.algo || 'secp256k1',
pubkey: this.accountInfo.pubkey
}]);
case 1:
case "end":
return _context.stop();
}
}, _callee, this);
}));
function getAccounts() {
return _getAccounts.apply(this, arguments);
}
return getAccounts;
}()
}, {
key: "signAmino",
value: function () {
var _signAmino = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(signerAddress, signDoc) {
var signDocFee, feeAmount, fakeMsgs, signResponse, signature;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
signDocFee = signDoc.fee;
feeAmount = signDocFee.amount[0].amount + signDocFee.amount[0].denom;
fakeMsgs = signDoc.msgs.map(function (msg) {
return _feather.Msg.fromAmino(msg);
});
_context2.next = 5;
return this.extension.sign({
chainID: signDoc.chain_id,
msgs: fakeMsgs,
fee: new _feather.Fee(parseInt(signDocFee.gas), feeAmount, signDocFee.payer, signDocFee.granter),
memo: signDoc.memo,
signMode: _feather.SignatureV2.SignMode.SIGN_MODE_LEGACY_AMINO_JSON
});
case 5:
signResponse = _context2.sent;
signature = {
pub_key: signResponse.payload.result.auth_info.signer_infos[0].public_key.key,
signature: signResponse.payload.result.signatures[0]
};
return _context2.abrupt("return", {
signed: signDoc,
signature: signature
});
case 8:
case "end":
return _context2.stop();
}
}, _callee2, this);
}));
function signAmino(_x, _x2) {
return _signAmino.apply(this, arguments);
}
return signAmino;
}()
}]);
return OfflineSigner;
}();
exports.OfflineSigner = OfflineSigner;