UNPKG

@bombearn/sdk

Version:

Interaction framework for the yearn protocol

3 lines 191 kB
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0}),require("cross-fetch/polyfill");var t=require("@ethersproject/providers"),r=e(require("events")),n=require("bignumber.js"),a=e(n),s=require("@ethersproject/address"),i=require("@ethersproject/contracts"),o=e(require("emittery")),u=require("@ethersproject/abi"),c=require("@ethersproject/constants"),p=require("@ethersproject/bignumber"),d=e(require("cross-fetch")),l=require("@ethersproject/bignumber/lib/bignumber"),f=require("@cowprotocol/cow-sdk");function h(e,t,r,n,a,s,i){try{var o=e[s](i),u=o.value}catch(e){return void r(e)}o.done?t(u):Promise.resolve(u).then(n,a)}function v(e){return function(){var t=this,r=arguments;return new Promise((function(n,a){var s=e.apply(t,r);function i(e){h(s,n,a,i,o,"next",e)}function o(e){h(s,n,a,i,o,"throw",e)}i(void 0)}))}}function m(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function w(e,t,r){return t&&m(e.prototype,t),r&&m(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function x(){return(x=Object.assign||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 b(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,g(e,t)}function y(e){return(y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function g(e,t){return(g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function A(e,t,r){return(A=k()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var a=new(Function.bind.apply(e,n));return r&&g(a,r.prototype),a}).apply(null,arguments)}function S(e){var t="function"==typeof Map?new Map:void 0;return(S=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return A(e,arguments,y(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),g(r,e)})(e)}function T(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 E(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 T(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)?T(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.")}var I=function(e){function t(t,r){var n;return(n=e.call(this,t)||this).error_type=r,n}return b(t,e),t}(S(Error)),P=function(e){function t(t,r){var n;return(n=e.call(this,t,"sdk")||this).error_code=r,n}return b(t,e),t}(I);P.NO_SLIPPAGE="no_slippage";var O=function(e){function t(t,r){var n;return(n=e.call(this,t,"simulation")||this).error_code=r,n}return b(t,e),t}(I);O.NO_LOG="no_log",O.TENDERLY_RESPONSE_ERROR="tenderly_response_error",O.PARTIAL_REVERT="partial_revert",O.INVALID_TYPE="invalid_type";var _=function(e){function t(t,r){var n;return(n=e.call(this,t,"zap")||this).error_code=r,n}return b(t,e),t}(I);_.ZAP_IN_APPROVAL_STATE="zap_in_approval_state",_.ZAP_IN_APPROVAL="zap_in_approval",_.ZAP_OUT_APPROVAL_STATE="zap_out_approval_state",_.ZAP_OUT_APPROVAL="zap_out_approval",_.ZAP_IN="zap_in",_.ZAP_OUT="zap_out";var D=function(e){function t(t,r){var n;return(n=e.call(this,t,"ethers")||this).error_code=r,n}return b(t,e),t}(I);D.FAIL_TOKEN_FETCH="fail_token_fetch",D.NO_DECIMALS="no_decimals",D.NO_PRICE_PER_SHARE="no_price_per_share",D.POPULATING_TRANSACTION="populating_transaction";var U=function(e){function t(t,r){var n;return(n=e.call(this,t,"tenderly")||this).error_code=r,n}return b(t,e),t}(I);U.SIMULATION_CALL="simulation_call",U.CREATE_FORK="create_fork";var C,R=function(e){function t(t,r){var n;return(n=e.call(this,t,"price_fetching")||this).error_code=r,n}return b(t,e),t}(I);R.FETCHING_PRICE_ORACLE="fetching_price_oracle",R.FETCHING_PRICE_PICKLE="fetching_price_pickle",(C=exports.ZapProtocol||(exports.ZapProtocol={})).PICKLE="pickle",C.YEARN="yearn";var B,N=(function(e){var t=function(e){var t=Object.prototype,r=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",s=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function o(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{o({},"")}catch(e){o=function(e,t,r){return e[t]=r}}function u(e,t,r,n){var a=Object.create((t&&t.prototype instanceof d?t:d).prototype),s=new A(n||[]);return a._invoke=function(e,t,r){var n="suspendedStart";return function(a,s){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===a)throw s;return{value:void 0,done:!0}}for(r.method=a,r.arg=s;;){var i=r.delegate;if(i){var o=y(i,r);if(o){if(o===p)continue;return o}}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 u=c(e,t,r);if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===p)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}(e,r,s),a}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var p={};function d(){}function l(){}function f(){}var h={};o(h,a,(function(){return this}));var v=Object.getPrototypeOf,m=v&&v(v(S([])));m&&m!==t&&r.call(m,a)&&(h=m);var w=f.prototype=d.prototype=Object.create(h);function x(e){["next","throw","return"].forEach((function(t){o(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){var n;this._invoke=function(a,s){function i(){return new t((function(n,i){!function n(a,s,i,o){var u=c(e[a],e,s);if("throw"!==u.type){var p=u.arg,d=p.value;return d&&"object"==typeof d&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,i,o)}),(function(e){n("throw",e,i,o)})):t.resolve(d).then((function(e){p.value=e,i(p)}),(function(e){return n("throw",e,i,o)}))}o(u.arg)}(a,s,n,i)}))}return n=n?n.then(i,i):i()}}function y(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,y(e,t),"throw"===t.method))return p;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var n=c(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,p;var a=n.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,p):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,p)}function g(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 k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(g,this),this.reset(!0)}function S(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,s=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 s.next=s}}return{next:T}}function T(){return{value:void 0,done:!0}}return l.prototype=f,o(w,"constructor",f),o(f,"constructor",l),l.displayName=o(f,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,f):(e.__proto__=f,o(e,i,"GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},x(b.prototype),o(b.prototype,s,(function(){return this})),e.AsyncIterator=b,e.async=function(t,r,n,a,s){void 0===s&&(s=Promise);var i=new b(u(t,r,n,a),s);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(w),o(w,i,"Generator"),o(w,a,(function(){return this})),o(w,"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,A.prototype={constructor:A,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(k),!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 i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var a=this.tryEntries.length-1;a>=0;--a){var s=this.tryEntries[a],i=s.completion;if("root"===s.tryLoc)return n("end");if(s.tryLoc<=this.prev){var o=r.call(s,"catchLoc"),u=r.call(s,"finallyLoc");if(o&&u){if(this.prev<s.catchLoc)return n(s.catchLoc,!0);if(this.prev<s.finallyLoc)return n(s.finallyLoc)}else if(o){if(this.prev<s.catchLoc)return n(s.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<s.finallyLoc)return n(s.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var s=a;break}}s&&("break"===e||"continue"===e)&&s.tryLoc<=t&&t<=s.finallyLoc&&(s=null);var i=s?s.completion:{};return i.type=e,i.arg=t,s?(this.method="next",this.next=s.finallyLoc,p):this.complete(i)},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),p},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),k(r),p}},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 a=n.arg;k(r)}return a}}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),p}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(B={exports:{}}),B.exports),z=function(e,t){return(e||[]).reduce((function(e,r){var n;return x({},e,((n={})[r[t]]=r,n))}),{})},F=function(e){return new Promise((function(t){return setTimeout(t,e)}))},L=function(){var e=v(N.mark((function e(t,r,n){var a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t();case 2:a=e.sent;case 3:if(!r(a)){e.next=11;break}return e.next=6,F(n);case 6:return e.next=8,t();case 8:a=e.sent,e.next=3;break;case 11:return e.abrupt("return",a);case 12:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}();a.set({EXPONENTIAL_AT:50});var V=function(e){return new a(e||"0")},Z=function(e){var t=e.amount,r=e.decimals,n=V(10).pow(r);return V(t).div(n).toString()};function j(e){return 604800*Math.floor(e/604800)}var M={zapper:"96e0cc51-a62e-42ca-acee-910ea7d2a241",simulation:{dashboardUrl:"https://dashboard.tenderly.co/yearn/yearn-web",apiUrl:"https://simulate.yearn.network"},cache:{useCache:!0,url:"https://cache.yearn.finance"},env:"production"},W=function(){function e(e){this.ctx=Object.assign({},M,e),this.events=(new r).setMaxListeners(100),this.setProvider(e.provider)}return e.prototype.setProvider=function(r){r instanceof t.JsonRpcProvider?this.ctx.provider={read:r,write:r}:r&&(this.ctx.provider=r),this.events.emit(e.PROVIDER,this.ctx.provider)},w(e,[{key:"provider",get:function(){if(this.ctx.provider)return this.ctx.provider;throw new P("provider must be undefined in Context for this feature to work.")}},{key:"zapper",get:function(){if(this.ctx.zapper)return t=(e={str:this.ctx.zapper+":",encoding:"base64"}).encoding,Buffer.from(e.str,"binary").toString(t);var e,t;throw new P("zapper must be undefined in Context for this feature to work.")}},{key:"etherscan",get:function(){if(this.ctx.etherscan)return this.ctx.etherscan;throw new P("etherscan must be undefined in Context for this feature to work.")}},{key:"addresses",get:function(){return Object.assign({adapters:{}},this.ctx.addresses)},set:function(e){this.ctx.addresses=e}},{key:"simulation",get:function(){if(this.ctx.simulation)return this.ctx.simulation;throw new P("simulation configuration must be defined in Context for this feature to work.")}},{key:"cache",get:function(){if(this.ctx.cache)return this.ctx.cache;throw new P("cache must be defined in Context for this feature to work.")}},{key:"subgraph",get:function(){return this.ctx.subgraph}},{key:"partnerId",get:function(){return this.ctx.partnerId}},{key:"locale",get:function(){return this.ctx.locale||"en"}},{key:"isDevelopment",get:function(){return"production"!==this.ctx.env}}]),e}();W.PROVIDER="refresh:provider";var G,Y=function(){function e(e,t,r){this.path=e,this.ctx=t,this.chainId=r}var t=e.prototype;return t.fetch=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,c,p;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.ctx.cache.useCache&&this.ctx.cache.url){e.next=2;break}return e.abrupt("return",void 0);case 2:if(!(n=this.currentValue)){e.next=5;break}return e.abrupt("return",n);case 5:return a=this.ctx.cache.url+"/v1/chains/"+this.chainId+"/"+this.path,t&&(a+="?"+t),e.prev=7,e.next=11,this.fetchWithTimeout(a,5e3);case 11:s=e.sent,e.next=18;break;case 14:return e.prev=14,e.t0=e.catch(7),console.warn("Call to cache at "+a+" timed out"),e.abrupt("return",void 0);case 18:if(200===s.status){e.next=22;break}return i=s,console.warn("Call to cache failed at "+i.url+" (status "+i.status+" "+i.statusText+")"),e.abrupt("return",void 0);case 22:return e.next=24,s.json();case 24:if(o=e.sent){e.next=27;break}return e.abrupt("return",void 0);case 27:return u=null==(r=s.headers.get("cache-control"))?void 0:r.match(/max-age=(\d+)/),c=u?parseInt(u[1],10):30,p=(new Date).getTime(),this.expiryDate=new Date(p+1e3*c),this.cachedValue=o,e.abrupt("return",o);case 33:case"end":return e.stop()}}),e,this,[[7,14]])})));return function(t){return e.apply(this,arguments)}}(),t.fetchWithTimeout=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.race([fetch(t),new Promise((function(e,t){return setTimeout((function(){return t("timeout")}),r)}))]));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),w(e,[{key:"currentValue",get:function(){if(this.expiryDate)return new Date<this.expiryDate&&this.cachedValue?this.cachedValue:void 0}}]),e}(),q=function(e,t){this.chainId=e,this.ctx=t,this.events=new o},H=function(e){function t(t,r,n){var a;return(a=e.call(this,r,n)||this).yearn=t,a}return b(t,e),t}(q),K=function(e,t,r){var n=this;this.address=e,this.abi=t,this.read=new i.Contract(e,t,r.provider.read),this.write=new i.Contract(e,t,r.provider.write),r.events.on(W.PROVIDER,(function(e){n.read=new i.Contract(n.address,n.abi,e.read),n.write=new i.Contract(n.address,n.abi,e.write)}))};!function(e){e.oracle="ORACLE",e.adapter_registry_v2="REGISTRY_ADAPTER_V2_VAULTS",e.helper="HELPER",e.allowlist="ALLOW_LIST_REGISTRY",e.partner="PARTNER_TRACKER",e.zapperZapIn="ZAPPER_ZAP_IN",e.zapperZapOut="ZAPPER_ZAP_OUT",e.portalsZapIn="PORTALS_ZAP_IN",e.portalsZapOut="PORTALS_ZAP_OUT",e.pickleZapIn="PICKLE_ZAP_IN",e.yearnZapEth="YEARN_ZAP_ETH",e.propertiesAggregator="PROPERTIES_AGGREGATOR",e.cowProtocolRelayer="COW_PROTOCOL_RELAYER",e.veYfiRegistry="VEYFI_REGISTRY",e.veYfi="VEYFI",e.claimRewardsZap="CLAIM_REWARDS_ZAP",e.unused="UNUSED"}(G||(G={}));var J=function(e){function t(t,r,n){var a;return(a=e.call(this,t,r)||this).addressProvider=n,a}return b(t,e),t.prototype._getContract=function(){var e=v(N.mark((function e(t,r,n){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r!==G.unused){e.next=2;break}throw new Error("Trying to get the contract instance on the generic class.");case 2:return e.prev=2,e.next=5,this.addressProvider.addressById(r);case 5:return e.abrupt("return",new K(e.sent,t,n));case 9:throw e.prev=9,e.t0=e.catch(2),console.error("Contract address for "+r+" is missing from the Address Provider"),e.t0;case 13:case"end":return e.stop()}}),e,this,[[2,9]])})));return function(t,r,n){return e.apply(this,arguments)}}(),t}(q);J.abi=[],J.contractId=G.unused;var $={1:"ethereum",10:"optimism",250:"fantom",1337:"ethereum",42161:"arbitrum",2300:"bomb",56:"bsc"},Q=function(e){return 1===e||1337===e},X=function(e){return 10===e},ee=Object.keys($).map((function(e){return Number(e)})),te="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",re="0x0000000000000000000000000000000000000000",ne={1:{id:"ethereum",name:"Ethereum",chainId:1,rpcUrl:"https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18,address:te},wrappedTokenAddress:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",simulationsEnabled:!0,zapsEnabled:!0,zapOutTokenSymbols:["ETH","DAI","USDC","USDT","WBTC"],blockExplorerUrl:"https://etherscan.io"},10:{id:"optimism",name:"Optimism",chainId:10,rpcUrl:"https://mainnet.optimism.io",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18,address:re},wrappedTokenAddress:"0x4200000000000000000000000000000000000006",simulationsEnabled:!0,zapsEnabled:!0,zapOutTokenSymbols:["ETH","DAI","USDC","USDT","WBTC"],blockExplorerUrl:"https://optimistic.etherscan.io"},250:{id:"fantom",name:"Fantom",chainId:250,rpcUrl:"https://rpc.ftm.tools",nativeCurrency:{name:"Fantom",symbol:"FTM",decimals:18,address:re},wrappedTokenAddress:"0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83",simulationsEnabled:!0,zapsEnabled:!0,zapOutTokenSymbols:["FTM","DAI","USDC","USDT"],blockExplorerUrl:"https://ftmscan.com"},1337:{id:"ethereum",name:"Ethereum",chainId:1337,rpcUrl:"http://localhost:8545",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18,address:te},wrappedTokenAddress:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",simulationsEnabled:!1,zapsEnabled:!0,zapOutTokenSymbols:["ETH","DAI","USDC","USDT","WBTC"]},2300:{id:"bomb",name:"BOMB",chainId:2300,rpcUrl:"https://rpc.bombchain.com",nativeCurrency:{name:"BOMB",symbol:"BOMB",decimals:18,address:re},wrappedTokenAddress:"0x87460B9F21763aee800b94362062a06dA1B5f6Ee",simulationsEnabled:!1,zapsEnabled:!1,zapOutTokenSymbols:[],blockExplorerUrl:"https://bombscan.com"},56:{id:"bsc",name:"BSC",chainId:56,rpcUrl:"https://rpc.ankr.com/bsc",nativeCurrency:{name:"Binance",symbol:"BNB",decimals:18,address:re},wrappedTokenAddress:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",simulationsEnabled:!1,zapsEnabled:!1,zapOutTokenSymbols:[],blockExplorerUrl:"https://bscscan.com"},42161:{id:"arbitrum",name:"Arbitrum",chainId:42161,rpcUrl:"https://arb1.arbitrum.io/rpc",nativeCurrency:{name:"Ethereum",symbol:"ETH",decimals:18,address:re},wrappedTokenAddress:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",simulationsEnabled:!0,zapsEnabled:!0,zapOutTokenSymbols:["ETH","DAI","USDC","USDT","WBTC"],blockExplorerUrl:"https://arbiscan.io"}},ae="0x0000000000000000000000000000000000000000",se="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",ie="0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",oe=ae;function ue(e){return[se,oe].includes(e)}function ce(e){return"0xa258C4606Ca8206D8aA700cE2143D7db854D168c"===e}function pe(e,t){var r,n=ne[t];return ue(e)&&null!=(r=n.wrappedTokenAddress)?r:e}function de(e){return le.apply(this,arguments)}function le(){return(le=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(200===t.status){e.next=3;break}throw new P("HTTP to "+t.url+" request failed (status "+t.status+" "+t.statusText+")");case 3:return e.abrupt("return",t);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fe(e){return V(e).times(Math.pow(10,6)).toFixed(0)}function he(e){return e.toString()}function ve(e,t){if(t<1)throw new Error("Size needs to be positive: "+t);for(var r=[],n=0;n<e.length;n+=t){var a=e.slice(n,n+t);r.push(a)}return r}function me(e){var t="string"==typeof e?e:e.toString();if(t=t.padStart(10,"0"),/^\d{13}$/.test(t))return+e;if(/^\d{16}$/.test(t))return+e/1e3;if(/^\d{10}$/.test(t))return 1e3*+e;throw new Error("Timestamp in invalid format")}function we(e,t){if(!e||0===e.length)return t;if(!t||0===t.length)return e;var r=new Set(e.map((function(e){return e.address})));return[].concat(e,t.filter((function(e){return!r.has(e.address)})))}var xe=["0x9d409a0a012cfba9b15f6d4b36ac57a46966ab9a","0xc5bddf9843308380375a611c18b50fb9341f502a","0xced67a187b923f0e5ebcc77c7f2f7da20099e378"],be=function(e){return"query AssetHistoricEarnings($id: ID!) {\n    vault(id: $id) {\n      token {\n        id\n        decimals\n      }\n    }\n    "+e.map((function(e){return function(e){return"\n    block_"+e+": vault(id: $id, block: { number: "+e+" } ) {\n      vaultDayData(orderBy: timestamp, orderDirection: desc, first: 1) {\n        timestamp\n      }\n      strategies {\n        latestReport {\n          totalGain\n          totalLoss\n        }\n      }\n    }\n    "}(e)})).join("")+"\n  }\n  "},ye=new n.BigNumber(0),ge=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).assetHistoricEarningsCache=new Y("vaults/earnings/get",t.ctx,t.chainId),t}b(t,e);var r=t.prototype;return r.protocolEarnings=function(){var e=v(N.mark((function e(){var t,r,a,s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.services.subgraph.fetchQuery("query ProtocolEarnings {\n    vaults {\n      token {\n        id\n        decimals\n      }\n      latestUpdate {\n        returnsGenerated\n      }\n    }\n  }\n");case 2:if(a=ye,null!=(r=e.sent)&&r.data&&null!=(t=r.data)&&t.vaults){e.next=6;break}return e.abrupt("return",a.toFixed(0));case 6:s=E(r.data.vaults);case 7:if((i=s()).done){e.next=18;break}if((o=i.value).latestUpdate){e.next=11;break}return e.abrupt("continue",16);case 11:return u=new n.BigNumber(o.latestUpdate.returnsGenerated),e.next=14,this.tokensValueInUsdc(u,o.token.id,o.token.decimals);case 14:a=a.plus(e.sent);case 16:e.next=7;break;case 18:return e.abrupt("return",a.toFixed(0));case 19:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.assetEarnings=function(){var e=v(N.mark((function e(t){var r,a,i,o,u,c;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.services.subgraph.fetchQuery("query VaultEarnings($vault: ID!) {\n    vault(id: $vault) {\n      token {\n        id\n        decimals\n      }\n      latestUpdate {\n        returnsGenerated\n      }\n    }\n  }\n",{vault:t});case 2:if(null!=(i=e.sent)&&i.data&&null!=(r=i.data)&&r.vault){e.next=5;break}throw new P("No asset with address "+t);case 5:return u=new n.BigNumber((null==(a=(o=i.data.vault).latestUpdate)?void 0:a.returnsGenerated)||0),e.next=9,this.tokensValueInUsdc(u,o.token.id,o.token.decimals);case 9:return c=e.sent,e.abrupt("return",{assetAddress:s.getAddress(t),amount:u.toFixed(0),amountUsdc:c.toFixed(0),tokenAddress:s.getAddress(o.token.id)});case 11:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.accountAssetsData=function(){var e=v(N.mark((function e(t){var r,a,i,o,u,c,p,d,l,f,h,m=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.services.subgraph.fetchQuery("\n  query AccountEarnings($id: ID!, $ignoredVaults: [String!]) {\n    account(id: $id) {\n      vaultPositions(where: { vault_not_in: $ignoredVaults } ) {\n        balanceShares\n        token {\n          id\n          decimals\n        }\n        shareToken {\n          symbol\n        }\n        updates {\n          deposits\n          withdrawals\n          tokensReceived\n          tokensSent\n        }\n        vault {\n          id\n          latestUpdate {\n            pricePerShare\n          }\n        }\n      }\n    }\n  }\n",{id:t,ignoredVaults:xe});case 2:if(i=null==(a=e.sent)||null==(r=a.data)?void 0:r.account){e.next=6;break}return e.abrupt("return",{earnings:"0",holdings:"0",earningsAssetData:[],grossApy:0,estimatedYearlyYield:"0"});case 6:return e.next=8,Promise.all(i.vaultPositions.map(function(){var e=v(N.mark((function e(t){var r,a,i,o,u,c,p,d,l,f,h;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new n.BigNumber(t.balanceShares).multipliedBy(new n.BigNumber((null==(r=t.vault.latestUpdate)?void 0:r.pricePerShare)||0)).div(Math.pow(10,t.token.decimals)),i=t.updates.reduce((function(e,t){var r=e.withdrawals,a=e.tokensReceived,s=e.tokensSent;return{deposits:e.deposits.plus(new n.BigNumber(t.deposits)),withdrawals:r.plus(new n.BigNumber(t.withdrawals)),tokensReceived:a.plus(new n.BigNumber(t.tokensReceived)),tokensSent:s.plus(new n.BigNumber(t.tokensSent))}}),{deposits:ye,withdrawals:ye,tokensReceived:ye,tokensSent:ye}),o=i.deposits,u=i.tokensReceived,c=i.tokensSent,p=a.plus(i.withdrawals).plus(c),d=o.plus(u),l=p.minus(d),e.next=7,m.tokensValueInUsdc(l,t.token.id,t.token.decimals);case 7:return f=e.sent,e.next=10,m.tokensValueInUsdc(a,t.token.id,t.token.decimals);case 10:return h=e.sent,e.abrupt("return",{assetAddress:s.getAddress(t.vault.id),balanceUsdc:h,earned:f.toFixed(0)});case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 8:return u=(o=e.sent).map((function(e){return e.assetAddress})),e.next=12,this.yearn.services.vision.apy(u);case 12:return c=e.sent,p=o.map((function(e){return new n.BigNumber(e.earned)})).reduce((function(e,t){return e.plus(t)})),d=o.map((function(e){return new n.BigNumber(e.balanceUsdc)})).reduce((function(e,t){return e.plus(t)})),l=d.isEqualTo(ye)?ye:o.map((function(e){var t,r;if("new"===(null==(t=c[e.assetAddress])?void 0:t.type))return ye;var a=(null==(r=c[e.assetAddress])?void 0:r.net_apy)||0;return new n.BigNumber(a).times(e.balanceUsdc).div(d)})).reduce((function(e,t){return e.plus(t)})),f=l.multipliedBy(d),h=o.map((function(e){return{assetAddress:e.assetAddress,earned:e.earned}})),e.abrupt("return",{earnings:n.BigNumber.max(p,0).toFixed(0),holdings:n.BigNumber.max(d,0).toFixed(0),grossApy:l.toNumber(),estimatedYearlyYield:n.BigNumber.max(f,0).toFixed(0),earningsAssetData:h});case 19:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.assetsHistoricEarnings=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,c=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===t&&(t=30),30!==t){e.next=7;break}return e.next=4,this.assetHistoricEarningsCache.fetch();case 4:if(!(r=e.sent)){e.next=7;break}return e.abrupt("return",r);case 7:return e.next=9,this.yearn.services.lens.adapters.vaults.v2.assetsStatic();case 9:return n=e.sent.map((function(e){return e.address})),e.next=13,this.ctx.provider.read.getBlockNumber();case 13:return a=e.sent,e.next=16,Promise.allSettled(n.map(function(){var e=v(N.mark((function e(r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.assetHistoricEarnings(r,t,a));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 16:for(s=[],i=E(e.sent);!(o=i()).done;)"fulfilled"===(u=o.value).status&&s.push(u.value);return e.abrupt("return",s);case 20:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.assetHistoricEarnings=function(){var e=v(N.mark((function e(t,r,a){var s,i,o,u,c,p,d,l=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null==a){e.next=4;break}e.t0=a,e.next=7;break;case 4:return e.next=6,this.ctx.provider.read.getBlockNumber();case 6:e.t0=e.sent;case 7:return s=e.t0,s-=this.blockOffset(),i=Array.from(Array(r).keys()).reverse().map((function(e){return s-e*l.blocksPerDay()})),e.next=12,this.yearn.services.subgraph.fetchQuery(be(i),{id:t});case 12:return o=e.sent.data,u=i.map((function(e){return"block_"+e})),c=o.vault.token.id,e.next=18,this.yearn.services.oracle.getPriceUsdc(c).then((function(e){return new n.BigNumber(e)}));case 18:return p=e.sent,d=u.map((function(e){var t=o[e].strategies.reduce((function(e,t){var r=e.totalGain,n=e.totalLoss,a=t.latestReport;return a&&(r=r.plus(V(a.totalGain)),n=n.plus(V(a.totalLoss))),{totalGain:r,totalLoss:n}}),{totalGain:V(0),totalLoss:V(0)}),r=t.totalGain.minus(t.totalLoss);return{earnings:{amountUsdc:p.multipliedBy(r).dividedBy(V(10).pow(V(o.vault.token.decimals))).toFixed(0),amount:r.toFixed(0)},date:new Date(me(o[e].vaultDayData[0].timestamp)).toJSON()}})),e.abrupt("return",{assetAddress:t,dayData:d,decimals:o.vault.token.decimals});case 21:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.accountHistoricEarnings=function(){var e=v(N.mark((function e(t,r,a,s){var i,o,u,c,p,d,l,f,h,m,w,x,b,y,g,k,A,S;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(s&&s>a)){e.next=2;break}throw new P("fromDaysAgo must be greater than toDaysAgo");case 2:return e.next=4,this.yearn.services.subgraph.fetchQuery("query AccountHistoricEarnings($id: ID!, $shareToken: String!, $fromDate: String!, $toDate: BigInt!) {\n  account(id: $id) {\n      vaultPositions(where: { shareToken: $shareToken }) {\n        balanceShares\n        token {\n          id\n          decimals\n        }\n        vault {\n          vaultDayData(where: { timestamp_gte: $fromDate, timestamp_lte: $toDate }, orderBy: timestamp, orderDirection: asc, first: 1000) {\n            pricePerShare\n            timestamp\n          }\n        }\n        updates(orderBy: timestamp, orderDirection: asc, first: 1000) {\n          balanceShares\n          timestamp\n          deposits\n          withdrawals\n          tokensReceived\n          tokensSent\n        }\n      }\n    }\n  }\n",{id:t,shareToken:r,fromDate:this.getDate(a).getTime().toString(),toDate:this.getDate(s||0).getTime().toString()});case 4:if(o=null==(i=e.sent.data.account)?void 0:i.vaultPositions){e.next=8;break}throw new P("No account with address "+t);case 8:for(u=[],c=o.flatMap((function(e){return e.updates})).sort((function(e,t){return me(+e.timestamp-+t.timestamp)})),p=E(c.entries());!(d=p()).done;)h=(l=d.value)[1],0===(f=l[0])?(m={startDate:new Date(0),endDate:new Date(me(h.timestamp)),deposits:new n.BigNumber(h.deposits),withdrawals:new n.BigNumber(h.withdrawals),tokensReceived:new n.BigNumber(h.tokensReceived),tokensSent:new n.BigNumber(h.tokensSent),balanceShares:new n.BigNumber(h.balanceShares)},u.push(m)):(x={startDate:(w=u[f-1]).endDate,endDate:new Date(me(h.timestamp)),deposits:w.deposits.plus(new n.BigNumber(h.deposits)),withdrawals:w.withdrawals.plus(new n.BigNumber(h.withdrawals)),tokensReceived:w.tokensReceived.plus(new n.BigNumber(h.tokensReceived)),tokensSent:w.tokensSent.plus(new n.BigNumber(h.tokensSent)),balanceShares:w.balanceShares.plus(new n.BigNumber(h.balanceShares))},u.push(x));return u.length>0&&(b=u[u.length-1],y=(new Date).setFullYear(3e3),g={startDate:b.endDate,endDate:new Date(y),deposits:b.deposits,withdrawals:b.withdrawals,tokensReceived:b.tokensReceived,tokensSent:b.tokensSent,balanceShares:b.balanceShares},u.push(g)),k=o[0].vault.vaultDayData,A=o[0].token,e.next=16,this.yearn.services.oracle.getPriceUsdc(A.id).then((function(e){return new n.BigNumber(e)}));case 16:return S=e.sent,e.next=19,Promise.all(k.map(function(){var e=v(N.mark((function e(t){var r,a,s,i,o,c,p;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=new Date(me(t.timestamp)),!(a=u.find((function(e){return r>=e.startDate&&r<e.endDate})))){e.next=11;break}return s=a.balanceShares.multipliedBy(new n.BigNumber(t.pricePerShare)).dividedBy(new n.BigNumber(Math.pow(10,A.decimals))),i=s.plus(a.withdrawals).plus(a.tokensSent),o=a.deposits.plus(a.tokensReceived),c=i.minus(o),p=S.multipliedBy(c).dividedBy(new n.BigNumber(10).pow(A.decimals)),e.abrupt("return",{earnings:{amount:c.toFixed(0),amountUsdc:p.toFixed(0)},date:r.toJSON()});case 11:return e.abrupt("return",{earnings:{amount:"0",amountUsdc:"0"},date:r.toJSON()});case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 19:return e.abrupt("return",{accountAddress:t,shareTokenAddress:r,decimals:A.decimals,dayData:e.sent});case 21:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.tokensValueInUsdc=function(){var e=v(N.mark((function e(t,r,a){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.services.oracle.getPriceUsdc(r);case 2:return e.abrupt("return",new n.BigNumber(e.sent).multipliedBy(t).div(Math.pow(10,a)));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.getDate=function(e){var t=new Date;return t.setDate(t.getDate()-e),t},r.blocksPerDay=function(){switch(this.chainId){case 1:case 1337:case 10:case 42161:return 5760;case 2300:case 56:return 28800;case 250:return 86400}},r.blockOffset=function(){switch(this.chainId){case 1:case 1337:case 10:case 56:case 2300:case 42161:return 100;case 250:return 1e3}},t}(H),ke=function(e){function t(){return e.apply(this,arguments)||this}return b(t,e),t.prototype.protocolFees=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.services.subgraph.fetchQuery("query ProtocolFees($sinceDate: BigInt!) {\n    transfers(where: { timestamp_gt: $sinceDate }, first: 1000) {\n      tokenAmountUsdc\n    }\n  }\n",{sinceDate:t.getTime().toString()});case 2:if(null!=(n=e.sent)&&n.data&&null!=(r=n.data)&&r.transfers){e.next=5;break}return e.abrupt("return",V(0).toFixed(0));case 5:return e.abrupt("return",n.data.transfers.reduce((function(e,t){return e.plus(V(t.tokenAmountUsdc||0))}),V(0)).toFixed(0));case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t}(H),Ae=["function earned(address _account) public view returns (uint256)","function boostedBalanceOf(address _account) public view returns (uint256)","function deposit(uint256 _assets) external returns (uint256)","function withdraw(uint256 _assets, address _receiver, address _owner, bool _claim, bool _lock) external returns (uint256)","function getReward() external returns (bool)"],Se=["function getVaults() public view returns (address[] memory)","function gauges(address _addr) public view returns (address)"],Te=["function claim(address[] calldata _gauges, bool _lock, bool _claimVeYfi) external"],Ee=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.get=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.getSupportedAddresses({addresses:r});case 3:return n=e.sent,e.next=6,this.getStatic({addresses:n});case 6:return a=e.sent,e.next=9,this.getDynamic({addresses:n});case 9:return s=e.sent,i=z(a,"address"),o=z(s,"address"),u=n.map((function(e){return x({},i[e],o[e])})),e.abrupt("return",u);case 14:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getStatic=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.getSupportedAddresses({addresses:r});case 3:return n=e.sent,a=["address asset"].map((function(e){return u.ParamType.from(e)})),s=["string name","string version","string symbol","uint256 decimals"].map((function(e){return u.ParamType.from(e)})),i=n.map(function(){var e=v(N.mark((function e(t){var r,n,i;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.yearn.services.propertiesAggregator.getProperties(t,a);case 2:return r=e.sent.asset,e.next=6,o.yearn.services.propertiesAggregator.getProperties(r,s);case 6:return i={address:t,typeId:"GAUGE",token:r,name:(n=e.sent).name,version:n.version,symbol:n.symbol,decimals:n.decimals.toString()},e.abrupt("return",i);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(i));case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getDynamic=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,c,p,d,l,f,h,m,w,x=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.getSupportedAddresses({addresses:r});case 3:return n=e.sent,a=["address asset","uint256 totalAssets","address rewardToken","uint256 rewardRate","address veToken"].map((function(e){return u.ParamType.from(e)})),s=n.map(function(){var e=v(N.mark((function e(t){var r,n,s,i;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,x.yearn.services.propertiesAggregator.getProperties(t,a);case 2:return n=(r=e.sent).rewardToken,s=r.rewardRate,i=r.veToken,e.abrupt("return",{address:t,vaultAddress:r.asset,totalStaked:r.totalAssets.toString(),rewardToken:n,rewardRate:s.toString(),votingEscrowToken:i});case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.next=8,Promise.all(s);case 8:return o=z(i=e.sent,"address"),c=i.map((function(e){return e.rewardToken})),p=[].concat(new Set(c)),d=i.map((function(e){return e.vaultAddress})),e.next=15,this.yearn.vaults.get(d);case 15:return f=z(l=e.sent,"address"),h=l.map((function(e){return e.token})),e.next=20,this.yearn.services.helper.tokenPrices([].concat(h,p));case 20:return m=z(e.sent,"address"),w=n.map((function(e){var t=o[e],r=t.vaultAddress,n=t.rewardToken,a=t.rewardRate,s=t.votingEscrowToken,i=f[r],u=i.token,c=i.decimals,p=i.metadata,d=m[u].priceUsdc,l=m[n].priceUsdc,h=t.totalStaked,v=V(h).times(Z({amount:p.pricePerShare,decimals:parseInt(c)})).toFixed(0),w={amount:h,amountUsdc:V(v).times(Z({amount:d,decimals:6})).toFixed(0)},x=V(a).times(Z({amount:l,decimals:6})).toFixed(0);return{address:e,typeId:"GAUGE",tokenId:r,underlyingTokenBalance:w,metadata:{apy:V(x).times(31536e3).dividedBy(w.amountUsdc).toNumber(),displayIcon:p.displayIcon,displayName:p.displayName,vaultPricePerShare:p.pricePerShare,vaultUnderlyingToken:u,rewardToken:n,votingEscrowToken:s}}})),e.abrupt("return",w);case 24:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.positionsOf=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d,l,f=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.addresses,e.next=3,this.get({addresses:n});case 3:return s=(a=e.sent).map((function(e){return e.address})),o=a.map((function(e){return e.metadata.vaultUnderlyingToken})),u=a.map((function(e){return e.metadata.rewardToken})),c=[].concat(new Set(u)),e.next=10,this.yearn.services.helper.tokenBalances(r,s);case 10:return p=z(e.sent,"address"),e.next=14,this.yearn.services.helper.tokenPrices([].concat(o,c));case 14:return d=z(e.sent,"address"),l=a.map(function(){var e=v(N.mark((function e(t){var n,a,s,o,u,c,l,h,v,m,w,x;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.token,s=t.decimals,c=d[(o=t.metadata).vaultUnderlyingToken].priceUsdc,l=V(u=p[n=t.address].balance).times(Z({amount:o.vaultPricePerShare,decimals:parseInt(s)})).toFixed(0),h={assetAddress:n,tokenAddress:a,typeId:"DEPOSIT",balance:u,underlyingTokenBalance:{amount:l,amountUsdc:V(l).times(Z({amount:c,decimals:6})).toFixed(0)},assetAllowances:[],tokenAllowances:[]},v=new i.Contract(n,Ae,f.ctx.provider.read),e.next=8,v.earned(r);case 8:return m=e.sent.toString(),w=d[o.vaultUnderlyingToken].priceUsdc,x={assetAddress:n,tokenAddress:o.rewardToken,typeId:"YIELD",balance:m,underlyingTokenBalance:{amount:m,amountUsdc:V(m).times(Z({amount:w,decimals:6})).toFixed(0)},assetAllowances:[],tokenAllowances:[]},e.abrupt("return",[h,x]);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.next=19,Promise.all(l);case 19:return e.abrupt("return",e.sent.flat().filter((function(e){return V(e.balance).gt(0)})));case 21:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.metadataOf=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d,l,f,h=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.addresses,e.next=3,this.get({addresses:n});case 3:return s=(a=e.sent).map((function(e){return e.metadata.votingEscrowToken})),o=[].concat(new Set(s)),e.next=8,this.yearn.votingEscrows.get({addresses:o});case 8:return u=z(e.sent,"address"),e.next=12,this.positionsOf({accountAddress:r,addresses:n});case 12:return c=e.sent.filter((function(e){return"DEPOSIT"===e.typeId})),p=z(c,"assetAddress"),e.next=17,this.yearn.votingEscrows.positionsOf({accountAddress:r,addresses:o});case 17:return d=e.sent.filter((function(e){return"DEPOSIT"===e.typeId})),l=z(d,"assetAddress"),f=a.map(function(){var e=v(N.mark((function e(t){var n,a,s,o,c,d,f,v,m,w,x,b,y,g,k,A,S;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f=t.underlyingTokenBalance.amount,v=null!=(n=null==(a=p[c=t.address])?void 0:a.underlyingTokenBalance.amount)?n:"0",m=u[(d=t.metadata).votingEscrowToken].underlyingTokenBalance.amount,w=null!=(s=null==(o=l[d.votingEscrowToken])?void 0:o.underlyingTokenBalance.amount)?s:"0",x=V(v).times(.1).plus(V(f).times(V(w).div(m)).times(.9)),b=V(v).gt(0)?x.div(v).toNumber():.1,y=10*Math.min(1,b),g=new i.Contract(c,Ae,h.ctx.provider.read),e.next=11,g.boostedBalanceOf(r);case 11:return k=e.sent,A=V(v).gt(0)?V(k.toString()).div(v).toNumber():.1,S=10*Math.min(1,A),e.abrupt("return",{assetAddress:c,boost:S,_calculatedBoost:y});case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(f));case 22:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.balances=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.addresses,e.next=3,this.get({addresses:n});case 3:return a=e.sent.map((function(e){return e.token})),e.next=7,this.yearn.services.helper.tokens(a);case 7:return s=z(e.sent,"address"),e.next=11,this.yearn.services.helper.tokenBalances(r,a);case 11:return i=z(e.sent,"address"),o=a.map((function(e){var t=i[e];return{address:r,token:s[e],balance:t.balance,balanceUsdc:t.balanceUsdc,priceUsdc:t.priceUsdc}})),e.abrupt("return",o);case 15:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.tokens=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.get({addresses:r});case 3:return n=e.sent.map((function(e){return e.token})),e.next=7,this.yearn.services.helper.tokens(n);case 7:return a=z(e.sent,"address"),e.next=11,this.yearn.services.asset.icon(n);case 11:return s=e.sent,e.next=14,this.yearn.services.helper.tokenPrices(n);case 14:return i=z(e.sent,"address"),e.next=18,this.yearn.tokens.metadata(n);case 18:return o=z(e.sent,"address"),u=n.map((function(e){return x({},a[e],{icon:s[e],priceUsdc:i[e].priceUsdc,dataSource:"gauges",supported:{gauges:!0},metadata:o[e]})})),e.abrupt("return",u);case 22:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getStakeAllowance=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.yearn.tokens.allowance(t.accountAddress,t.tokenAddress,t.gaugeAddress));case 2:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.approveStake=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,p;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.tokenAddress,a=t.gaugeAddress,s=t.amount,i=t.populate,u=void 0===(o=t.overrides)?{}:o,e.next=3,this.yearn.tokens.populateApprove(r,n,a,null!=s?s:c.MaxUint256.toString(),u);case 3:if(p=e.sent,!i){e.next=6;break}return e.abrupt("return",p);case 6:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(p));case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.stake=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.gaugeAddress,n=t.amount,a=t.populate,o=void 0===(s=t.overrides)?{}:s,u=this.ctx.provider.write.getSigner(t.accountAddress),c=new i.Contract(r,Ae,u),e.next=5,c.populateTransaction.deposit(n,o);case 5:if(p=e.sent,!a){e.next=8;break}return e.abrupt("return",p);case 8:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(p));case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.unstake=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.gaugeAddress,a=t.amount,s=t.populate,u=void 0===(o=t.overrides)?{}:o,c=this.ctx.provider.write.getSigner(r=t.accountAddress),p=new i.Contract(n,Ae,c),e.next=7,p.populateTransaction.withdraw(a,r,r,!1,!1,u);case 7:if(d=e.sent,!s){e.next=10;break}return e.abrupt("return",d);case 10:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(d));case 11:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.claimRewards=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.gaugeAddress,n=t.populate,s=void 0===(a=t.overrides)?{}:a,o=this.ctx.provider.write.getSigner(t.accountAddress),u=new i.Contract(r,Ae,o),e.next=5,u.populateTransaction.getReward(s);case 5:if(c=e.sent,!n){e.next=8;break}return e.abrupt("return",c);case 8:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(c));case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.claimAllRewards=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d,l,f,h;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.addresses,a=t.claimVotingEscrow,s=t.populate,u=void 0===(o=t.overrides)?{}:o,c=!1,e.next=4,this.get({addresses:n});case 4:return p=e.sent.map((function(e){return e.address})),e.next=8,this.yearn.addressProvider.addressById(G.claimRewardsZap);case 8:return d=e.sent,l=this.ctx.provider.write.getSigner(r),f=new i.Contract(d,Te,l),e.next=13,f.populateTransaction.claim(p,c,null!=a&&a,u);case 13:if(h=e.sent,!s){e.next=16;break}return e.abrupt("return",h);case 16:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(h));case 17:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getSupportedAddresses=function(){var e=v(N.mark((function e(t){var r,n,a,s,o;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.yearn.addressProvider.addressById(G.veYfiRegistry);case 3:return n=new i.Contract(e.sent,Se,this.ctx.provider.read),e.next=7,n.getVaults();case 7:return a=e.sent.map(function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.gauges(t);case 2:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.next=11,Promise.all(a);case 11:return s=e.sent,o=r?r.filter((function(e){return s.includes(e)})):s,e.abrupt("return",o);case 14:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t}(H),Ie=["0xCeD67a187b923F0E5ebcc77C7f2F7da20099e378"],Pe=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).pickleJarUSDPrices=new Map,t.lastFetchedDate=new Date(0),t}b(t,e);var r=t.prototype;return r.getPriceUsdc=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=new Date(Date.now()-36e5),!(this.lastFetchedDate<n)){e.next=4;break}return e.next=4,this.fetchPickleJarPrices();case 4:return e.abrupt("return",fe((null==(r=this.pickleJarUSDPrices.get(t))?void 0:r.toFixed(0))||"0"));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.fetchPickleJarPrices=function(){var e=v(N.mark((function e(){var t,r,a,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch("https://api.pickle.finance/prod/protocol/pools").catch((function(){return fetch("https://f8wgg18t1h.execute-api.us-west-1.amazonaws.com/prod/protocol/pools")})).then((function(e){return e.json()}));case 2:for(t=e.sent,this.pickleJarUSDPrices.clear(),this.lastFetchedDate=new Date,r=t.filter((function(e){return Ie.includes(s.getAddress(e.jarAddress))})),a=E(r);!(i=a()).done;)u=new n.BigNumber((o=i.value).liquidity_locked/o.tokens),this.pickleJarUSDPrices.set(s.getAddress(o.jarAddress),u);case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(q),Oe=function(){function e(e,t,r){this.telegram=e,this.chainId=t,this.ctx=r,this.baseUrl=r.simulation.apiUrl,this.apiKey=r.simulation.apiKey}var t=e.prototype;return t.simulateRaw=function(){var e=v(N.mark((function e(t,r,n,a,s){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===a&&(a={}),void 0===s&&(s="0"),e.next=4,this.makeSimulationRequest(t,r,n,a,s);case 4:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s){return e.apply(this,arguments)}}(),t.simulateVaultInteraction=function(){var e=v(N.mark((function e(t,r,n,i,o,u){var c,p,d;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===u&&(u="0"),this.isString(n)){e.next=3;break}throw new O("Data is of an invalid type",O.INVALID_TYPE);case 3:return e.next=5,this.makeSimulationRequest(t,r,n,o,u);case 5:if(c=function(e){return s.getAddress(e.slice(-40))},p=e.sent.transaction.transaction_info.logs.reverse().find((function(e){return"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"===e.raw.topics[0]&&c(e.raw.topics[2])===s.getAddress(t)}))){e.next=11;break}throw new O("No log of transferring token "+i+" to "+t,O.NO_LOG);case 11:return d=new a(p.raw.data).toFixed(0),e.abrupt("return",d);case 13:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i){return e.apply(this,arguments)}}(),t.makeSimulationRequest=function(){var e=v(N.mark((function e(t,r,n,a,s){var i,o,u,c,p,d,l,f;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===s&&(s="0"),this.isString(n)){e.next=3;break}throw new O("Data is of an invalid type",O.INVALID_TYPE);case 3:return i=null!=a&&a.forkId?this.baseUrl+"/fork/"+a.forkId+"/simulate":this.baseUrl+"/simulate",o={from:t,to:r,input:n,network_id:this.chainId.toString(),block_number:-1,simulation_type:"quick",root:null==a?void 0:a.root,value:s,save:a.save||!0},e.next=7,fetch(i,{method:"POST",headers:x({"Content-Type":"application/json"},this.apiKey&&{"X-Access-Key":this.apiKey}),body:JSON.stringify(o)}).then((function(e){return e.json()})).catch((function(e){throw console.error(e),new U("simulation call to Tenderly failed",U.SIMULATION_CALL)}));case 7:if(!(c=(u=e.sent).transaction.error_message)){e.next=14;break}throw a.save&&this.sendErrorMessage(c,u.simulation.id,a.forkId),new O(c,O.TENDERLY_RESPONSE_ERROR);case 14:if(d=this.getAllSimulationCalls(u.transaction.transaction_info.call_trace),!(l=null==(p=d.find((function(e){return e.error})))?void 0:p.error)){e.next=20;break}throw this.sendErrorMessage(f="Partial Revert - "+l,u.simulation.id,null==a?void 0:a.forkId),new O(f,O.PARTIAL_REVERT);case 20:return e.abrupt("return",u);case 21:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s){return e.apply(this,arguments)}}(),t.executeSimulationWithReSimulationOnFailure=function(){var e=v(N.mark((function e(t,r){var n=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r=null),e.prev=1,e.next=4,t(!1).then((function(e){return r&&n.deleteFork(r),e}));case 4:return e.abrupt("return",e.sent);case 8:return e.prev=8,e.t0=e.catch(1),e.prev=10,e.next=13,t(!0);case 13:e.next=18;break;case 15:e.prev=15,e.t1=e.catch(10),console.error(e.t1);case 18:throw e.t0;case 19:case"end":return e.stop()}}),e,null,[[1,8],[10,15]])})));return function(t,r){return e.apply(this,arguments)}}(),t.createFork=function(){var e=v(N.mark((function e(){var t;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t={alias:"",description:"",network_id:this.chainId.toString()},e.next=3,fetch(this.baseUrl+"/fork",{method:"POST",headers:x({"Content-Type":"application/json"},this.apiKey&&{"X-Access-Key":this.apiKey}),body:JSON.stringify(t)}).then((function(e){return e.json()})).catch((function(e){throw console.error(e),new U("failed to create fork",U.CREATE_FORK)}));case 3:return e.next=5,e.sent;case 5:return e.abrupt("return",e.sent.simulation_fork.id);case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.getAllSimulationCalls=function(e){var t=[];t=t.concat(e.calls||[]);for(var r,n=E(e.calls||[]);!(r=n()).done;){var a=this.getAllSimulationCalls(r.value);t=t.concat(a)}return t},t.deleteFork=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(this.baseUrl+"/fork/"+t,{method:"DELETE",headers:x({"Content-Type":"application/json"},this.apiKey&&{"X-Access-Key":this.apiKey})});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.sendErrorMessage=function(e,t,r){var n;this.ctx.simulation.dashboardUrl&&(n=this.ctx.simulation.dashboardUrl+"/"+(r?"fork/"+r+"/simulation":"simulator")+"/"+t);var a=["Simulation error",e,n].map((function(e){return e})).join("\n\n");this.telegram.sendMessage(a)},t.isString=function(e){return"string"==typeof e},e}(),_e=function(){function e(e){var t=this;this.contract=e,this.encodeDeposit=function(e){return t.contract.interface.encodeFunctionData("deposit",[e])},this.encodeWithdraw=function(e){return t.contract.interface.encodeFunctionData("withdraw",[e])}}var t=e.prototype;return t.decimals=function(){var e=v(N.mark((function e(){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.contract.decimals();case 2:return e.abrupt("return",new n.BigNumber(e.sent.toString()));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t.token=function(){var e=v(N.mark((function e(){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.contract.token();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),w(e,null,[{key:"abi",get:function(){return["function token() view returns (address)","function decimals() view returns (uint256)","function deposit(uint256 amount) public","function withdraw(uint256 amount) public"]}}]),e}(),De=function(e){function t(r,n){return e.call(this,new i.Contract(r,[].concat(_e.abi,t.pickleJarAbi),n))||this}return b(t,e),t.prototype.pricePerShare=function(){var e=v(N.mark((function e(){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.contract.getRatio();case 2:return e.abrupt("return",new n.BigNumber(e.sent.toString()));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),w(t,null,[{key:"pickleJarAbi",get:function(){return["function getRatio() public view returns (uint256)"]}}]),t}(_e),Ue=function(e){function t(r,n){return e.call(this,new i.Contract(r,[].concat(_e.abi,t.yearnVaultAbi),n))||this}return b(t,e),t.prototype.pricePerShare=function(){var e=v(N.mark((function e(){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.contract.pricePerShare();case 2:return e.abrupt("return",new n.BigNumber(e.sent.toString()));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),w(t,null,[{key:"yearnVaultAbi",get:function(){return["function pricePerShare() view returns (uint256)"]}}]),t}(_e);function Ce(e){var t,r=e.token,n=e.vault;if(!r.supported||null==(t=n.metadata)||!t.zapInWith)return{isZapInSupported:!1,zapInWith:null};var a=ne[e.chainId];if(null!=a&&a.zapsEnabled){var s=n.metadata.zapInWith;if(s&&Be(s,r.supported)){var i=Boolean(r.supported[s]);return{isZapInSupported:i,zapInWith:i?s:null}}}return{isZapInSupported:!1,zapInWith:null}}function Re(e){var t,r=e.token,n=e.vault;if(!r.supported||null==(t=n.metadata)||!t.zapOutWith)return{isZapOutSupported:!1,zapOutWith:null};var a=ne[e.chainId];if(null!=a&&a.zapsEnabled){var s=n.metadata.zapOutWith;if(s&&Be(s,r.supported)){var i=Boolean(r.supported[s]);return{isZapOutSupported:i,zapOutWith:i?s:null}}}return{isZapOutSupported:!1,zapOutWith:null}}function Be(e,t){return e in t}var Ne=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).simulationExecutor=new Oe(t.yearn.services.telegram,t.chainId,t.ctx),t}b(t,e);var r=t.prototype;return r.deposit=function(){var e=v(N.mark((function e(t,r,n,a,s){var i,o,u,c,p,d,l;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===s&&(s={}),i={from:t,sellToken:r,amount:n,toVault:a,options:s},o=this.ctx.provider.write.getSigner(t),u=this.getVaultContract({toVault:a,signer:o}),e.next=6,this.getZappableVault({vaultAddress:a,vaultContract:u});case 6:if(c=e.sent){e.next=9;break}throw new P("Could not get vault: "+a);case 9:return e.next=11,this.yearn.tokens.findByAddress(r);case 11:if(p=e.sent){e.next=14;break}throw new P("Could not find the token by address: "+r);case 14:return e.next=16,this.isUnderlyingToken({vault:a,address:p.address});case 16:if(!e.sent){e.next=19;break}return e.abrupt("return",this.handleDirectSimulationDeposit({depositArgs:i,vaultContract:u,vault:c,signer:o}));case 19:if(d=Ce({chainId:this.chainId,token:p,vault:c}),l=d.zapInWith,!d.isZapInSupported||!l){e.next=22;break}return e.abrupt("return",this.handleZapInSimulationDeposit({depositArgs:i,zapInWith:l,vault:c}));case 22:throw new P("Deposit of "+p.address+" to "+a+" is not supported");case 23:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s){return e.apply(this,arguments)}}(),r._deposit=function(){var e=v(N.mark((function e(t,r,n,a,s,i){var o,u,c,p,d,l,f,h,v,m,w,b,y,g,k;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===s&&(s={}),void 0===i&&(i={}),e.next=4,this.simulationExecutor.createFork();case 4:return o=e.sent,e.next=7,this.yearn.vaults.getDepositAllowance(a,t,r);case 7:if(u=e.sent,!(p=V(n).gt(u.amount))){e.next=24;break}return e.next=12,this.yearn.vaults.populateApproveDeposit(a,t,r,n,!1,i);case 12:if(l=(d=e.sent).from,h=d.data,v=d.value,(f=d.to)&&h){e.next=19;break}throw Error("Error populating approve transaction");case 19:return e.next=21,this.simulationExecutor.makeSimulationRequest(null!=l?l:a,f,h,{forkId:o,save:!0},v?v.toString():void 0);case 21:c=e.sent.simulation.id;case 24:return e.next=26,this.yearn.vaults.populateDepositTransaction({vault:t,token:r,amount:n,account:a,options:x({},s,{skipGasEstimate:p}),overrides:i});case 26:if(w=(m=e.sent).from,y=m.data,g=m.value,(b=m.to)&&y){e.next=33;break}throw Error("Error populating deposit transaction");case 33:return e.next=35,this.simulationExecutor.makeSimulationRequest(null!=w?w:a,b,y,{forkId:o,root:c,save:!0},g?g.toString():void 0);case 35:return k=e.sent,e.next=38,this.simulationExecutor.deleteFork(o);case 38:return e.next=40,this.parseDepositSimulationOutcome(t,r,n,a,k);case 40:return e.abrupt("return",e.sent);case 41:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i){return e.apply(this,arguments)}}(),r.parseDepositSimulationOutcome=function(){var e=v(N.mark((function e(t,r,n,a,s){var i,o,u,c,p,d,l;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.tokens.findByAddress(pe(r,this.chainId));case 2:return i=e.sent,e.next=5,this.yearn.vaults.get([t]);case 5:return o=e.sent[0],e.next=9,this.parseSimulationTargetTokenAmount(t,a,s);case 9:return u=e.sent,c=V(null==i?void 0:i.priceUsdc).times(Z({amount:n,decimals:Number(null==i?void 0:i.decimals)})).toFixed(0),e.next=13,this.yearn.services.oracle.getNormalizedValueUsdc(t,u);case 13:return p=e.sent,d=V(u).div(V(10).pow(o.decimals)).multipliedBy(o.metadata.pricePerShare).toFixed(0),l=V(c).eq(0)?0:V(p).div(c).toNumber(),e.abrupt("return",{sourceTokenAddress:r,sourceTokenAmount:n,targetTokenAddress:t,targetTokenAmount:u,targetTokenAmountUsdc:p,targetUnderlyingTokenAddress:o.token,targetUnderlyingTokenAmount:d,conversionRate:l,slippage:V(1).minus(l).toNumber()});case 17:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s){return e.apply(this,arguments)}}(),r.parseSimulationTargetTokenAmount=function(){var e=v(N.mark((function e(t,r,n){var a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!ue(t)){e.next=2;break}return e.abrupt("return",V(n.transaction.transaction_info.call_trace.output).toFixed(0));case 2:if(a=n.transaction.transaction_info.logs.reverse().find((function(e){return"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"===e.raw.topics[0]&&s.getAddress(e.raw.topics[2].slice(-40))===s.getAddress(r)}))){e.next=6;break}throw new O("No log of transferring token to "+r,O.NO_LOG);case 6:return e.abrupt("return",V(a.raw.data).toFixed(0));case 7:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.withdraw=function(){var e=v(N.mark((function e(t,r,n,a,s){var i,o,u,c,p,d,l,f=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===s&&(s={}),i={from:t,fromVault:r,amount:n,toToken:a,options:s},o=this.ctx.provider.write.getSigner(t),u=new Ue(r,o),e.next=6,this.yearn.vaults.get([r]);case 6:if(c=e.sent[0]){e.next=10;break}throw new P("Could not get vault: "+r);case 10:return e.next=12,this.yearn.tokens.findByAddress(a);case 12:if(p=e.sent){e.next=15;break}throw new P("Could not find the token by address: "+a);case 15:return e.next=17,this.isUnderlyingToken({vault:r,address:p.address});case 17:if(!e.sent){e.next=21;break}return e.abrupt("return",this.simulationExecutor.executeSimulationWithReSimulationOnFailure((function(e){return f.directWithdraw(x({},i,{vaultContract:u,options:x({},s,{save:e})}))})));case 21:if(d=Re({chainId:this.chainId,token:p,vault:c}),l=d.zapOutWith,!d.isZapOutSupported||!l){e.next=24;break}return e.abrupt("return",this.handleZapOutSimulation({withdrawArgs:i,zapOutWith:l,token:p}));case 24:throw new P("Withdraw from "+r+" to "+a+" is not supported");case 25:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s){return e.apply(this,arguments)}}(),r._withdraw=function(){var e=v(N.mark((function e(t,r,n,a,s,i){var o,u,c,p,d,l,f,h,v,m,w,b,y,g,k;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===s&&(s={}),void 0===i&&(i={}),e.next=4,this.simulationExecutor.createFork();case 4:return o=e.sent,e.next=7,this.yearn.vaults.getWithdrawAllowance(a,t,r);case 7:if(u=e.sent,!(p=V(n).gt(u.amount))){e.next=24;break}return e.next=12,this.yearn.vaults.populateApproveWithdraw(a,t,r,n,!1,i);case 12:if(l=(d=e.sent).from,h=d.data,v=d.value,(f=d.to)&&h){e.next=19;break}throw Error("Error populating approve transaction");case 19:return e.next=21,this.simulationExecutor.makeSimulationRequest(null!=l?l:a,f,h,{forkId:o,save:!0},v?v.toString():void 0);case 21:c=e.sent.simulation.id;case 24:return e.next=26,this.yearn.vaults.populateWithdrawTransaction({vault:t,token:r,amount:n,account:a,options:x({},s,{skipGasEstimate:p}),overrides:i});case 26:if(w=(m=e.sent).from,y=m.data,g=m.value,(b=m.to)&&y){e.next=33;break}throw Error("Error populating withdraw transaction");case 33:return e.next=35,this.simulationExecutor.makeSimulationRequest(null!=w?w:a,b,y,{forkId:o,root:c,save:!0},g?g.toString():void 0);case 35:return k=e.sent,e.next=38,this.simulationExecutor.deleteFork(o);case 38:return e.next=40,this.parseWithdrawSimulationOutcome(t,r,n,a,k);case 40:return e.abrupt("return",e.sent);case 41:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i){return e.apply(this,arguments)}}(),r.parseWithdrawSimulationOutcome=function(){var e=v(N.mark((function e(t,r,n,a,s){var i,o,u,c,p;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.parseSimulationTargetTokenAmount(r,a,s);case 2:return i=e.sent,e.next=5,this.yearn.services.oracle.getNormalizedValueUsdc(t,n);case 5:return o=e.sent,e.next=8,this.yearn.tokens.findByAddress(pe(r,this.chainId));case 8:return c=V(null==(u=e.sent)?void 0:u.priceUsdc).times(Z({amount:i,decimals:Number(null==u?void 0:u.decimals)})).toFixed(0),p=V(o).eq(0)?0:V(c).div(o).toNumber(),e.abrupt("return",{sourceTokenAddress:t,sourceTokenAmount:n,targetTokenAddress:r,targetTokenAmount:i,targetTokenAmountUsdc:c,targetUnderlyingTokenAddress:t,targetUnderlyingTokenAmount:i,conversionRate:p,slippage:V(1).minus(p).toNumber()});case 12:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s){return e.apply(this,arguments)}}(),r.handleDirectSimulationDeposit=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,c=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.depositArgs,n=t.vaultContract,a=t.vault,s=t.signer,e.next=3,this.getApprovalData({depositArgs:r,signer:s});case 3:return o=(i=e.sent).approvalTransactionId,e.abrupt("return",this.simulationExecutor.executeSimulationWithReSimulationOnFailure((function(e){return c.directDeposit({depositArgs:x({},r,{options:x({},r.options,{forkId:u,save:e,root:o})}),vaultContract:n,vault:a})}),u=i.forkId));case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.directDeposit=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,c,p,d,l,f,h,v,m;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(r=t.depositArgs).toVault,a=r.amount,s=r.from,i=r.sellToken,o=r.options,u=t.vaultContract,c=t.vault,e.next=3,this.getEncodedInputData({vaultContract:u,amount:a,toVault:n});case 3:if(p=e.sent){e.next=6;break}throw new P("directDeposit#encodeDeposit failed");case 6:return e.next=8,this.getActionableAddress({toVault:n});case 8:return d=e.sent,e.next=11,this.simulationExecutor.simulateVaultInteraction(s,d,p,n,o);case 11:return l=e.sent,e.next=14,this.yearn.services.oracle.getNormalizedValueUsdc(n,l).catch((function(){throw new R("Error fetching price",R.FETCHING_PRICE_ORACLE)}));case 14:if(f=e.sent,v=c.metadata.pricePerShare,h=c.decimals){e.next=18;break}throw new P("Decimals missing for vault "+c.address);case 18:if(v){e.next=20;break}throw new P("Price per share missing in vault "+c.address+" metadata");case 20:return m=V(l).div(V(10).pow(h)).multipliedBy(v).toFixed(0),e.abrupt("return",{sourceTokenAddress:i,sourceTokenAmount:a,targetTokenAddress:n,targetTokenAmount:l,targetTokenAmountUsdc:f,targetUnderlyingTokenAddress:n,targetUnderlyingTokenAmount:m,conversionRate:1,slippage:0});case 22:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getEncodedInputData=function(){var e=v(N.mark((function e(t){var r,n,a,s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vaultContract,a=t.amount,this.shouldUsePartnerService(s=t.toVault)){e.next=3;break}return e.abrupt("return",n.encodeDeposit(a));case 3:return e.abrupt("return",null==(r=this.yearn.services.partner)?void 0:r.encodeDeposit(s,a));case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getActionableAddress=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.shouldUsePartnerService(n=t.toVault)){e.next=3;break}return e.abrupt("return",n);case 3:return e.next=5,null==(r=this.yearn.services.partner)?void 0:r.address;case 5:return e.abrupt("return",e.sent||n);case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.depositNeedsApproving=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(r=t.depositArgs).from,a=r.amount,s=r.toVault,o=new i.Contract(r.sellToken,["function allowance(address owner, address spender) view returns (uint256)"],t.signer),e.next=5,this.getActionableAddress({toVault:s});case 5:return u=e.sent,e.prev=6,e.next=9,o.allowance(n,u);case 9:return e.abrupt("return",V(e.sent.toString()).lt(V(a)));case 13:throw e.prev=13,e.t0=e.catch(6),new P("Failed to get allowance from the contract: "+e.t0);case 16:case"end":return e.stop()}}),e,this,[[6,13]])})));return function(t){return e.apply(this,arguments)}}(),r.zapIn=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,c,p,d,l,f,h,v,m,w,x,b,y,g,k,A,S,T;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=(s=t.depositArgs).sellToken,o=s.from,u=s.amount,c=s.toVault,d=t.vault,l=t.skipGasEstimate,(p=s.options).slippage){e.next=3;break}throw new P("slippage needs to be set",P.NO_SLIPPAGE);case 3:return f=null==(r=this.yearn.services.partner)?void 0:r.partnerId,h=this.getZapProtocol({vaultAddress:c}),e.next=7,this.yearn.services.portals.zapIn(c,i,u,o,p.slippage,!l,f).catch((function(){throw new _("zap in",_.ZAP_IN)}));case 7:if((v=e.sent).from&&v.to&&v.data){e.next=10;break}throw new _("zap in",_.ZAP_IN);case 10:return m=V(null==(n=v.value)?void 0:n.toString()).toFixed(0),p.gasPrice=p.gasPrice||(null==(a=v.gasPrice)?void 0:a.toString()),l||(p.gasLimit=null==(w=v.gasLimit)?void 0:w.toString()),e.next=15,this.simulationExecutor.simulateVaultInteraction(o,v.to,v.data,c,p,m);case 15:if(x=e.sent,y=d.metadata.pricePerShare,g=d.token,b=d.decimals){e.next=19;break}throw new P("Decimals missing for vault "+d.address);case 19:if(y){e.next=21;break}throw new P("Price per share missing in vault "+d.address+" metadata");case 21:k=V(x).div(V(10).pow(b)).multipliedBy(y).toFixed(0),e.t0=h,e.next=e.t0===exports.ZapProtocol.YEARN?25:e.t0===exports.ZapProtocol.PICKLE?29:33;break;case 25:return e.next=27,this.yearn.services.oracle.getNormalizedValueUsdc(c,x).then((function(e){return V(e)})).catch((function(){throw new R("error fetching price",R.FETCHING_PRICE_ORACLE)}));case 27:return A=e.sent,e.abrupt("break",33);case 29:return e.next=31,this.yearn.services.pickle.getPriceUsdc(c).catch((function(){throw new R("error fetching price",R.FETCHING_PRICE_PICKLE)})).then((function(e){return V(e)}));case 31:return A=e.sent.dividedBy(V(10).pow(b)).multipliedBy(V(x)),e.abrupt("break",33);case 33:return e.t1=V,e.next=36,this.yearn.services.oracle.getNormalizedValueUsdc(pe(i,this.chainId),u).catch((function(){throw new R("error fetching price",R.FETCHING_PRICE_ORACLE)}));case 36:return e.t2=e.sent,S=(0,e.t1)(e.t2),T=A.div(S).toNumber(),e.abrupt("return",{sourceTokenAddress:i,sourceTokenAmount:u,targetTokenAddress:c,targetTokenAmount:x,targetTokenAmountUsdc:A.toFixed(0),targetUnderlyingTokenAddress:g,targetUnderlyingTokenAmount:k,conversionRate:T,slippage:1-T});case 40:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getWithdrawApprovalData=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.from,n=t.fromVault,a=t.amount,s=t.toToken,i=t.options,e.prev=1,e.next=4,this.yearn.services.portals.zapOutApprovalState(n,s,a,r);case 4:if(!V(e.sent.amount).gte(a)){e.next=8;break}return e.abrupt("return",{needsApproving:!1});case 8:e.next=13;break;case 10:throw e.prev=10,e.t0=e.catch(1),new _("zap out approval state",_.ZAP_OUT_APPROVAL_STATE);case 13:return e.next=15,this.simulationExecutor.createFork();case 15:return o=e.sent,e.prev=16,e.next=19,this.yearn.services.portals.zapOutApprovalTransaction(n,s,a,r);case 19:if((u=e.sent).from&&u.to&&u.data){e.next=22;break}throw new _("zap out approval transaction",_.ZAP_OUT_APPROVAL);case 22:return e.next=24,this.simulationExecutor.makeSimulationRequest(u.from,u.to,u.data,x({},i,{forkId:o,save:!0}));case 24:return e.abrupt("return",{needsApproving:!0,root:e.sent.simulation.id,forkId:o});case 29:throw e.prev=29,e.t1=e.catch(16),new _("zap out approval transaction",_.ZAP_OUT_APPROVAL);case 32:case"end":return e.stop()}}),e,this,[[1,10],[16,29]])})));return function(t){return e.apply(this,arguments)}}(),r.directWithdraw=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.from,n=t.toToken,s=t.fromVault,i=t.options,o=t.vaultContract.encodeWithdraw(a=t.amount),e.next=4,this.simulationExecutor.simulateVaultInteraction(r,s,o,n,i);case 4:return u=e.sent,e.next=7,this.yearn.services.oracle.getNormalizedValueUsdc(n,u).catch((function(){throw new R("error fetching price",R.FETCHING_PRICE_ORACLE)}));case 7:return e.abrupt("return",{sourceTokenAddress:s,sourceTokenAmount:a,targetTokenAddress:n,targetTokenAmount:u,targetTokenAmountUsdc:e.sent,targetUnderlyingTokenAddress:n,targetUnderlyingTokenAmount:u,conversionRate:1,slippage:0});case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.zapOut=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,c,p,d,l,f,h,m=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.from,n=t.toToken,a=t.underlyingTokenAddress,s=t.amount,i=t.fromVault,o=t.skipGasEstimate,(u=t.options).slippage){e.next=3;break}throw new P("slippage needs to be set",P.NO_SLIPPAGE);case 3:return e.next=5,this.yearn.services.portals.zapOut(i,n,s,r,u.slippage,o).catch((function(){throw new _("error zapping out",_.ZAP_OUT)}));case 5:return c=e.sent,o||(u.gasLimit=null==(p=c.gasLimit)?void 0:p.toString()),e.next=9,v(N.mark((function e(){var t,a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c.from&&c.to&&c.data){e.next=2;break}throw new _("error zapping out",_.ZAP_OUT);case 2:if(!ue(n)){e.next=9;break}return e.next=5,m.simulationExecutor.makeSimulationRequest(r,c.to,c.data,u,null==(t=c.value)?void 0:t.toString());case 5:return e.abrupt("return",V(e.sent.transaction.transaction_info.call_trace.output).toFixed(0));case 9:return e.next=11,m.simulationExecutor.simulateVaultInteraction(r,c.to,c.data,n,u,null==(a=c.value)?void 0:a.toString());case 11:return e.abrupt("return",e.sent);case 12:case"end":return e.stop()}}),e)})))();case 9:return d=e.sent,e.next=12,this.yearn.services.oracle.getNormalizedValueUsdc(pe(n,this.chainId),d).catch((function(){throw new R("error fetching price",R.FETCHING_PRICE_ORACLE)}));case 12:return l=e.sent,e.next=15,this.yearn.services.oracle.getNormalizedValueUsdc(i,s).catch((function(){throw new R("error fetching price",R.FETCHING_PRICE_ORACLE)}));case 15:return f=e.sent,h=V(l).div(V(f)).toNumber(),e.abrupt("return",{sourceTokenAddress:i,sourceTokenAmount:s,targetTokenAddress:n,targetTokenAmount:d,targetTokenAmountUsdc:l,targetUnderlyingTokenAddress:a,targetUnderlyingTokenAmount:d,conversionRate:h,slippage:1-h});case 18:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.shouldUsePartnerService=function(e){var t;return!(null==(t=this.yearn.services.partner)||!t.isAllowed(e))},r.getZapInApprovalData=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.from,a=t.amount,s=t.toVault,i=t.options,!ue(r=t.sellToken)){e.next=3;break}return e.abrupt("return",{needsApproving:!1});case 3:return e.next=5,this.yearn.services.portals.zapInApprovalState(s,r,a,n).catch((function(){throw new _("approval state",_.ZAP_IN_APPROVAL_STATE)}));case 5:if(V(e.sent.amount).gte(a)){e.next=9;break}return e.abrupt("return",{needsApproving:!1});case 9:return e.next=11,this.simulationExecutor.createFork();case 11:return o=e.sent,e.next=14,this.yearn.services.portals.zapInApprovalTransaction(s,r,a,n).catch((function(){throw new _("approval",_.ZAP_IN_APPROVAL)})).then(function(){var e=v(N.mark((function e(t){var r,n,a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.to,a=t.data,(r=t.from)&&n&&a){e.next=3;break}throw new _("approval",_.ZAP_IN_APPROVAL);case 3:return e.abrupt("return",u.simulationExecutor.makeSimulationRequest(r,n,a,x({},i,{forkId:o,save:!0})));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).then((function(e){return e.simulation.id}));case 14:return e.abrupt("return",{needsApproving:!0,approvalTransactionId:e.sent,forkId:o});case 16:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getZapInSimulationArgs=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vault,(r=t.depositArgs).options.slippage){e.next=3;break}throw new P("slippage needs to be specified for a zap",P.NO_SLIPPAGE);case 3:return e.next=5,this.getZapInApprovalData(r);case 5:return s=(a=e.sent).needsApproving,i=a.approvalTransactionId,e.abrupt("return",{simulateFn:function(e){return u.zapIn({depositArgs:x({},r,{options:x({},r.options,{forkId:o,save:e,root:i})}),vault:n,skipGasEstimate:s})},forkId:o=a.forkId});case 11:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.approve=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.sellToken,a=t.amount,s=t.toVault,o=t.options,u=["function approve(address spender, uint256 amount) returns (bool)"],c=this.ctx.provider.write.getSigner(r=t.from),p=new i.Contract(n,u,c),e.next=6,this.getActionableAddress({toVault:s});case 6:return d=p.interface.encodeFunctionData("approve",[e.sent,a]),e.next=10,this.simulationExecutor.makeSimulationRequest(r,n,d,x({},o,{save:!0}));case 10:return e.abrupt("return",e.sent.simulation.id);case 12:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getApprovalData=function(){var e=v(N.mark((function e(t){var r,n,a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.depositArgs,n=t.signer,e.next=3,this.depositNeedsApproving({depositArgs:r,signer:n});case 3:if(e.sent){e.next=6;break}return e.abrupt("return",{});case 6:return e.next=8,this.simulationExecutor.createFork();case 8:return a=e.sent,e.next=11,this.approve(x({},r,{options:x({},r.options,{forkId:a})}));case 11:return e.abrupt("return",{approvalTransactionId:e.sent,forkId:a});case 13:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getVaultContract=function(e){var t=e.toVault,r=e.signer;return this.getZapProtocol({vaultAddress:t})===exports.ZapProtocol.PICKLE?new De(t,r):new Ue(t,r)},r.handleZapInSimulationDeposit=function(){var e=v(N.mark((function e(t){var r,n,a,s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vault,a=t.depositArgs,"portalsZapIn"!==(r=t.zapInWith)){e.next=8;break}return e.next=4,this.getZapInSimulationArgs({depositArgs:a,vault:n});case 4:return e.abrupt("return",this.simulationExecutor.executeSimulationWithReSimulationOnFailure((s=e.sent).simulateFn,s.forkId));case 8:throw new P('zapInWith "'+r+'" not supported yet!');case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.isUnderlyingToken=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.address,!Ie.includes(r=t.vault)){e.next=3;break}return e.abrupt("return",!1);case 3:return e.abrupt("return",this.yearn.vaults.isUnderlyingToken(r,n));case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getZappableVault=function(){var e=v(N.mark((function e(t){var r,n,a,s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vaultContract,this.getZapProtocol({vaultAddress:r=t.vaultAddress})!==exports.ZapProtocol.PICKLE){e.next=9;break}return e.next=5,Promise.all([n.decimals().catch((function(){throw new D("no decimals",D.NO_DECIMALS)})),n.pricePerShare().catch((function(){throw new D("no price per share",D.NO_PRICE_PER_SHARE)}))]);case 5:return s=(a=e.sent)[1],e.abrupt("return",{address:r,token:"0x9461173740d27311b176476fa27e94c681b1ea6b",decimals:a[0].toString(),metadata:{zapInWith:"portalsZapIn",zapOutWith:"portalsZapOut",pricePerShare:s.toString()}});case 9:return e.next=11,this.yearn.vaults.get([r]);case 11:return e.abrupt("return",e.sent[0]);case 14:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getZapProtocol=function(e){return Ie.includes(e.vaultAddress)?exports.ZapProtocol.PICKLE:exports.ZapProtocol.YEARN},r.getZapOutSimulationArgs=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.token.address,(r=t.withdrawArgs).options.slippage){e.next=3;break}throw new P("slippage needs to be specified for a zap",P.NO_SLIPPAGE);case 3:return e.next=5,this.getWithdrawApprovalData(r);case 5:return s=(a=e.sent).needsApproving,i=a.root,e.abrupt("return",{simulateFn:function(e){return u.zapOut(x({},r,{underlyingTokenAddress:n,skipGasEstimate:s,options:x({},r.options,{root:i,forkId:o,save:e})}))},forkId:o=a.forkId});case 11:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.handleZapOutSimulation=function(){var e=v(N.mark((function e(t){var r,n,a,s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.token,a=t.withdrawArgs,"portalsZapOut"!==(r=t.zapOutWith)){e.next=8;break}return e.next=4,this.getZapOutSimulationArgs({withdrawArgs:a,token:n});case 4:return e.abrupt("return",this.simulationExecutor.executeSimulationWithReSimulationOnFailure((s=e.sent).simulateFn,s.forkId));case 8:if("ftmApeZap"!==r){e.next=10;break}throw new P("ftmApeZap not implemented yet!");case 10:throw new P('zapOutWith "'+r+'" not supported yet!');case 11:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t}(H),ze=function(e){var t,r,n=e.obj,a=e.property,s=e.locale;return null!=n&&n.localization&&null!=(t=n.localization[s])&&t.description?n.localization[s].description:null!=(r=n&&a&&n[a])?r:e.fallback},Fe=["function strategies(address) view returns (uint256 performanceFee, uint256 activation, uint256 debtRatio, uint256 rateLimit, uint256 lastReport, uint256 totalDebt, uint256 totalGain, uint256 totalLoss)","function token() view returns (address)","event StrategyAdded(address indexed strategy, uint256 debtRatio, uint256 minDebtPerHarvest, uint256 maxDebtPerHarvest, uint256 performanceFee)"],Le=["function symbol() view returns (string)"],Ve=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).cachedFetcher=new Y("strategies/metadata/get",t.ctx,t.chainId),t}b(t,e);var r=t.prototype;return r.vaultsStrategiesMetadata=function(){var e=v(N.mark((function e(t){var r,n,a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cachedFetcher.fetch();case 2:if(!(r=e.sent)){e.next=5;break}return e.abrupt("return",r);case 5:if(!t){e.next=9;break}n=t,e.next=12;break;case 9:return e.next=11,this.yearn.services.lens.adapters.vaults.v2.assetsStatic().then((function(e){return e.map((function(e){return e.address}))}));case 11:n=e.sent;case 12:return e.prev=12,e.next=15,this.fetchMetadataFromApi(n);case 15:a=e.sent,e.next=21;break;case 18:e.prev=18,e.t0=e.catch(12),console.error(e.t0);case 21:if(a){e.next=25;break}return e.next=24,this.fetchMetadataFromChain(n);case 24:a=e.sent;case 25:return e.abrupt("return",a);case 26:case"end":return e.stop()}}),e,this,[[12,18]])})));return function(t){return e.apply(this,arguments)}}(),r.fetchMetadataFromApi=function(){var e=v(N.mark((function e(t){var r,n,a,s=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.fetchVaultsData();case 2:return r=e.sent,e.next=5,this.yearn.services.meta.strategies();case 5:return n=e.sent,a=t.map(function(){var e=v(N.mark((function e(t){var a,o;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=r.find((function(e){return e.address===t}))){e.next=3;break}return e.abrupt("return",void 0);case 3:return o=new i.Contract(a.address,Fe,s.ctx.provider.read),e.abrupt("return",s.fetchVaultStrategiesMetadata(a.strategies,n,o,a.token.symbol));case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(a).then((function(e){return e.flatMap((function(e){return e?[e]:[]}))})));case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.fetchMetadataFromChain=function(){var e=v(N.mark((function e(t){var r,n,a,s=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.services.meta.strategies();case 2:return r=e.sent,n=this.ctx.provider.read,a=t.map(function(){var e=v(N.mark((function e(t){var a,o,u,c,p;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=new i.Contract(t,Fe,n),o=s.yearn.services.helper.assetStrategiesAddresses(t).then((function(e){return e.map((function(e){return{address:e}}))})),e.next=4,Promise.all([o,a.token()]);case 4:return c=(u=e.sent)[0],p=new i.Contract(u[1],Le,n),e.next=10,p.symbol();case 10:return e.abrupt("return",s.fetchVaultStrategiesMetadata(c,r,a,e.sent));case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(a).then((function(e){return e.flatMap((function(e){return e?[e]:[]}))})));case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.fetchVaultStrategiesMetadata=function(){var e=v(N.mark((function e(t,r,n,a){var s,i=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(0!==t.length){e.next=2;break}return e.abrupt("return",void 0);case 2:return e.next=4,Promise.all(t.map(function(){var e=v(N.mark((function e(t){var s,o,u,c;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,n.strategies(t.address);case 3:o=e.sent.debtRatio,e.next=10;break;case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",void 0);case 10:if(!o.lte(p.BigNumber.from("0"))){e.next=12;break}return e.abrupt("return",void 0);case 12:return u=r.find((function(e){return e.addresses.includes(t.address)})),(c={address:t.address,name:(null==u?void 0:u.name)||t.name||"Strategy",description:ze({obj:u,property:"description",locale:i.ctx.locale,fallback:"Vault strategy missing"}),protocols:null!=(s=null==u?void 0:u.protocols)?s:[]}).description=null==c?void 0:c.description.replace(/{{token}}/g,a),e.abrupt("return",{data:c,debtRatio:o});case 16:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(t){return e.apply(this,arguments)}}())).then((function(e){return e.flatMap((function(e){return e?[e]:[]})).sort((function(e,t){return e.debtRatio.lt(t.debtRatio)?1:e.debtRatio.eq(t.debtRatio)?0:-1})).map((function(e){return e.data}))}));case 4:if(0!==(s=e.sent).length){e.next=7;break}return e.abrupt("return",void 0);case 7:return e.abrupt("return",{vaultAddress:n.address,strategiesMetadata:s});case 9:case"end":return e.stop()}}),e)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.fetchVaultsData=function(){var e=v(N.mark((function e(){var t;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d("https://api.yearn.finance/v1/chains/"+this.chainId+"/vaults/all");case 2:if((t=e.sent).ok){e.next=5;break}throw new Error("An error has occured fetching vaults data: "+t.status);case 5:return e.next=7,t.json();case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),t}(H),Ze=["function approve(address _spender, uint256 _value) public","function allowance(address _owner, address _spender) public view returns (uint256)"],je=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).cachedFetcherSupported=new Y("tokens/supported",t.ctx,t.chainId),t.cachedFetcher=new Y("tokens/metadata",t.ctx,t.chainId),t}b(t,e);var r=t.prototype;return r.price=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.yearn.services.oracle.getPriceFromRouter(t,r));case 1:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.priceUsdc=function(){var e=v(N.mark((function e(t,r){var n,a,s=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if($[this.chainId]){e.next=2;break}throw new P("the chain "+this.chainId+" hasn't been implemented yet");case 2:return e.next=4,this.supported();case 4:if(a=null==(n=e.sent)?void 0:n.reduce((function(e,t){return e[t.address]=t,e}),{}),!Array.isArray(t)){e.next=11;break}return e.next=9,Promise.all(t.map(function(){var e=v(N.mark((function e(t){var n,i;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!a||"portals"!==(null==(n=a[t])?void 0:n.dataSource)){e.next=4;break}if(!(i=a[t].priceUsdc)){e.next=4;break}return e.abrupt("return",[t,i]);case 4:return e.next=6,s.yearn.services.oracle.getPriceUsdc(t,r);case 6:return e.abrupt("return",[t,e.sent]);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 9:return e.abrupt("return",Object.fromEntries(e.sent));case 11:return e.abrupt("return",this.yearn.services.oracle.getPriceUsdc(t,r));case 12:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.balances=function(){var e=v(N.mark((function e(t,r){var n,s,i,o,u,c,p,d,l,f,h;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=ne[this.chainId],e.next=3,this.supported();case 3:if(s=e.sent,r&&(s=s.filter((function(e){return r.includes(e.address)}))),i=s.reduce((function(e,t){return e[t.dataSource].add(t.address),e}),{zapper:new Set,portals:new Set,vaults:new Set,labs:new Set,sdk:new Set,votingEscrows:new Set,gauges:new Set}),o={zapper:[],portals:[],vaults:[],labs:[],sdk:[]},null==n||!n.zapsEnabled){e.next=32;break}return e.prev=8,e.next=11,this.yearn.services.portals.balances(t);case 11:o.portals=e.sent.filter((function(e){return i.portals.has(e.address)})),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(8),console.error(e.t0);case 18:return e.prev=18,c=(u=n.nativeCurrency).address,p=u.name,d=u.symbol,l=u.decimals,e.next=22,this.ctx.provider.read.getBalance(t);case 22:return f=e.sent,e.next=25,this.yearn.services.oracle.getPriceUsdc(pe(c,this.chainId));case 25:h=e.sent,o.sdk=[{address:c,token:{address:c,name:p,decimals:l.toString(),symbol:d},balance:f.toString(),balanceUsdc:new a(f.toString()).div(Math.pow(10,18)).times(new a(h)).toString(),priceUsdc:h}],e.next=32;break;case 29:e.prev=29,e.t1=e.catch(18),console.error(e.t1);case 32:if(!this.ctx.isDevelopment||!X(this.chainId)){e.next=37;break}return e.next=35,this.getTestBalance(t);case 35:o.sdk.push(e.sent);case 37:if(!ee.includes(this.chainId)){e.next=43;break}return e.next=40,this.yearn.vaults.balances(t);case 40:return o.vaults=e.sent.filter((function(e){return"0"!==e.balance&&i.vaults.has(e.address)})),e.abrupt("return",[].concat(o.vaults,o.zapper,o.portals,o.sdk));case 43:return console.error("the chain "+this.chainId+" hasn't been implemented yet"),e.abrupt("return",[]);case 45:case"end":return e.stop()}}),e,this,[[8,15],[18,29]])})));return function(t,r){return e.apply(this,arguments)}}(),r.supported=function(){var e=v(N.mark((function e(){var t,r,n,a,s,i;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(ee.includes(this.chainId)){e.next=3;break}return console.error("the chain "+this.chainId+" hasn't been implemented yet"),e.abrupt("return",[]);case 3:return e.next=5,this.cachedFetcherSupported.fetch();case 5:if(!(t=e.sent)){e.next=8;break}return e.abrupt("return",t);case 8:if(n=[],!(r=ne[this.chainId]).zapsEnabled){e.next=20;break}return e.prev=11,e.next=14,this.getZapTokensWithIcons();case 14:n=e.sent,e.next=20;break;case 17:e.prev=17,e.t0=e.catch(11),console.error(e.t0);case 20:return e.next=22,this.yearn.vaults.tokens();case 22:if(a=e.sent,!this.ctx.isDevelopment||!X(this.chainId)){e.next=28;break}return e.next=26,this.getTestToken();case 26:a.push(e.sent);case 28:if(n.length){e.next=30;break}return e.abrupt("return",a);case 30:return s=we(a,n),i=new Set(n.map((function(e){return e.address}))),e.abrupt("return",s.map((function(e){var t;return x({},e,i.has(e.address)&&{supported:x({},e.supported,{portalsZapIn:!0,portalsZapOut:null==(t=r.zapOutTokenSymbols)?void 0:t.includes(e.symbol.toUpperCase())})})})));case 33:case"end":return e.stop()}}),e,this,[[11,17]])})));return function(){return e.apply(this,arguments)}}(),r.findByAddress=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.supported();case 2:return e.abrupt("return",e.sent.find((function(e){return e.address===t})));case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.allowance=function(){var e=v(N.mark((function e(t,r,n){var a,s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a={owner:t,token:r,spender:n,amount:c.MaxUint256.toString()},!ue(r)&&r!==n){e.next=3;break}return e.abrupt("return",a);case 3:return s=new i.Contract(r,Ze,this.ctx.provider.read),e.next=6,s.allowance(t,n);case 6:return e.abrupt("return",x({},a,{amount:e.sent.toString()}));case 8:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.populateApprove=function(){var e=v(N.mark((function e(t,r,n,a,s){var o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===s&&(s={}),!ue(r)){e.next=3;break}throw new P("Native tokens cant be approved: "+r);case 3:if(r!==n){e.next=5;break}throw new P("Cant approve token as its spender: "+r);case 5:return o=this.ctx.provider.write.getSigner(t),u=new i.Contract(r,Ze,o),e.abrupt("return",u.populateTransaction.approve(n,a,s));case 8:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s){return e.apply(this,arguments)}}(),r.approve=function(){var e=v(N.mark((function e(t,r,n,a,s){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===s&&(s={}),e.next=3,this.populateApprove(t,r,n,a,s);case 3:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(e.sent));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s){return e.apply(this,arguments)}}(),r.getZapTokensWithIcons=function(){var e=v(N.mark((function e(){var t,r,n,a=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.services.portals.supportedTokens();case 2:return r=(t=e.sent).map((function(e){return e.address})),e.next=6,this.yearn.services.asset.ready.then((function(){return a.yearn.services.asset.icon(r)}));case 6:return n=e.sent,e.abrupt("return",t.map((function(e){var t=n[e.address];return t?x({},e,{icon:t}):e})));case 9:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.icon=function(e){return this.yearn.services.asset.icon(e)},r.metadata=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cachedFetcher.fetch();case 2:if(!(n=e.sent)){e.next=7;break}r=n,e.next=10;break;case 7:return e.next=9,this.yearn.services.meta.tokens();case 9:r=e.sent;case 10:if(!t){e.next=14;break}return e.abrupt("return",r.filter((function(e){return t.includes(e.address)})));case 14:return e.abrupt("return",r);case 15:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getTestBalance=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r="0x278E23E4EA5A03C0f36a83fd6A9e326B874BF0c5",e.next=3,this.yearn.services.helper.tokenBalances(t,[r]);case 3:return e.abrupt("return",{address:r,token:{address:r,name:"TestYFI",decimals:"18",symbol:"TYFI"},balance:(n=e.sent[0]).balance.toString(),balanceUsdc:new a(n.balance.toString()).div(Math.pow(10,18)).times(new a("1000000")).toString(),priceUsdc:"1000000"});case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getTestToken=function(){return{address:"0x278E23E4EA5A03C0f36a83fd6A9e326B874BF0c5",name:"TestYFI",decimals:"18",symbol:"TYFI",icon:"https://raw.githubusercontent.com/yearn/yearn-assets/master/icons/multichain-tokens/1/0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e/logo-128.png",priceUsdc:"1000000",dataSource:"sdk",supported:{}}},t}(H);function Me(e){var t=e.addressables,r=e.zapInType,n=e.zapOutType,a=new Set(e.supportedVaultAddresses);return t.map((function(e){try{var t=s.getAddress(e.address),i=a.has(t);return x({},e,{allowZapIn:i,allowZapOut:i,zapInWith:i?r:void 0,zapOutWith:i?n:void 0})}catch(t){return e}}))}var We=["function deposit(uint256 amount) public","function withdraw(uint256 amount) public"],Ge=function(e){function t(){var t;return(t=e.apply(this,arguments)||this).cachedFetcherGet=new Y("vaults/get",t.ctx,t.chainId),t.cachedFetcherGetDynamic=new Y("vaults/getDynamic",t.ctx,t.chainId),t.cachedFetcherTokens=new Y("vaults/tokens",t.ctx,t.chainId),t}b(t,e);var r=t.prototype;return r.get=function(){var e=v(N.mark((function e(t,r){var n,a,s,i,o,u,c,p,d,l,f,h,m,w,b,y,g,k,A=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cachedFetcherGet.fetch();case 2:if(!(n=e.sent)){e.next=9;break}if(!t){e.next=8;break}return e.abrupt("return",n.filter((function(e){return t.includes(e.address)})));case 8:return e.abrupt("return",n);case 9:return a=this.yearn.services.meta.vaults().catch((function(e){return console.error(e),Promise.resolve([])})),e.next=12,Promise.all([a,this.getStatic(t,r)]);case 12:return i=(s=e.sent)[0],o=s[1],u=[],e.prev=16,e.next=19,this.getDynamic(t,i,r);case 19:u=e.sent,e.next=30;break;case 22:return e.prev=22,e.t0=e.catch(16),c=o.map((function(e){return e.address})),p=ve(c,30),d=p.map(function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",A.getDynamic(t,i,r));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.next=29,Promise.all(d).then((function(e){return e.flat()}));case 29:u=e.sent;case 30:return l=this.yearn.strategies.vaultsStrategiesMetadata(u.map((function(e){return e.address}))).catch((function(e){return console.error(e),Promise.resolve([])})),f=this.yearn.earnings.assetsHistoricEarnings().catch((function(e){return console.error(e),Promise.resolve([])})),e.next=34,Promise.all([l,f]);case 34:m=(h=e.sent)[0],w=h[1],b=[],y=function(){var e,t,r=k.value,n=u.find((function(e){return r.address===e.address}));if(!n)throw new P("Dynamic asset does not exist for "+r.address);var a=i.find((function(e){return e.address===r.address}));if(null!=a&&a.hideAlways)return"continue";var s=null!=(e=null==a?void 0:a.order)?e:Math.max();n.metadata.displayName=n.metadata.displayName||r.name,n.metadata.strategies=m.find((function(e){return e.vaultAddress===r.address})),n.metadata.historicEarnings=null==(t=w.find((function(e){return e.assetAddress===r.address})))?void 0:t.dayData,b.push({vault:x({},r,n),order:s})},g=E(o);case 40:if((k=g()).done){e.next=46;break}if("continue"!==y()){e.next=44;break}return e.abrupt("continue",44);case 44:e.next=40;break;case 46:return e.abrupt("return",b.sort((function(e,t){return e.order-t.order})).map((function(e){return e.vault})));case 47:case"end":return e.stop()}}),e,this,[[16,22]])})));return function(t,r){return e.apply(this,arguments)}}(),r.getStatic=function(){var e=v(N.mark((function e(t,r){var n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Object.values(this.yearn.services.lens.adapters.vaults),e.next=3,Promise.all(n.map(function(){var e=v(N.mark((function e(n){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.assetsStatic(t,r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())).then((function(e){return e.flat()}));case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getDynamic=function(){var e=v(N.mark((function e(t,r,n){var a,s,i,o,u=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cachedFetcherGetDynamic.fetch();case 2:if(!(a=e.sent)){e.next=5;break}return e.abrupt("return",t?a.filter((function(e){return t.includes(e.address)})):a);case 5:if(!r){e.next=9;break}e.t0=r,e.next=12;break;case 9:return e.next=11,this.yearn.services.meta.vaults().catch((function(e){return console.error(e),Promise.resolve([])}));case 11:e.t0=e.sent;case 12:if(s=e.t0,null==(i=ne[this.chainId])||!i.zapsEnabled){e.next=19;break}return e.next=17,this.yearn.services.portals.supportedVaultAddresses();case 17:s=Me({addressables:s,supportedVaultAddresses:e.sent,zapInType:"portalsZapIn",zapOutType:"portalsZapOut"});case 19:return o=Object.values(this.yearn.services.lens.adapters.vaults),e.next=22,Promise.all(o.map(function(){var e=v(N.mark((function e(r){var a,i;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.assetsDynamic(t,n);case 2:return a=e.sent,e.next=5,u.yearn.services.vision.apy(a.map((function(e){return e.address})));case 5:return i=e.sent,e.abrupt("return",a.map((function(e){var t=s.find((function(t){return t.address===e.address}));if(e.metadata.apy=i[e.address],e.tokenId===ie){var r,n=null!=(r=u.yearn.services.asset.icon(se))?r:"";e.metadata.displayIcon=n,e.metadata.displayName="ETH",e.metadata.defaultDisplayToken=se}else{var a,o=null!=(a=u.yearn.services.asset.icon(e.tokenId))?a:"";e.metadata.displayIcon=o;var c=u.yearn.services.asset.alias(e.tokenId);e.metadata.displayName=c?c.symbol:"",e.metadata.defaultDisplayToken=e.tokenId}return t&&u.fillMetadataOverrides(e,t),e})));case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())).then((function(e){return e.flat()}));case 22:return e.abrupt("return",e.sent);case 23:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.positionsOf=function(){var e=v(N.mark((function e(t,r,n){var a,s=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=Object.values(this.yearn.services.lens.adapters.vaults),e.next=3,Promise.all(a.map(function(){var e=v(N.mark((function e(a){var i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,a.positionsOf(t,r,n);case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),!r){e.next=12;break}i=r,e.next=15;break;case 12:return e.next=14,s.getStatic(r,n).then((function(e){return e.map((function(e){return e.address}))}));case 14:i=e.sent;case 15:return o=ve(i,30),u=o.map(function(){var e=v(N.mark((function e(r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",a.positionsOf(t,r,n));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.next=19,Promise.all(u).then((function(e){return e.flat()}));case 19:return e.abrupt("return",e.sent);case 20:case"end":return e.stop()}}),e,null,[[0,6]])})));return function(t){return e.apply(this,arguments)}}())).then((function(e){return e.flat()}));case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.summaryOf=function(){var e=v(N.mark((function e(t){var r;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.earnings.accountAssetsData(t);case 2:return e.abrupt("return",{earnings:(r=e.sent).earnings,holdings:r.holdings,grossApy:r.grossApy,estimatedYearlyYield:r.estimatedYearlyYield});case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.metadataOf=function(){var e=v(N.mark((function e(t,r){var n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.yearn.earnings.accountAssetsData(t);case 2:if(n=e.sent.earningsAssetData,r){e.next=6;break}return e.abrupt("return",n);case 6:return e.abrupt("return",n.filter((function(e){return r.includes(e.assetAddress)})));case 7:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.balances=function(){var e=v(N.mark((function e(t,r){var n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.tokens();case 2:return n=e.sent,e.next=5,this.yearn.services.helper.tokenBalances(t,n.map((function(e){return e.address})),r);case 5:return e.abrupt("return",e.sent.map((function(e){var t=n.find((function(t){return t.address===e.address}));if(!t)throw new P("Token does not exist for Balance("+e.address+")");return x({},e,{token:t})})));case 7:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.tokens=function(){var e=v(N.mark((function e(t){var r,n,a=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.cachedFetcherTokens.fetch();case 2:if(!(r=e.sent)){e.next=5;break}return e.abrupt("return",r);case 5:return n=Object.values(this.yearn.services.lens.adapters.vaults),e.next=8,this.yearn.services.asset.ready;case 8:return e.next=10,Promise.all(n.map(function(){var e=v(N.mark((function e(r){var n,s,i,o,u,c;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.tokens(t);case 2:return s=a.yearn.services.asset.icon((n=e.sent).concat(se)),i=a.yearn.services.helper.tokens(n,t),o=a.yearn.tokens.metadata(n),e.next=8,Promise.all([i,o]);case 8:return c=(u=e.sent)[1],e.abrupt("return",Promise.all(u[0].map(function(){var e=v(N.mark((function e(r){var n,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=c.find((function(e){return e.address===r.address})),e.t0=x,e.t1={},e.t2=r,e.t3=s[r.address],e.t4={vaults:!0},e.next=8,a.yearn.services.oracle.getPriceUsdc(r.address,t);case 8:return e.t5=e.sent,e.t6=i,e.t7={icon:e.t3,dataSource:"vaults",supported:e.t4,priceUsdc:e.t5,metadata:e.t6},o=(0,e.t0)(e.t1,e.t2,e.t7),(u=null==(n=a.yearn.services.asset.alias(r.address))?void 0:n.symbol)&&(o.symbol=u),i&&a.fillTokenMetadataOverrides(o,i),e.abrupt("return",o);case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())));case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())).then((function(e){return e.flat()}));case 10:return e.abrupt("return",e.sent);case 11:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getDepositAllowance=function(){var e=v(N.mark((function e(t,r,n,a){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getDepositContractAddress(r,n,a);case 2:return e.abrupt("return",this.yearn.tokens.allowance(t,n,e.sent));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.getWithdrawAllowance=function(){var e=v(N.mark((function e(t,r,n,a){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getWithdrawContractAddress(r,n,a);case 2:return e.abrupt("return",this.yearn.tokens.allowance(t,r,e.sent));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.populateApproveDeposit=function(){var e=v(N.mark((function e(t,r,n,a,s,i){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getDepositContractAddress(r,n,s);case 2:return e.abrupt("return",this.yearn.tokens.populateApprove(t,n,e.sent,null!=a?a:c.MaxUint256.toString(),i));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i){return e.apply(this,arguments)}}(),r.approveDeposit=function(){var e=v(N.mark((function e(t,r,n,a,s,i){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getDepositContractAddress(r,n,s);case 2:return e.abrupt("return",this.yearn.tokens.approve(t,n,e.sent,null!=a?a:c.MaxUint256.toString(),i));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i){return e.apply(this,arguments)}}(),r.populateApproveWithdraw=function(){var e=v(N.mark((function e(t,r,n,a,s,i){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getWithdrawContractAddress(r,n,s);case 2:return e.abrupt("return",this.yearn.tokens.populateApprove(t,r,e.sent,null!=a?a:c.MaxUint256.toString(),i));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i){return e.apply(this,arguments)}}(),r.approveWithdraw=function(){var e=v(N.mark((function e(t,r,n,a,s,i){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getWithdrawContractAddress(r,n,s);case 2:return e.abrupt("return",this.yearn.tokens.approve(t,r,e.sent,null!=a?a:c.MaxUint256.toString(),i));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i){return e.apply(this,arguments)}}(),r.getDepositContractAddress=function(){var e=v(N.mark((function e(t,r,n){var a,s,i,o;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n){e.next=4;break}return e.next=3,this.yearn.addressProvider.addressById(G.cowProtocolRelayer);case 3:return e.abrupt("return",e.sent);case 4:if(!ue(r)){e.next=6;break}return e.abrupt("return",t);case 6:if(!this.isZappingIntoPickleJar({vault:t})){e.next=11;break}return e.next=10,this.yearn.addressProvider.addressById(G.pickleZapIn);case 10:return e.abrupt("return",e.sent);case 11:return e.next=13,this.isUnderlyingToken(t,r);case 13:if(a=e.sent,s=this.shouldUsePartnerService(t),!a||!s){e.next=22;break}return e.next=18,null==(i=this.yearn.services.partner)?void 0:i.address;case 18:if(o=e.sent){e.next=21;break}throw new P("Partner Tracking Contract Address not defined");case 21:return e.abrupt("return",o);case 22:if(!a){e.next=24;break}return e.abrupt("return",t);case 24:if(!(Q(this.chainId)&&ue(r)&&ce(t))){e.next=28;break}return e.next=27,this.yearn.addressProvider.addressById(G.yearnZapEth);case 27:return e.abrupt("return",e.sent);case 28:return e.next=30,this.yearn.addressProvider.addressById(G.portalsZapIn);case 30:return e.abrupt("return",e.sent);case 31:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.getWithdrawContractAddress=function(){var e=v(N.mark((function e(t,r,n){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n){e.next=4;break}return e.next=3,this.yearn.addressProvider.addressById(G.cowProtocolRelayer);case 3:return e.abrupt("return",e.sent);case 4:return e.next=6,this.isUnderlyingToken(t,r);case 6:if(!e.sent){e.next=9;break}return e.abrupt("return",t);case 9:if(!(Q(this.chainId)&&ue(r)&&ce(t))){e.next=13;break}return e.next=12,this.yearn.addressProvider.addressById(G.yearnZapEth);case 12:return e.abrupt("return",e.sent);case 13:return e.next=15,this.yearn.addressProvider.addressById(G.portalsZapOut);case 15:return e.abrupt("return",e.sent);case 16:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.isUnderlyingToken=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getStatic([t]);case 2:return e.abrupt("return",e.sent[0].token===r);case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getExpectedTransactionOutcome=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,c,p,d,l,f,h,v,m,w,x;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.transactionType,n=t.sourceTokenAddress,a=t.targetTokenAddress,s=t.sourceTokenAmount,i=t.accountAddress,o=t.slippageTolerance,(u=t.gasless)||"DEPOSIT"!==r){e.next=5;break}return e.next=4,this.yearn.simulation._deposit(a,n,s,i,{slippage:o});case 4:return e.abrupt("return",e.sent);case 5:if(u||"WITHDRAW"!==r){e.next=9;break}return e.next=8,this.yearn.simulation._withdraw(n,a,s,i,{slippage:o});case 8:return e.abrupt("return",e.sent);case 9:return e.next=11,this.yearn.services.cowSwap.getExpectedTransactionOutcome({sourceTokenAddress:n,targetTokenAddress:a,sourceTokenAmount:s,accountAddress:i});case 11:return p=(c=e.sent).targetTokenAmount,d=c.sourceTokenAmountFee,e.next=16,this.yearn.services.oracle.getNormalizedValueUsdc(n,s);case 16:return l=e.sent,e.next=19,this.yearn.services.oracle.getNormalizedValueUsdc(a,p);case 19:return f=e.sent,e.next=22,this.get([a]);case 22:return m=(v=!!(h=e.sent[0]))?h.token:a,w=v?V(p).div(V(10).pow(h.decimals)).multipliedBy(h.metadata.pricePerShare).toFixed(0):p,x=V(l).eq(0)?0:V(f).div(l).toNumber(),e.abrupt("return",{sourceTokenAddress:n,sourceTokenAmount:s,targetTokenAddress:a,targetTokenAmount:p,targetTokenAmountUsdc:f,targetUnderlyingTokenAddress:m,targetUnderlyingTokenAmount:w,conversionRate:x,slippage:V(1).minus(x).toNumber(),sourceTokenAmountFee:d});case 29:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.deposit=function(){var e=v(N.mark((function e(t,r,n,a,s,i){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===s&&(s={}),void 0===i&&(i={}),e.next=4,this.populateDepositTransaction({vault:t,token:r,amount:n,account:a,options:s,overrides:i});case 4:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(e.sent));case 6:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i){return e.apply(this,arguments)}}(),r.gaslessDeposit=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.vaultAddress,n=t.tokenAddress,a=t.tokenAmount,s=t.vaultAmount,i=t.feeAmount,o=t.accountAddress,e.next=3,this.yearn.services.cowSwap.sendOrder({sourceTokenAddress:n,targetTokenAddress:r,sourceTokenAmount:a,targetTokenAmount:s,sourceTokenAmountFee:i,accountAddress:o});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.withdraw=function(){var e=v(N.mark((function e(t,r,n,a,s,i){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===s&&(s={}),void 0===i&&(i={}),e.next=4,this.populateWithdrawTransaction({vault:t,token:r,amount:n,account:a,options:s,overrides:i});case 4:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(e.sent));case 6:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i){return e.apply(this,arguments)}}(),r.gaslessWithdraw=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.vaultAddress,n=t.tokenAddress,a=t.vaultAmount,s=t.tokenAmount,i=t.feeAmount,o=t.accountAddress,e.next=3,this.yearn.services.cowSwap.sendOrder({sourceTokenAddress:r,targetTokenAddress:n,sourceTokenAmount:a,targetTokenAmount:s,sourceTokenAmountFee:i,accountAddress:o});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getInfo=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=["string name","string symbol","string apiVersion","bool emergencyShutdown","uint256 lastReport","uint256 managementFee","uint256 performanceFee","uint256 totalAssets","uint256 depositLimit","uint256 debtRatio","address management","address governance","address guardian","address rewards"].map((function(e){return u.ParamType.from(e)})),e.next=3,this.yearn.services.propertiesAggregator.getProperties(t,r);case 3:return e.abrupt("return",{name:(n=e.sent).name,symbol:n.symbol,apiVersion:n.apiVersion,emergencyShutdown:n.emergencyShutdown,lastReport:new Date(n.lastReport.mul(p.BigNumber.from(1e3)).toNumber()),managementFee:n.managementFee,performanceFee:n.performanceFee,totalAssets:n.totalAssets,depositLimit:n.depositLimit,debtRatio:n.debtRatio,management:n.management,governance:n.governance,guardian:n.guardian,rewards:n.rewards});case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.zapIn=function(){var e=v(N.mark((function e(t,r,n,a,s,i,o){var u,c,d,l;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===s&&(s={}),void 0!==s.slippage){e.next=5;break}throw new P("zap operations should have a slippage set");case 5:if(!(Q(this.chainId)&&ue(r)&&ce(t))){e.next=9;break}return e.next=8,this.yearn.services.zapEth.zapIn(t,r,n,a);case 8:return e.abrupt("return",e.sent);case 9:return e.next=11,this.yearn.services.portals.zapIn(t,r,n,a,s.slippage,null==(u=!s.skipGasEstimate)||u,null==(c=this.yearn.services.partner)?void 0:c.partnerId);case 11:return l={to:(d=e.sent).to,from:d.from,data:d.data,value:d.value?p.BigNumber.from(d.value):void 0,gasLimit:d.gasLimit?p.BigNumber.from(d.gasLimit):void 0},e.abrupt("return",l);case 14:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i,o){return e.apply(this,arguments)}}(),r.fillTokenMetadataOverrides=function(e,t){t.tokenIconOverride&&(e.icon=t.tokenIconOverride),t.tokenSymbolOverride&&(e.symbol=t.tokenSymbolOverride),t.tokenNameOverride&&(e.name=t.tokenNameOverride)},r.fillMetadataOverrides=function(e,t){t.displayName&&(e.metadata.displayName=t.displayName),t.vaultSymbolOverride&&(e.metadata.symbol=t.vaultSymbolOverride),t.vaultIconOverride&&(e.metadata.displayIcon=t.vaultIconOverride),t.apyTypeOverride&&(e.metadata.apy||(e.metadata.apy=this.makeEmptyApy()),e.metadata.apy.type=t.apyTypeOverride),t.apyOverride&&(e.metadata.apy||(e.metadata.apy=this.makeEmptyApy()),e.metadata.apy.net_apy=t.apyOverride,e.metadata.apy.type="override"),e.metadata.depositsDisabled=t.depositsDisabled,e.metadata.withdrawalsDisabled=t.withdrawalsDisabled,e.metadata.allowZapIn=t.allowZapIn,e.metadata.allowZapOut=t.allowZapOut,e.metadata.zapInWith=t.zapInWith,e.metadata.zapOutWith=t.zapOutWith,e.metadata.migrationContract=t.migrationContract,e.metadata.migrationTargetVault=t.migrationTargetVault,e.metadata.vaultNameOverride=t.vaultNameOverride,e.metadata.vaultDetailPageAssets=t.vaultDetailPageAssets,e.metadata.classification=t.classification,e.metadata.hideIfNoDeposits=e.metadata.emergencyShutdown||t.retired||t.migrationAvailable||!1,e.metadata.migrationAvailable=e.metadata.migrationAvailable||t.migrationAvailable||!1},r.shouldUsePartnerService=function(e){var t;return!(null==(t=this.yearn.services.partner)||!t.isAllowed(e))},r.makeEmptyApy=function(){return{type:"manual_override",gross_apr:0,net_apy:0,fees:{performance:null,withdrawal:null,management:null,keep_crv:null,cvx_keep_crv:null},points:null,composite:null}},r.populateDepositTransaction=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d,l,f,h;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.token,a=t.amount,s=t.account,u=void 0===(o=t.options)?{}:o,p=void 0===(c=t.overrides)?{}:c,!this.isZappingIntoPickleJar({vault:r=t.vault})){e.next=3;break}return e.abrupt("return",this.zapIn(r,n,a,s,u,exports.ZapProtocol.PICKLE,p));case 3:return e.next=5,this.isUnderlyingToken(r,n);case 5:if(e.sent){e.next=8;break}return e.abrupt("return",this.zapIn(r,n,a,s,u,exports.ZapProtocol.YEARN,p));case 8:if(!this.shouldUsePartnerService(r)){e.next=13;break}if(l=null==(d=this.yearn.services.partner)?void 0:d.populateDepositTransaction(r,a,p)){e.next=12;break}throw new P("deposit transaction failed");case 12:return e.abrupt("return",l);case 13:return f=this.ctx.provider.write.getSigner(s),h=new i.Contract(r,We,f),e.abrupt("return",h.populateTransaction.deposit(a,p));case 16:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.populateWithdrawTransaction=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,d,l,f,h,v,m;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.vault,a=t.token,s=t.amount,c=void 0===(u=t.options)?{}:u,l=void 0===(d=t.overrides)?{}:d,f=this.ctx.provider.write.getSigner(o=t.account),e.next=4,this.isUnderlyingToken(n,a);case 4:if(!e.sent){e.next=10;break}return h=new i.Contract(n,We,f),e.next=9,h.populateTransaction.withdraw(s,l);case 9:return e.abrupt("return",e.sent);case 10:if(void 0!==c.slippage){e.next=12;break}throw new P("zap operations should have a slippage set");case 12:if(!(Q(this.chainId)&&ue(a)&&ce(n))){e.next=16;break}return e.next=15,this.yearn.services.zapEth.zapOut(n,a,s,o);case 15:return e.abrupt("return",e.sent);case 16:return e.next=18,this.yearn.services.portals.zapOut(n,a,s,o,c.slippage,null==(r=!c.skipGasEstimate)||r,c.signature);case 18:return m={to:(v=e.sent).to,from:v.from,data:v.data,value:v.value?p.BigNumber.from(v.value):void 0,gasLimit:v.gasLimit?p.BigNumber.from(v.gasLimit):void 0},e.abrupt("return",m);case 21:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.isZappingIntoPickleJar=function(e){return Ie.includes(e.vault)},t}(H),Ye=j(126144e3),qe=["function locked(address arg0) public view returns (tuple(uint256 amount, uint256 end))","function modify_lock(uint256 amount, uint256 unlock_time, address user) public returns (tuple(uint256 amount, uint256 end))","function withdraw() public returns (tuple(uint256 amount, uint256 penalty))"],He=["function claim(address user, bool relock) public returns (uint256)"],Ke=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.get=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.getSupportedAddresses({addresses:r});case 3:return n=e.sent,e.next=6,this.getStatic({addresses:n});case 6:return a=e.sent,e.next=9,this.getDynamic({addresses:n});case 9:return s=e.sent,i=z(a,"address"),o=z(s,"address"),u=n.map((function(e){return x({},i[e],o[e])})),e.abrupt("return",u);case 14:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getStatic=function(){var e=v(N.mark((function e(t){var r,n,a,s,i=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.getSupportedAddresses({addresses:r});case 3:return n=e.sent,a=["address token","string name","string symbol","uint256 decimals"].map((function(e){return u.ParamType.from(e)})),s=n.map(function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.yearn.services.propertiesAggregator.getProperties(t,a);case 2:return n={address:t,typeId:"VOTING_ESCROW",token:(r=e.sent).token,name:r.name,version:"1",symbol:r.symbol,decimals:r.decimals.toString()},e.abrupt("return",n);case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(s));case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getDynamic=function(){var e=v(N.mark((function e(t){var r,n,a,s,i=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.getSupportedAddresses({addresses:r});case 3:return n=e.sent,a=["address token","uint256 supply","address reward_pool"].map((function(e){return u.ParamType.from(e)})),s=n.map(function(){var e=v(N.mark((function e(t){var r,n,s,o,u,c;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.yearn.services.propertiesAggregator.getProperties(t,a);case 2:return n=(r=e.sent).token,s=r.reward_pool,o=r.supply.toString(),e.next=9,i.yearn.services.oracle.getPriceUsdc(n);case 9:return u=e.sent,c={amount:o,amountUsdc:V(o).times(Z({amount:u,decimals:6})).toFixed(0)},e.abrupt("return",{address:t,typeId:"VOTING_ESCROW",tokenId:n,underlyingTokenBalance:c,metadata:{rewardPool:s}});case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(s));case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.positionsOf=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.addresses,e.next=3,this.get({addresses:n});case 3:return s=(a=e.sent).map((function(e){return e.address})),o=a.map((function(e){return e.token})),e.next=8,this.yearn.services.helper.tokenBalances(r,s);case 8:return u=z(e.sent,"address"),e.next=12,this.yearn.services.helper.tokenPrices(o);case 12:return c=z(e.sent,"address"),p=a.map(function(){var e=v(N.mark((function e(t){var n,a,s,o,p,l,f,h,v,m,w;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=t.metadata,o=u[n=t.address].balance,p=c[a=t.token].priceUsdc,l=new i.Contract(n,qe,d.ctx.provider.read),e.next=6,l.locked(r);case 6:return f=e.sent.amount.toString(),h={assetAddress:n,tokenAddress:a,typeId:"DEPOSIT",balance:o,underlyingTokenBalance:{amount:f,amountUsdc:V(f).times(Z({amount:p,decimals:6})).toFixed(0)},assetAllowances:[],tokenAllowances:[]},v=new i.Contract(s.rewardPool,He,d.ctx.provider.read),e.next=12,v.callStatic.claim(r,!1);case 12:return m=e.sent.toString(),w={assetAddress:n,tokenAddress:a,typeId:"YIELD",balance:m,underlyingTokenBalance:{amount:m,amountUsdc:V(m).times(Z({amount:p,decimals:6})).toFixed(0)},assetAllowances:[],tokenAllowances:[]},e.abrupt("return",[h,w]);case 16:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.next=17,Promise.all(p);case 17:return e.abrupt("return",e.sent.flat().filter((function(e){var t=e.underlyingTokenBalance;return V(e.balance).gt(0)||V(t.amount).gt(0)})));case 19:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.metadataOf=function(){var e=v(N.mark((function e(t){var r,n,a,s=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.addresses,e.next=3,this.get({addresses:n});case 3:return a=e.sent.map(function(){var e=v(N.mark((function e(t){var n,a,o,u,c,p,d;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.address,a=s.ctx.provider.write.getSigner(r),o=new i.Contract(n,qe,a),e.next=5,o.locked(r);case 5:if(l=e.sent.end.toNumber(),!((u=1e3*l)>=Date.now())){e.next=14;break}return c=u,e.next=12,o.callStatic.withdraw();case 12:p=V((d=e.sent).penalty.toString()).div(V(d.penalty.toString()).plus(d.amount.toString())).toNumber();case 14:return e.abrupt("return",{assetAddress:n,unlockDate:c,earlyExitPenaltyRatio:p});case 15:case"end":return e.stop()}var l}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(a));case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.balances=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.addresses,e.next=3,this.get({addresses:n});case 3:return a=e.sent.map((function(e){return e.token})),e.next=7,this.yearn.services.helper.tokens(a);case 7:return s=z(e.sent,"address"),e.next=11,this.yearn.services.helper.tokenBalances(r,a);case 11:return i=z(e.sent,"address"),o=a.map((function(e){var t=i[e];return{address:r,token:s[e],balance:t.balance,balanceUsdc:t.balanceUsdc,priceUsdc:t.priceUsdc}})),e.abrupt("return",o);case 15:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getExpectedTransactionOutcome=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d,l,f,h,v;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=t.votingEscrowTransactionType,s=t.tokenAddress,o=t.votingEscrowAddress,u=t.amount,c=t.time,p=this.ctx.provider.write.getSigner(n=t.accountAddress),d=new i.Contract(o,qe,p),l="0",e.t0=a,e.next="LOCK"===e.t0?7:"ADD"===e.t0?15:"EXTEND"===e.t0?21:27;break;case 7:if(u){e.next=9;break}throw new Error("'amount' argument missing");case 9:if(c){e.next=11;break}throw new Error("'time' argument missing");case 11:return e.next=13,d.callStatic.modify_lock(u,c,n);case 13:return f=e.sent,e.abrupt("break",28);case 15:if(u){e.next=17;break}throw new Error("'amount' argument missing");case 17:return e.next=19,d.callStatic.modify_lock(u,"0",n);case 19:return f=e.sent,e.abrupt("break",28);case 21:if(c){e.next=23;break}throw new Error("'time' argument missing");case 23:return e.next=25,d.callStatic.modify_lock("0",c,n);case 25:return f=e.sent,e.abrupt("break",28);case 27:throw new Error(a+" not supported");case 28:return l=this.getVotingPower(f.amount.toString(),f.end.toNumber()),e.next=31,this.yearn.tokens.findByAddress(s);case 31:return h=e.sent,v=V(u).times(Z({amount:null!=(r=null==h?void 0:h.priceUsdc)?r:"0",decimals:6})).toFixed(0),e.abrupt("return",{sourceTokenAddress:s,sourceTokenAmount:null!=u?u:"0",sourceTokenAmountUsdc:v,targetTokenAddress:o,targetTokenAmount:l,targetTokenAmountUsdc:v});case 34:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.tokens=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.get({addresses:r});case 3:return n=e.sent.map((function(e){return e.token})),e.next=7,this.yearn.services.helper.tokens(n);case 7:return a=z(e.sent,"address"),e.next=11,this.yearn.services.asset.icon(n);case 11:return s=e.sent,e.next=14,this.yearn.services.helper.tokenPrices(n);case 14:return i=z(e.sent,"address"),e.next=18,this.yearn.tokens.metadata(n);case 18:return o=z(e.sent,"address"),u=n.map((function(e){return x({},a[e],{icon:s[e],priceUsdc:i[e].priceUsdc,dataSource:"votingEscrows",supported:{votingEscrows:!0},metadata:o[e]})})),e.abrupt("return",u);case 22:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getLockAllowance=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.yearn.tokens.allowance(t.accountAddress,t.tokenAddress,t.votingEscrowAddress));case 2:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.approveLock=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,p;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.tokenAddress,a=t.votingEscrowAddress,s=t.amount,i=t.populate,u=void 0===(o=t.overrides)?{}:o,e.next=3,this.yearn.tokens.populateApprove(r,n,a,null!=s?s:c.MaxUint256.toString(),u);case 3:if(p=e.sent,!i){e.next=6;break}return e.abrupt("return",p);case 6:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(p));case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.lock=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d,l;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.votingEscrowAddress,a=t.amount,s=t.time,o=t.populate,c=void 0===(u=t.overrides)?{}:u,p=this.ctx.provider.write.getSigner(r=t.accountAddress),d=new i.Contract(n,qe,p),e.next=5,d.populateTransaction.modify_lock(a,s,r,c);case 5:if(l=e.sent,!o){e.next=8;break}return e.abrupt("return",l);case 8:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(l));case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.increaseLockAmount=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.votingEscrowAddress,a=t.amount,s=t.populate,u=void 0===(o=t.overrides)?{}:o,c=this.ctx.provider.write.getSigner(r=t.accountAddress),p=new i.Contract(n,qe,c),e.next=5,p.populateTransaction.modify_lock(a,"0",r,u);case 5:if(d=e.sent,!s){e.next=8;break}return e.abrupt("return",d);case 8:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(d));case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.extendLockTime=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.votingEscrowAddress,a=t.time,s=t.populate,u=void 0===(o=t.overrides)?{}:o,c=this.ctx.provider.write.getSigner(r=t.accountAddress),p=new i.Contract(n,qe,c),e.next=5,p.populateTransaction.modify_lock("0",a,r,u);case 5:if(d=e.sent,!s){e.next=8;break}return e.abrupt("return",d);case 8:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(d));case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.withdrawUnlocked=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.votingEscrowAddress,n=t.populate,s=void 0===(a=t.overrides)?{}:a,o=this.ctx.provider.write.getSigner(t.accountAddress),u=new i.Contract(r,qe,o),e.next=5,u.callStatic.withdraw();case 5:if(!V(e.sent.penalty.toString()).gt(0)){e.next=9;break}throw new Error("Tokens are not yet unlocked");case 9:return e.next=11,u.populateTransaction.withdraw(s);case 11:if(c=e.sent,!n){e.next=14;break}return e.abrupt("return",c);case 14:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(c));case 15:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.withdrawLocked=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.votingEscrowAddress,n=t.populate,s=void 0===(a=t.overrides)?{}:a,o=this.ctx.provider.write.getSigner(t.accountAddress),u=new i.Contract(r,qe,o),e.next=5,u.populateTransaction.withdraw(s);case 5:if(c=e.sent,!n){e.next=8;break}return e.abrupt("return",c);case 8:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(c));case 9:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.claimRewards=function(){var e=v(N.mark((function e(t){var r,n,a,s,o,u,c,p,d;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.accountAddress,n=t.votingEscrowAddress,a=t.populate,o=void 0===(s=t.overrides)?{}:s,e.next=3,this.get({addresses:[n]});case 3:return u=e.sent[0],c=this.ctx.provider.write.getSigner(r),p=new i.Contract(u.metadata.rewardPool,He,c),e.next=9,p.populateTransaction.claim(r,!1,o);case 9:if(d=e.sent,!a){e.next=12;break}return e.abrupt("return",d);case 12:return e.abrupt("return",this.yearn.services.transaction.sendTransaction(d));case 13:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getSupportedAddresses=function(){var e=v(N.mark((function e(t){var r,n,a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.addresses,e.next=3,this.yearn.addressProvider.addressById(G.veYfi);case 3:return n=[e.sent],a=r?r.filter((function(e){return n.includes(e)})):n,e.abrupt("return",a);case 7:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getVotingPower=function(e,t){var r,n=j(t)-(r=Date.now(),Math.floor(r/1e3));return n<=0?"0":n>=Ye?e:V(e).div(Ye).decimalPlaces(0,1).times(n).toString()},t}(H),Je="tuple(\n  address address,\n  string typeId,\n  address token,\n  string name,\n  string version,\n  string symbol,\n  uint8 decimals,\n)",$e=function(e){return"tuple(\n  address address, \n  string typeId,\n  address tokenId,\n  tuple(uint256 amount, uint256 amountUsdc) underlyingTokenBalance,\n  "+e+" metadata\n)"},Qe="tuple(address assetAddress, address tokenAddress, string typeId, uint256 balance,tuple(uint256 amount, uint256 amountUsdc) underlyingTokenBalance,tuple(address owner, address spender, uint256 amount)[] tokenAllowances,tuple(address owner, address spender, uint256 amount)[] assetAllowances)",Xe=function(e){return["function assetsStatic() public view returns ("+Je+"[] memory)","function assetsStatic(address[] memory) public view returns ("+Je+"[] memory)","function assetsDynamic() public view returns ("+$e(e)+"[] memory)","function assetsDynamic(address[] memory) public view returns ("+$e(e)+"[] memory)","function assetsPositionsOf(address) public view returns ("+Qe+"[] memory)","function assetsPositionsOf(address, address[] memory) public view returns ("+Qe+"[] memory)","function assetsTokensAddresses() public view returns (address[] memory)"]};function et(e){return e.map((function(e){return function e(t){if("object"!=typeof t)return t;var r=Object.keys(t).filter((function(e){return isNaN(Number(e))}));if(0===r.length)return et(t);var n={};return r.forEach((function(r){var a=t[r];n[r]="object"!=typeof a||l.isBigNumberish(a)?Array.isArray(a)?a:l.isBigNumberish(a)?a.toString():a:e(a)})),n}(e)}))}var tt=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.assetsStatic=function(){var e=v(N.mark((function e(t,r){var n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:if(n=e.sent,!t){e.next=6;break}return e.abrupt("return",n.read["assetsStatic(address[])"](t,r).then(et));case 6:return e.abrupt("return",n.read["assetsStatic()"]().then(et));case 7:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.assetsDynamic=function(){var e=v(N.mark((function e(t,r){var n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:if(n=e.sent,!t){e.next=6;break}return e.abrupt("return",n.read["assetsDynamic(address[])"](t,r).then(et).then((function(e){return e.map((function(e){return x({},e,{metadata:x({controller:ae,totalAssets:"0",totalSupply:"0"},e.metadata)})}))})));case 6:return e.abrupt("return",n.read["assetsDynamic()"]().then(et).then((function(e){return e.map((function(e){return x({},e,{metadata:x({controller:ae,totalAssets:"0",totalSupply:"0"},e.metadata)})}))})));case 7:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.positionsOf=function(){var e=v(N.mark((function e(t,r,n){var a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n={}),e.next=3,this.contract;case 3:if(a=e.sent,!r){e.next=6;break}return e.abrupt("return",a.read["assetsPositionsOf(address,address[])"](t,r,n).then(et));case 6:return e.abrupt("return",a.read["assetsPositionsOf(address)"](t,n).then(et));case 7:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.tokens=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===t&&(t={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.assetsTokensAddresses(t));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),w(t,[{key:"contract",get:function(){return this._getContract(t.abi,t.contractId,this.ctx)}}]),t}(J);tt.abi=Xe("tuple(\n  uint256 pricePerShare,\n  bool migrationAvailable,\n  address latestVaultAddress,\n  uint256 depositLimit,\n  bool emergencyShutdown\n)"),tt.contractId=G.adapter_registry_v2;var rt=function(e,t){return"https://raw.githack.com/yearn/yearn-assets/master/icons/multichain-tokens/"+t+"/"+e+"/logo-128.png"},nt=function(e,t){return"https://raw.githack.com/yearn/yearn-assets/master/icons/multichain-tokens/"+t+"/"+e+"/logo-alt-128.png"},at=function(e){return"https://raw.githack.com/trustwallet/assets/master/blockchains/ethereum/assets/"+e+"/logo.png"},st=function(e){function t(t,r,n){var a;return(a=e.call(this,t,r)||this).alts=[ie],n?(a.supported=n.supported,a.aliases=n.aliases,a.ready=Promise.resolve()):(a.supported=new Map,a.aliases=new Map,a.ready=a.initialize()),a}b(t,e),t.deserializeState=function(e){var t=JSON.parse(e);return{supported:new Map(JSON.parse(t.supported)),aliases:new Map(JSON.parse(t.aliases))}};var r=t.prototype;return r.makeSerializedState=function(){var e=v(N.mark((function e(){var t,r;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.ready;case 2:return t=JSON.stringify(Array.from(this.supported.entries())),r=JSON.stringify(Array.from(this.aliases.entries())),e.abrupt("return",JSON.stringify({supported:t,aliases:r}));case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.initialize=function(){var e=v(N.mark((function e(){var t,r,n,a,s,i,o,u,c;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!Q(this.chainId)){e.next=9;break}return e.next=3,d("https://raw.githubusercontent.com/yearn/yearn-assets/master/icons/aliases.json").then(de).then((function(e){return e.json()})).catch((function(e){return console.error(e),[]}));case 3:for(t=E(e.sent);!(r=t()).done;)this.aliases.set((n=r.value).address,n);return e.next=7,d("https://raw.githack.com/trustwallet/assets/master/blockchains/ethereum/tokenlist.json").then(de).then((function(e){return e.json()})).then((function(e){return e.tokens})).catch((function(e){return console.error(e),[]}));case 7:for(a=E(e.sent);!(s=a()).done;)this.supported.set((i=s.value).address,at(i.address));case 9:return e.next=11,d((p=this.chainId,"https://api.github.com/repos/yearn/yearn-assets/contents/icons/multichain-tokens/"+p)).then(de).then((function(e){return e.json()})).catch((function(e){return console.error(e),[]}));case 11:for(o=E(e.sent);!(u=o()).done;)this.supported.set((c=u.value).name,rt(c.name,this.chainId)),this.alts.includes(c.name)?this.supported.set(c.name,nt(c.name,this.chainId)):this.supported.set(c.name,rt(c.name,this.chainId));case 13:case"end":return e.stop()}var p}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.icon=function(e){var t=this;return Array.isArray(e)?Object.fromEntries(e.map((function(e){return[e,t.supported.get(e)]}))):this.supported.get(e)},r.alias=function(e){var t=this;return Array.isArray(e)?Object.fromEntries(e.map((function(e){return[e,t.aliases.get(e)]}))):this.aliases.get(e)},t}(q),it=function(e){function t(t,r,n){var a;return(a=e.call(this,t,r)||this).addressProvider=n,a}return b(t,e),w(t,[{key:"adapters",get:function(){return{vaults:{v2:new tt(this.chainId,this.ctx,this.addressProvider)}}}}]),t}(q),ot=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.getCalculations=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===t&&(t={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.calculations(t));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getPriceUsdc=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getPriceUsdcRecommended(t,r).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getNormalizedValueUsdc=function(){var e=v(N.mark((function e(t,r,n){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getNormalizedValueUsdc(t,r,n).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.getUsdcAddress=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===t&&(t={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.usdcAddress(t));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.isCurveLpToken=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.isCurveLpToken(t,r));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getCurvePriceUsdc=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getCurvePriceUsdc(t,r).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getBasePrice=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getBasePrice(t,r).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getVirtualPrice=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getVirtualPrice(t,r).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getCurveRegistryAddress=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===t&&(t={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.usdcAddress(t).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.isIronBankMarket=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.isIronBankMarket(t,r));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getIronBankMarketPriceUsdc=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getIronBankMarketPriceUsdc(t,r).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getIronBankMarkets=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===t&&(t={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getIronBankMarkets(t));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.isLpToken=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.isLpToken(t,r));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getPriceFromRouter=function(){var e=v(N.mark((function e(t,r,n){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getPriceFromRouter(t,r,n).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.getPriceFromRouterUsdc=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getPriceFromRouterUsdc(t,r).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getLpTokenTotalLiquidityUsdc=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getLpTokenTotalLiquidityUsdc(t,r).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getLpTokenPriceUsdc=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.getLpTokenPriceUsdc(t,r).then(he));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),w(t,[{key:"contract",get:function(){return this._getContract(t.abi,t.contractId,this.ctx)}}]),t}(J);ot.abi=["function calculations() external view returns (address[] memory)","function getPriceUsdcRecommended(address) public view returns (uint256)","function usdcAddress() public view returns (address)","function getNormalizedValueUsdc(address,uint256) view returns (uint256)","function isCurveLpToken(address) public view returns (bool)","function getCurvePriceUsdc(address) public view returns (uint256)","function getBasePrice(address) public view returns (uint256)","function getVirtualPrice(address) public view returns (uint256)","function curveRegistryAddress() public view returns (address)","function isIronBankMarket(address) public view returns (bool)","function getIronBankMarketPriceUsdc(address) public view returns (uint256)","function getIronBankMarkets() public view returns (address[] memory)","function isLpToken(address) public view returns (bool)","function getPriceFromRouter(address, address) public view returns (uint256)","function getPriceFromRouterUsdc(address) public view returns (uint256)","function getLpTokenTotalLiquidityUsdc(address) public view returns (uint256)","function getLpTokenPriceUsdc(address) public view returns (uint256)"],ot.contractId=G.oracle;var ut=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.getProperty=function(){var e=v(N.mark((function e(t,r){var n,a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.contract;case 2:return n=e.sent,e.next=5,n.read.getProperty(t,r.name);case 5:return a=u.defaultAbiCoder.decode([r.type],e.sent)[0],e.abrupt("return",Promise.resolve(a));case 8:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.getProperties=function(){var e=v(N.mark((function e(t,r){var n,a,s,i;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.contract;case 2:return n=e.sent,a=r.map((function(e){return e.name})),e.next=6,n.read.getProperties(t,a);case 6:return s=e.sent,i={},r.forEach((function(e,t){var r=u.defaultAbiCoder.decode([e.type],s[t])[0];i[e.name]=r})),e.abrupt("return",Promise.resolve(i));case 10:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),w(t,[{key:"contract",get:function(){return this._getContract(t.abi,t.contractId,this.ctx)}}]),t}(J);ut.abi=["function getProperty(address target, string calldata name) public view returns (bytes memory)","function getProperties(address target, string[] calldata names) public view returns (bytes[] memory)"],ut.contractId=G.propertiesAggregator;var ct=function(e){function t(t,r){var n,a,s,i,o,u,c;switch(c=e.call(this,t,r)||this,t){case 1:case 1337:c.yearnSubgraphEndpoint=null==(n=r.subgraph)?void 0:n.mainnetSubgraphEndpoint;break;case 10:c.yearnSubgraphEndpoint=(null==(a=r.subgraph)?void 0:a.optimismSubgraphEndpoint)||"https://api.thegraph.com/subgraphs/name/yearn/yearn-vaults-v2-optimism";break;case 250:c.yearnSubgraphEndpoint=(null==(s=r.subgraph)?void 0:s.fantomSubgraphEndpoint)||"https://api.thegraph.com/subgraphs/name/yearn/yearn-vaults-v2-fantom";break;case 2300:c.yearnSubgraphEndpoint=(null==(i=r.subgraph)?void 0:i.fantomSubgraphEndpoint)||"https://api.thegraph.com/subgraphs/name/yearn/yearn-vaults-v2-fantom";break;case 56:c.yearnSubgraphEndpoint=(null==(o=r.subgraph)?void 0:o.fantomSubgraphEndpoint)||"https://api.thegraph.com/subgraphs/name/yearn/yearn-vaults-v2-fantom";break;case 42161:c.yearnSubgraphEndpoint=(null==(u=r.subgraph)?void 0:u.arbitrumSubgraphEndpoint)||"https://api.thegraph.com/subgraphs/name/yearn/yearn-vaults-v2-arbitrum";break;default:throw new P("No subgraph name for chain "+t)}return c}return b(t,e),t.prototype.fetchQuery=function(){var e=v(N.mark((function e(t,r){var n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===r&&(r={}),this.yearnSubgraphEndpoint){e.next=3;break}throw new P("the subgraph service has not been configured to be able to make queries, configure it in the `Context` object");case 3:return Object.keys(r).forEach((function(e){var t=r[e];if("string"==typeof t)r[e]=t.toLowerCase();else if(Array.isArray(t))for(var n,a=E(t.entries());!(n=a()).done;){var s=n.value,i=s[1];"string"==typeof i&&(t[s[0]]=i.toLowerCase())}})),n={query:t,variables:r},e.next=7,fetch(this.yearnSubgraphEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}).then((function(e){return e.json()})).then((function(e){if(e.errors)throw new P("Subgraph Error - "+JSON.stringify(e.errors));return e}));case 7:return e.abrupt("return",e.sent);case 8:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),t}(q),pt=function(e){function t(){return e.apply(this,arguments)||this}return b(t,e),t.prototype.sendMessage=function(e){if(this.ctx.simulation.telegramChatId&&this.ctx.simulation.telegramBotId){var t=new URLSearchParams({chat_id:this.ctx.simulation.telegramChatId,text:e,disable_web_page_preview:"true"});fetch("https://api.telegram.org/bot"+this.ctx.simulation.telegramBotId+"/sendMessage?"+t)}},t}(q),dt=function(e){function t(){return e.apply(this,arguments)||this}return b(t,e),t.prototype.apy=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r="https://api.yearn.finance/v1/chains/"+this.chainId+"/vaults/all",e.next=3,fetch(r).then(de).then((function(e){return e.json()}));case 3:if(n=(n=e.sent).map((function(e){return e.apy&&"backscratcher"===e.apy.type?x({},e,{apy:(t=e.apy,t?x({},t,{composite:t.composite?x({},t.composite,{boost:t.composite.boost?t.composite.boost:t.composite.currentBoost,pool_apy:t.composite.pool_apy?t.composite.pool_apy:t.composite.poolApy,boosted_apr:t.composite.boosted_apr?t.composite.boosted_apr:t.composite.boostedApy,base_apr:t.composite.base_apr?t.composite.base_apr:t.composite.baseApy}):null}):void 0)}):e;var t})),!Array.isArray(t)){e.next=12;break}for(a=new Map,s=function(){var e=o.value,t=n.find((function(t){return t.address===e}));a.set(e,t?t.apy:void 0)},i=E(t);!(o=i()).done;)s();return e.abrupt("return",Object.fromEntries(a));case 12:if(!t){e.next=19;break}if(u=n.find((function(e){return e.address===t}))){e.next=16;break}return e.abrupt("return",void 0);case 16:return e.abrupt("return",u.apy);case 19:return e.abrupt("return",Object.fromEntries(n.map((function(e){return[e.address,e.apy]}))));case 20:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t}(q),lt=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.supportedTokens=function(){var e=v(N.mark((function e(){var t,r;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=3,fetch("https://api.zapper.fi/v2/prices",{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 3:return t=$[this.chainId],r=e.sent.filter((function(e){return!e.hide})),e.abrupt("return",r.map((function(e){return{address:e.address===ae?se:s.getAddress(e.address),decimals:String(e.decimals),icon:"https://assets.yearn.network/tokens/"+t+"/"+e.address+".png",name:e.symbol,priceUsdc:fe(String(e.price)),dataSource:"zapper",supported:{zapper:!0},symbol:e.symbol}})));case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.balances=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new URLSearchParams({"addresses[]":Array.isArray(t)?t.join():t}),e.next=4,fetch("https://api.zapper.fi/v2/apps/tokens/balances?"+r,{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 4:if(n=e.sent.balances,Object.keys(n).forEach((function(e){var t=n[e];if(delete n[e],0===t.products.length)n[s.getAddress(e)]=[];else{var r=t.products[0].assets;n[s.getAddress(e)]=r.map((function(e){var t=e.address===ae?se:s.getAddress(String(e.address));return{address:t,token:{address:t,name:e.symbol,symbol:e.symbol,decimals:e.decimals},balance:e.balanceRaw,balanceUsdc:fe(e.balanceUSD),priceUsdc:fe(e.price)}}))}})),Array.isArray(t)){e.next=9;break}return e.abrupt("return",n[t]);case 9:return e.abrupt("return",n);case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.supportedVaultAddresses=function(){var e=v(N.mark((function e(){var t;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Q(this.chainId)){e.next=2;break}throw new P("Only Ethereum is supported for token market data, got "+this.chainId);case 2:return t=new URLSearchParams({network:"ethereum",groupId:"vault"}),e.next=6,fetch("https://api.zapper.fi/v2/apps/yearn/tokens?"+t,{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 6:return e.abrupt("return",e.sent.map((function(e){return s.getAddress(e.address)})).filter((function(e){return!!e})));case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.gas=function(){var e=v(N.mark((function e(){var t;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=new URLSearchParams({eip1559:"false"}),e.next=4,fetch("https://api.zapper.fi/v2/gas-prices?"+t,{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 4:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.zapInApprovalState=function(){var e=v(N.mark((function e(t,r,n){var a,s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n=exports.ZapProtocol.YEARN),a="https://api.zapper.fi/v2/zap-in/vault/"+n+"/approval-state",s=new URLSearchParams({ownerAddress:t,sellTokenAddress:r}),e.next=5,fetch(a+"?"+s,{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.zapInApprovalTransaction=function(){var e=v(N.mark((function e(t,r,n,a){var s,i;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===a&&(a=exports.ZapProtocol.YEARN),s="https://api.zapper.fi/v2/zap-in/vault/"+a+"/approval-transaction",i=new URLSearchParams({gasPrice:n,ownerAddress:t,sellTokenAddress:r}),e.next=5,fetch(s+"?"+i,{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.zapOutApprovalState=function(){var e=v(N.mark((function e(t,r,n){var a,s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n=exports.ZapProtocol.YEARN),a="https://api.zapper.fi/v2/zap-out/vault/"+n+"/approval-state",s=new URLSearchParams({ownerAddress:t,sellTokenAddress:r}),e.next=5,fetch(a+"?"+s,{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.zapOutApprovalTransaction=function(){var e=v(N.mark((function e(t,r,n,a){var s,i;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===a&&(a=exports.ZapProtocol.YEARN),s="https://api.zapper.fi/v2/zap-out/vault/"+a+"/approval-transaction",i=new URLSearchParams({gasPrice:n,ownerAddress:t,sellTokenAddress:r}),e.next=5,fetch(s+"?"+i,{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.zapIn=function(){var e=v(N.mark((function e(t,r,n,a,s,i,o,u,c){var p,d,l;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===u&&(u=exports.ZapProtocol.YEARN),p=r,se===r&&(p=ae),d="https://api.zapper.fi/v2/zap-in/vault/"+u+"/transaction",l=new URLSearchParams(x({affiliateAddress:"0xFEB4acf3df3cDEA7399794D0869ef76A6EfAff52",ownerAddress:t,sellTokenAddress:p,sellAmount:n,poolAddress:a,gasPrice:s,slippagePercentage:i.toString(),skipGasEstimate:o?"true":"false"},c&&{partnerId:c}||{})),e.next=7,fetch(d+"?"+l,{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 7:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i,o,u,c){return e.apply(this,arguments)}}(),r.zapOut=function(){var e=v(N.mark((function e(t,r,n,a,s,i,o,u,c){var p,d,l;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===u&&(u=exports.ZapProtocol.YEARN),p=r,se===r&&(p=ae),d="https://api.zapper.fi/v2/zap-out/vault/"+u+"/transaction",l=new URLSearchParams(x({affiliateAddress:"0xFEB4acf3df3cDEA7399794D0869ef76A6EfAff52",ownerAddress:t,toTokenAddress:p,sellAmount:n,poolAddress:a,gasPrice:s,slippagePercentage:i.toString(),skipGasEstimate:o?"true":"false"},c&&{signature:c})),e.next=7,fetch(d+"?"+l,{headers:{Authorization:"Basic "+this.ctx.zapper}}).then(de).then((function(e){return e.json()}));case 7:return e.abrupt("return",e.sent);case 9:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i,o,u,c){return e.apply(this,arguments)}}(),t}(q),ft=function(e){function t(r,n){var a;return(a=e.call(this,r,n)||this).contract=new K(t.addressByChain(r),t.abi,n),a.cachedAddressesById=new Map,a}b(t,e),t.addressByChain=function(e){switch(e){case 1:case 1337:return"0xe11dC9f2Ab122dC5978EACA41483Da0D7D7e6128";case 10:return"0x8273217252254Ad7353f227aaEcd2b1C4A326Fa2";case 250:return"0xac5A9E4135A3A26497F3890bFb602b06Ee592B61";case 42161:return"0xcAd10033C86B0C1ED6bfcCAa2FF6779938558E9f";case 56:return"0x902FEc9F20697B7a6a7D145202E0A317D2a52D47";case 2300:return"0x4EA915C3b51ce7403beAeBF26AcadFdcA37Cd001";default:throw new Error("Unsupported chain id: "+e)}};var r=t.prototype;return r.addressById=function(){var e=v(N.mark((function e(t){var r,n,a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.cachedAddressesById.get(t)||{},a=r.timestamp,!(n=r.address)||!this.isCacheFresh({timestamp:a})){e.next=3;break}return e.abrupt("return",n);case 3:return e.prev=3,e.next=6,this.contract.read.addressById(t);case 6:return e.abrupt("return",this.setCachedAddressById({id:t,address:e.sent}));case 10:throw e.prev=10,e.t0=e.catch(3),new P("Failed to read contract address for "+t+": "+e.t0);case 13:case"end":return e.stop()}}),e,this,[[3,10]])})));return function(t){return e.apply(this,arguments)}}(),r.setCachedAddressById=function(e){var t=e.id,r=e.address,n=new Date(Date.now()).getTime();if(!this.cachedAddressesById.has(t))return this.cachedAddressesById.set(t,{address:r,timestamp:n}),r;var a=this.cachedAddressesById.get(t)||{};return this.isCacheFresh({timestamp:a.timestamp})||this.cachedAddressesById.set(t,{address:r,timestamp:n}),r},r.addressesMetadataByIdStartsWith=function(){var e=v(N.mark((function e(t){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.contract.read.addressById(t).then(et));case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.isCacheFresh=function(e){var t=e.timestamp;return!!t&&new Date(Date.now()).getTime()-t<=3e4},t}(q);ft.abi=["function addressById(string) public view returns (address)","function addressPositionById(string) public view returns (int256)","function addresses() public view returns (address[] memory)","function addressesIds() public view returns (string[] memory)","function addressesMetadata() public view returns (tuple(string addrId, address addr)[] memory)","function addressesMetadataByIdStartsWith(string) public view returns (tuple(string addrId, address addr)[] memory)"];var ht=function(e){function t(){return e.apply(this,arguments)||this}return b(t,e),t.prototype.validateCalldata=function(){var e=v(N.mark((function e(r,n){var a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r){e.next=2;break}return e.abrupt("return",{success:!1,error:"can't validate a tx that isn't targeting an address"});case 2:if(n){e.next=4;break}return e.abrupt("return",{success:!1,error:"can't validate a tx that has no call data"});case 4:return e.prev=4,e.next=7,this.contract;case 7:if((a=e.sent)&&a.address!==ae){e.next=10;break}throw new Error("Contract missing");case 10:e.next=16;break;case 12:return e.prev=12,e.t0=e.catch(4),console.warn("AllowList on-chain contract address missing. Skipping validation..."),e.abrupt("return",{success:!0});case 16:return e.prev=16,e.next=19,a.read.validateCalldataByOrigin(t.originName,r,n);case 19:if(e.sent){e.next=22;break}return e.abrupt("return",{success:!1,error:"tx is not permitted by the allow list"});case 22:return e.abrupt("return",{success:!0});case 25:return e.prev=25,e.t1=e.catch(16),e.abrupt("return",{success:!1,error:"failed to read from the allow list whether the transaction is valid"});case 28:case"end":return e.stop()}}),e,this,[[4,12],[16,25]])})));return function(t,r){return e.apply(this,arguments)}}(),w(t,[{key:"contract",get:function(){return this._getContract(t.abi,t.contractId,this.ctx)}}]),t}(J);ht.abi=["function validateCalldataByOrigin(string memory originName, address targetAddress, bytes calldata data) public view returns (bool)"],ht.contractId=G.allowlist,ht.originName="yearn.finance";var vt="0x0000000000000000000000000000000000000000000000000000000000000000",mt=function(e){function t(t,r){var n;return(n=e.call(this,t,r)||this).cowSdk=new f.CowSdk(t),n}b(t,e);var r=t.prototype;return r.getExpectedTransactionOutcome=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.sourceTokenAddress,n=t.targetTokenAddress,a=t.sourceTokenAmount,s=t.accountAddress,i=Math.floor(this.timeFromNow(6e5)/1e3),o=f.OrderKind.SELL,e.next=5,this.cowSdk.cowApi.getQuote({kind:o,sellToken:r,buyToken:n,sellAmountBeforeFee:a,from:s,validTo:i,partiallyFillable:!1,appData:vt});case 5:return e.abrupt("return",{sourceTokenAddress:r,sourceTokenAmount:a,targetTokenAddress:n,targetTokenAmount:(u=e.sent.quote).buyAmount,sourceTokenAmountFee:u.feeAmount});case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.sendOrder=function(){var e=v(N.mark((function e(t){var r,n,a,s,i,o,u,c,p,d,l,h,v,m,w;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.sourceTokenAddress,n=t.targetTokenAddress,a=t.sourceTokenAmount,s=t.targetTokenAmount,i=t.sourceTokenAmountFee,o=t.accountAddress,u=Math.floor(this.timeFromNow(6e5)/1e3),c=f.OrderKind.SELL,p={signer:this.ctx.provider.write.getSigner(o)},e.next=6,this.cowSdk.updateContext(p);case 6:return d=V(a).minus(i).toFixed(0),l={kind:c,sellToken:r,buyToken:n,sellAmount:d,buyAmount:s,feeAmount:i,receiver:o,validTo:u,partiallyFillable:!1,appData:vt},e.next=10,this.cowSdk.signOrder(l);case 10:if(m=(h=e.sent).signingScheme,v=h.signature){e.next=15;break}throw new P("Failed signing order");case 15:return e.next=17,this.cowSdk.cowApi.sendOrder({order:x({},l,{signature:v,signingScheme:m}),owner:o});case 17:return w=e.sent,console.log("https://explorer.cow.fi/orders/"+w),e.abrupt("return",w);case 20:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.waitForOrderToFill=function(){var e=v(N.mark((function e(t){var r,n,a,s=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.orderId,n=function(){var e=v(N.mark((function e(){var t;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,s.cowSdk.cowApi.getOrder(r);case 2:if(t=e.sent){e.next=5;break}throw new Error("Order not found");case 5:return e.abrupt("return",t);case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),a=function(e){var t=e.status;if("fulfilled"===t)return!1;if("open"===t||"presignaturePending"===t)return!0;throw new Error("Order failed")},e.next=6,L(n,a,5e3);case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.timeFromNow=function(e){return new Date(Date.now()+e).getTime()},t}(q),wt=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.tokens=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.tokensMetadata(t,r).then(et));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.tokenPrices=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.tokensPrices(t,r).then(et));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),r.tokenBalances=function(){var e=v(N.mark((function e(t,r,n){var a,s,i;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===n&&(n={}),a=ve(r,30),e.next=4,this.contract;case 4:return s=e.sent,i=a.map(function(){var e=v(N.mark((function e(r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",s.read.tokensBalances(t,r,n).then(et));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(i).then((function(e){return e.flat()})));case 7:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.tokenAllowances=function(){var e=v(N.mark((function e(t,r,n,a){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===a&&(a={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.allowances(t,r,n,a).then(et));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.assetStrategiesAddresses=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===r&&(r={}),e.next=3,this.contract;case 3:return e.abrupt("return",e.sent.read.assetStrategiesAddresses(t,r));case 5:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),w(t,[{key:"contract",get:function(){return this._getContract(t.abi,t.contractId,this.ctx)}}]),t}(J);wt.abi=["function tokensMetadata(address[] memory) public view returns (tuple(address address, string name, string symbol, uint256 decimals)[] memory)","function tokensPrices(address[] memory) public view returns (tuple(address address, uint256 priceUsdc)[] memory)","function tokensBalances(address, address[] memory) public view returns (tuple(\n  address address, \n  uint256 priceUsdc, \n  uint256 balance,\n  uint256 balanceUsdc\n)[] memory)","function allowances(address, address[] memory, address[] memory) external view returns (tuple(address owner, address spender, uint256 amount, address token)[] memory)","function assetStrategiesAddresses(address) public view returns (address[])"],wt.contractId=G.helper;var xt="https://ydaemon.yearn.finance/api",bt=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.tokens=function(){var e=v(N.mark((function e(t){var r,n=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(xt+"/"+this.chainId+"/tokens/all").then((function(e){return e.json()}));case 2:if(r=e.sent,t){e.next=5;break}return e.abrupt("return",r.map((function(e){return x({},e,{description:ze({obj:e,property:"description",locale:n.ctx.locale,fallback:"Token description missing"})})})));case 5:return e.abrupt("return",r.filter((function(e){return t.includes(e.address)})).map((function(e){return x({},e,{description:ze({obj:e,property:"description",locale:n.ctx.locale,fallback:"Token description missing"})})})));case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.token=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch(xt+"/"+this.chainId+"/tokens/"+t);case 3:if((r=e.sent).ok){e.next=6;break}throw new P('Failed to fetch token with address "'+t+'". HTTP error: '+r.status);case 6:return e.next=8,r.json();case 8:return(n=e.sent).description=ze({obj:n,property:"description",locale:this.ctx.locale,fallback:"Token description missing"}),e.abrupt("return",n);case 13:e.prev=13,e.t0=e.catch(0),console.error(e.t0);case 16:return e.abrupt("return",null);case 17:case"end":return e.stop()}}),e,this,[[0,13]])})));return function(t){return e.apply(this,arguments)}}(),r.strategies=function(){var e=v(N.mark((function e(){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",fetch(xt+"/"+this.chainId+"/strategies/all").then((function(e){return e.json()})));case 1:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.vaults=function(){var e=v(N.mark((function e(t){var r;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(xt+"/"+this.chainId+"/vaults/all").then((function(e){return e.json()}));case 2:if(r=e.sent,t){e.next=5;break}return e.abrupt("return",r);case 5:return e.abrupt("return",r.filter((function(e){return t.includes(e.address)})));case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.vault=function(){var e=v(N.mark((function e(t){var r;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch(xt+"/"+this.chainId+"/vaults/"+t);case 3:if((r=e.sent).ok){e.next=6;break}throw new P('Failed to fetch token with address "'+t+'". HTTP error: '+r.status);case 6:return e.abrupt("return",r.json());case 9:e.prev=9,e.t0=e.catch(0),console.error(e.t0);case 12:return e.abrupt("return",null);case 13:case"end":return e.stop()}}),e,this,[[0,9]])})));return function(t){return e.apply(this,arguments)}}(),t}(q),yt=function(e){function t(t,r,n,a){var s;return(s=e.call(this,t,r,n)||this).partnerId=a,s}b(t,e);var r=t.prototype;return r.isAllowed=function(e){return!t.IGNORED_ADDRESSES.includes(e)},r.deposit=function(){var e=v(N.mark((function e(t,r,n){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.contract;case 2:return e.abrupt("return",e.sent.write.deposit(t,this.partnerId,r,n));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.populateDepositTransaction=function(){var e=v(N.mark((function e(t,r,n){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.contract;case 2:return e.abrupt("return",e.sent.write.populateTransaction.deposit(t,this.partnerId,r,n));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r,n){return e.apply(this,arguments)}}(),r.encodeDeposit=function(){var e=v(N.mark((function e(t,r){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.contract;case 2:return e.abrupt("return",e.sent.write.interface.encodeFunctionData("deposit",[t,this.partnerId,r]));case 4:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}(),w(t,[{key:"contract",get:function(){return this._getContract(t.abi,t.contractId,this.ctx)}},{key:"address",get:function(){var e=this;return v(N.mark((function r(){var n;return N.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,e.addressProvider.addressById(t.contractId);case 2:return r.abrupt("return",(n=r.sent)!==ae?n:void 0);case 4:case"end":return r.stop()}}),r)})))()}}]),t}(J);yt.abi=["function deposit(address vault, address partnerId, uint256 amount) external returns (uint256)"],yt.IGNORED_ADDRESSES=["0xc5bDdf9843308380375a611c18B50Fb9341f502A","0xCeD67a187b923F0E5ebcc77C7f2F7da20099e378"],yt.contractId=G.partner;var gt="https://api.portals.fi",kt=["native","basic"],At=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.supportedTokens=function(){var e=v(N.mark((function e(){var t,r,n,a,s,i=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=ne[this.chainId],n=gt+"/v1/tokens/"+(r=$[this.chainId]),a=new URLSearchParams,(s=[].concat(kt)).push("yearn"),s.push("curve"),s.push("beefy"),Q(this.chainId)&&s.push("convex"),Q(this.chainId)&&s.push("compound"),s.forEach((function(e){return a.append("platforms[]",e)})),e.next=13,fetch(n+"?"+a).then(de).then((function(e){return e.json()}));case 13:return e.abrupt("return",e.sent.tokens.map((function(e){var n,a,s,o=i.deserializeAddress(e.address),u="https://assets.yearn.network/tokens/"+r+"/"+e.address.toLowerCase()+".png";return kt.includes(e.platform)||(u=null!=(n=null!=(a=e.image)?a:e.images[0])?n:u),{address:o,decimals:String(e.decimals),icon:u,name:e.symbol,priceUsdc:fe(e.price),dataSource:"portals",supported:{portalsZapIn:!0,portalsZapOut:null==(s=t.zapOutTokenSymbols)?void 0:s.includes(e.symbol.toUpperCase())},symbol:e.symbol}})));case 16:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.balances=function(){var e=v(N.mark((function e(t){var r,n=this;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new URLSearchParams({ownerAddress:t,"networks[]":$[this.chainId]}),e.next=5,fetch("https://api.portals.fi/v2/account?"+r).then(de).then((function(e){return e.json()}));case 5:return e.abrupt("return",e.sent.balances.map((function(e){var t=n.deserializeAddress(e.address);return{address:t,token:{address:t,name:e.symbol,symbol:e.symbol,decimals:e.decimals},balance:e.rawBalance,balanceUsdc:fe(e.balanceUSD),priceUsdc:fe(e.price)}})));case 8:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.supportedVaultAddresses=function(){var e=v(N.mark((function e(){var t,r;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=gt+"/v1/tokens/"+$[this.chainId],r=new URLSearchParams({"platforms[]":"yearn"}),e.next=5,fetch(t+"?"+r).then(de).then((function(e){return e.json()}));case 5:return e.abrupt("return",e.sent.tokens.map((function(e){return s.getAddress(e.address)})));case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.zapInApprovalState=function(){var e=v(N.mark((function e(t,r,n,a){var s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=gt+"/v1/approval/"+$[this.chainId],i=this.serializeAddress(r),o=new URLSearchParams({takerAddress:a,sellToken:i,sellAmount:n,buyToken:t}),e.next=6,fetch(s+"?"+o).then(de).then((function(e){return e.json()}));case 6:return e.abrupt("return",{token:r,owner:a,spender:(u=e.sent.context).target,amount:u.allowance});case 9:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.zapInApprovalTransaction=function(){var e=v(N.mark((function e(t,r,n,a){var s,i,o;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=gt+"/v1/approval/"+$[this.chainId],i=this.serializeAddress(r),o=new URLSearchParams({takerAddress:a,sellToken:i,sellAmount:n,buyToken:t}),e.next=6,fetch(s+"?"+o).then(de).then((function(e){return e.json()}));case 6:return e.abrupt("return",e.sent.tx);case 9:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.zapOutApprovalState=function(){var e=v(N.mark((function e(t,r,n,a){var s,i,o,u;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=gt+"/v1/approval/"+$[this.chainId],i=this.serializeAddress(r),o=new URLSearchParams({takerAddress:a,sellToken:t,sellAmount:n,buyToken:i}),e.next=6,fetch(s+"?"+o).then(de).then((function(e){return e.json()}));case 6:return e.abrupt("return",{token:t,owner:a,spender:(u=e.sent.context).target,amount:u.allowance});case 9:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.zapOutApprovalTransaction=function(){var e=v(N.mark((function e(t,r,n,a){var s,i,o;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=gt+"/v1/approval/"+$[this.chainId],i=this.serializeAddress(r),o=new URLSearchParams({takerAddress:a,sellToken:t,sellAmount:n,buyToken:i}),e.next=6,fetch(s+"?"+o).then(de).then((function(e){return e.json()}));case 6:return e.abrupt("return",e.sent.tx);case 9:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.zapIn=function(){var e=v(N.mark((function e(t,r,n,a,s,i,o){var u,c,p;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===i&&(i=!0),u=gt+"/v1/portal/"+$[this.chainId],c=this.serializeAddress(r),p=new URLSearchParams(x({takerAddress:a,sellToken:c,sellAmount:n,buyToken:t,slippagePercentage:s.toString(),partner:"0xFEB4acf3df3cDEA7399794D0869ef76A6EfAff52",validate:i?"true":"false"},o&&{affiliate:o})),e.next=7,fetch(u+"?"+p).then(de).then((function(e){return e.json()}));case 7:return e.abrupt("return",e.sent.tx);case 10:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i,o){return e.apply(this,arguments)}}(),r.zapOut=function(){var e=v(N.mark((function e(t,r,n,a,s,i,o){var u,c,p;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return void 0===i&&(i=!0),u=gt+"/v1/portal/"+$[this.chainId],c=this.serializeAddress(r),p=new URLSearchParams(x({takerAddress:a,sellToken:t,sellAmount:n,buyToken:c,slippagePercentage:s.toString(),partner:"0xFEB4acf3df3cDEA7399794D0869ef76A6EfAff52",validate:i?"true":"false"},o&&{signature:o})),e.next=7,fetch(u+"?"+p).then(de).then((function(e){return e.json()}));case 7:return e.abrupt("return",e.sent.tx);case 10:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a,s,i,o){return e.apply(this,arguments)}}(),r.serializeAddress=function(e){return e===se&&Q(this.chainId)?ae:s.getAddress(e)},r.deserializeAddress=function(e){return e===ae&&Q(this.chainId)?se:s.getAddress(e)},t}(q),St=function(e){function t(t,r,n){var a;return(a=e.call(this,t,r)||this).allowListService=n,a}b(t,e);var r=t.prototype;return r.sendTransaction=function(){var e=v(N.mark((function e(t){var r,n,a,s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.validateTx(t);case 2:if(n=(r=e.sent).error,r.success){e.next=7;break}throw new P(n||"transaction is not valid");case 7:return a=this.ctx.provider.write.getSigner(),e.prev=8,e.abrupt("return",a.sendTransaction(t));case 12:if(e.prev=12,e.t0=e.catch(8),-32602!==e.t0.code){e.next=21;break}return(s=x({},t)).maxFeePerGas=void 0,s.maxPriorityFeePerGas=void 0,e.next=20,a.sendTransaction(s);case 20:return e.abrupt("return",e.sent);case 21:throw e.t0;case 22:case"end":return e.stop()}}),e,this,[[8,12]])})));return function(t){return e.apply(this,arguments)}}(),r.validateTx=function(){var e=v(N.mark((function e(t){var r,n,a;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.allowListService){e.next=2;break}return e.abrupt("return",Promise.resolve({success:!0,error:void 0}));case 2:return e.next=4,Promise.all([t.to,t.data]);case 4:return n=(r=e.sent)[0],a=r[1],e.next=9,this.allowListService.validateCalldata(n,a);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t}(q),Tt=["function deposit() payable returns (uint256)","function withdraw(uint256 amount) public returns (uint256)"],Et=function(e){function t(){return e.apply(this,arguments)||this}b(t,e);var r=t.prototype;return r.zapIn=function(){var e=v(N.mark((function e(t,r,n,a){var s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(ue(r)){e.next=2;break}throw new P('Only "ETH" token address is supported by zapEth contract');case 2:if(ce(t)){e.next=4;break}throw new P('Only "yvWETH" vault address is supported by zapEth contract');case 4:return e.next=6,this.getContract(a);case 6:return s=e.sent,e.next=9,s.populateTransaction.deposit({value:n});case 9:return e.abrupt("return",e.sent);case 11:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.zapOut=function(){var e=v(N.mark((function e(t,r,n,a){var s;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(ue(r)){e.next=2;break}throw new P('Only "ETH" token address is supported by zapEth contract');case 2:if(ce(t)){e.next=4;break}throw new P('Only "yvWETH" vault address is supported by zapEth contract');case 4:return e.next=6,this.getContract(a);case 6:return s=e.sent,e.next=9,s.populateTransaction.withdraw(n);case 9:return e.abrupt("return",e.sent);case 11:case"end":return e.stop()}}),e,this)})));return function(t,r,n,a){return e.apply(this,arguments)}}(),r.getAddress=function(){var e=v(N.mark((function e(){return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.addressProvider.addressById(G.yearnZapEth);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}(),r.getContract=function(){var e=v(N.mark((function e(t){var r,n;return N.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getAddress();case 2:return r=e.sent,n=this.ctx.provider.write.getSigner(t),e.abrupt("return",new i.Contract(r,Tt,n));case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t}(J),It=function(){function e(e,t,r){this._ctxValue=t,this.context=new W(t),this.addressProvider=new ft(e,this.context);var n=new ht(e,this.context,this.addressProvider);this.services=this._initServices(e,this.context,this.addressProvider,n,r),this.adapters=this._initAdapters(e),this.vaults=new Ge(this,e,this.context),this.tokens=new je(this,e,this.context),this.earnings=new ge(this,e,this.context),this.fees=new ke(this,e,this.context),this.simulation=new Ne(this,e,this.context),this.strategies=new Ve(this,e,this.context),this.votingEscrows=new Ke(this,e,this.context),this.gauges=new Ee(this,e,this.context),this.ready=Promise.all([this.services.asset.ready])}var t=e.prototype;return t.setChainId=function(e){this.addressProvider=new ft(e,this.context);var t=new ht(e,this.context,this.addressProvider);this.services=this._initServices(e,this.context,this.addressProvider,t),this.adapters=this._initAdapters(e),this.vaults=new Ge(this,e,this.context),this.tokens=new je(this,e,this.context),this.earnings=new ge(this,e,this.context),this.fees=new ke(this,e,this.context),this.simulation=new Ne(this,e,this.context),this.strategies=new Ve(this,e,this.context),this.votingEscrows=new Ke(this,e,this.context),this.gauges=new Ee(this,e,this.context),this.ready=Promise.all([this.services.asset.ready])},t._initServices=function(e,t,r,n,a){return{lens:new it(e,t,r),oracle:new ot(e,t,r),zapEth:new Et(e,t,r),zapper:new lt(e,t),portals:new At(e,t),cowSwap:new mt(1,t),asset:new st(e,t,a),vision:new dt(e,t),subgraph:new ct(e,t),pickle:new Pe(e,t),helper:new wt(e,t,r),telegram:new pt(e,t),meta:new bt(e,t),allowList:n,transaction:new St(e,t,n),partner:t.partnerId?new yt(e,t,r,t.partnerId):void 0,propertiesAggregator:new ut(e,t,r)}},t._initAdapters=function(e){return{vaults:{v2:new tt(e,this.context,this.addressProvider)}}},e}();exports.AssetService=st,exports.Context=W,exports.CustomError=I,exports.EarningsInterface=ge,exports.EthersError=D,exports.FeesInterface=ke,exports.GaugeInterface=Ee,exports.LensService=it,exports.OracleService=ot,exports.PriceFetchingError=R,exports.PropertiesAggregatorService=ut,exports.RegistryV2Adapter=tt,exports.SdkError=P,exports.SimulationError=O,exports.SimulationInterface=Ne,exports.StrategyInterface=Ve,exports.SubgraphService=ct,exports.TelegramService=pt,exports.TenderlyError=U,exports.TokenInterface=je,exports.VaultInterface=Ge,exports.VisionService=dt,exports.VotingEscrowInterface=Ke,exports.Yearn=It,exports.ZapError=_,exports.ZapperService=lt,exports.getZapInDetails=Ce,exports.getZapOutDetails=Re;
//# sourceMappingURL=sdk.cjs.production.min.js.map