@cosmos-kit/terra-extension
Version:
cosmos-kit wallet connector
142 lines (141 loc) • 5.5 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TerraClient = 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 _signer = require("./signer");
var _encoding = require("@cosmjs/encoding");
var TerraClient = /*#__PURE__*/function () {
function TerraClient(client) {
(0, _classCallCheck2["default"])(this, TerraClient);
(0, _defineProperty2["default"])(this, "client", void 0);
this.client = client;
}
(0, _createClass2["default"])(TerraClient, [{
key: "disconnect",
value: function () {
var _disconnect = (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:
this.client.disconnect();
case 1:
case "end":
return _context.stop();
}
}, _callee, this);
}));
function disconnect() {
return _disconnect.apply(this, arguments);
}
return disconnect;
}()
}, {
key: "getSimpleAccount",
value: function () {
var _getSimpleAccount = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(chainId) {
var account;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return this.getAccount(chainId);
case 2:
account = _context2.sent;
return _context2.abrupt("return", {
namespace: 'cosmos',
chainId: chainId,
address: account.address
});
case 4:
case "end":
return _context2.stop();
}
}, _callee2, this);
}));
function getSimpleAccount(_x) {
return _getSimpleAccount.apply(this, arguments);
}
return getSimpleAccount;
}()
}, {
key: "getAccount",
value: function () {
var _getAccount = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(chainId) {
var account, infos, networkInfo, coinTypeByChainId, accountPubkey;
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return this.client.connect();
case 2:
account = _context3.sent;
_context3.next = 5;
return this.client.info();
case 5:
infos = _context3.sent;
networkInfo = infos[chainId];
if (networkInfo) {
_context3.next = 9;
break;
}
return _context3.abrupt("return", Promise.reject("Unsupported chainId: ".concat(chainId, ". Please swap to ").concat(chainId, " network in Station Wallet.")));
case 9:
coinTypeByChainId = networkInfo.coinType;
accountPubkey = account.pubkey[coinTypeByChainId];
if (accountPubkey) {
_context3.next = 13;
break;
}
return _context3.abrupt("return", Promise.reject("Can't find pubkey in Station Wallet.(Coin type: ".concat(coinTypeByChainId, ")")));
case 13:
return _context3.abrupt("return", {
address: account.address,
algo: 'secp256k1',
pubkey: (0, _encoding.fromBase64)(accountPubkey)
});
case 14:
case "end":
return _context3.stop();
}
}, _callee3, this);
}));
function getAccount(_x2) {
return _getAccount.apply(this, arguments);
}
return getAccount;
}()
}, {
key: "getOfflineSigner",
value: function () {
var _getOfflineSigner = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(chainId) {
var accountInfo;
return _regenerator["default"].wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_context4.next = 2;
return this.getAccount(chainId);
case 2:
accountInfo = _context4.sent;
return _context4.abrupt("return", new _signer.OfflineSigner(this.client, accountInfo));
case 4:
case "end":
return _context4.stop();
}
}, _callee4, this);
}));
function getOfflineSigner(_x3) {
return _getOfflineSigner.apply(this, arguments);
}
return getOfflineSigner;
}()
}]);
return TerraClient;
}();
exports.TerraClient = TerraClient;