{"version":3,"file":"static/chunks/1079-3076da338e595872.js","mappings":"owBAEA,MAAMA,EAAY,CAChBC,KAAM,aACN,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACPC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,WACJC,GAAI,YASN,IANkB,QAAC,SAAEC,EAAF,SAAYC,EAAW,MAAvB,UAA8BC,EAAY,IAA3C,EAAkDC,GAAlD,mBAChB,oBAAKD,WAAWE,EAAAA,EAAAA,IAAWF,EAAWT,EAAUQ,GAAW,WAAeE,GAA1E,aACGH,O,sBCnBE,IAAKK,EAMAC,EAMAC,E,kEAZAF,GAAAA,EAAAA,EAAAA,WAAAA,GAAAA,aAAAA,EAAAA,EAAAA,cAAAA,GAAAA,gBAAAA,EAAAA,EAAAA,SAAAA,GAAAA,W,CAAAA,IAAAA,EAAAA,K,SAMAC,GAAAA,EAAAA,EAAAA,OAAAA,GAAAA,SAAAA,EAAAA,EAAAA,QAAAA,GAAAA,UAAAA,EAAAA,EAAAA,KAAAA,GAAAA,O,CAAAA,IAAAA,EAAAA,K,SAMAC,GAAAA,EAAAA,EAAAA,KAAAA,GAAAA,OAAAA,EAAAA,EAAAA,MAAAA,GAAAA,Q,CAAAA,IAAAA,EAAAA,M,qECXZ,MAAMC,EAAY,2BAGLC,EAAa,CACxB,CAACC,EAAAA,GAAAA,UAAmBF,EACpB,CAACE,EAAAA,GAAAA,MAAeF,EAChB,CAACE,EAAAA,GAAAA,OAAgBF,EACjB,CAACE,EAAAA,GAAAA,QAAiBF,EAClB,CAACE,EAAAA,GAAAA,KAAcF,EACf,CAACE,EAAAA,GAAAA,WAAoBF,EACrB,CAACE,EAAAA,GAAAA,MAAeF,EAChB,CAACE,EAAAA,GAAAA,UAAmBF,EACpB,CAACE,EAAAA,GAAAA,SAAkB,gCACnB,CAACA,EAAAA,GAAAA,MAAe,6BAChB,CAACA,EAAAA,GAAAA,UAAmBF,EACpB,CAACE,EAAAA,GAAAA,WAAoBF,I,8ICdhB,MAAMG,GAAWC,EAAAA,EAAAA,IAAH,utBAiCRC,GAAoBD,EAAAA,EAAAA,IAAH,kVC9BxBE,IDkDsBF,EAAAA,EAAAA,IAAH,6cClDTG,MAAOC,EAAOC,KAC5BC,EAAAA,EAAAA,SAAQ,GAAD,OAAIT,EAAAA,EAAWC,EAAAA,GAAAA,UAAf,qCAAqEM,EAAOC,IAExEE,EAASJ,MAAOE,IAC3B,MAAM,IAAEG,SAAcN,EAAQH,EAAUM,GACxC,OAAOG,GAGIC,EAAgBN,MAAOE,IAClC,MAAM,UAAEK,SAAoBR,EAAQD,EAAmBI,GACvD,OAAOK,I,2JCbF,MAAMC,GAAwBX,EAAAA,EAAAA,IAAH,wMAmCrBY,IArBmBZ,EAAAA,EAAAA,IAAH,oOAMzBW,IAGgCX,EAAAA,EAAAA,IAAH,mTAS7BW,IAGgCX,EAAAA,EAAAA,IAAH,0mBAmC7BW,IAGSE,GAAkBb,EAAAA,EAAAA,IAAH,gdAoBxBY,GAiBSE,IAdsBd,EAAAA,EAAAA,IAAH,wVAW5BY,IAGyBZ,EAAAA,EAAAA,IAAH,mdAuBbe,GAAuBf,EAAAA,EAAAA,IAAH,wiBAqB7BW,G,goBCpJG,MAAMK,EAAW,CACtB,CAAClB,EAAAA,GAAAA,UAAmB,kBACpB,CAACA,EAAAA,GAAAA,MAAe,0BAChB,CAACA,EAAAA,GAAAA,OAAgB,wBACjB,CAACA,EAAAA,GAAAA,QAAiB,4BAClB,CAACA,EAAAA,GAAAA,KAAc,yBACf,CAACA,EAAAA,GAAAA,UAAmB,+BAGhBI,EAAUC,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBM,EAAOC,KACxDa,EAAAA,EAAAA,GAAM,GAAD,OAAIrB,EAAAA,EAAWoB,GAAf,2BAA0CD,EAASC,IAAYb,EAAOC,GAEhEc,EAAgBhB,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAC9D,MAAM,WAAEe,SAAqBlB,EAAQe,EAASJ,EAAiBR,GAEzDgB,QAAeC,EAAAA,EAAAA,IAAeL,EAAS,CAC3CM,eAAgBC,MAAMC,KACpBL,EAAWM,QACT,CAACC,EAAeC,IAAiBD,EAAcE,IAAID,EAAaE,MAAMC,GAAIH,EAAaI,WAAWD,KAClG,IAAIE,QAKV,OAAOb,EAAWc,KAAKC,GAAD,OACjBA,GADiB,IAEpBC,OAAQ,EAAF,KACDD,EAAKL,OACLT,EAAOgB,MAAMC,GAAUA,EAAMP,KAAOI,EAAKL,MAAMC,MAEpDQ,OAAQ,EAAF,KACDJ,EAAKH,YACLX,EAAOgB,MAAMC,GAAUA,EAAMP,KAAOI,EAAKH,WAAWD,MAEzDS,YAAaC,KAAKC,MAAMP,EAAKQ,gBAAiBC,EAAAA,EAAAA,IAAY,EAAD,KAAMT,GAAN,IAAYC,OAAQD,EAAKL,UAAUe,WAC5FC,gBAAgBC,EAAAA,EAAAA,IACd,CACEC,YAAab,EAAKc,mBAAmBC,YAAY,GACjDC,WAAYhB,EAAKiB,gBAAgBF,YAAY,IAE/Cf,EAAKc,mBAAmBC,YAAY,IACpCL,WACFQ,kBAAkBN,EAAAA,EAAAA,IAChB,CACEC,YAAab,EAAKH,WAAWsB,mBAAmBJ,YAAY,GAC5DC,WAAYhB,EAAKH,WAAWuB,gBAAgBL,YAAY,IAE1Df,EAAKqB,qBAAqBN,YAAY,IACtCL,gBAIOY,EAActD,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAC5D,MAAM,WAAEqD,SAAqBxD,EAAQe,EAASH,EAAeT,GAE7D,OAAOqD,EAAW,IAGPC,EAAqBxD,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KACnE,MAAM,WAAEuD,SAAqB1D,EAAQe,EAASF,EAAsBV,GAIpE,cAAOuD,QAAP,IAAOA,OAAP,EAAOA,EAAY1B,KAAK2B,IAAa,UACnC,MAAOC,EAAaC,GAAmB,WAACF,EAASG,gBAAV,aAAC,EAAoB,GAArB,UAAyBH,EAASG,gBAAlC,aAAyB,EAAoB,IAE9EC,EALgB,SAMCH,EAAYI,UAAYH,EAAgBG,WAAcJ,EAAYK,OACvF,IAAMN,EAASvB,MAAM8B,UAEhBC,EAAKC,GAAe,EACd,OAAXR,QAAW,IAAXA,OAAA,EAAAA,EAAaS,cAAe,IAAMV,EAASvB,MAAM8B,UAClC,OAAfL,QAAe,IAAfA,OAAA,EAAAA,EAAiBQ,cAAe,IAAMV,EAASvB,MAAM8B,UAGjDI,EAAOP,IAAkBI,EAAMC,GAAe,GAAM,IAE1D,MAAO,CACLhC,MAAOuB,EAASvB,MAAMP,GACtByC,IAAMC,MAAMD,GAAa,EAANA,EACnBE,iBAAkBC,OAAM,UAACd,EAASvB,MAAMsC,gCAAhB,QAA4C,S,+hCCrEnE,MAAMC,EAAW,CACtB,CAAC/E,EAAAA,GAAAA,UAAmB,qBACpB,CAACA,EAAAA,GAAAA,MAAe,0BAChB,CAACA,EAAAA,GAAAA,OAAgB,2BACjB,CAACA,EAAAA,GAAAA,QAAiB,4BAClB,CAACA,EAAAA,GAAAA,KAAc,yBACf,CAACA,EAAAA,GAAAA,SAAkB,6BACnB,CAACA,EAAAA,GAAAA,WAAoB,+BACrB,CAACA,EAAAA,GAAAA,MAAe,6BAChB,CAACA,EAAAA,GAAAA,UAAmB,8BACpB,CAACA,EAAAA,GAAAA,WAAoB,+BACrB,CAACA,EAAAA,GAAAA,MAAe,oBAChB,CAACA,EAAAA,GAAAA,MAAe,sBAGLgF,EAAW3E,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBM,EAAOC,EAAY,MAC5Ea,EAAAA,EAAAA,GAAM,GAAD,OAAIrB,EAAAA,EAAWoB,GAAf,2BAA0C4D,EAAS5D,IAAYb,EAAOC,GAEhE0E,EAAW5E,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KACzD,MAAM,MAAE2E,SAAgBF,EAAS7D,EAASgE,EAAAA,GAAY5E,GACtD,OAAO2E,GAGI1D,EAAiBnB,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAE/D,MAAM,OAAEgB,SAAiByD,EAAS7D,EAASiE,EAAAA,GAAkB7E,GAC7D,OAAOgB,GAGI8D,EAAYhF,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAE1D,MAAM,OAAEgB,SAAiByD,EAAS7D,EAASmE,EAAAA,GAAa/E,GACxD,OAAOgB,GASIgE,EAAkBlF,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAEhE,MAAM,cAAEiF,SAAwBR,EAAS7D,EAASsE,EAAAA,GAAoBlF,GACtE,OAAOiF,GASIE,EAAgBrF,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBM,EAAOC,KAErE,MAAMoF,QAAoBC,EAAezE,IAEnC,MAAEqB,SAAgBwC,EAAS7D,EAASb,EAAOC,GACjD,OAAY,OAALiC,QAAK,IAALA,OAAA,EAAAA,EAAOqD,YAAaF,GAGhBC,EAAiBvF,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAA0B,MAEzF,MAAMuF,QAAaC,EAAU5E,OAAS6E,EAAWzF,GACjD,cAAOuF,QAAP,IAAOA,GAAP,UAAOA,EAAMG,QAAQ,UAArB,aAAO,EAAkBC,UAmCdC,EAAgB9F,MAAOE,EAAY,KAEvCmF,EAAc1F,EAAAA,GAAAA,MAAeoG,EAAAA,GAAhB,GAClBnE,GAAI,8CACD1B,IA0BM8F,EAAgBhG,MAAOE,EAAY,KAEvCmF,EAAc1F,EAAAA,GAAAA,SAAkBoG,EAAAA,GAAnB,GAClBnE,GAAI,8CACD1B,IAIM+F,EAAgBjG,MAAOE,EAAY,KACvCmF,EAAc1F,EAAAA,GAAAA,KAAcoG,EAAAA,GAAf,GAClBnE,GAAI,8CACD1B,IAIMgG,EAAclG,MAAOE,GACzBqF,EAAe5F,EAAAA,GAAAA,QAAiBO,GAO5BiG,EAAenG,SACnBqF,EAAc1F,EAAAA,GAAAA,KAAcoG,EAAAA,GAAiB,CAClDnE,GAAI,+CAIKwE,EAAepG,SACnBqF,EAAc1F,EAAAA,GAAAA,UAAmBoG,EAAAA,GAAiB,CACvDnE,GAAI,+CAIKyE,EAAgBrG,SACpBqF,EAAc1F,EAAAA,GAAAA,SAAkBoG,EAAAA,GAAiB,CACtDnE,GAAI,+CAIK8D,EAAY1F,MACvBc,EAAUnB,EAAAA,GAAAA,SACVM,EAAQqG,EAAAA,GACRpG,EAAY,CACV0B,GAAI,KAGC+C,EAAS7D,EAASb,EAAOC,GAQrBqG,EAAavG,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAC3D,MAAM,SAAEsG,SAAmB7B,EAAS7D,EAAS2F,EAAAA,GAAevG,GAC5D,OAAOsG,GAGIE,EAAa1G,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAC3D,MAAM,UAAEyG,SAAoBhC,EAAS7D,EAAS8F,EAAAA,GAAc1G,GAC5D,OAAOyG,EAAU,IAGNE,EAAkB7G,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAChE,MAAM,MAAE4G,SAAgBnC,EAAS7D,EAASiG,EAAAA,GAAmB7G,GAC7D,OAAO4G,GAGIE,EAAgBhH,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAC9D,MAAM,OAAE+G,EAAF,OAAUC,SAAiBvC,EAAS7D,EAASqG,EAAAA,EAAiBjH,GACpE,OAAO+G,GAAUC,EAAS,IAAKD,GAAkB,MAASC,GAAkB,SAAOvB,I,8rBCtN9E,MAAMyB,EAAS,CACpB,CAACzH,EAAAA,GAAAA,UAAmB,8BACpB,CAACA,EAAAA,GAAAA,MAAe,4BAChB,CAACA,EAAAA,GAAAA,OAAgB,+BACjB,CAACA,EAAAA,GAAAA,QAAiB,8BAClB,CAACA,EAAAA,GAAAA,KAAc,2BACf,CAACA,EAAAA,GAAAA,SAAkB,2BACnB,CAACA,EAAAA,GAAAA,WAAoB,iCACrB,CAACA,EAAAA,GAAAA,MAAe,sBAChB,CAACA,EAAAA,GAAAA,UAAmB,4BACpB,CAACA,EAAAA,GAAAA,MAAe,uBAChB,CAACA,EAAAA,GAAAA,MAAe,kBAChB,CAACA,EAAAA,GAAAA,WAAoB,8BAGVI,EAAUC,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBM,EAAOC,KACxDC,EAAAA,EAAAA,SAAQ,GAAD,OAAIT,EAAAA,EAAWoB,GAAf,2BAA0CsG,EAAOtG,IAAYb,EAAOC,GAGvEmH,EAAWrH,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBoE,KAAsB,MAC/E,MAAM,OAAEuD,SAAiBvH,EACvBe,EACAyG,EAAAA,GACAxD,EACI,CACEyD,MAAO,CACLC,aAAc1D,EAAY,IAC1B2D,aAAc3D,IAGlB,IAGN,MAAO,CAAE4D,OAAQnD,OAAM,OAAC8C,QAAD,IAACA,GAAD,UAACA,EAAS,UAAV,aAAC,EAAaK,UAkB1BC,EAAsB5H,MAAOc,EAAUnB,EAAAA,GAAAA,YAElD,MAAMkI,GAAMC,EAAAA,EAAAA,GAAYC,KAAKF,OACvBP,OAlBiBtH,OAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KAC1D,MAAM,OAAEoH,SAAiBvH,EAAQe,EAASkH,EAAAA,GAAa9H,GACvD,OAAOoH,GAgBcW,CAAUnH,EAAS,CACtC0G,MAAO,CACLC,cAAcS,EAAAA,EAAAA,IAAYC,EAAAA,EAAAA,GAASN,EAAK,IACxCH,cAAcQ,EAAAA,EAAAA,GAAYL,MAI9BO,QAAQC,IAAI,CAAEf,OAAAA,IAqBd,OAnBsB,OAAGA,QAAH,IAAGA,OAAH,EAAGA,EAAQ/F,QAC/B,CAACC,EAAeC,EAAc6G,KAC5B,GAAI9G,EAAcuC,UAAW,CAC3B,MAAMwE,EAAa/G,EAAcuC,UAAYtC,EAAasC,UAE1DvC,EAAcgH,iBAAmBhH,EAAcgH,iBAAmBD,EAKpE,OAFA/G,EAAcuC,UAAYtC,EAAasC,UAEnCuE,IAAiBhB,EAAOmB,OAAS,EAC5BjH,EAAcgH,iBAAmBlB,EAAOmB,OAG1CjH,IAET,CAAEuC,UAAW,KAAMyE,iBAAkB,K,+lBCtElC,MAAME,EAAW,CACtB,CAAC/I,EAAAA,GAAAA,OAAgB,2BACjB,CAACA,EAAAA,GAAAA,MAAe,8BAChB,CAACA,EAAAA,GAAAA,SAAkB,6BACnB,CAACA,EAAAA,GAAAA,UAAmB,kCACpB,CAACA,EAAAA,GAAAA,MAAe,0BAChB,CAACA,EAAAA,GAAAA,WAAoB,gCAGVgJ,EAAW3I,MAAOC,EAAOa,EAAUnB,EAAAA,GAAAA,SAAkBO,KAChEC,EAAAA,EAAAA,SAAQ,GAAD,OAAIT,EAAAA,EAAWoB,GAAf,2BAA0C4H,EAAS5H,IAAYb,EAAOC,GAElE0I,EAAgB,CAC3B,CAACjJ,EAAAA,GAAAA,UAAmB,2BAGTkJ,EAAe7I,MAAOC,EAAOa,EAAUnB,EAAAA,GAAAA,SAAkBO,KACpEC,EAAAA,EAAAA,SAAQ,GAAD,OAAIT,EAAAA,EAAWoB,GAAf,2BAA0C8H,EAAc9H,IAAYb,EAAOC,GAEvE4I,EAAgB,CAC3B,CAACnJ,EAAAA,GAAAA,UAAmB,yBAGToJ,EAAe/I,MAAOC,EAAOa,EAAUnB,EAAAA,GAAAA,SAAkBO,KACpEC,EAAAA,EAAAA,SAAQ,GAAD,OAAIT,EAAAA,EAAWoB,GAAf,2BAA0CgI,EAAchI,IAAYb,EAAOC,GAEvE8I,EAAiChJ,UAC5C,MACEiJ,YAAY,gBAAEC,UACNH,EAAaI,EAAAA,IACvB,OAAOD,GAGIE,EAA+BpJ,UAC1C,MACEiJ,YAAY,cAAEI,UACNN,EAAaO,EAAAA,GACvB,OAAOD,EAAgB,MAGZE,EAAuBvJ,MAAOE,IACzC,MAAM,MAAEsJ,SAAgBT,EAAaU,EAAAA,QAAY9D,EAAWzF,GAC5D,OAAOsJ,GAQIE,EAAuB1J,MAAOE,IACzC,MAAM,MAAEsJ,SAAgBX,EAAac,EAAAA,QAAchE,EAAWzF,GAExDgB,QAAeC,EAAAA,EAAAA,IAAexB,EAAAA,GAAAA,SAAkB,CACpDyB,eAAgBC,MAAMC,KAAKkI,EAAMzH,KAAK6H,GAASA,EAAKC,SAASC,iBAG/D,OAAON,EAAMzH,KAAK6H,GAAD,OACZA,GADY,IAEfE,YAAa,EAAF,GACN5I,EAAOgB,MAAMC,GAAUA,EAAMP,KAAOgI,EAAKC,SAASC,oBAU9CC,EAAmB/J,MAAOc,EAAUnB,EAAAA,GAAAA,SAAkBO,KACjE,MAAM,MAAEsJ,SAAgBb,EAASqB,EAAAA,GAAoBlJ,EAASZ,GAC9D,OAAOsJ,I,qpBCtFFxJ,eAAee,EAAMkJ,EAAUhK,EAAOC,EAAY,IACvD,GAAI+J,EAASC,SAAS,aAAc,MAAO,GAE3C,IAAIzE,EAAY,GACZ0E,EAAO,EACPC,GAAO,EACX,KAAOA,GAAM,CACXA,GAAO,EACP,MAAMC,QAAYlK,EAAAA,EAAAA,SAAQ8J,EAAUhK,EAAOC,GAS3C,GARAoK,OAAOC,KAAKF,GAAKG,SAASC,IACxBhF,EAAKgF,GAAOhF,EAAKgF,GAAO,IAAIhF,EAAKgF,MAASJ,EAAII,IAAQJ,EAAII,MAG5DH,OAAOI,OAAOL,GAAKG,SAASG,IACL,MAAjBA,EAAMlC,SAAiB2B,GAAO,MAGhCE,OAAOC,KAAKrK,GAAWgK,SAAS,SAAU,MAE9CC,GAAQ,IACRjK,EAAY,EAAH,KAAQA,GAAR,IAAmBiK,KAAAA,IAE9B,OAAO1E,I,2HCdF,SAASmF,GAAO,UAAE1K,EAAF,YAAa2K,GAAc,EAA3B,UAAiCC,GAAuC,IAC7F,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IAAOF,EAAc,CAAC,MAAOG,GAAAA,CAAU9K,IAAc,MAAM,KAAME,EAAAA,EAAAA,GAAOF,IAAY4K,GACrG,OAAOrF,EASF,SAASwF,GAAc,UAAE/K,EAAF,YAAa2K,GAAc,EAA3B,UAAiCC,GAA8C,IAC3G,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,aAAcG,GAAAA,CAAU9K,IAAc,MACrD,KAAMI,EAAAA,EAAAA,GAAcJ,IACpB4K,GAEF,OAAOrF,I,2rBCfF,SAASyF,GAAc,QAC5BpK,EAAUnB,EAAAA,GAAAA,SADkB,UAE5BO,EAF4B,YAG5B2K,GAAc,EAHc,UAI5BC,IAEA,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,IAAM,CAAC,aAAc/J,EAASkK,GAAAA,CAAU9K,IAAc,MACpE,CAACiL,EAAGrK,KAAYE,EAAAA,EAAAA,IAAcF,EAASZ,IACvC4K,GAEF,OAAOrF,EAUF,SAAS2F,GAAY,QAC1BtK,EAAUnB,EAAAA,GAAAA,SADgB,UAE1BO,EAF0B,YAG1B2K,GAAc,EAHY,UAI1BC,IAEA,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,WAAY/J,EAASkK,GAAAA,CAAU9K,IAAc,MAC5D,KAAMoD,EAAAA,EAAAA,IAAYxC,EAASZ,IAC3B4K,GAGF,OAAOrF,EAWF,SAAS4F,GAAmB,QACjCvK,EAAUnB,EAAAA,GAAAA,SADuB,UAEjCO,EAFiC,YAGjC2K,GAAc,EAHmB,UAIjCC,IAEA,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,kBAAmB/J,EAASkK,GAAAA,CAAU9K,IAAc,MACnE,KAAMsD,EAAAA,EAAAA,IAAmB1C,EAASZ,IAClC4K,GAGF,OAAOrF,E,qCCtDF,SAAS6F,GACd,UAAEvH,EAAF,QAAawH,EAAb,QAAsBzK,EAAUnB,EAAAA,GAAAA,SAAhC,YAAkDkL,GAAc,GAAwB,GACxFC,GAEAD,EAAcA,KAAiB/J,EAC/BiD,EAAYA,EACqB,KAA7ByH,OAAOzH,GAAW0E,OAChBjE,OAAOT,GACPzB,KAAKC,MAAMiC,OAAOT,GAAa,UACjC4B,EAEJ5B,GAAY0H,EAAAA,EAAAA,UACV,IAAOF,EAAUjJ,KAAKC,MAAMwF,KAAKF,MAAQ,KAAkB,MAAV0D,EAAkBxH,GACnE,CAACwH,EAASxH,IAGZ,MAAM,KAAE0B,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,QAAS/J,EAASiD,GAAa,MAC9C,CAACoH,EAAGrK,EAASiD,KAAcsD,EAAAA,EAAAA,IAASvG,EAASiD,IAC7C+G,GAGF,OAAOrF,EAoBF,SAASiG,GAAoB,QAAE5K,EAAUnB,EAAAA,GAAAA,SAAZ,UAA8BmL,IAChE,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfjK,EAAU,CAAC,mBAAoBA,GAAW,MAC1C,CAACqK,EAAGrK,KAAY8G,EAAAA,EAAAA,IAAoB9G,IACpCgK,GAEF,OAAOrF,E,SCpBF,SAASkG,GAAW,QACzB7K,EAAUnB,EAAAA,GAAAA,SADe,UAEzBO,EAFyB,YAGzB2K,GAAc,EAHW,UAIzBC,IAEA,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,UAAW/J,EAASkK,GAAAA,CAAU9K,IAAc,MAC3D,KAAMwG,EAAAA,EAAAA,IAAW5F,EAASZ,IAC1B4K,GAEF,OAAOrF,EAUF,SAASmG,GAAe,QAC7B9K,EAAUnB,EAAAA,GAAAA,SADmB,UAE7BO,EAF6B,YAG7B2K,GAAc,EAHe,UAI7BC,IAEA,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,cAAe/J,EAASkK,GAAAA,CAAU9K,IAAc,MAC/D,KAAMqF,EAAAA,EAAAA,IAAezE,EAASZ,IAC9B4K,GAGF,OAAOrF,EAGF,SAASoG,EAAY3L,EAAuB4K,GACjD,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IAAO,CAAC,WAAYC,GAAAA,CAAU9K,KAAa,KAAMqF,EAAAA,EAAAA,IAAerF,IAAY4K,GAC7F,OAAOrF,EAGF,SAASqG,EAAc5L,EAAuB4K,GACnD,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IAAO,CAAC,aAAcC,GAAAA,CAAU9K,KAAa,KAAM+F,EAAAA,EAAAA,IAAc/F,IAAY4K,GAC9F,OAAOrF,EAGF,SAASsG,EAAcjB,GAC5B,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IAAO,cAAc,KAAM1E,EAAAA,EAAAA,OAAiByE,GAC7D,OAAOrF,EAGF,SAASuG,EAAY9L,EAAuB4K,GACjD,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IAAO,CAAC,WAAYC,GAAAA,CAAU9K,KAAa,KAAMgG,EAAAA,EAAAA,IAAYhG,IAAY4K,GAC1F,OAAOrF,EAGF,SAASwG,EAAanB,GAC3B,MAAM,QAAEhK,IAAYoL,EAAAA,EAAAA,KACdrB,EAAc/J,GAAWA,IAAYnB,EAAAA,GAAAA,MACrC,KAAE8F,IAASsF,EAAAA,EAAAA,IAAOF,EAAc,YAAc,MAAM,KAAM1E,EAAAA,EAAAA,OAAgB2E,GAChF,OAAOrF,EAGF,SAAS0G,EAAarB,GAC3B,MAAM,QAAEhK,IAAYoL,EAAAA,EAAAA,KACdrB,EAAc/J,GAAWA,IAAYnB,EAAAA,GAAAA,WACrC,KAAE8F,IAASsF,EAAAA,EAAAA,IAAOF,EAAc,YAAc,MAAM,KAAMzE,EAAAA,EAAAA,OAAgB0E,GAChF,OAAOrF,EAgFF,SAAS2G,EAAclM,EAAuB4K,GACnD,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IAAO,CAAC,aAAcC,GAAAA,CAAU9K,KAAa,KAAM4F,EAAAA,EAAAA,IAAc5F,IAAY4K,GAC9F,OAAOrF,EAGF,SAAS4G,EAAcnM,EAAuB4K,GACnD,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IAAO,CAAC,aAAcC,GAAAA,CAAU9K,KAAa,KAAM8F,EAAAA,EAAAA,IAAc9F,IAAY4K,GAC9F,OAAOrF,EAiDF,SAAS6G,GAAc,QAC5BxL,EAAUnB,EAAAA,GAAAA,SADkB,UAE5BO,EAF4B,YAG5B2K,GAAc,EAHc,UAI5BC,IAEA,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,aAAc/J,EAASkK,GAAAA,CAAU9K,IAAc,MAC9D,CAACiL,EAAGrK,KAAY8D,EAAAA,EAAAA,IAAS9D,EAASZ,IAClC4K,GAEF,OAAOrF,EAUF,SAAS8G,GACd,QAAEzL,EAAUnB,EAAAA,GAAAA,SAAZ,UAA8BO,EAA9B,YAAyC2K,GAAc,GACvDC,GAEA,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,SAAU/J,EAASkK,GAAAA,CAAU9K,IAAc,MAC1D,CAACiL,EAAGrK,KAAYkE,EAAAA,EAAAA,IAAUlE,EAASZ,IACnC4K,GAEF,cAAOrF,QAAP,IAAOA,EAAAA,EAAQ,GAYV,SAAS+G,GACd,UAAEzI,EAAF,MAAa0I,EAAb,QAAoB3L,EAAUnB,EAAAA,GAAAA,SAA9B,YAAgDkL,GAAc,EAA9D,MAAoE1I,EAApE,MAA2EuK,GAC3E5B,GACA,MACA,MAAM6B,EAAerB,EAAS,CAAEvH,UAAAA,EAAWjD,QAAAA,EAAS+J,YAAaA,KAAiB9G,IAGlF8G,EAAcA,KAAiB/J,EAE/B,MAAMZ,EAAY,CAChBwM,MAAOA,EACPD,OANFA,EAAK,UAAGA,SAAH,QAAa1I,EAAY4I,OAAehH,GAM5B,CAAEgC,OAAQ8E,QAAU9G,EACnC6B,MAAO,CACLrF,MAAK,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAOyK,iBAIZ,KAAEnH,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,eAAgB/J,EAASkK,GAAAA,CAAU9K,IAAc,MAChE,CAACiL,EAAGrK,KAAYoE,EAAAA,EAAAA,IAAgBpE,EAASZ,IACzC4K,GAEF,OAAOrF,EAWF,SAASoH,GACd,UAAE9I,EAAF,MAAa0I,EAAb,QAAoB3L,EAAUnB,EAAAA,GAAAA,SAA9B,YAAgDkL,GAAc,EAA9D,MAAoE6B,GACpE5B,GACA,MACA,MAAM6B,EAAerB,EAAS,CAAEvH,UAAAA,EAAWjD,QAAAA,EAAS+J,YAAaA,KAAiB9G,IAGlF8G,EAAcA,KAAiB/J,EAE/B,MAAMZ,EAAY,CAChBwM,MAAOA,EACPD,OANFA,EAAK,UAAGA,SAAH,QAAa1I,EAAY4I,OAAehH,GAM5B,CAAEgC,OAAQ8E,QAAU9G,IAG/B,KAAEF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,UAAW/J,EAASkK,GAAAA,CAAU9K,IAAc,MAC3D,CAACiL,EAAGrK,KAAYyF,EAAAA,EAAAA,IAAWzF,EAASZ,IACpC4K,GAEF,OAAOrF,EAUF,SAASqH,GAAgB,QAC9BhM,EAAUnB,EAAAA,GAAAA,SADoB,UAE9BO,EAF8B,YAG9B2K,GAAc,EAHgB,UAI9BC,IAEA,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,eAAgB/J,EAASkK,GAAAA,CAAU9K,IAAc,MAChE,CAACiL,EAAGrK,KAAY+F,EAAAA,EAAAA,IAAgB/F,EAASZ,IACzC4K,GAEF,OAAOrF,EAUF,SAASsH,GAAc,QAC5BjM,EAAUnB,EAAAA,GAAAA,SADkB,UAE5BO,EAF4B,YAG5B2K,GAAc,EAHc,UAI5BC,IAEA,MAAM,KAAErF,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,aAAc/J,EAASkK,GAAAA,CAAU9K,IAAc,MAC9D,CAACiL,EAAGrK,KAAYkG,EAAAA,EAAAA,IAAclG,EAASZ,IACvC4K,GAEF,OAAOrF,E,mnBC3WF,SAASuH,EAA+BlC,GAC7C,MAAM,QAAEhK,IAAYoL,EAAAA,EAAAA,KACdrB,EAAc/J,GAAWA,IAAYnB,EAAAA,GAAAA,UACrC,KAAE8F,IAASsF,EAAAA,EAAAA,IACfF,EAAc,8BAAgC,MAC9C,KAAM7B,EAAAA,EAAAA,OACN8B,GAEF,OAAOrF,EAGF,SAASwH,EAA6BnC,GAC3C,MAAM,QAAEhK,IAAYoL,EAAAA,EAAAA,KACdrB,EAAc/J,GAAWA,IAAYnB,EAAAA,GAAAA,UACrC,KAAE8F,IAASsF,EAAAA,EAAAA,IACfF,EAAc,4BAA8B,MAC5C,KAAMzB,EAAAA,EAAAA,OACN0B,GAEF,OAAOrF,EAyCF,SAASyH,GAAS,QAAEpM,EAAF,UAAWgK,IAClC,MAAMqC,EAlCD,UAA8B,QAAErM,EAAF,UAAWgK,IAC9C,MAAMD,EAAc/J,GAAWA,IAAYnB,EAAAA,GAAAA,UACrC,KAAE8F,IAASsF,EAAAA,EAAAA,IAAOF,EAAc,CAAC,qBAAuB,MAAM,KAAMtB,EAAAA,EAAAA,SAAqB5D,IAAYmF,GAC3G,OAAOW,EAAAA,EAAAA,UAAQ,IACRhG,EACEA,EAAK1D,KAAK0D,GAAD,OAAgBA,GAAhB,IAAsB2H,KAAM9N,EAAAA,GAAAA,eAD1B,IAEjB,CAACmG,IA4BsB4H,CAAqB,CAAEvM,QAAAA,IAC3CwM,EA1BD,UAA8B,QAAExM,EAAF,UAAWgK,IAC9C,MAAMD,EAAc/J,GAAWA,IAAYnB,EAAAA,GAAAA,UACrC,KAAE8F,IAASsF,EAAAA,EAAAA,IAAOF,EAAc,oBAAsB,MAAM,KAAMnB,EAAAA,EAAAA,OAAwBoB,GAChG,OAAOW,EAAAA,EAAAA,UAAQ,IACRhG,EACEA,EAAK1D,KAAK0D,GAAD,OAAgBA,GAAhB,IAAsB2H,KAAM9N,EAAAA,GAAAA,kBAD1B,IAEjB,CAACmG,IAoBsB8H,CAAqB,CAAEzM,QAAAA,IAC3C0M,EAlBD,UAA0B,QAAE1M,EAAF,UAAWgK,IAC1C,MAAMD,EACJ/J,GACA,CAACnB,EAAAA,GAAAA,MAAeA,EAAAA,GAAAA,KAAcA,EAAAA,GAAAA,QAAiBA,EAAAA,GAAAA,SAAkBA,EAAAA,GAAAA,KAAcA,EAAAA,GAAAA,WAAmBuK,SAASpJ,IACvG,KAAE2E,IAASsF,EAAAA,EAAAA,IACfF,EAAc,CAAC,gBAAiB/J,GAAW,MAC3C,CAACqK,EAAGrK,KAAYiJ,EAAAA,EAAAA,IAAiBjJ,IACjCgK,GAEF,OAAOW,EAAAA,EAAAA,UAAQ,IACRhG,EACEA,EAAK1D,KAAK0D,GAAD,OAAgBA,GAAhB,IAAsB2H,KAAM9N,EAAAA,GAAAA,aAD1B,IAEjB,CAACmG,IAMkBgI,CAAiB,CAAE3M,QAAAA,IACzC,OAAO2K,EAAAA,EAAAA,UACL,IAAMiC,GAAAA,CAAOP,EAAmBG,EAAmBE,GAAeG,QAAQ/D,GAASA,GAAQA,EAAK5H,QAChG,CAACmL,EAAmBG,EAAmBE,M,ydClF3C,MAAMI,GAAmB/N,EAAAA,EAAAA,IAAH,mGAQT0H,GAAa1H,EAAAA,EAAAA,IAAH,4SAUnB+N,GAGS5F,GAAcnI,EAAAA,EAAAA,IAAH,4WAYpB+N,G,oDCjCG,MAAMhH,GAAe/G,EAAAA,EAAAA,IAAH,2KAsCZgO,IA5BehO,EAAAA,EAAAA,IAAH,sJAOOA,EAAAA,EAAAA,IAAH,yaAqBDA,EAAAA,EAAAA,IAAH,yFAOZyG,GAAgBzG,EAAAA,EAAAA,IAAH,sKAMtBgO,GAGS9H,GAAkBlG,EAAAA,EAAAA,IAAH,+HASfiO,GAAqBjO,EAAAA,EAAAA,IAAH,0LAclB4G,GAAgB5G,EAAAA,EAAAA,IAAH,4OAMtBiO,GAISC,GAAkBlO,EAAAA,EAAAA,IAAH,scAmGfiF,IApEYjF,EAAAA,EAAAA,IAAH,4JAMlBkO,IAGwBlO,EAAAA,EAAAA,IAAH,0HAQKA,EAAAA,EAAAA,IAAH,wGAQMA,EAAAA,EAAAA,IAAH,8gBA4BSA,EAAAA,EAAAA,IAAH,kUAeVA,EAAAA,EAAAA,IAAH,2bAoBnBkO,IAuBSC,IApBuBnO,EAAAA,EAAAA,IAAH,+ZAoBDA,EAAAA,EAAAA,IAAH,6NAiChBuF,IAjBavF,EAAAA,EAAAA,IAAH,+JAMnBmO,IAGyBnO,EAAAA,EAAAA,IAAH,4HAQQA,EAAAA,EAAAA,IAAH,yYAgBlBsH,GAAkBtH,EAAAA,EAAAA,IAAH,ggBAuBxBkO,GAGS9I,GAAcpF,EAAAA,EAAAA,IAAH,2YAWpBmO,GAGSjJ,GAAmBlF,EAAAA,EAAAA,IAAH,qcAoBzBmO,GAISjH,GAAoBlH,EAAAA,EAAAA,IAAH,8jC,YCtVvB,MAAM4J,GAAa5J,EAAAA,EAAAA,IAAH,woBAoDVsJ,KAnBiCtJ,EAAAA,EAAAA,IAAH,+cAmBKA,EAAAA,EAAAA,IAAH,qMAShCyJ,IAAiCzJ,EAAAA,EAAAA,IAAH,gM,UC7DpC,MAAM8J,IAAe9J,EAAAA,EAAAA,IAAH,seAyBqBA,EAAAA,EAAAA,IAAH,wX,UCzBpC,MAAMmK,IAAqBnK,EAAAA,EAAAA,IAAH,8uBAsCWA,EAAAA,EAAAA,IAAH","sources":["webpack://_N_E/./src/components/Container/index.tsx","webpack://_N_E/./src/features/onsen/enum.ts","webpack://_N_E/./src/services/graph/constants/index.ts","webpack://_N_E/./src/services/graph/queries/bar.ts","webpack://_N_E/./src/services/graph/fetchers/bar.ts","webpack://_N_E/./src/services/graph/queries/bentobox.ts","webpack://_N_E/./src/services/graph/fetchers/bentobox.ts","webpack://_N_E/./src/services/graph/fetchers/exchange.ts","webpack://_N_E/./src/services/graph/fetchers/blocks.ts","webpack://_N_E/./src/services/graph/fetchers/masterchef.ts","webpack://_N_E/./src/services/graph/functions/index.ts","webpack://_N_E/./src/services/graph/hooks/bar.ts","webpack://_N_E/./src/services/graph/hooks/bentobox.ts","webpack://_N_E/./src/services/graph/hooks/blocks.ts","webpack://_N_E/./src/services/graph/hooks/exchange.ts","webpack://_N_E/./src/services/graph/hooks/masterchef.ts","webpack://_N_E/./src/services/graph/queries/blocks.ts","webpack://_N_E/./src/services/graph/queries/exchange.ts","webpack://_N_E/./src/services/graph/queries/masterchef.ts","webpack://_N_E/./src/services/graph/queries/masterchef-v2.ts","webpack://_N_E/./src/services/graph/queries/minichef.ts"],"sourcesContent":["import { classNames } from '../../functions'\n\nconst MAX_WIDTH = {\n full: 'max-w-full',\n '7xl': 'max-w-7xl',\n '6xl': 'max-w-6xl',\n '5xl': 'max-w-5xl',\n '4xl': 'max-w-4xl',\n '3xl': 'max-w-3xl',\n '2xl': 'max-w-2xl',\n xl: 'max-w-xl',\n lg: 'max-w-lg',\n md: 'max-w-md',\n sm: 'max-w-sm',\n xs: 'max-w-xs',\n}\n\nconst Container = ({ children, maxWidth = '2xl', className = '', ...rest }) => (\n
\n {children}\n
\n)\n\nexport default Container\n","export enum Chef {\n MASTERCHEF,\n MASTERCHEF_V2,\n MINICHEF,\n}\n\nexport enum Rewarder {\n SIMPLE,\n COMPLEX,\n ALCX,\n}\n\nexport enum PairType {\n SWAP,\n KASHI,\n}\n","import { ChainId } from '@sushiswap/core-sdk'\nconst THE_GRAPH = 'https://api.thegraph.com'\nconst NAS_GRAPH = 'https://graph.kkt.one/node'\nconst HYPER_GRAPH = 'https://q.hg.network'\nexport const GRAPH_HOST = {\n [ChainId.ETHEREUM]: THE_GRAPH,\n [ChainId.XDAI]: THE_GRAPH,\n [ChainId.MATIC]: THE_GRAPH,\n [ChainId.FANTOM]: THE_GRAPH,\n [ChainId.BSC]: THE_GRAPH,\n [ChainId.AVALANCHE]: THE_GRAPH,\n [ChainId.CELO]: THE_GRAPH,\n [ChainId.ARBITRUM]: THE_GRAPH,\n [ChainId.HARMONY]: 'https://sushi.graph.t.hmny.io',\n [ChainId.OKEX]: 'https://graph.kkt.one/node',\n [ChainId.ARBITRUM]: THE_GRAPH,\n [ChainId.MOONRIVER]: THE_GRAPH,\n}\n","import gql from 'graphql-tag'\n\nexport const barQuery = gql`\n query barQuery($id: String! = \"0x8798249c2e607446efb7ad49ec89dd1865ff4272\", $block: Block_height) {\n bar(id: $id, block: $block) {\n id\n totalSupply\n ratio\n xSushiMinted\n xSushiBurned\n sushiStaked\n sushiStakedUSD\n sushiHarvested\n sushiHarvestedUSD\n xSushiAge\n xSushiAgeDestroyed\n # histories(first: 1000) {\n # id\n # date\n # timeframe\n # sushiStaked\n # sushiStakedUSD\n # sushiHarvested\n # sushiHarvestedUSD\n # xSushiAge\n # xSushiAgeDestroyed\n # xSushiMinted\n # xSushiBurned\n # xSushiSupply\n # ratio\n # }\n }\n }\n`\n\nexport const barHistoriesQuery = gql`\n query barHistoriesQuery {\n histories(first: 1000) {\n id\n date\n timeframe\n sushiStaked\n sushiStakedUSD\n sushiHarvested\n sushiHarvestedUSD\n xSushiAge\n xSushiAgeDestroyed\n xSushiMinted\n xSushiBurned\n xSushiSupply\n ratio\n }\n }\n`\n\nexport const barUserQuery = gql`\n query barUserQuery($id: String!) {\n user(id: $id) {\n id\n bar {\n totalSupply\n sushiStaked\n }\n xSushi\n sushiStaked\n sushiStakedUSD\n sushiHarvested\n sushiHarvestedUSD\n xSushiIn\n xSushiOut\n xSushiOffset\n xSushiMinted\n xSushiBurned\n sushiIn\n sushiOut\n usdIn\n usdOut\n createdAt\n createdAtBlock\n }\n }\n`\n","import { ChainId } from '@sushiswap/core-sdk'\nimport { GRAPH_HOST } from '../constants'\nimport { request } from 'graphql-request'\nimport { barHistoriesQuery, barQuery } from '../queries/bar'\n\nconst fetcher = async (query, variables = undefined) =>\n request(`${GRAPH_HOST[ChainId.ETHEREUM]}/subgraphs/name/matthewlilley/bar`, query, variables)\n\nexport const getBar = async (variables = undefined) => {\n const { bar } = await fetcher(barQuery, variables)\n return bar\n}\n\nexport const getBarHistory = async (variables = undefined) => {\n const { histories } = await fetcher(barHistoriesQuery, variables)\n return histories\n}\n","import gql from 'graphql-tag'\n\nexport const bentoTokenFieldsQuery = gql`\n fragment bentoTokenFields on Token {\n id\n # bentoBox\n name\n symbol\n decimals\n totalSupplyElastic\n totalSupplyBase\n block\n timestamp\n }\n`\n\nexport const bentoTokensQuery = gql`\n query bentoTokens($first: Int = 1000, $block: Block_height, $where: Token_filter) {\n tokens(first: $first, skip: $skip, block: $block, where: $where) {\n ...bentoTokenFields\n }\n }\n ${bentoTokenFieldsQuery}\n`\n\nexport const bentoUserTokensQuery = gql`\n query bentoUserTokens($user: String!, $skip: Int = 0, $first: Int = 1000, $block: Block_height) {\n userTokens(skip: $skip, first: $first, block: $block, where: { share_gt: 0, user: $user }) {\n token {\n ...bentoTokenFields\n }\n share\n }\n }\n ${bentoTokenFieldsQuery}\n`\n\nexport const kashiPairFieldsQuery = gql`\n fragment kashiPairFields on KashiPair {\n id\n # bentoBox\n type\n masterContract\n owner\n feeTo\n name\n symbol\n oracle\n asset {\n ...bentoTokenFields\n }\n collateral {\n ...bentoTokenFields\n }\n exchangeRate\n totalAssetElastic\n totalAssetBase\n totalCollateralShare\n totalBorrowElastic\n totalBorrowBase\n interestPerSecond\n utilization\n feesEarnedFraction\n totalFeesEarnedFraction\n lastAccrued\n supplyAPR\n borrowAPR\n # transactions\n # users\n block\n timestamp\n }\n ${bentoTokenFieldsQuery}\n`\n\nexport const kashiPairsQuery = gql`\n query kashiPairs(\n $skip: Int = 0\n $first: Int = 1000\n $where: KashiPair_filter\n $block: Block_height\n $orderBy: KashiPair_orderBy = \"utilization\"\n $orderDirection: OrderDirection! = \"desc\"\n ) {\n kashiPairs(\n skip: $skip\n first: $first\n where: $where\n block: $block\n orderBy: $orderBy\n orderDirection: $orderDirection\n ) {\n ...kashiPairFields\n }\n }\n ${kashiPairFieldsQuery}\n`\n\nexport const kashiUserPairsQuery = gql`\n query kashiUserPairs($user: String!, $skip: Int = 0, $first: Int = 1000, $block: Block_height) {\n userKashiPairs(skip: $skip, first: $first, block: $block, where: { user: $user }) {\n assetFraction\n collateralShare\n borrowPart\n pair {\n ...kashiPairFields\n }\n }\n }\n ${kashiPairFieldsQuery}\n`\n\nexport const bentoBoxQuery = gql`\n query bentoBoxQuery(\n $id: String! = \"0xf5bce5077908a1b7370b9ae04adc565ebd643966\"\n $block: Block_height\n $where: BentoBox_filter\n ) {\n bentoBoxes(first: 1, block: $block, where: $where) {\n id\n totalUsers\n totalTokens\n totalKashiPairs\n tokens(first: 1000) {\n id\n name\n symbol\n decimals\n totalSupplyBase\n totalSupplyElastic\n }\n }\n }\n`\n\nexport const bentoStrategiesQuery = gql`\n query bentoStrategies($first: Int = 1000, $firstHarvests: Int = 2, $block: Block_height, $where: Strategy_filter) {\n strategies(first: $first, block: $block, where: $where) {\n token {\n id\n decimals\n strategyTargetPercentage\n }\n balance\n totalProfit\n harvests(first: $firstHarvests, orderBy: timestamp, orderDirection: desc) {\n id\n profit\n tokenElastic\n timestamp\n block\n }\n timestamp\n block\n }\n }\n ${bentoTokenFieldsQuery}\n`\n","import { bentoBoxQuery, bentoStrategiesQuery, kashiPairsQuery } from '../queries/bentobox'\nimport { getFraction, toAmount } from '../../../functions'\n\nimport { ChainId } from '@sushiswap/core-sdk'\nimport { GRAPH_HOST } from '../constants'\nimport { getTokenSubset } from './exchange'\nimport { pager } from '../functions'\n\nexport const BENTOBOX = {\n [ChainId.ETHEREUM]: 'lufycz/bentobox',\n [ChainId.XDAI]: 'sushiswap/xdai-bentobox',\n [ChainId.MATIC]: 'lufycz/matic-bentobox',\n [ChainId.FANTOM]: 'sushiswap/fantom-bentobox',\n [ChainId.BSC]: 'sushiswap/bsc-bentobox',\n [ChainId.ARBITRUM]: 'sushiswap/arbitrum-bentobox',\n}\n\nconst fetcher = async (chainId = ChainId.ETHEREUM, query, variables = undefined) =>\n pager(`${GRAPH_HOST[chainId]}/subgraphs/name/${BENTOBOX[chainId]}`, query, variables)\n\nexport const getKashiPairs = async (chainId = ChainId.ETHEREUM, variables = undefined) => {\n const { kashiPairs } = await fetcher(chainId, kashiPairsQuery, variables)\n\n const tokens = await getTokenSubset(chainId, {\n tokenAddresses: Array.from(\n kashiPairs.reduce(\n (previousValue, currentValue) => previousValue.add(currentValue.asset.id, currentValue.collateral.id),\n new Set() // use set to avoid duplicates\n )\n ),\n })\n\n return kashiPairs.map((pair) => ({\n ...pair,\n token0: {\n ...pair.asset,\n ...tokens.find((token) => token.id === pair.asset.id),\n },\n token1: {\n ...pair.collateral,\n ...tokens.find((token) => token.id === pair.collateral.id),\n },\n assetAmount: Math.floor(pair.totalAssetBase / getFraction({ ...pair, token0: pair.asset })).toString(),\n borrowedAmount: toAmount(\n {\n bentoAmount: pair.totalBorrowElastic.toBigNumber(0),\n bentoShare: pair.totalBorrowBase.toBigNumber(0),\n },\n pair.totalBorrowElastic.toBigNumber(0)\n ).toString(),\n collateralAmount: toAmount(\n {\n bentoAmount: pair.collateral.totalSupplyElastic.toBigNumber(0),\n bentoShare: pair.collateral.totalSupplyBase.toBigNumber(0),\n },\n pair.totalCollateralShare.toBigNumber(0)\n ).toString(),\n }))\n}\n\nexport const getBentoBox = async (chainId = ChainId.ETHEREUM, variables) => {\n const { bentoBoxes } = await fetcher(chainId, bentoBoxQuery, variables)\n\n return bentoBoxes[0]\n}\n\nexport const getBentoStrategies = async (chainId = ChainId.ETHEREUM, variables) => {\n const { strategies } = await fetcher(chainId, bentoStrategiesQuery, variables)\n\n const SECONDS_IN_YEAR = 60 * 60 * 24 * 365\n\n return strategies?.map((strategy) => {\n const [lastHarvest, previousHarvest] = [strategy.harvests?.[0], strategy.harvests?.[1]]\n\n const profitPerYear =\n ((SECONDS_IN_YEAR / (lastHarvest.timestamp - previousHarvest.timestamp)) * lastHarvest.profit) /\n 10 ** strategy.token.decimals\n\n const [tvl, tvlPrevious] = [\n lastHarvest?.tokenElastic / 10 ** strategy.token.decimals,\n previousHarvest?.tokenElastic / 10 ** strategy.token.decimals,\n ]\n\n const apy = (profitPerYear / ((tvl + tvlPrevious) / 2)) * 100\n\n return {\n token: strategy.token.id,\n apy: !isNaN(apy) ? apy : 0,\n targetPercentage: Number(strategy.token.strategyTargetPercentage ?? 0),\n }\n })\n}\n","import {\n dayDatasQuery,\n ethPriceQuery,\n factoryQuery,\n liquidityPositionsQuery,\n pairsQuery,\n tokenDayDatasQuery,\n tokenPairsQuery,\n tokenPriceQuery,\n tokenQuery,\n tokenSubsetQuery,\n tokensQuery,\n transactionsQuery,\n} from '../queries'\n\nimport { ChainId } from '@sushiswap/core-sdk'\nimport { GRAPH_HOST } from '../constants'\nimport { pager } from '../functions'\n\nexport const EXCHANGE = {\n [ChainId.ETHEREUM]: 'sushiswap/exchange',\n [ChainId.XDAI]: 'sushiswap/xdai-exchange',\n [ChainId.MATIC]: 'sushiswap/matic-exchange',\n [ChainId.FANTOM]: 'sushiswap/fantom-exchange',\n [ChainId.BSC]: 'sushiswap/bsc-exchange',\n [ChainId.HARMONY]: 'sushiswap/harmony-exchange',\n [ChainId.AVALANCHE]: 'sushiswap/avalanche-exchange',\n [ChainId.CELO]: 'jiro-ono/sushitestsubgraph',\n [ChainId.ARBITRUM]: 'sushiswap/arbitrum-exchange',\n [ChainId.MOONRIVER]: 'sushiswap/moonriver-exchange',\n [ChainId.OKEX]: 'okex-exchange/oec',\n [ChainId.HECO]: 'heco-exchange/heco',\n}\n\nexport const exchange = async (chainId = ChainId.ETHEREUM, query, variables = {}) =>\n pager(`${GRAPH_HOST[chainId]}/subgraphs/name/${EXCHANGE[chainId]}`, query, variables)\n\nexport const getPairs = async (chainId = ChainId.ETHEREUM, variables = undefined) => {\n const { pairs } = await exchange(chainId, pairsQuery, variables)\n return pairs\n}\n\nexport const getTokenSubset = async (chainId = ChainId.ETHEREUM, variables) => {\n // console.log('getTokenSubset')\n const { tokens } = await exchange(chainId, tokenSubsetQuery, variables)\n return tokens\n}\n\nexport const getTokens = async (chainId = ChainId.ETHEREUM, variables) => {\n // console.log('getTokens')\n const { tokens } = await exchange(chainId, tokensQuery, variables)\n return tokens\n}\n\nexport const getToken = async (chainId = ChainId.ETHEREUM, query = tokenQuery, variables) => {\n // console.log('getTokens')\n const { token } = await exchange(chainId, query, variables)\n return token\n}\n\nexport const getTokenDayData = async (chainId = ChainId.ETHEREUM, variables) => {\n // console.log('getTokens')\n const { tokenDayDatas } = await exchange(chainId, tokenDayDatasQuery, variables)\n return tokenDayDatas\n}\n\nexport const getTokenPrices = async (chainId = ChainId.ETHEREUM, variables) => {\n // console.log('getTokenPrice')\n const { tokens } = await exchange(chainId, tokensQuery, variables)\n return tokens.map((token) => token?.derivedETH)\n}\n\nexport const getTokenPrice = async (chainId = ChainId.ETHEREUM, query, variables) => {\n // console.log('getTokenPrice')\n const nativePrice = await getNativePrice(chainId)\n\n const { token } = await exchange(chainId, query, variables)\n return token?.derivedETH * nativePrice\n}\n\nexport const getNativePrice = async (chainId = ChainId.ETHEREUM, variables = undefined) => {\n // console.log('getEthPrice')\n const data = await getBundle(chainId, undefined, variables)\n return data?.bundles[0]?.ethPrice\n}\n\nexport const getEthPrice = async (variables = undefined) => {\n return getNativePrice(ChainId.ETHEREUM, variables)\n}\n\nexport const getYggPrice = async (variables = {}) => {\n return getTokenPrice(ChainId.ETHEREUM, tokenPriceQuery, {\n id: '0x25f8087ead173b73d6e8b84329989a8eea16cf73',\n ...variables,\n })\n}\n\nexport const getRulerPrice = async (variables = {}) => {\n return getTokenPrice(ChainId.ETHEREUM, tokenPriceQuery, {\n id: '0x2aeccb42482cc64e087b6d2e5da39f5a7a7001f8',\n ...variables,\n })\n}\n\nexport const getTruPrice = async (variables = {}) => {\n return getTokenPrice(ChainId.ETHEREUM, tokenPriceQuery, {\n id: '0x4c19596f5aaff459fa38b0f7ed92f11ae6543784',\n ...variables,\n })\n}\n\nexport const getCvxPrice = async (variables = {}) => {\n return getTokenPrice(ChainId.ETHEREUM, tokenPriceQuery, {\n id: '0x4e3fbd56cd56c3e72c1403e103b45db9da5b9d2b',\n ...variables,\n })\n}\n\nexport const getMaticPrice = async (variables = {}) => {\n // console.log('getMaticPrice')\n return getTokenPrice(ChainId.MATIC, tokenPriceQuery, {\n id: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270',\n ...variables,\n })\n}\n\nexport const getAlcxPrice = async (variables = {}) => {\n // console.log('getAlcxPrice')\n return getTokenPrice(ChainId.ETHEREUM, tokenPriceQuery, {\n id: '0xdbdb4d16eda451d0503b854cf79d55697f90c8df',\n ...variables,\n })\n}\n\nexport const getPicklePrice = async (variables = {}) => {\n return getTokenPrice(ChainId.ETHEREUM, tokenPriceQuery, {\n id: '0x429881672b9ae42b8eba0e26cd9c73711b891ca5',\n ...variables,\n })\n}\n\nexport const getMphPrice = async (variables = {}) => {\n return getTokenPrice(ChainId.ETHEREUM, tokenPriceQuery, {\n id: '0x8888801af4d980682e47f1a9036e589479e835c5',\n ...variables,\n })\n}\n\nexport const getSushiPrice = async (variables = {}) => {\n // console.log('getSushiPrice')\n return getTokenPrice(ChainId.ETHEREUM, tokenPriceQuery, {\n id: '0x6b3595068778dd592e39a122f4f5a5cf09c90fe2',\n ...variables,\n })\n}\n\nexport const getStakePrice = async (variables = {}) => {\n return getTokenPrice(ChainId.XDAI, tokenPriceQuery, {\n id: '0xb7d311e2eb55f2f68a9440da38e7989210b9a05e',\n ...variables,\n })\n}\n\nexport const getOnePrice = async (variables = undefined) => {\n return getNativePrice(ChainId.HARMONY, variables)\n}\n\nexport const getAvaxPrice = async (variables = undefined) => {\n return getNativePrice(ChainId.AVALANCHE, variables)\n}\n\nexport const getCeloPrice = async () => {\n return getTokenPrice(ChainId.CELO, tokenPriceQuery, {\n id: '0x471ece3750da237f93b8e339c536989b8978a438',\n })\n}\n\nexport const getMovrPrice = async () => {\n return getTokenPrice(ChainId.MOONRIVER, tokenPriceQuery, {\n id: '0xf50225a84382c74cbdea10b0c176f71fc3de0c4d',\n })\n}\n\nexport const getSpellPrice = async () => {\n return getTokenPrice(ChainId.ETHEREUM, tokenPriceQuery, {\n id: '0x090185f2135308bad17527004364ebcc2d37e5f6',\n })\n}\n\nexport const getBundle = async (\n chainId = ChainId.ETHEREUM,\n query = ethPriceQuery,\n variables = {\n id: 1,\n }\n) => {\n return exchange(chainId, query, variables)\n}\n\nexport const getLiquidityPositions = async (chainId = ChainId.ETHEREUM, variables) => {\n const { liquidityPositions } = await exchange(chainId, liquidityPositionsQuery, variables)\n return liquidityPositions\n}\n\nexport const getDayData = async (chainId = ChainId.ETHEREUM, variables = undefined) => {\n const { dayDatas } = await exchange(chainId, dayDatasQuery, variables)\n return dayDatas\n}\n\nexport const getFactory = async (chainId = ChainId.ETHEREUM, variables = undefined) => {\n const { factories } = await exchange(chainId, factoryQuery, variables)\n return factories[0]\n}\n\nexport const getTransactions = async (chainId = ChainId.ETHEREUM, variables = undefined) => {\n const { swaps } = await exchange(chainId, transactionsQuery, variables)\n return swaps\n}\n\nexport const getTokenPairs = async (chainId = ChainId.ETHEREUM, variables = undefined) => {\n const { pairs0, pairs1 } = await exchange(chainId, tokenPairsQuery, variables)\n return pairs0 || pairs1 ? [...(pairs0 ? pairs0 : []), ...(pairs1 ? pairs1 : [])] : undefined\n}\n","import { blockQuery, blocksQuery, massBlocksQuery } from '../queries'\nimport { getUnixTime, startOfHour, subDays, subHours } from 'date-fns'\n\nimport { ChainId } from '@sushiswap/core-sdk'\nimport { GRAPH_HOST } from '../constants'\nimport { request } from 'graphql-request'\n\nexport const BLOCKS = {\n [ChainId.ETHEREUM]: 'blocklytics/ethereum-blocks',\n [ChainId.XDAI]: 'matthewlilley/xdai-blocks',\n [ChainId.MATIC]: 'matthewlilley/polygon-blocks',\n [ChainId.FANTOM]: 'matthewlilley/fantom-blocks',\n [ChainId.BSC]: 'matthewlilley/bsc-blocks',\n [ChainId.HARMONY]: 'sushiswap/harmony-blocks',\n [ChainId.AVALANCHE]: 'matthewlilley/avalanche-blocks',\n [ChainId.CELO]: 'ubeswap/celo-blocks',\n [ChainId.ARBITRUM]: 'sushiswap/arbitrum-blocks',\n [ChainId.OKEX]: 'okexchain-blocks/oec',\n [ChainId.HECO]: 'hecoblocks/heco',\n [ChainId.MOONRIVER]: 'sushiswap/moonriver-blocks',\n}\n\nexport const fetcher = async (chainId = ChainId.ETHEREUM, query, variables = undefined) => {\n return request(`${GRAPH_HOST[chainId]}/subgraphs/name/${BLOCKS[chainId]}`, query, variables)\n}\n\nexport const getBlock = async (chainId = ChainId.ETHEREUM, timestamp: number) => {\n const { blocks } = await fetcher(\n chainId,\n blockQuery,\n timestamp\n ? {\n where: {\n timestamp_gt: timestamp - 600,\n timestamp_lt: timestamp,\n },\n }\n : {}\n )\n\n return { number: Number(blocks?.[0]?.number) }\n}\n\nexport const getBlocks = async (chainId = ChainId.ETHEREUM, variables) => {\n const { blocks } = await fetcher(chainId, blocksQuery, variables)\n return blocks\n}\n\nexport const getMassBlocks = async (chainId = ChainId.ETHEREUM, timestamps) => {\n const data = await fetcher(chainId, massBlocksQuery(timestamps))\n return Object.values(data).map((entry) => ({\n number: Number(entry[0].number),\n timestamp: Number(entry[0].timestamp),\n }))\n}\n\n// Grabs the last 1000 (a sample statistical) blocks and averages\n// the time difference between them\nexport const getAverageBlockTime = async (chainId = ChainId.ETHEREUM) => {\n // console.log('getAverageBlockTime')\n const now = startOfHour(Date.now())\n const blocks = await getBlocks(chainId, {\n where: {\n timestamp_gt: getUnixTime(subHours(now, 6)),\n timestamp_lt: getUnixTime(now),\n },\n })\n\n console.log({ blocks })\n\n const averageBlockTime = blocks?.reduce(\n (previousValue, currentValue, currentIndex) => {\n if (previousValue.timestamp) {\n const difference = previousValue.timestamp - currentValue.timestamp\n\n previousValue.averageBlockTime = previousValue.averageBlockTime + difference\n }\n\n previousValue.timestamp = currentValue.timestamp\n\n if (currentIndex === blocks.length - 1) {\n return previousValue.averageBlockTime / blocks.length\n }\n\n return previousValue\n },\n { timestamp: null, averageBlockTime: 0 }\n )\n\n return averageBlockTime\n}\n","import {\n masterChefV1PairAddressesQuery,\n masterChefV1SushiPerBlockQuery,\n masterChefV1TotalAllocPointQuery,\n masterChefV2PairAddressesQuery,\n miniChefPairAddressesQuery,\n miniChefPoolsQuery,\n poolsQuery,\n poolsV2Query,\n} from '../queries'\n\nimport { ChainId } from '@sushiswap/core-sdk'\nimport { GRAPH_HOST } from '../constants'\nimport { getTokenSubset } from './exchange'\nimport { request } from 'graphql-request'\n\nexport const MINICHEF = {\n [ChainId.MATIC]: 'sushiswap/matic-minichef',\n [ChainId.XDAI]: 'matthewlilley/xdai-minichef',\n [ChainId.HARMONY]: 'sushiswap/harmony-minichef',\n [ChainId.ARBITRUM]: 'matthewlilley/arbitrum-minichef',\n [ChainId.CELO]: 'sushiswap/celo-minichef',\n [ChainId.MOONRIVER]: 'sushiswap/moonriver-minichef',\n}\n\nexport const miniChef = async (query, chainId = ChainId.ETHEREUM, variables = undefined) =>\n request(`${GRAPH_HOST[chainId]}/subgraphs/name/${MINICHEF[chainId]}`, query, variables)\n\nexport const MASTERCHEF_V2 = {\n [ChainId.ETHEREUM]: 'sushiswap/master-chefv2',\n}\n\nexport const masterChefV2 = async (query, chainId = ChainId.ETHEREUM, variables = undefined) =>\n request(`${GRAPH_HOST[chainId]}/subgraphs/name/${MASTERCHEF_V2[chainId]}`, query, variables)\n\nexport const MASTERCHEF_V1 = {\n [ChainId.ETHEREUM]: 'sushiswap/master-chef',\n}\n\nexport const masterChefV1 = async (query, chainId = ChainId.ETHEREUM, variables = undefined) =>\n request(`${GRAPH_HOST[chainId]}/subgraphs/name/${MASTERCHEF_V1[chainId]}`, query, variables)\n\nexport const getMasterChefV1TotalAllocPoint = async () => {\n const {\n masterChef: { totalAllocPoint },\n } = await masterChefV1(masterChefV1TotalAllocPointQuery)\n return totalAllocPoint\n}\n\nexport const getMasterChefV1SushiPerBlock = async () => {\n const {\n masterChef: { sushiPerBlock },\n } = await masterChefV1(masterChefV1SushiPerBlockQuery)\n return sushiPerBlock / 1e18\n}\n\nexport const getMasterChefV1Farms = async (variables = undefined) => {\n const { pools } = await masterChefV1(poolsQuery, undefined, variables)\n return pools\n}\n\nexport const getMasterChefV1PairAddreses = async () => {\n const { pools } = await masterChefV1(masterChefV1PairAddressesQuery)\n return pools\n}\n\nexport const getMasterChefV2Farms = async (variables = undefined) => {\n const { pools } = await masterChefV2(poolsV2Query, undefined, variables)\n\n const tokens = await getTokenSubset(ChainId.ETHEREUM, {\n tokenAddresses: Array.from(pools.map((pool) => pool.rewarder.rewardToken)),\n })\n\n return pools.map((pool) => ({\n ...pool,\n rewardToken: {\n ...tokens.find((token) => token.id === pool.rewarder.rewardToken),\n },\n }))\n}\n\nexport const getMasterChefV2PairAddreses = async () => {\n const { pools } = await masterChefV2(masterChefV2PairAddressesQuery)\n return pools\n}\n\nexport const getMiniChefFarms = async (chainId = ChainId.ETHEREUM, variables = undefined) => {\n const { pools } = await miniChef(miniChefPoolsQuery, chainId, variables)\n return pools\n}\n\nexport const getMiniChefPairAddreses = async (chainId = ChainId.ETHEREUM) => {\n console.debug('getMiniChefPairAddreses')\n const { pools } = await miniChef(miniChefPairAddressesQuery, chainId)\n return pools\n}\n","import { request } from 'graphql-request'\n\nexport async function pager(endpoint, query, variables = {}) {\n if (endpoint.includes('undefined')) return {}\n\n let data: any = {}\n let skip = 0\n let flag = true\n while (flag) {\n flag = false\n const req = await request(endpoint, query, variables)\n Object.keys(req).forEach((key) => {\n data[key] = data[key] ? [...data[key], ...req[key]] : req[key]\n })\n\n Object.values(req).forEach((entry: any) => {\n if (entry.length === 1000) flag = true\n })\n\n if (Object.keys(variables).includes('first')) break\n\n skip += 1000\n variables = { ...variables, skip }\n }\n return data\n}\n","import stringify from 'fast-json-stable-stringify'\nimport useSWR, { SWRConfiguration } from 'swr'\nimport { getBar, getBarHistory } from '../fetchers/bar'\n\ninterface useBarProps {\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useBar({ variables, shouldFetch = true, swrConfig = undefined }: useBarProps = {}) {\n const { data } = useSWR(shouldFetch ? ['bar', stringify(variables)] : null, () => getBar(variables), swrConfig)\n return data\n}\n\ninterface useBarHistoryProps {\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useBarHistory({ variables, shouldFetch = true, swrConfig = undefined }: useBarHistoryProps = {}) {\n const { data } = useSWR(\n shouldFetch ? ['barHistory', stringify(variables)] : null,\n () => getBarHistory(variables),\n swrConfig\n )\n return data\n}\n","import useSWR, { SWRConfiguration } from 'swr'\nimport { getKashiPairs, getBentoBox, getBentoStrategies } from '../fetchers/bentobox'\nimport { ChainId } from '@sushiswap/core-sdk'\nimport stringify from 'fast-json-stable-stringify'\n\ninterface useKashiPairsProps {\n chainId: ChainId\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useKashiPairs({\n chainId = ChainId.ETHEREUM,\n variables,\n shouldFetch = true,\n swrConfig = undefined,\n}: useKashiPairsProps) {\n const { data } = useSWR(\n shouldFetch ? () => ['kashiPairs', chainId, stringify(variables)] : null,\n (_, chainId) => getKashiPairs(chainId, variables),\n swrConfig\n )\n return data\n}\n\ninterface useBentoBoxProps {\n chainId: ChainId\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useBentoBox({\n chainId = ChainId.ETHEREUM,\n variables,\n shouldFetch = true,\n swrConfig,\n}: useBentoBoxProps) {\n const { data } = useSWR(\n shouldFetch ? ['bentoBox', chainId, stringify(variables)] : null,\n () => getBentoBox(chainId, variables),\n swrConfig\n )\n\n return data\n}\n\ninterface useBentoStrategiesProps {\n chainId: ChainId\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\n// subset of tokens, not strategies\nexport function useBentoStrategies({\n chainId = ChainId.ETHEREUM,\n variables,\n shouldFetch = true,\n swrConfig = undefined,\n}: useBentoStrategiesProps) {\n const { data } = useSWR(\n shouldFetch ? ['bentoStrategies', chainId, stringify(variables)] : null,\n () => getBentoStrategies(chainId, variables),\n swrConfig\n )\n\n return data as { token: string; apy: number; targetPercentage: number }[]\n}\n","import { getAverageBlockTime, getBlock, getMassBlocks } from '../fetchers'\nimport { useActiveWeb3React } from '../../../services/web3'\nimport useSWR, { SWRConfiguration } from 'swr'\nimport { useMemo } from 'react'\nimport { ChainId } from '@sushiswap/core-sdk'\nimport stringify from 'fast-json-stable-stringify'\n\ninterface useBlockProps {\n timestamp?: number\n daysAgo?: number\n chainId?: number\n shouldFetch?: boolean\n}\n\nexport function useBlock(\n { timestamp, daysAgo, chainId = ChainId.ETHEREUM, shouldFetch = true }: useBlockProps = {},\n swrConfig: SWRConfiguration = undefined\n) {\n shouldFetch = shouldFetch && !!chainId\n timestamp = timestamp\n ? String(timestamp).length !== 13\n ? Number(timestamp)\n : Math.floor(Number(timestamp) / 1000)\n : undefined\n\n timestamp = useMemo(\n () => (daysAgo ? Math.floor(Date.now() / 1000) - daysAgo * 86400 : timestamp),\n [daysAgo, timestamp]\n )\n\n const { data } = useSWR(\n shouldFetch ? ['block', chainId, timestamp] : null,\n (_, chainId, timestamp) => getBlock(chainId, timestamp),\n swrConfig\n )\n\n return data\n}\n\ninterface useMassBlocksProps {\n timestamps: number[] | string[]\n swrConfig?: SWRConfiguration\n}\n\nexport function useMassBlocks({ timestamps, swrConfig = undefined }: useMassBlocksProps) {\n const { chainId } = useActiveWeb3React()\n\n const { data } = useSWR(\n chainId ? ['massBlocks', chainId, stringify(timestamps)] : null,\n (_, chainId) => getMassBlocks(chainId, timestamps),\n swrConfig\n )\n\n return data\n}\n\nexport function useAverageBlockTime({ chainId = ChainId.ETHEREUM, swrConfig = undefined }) {\n const { data } = useSWR(\n chainId ? ['averageBlockTime', chainId] : null,\n (_, chainId) => getAverageBlockTime(chainId),\n swrConfig\n )\n return data\n}\n","import {\n getAlcxPrice,\n getAvaxPrice,\n getBundle,\n getCeloPrice,\n getCvxPrice,\n getDayData,\n getFactory,\n getLiquidityPositions,\n getMaticPrice,\n getMovrPrice,\n getMphPrice,\n getOnePrice,\n getPicklePrice,\n getRulerPrice,\n getSpellPrice,\n getStakePrice,\n getSushiPrice,\n getToken,\n getTokenDayData,\n getTokenPairs,\n getTokens,\n getTransactions,\n getTruPrice,\n getYggPrice,\n getNativePrice,\n getPairs,\n} from '../fetchers'\nimport useSWR, { SWRConfiguration } from 'swr'\nimport { ChainId } from '@sushiswap/core-sdk'\nimport { ethPriceQuery } from '../queries'\nimport { useActiveWeb3React } from '../../../services/web3'\nimport { useBlock } from './blocks'\nimport stringify from 'fast-json-stable-stringify'\n\ninterface useFactoryProps {\n chainId: number\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useFactory({\n chainId = ChainId.ETHEREUM,\n variables,\n shouldFetch = true,\n swrConfig = undefined,\n}: useFactoryProps) {\n const { data } = useSWR(\n shouldFetch ? ['factory', chainId, stringify(variables)] : null,\n () => getFactory(chainId, variables),\n swrConfig\n )\n return data\n}\n\ninterface useNativePriceProps {\n chainId: number\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useNativePrice({\n chainId = ChainId.ETHEREUM,\n variables,\n shouldFetch = true,\n swrConfig = undefined,\n}: useNativePriceProps) {\n const { data } = useSWR(\n shouldFetch ? ['nativePrice', chainId, stringify(variables)] : null,\n () => getNativePrice(chainId, variables),\n swrConfig\n )\n\n return data\n}\n\nexport function useEthPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { data } = useSWR(['ethPrice', stringify(variables)], () => getNativePrice(variables), swrConfig)\n return data\n}\n\nexport function useStakePrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { data } = useSWR(['stakePrice', stringify(variables)], () => getStakePrice(variables), swrConfig)\n return data\n}\n\nexport function useSpellPrice(swrConfig: SWRConfiguration = undefined) {\n const { data } = useSWR('spellPrice', () => getSpellPrice(), swrConfig)\n return data\n}\n\nexport function useOnePrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { data } = useSWR(['onePrice', stringify(variables)], () => getOnePrice(variables), swrConfig)\n return data\n}\n\nexport function useCeloPrice(swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const shouldFetch = chainId && chainId === ChainId.CELO\n const { data } = useSWR(shouldFetch ? 'celoPrice' : null, () => getCeloPrice(), swrConfig)\n return data\n}\n\nexport function useMovrPrice(swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const shouldFetch = chainId && chainId === ChainId.MOONRIVER\n const { data } = useSWR(shouldFetch ? 'movrPrice' : null, () => getMovrPrice(), swrConfig)\n return data\n}\n\nexport function useYggPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const { data } = useSWR(\n chainId && chainId === ChainId.ETHEREUM ? ['yggPrice', stringify(variables)] : null,\n () => getYggPrice(),\n swrConfig\n )\n return data\n}\n\nexport function useRulerPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const { data } = useSWR(\n chainId && chainId === ChainId.ETHEREUM ? ['rulerPrice', stringify(variables)] : null,\n () => getRulerPrice(variables),\n swrConfig\n )\n return data\n}\n\nexport function useTruPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const { data } = useSWR(\n chainId && chainId === ChainId.ETHEREUM ? ['truPrice', stringify(variables)] : null,\n () => getTruPrice(),\n swrConfig\n )\n return data\n}\n\nexport function useAlcxPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const shouldFetch = chainId && chainId === ChainId.ETHEREUM\n const { data } = useSWR(\n shouldFetch ? ['aclxPrice', stringify(variables)] : null,\n () => getAlcxPrice(variables),\n swrConfig\n )\n return data\n}\n\nexport function useCvxPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const shouldFetch = chainId && chainId === ChainId.ETHEREUM\n const { data } = useSWR(\n shouldFetch ? ['cvxPrice', stringify(variables)] : null,\n () => getCvxPrice(variables),\n swrConfig\n )\n return data\n}\n\nexport function usePicklePrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const { data } = useSWR(\n chainId && chainId === ChainId.ETHEREUM ? ['picklePrice', stringify(variables)] : null,\n () => getPicklePrice(),\n swrConfig\n )\n return data\n}\n\nexport function useMphPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const { data } = useSWR(\n chainId && chainId === ChainId.ETHEREUM ? ['mphPrice', stringify(variables)] : null,\n () => getMphPrice(),\n swrConfig\n )\n return data\n}\n\nexport function useAvaxPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { data } = useSWR(['avaxPrice', stringify(variables)], () => getAvaxPrice(variables), swrConfig)\n return data\n}\n\nexport function useMaticPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { data } = useSWR(['maticPrice', stringify(variables)], () => getMaticPrice(variables), swrConfig)\n return data\n}\n\nexport function useSushiPrice(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { data } = useSWR(['sushiPrice', stringify(variables)], () => getSushiPrice(variables), swrConfig)\n return data\n}\n\nexport function useBundle(variables = undefined, swrConfig: SWRConfiguration = undefined) {\n const { chainId } = useActiveWeb3React()\n const { data } = useSWR(chainId ? [chainId, ethPriceQuery, stringify(variables)] : null, () => getBundle(), swrConfig)\n return data\n}\n\ninterface useLiquidityPositionsProps {\n timestamp?: number\n block?: number\n chainId: number\n shouldFetch?: boolean\n user?: string\n}\n\nexport function useLiquidityPositions(\n { timestamp, block, chainId = ChainId.ETHEREUM, shouldFetch = true, user }: useLiquidityPositionsProps,\n swrConfig: SWRConfiguration = undefined\n) {\n const blockFetched = useBlock({ timestamp, chainId, shouldFetch: shouldFetch && !!timestamp })\n block = block ?? (timestamp ? blockFetched : undefined)\n\n shouldFetch = shouldFetch && !!chainId\n\n const variables = {\n block: block ? { number: block } : undefined,\n where: {\n user: user?.toLowerCase(),\n liquidityTokenBalance_gt: '0',\n },\n }\n\n const { data } = useSWR(\n shouldFetch ? ['liquidityPositions', chainId, stringify(variables)] : null,\n (_, chainId) => getLiquidityPositions(chainId, variables),\n swrConfig\n )\n return data\n}\n\ninterface useSushiPairsProps {\n chainId: ChainId\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useSushiPairs({\n chainId = ChainId.ETHEREUM,\n variables,\n shouldFetch = true,\n swrConfig = undefined,\n}: useSushiPairsProps) {\n const { data } = useSWR(\n shouldFetch ? ['sushiPairs', chainId, stringify(variables)] : null,\n (_, chainId) => getPairs(chainId, variables),\n swrConfig\n )\n return data\n}\n\ninterface useTokensProps {\n chainId: number\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useTokens(\n { chainId = ChainId.ETHEREUM, variables, shouldFetch = true }: useTokensProps,\n swrConfig: SWRConfiguration = undefined\n) {\n const { data } = useSWR(\n shouldFetch ? ['tokens', chainId, stringify(variables)] : null,\n (_, chainId) => getTokens(chainId, variables),\n swrConfig\n )\n return data ?? []\n}\n\ninterface useTokenDayDataProps {\n timestamp?: number\n block?: number\n chainId: number\n shouldFetch?: boolean\n token: string\n first?: number\n}\n\nexport function useTokenDayData(\n { timestamp, block, chainId = ChainId.ETHEREUM, shouldFetch = true, token, first }: useTokenDayDataProps,\n swrConfig: SWRConfiguration = undefined\n) {\n const blockFetched = useBlock({ timestamp, chainId, shouldFetch: shouldFetch && !!timestamp })\n block = block ?? (timestamp ? blockFetched : undefined)\n\n shouldFetch = shouldFetch && !!chainId\n\n const variables = {\n first: first,\n block: block ? { number: block } : undefined,\n where: {\n token: token?.toLowerCase(),\n },\n }\n\n const { data } = useSWR(\n shouldFetch ? ['tokenDayDaya', chainId, stringify(variables)] : null,\n (_, chainId) => getTokenDayData(chainId, variables),\n swrConfig\n )\n return data\n}\n\ninterface useDayDataProps {\n timestamp?: number\n block?: number\n chainId: number\n shouldFetch?: boolean\n first?: number\n}\n\nexport function useDayData(\n { timestamp, block, chainId = ChainId.ETHEREUM, shouldFetch = true, first }: useDayDataProps,\n swrConfig: SWRConfiguration = undefined\n) {\n const blockFetched = useBlock({ timestamp, chainId, shouldFetch: shouldFetch && !!timestamp })\n block = block ?? (timestamp ? blockFetched : undefined)\n\n shouldFetch = shouldFetch && !!chainId\n\n const variables = {\n first: first,\n block: block ? { number: block } : undefined,\n }\n\n const { data } = useSWR(\n shouldFetch ? ['dayData', chainId, stringify(variables)] : null,\n (_, chainId) => getDayData(chainId, variables),\n swrConfig\n )\n return data\n}\n\ninterface useTransactionsProps {\n chainId: number\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useTransactions({\n chainId = ChainId.ETHEREUM,\n variables,\n shouldFetch = true,\n swrConfig = undefined,\n}: useTransactionsProps) {\n const { data } = useSWR(\n shouldFetch ? ['transactions', chainId, stringify(variables)] : null,\n (_, chainId) => getTransactions(chainId, variables),\n swrConfig\n )\n return data\n}\n\ninterface useTokenPairsProps {\n chainId: number\n variables?: { [key: string]: any }\n shouldFetch?: boolean\n swrConfig?: SWRConfiguration\n}\n\nexport function useTokenPairs({\n chainId = ChainId.ETHEREUM,\n variables,\n shouldFetch = true,\n swrConfig = undefined,\n}: useTokenPairsProps) {\n const { data } = useSWR(\n shouldFetch ? ['tokenPairs', chainId, stringify(variables)] : null,\n (_, chainId) => getTokenPairs(chainId, variables),\n swrConfig\n )\n return data\n}\n","import {\n getMasterChefV1Farms,\n getMasterChefV1PairAddreses,\n getMasterChefV1SushiPerBlock,\n getMasterChefV1TotalAllocPoint,\n getMasterChefV2Farms,\n getMasterChefV2PairAddreses,\n getMiniChefFarms,\n getMiniChefPairAddreses,\n} from '../fetchers'\nimport { useMemo } from 'react'\nimport useSWR, { SWRConfiguration } from 'swr'\n\nimport { ChainId } from '@sushiswap/core-sdk'\nimport { Chef } from '../../../features/onsen/enum'\nimport concat from 'lodash/concat'\nimport { useActiveWeb3React } from '../../web3'\n\nexport function useMasterChefV1TotalAllocPoint(swrConfig = undefined) {\n const { chainId } = useActiveWeb3React()\n const shouldFetch = chainId && chainId === ChainId.ETHEREUM\n const { data } = useSWR(\n shouldFetch ? 'masterChefV1TotalAllocPoint' : null,\n () => getMasterChefV1TotalAllocPoint(),\n swrConfig\n )\n return data\n}\n\nexport function useMasterChefV1SushiPerBlock(swrConfig = undefined) {\n const { chainId } = useActiveWeb3React()\n const shouldFetch = chainId && chainId === ChainId.ETHEREUM\n const { data } = useSWR(\n shouldFetch ? 'masterChefV1SushiPerBlock' : null,\n () => getMasterChefV1SushiPerBlock(),\n swrConfig\n )\n return data\n}\n\ninterface useFarmsProps {\n chainId: number\n swrConfig?: SWRConfiguration\n}\n\nexport function useMasterChefV1Farms({ chainId, swrConfig = undefined }: useFarmsProps) {\n const shouldFetch = chainId && chainId === ChainId.ETHEREUM\n const { data } = useSWR(shouldFetch ? ['masterChefV1Farms'] : null, () => getMasterChefV1Farms(undefined), swrConfig)\n return useMemo(() => {\n if (!data) return []\n return data.map((data) => ({ ...data, chef: Chef.MASTERCHEF }))\n }, [data])\n}\n\nexport function useMasterChefV2Farms({ chainId, swrConfig = undefined }: useFarmsProps) {\n const shouldFetch = chainId && chainId === ChainId.ETHEREUM\n const { data } = useSWR(shouldFetch ? 'masterChefV2Farms' : null, () => getMasterChefV2Farms(), swrConfig)\n return useMemo(() => {\n if (!data) return []\n return data.map((data) => ({ ...data, chef: Chef.MASTERCHEF_V2 }))\n }, [data])\n}\n\nexport function useMiniChefFarms({ chainId, swrConfig = undefined }: useFarmsProps) {\n const shouldFetch =\n chainId &&\n [ChainId.MATIC, ChainId.XDAI, ChainId.HARMONY, ChainId.ARBITRUM, ChainId.CELO, ChainId.MOONRIVER].includes(chainId)\n const { data } = useSWR(\n shouldFetch ? ['miniChefFarms', chainId] : null,\n (_, chainId) => getMiniChefFarms(chainId),\n swrConfig\n )\n return useMemo(() => {\n if (!data) return []\n return data.map((data) => ({ ...data, chef: Chef.MINICHEF }))\n }, [data])\n}\n\nexport function useFarms({ chainId, swrConfig = undefined }: useFarmsProps) {\n const masterChefV1Farms = useMasterChefV1Farms({ chainId })\n const masterChefV2Farms = useMasterChefV2Farms({ chainId })\n const miniChefFarms = useMiniChefFarms({ chainId })\n return useMemo(\n () => concat(masterChefV1Farms, masterChefV2Farms, miniChefFarms).filter((pool) => pool && pool.pair),\n [masterChefV1Farms, masterChefV2Farms, miniChefFarms]\n )\n}\n\nexport function useMasterChefV1PairAddresses() {\n const { chainId } = useActiveWeb3React()\n const shouldFetch = chainId && chainId === ChainId.ETHEREUM\n const { data } = useSWR(shouldFetch ? ['masterChefV1PairAddresses', chainId] : null, (_) =>\n getMasterChefV1PairAddreses()\n )\n return useMemo(() => {\n if (!data) return []\n return data.map((data) => data.pair)\n }, [data])\n}\n\nexport function useMasterChefV2PairAddresses() {\n const { chainId } = useActiveWeb3React()\n const shouldFetch = chainId && chainId === ChainId.ETHEREUM\n const { data } = useSWR(shouldFetch ? ['masterChefV2PairAddresses', chainId] : null, (_) =>\n getMasterChefV2PairAddreses()\n )\n return useMemo(() => {\n if (!data) return []\n return data.map((data) => data.pair)\n }, [data])\n}\n\nexport function useMiniChefPairAddresses() {\n const { chainId } = useActiveWeb3React()\n const shouldFetch = chainId && [ChainId.MATIC, ChainId.XDAI, ChainId.HARMONY, ChainId.ARBITRUM].includes(chainId)\n const { data } = useSWR(shouldFetch ? ['miniChefPairAddresses', chainId] : null, (_, chainId) =>\n getMiniChefPairAddreses(chainId)\n )\n return useMemo(() => {\n if (!data) return []\n return data.map((data) => data.pair)\n }, [data])\n}\n\nexport function useFarmPairAddresses() {\n const masterChefV1PairAddresses = useMasterChefV1PairAddresses()\n const masterChefV2PairAddresses = useMasterChefV2PairAddresses()\n const miniChefPairAddresses = useMiniChefPairAddresses()\n return useMemo(\n () => concat(masterChefV1PairAddresses, masterChefV2PairAddresses, miniChefPairAddresses),\n [masterChefV1PairAddresses, masterChefV2PairAddresses, miniChefPairAddresses]\n )\n}\n","import gql from 'graphql-tag'\n\nconst blockFieldsQuery = gql`\n fragment blockFields on Block {\n id\n number\n timestamp\n }\n`\n\nexport const blockQuery = gql`\n query blockQuery(\n $where: Block_filter\n $orderBy: Block_orderBy! = \"timestamp\"\n $orderDirection: OrderDirection! = \"desc\"\n ) {\n blocks(first: 1, where: $where, orderBy: $orderBy, orderDirection: $orderDirection) {\n ...blockFields\n }\n }\n ${blockFieldsQuery}\n`\n\nexport const blocksQuery = gql`\n query blocksQuery(\n $first: Int! = 1000\n $skip: Int! = 0\n $where: Block_filter\n $orderBy: Block_orderBy = \"timestamp\"\n $orderDirection: OrderDirection! = \"desc\"\n ) {\n blocks(first: $first, skip: $skip, where: $where, orderBy: $orderBy, orderDirection: $orderDirection) {\n ...blockFields\n }\n }\n ${blockFieldsQuery}\n`\n\nexport const massBlocksQuery = (timestamps: number[] | string[]) =>\n gql`\n {\n ${timestamps.map(\n (timestamp) =>\n `\n block${timestamp}: blocks(first: 1, orderBy: timestamp, orderDirection: asc, where: { timestamp_gt: ${timestamp} }) {\n ...blockFields\n },\n `\n )},\n }\n ${blockFieldsQuery}\n `\n","import gql from 'graphql-tag'\n\nexport const factoryQuery = gql`\n query factoryQuery($block: Block_height) {\n factories(first: 1, block: $block) {\n id\n volumeUSD\n liquidityUSD\n }\n }\n`\n\nexport const userIdsQuery = gql`\n query userIdsQuery($first: Int! = 1000, $skip: Int! = 0) {\n users(first: $first, skip: $skip) {\n id\n }\n }\n`\nexport const uniswapUserQuery = gql`\n query uniswapUserQuery($id: String!) {\n uniswapUser: user(id: $id) {\n id\n liquidityPositions {\n id\n liquidityTokenBalance\n # historicalSnapshots {\n # id\n # reserve0\n # reserve1\n # block\n # timestamp\n # liquidityTokenBalance\n # liquidityTokenTotalSupply\n # }\n }\n }\n }\n`\n\nexport const bundleFields = gql`\n fragment bundleFields on Bundle {\n id\n ethPrice\n }\n`\n\nexport const ethPriceQuery = gql`\n query ethPriceQuery($id: Int! = 1, $block: Block_height) {\n bundles(id: $id, block: $block) {\n ...bundleFields\n }\n }\n ${bundleFields}\n`\n\nexport const tokenPriceQuery = gql`\n query tokenPriceQuery($id: String!) {\n token(id: $id) {\n id\n derivedETH\n }\n }\n`\n\nexport const dayDataFieldsQuery = gql`\n fragment dayDataFields on DayData {\n id\n date\n volumeETH\n volumeUSD\n untrackedVolume\n liquidityETH\n liquidityUSD\n txCount\n }\n`\n\n// Dashboard...\nexport const dayDatasQuery = gql`\n query dayDatasQuery($first: Int! = 1000, $date: Int! = 0, $where: DayData_filter) {\n dayDatas(first: $first, orderBy: date, orderDirection: desc, where: $where) {\n ...dayDataFields\n }\n }\n ${dayDataFieldsQuery}\n`\n\n// Pairs...\nexport const pairFieldsQuery = gql`\n fragment pairFields on Pair {\n id\n reserveUSD\n reserveETH\n volumeUSD\n untrackedVolumeUSD\n trackedReserveETH\n token0 {\n ...PairToken\n }\n token1 {\n ...PairToken\n }\n reserve0\n reserve1\n token0Price\n token1Price\n totalSupply\n txCount\n timestamp\n }\n fragment PairToken on Token {\n id\n name\n symbol\n totalSupply\n derivedETH\n }\n`\n\nexport const pairQuery = gql`\n query pairQuery($id: String!, $block: Block_height) {\n pair(id: $id, block: $block) {\n ...pairFields\n }\n }\n ${pairFieldsQuery}\n`\n\nexport const pairIdsQuery = gql`\n query pairIdsQuery($skip: Int) {\n pairs(first: 1000, skip: $skip) {\n id\n }\n }\n`\n\nexport const pairCountQuery = gql`\n query pairCountQuery {\n uniswapFactories {\n pairCount\n }\n }\n`\n\nexport const pairDayDatasQuery = gql`\n query pairDayDatasQuery($first: Int = 1000, $skip: Int, $date: Int = 0, $pairs: [Bytes]!) {\n pairDayDatas(\n first: $first\n skip: $skip\n orderBy: date\n orderDirection: desc\n where: { pair_in: $pairs, date_gt: $date }\n ) {\n date\n pair {\n id\n }\n token0 {\n derivedETH\n }\n token1 {\n derivedETH\n }\n reserveUSD\n volumeToken0\n volumeToken1\n volumeUSD\n txCount\n }\n }\n`\n\nexport const liquidityPositionsQuery = gql`\n query liquidityPositionSubsetQuery($first: Int! = 1000, $skip: Int, $where: LiquidityPosition_filter) {\n liquidityPositions(first: $first, skip: $skip, where: $where) {\n id\n liquidityTokenBalance\n user {\n id\n }\n pair {\n id\n }\n }\n }\n`\n\nexport const pairsQuery = gql`\n query pair(\n $skip: Int = 0\n $first: Int = 1000\n $where: Pair_filter\n $block: Block_height\n $orderBy: Pair_orderBy = \"trackedReserveETH\"\n $orderDirection: OrderDirection = \"desc\"\n ) {\n pairs(\n skip: $skip\n first: $first\n orderBy: $orderBy\n orderDirection: $orderDirection\n block: $block\n where: $where\n ) {\n ...pairFields\n }\n }\n ${pairFieldsQuery}\n`\n\nexport const pairsTimeTravelQuery = gql`\n query pairsTimeTravelQuery($first: Int! = 1000, $pairAddresses: [Bytes]!, $block: Block_height!) {\n pairs(\n first: $first\n block: $block\n orderBy: trackedReserveETH\n orderDirection: desc\n where: { id_in: $pairAddresses }\n ) {\n id\n reserveUSD\n trackedReserveETH\n volumeUSD\n untrackedVolumeUSD\n txCount\n }\n }\n`\n\n// Tokens...\nexport const tokenFieldsQuery = gql`\n fragment tokenFields on Token {\n id\n symbol\n name\n decimals\n totalSupply\n volume\n volumeUSD\n untrackedVolumeUSD\n txCount\n liquidity\n derivedETH\n }\n`\n\nexport const tokenQuery = gql`\n query tokenQuery($id: String!, $block: Block_height) {\n token(id: $id, block: $block) {\n ...tokenFields\n }\n }\n ${tokenFieldsQuery}\n`\n\nexport const tokenIdsQuery = gql`\n query tokenIdsQuery($skip: Int) {\n tokens(first: 1000, skip: $skip) {\n id\n }\n }\n`\n\nexport const tokenDayDatasQuery = gql`\n query tokenDayDatasQuery($first: Int! = 1000, $skip: Int, $block: Block_height, $where: TokenDayData_filter) {\n tokenDayDatas(first: $first, skip: $skip, orderBy: date, orderDirection: desc, where: $where, block: $block) {\n id\n date\n token {\n id\n }\n volumeUSD\n liquidityUSD\n priceUSD\n txCount\n }\n }\n`\n\nexport const tokenPairsQuery = gql`\n query tokenPairsQuery($id: String!, $skip: Int, $block: Block_height) {\n pairs0: pairs(\n first: 1000\n skip: $skip\n orderBy: reserveUSD\n orderDirection: desc\n where: { token0: $id }\n block: $block\n ) {\n ...pairFields\n }\n pairs1: pairs(\n first: 1000\n skip: $skip\n orderBy: reserveUSD\n orderDirection: desc\n where: { token1: $id }\n block: $block\n ) {\n ...pairFields\n }\n }\n ${pairFieldsQuery}\n`\n\nexport const tokensQuery = gql`\n query tokensQuery($first: Int! = 1000, $skip: Int, $block: Block_height, $where: Token_filter) {\n tokens(first: $first, skip: $skip, orderBy: volumeUSD, orderDirection: desc, block: $block, where: $where) {\n ...tokenFields\n dayData(first: 7, orderBy: date, orderDirection: desc) {\n id\n priceUSD\n date\n }\n }\n }\n ${tokenFieldsQuery}\n`\n\nexport const tokenSubsetQuery = gql`\n query tokenSubsetQuery(\n $first: Int! = 1000\n $skip: Int\n $tokenAddresses: [Bytes]!\n $orderBy: String! = \"id\"\n $orderDirection: String! = \"desc\"\n $block: Block_height\n ) {\n tokens(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n where: { id_in: $tokenAddresses }\n block: $block\n ) {\n ...tokenFields\n }\n }\n ${tokenFieldsQuery}\n`\n\n// Transactions...\nexport const transactionsQuery = gql`\n query transactionsQuery($first: Int! = 1000, $skip: Int, $block: Block_height, $where: Swap_filter) {\n swaps(orderBy: timestamp, orderDirection: desc, where: $where) {\n id\n timestamp\n pair {\n id\n token0 {\n symbol\n }\n token1 {\n symbol\n }\n }\n sender\n amount0In\n amount0Out\n amount1In\n amount1Out\n amountUSD\n to\n }\n mints(orderBy: timestamp, orderDirection: desc, where: $where) {\n id\n timestamp\n pair {\n id\n token0 {\n symbol\n }\n token1 {\n symbol\n }\n }\n sender\n amount0\n amount1\n amountUSD\n to\n }\n burns(orderBy: timestamp, orderDirection: desc, where: $where) {\n id\n timestamp\n pair {\n id\n token0 {\n symbol\n }\n token1 {\n symbol\n }\n }\n sender\n amount0\n amount1\n amountUSD\n to\n }\n }\n`\n","import gql from 'graphql-tag'\n\nexport const poolsQuery = gql`\n query poolsQuery(\n $first: Int! = 1000\n $skip: Int! = 0\n $orderBy: String! = \"id\"\n $orderDirection: String! = \"desc\"\n $block: Block_height\n $where: Pool_filter! = { allocPoint_gt: 0, accSushiPerShare_gt: 0 }\n ) {\n pools(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n block: $block\n where: $where\n ) {\n id\n pair\n allocPoint\n lastRewardBlock\n accSushiPerShare\n balance\n userCount\n owner {\n id\n sushiPerBlock\n totalAllocPoint\n }\n }\n }\n`\n\nexport const masterChefV1PairAddressesQuery = gql`\n query masterChefV1PairAddresses(\n $first: Int! = 1000\n $skip: Int! = 0\n $orderBy: String! = \"id\"\n $orderDirection: String! = \"desc\"\n $where: Pool_filter! = { allocPoint_gt: 0, accSushiPerShare_gt: 0 }\n ) {\n pools(first: $first, skip: $skip, orderBy: $orderBy, orderDirection: $orderDirection, where: $where) {\n id\n allocPoint\n accSushiPerShare\n pair {\n id\n }\n }\n }\n`\n\nexport const masterChefV1TotalAllocPointQuery = gql`\n query masterChefV1TotalAllocPoint($id: String! = \"0xc2edad668740f1aa35e4d8f227fb8e17dca888cd\") {\n masterChef(id: $id) {\n id\n totalAllocPoint\n }\n }\n`\n\nexport const masterChefV1SushiPerBlockQuery = gql`\n query masterChefV1SushiPerBlock($id: String! = \"0xc2edad668740f1aa35e4d8f227fb8e17dca888cd\") {\n masterChef(id: $id) {\n id\n sushiPerBlock\n }\n }\n`\n","import gql from 'graphql-tag'\n\nexport const poolsV2Query = gql`\n query poolsV2Query(\n $first: Int! = 1000\n $skip: Int! = 0\n $orderBy: String! = \"id\"\n $orderDirection: String! = \"desc\"\n ) {\n pools(first: $first, skip: $skip, orderBy: $orderBy, orderDirection: $orderDirection) {\n id\n pair\n allocPoint\n slpBalance\n masterChef {\n id\n totalAllocPoint\n }\n rewarder {\n id\n rewardToken\n rewardPerSecond\n }\n }\n }\n`\n\nexport const masterChefV2PairAddressesQuery = gql`\n query masterChefV2PairAddresses(\n $first: Int! = 1000\n $skip: Int! = 0\n $orderBy: String! = \"id\"\n $orderDirection: String! = \"desc\"\n ) {\n pools(first: $first, skip: $skip, orderBy: $orderBy, orderDirection: $orderDirection) {\n id\n allocPoint\n accSushiPerShare\n pair {\n id\n }\n }\n }\n`\n","import gql from 'graphql-tag'\n\nexport const miniChefPoolsQuery = gql`\n query miniChefPoolsQuery(\n $first: Int! = 1000\n $skip: Int! = 0\n $orderBy: String! = \"id\"\n $orderDirection: String! = \"desc\"\n $block: Block_height\n $where: Pool_filter! = { allocPoint_gt: 0, accSushiPerShare_gt: 0 }\n ) {\n pools(\n first: $first\n skip: $skip\n orderBy: $orderBy\n orderDirection: $orderDirection\n block: $block\n where: $where\n ) {\n id\n pair\n rewarder {\n id\n rewardToken\n rewardPerSecond\n }\n allocPoint\n lastRewardTime\n accSushiPerShare\n slpBalance\n userCount\n miniChef {\n id\n sushiPerSecond\n totalAllocPoint\n }\n }\n }\n`\n\nexport const miniChefPairAddressesQuery = gql`\n query miniChefPairAddresses(\n $first: Int! = 1000\n $skip: Int! = 0\n $orderBy: String! = \"id\"\n $orderDirection: String! = \"desc\"\n $where: Pool_filter! = { allocPoint_gt: 0, accSushiPerShare_gt: 0 }\n ) {\n pools(first: $first, skip: $skip, orderBy: $orderBy, orderDirection: $orderDirection, where: $where) {\n id\n allocPoint\n accSushiPerShare\n pair {\n id\n }\n }\n }\n`\n"],"names":["MAX_WIDTH","full","xl","lg","md","sm","xs","children","maxWidth","className","rest","classNames","Chef","Rewarder","PairType","THE_GRAPH","GRAPH_HOST","ChainId","barQuery","gql","barHistoriesQuery","fetcher","async","query","variables","request","getBar","bar","getBarHistory","histories","bentoTokenFieldsQuery","kashiPairFieldsQuery","kashiPairsQuery","bentoBoxQuery","bentoStrategiesQuery","BENTOBOX","chainId","pager","getKashiPairs","kashiPairs","tokens","getTokenSubset","tokenAddresses","Array","from","reduce","previousValue","currentValue","add","asset","id","collateral","Set","map","pair","token0","find","token","token1","assetAmount","Math","floor","totalAssetBase","getFraction","toString","borrowedAmount","toAmount","bentoAmount","totalBorrowElastic","toBigNumber","bentoShare","totalBorrowBase","collateralAmount","totalSupplyElastic","totalSupplyBase","totalCollateralShare","getBentoBox","bentoBoxes","getBentoStrategies","strategies","strategy","lastHarvest","previousHarvest","harvests","profitPerYear","timestamp","profit","decimals","tvl","tvlPrevious","tokenElastic","apy","isNaN","targetPercentage","Number","strategyTargetPercentage","EXCHANGE","exchange","getPairs","pairs","pairsQuery","tokenSubsetQuery","getTokens","tokensQuery","getTokenDayData","tokenDayDatas","tokenDayDatasQuery","getTokenPrice","nativePrice","getNativePrice","derivedETH","data","getBundle","undefined","bundles","ethPrice","getMaticPrice","tokenPriceQuery","getSushiPrice","getStakePrice","getOnePrice","getCeloPrice","getMovrPrice","getSpellPrice","ethPriceQuery","getDayData","dayDatas","dayDatasQuery","getFactory","factories","factoryQuery","getTransactions","swaps","transactionsQuery","getTokenPairs","pairs0","pairs1","tokenPairsQuery","BLOCKS","getBlock","blocks","blockQuery","where","timestamp_gt","timestamp_lt","number","getAverageBlockTime","now","startOfHour","Date","blocksQuery","getBlocks","getUnixTime","subHours","console","log","currentIndex","difference","averageBlockTime","length","MINICHEF","miniChef","MASTERCHEF_V2","masterChefV2","MASTERCHEF_V1","masterChefV1","getMasterChefV1TotalAllocPoint","masterChef","totalAllocPoint","masterChefV1TotalAllocPointQuery","getMasterChefV1SushiPerBlock","sushiPerBlock","masterChefV1SushiPerBlockQuery","getMasterChefV1Farms","pools","poolsQuery","getMasterChefV2Farms","poolsV2Query","pool","rewarder","rewardToken","getMiniChefFarms","miniChefPoolsQuery","endpoint","includes","skip","flag","req","Object","keys","forEach","key","values","entry","useBar","shouldFetch","swrConfig","useSWR","stringify","useBarHistory","useKashiPairs","_","useBentoBox","useBentoStrategies","useBlock","daysAgo","String","useMemo","useAverageBlockTime","useFactory","useNativePrice","useEthPrice","useStakePrice","useSpellPrice","useOnePrice","useCeloPrice","useActiveWeb3React","useMovrPrice","useMaticPrice","useSushiPrice","useSushiPairs","useTokens","useTokenDayData","block","first","blockFetched","toLowerCase","useDayData","useTransactions","useTokenPairs","useMasterChefV1TotalAllocPoint","useMasterChefV1SushiPerBlock","useFarms","masterChefV1Farms","chef","useMasterChefV1Farms","masterChefV2Farms","useMasterChefV2Farms","miniChefFarms","useMiniChefFarms","concat","filter","blockFieldsQuery","bundleFields","dayDataFieldsQuery","pairFieldsQuery","tokenFieldsQuery"],"sourceRoot":""}