"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.WasmswapQueryClient = exports.WasmswapClient = void 0;
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
/**
* This file was automatically generated by @cosmwasm/ts-codegen@0.26.0.
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
* and run the @cosmwasm/ts-codegen generate command to regenerate this file.
*/
var WasmswapQueryClient = exports.WasmswapQueryClient = /*#__PURE__*/(0, _createClass2["default"])(function WasmswapQueryClient(client, contractAddress) {
  var _this = this;
  (0, _classCallCheck2["default"])(this, WasmswapQueryClient);
  (0, _defineProperty2["default"])(this, "client", void 0);
  (0, _defineProperty2["default"])(this, "contractAddress", void 0);
  (0, _defineProperty2["default"])(this, "balance", /*#__PURE__*/function () {
    var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee(_ref) {
      var address;
      return _regenerator().w(function (_context) {
        while (1) switch (_context.n) {
          case 0:
            address = _ref.address;
            return _context.a(2, _this.client.queryContractSmart(_this.contractAddress, {
              balance: {
                address: address
              }
            }));
        }
      }, _callee);
    }));
    return function (_x) {
      return _ref2.apply(this, arguments);
    };
  }());
  (0, _defineProperty2["default"])(this, "info", /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee2() {
    return _regenerator().w(function (_context2) {
      while (1) switch (_context2.n) {
        case 0:
          return _context2.a(2, _this.client.queryContractSmart(_this.contractAddress, {
            info: {}
          }));
      }
    }, _callee2);
  })));
  (0, _defineProperty2["default"])(this, "token1ForToken2Price", /*#__PURE__*/function () {
    var _ref5 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee3(_ref4) {
      var token1Amount;
      return _regenerator().w(function (_context3) {
        while (1) switch (_context3.n) {
          case 0:
            token1Amount = _ref4.token1Amount;
            return _context3.a(2, _this.client.queryContractSmart(_this.contractAddress, {
              token1_for_token2_price: {
                token1_amount: token1Amount
              }
            }));
        }
      }, _callee3);
    }));
    return function (_x2) {
      return _ref5.apply(this, arguments);
    };
  }());
  (0, _defineProperty2["default"])(this, "token2ForToken1Price", /*#__PURE__*/function () {
    var _ref7 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee4(_ref6) {
      var token2Amount;
      return _regenerator().w(function (_context4) {
        while (1) switch (_context4.n) {
          case 0:
            token2Amount = _ref6.token2Amount;
            return _context4.a(2, _this.client.queryContractSmart(_this.contractAddress, {
              token2_for_token1_price: {
                token2_amount: token2Amount
              }
            }));
        }
      }, _callee4);
    }));
    return function (_x3) {
      return _ref7.apply(this, arguments);
    };
  }());
  this.client = client;
  this.contractAddress = contractAddress;
  this.balance = this.balance.bind(this);
  this.info = this.info.bind(this);
  this.token1ForToken2Price = this.token1ForToken2Price.bind(this);
  this.token2ForToken1Price = this.token2ForToken1Price.bind(this);
});
var WasmswapClient = exports.WasmswapClient = /*#__PURE__*/function (_WasmswapQueryClient2) {
  function WasmswapClient(client, sender, contractAddress) {
    var _this2;
    (0, _classCallCheck2["default"])(this, WasmswapClient);
    _this2 = _callSuper(this, WasmswapClient, [client, contractAddress]);
    (0, _defineProperty2["default"])(_this2, "client", void 0);
    (0, _defineProperty2["default"])(_this2, "sender", void 0);
    (0, _defineProperty2["default"])(_this2, "contractAddress", void 0);
    (0, _defineProperty2["default"])(_this2, "addLiquidity", /*#__PURE__*/function () {
      var _ref9 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee5(_ref8) {
        var expiration,
          maxToken2,
          minLiquidity,
          token1Amount,
          fee,
          memo,
          funds,
          _args5 = arguments;
        return _regenerator().w(function (_context5) {
          while (1) switch (_context5.n) {
            case 0:
              expiration = _ref8.expiration, maxToken2 = _ref8.maxToken2, minLiquidity = _ref8.minLiquidity, token1Amount = _ref8.token1Amount;
              fee = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : "auto";
              memo = _args5.length > 2 ? _args5[2] : undefined;
              funds = _args5.length > 3 ? _args5[3] : undefined;
              _context5.n = 1;
              return _this2.client.execute(_this2.sender, _this2.contractAddress, {
                add_liquidity: {
                  expiration: expiration,
                  max_token2: maxToken2,
                  min_liquidity: minLiquidity,
                  token1_amount: token1Amount
                }
              }, fee, memo, funds);
            case 1:
              return _context5.a(2, _context5.v);
          }
        }, _callee5);
      }));
      return function (_x4) {
        return _ref9.apply(this, arguments);
      };
    }());
    (0, _defineProperty2["default"])(_this2, "removeLiquidity", /*#__PURE__*/function () {
      var _ref1 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee6(_ref0) {
        var amount,
          expiration,
          minToken1,
          minToken2,
          fee,
          memo,
          funds,
          _args6 = arguments;
        return _regenerator().w(function (_context6) {
          while (1) switch (_context6.n) {
            case 0:
              amount = _ref0.amount, expiration = _ref0.expiration, minToken1 = _ref0.minToken1, minToken2 = _ref0.minToken2;
              fee = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : "auto";
              memo = _args6.length > 2 ? _args6[2] : undefined;
              funds = _args6.length > 3 ? _args6[3] : undefined;
              _context6.n = 1;
              return _this2.client.execute(_this2.sender, _this2.contractAddress, {
                remove_liquidity: {
                  amount: amount,
                  expiration: expiration,
                  min_token1: minToken1,
                  min_token2: minToken2
                }
              }, fee, memo, funds);
            case 1:
              return _context6.a(2, _context6.v);
          }
        }, _callee6);
      }));
      return function (_x5) {
        return _ref1.apply(this, arguments);
      };
    }());
    (0, _defineProperty2["default"])(_this2, "swapToken1ForToken2", /*#__PURE__*/function () {
      var _ref11 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee7(_ref10) {
        var expiration,
          minToken2,
          token1Amount,
          fee,
          memo,
          funds,
          _args7 = arguments;
        return _regenerator().w(function (_context7) {
          while (1) switch (_context7.n) {
            case 0:
              expiration = _ref10.expiration, minToken2 = _ref10.minToken2, token1Amount = _ref10.token1Amount;
              fee = _args7.length > 1 && _args7[1] !== undefined ? _args7[1] : "auto";
              memo = _args7.length > 2 ? _args7[2] : undefined;
              funds = _args7.length > 3 ? _args7[3] : undefined;
              _context7.n = 1;
              return _this2.client.execute(_this2.sender, _this2.contractAddress, {
                swap_token1_for_token2: {
                  expiration: expiration,
                  min_token2: minToken2,
                  token1_amount: token1Amount
                }
              }, fee, memo, funds);
            case 1:
              return _context7.a(2, _context7.v);
          }
        }, _callee7);
      }));
      return function (_x6) {
        return _ref11.apply(this, arguments);
      };
    }());
    (0, _defineProperty2["default"])(_this2, "swapToken2ForToken1", /*#__PURE__*/function () {
      var _ref13 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee8(_ref12) {
        var expiration,
          minToken1,
          token2Amount,
          fee,
          memo,
          funds,
          _args8 = arguments;
        return _regenerator().w(function (_context8) {
          while (1) switch (_context8.n) {
            case 0:
              expiration = _ref12.expiration, minToken1 = _ref12.minToken1, token2Amount = _ref12.token2Amount;
              fee = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : "auto";
              memo = _args8.length > 2 ? _args8[2] : undefined;
              funds = _args8.length > 3 ? _args8[3] : undefined;
              _context8.n = 1;
              return _this2.client.execute(_this2.sender, _this2.contractAddress, {
                swap_token2_for_token1: {
                  expiration: expiration,
                  min_token1: minToken1,
                  token2_amount: token2Amount
                }
              }, fee, memo, funds);
            case 1:
              return _context8.a(2, _context8.v);
          }
        }, _callee8);
      }));
      return function (_x7) {
        return _ref13.apply(this, arguments);
      };
    }());
    (0, _defineProperty2["default"])(_this2, "multiContractSwap", /*#__PURE__*/function () {
      var _ref15 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee9(_ref14) {
        var expiration,
          inputToken,
          inputTokenAmount,
          outputAmmAddress,
          outputMinToken,
          outputToken,
          fee,
          memo,
          funds,
          _args9 = arguments;
        return _regenerator().w(function (_context9) {
          while (1) switch (_context9.n) {
            case 0:
              expiration = _ref14.expiration, inputToken = _ref14.inputToken, inputTokenAmount = _ref14.inputTokenAmount, outputAmmAddress = _ref14.outputAmmAddress, outputMinToken = _ref14.outputMinToken, outputToken = _ref14.outputToken;
              fee = _args9.length > 1 && _args9[1] !== undefined ? _args9[1] : "auto";
              memo = _args9.length > 2 ? _args9[2] : undefined;
              funds = _args9.length > 3 ? _args9[3] : undefined;
              _context9.n = 1;
              return _this2.client.execute(_this2.sender, _this2.contractAddress, {
                multi_contract_swap: {
                  expiration: expiration,
                  input_token: inputToken,
                  input_token_amount: inputTokenAmount,
                  output_amm_address: outputAmmAddress,
                  output_min_token: outputMinToken,
                  output_token: outputToken
                }
              }, fee, memo, funds);
            case 1:
              return _context9.a(2, _context9.v);
          }
        }, _callee9);
      }));
      return function (_x8) {
        return _ref15.apply(this, arguments);
      };
    }());
    (0, _defineProperty2["default"])(_this2, "swapTo", /*#__PURE__*/function () {
      var _ref17 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee0(_ref16) {
        var expiration,
          inputAmount,
          inputToken,
          minToken,
          recipient,
          fee,
          memo,
          funds,
          _args0 = arguments;
        return _regenerator().w(function (_context0) {
          while (1) switch (_context0.n) {
            case 0:
              expiration = _ref16.expiration, inputAmount = _ref16.inputAmount, inputToken = _ref16.inputToken, minToken = _ref16.minToken, recipient = _ref16.recipient;
              fee = _args0.length > 1 && _args0[1] !== undefined ? _args0[1] : "auto";
              memo = _args0.length > 2 ? _args0[2] : undefined;
              funds = _args0.length > 3 ? _args0[3] : undefined;
              _context0.n = 1;
              return _this2.client.execute(_this2.sender, _this2.contractAddress, {
                swap_to: {
                  expiration: expiration,
                  input_amount: inputAmount,
                  input_token: inputToken,
                  min_token: minToken,
                  recipient: recipient
                }
              }, fee, memo, funds);
            case 1:
              return _context0.a(2, _context0.v);
          }
        }, _callee0);
      }));
      return function (_x9) {
        return _ref17.apply(this, arguments);
      };
    }());
    _this2.client = client;
    _this2.sender = sender;
    _this2.contractAddress = contractAddress;
    _this2.addLiquidity = _this2.addLiquidity.bind(_this2);
    _this2.removeLiquidity = _this2.removeLiquidity.bind(_this2);
    _this2.swapToken1ForToken2 = _this2.swapToken1ForToken2.bind(_this2);
    _this2.swapToken2ForToken1 = _this2.swapToken2ForToken1.bind(_this2);
    _this2.multiContractSwap = _this2.multiContractSwap.bind(_this2);
    _this2.swapTo = _this2.swapTo.bind(_this2);
    return _this2;
  }
  (0, _inherits2["default"])(WasmswapClient, _WasmswapQueryClient2);
  return (0, _createClass2["default"])(WasmswapClient);
}(WasmswapQueryClient);