UNPKG

@algofi/v1

Version:

The official JavaScript SDK for the V2 Algofi Lending Market

1 lines 85.5 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,r,n=require("algosdk"),s=(e=n)&&"object"==typeof e&&"default"in e?e.default:e,a={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t,r,n,s,o,i,p,c="",d=0;for(e=a._utf8_encode(e);d<e.length;)s=(t=e.charCodeAt(d++))>>2,o=(3&t)<<4|(r=e.charCodeAt(d++))>>4,i=(15&r)<<2|(n=e.charCodeAt(d++))>>6,p=63&n,isNaN(r)?i=p=64:isNaN(n)&&(p=64),c=c+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(i)+this._keyStr.charAt(p);return c},decode:function(e){var t,r,n,s,o,i,p="",c=0;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");c<e.length;)n=this._keyStr.indexOf(e.charAt(c++)),t=(15&(s=this._keyStr.indexOf(e.charAt(c++))))<<4|(o=this._keyStr.indexOf(e.charAt(c++)))>>2,r=(3&o)<<6|(i=this._keyStr.indexOf(e.charAt(c++))),p+=String.fromCharCode(n<<2|s>>4),64!=o&&(p+=String.fromCharCode(t)),64!=i&&(p+=String.fromCharCode(r));return a._utf8_decode(p)},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");for(var t="",r=0;r<e.length;r++){var n=e.charCodeAt(r);n<128?t+=String.fromCharCode(n):n>127&&n<2048?(t+=String.fromCharCode(n>>6|192),t+=String.fromCharCode(63&n|128)):(t+=String.fromCharCode(n>>12|224),t+=String.fromCharCode(n>>6&63|128),t+=String.fromCharCode(63&n|128))}return t},_utf8_decode:function(e){for(var t="",r=0,n=0,s=0,a=0;r<e.length;)(n=e.charCodeAt(r))<128?(t+=String.fromCharCode(n),r++):n>191&&n<224?(s=e.charCodeAt(r+1),t+=String.fromCharCode((31&n)<<6|63&s),r+=2):(s=e.charCodeAt(r+1),a=e.charCodeAt(r+2),t+=String.fromCharCode((15&n)<<12|(63&s)<<6|63&a),r+=3);return t}},o=BigInt(1e18),i=new n.LogicSigAccount(new Uint8Array([6,49,16,129,6,18,68,49,25,129,0,18,68,49,9,50,3,18,68,49,32,50,3,18,68,129,1,67])),p=new TextEncoder;function c(){c=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},s=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",o=n.toStringTag||"@@toStringTag";function i(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{i({},"")}catch(e){i=function(e,t,r){return e[t]=r}}function p(e,t,r,n){var s=Object.create((t&&t.prototype instanceof h?t:h).prototype),a=new I(n||[]);return s._invoke=function(e,t,r){var n="suspendedStart";return function(s,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===s)throw a;return{value:void 0,done:!0}}for(r.method=s,r.arg=a;;){var o=r.delegate;if(o){var i=k(o,r);if(i){if(i===u)continue;return i}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var p=d(e,t,r);if("normal"===p.type){if(n=r.done?"completed":"suspendedYield",p.arg===u)continue;return{value:p.arg,done:r.done}}"throw"===p.type&&(n="completed",r.method="throw",r.arg=p.arg)}}}(e,r,a),s}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=p;var u={};function h(){}function g(){}function l(){}var f={};i(f,s,(function(){return this}));var m=Object.getPrototypeOf,A=m&&m(m(S([])));A&&A!==t&&r.call(A,s)&&(f=A);var v=l.prototype=h.prototype=Object.create(f);function w(e){["next","throw","return"].forEach((function(t){i(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){var n;this._invoke=function(s,a){function o(){return new t((function(n,o){!function n(s,a,o,i){var p=d(e[s],e,a);if("throw"!==p.type){var c=p.arg,u=c.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,i)}),(function(e){n("throw",e,o,i)})):t.resolve(u).then((function(e){c.value=e,o(c)}),(function(e){return n("throw",e,o,i)}))}i(p.arg)}(s,a,n,o)}))}return n=n?n.then(o,o):o()}}function k(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,k(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var n=d(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,u;var s=n.arg;return s?s.done?(t[e.resultName]=s.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):s:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function T(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function y(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function S(e){if(e){var t=e[s];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,a=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return a.next=a}}return{next:b}}function b(){return{value:void 0,done:!0}}return g.prototype=l,i(v,"constructor",l),i(l,"constructor",g),g.displayName=i(l,o,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,i(e,o,"GeneratorFunction")),e.prototype=Object.create(v),e},e.awrap=function(e){return{__await:e}},w(x.prototype),i(x.prototype,a,(function(){return this})),e.AsyncIterator=x,e.async=function(t,r,n,s,a){void 0===a&&(a=Promise);var o=new x(p(t,r,n,s),a);return e.isGeneratorFunction(r)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},w(v),i(v,o,"Generator"),i(v,s,(function(){return this})),i(v,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},e.values=S,I.prototype={constructor:I,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(y),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return o.type="throw",o.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var s=this.tryEntries.length-1;s>=0;--s){var a=this.tryEntries[s],o=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=r.call(a,"catchLoc"),p=r.call(a,"finallyLoc");if(i&&p){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(i){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!p)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var s=this.tryEntries[n];if(s.tryLoc<=this.prev&&r.call(s,"finallyLoc")&&this.prev<s.finallyLoc){var a=s;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,u):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),u},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),y(r),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var s=n.arg;y(r)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:S(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),u}},e}function d(e,t,r,n,s,a,o){try{var i=e[a](o),p=i.value}catch(e){return void r(e)}i.done?t(p):Promise.resolve(p).then(n,s)}function u(e){return function(){var t=this,r=arguments;return new Promise((function(n,s){var a=e.apply(t,r);function o(e){d(a,n,s,o,i,"next",e)}function i(e){d(a,n,s,o,i,"throw",e)}o(void 0)}))}}function h(){return(h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function l(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return g(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function f(e){var t=e.reduce((function(e,t){return e+t.length}),0);if(!e.length)return null;for(var r,n=new Uint8Array(t),s=0,a=l(e);!(r=a()).done;){var o=r.value;n.set(o,s),s+=o.length}return n}function m(e){for(var t={},r=0,n=Object.entries(e);r<n.length;r++){var s=n[r],a=s[0],o=s[1],i=a.indexOf("_");if(i>0){var p=a.substring(0,i+1),c=a.substring(i+1);t[p+Uint8Array.from(c,(function(e){return e.charCodeAt(0)}))[7].toString()]=o}else t[a]=o}return t}function A(e){return n.encodeAddress(Buffer.from(e,"base64"))}function v(e){for(var t=new Uint8Array(e.length),r=0;r<e.length;++r)t[r]=e.charCodeAt(r);return t}function w(e,t){return e.publicKey.length==t.publicKey.length&&e.publicKey.every((function(e,r){return e==t.publicKey[r]}))&&e.checksum.length==t.checksum.length&&e.checksum.every((function(e,r){return e==t.checksum[r]}))}function x(e){for(var t,r=[],s=l(e);!(t=s()).done;)for(var a,o=l(t.value);!(a=o()).done;)r.push(a.value);for(var i=0,p=r;i<p.length;i++)p[i].group=void 0;return n.assignGroupID(r)}(t=exports.Network||(exports.Network={}))[t.MAINNET=0]="MAINNET",t[t.MAINNET_CLONE=1]="MAINNET_CLONE",t[t.MAINNET_CLONE2=2]="MAINNET_CLONE2",t[t.TESTNET=3]="TESTNET",t[t.MAINNET_CLONE3=4]="MAINNET_CLONE3";var k,T=function(e,t,r){this.name=e,this.assetId=t,this.decimals=r},y=((r={})[exports.Network.MAINNET]={1:new T("ALGO",1,6)},r[exports.Network.MAINNET_CLONE]={1:new T("ALGO",1,6),785578010:new T("m0",785578010,0),785579415:new T("m1",785579415,0),785579619:new T("m2",785579619,0),785580502:new T("m3",785580502,0),753117075:new T("AF-BANK-ALGO-STANDARD",753117075,6),753101315:new T("USDC",753101315,6),753119272:new T("AF-BANK-USDC-STANDARD",753119272,6),753101485:new T("USDT",753101485,6),753119789:new T("AF-BANK-USDT-STANDARD",753119789,6),753102180:new T("goBTC",753102180,8),753120742:new T("AF-BANK-GOBTC-STANDARD",753120742,6),753102376:new T("goETH",753102376,8),753121086:new T("AF-BANK-GOETH-STANDARD",753121086,6),753103963:new T("WETH",753103963,6),753121726:new T("AF-BANK-WETH-STANDARD",753121726,6),753103642:new T("WBTC",753103642,6),753121416:new T("AF-BANK-WBTC-STANDARD",753121416,6),753104158:new T("WSOL",753104158,6),753122003:new T("AF-BANK-WSOL-STANDARD",753122003,6),753122631:new T("AF-BANK-ALGO-VAULT",753122631,6),753101784:new T("STBL",753101784,6),753120193:new T("AF-BANK-STBL-STBL",753120193,6),753104718:new T("BANK",753104718,6),753122293:new T("AF-BANK-BANK-STANDARD",753122293,6)},r[exports.Network.MAINNET_CLONE2]={1:new T("ALGO",1,6),802887010:new T("AF-BANK-ALGO-STANDARD",802887010,6),802871797:new T("USDC",802871797,6),802887476:new T("AF-BANK-USDC-STANDARD",802887476,6),802873705:new T("goBTC",802873705,8),802888469:new T("AF-BANK-GOBTC-STANDARD",802888469,6),802874445:new T("goETH",802874445,8),802888853:new T("AF-BANK-GOETH-STANDARD",802888853,6),802872834:new T("STBL2",802872834,6),802887973:new T("AF-BANK-STBL-STBL2",802887973,6)},r[exports.Network.TESTNET]={1:new T("ALGO",1,6),91638233:new T("AF-BANK-ALGO-STANDARD",91638233,6),91634316:new T("USDC",91634316,6),91638306:new T("AF-BANK-USDC-STANDARD",91638306,6),91634828:new T("USDT",91634828,6),91638392:new T("AF-BANK-USDT-STANDARD",91638392,6),91634454:new T("goBTC",91634454,8),91638538:new T("AF-BANK-GOBTC-STANDARD",91638538,6),91634487:new T("goETH",91634487,8),91638603:new T("AF-BANK-GOETH-STANDARD",91638603,6),91634534:new T("WETH",91634534,6),91638687:new T("AF-BANK-WETH-STANDARD",91638687,6),91634562:new T("WBTC",91634562,6),91638794:new T("AF-BANK-WBTC-STANDARD",91638794,6),91634691:new T("WSOL",91634691,6),91638864:new T("AF-BANK-WSOL-STANDARD",91638864,6),91639146:new T("AF-BANK-ALGO-VAULT",91639146,6),91634578:new T("STBL",91634578,6),91638952:new T("AF-BANK-STBL-STBL",91638952,6),91634736:new T("BANK",91634736,6),91639074:new T("AF-BANK-BANK-STANDARD",91639074,6)},r);function I(e,t){return S.apply(this,arguments)}function S(){return(S=u(c().mark((function e(t,r){var n,s;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getApplicationByID(r).do();case 2:return n=e.sent,s={},e.next=6,Promise.all(n.params["global-state"].map(function(){var e=u(c().mark((function e(t){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:s[a.decode(t.key)]=1==t.value.type?t.value.bytes:t.value.uint;case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 6:return e.abrupt("return",s);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function b(e,t,r){return N.apply(this,arguments)}function N(){return(N=u(c().mark((function e(t,r,n){var s,o;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s={},e.next=4,t.accountInformation(r).do();case 4:return o=e.sent,e.next=7,Promise.all(o["apps-local-state"].map(function(){var e=u(c().mark((function e(t){var r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t["key-value"]){e.next=5;break}return r={},e.next=4,Promise.all(t["key-value"].map(function(){var e=u(c().mark((function e(t){var n;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=a.decode(t.key),r[n]=1==t.value.type?t.value.bytes:t.value.uint;case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 4:s[t.id]=r;case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 7:return e.abrupt("return",s);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function C(e,t){return O.apply(this,arguments)}function O(){return(O=u(c().mark((function e(t,r){var n,s;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={},e.next=3,t.accountInformation(r).do();case 3:return n[1]=(s=e.sent).amount,e.next=7,Promise.all(s.assets.map(function(){var e=u(c().mark((function e(t){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n[t["asset-id"]]=t.amount;case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 7:return e.abrupt("return",n);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function E(e,t){return P.apply(this,arguments)}function P(){return(P=u(c().mark((function e(t,r){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.accountInformation(r).do();case 2:return e.abrupt("return",e.sent["min-balance"]);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function D(e){var t=0,r=0;return"pay"==e["tx-type"]?(t=1,r=e["payment-transaction"].amount):"axfer"==e["tx-type"]&&(t=e["asset-transfer-transaction"]["asset-id"],r=e["asset-transfer-transaction"].amount),[t,r]}(k=exports.TxnLoadMode||(exports.TxnLoadMode={}))[k.REFRESH=0]="REFRESH",k[k.REVERSE=1]="REVERSE";var M,L,U=function(){function e(e,t){this.balances={},this.algofiClient=e,this.algod=this.algofiClient.algod,this.indexer=this.algofiClient.indexer,this.address=t,this.lending=this.algofiClient.lending.getUser(this.address),this.staking=this.algofiClient.staking.getUser(this.address),this.v1Staking=this.algofiClient.v1Staking.getUser(this.address),this.governance=this.algofiClient.governance.getUser(this.address)}var t=e.prototype;return t.loadState=function(){var e=u(c().mark((function e(){var t;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,C(this.algod,this.address);case 2:return this.balances=e.sent,e.next=5,E(this.algod,this.address);case 5:return this.minBalance=e.sent,e.next=8,b(this.algod,this.address);case 8:return t=e.sent,e.next=11,this.lending.loadState(t);case 11:return e.next=13,this.staking.loadState(t);case 13:return e.next=15,this.v1Staking.loadState(t);case 15:return e.next=17,this.governance.loadState(t);case 17:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.isOptedInToAsset=function(e){return e in this.balances},t.getTransactionHistory=function(){var e=u(c().mark((function e(t){var r,n,s;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r={},t==exports.TxnLoadMode.REFRESH&&(this.transactions=[]),!(t==exports.TxnLoadMode.REVERSE&&this.transactions.length>0)){e.next=9;break}return e.next=6,this.indexer.lookupAccountTransactions(this.address).maxRound(this.transactions.slice(-1)[0].block).limit(100).do();case 6:r=e.sent,e.next=12;break;case 9:return e.next=11,this.indexer.lookupAccountTransactions(this.address).limit(100).do();case 11:r=e.sent;case 12:for(n=0;n<r.transactions.length;n++)"appl"==(s=r.transactions[n])["tx-type"]&&this.algofiClient.lending.isLendingTransaction(s)&&this.lending.parseTransaction(r.transactions,n,this.transactions);case 13:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),e}(),B=function(e){this.appId=e},R=((M={})[exports.Network.MAINNET]=new B(0),M[exports.Network.MAINNET_CLONE]=new B(753081696),M[exports.Network.MAINNET_CLONE2]=new B(802875339),M[exports.Network.MAINNET_CLONE3]=new B(812891680),M[exports.Network.TESTNET]=new B(91633688),M);(L=exports.MarketType||(exports.MarketType={}))[L.STANDARD=0]="STANDARD",L[L.STBL=1]="STBL",L[L.VAULT=2]="VAULT";var F,_=function(e,t,r,n){this.appId=e,this.underlyingAssetId=t,this.bAssetId=r,this.marketType=n},j=((F={})[exports.Network.MAINNET]=[new _(0,1,0,exports.MarketType.STANDARD)],F[exports.Network.MAINNET_CLONE]=[new _(753107352,1,753117075,exports.MarketType.STANDARD),new _(753108247,753101315,753119272,exports.MarketType.STANDARD),new _(753108576,753101485,753119789,exports.MarketType.STANDARD),new _(753109347,753101784,753120193,exports.MarketType.STBL),new _(753110308,753102180,753120742,exports.MarketType.STANDARD),new _(753110704,753102376,753121086,exports.MarketType.STANDARD),new _(753110470,753103642,753121416,exports.MarketType.STANDARD),new _(753110943,753103963,753121726,exports.MarketType.STANDARD),new _(753111321,753104158,753122003,exports.MarketType.STANDARD),new _(753111740,753104718,753122293,exports.MarketType.STANDARD),new _(753112308,1,753122631,exports.MarketType.VAULT)],F[exports.Network.MAINNET_CLONE2]=[new _(802880734,1,802887010,exports.MarketType.STANDARD),new _(802881530,802871797,802887476,exports.MarketType.STANDARD),new _(802882874,802872834,802887973,exports.MarketType.STBL),new _(802881983,802873705,802888469,exports.MarketType.STANDARD),new _(802882365,802874445,802888853,exports.MarketType.STANDARD),new _(802883364,1,802889344,exports.MarketType.VAULT)],F[exports.Network.MAINNET_CLONE3]=[new _(812905712,1,812910520,exports.MarketType.STANDARD),new _(812916046,812915205,812916935,exports.MarketType.STANDARD),new _(812930890,812930638,812931295,exports.MarketType.STANDARD),new _(812935796,812932283,812936076,exports.MarketType.STBL),new _(812919965,812919854,812920370,exports.MarketType.STANDARD),new _(812923132,812922836,812924856,exports.MarketType.STANDARD),new _(812928007,1,812928844,exports.MarketType.VAULT)],F[exports.Network.TESTNET]=[new _(91635808,1,91638233,exports.MarketType.STANDARD),new _(91636097,91634316,91638306,exports.MarketType.STANDARD),new _(91636162,91634828,91638392,exports.MarketType.STANDARD),new _(91636638,91634454,91638538,exports.MarketType.STANDARD),new _(91636680,91634487,91638603,exports.MarketType.STANDARD),new _(91636742,91634534,91638687,exports.MarketType.STANDARD),new _(91636787,91634562,91638794,exports.MarketType.STANDARD),new _(91636896,91634691,91638864,exports.MarketType.STANDARD),new _(91637209,1,91639146,exports.MarketType.VAULT),new _(91637110,91634578,91638952,exports.MarketType.STBL),new _(91636998,91634736,91639074,exports.MarketType.STANDARD)],F);function G(e){return V.apply(this,arguments)}function V(){return(V=u(c().mark((function e(t){var r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getTransactionParams().do();case 2:return(r=e.sent).fee=1e3,r.flatFee=!0,e.abrupt("return",r);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function K(e,t,r,n,a){return 1==n?s.makePaymentTxnWithSuggestedParamsFromObject({from:t,to:r,amount:a,suggestedParams:e,rekeyTo:void 0}):s.makeAssetTransferTxnWithSuggestedParamsFromObject({from:t,to:r,amount:a,assetIndex:n,suggestedParams:e,rekeyTo:void 0,revocationTarget:void 0})}var W,H,Y,q=function(){function e(e,t){this.localMinBalance=614e3,this.algod=e,this.appId=t,this.address=n.getApplicationAddress(this.appId)}var t=e.prototype;return t.getOptInTxns=function(){var e=u(c().mark((function e(t,r){var a,o,i,d;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,G(this.algod);case 2:return o=K(a=e.sent,t.address,r.addr,1,this.localMinBalance+101e3),i=s.makeApplicationOptInTxnFromObject({from:r.addr,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("saoi")],accounts:void 0,foreignApps:void 0,foreignAssets:void 0,rekeyTo:this.address}),d=s.makeApplicationOptInTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("uoi")],accounts:[r.addr],foreignApps:void 0,foreignAssets:void 0,rekeyTo:void 0}),e.abrupt("return",n.assignGroupID([o,i,d]));case 7:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t.getOptOutTxns=function(){var e=u(c().mark((function e(t){var r,n;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,G(this.algod);case 2:return(r=e.sent).fee=2e3,n=s.makeApplicationCloseOutTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:r,appArgs:void 0,accounts:[t.lending.storageAddress],foreignApps:void 0,foreignAssets:void 0,rekeyTo:void 0}),e.abrupt("return",[n]);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getMarketOptInTxns=function(){var e=u(c().mark((function e(t,r){var a,o,i,d;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,G(this.algod);case 2:return o=K(a=e.sent,t.address,t.lending.storageAddress,1,r.localMinBalance),i=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("vm")],accounts:[r.address],foreignApps:[r.appId],foreignAssets:void 0,rekeyTo:void 0}),a.fee=2e3,d=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("umoi")],accounts:[t.lending.storageAddress],foreignApps:[r.appId],foreignAssets:void 0,rekeyTo:void 0}),e.abrupt("return",n.assignGroupID([o,i,d]));case 8:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t.getMarketOptOutTxns=function(){var e=u(c().mark((function e(t,r){var a,o,i,d,u;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,G(this.algod);case 2:return a=e.sent,o=t.lending.getMarketPageOffset(r.appId),i=o[0],d=o[1],a.fee=3e3,u=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("umco"),f([n.encodeUint64(i),n.encodeUint64(d)])],accounts:[t.lending.storageAddress],foreignApps:[r.appId],foreignAssets:void 0,rekeyTo:void 0}),e.abrupt("return",[u]);case 7:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t.getGovernanceTxns=function(){var e=u(c().mark((function e(t,r,a){var o,i;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,G(this.algod);case 2:return(o=e.sent).fee=2e3,i=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:o,appArgs:[p.encode("sgt")],accounts:[t.lending.storageAddress,r],foreignApps:void 0,foreignAssets:void 0,rekeyTo:void 0,note:p.encode(a)}),e.abrupt("return",n.assignGroupID([i]));case 6:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),t.getKeyregTxns=function(){var e=u(c().mark((function e(t,r,a,o,i,d,u){var h,g;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,G(this.algod);case 2:return(h=e.sent).fee=2e3,g=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:h,appArgs:[p.encode("skt"),new Uint8Array(Buffer.from(r,"base64")),new Uint8Array(Buffer.from(a,"base64")),new Uint8Array(Buffer.from(o,"base64")),n.encodeUint64(i),n.encodeUint64(d),n.encodeUint64(u)],accounts:[t.lending.storageAddress],foreignApps:void 0,foreignAssets:void 0,rekeyTo:void 0}),e.abrupt("return",n.assignGroupID([g]));case 6:case"end":return e.stop()}}),e,this)})));return function(t,r,n,s,a,o,i){return e.apply(this,arguments)}}(),t.getKeyregOfflineTxns=function(){var e=u(c().mark((function e(t){var r,a,o;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,G(this.algod);case 2:return a=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:r=e.sent,appArgs:[p.encode("vsat")],accounts:[t.lending.storageAddress],foreignApps:void 0,foreignAssets:void 0,rekeyTo:void 0}),r.fee=2e3,o=s.makeApplicationNoOpTxnFromObject({from:i.lsig.address(),appIndex:this.appId,suggestedParams:r,appArgs:[p.encode("skot")],accounts:[t.lending.storageAddress],foreignApps:void 0,foreignAssets:void 0,rekeyTo:void 0}),e.abrupt("return",n.assignGroupID([a,o]));case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),e}(),z=function(e,t){this.underlying=e,this.usd=t},Z=function(){function e(e,t,r,n,s){this.algod=e,this.appId=t,this.priceFieldName=r,this.scaleFactor=n,this.underlyingAssetDecimals=s}return e.prototype.loadPrice=function(){var e=u(c().mark((function e(){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,I(this.algod,this.appId);case 2:this.rawPrice=e.sent[this.priceFieldName],this.price=this.rawPrice*this.underlyingAssetDecimals/(1e3*this.scaleFactor);case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),e}(),J=function(e,t){var r=Buffer.from(e["rps_"+String.fromCharCode.apply(null,n.encodeUint64(t))],"base64").toString("binary");this.programNumber=n.decodeUint64(v(r.substr(0,8)),"safe"),this.rewardsPerSecond=n.decodeUint64(v(r.substr(8,8)),"safe"),this.assetID=n.decodeUint64(v(r.substr(16,8)),"safe"),this.issued=n.decodeUint64(v(r.substr(24,8)),"safe"),this.claimed=n.decodeUint64(v(r.substr(32,8)),"safe");var s=new Uint8Array(Buffer.from(e["ri_"+String.fromCharCode.apply(null,n.encodeUint64(t))],"base64"));this.index=n.bytesToBigInt(s)},Q=function(){function e(e,t,r,s){this.localMinBalance=414e3,this.rewardsPrograms=[],this.algod=e,this.lendingClient=t,this.managerAppId=r,this.appId=s.appId,this.address=n.getApplicationAddress(this.appId),this.marketType=s.marketType,this.underlyingAssetId=s.underlyingAssetId,this.bAssetId=s.bAssetId}var t=e.prototype;return t.loadState=function(){var e=u(c().mark((function e(){var t,r,n;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,I(this.algod,this.appId);case 2:return this.borrowFactor=(t=e.sent).bf,this.collateralFactor=t.cf,this.flashLoanFee=t.flf,this.flashLoanProtocolFee=t.flpf,this.maxFlashLoanRatio=t.mflr,this.liquidationIncentive=t.li,this.liquidationFee=t.lf,this.reserveFactor=t.rf,this.underlyingSupplyCap=t.usc,this.underlyingBorrowCap=t.ubc,this.baseInterestRate=t.bir,this.baseInterestSlope=t.bis,this.quadraticInterestAmplificationFactor=t.eiaf,this.targetUtilizationRatio=t.tur,this.oracle=new Z(this.algod,t.oai,a.decode(t.opfn),t.opsf,Math.pow(10,this.lendingClient.algofiClient.assets[this.underlyingAssetId].decimals)),e.next=20,this.oracle.loadPrice();case 20:this.underlyingCash=t.uc,this.underlyingBorrowed=t.ub,this.underlyingReserves=t.ur,this.borrowShareCirculation=t.bsc,this.bAssetCirculation=t.bac,this.activeBAssetCollateral=t.ac,this.underlyingProtocolReserve=t.upr||0,this.latestTime=t.lt,this.borrowIndex=t.bi,this.impliedBorrowIndex=t.ibi,this.totalSupplied=new z(this.getUnderlyingSupplied()/Math.pow(10,this.lendingClient.algofiClient.assets[this.underlyingAssetId].decimals),this.convertUnderlyingToUSD(this.getUnderlyingSupplied())),this.totalBorrowed=new z(this.underlyingBorrowed/Math.pow(10,this.lendingClient.algofiClient.assets[this.underlyingAssetId].decimals),this.convertUnderlyingToUSD(this.underlyingBorrowed)),r=this.getAPRs(this.totalSupplied.underlying,this.totalBorrowed.underlying),n=r[1],this.supplyAPR=r[0],this.borrowAPR=n,this.rewardsPrograms=[],this.rewardsPrograms.push(new J(t,0)),this.rewardsPrograms.push(new J(t,1)),this.rewardsEscrowAccount=A(t.rea);case 39:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.getUnderlyingSupplied=function(){return this.marketType==exports.MarketType.STBL?this.underlyingCash:this.underlyingBorrowed+this.underlyingCash-this.underlyingReserves},t.getAPRs=function(e,t){var r=t/e||0,n=this.baseInterestRate/1e6;return n+=r*this.baseInterestSlope/1e6,r>this.targetUtilizationRatio/1e6&&(n+=this.quadraticInterestAmplificationFactor*Math.pow(r-this.targetUtilizationRatio/1e6,2)),[n*r*(1-this.reserveFactor/1e3),n]},t.convertUnderlyingToUSD=function(e){return e*this.oracle.rawPrice/(1e3*this.oracle.scaleFactor)},t.convertUSDToUnderlying=function(e){return e*this.oracle.scaleFactor*1e3/this.oracle.rawPrice},t.bAssetToAssetAmount=function(e){if(0==e)return new z(0,0);var t=e*this.getUnderlyingSupplied()/this.bAssetCirculation,r=t/Math.pow(10,this.lendingClient.algofiClient.assets[this.underlyingAssetId].decimals),n=this.convertUnderlyingToUSD(t);return new z(r,n)},t.borrowSharesToAssetAmount=function(e){if(0==e)return new z(0,0);var t=e*this.underlyingBorrowed/this.borrowShareCirculation,r=t/Math.pow(10,this.lendingClient.algofiClient.assets[this.underlyingAssetId].decimals),n=this.convertUnderlyingToUSD(t);return new z(r,n)},t.underlyingToBAssetAmount=function(e){return Math.floor(e*this.bAssetCirculation/this.getUnderlyingSupplied())},t.getMaximumWithdrawAmount=function(e,t){void 0===t&&(t=.9);var r=1e3*(e.lending.netScaledCollateral-e.lending.netScaledBorrow/t)/this.collateralFactor,n=Math.floor(this.convertUSDToUnderlying(r));return new z(n,r)},t.getMaximumBorrowAmount=function(e,t){void 0===t&&(t=.9);var r=1e3*(e.lending.netScaledCollateral*t-e.lending.netScaledBorrow)*.999/this.borrowFactor,n=Math.floor(this.convertUSDToUnderlying(r));return new z(n,r)},t.getPreambleTransactions=function(){var e=u(c().mark((function e(t,r,n){var s,a,o,i,p;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=[],r.isOptedInToAsset(this.underlyingAssetId)||s.push(K(t,r.address,r.address,this.underlyingAssetId,0)),r.isOptedInToAsset(this.bAssetId)||s.push(K(t,r.address,r.address,this.bAssetId,0)),a=0,!n){e.next=10;break}return e.next=7,r.lending.getCalcUserPositionTransactions(this.appId);case 7:for(a=1e3*(o=e.sent).length,i=l(o);!(p=i()).done;)s.push(p.value);case 10:return e.abrupt("return",[s,a]);case 11:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),t.getMintTxns=function(){var e=u(c().mark((function e(t,r){var a,o,i,d;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.marketType!=exports.MarketType.VAULT){e.next=2;break}throw"Mint action not supported by vault market";case 2:return e.next=4,G(this.algod);case 4:return a=e.sent,e.next=8,this.getPreambleTransactions(a,t,!1);case 8:return o=e.sent[0],i=K(a,t.address,this.address,this.underlyingAssetId,r),a.fee=3e3,d=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("mba")],accounts:void 0,foreignApps:[this.managerAppId],foreignAssets:[this.bAssetId],rekeyTo:void 0}),e.abrupt("return",n.assignGroupID(o.concat([i,d])));case 15:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t.getAddUnderlyingCollateralTxns=function(){var e=u(c().mark((function e(t,r){var a,o,i,d,u;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,G(this.algod);case 2:return a=e.sent,e.next=6,this.getPreambleTransactions(a,t,!1);case 6:return o=e.sent[0],i=this.marketType!=exports.MarketType.VAULT?this.address:t.lending.storageAddress,d=K(a,t.address,i,this.underlyingAssetId,r),a.fee=2e3,u=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("auc")],accounts:[t.lending.storageAddress],foreignApps:[this.managerAppId],foreignAssets:void 0,rekeyTo:void 0}),e.abrupt("return",n.assignGroupID(o.concat([d,u])));case 14:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t.getAddBAssetCollateralTxns=function(){var e=u(c().mark((function e(t,r){var a,o,i,d;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.marketType!=exports.MarketType.VAULT){e.next=2;break}throw"Add b asset collateral action not supported by vault market";case 2:return e.next=4,G(this.algod);case 4:return a=e.sent,e.next=8,this.getPreambleTransactions(a,t,!1);case 8:return o=e.sent[0],i=K(a,t.address,this.address,this.bAssetId,r),a.fee=2e3,d=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("abc")],accounts:[t.lending.storageAddress],foreignApps:[this.managerAppId],foreignAssets:void 0,rekeyTo:void 0}),e.abrupt("return",n.assignGroupID(o.concat([i,d])));case 15:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t.getRemoveUnderlyingCollateralTxns=function(){var e=u(c().mark((function e(t,r,a){var o,i,d,u,h,g;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===a&&(a=!1),o=Math.min(this.underlyingToBAssetAmount(r),t.lending.userMarketStates[this.appId].b_asset_collateral),a&&(o=t.lending.userMarketStates[this.appId].b_asset_collateral),e.next=5,G(this.algod);case 5:return i=e.sent,e.next=9,this.getPreambleTransactions(i,t,!0);case 9:return u=(d=e.sent)[0],h=d[1],i.fee=this.marketType!=exports.MarketType.VAULT?3e3+h:4e3+h,g=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:i,appArgs:[p.encode("ruc"),n.encodeUint64(o)],accounts:[t.lending.storageAddress],foreignApps:[this.managerAppId],foreignAssets:[this.underlyingAssetId],rekeyTo:void 0}),e.abrupt("return",n.assignGroupID(u.concat([g])));case 15:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),t.getRemoveBAssetCollateralTxns=function(){var e=u(c().mark((function e(t,r){var a,o,i,d;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.marketType!=exports.MarketType.VAULT){e.next=2;break}throw"Remove b asset collateral action not supported by vault market";case 2:return e.next=4,G(this.algod);case 4:return a=e.sent,e.next=8,this.getPreambleTransactions(a,t,!0);case 8:return i=(o=e.sent)[0],a.fee=3e3+o[1],d=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("rbc"),n.encodeUint64(r)],accounts:[t.lending.storageAddress],foreignApps:[this.managerAppId],foreignAssets:[this.bAssetId],rekeyTo:void 0}),e.abrupt("return",n.assignGroupID(i.concat([d])));case 14:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t.getBurnTxns=function(){var e=u(c().mark((function e(t,r){var a,o,i,d;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.marketType!=exports.MarketType.VAULT){e.next=2;break}throw"Burn action not supported by vault market";case 2:return e.next=4,G(this.algod);case 4:return a=e.sent,e.next=8,this.getPreambleTransactions(a,t,!1);case 8:return o=e.sent[0],i=K(a,t.address,this.address,this.bAssetId,r),a.fee=3e3,d=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("br")],accounts:void 0,foreignApps:[this.managerAppId],foreignAssets:[this.underlyingAssetId],rekeyTo:void 0}),e.abrupt("return",n.assignGroupID(o.concat([i,d])));case 15:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t.getBorrowTxns=function(){var e=u(c().mark((function e(t,r){var a,o,i,d;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.marketType!=exports.MarketType.VAULT){e.next=2;break}throw"Borrow action not supported by vault market";case 2:return e.next=4,G(this.algod);case 4:return a=e.sent,e.next=8,this.getPreambleTransactions(a,t,!0);case 8:return i=(o=e.sent)[0],a.fee=3e3+o[1],d=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:a,appArgs:[p.encode("b"),n.encodeUint64(r)],accounts:[t.lending.storageAddress],foreignApps:[this.managerAppId],foreignAssets:[this.underlyingAssetId],rekeyTo:void 0}),e.abrupt("return",n.assignGroupID(i.concat([d])));case 14:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t.getRepayBorrowTxns=function(){var e=u(c().mark((function e(t,r,a){var o,i,d,u,h;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===a&&(a=!1),this.marketType!=exports.MarketType.VAULT){e.next=3;break}throw"Repay borrow action not supported by vault market";case 3:return o=r,a&&(o=1==this.underlyingAssetId?Math.min(Math.ceil(1.001*o),t.balances[1]-t.minBalance-1e5):Math.min(Math.ceil(1.001*o),t.balances[this.underlyingAssetId])),e.next=7,G(this.algod);case 7:return i=e.sent,e.next=11,this.getPreambleTransactions(i,t,!1);case 11:return d=e.sent[0],u=K(i,t.address,this.address,this.underlyingAssetId,o),i.fee=3e3,h=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:i,appArgs:[p.encode("rb")],accounts:[t.lending.storageAddress],foreignApps:[this.managerAppId],foreignAssets:[this.underlyingAssetId],rekeyTo:void 0}),e.abrupt("return",n.assignGroupID(d.concat([u,h])));case 18:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),t.getClaimRewardsTxns=function(){var e=u(c().mark((function e(t){var r,a,o,i,d;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,G(this.algod);case 2:for(r=e.sent,a=[],o=0;o<2;++o)t.lending.userMarketStates[this.appId].rewardsProgramStates[o].realUnclaimed>0&&((i=this.rewardsPrograms[o].assetID)>1&&(t.isOptedInToAsset(i)||(r.fee=1e3,a.push(K(r,t.address,t.address,i,0)))),r.fee=3e3,d=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:r,appArgs:[p.encode("cr"),n.encodeUint64(o)],accounts:[t.lending.storageAddress,this.rewardsEscrowAccount],foreignApps:[this.managerAppId],foreignAssets:[i],rekeyTo:void 0}),a.push(d));return e.abrupt("return",a);case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.getSyncVaultTxns=function(){var e=u(c().mark((function e(t){var r;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.marketType==exports.MarketType.VAULT){e.next=2;break}throw"Sync vault action only supported by vault market";case 2:return e.next=4,G(this.algod);case 4:return r=s.makeApplicationNoOpTxnFromObject({from:t.address,appIndex:this.appId,suggestedParams:e.sent,appArgs:[p.encode("sv")],accounts:[t.lending.storageAddress],foreignApps:[this.managerAppId],foreignAssets:[this.underlyingAssetId],rekeyTo:void 0}),e.abrupt("return",n.assignGroupID([r]));case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),e}(),X=function(e,t,r,n,s,a,o,i,p){this.transactionId=e.id,this.groupId=e.group,this.block=e["confirmed-round"],this.time=e["round-time"],this.protocol=t,this.app=r,this.action=n,this.params=s,this.assetIn=a,this.amountIn=o,this.assetOut=i,this.amountOut=p},$=function(e,t,r,s,a){if(this.programNumber=e["urpn_"+String.fromCharCode.apply(null,n.encodeUint64(a))],this.assetID=t.rewardsPrograms[a].assetID,this.programNumber==t.rewardsPrograms[a].programNumber){var i=new Uint8Array(Buffer.from(e["ulri_"+String.fromCharCode.apply(null,n.encodeUint64(a))],"base64"));this.latestIndex=n.bytesToBigInt(i);var p=new Uint8Array(Buffer.from(e["uur_"+String.fromCharCode.apply(null,n.encodeUint64(a))],"base64"));this.unclaimed=n.bytesToBigInt(p)}else this.latestIndex=BigInt(0),this.unclaimed=BigInt(0);this.realUnclaimed=Number(this.unclaimed/o);var c=0,d=0;t.marketType==exports.MarketType.VAULT?(c=r,d=t.bAssetCirculation):(c=s,d=t.borrowShareCirculation),this.realUnclaimed+=Number((t.rewardsPrograms[a].index-this.latestIndex)*BigInt(c)/o),this.rewardsPerYear=31536e3*t.rewardsPrograms[a].rewardsPerSecond*c/d},ee=function(e,t){this.rewardsProgramStates=[],this.b_asset_collateral=e.ubac||0,this.borrow_shares=e.ubs||0,this.suppliedAmount=t.bAssetToAssetAmount(this.b_asset_collateral),this.borrowedAmount=t.borrowSharesToAssetAmount(this.borrow_shares),this.rewardsProgramStates=[],this.rewardsProgramStates.push(new $(e,t,this.b_asset_collateral,this.borrow_shares,0)),this.rewardsProgramStates.push(new $(e,t,this.b_asset_collateral,this.borrow_shares,1))},te=function(){function e(e,t){this.storageBalances={},this.optedInToManager=!1,this.optedInMarkets=[],this.userMarketStates={},this.netUnclaimedRewards={},this.netRewardsPerYear={},this.lendingClient=e,this.algod=this.lendingClient.algod,this.address=t}var t=e.prototype;return t.loadState=function(){var e=u(c().mark((function e(t){var r,s,a,o,i,p,d,h,g,l,f,m,w,x,k,T=this;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.lendingClient.manager.appId in t)){e.next=31;break}return this.optedInToManager=!0,this.storageAddress=A(t[this.lendingClient.manager.appId].sa),this.optedInMarkets=[],this.userMarketStates={},e.next=7,C(this.algod,this.storageAddress);case 7:return this.storageBalances=e.sent,e.next=10,E(this.algod,this.storageAddress);case 10:return this.storageMinBalance=e.sent,e.next=13,b(this.algod,this.storageAddress);case 13:for(s=(r=e.sent)[this.lendingClient.manager.appId],a=0;a<7;++a)if((o="om_"+String.fromCharCode.apply(null,n.encodeUint64(a)))in s)for(i=Buffer.from(s[o],"base64").toString("binary"),p=Math.floor(i.length/8),d=0;d<p;++d)this.optedInMarkets.push(n.decodeUint64(v(i.substr(8*d,8)),"safe"));return e.next=18,Promise.all(this.optedInMarkets.map(function(){var e=u(c().mark((function e(t){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:T.userMarketStates[t]=new ee(r[t],T.lendingClient.markets[t]);case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 18:for(this.netSupplied=0,this.netScaledCollateral=0,this.netBorrowed=0,this.netScaledBorrow=0,this.netUnclaimedRewards={},this.netRewardsPerYear={},h=0,g=0,l=0,f=Object.entries(this.userMarketStates);l<f.length;l++)for(x=this.lendingClient.markets[(m=f[l])[0]],this.netSupplied+=(w=m[1]).suppliedAmount.usd,this.netBorrowed+=w.borrowedAmount.usd,this.netScaledCollateral+=w.suppliedAmount.usd*x.collateralFactor/1e3,this.netScaledBorrow+=w.borrowedAmount.usd*x.borrowFactor/1e3,h+=w.suppliedAmount.usd*x.supplyAPR,g+=w.borrowedAmount.usd*x.borrowAPR,a=0;a<2;a++)this.netUnclaimedRewards[k=w.rewardsProgramStates[a].assetID]=w.rewardsProgramStates[a].realUnclaimed+(this.netUnclaimedRewards[k]||0),this.netRewardsPerYear[k]=w.rewardsProgramStates[a].rewardsPerYear+(this.netRewardsPerYear[k]||0);this.netSupplyAPR=h/this.netSupplied,this.netBorrowAPR=g/this.netBorrowed,e.next=32;break;case 31:this.optedInToManager=!1;case 32:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.isUserOptedIntoMarket=function(e){return e in this.userMarketStates},t.getMarketPageOffset=function(e){var t=this.optedInMarkets.indexOf(e);return[Math.floor(t/3),t%3]},t.getCalcUserPositionTransactions=function(){var e=u(c().mark((function e(t){var r,a,o,d,u,h,g,l,f;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=[],e.next=3,G(this.algod);case 3:for((a=e.sent).fee=0,o=Math.ceil(this.optedInMarkets.length/3),d=0;d<o;++d){for(u=3*(d+1)<=this.optedInMarkets.length?3:this.optedInMarkets.length%3,h=[],g=0;g<u;++g)h.push((l=this.lendingClient.markets[this.optedInMarkets[3*d+g]]).appId),h.push(l.oracle.appId);f=s.makeApplicationNoOpTxnFromObject({from:i.lsig.address(),appIndex:this.lendingClient.manager.appId,suggestedParams:a,appArgs:[p.encode("cup"),n.encodeUint64(d),n.encodeUint64(t)],accounts:[this.storageAddress],foreignApps:h,foreignAssets:void 0,rekeyTo:void 0}),r.push(f)}return e.abrupt("return",r);case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.parseTransaction=function(e,t,r){var n=e[t],s=e[t+1],o=n["application-transaction"]["application-id"];if(o==this.lendingClient.manager.appId)switch(a.decode(n["application-transaction"]["application-args"][0])){case"uoi":r.push(new X(n,"LENDING v2",o,"PROTOCOL OPT IN",[],0,0,0,0));break;case"umoi":r.push(new X(n,"LENDING v2",n["application-transaction"]["foreign-apps"][0],"MARKET OPT IN",[],0,0,0,0));break;case"umco":r.push(new X(n,"LENDING v2",n["application-transaction"]["foreign-apps"][0],"MARKET OPT OUT",[],0,0,0,0));break;default:return}else if(o in this.lendingClient.markets)switch(a.decode(n["application-transaction"]["application-args"][0])){case"mba":if(!s)return;var i=D(s),p=i[0],c=i[1],d=D(n["inner-txns"][1]);r.push(new X(n,"LENDING v2",o,"MINT B ASSET",[],p,c,d[0],d[1]));break;case"auc":if(!s)return;var u=D(s);r.push(new X(n,"LENDING v2",o,"ADD COLLATERAL",[],u[0],u[1],0,0));break;case"abc":if(!s)return;var h=D(s);r.push(new X(n,"LENDING v2",o,"ADD B ASSET",[],h[0],h[1],0,0));break;case"ruc":var g=0,l=0;if(this.lendingClient.markets[o].marketType==exports.MarketType.VAULT){var f=D(n["inner-txns"][1]["inner-txns"][0]);g=f[0],l=f[1]}else{var m=D(n["inner-txns"][1]);g=m[0],l=m[1]}r.push(new X(n,"LENDING v2",o,"REMOVE COLLATERAL",[],0,0,g,l));break;case"rbc":var A=D(n["inner-txns"][1]);r.push(new X(n,"LENDING v2",o,"REMOVE B ASSET",[],0,0,A[0],A[1]));break;case"br":if(!s)return;var v=D(s),w=v[0],x=v[1],k=D(n["inner-txns"][1]);r.push(new X(n,"LENDING v2",o,"BURN",[],w,x,k[0],k[1]));break;case"b":var T=D(n["inner-txns"][1]);r.push(new X(n,"LENDING v2",o,"BORROW",[],0,0,T[0],T[1]));break;case"rb":if(!s)return;var y=D(s);r.push(new X(n,"LENDING v2",o,"REPAY BORROW",[],y[0],y[1],0,0));break;case"cr":var I=D(n["inner-txns"][1]);r.push(new X(n,"LENDING v2",o,"CLAIM REWARDS",[],0,0,I[0],I[1]));break;default:return}},e}(),re=function(){function e(e){this.markets={},this.algofiClient=e,this.algod=this.algofiClient.algod,this.network=this.algofiClient.network,this.managerConfig=R[this.network],this.marketConfigs=j[this.network],this.manager=new q(this.algod,this.managerConfig.appId)}var t=e.prototype;return t.loadState=function(){var e=u(c().mark((function e(){var t=this;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(this.marketConfigs.map(function(){var e=u(c().mark((function e(r){var n;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=new Q(t.algod,t,t.manager.appId,r),e.next=3,n.loadState();case 3:t.markets[r.appId]=n;case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 2:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.getUser=function(e){return new te(this,e)},t.getClaimRewardsTxns=function(){var e=u(c().mark((function e(t){var r,s,a,o;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=[],s=l(t.lending.optedInMarkets);case 2:if((a=s()).done){e.next=12;break}if(o=a.value,!(r.length<=12)){e.next=10;break}return e.t0=r,e.next=8,this.markets[o].getClaimRewardsTxns(t);case 8:e.t1=e.sent,r=e.t0.concat.call(e.t0,e.t1);case 10:e.next=2;break;case 12:return e.abrupt("return",n.assignGroupID(r));case 13:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.isLendingTransaction=function(e){var t=e["application-transaction"]["application-id"];return t in this.markets||t==this.manager.appId},e}();!function(e){e[e.V1=0]="V1",e[e.V2=1]="V2",e[e.BASSET=2]="BASSET"}(Y||(Y={}));var ne,se,ae=function(e,t,r){this.appId=e,this.assetId=t,this.type=r},oe=((W={})[exports.Network.MAINNET_CLONE]=[new ae(785597550,785578010,Y.V2),new ae(785599248,785579619,Y.V2)],W[exports.Network.MAINNET_CLONE2]=[new ae(805980186,802871797,Y.V2),new ae(805982398,802872834,Y.V2),new ae(807135066,802887476,Y.BASSET)],W[exports.Network.TESTNET]=[new ae(96414588,96410661,Y.V2),new ae(96418091,96