@raydium-io/raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 100 kB
JavaScript
var wr=Object.create;var it=Object.defineProperty,kr=Object.defineProperties,Tr=Object.getOwnPropertyDescriptor,hr=Object.getOwnPropertyDescriptors,Ir=Object.getOwnPropertyNames,Tt=Object.getOwnPropertySymbols,Br=Object.getPrototypeOf,gn=Object.prototype.hasOwnProperty,go=Object.prototype.propertyIsEnumerable;var bo=(o,e,t)=>e in o?it(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,M=(o,e)=>{for(var t in e||(e={}))gn.call(e,t)&&bo(o,t,e[t]);if(Tt)for(var t of Tt(e))go.call(e,t)&&bo(o,t,e[t]);return o},q=(o,e)=>kr(o,hr(e));var Te=(o,e)=>{var t={};for(var i in o)gn.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&Tt)for(var i of Tt(o))e.indexOf(i)<0&&go.call(o,i)&&(t[i]=o[i]);return t};var Sr=(o,e)=>{for(var t in e)it(o,t,{get:e[t],enumerable:!0})},Po=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ir(e))!gn.call(o,r)&&r!==t&&it(o,r,{get:()=>e[r],enumerable:!(i=Tr(e,r))||i.enumerable});return o};var B=(o,e,t)=>(t=o!=null?wr(Br(o)):{},Po(e||!o||!o.__esModule?it(t,"default",{value:o,enumerable:!0}):t,o)),Kr=o=>Po(it({},"__esModule",{value:!0}),o);var vu={};Sr(vu,{DEV_FARM_LOCK_MINT:()=>Dr,DEV_FARM_LOCK_VAULT:()=>Wr,FARM_LOCK_MINT:()=>Fo,FARM_LOCK_VAULT:()=>vo,FARM_PROGRAM_TO_VERSION:()=>Bn,FARM_VERSION_TO_LEDGER_LAYOUT:()=>xt,FARM_VERSION_TO_STATE_LAYOUT:()=>Kt,Voter:()=>Ln,VoterDepositEntry:()=>zo,VoterLockup:()=>Go,VoterRegistrar:()=>Rn,VoterVotingMintConfig:()=>Uo,associatedLedgerAccountLayout:()=>Rt,calFarmRewardAmount:()=>Hi,createAssociatedLedgerAccountInstruction:()=>no,dwLayout:()=>se,farmAddRewardLayout:()=>Mt,farmLedgerLayoutV3_1:()=>Ur,farmLedgerLayoutV3_2:()=>ze,farmLedgerLayoutV5_1:()=>Gr,farmLedgerLayoutV5_2:()=>xn,farmLedgerLayoutV6_1:()=>Cn,farmRewardInfoToConfig:()=>Yi,farmRewardLayout:()=>Ot,farmRewardRestartLayout:()=>Nt,farmRewardTimeInfoLayout:()=>qo,farmStateV3Layout:()=>Sn,farmStateV5Layout:()=>Kn,farmStateV6Layout:()=>Ct,fetchMultipleFarmInfoAndUpdate:()=>Mu,getAssociatedAuthority:()=>Xi,getAssociatedLedgerAccount:()=>ye,getAssociatedLedgerPoolAccount:()=>zi,getDepositEntryIndex:()=>un,getFarmLedgerLayout:()=>cn,getFarmStateLayout:()=>gr,getRegistrarAddress:()=>tn,getTokenOwnerRecordAddress:()=>sn,getVoterAddress:()=>rn,getVoterWeightRecordAddress:()=>an,getVotingMintAuthority:()=>on,getVotingTokenMint:()=>nn,governanceCreateTokenOwnerRecord:()=>Fi,isValidFarmVersion:()=>_o,judgeFarmType:()=>Fu,makeAddNewRewardInstruction:()=>Ei,makeCreateFarmInstruction:()=>Ri,makeCreatorWithdrawFarmRewardInstruction:()=>Li,makeDepositInstructionV3:()=>Wi,makeDepositInstructionV5:()=>qi,makeDepositInstructionV6:()=>Ui,makeDepositTokenInstruction:()=>ls,makeDepositWithdrawInstruction:()=>ds,makeRestartRewardInstruction:()=>Vi,makeWithdrawInstructionV3:()=>ro,makeWithdrawInstructionV4:()=>Di,makeWithdrawInstructionV5:()=>io,makeWithdrawInstructionV6:()=>oo,makeWithdrawTokenInstruction:()=>ms,poolTypeV6:()=>Re,realFarmStateV3Layout:()=>Eo,realFarmStateV5Layout:()=>Do,realFarmV6Layout:()=>Wo,updateFarmPoolInfo:()=>Pr,validateFarmRewards:()=>Vo,voterStakeRegistryCreateDepositEntry:()=>_i,voterStakeRegistryCreateVoter:()=>vi,voterStakeRegistryDeposit:()=>Oi,voterStakeRegistryUpdateVoterWeightRecord:()=>Ni,voterStakeRegistryWithdraw:()=>Mi,withdrawRewardLayout:()=>Lt});module.exports=Kr(vu);var ho=require("@solana/web3.js"),Ue=B(require("bn.js"));var R=require("@solana/buffer-layout"),ht=R.Layout,Ao=R.Structure;var Pn=R.UInt;var wo=R.u8,J=R.u16;var It=R.u32;var Pe=R.s32;var ko=R.seq;var V=R.blob;var An=R.bits,To=R.offset;var ve=class extends ht{constructor(t,i,r){super(t,r);this.blob=V(t),this.signed=i}decode(t,i=0){let r=new Ue.default(this.blob.decode(t,i),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(t,i,r=0){return typeof t=="number"&&(t=new Ue.default(t)),this.signed&&(t=t.toTwos(this.span*8)),this.blob.encode(t.toArrayLike(Buffer,"le",this.span),i,r)}},Bt=class extends ht{constructor(t){super(8,t);this._lower=An(It(),!1),this._upper=An(It(),!1)}addBoolean(t){this._lower.fields.length<32?this._lower.addBoolean(t):this._upper.addBoolean(t)}decode(t,i=0){let r=this._lower.decode(t,i),s=this._upper.decode(t,i+this._lower.span);return M(M({},r),s)}encode(t,i,r=0){return this._lower.encode(t,i,r)+this._upper.encode(t,i,r+this._lower.span)}};function y(o){return new Pn(1,o)}function $(o){return new Pn(4,o)}function n(o){return new ve(8,!1,o)}function F(o){return new ve(16,!1,o)}function Io(o){return new ve(1,!0,o)}function Ge(o){return new ve(8,!0,o)}function Bo(o){return new ve(16,!0,o)}var rt=class extends ht{constructor(t,i,r,s){super(t.span,s);this.layout=t,this.decoder=i,this.encoder=r}decode(t,i){return this.decoder(this.layout.decode(t,i))}encode(t,i,r){return this.layout.encode(this.encoder(t),i,r)}getSpan(t,i){return this.layout.getSpan(t,i)}};function a(o){return new rt(V(32),e=>new ho.PublicKey(e),e=>e.toBuffer(),o)}function be(o){return new rt(wo(),xr,Cr,o)}function xr(o){if(o===0)return!1;if(o===1)return!0;throw new Error("Invalid bool: "+o)}function Cr(o){return o?1:0}function kn(o,e){let t=It("length"),i=P([t,h(o,To(t,-t.span),"values")]);return new rt(i,({values:r})=>r,r=>({values:r}),e)}var wn=class extends Ao{decode(e,t){return super.decode(e,t)}};function P(o,e,t){return new wn(o,e,t)}function h(o,e,t){let i,r=typeof e=="number"?e:(0,Ue.isBN)(e)?e.toNumber():new Proxy(e,{get(s,u){if(!i){let m=Reflect.get(s,"count");i=(0,Ue.isBN)(m)?m.toNumber():m,Reflect.set(s,"count",i)}return Reflect.get(s,u)},set(s,u,m){return u==="count"&&(i=m),Reflect.set(s,u,m)}});return ko(o,r,t)}var St=require("@solana/web3.js");var at=require("lodash");var Tn=class{constructor(e){this.logLevel=e.logLevel!==void 0?e.logLevel:0,this.name=e.name}set level(e){this.logLevel=e}get time(){return Date.now().toString()}get moduleName(){return this.name}isLogLevel(e){return e<=this.logLevel}error(...e){return this.isLogLevel(0)?(console.error(this.time,this.name,"sdk logger error",...e),this):this}logWithError(...e){let t=e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(", ");throw new Error(t)}warning(...e){return this.isLogLevel(1)?(console.warn(this.time,this.name,"sdk logger warning",...e),this):this}info(...e){return this.isLogLevel(2)?(console.info(this.time,this.name,"sdk logger info",...e),this):this}debug(...e){return this.isLogLevel(3)?(console.debug(this.time,this.name,"sdk logger debug",...e),this):this}},So={},Rr={};function U(o){let e=(0,at.get)(So,o);if(!e){let t=(0,at.get)(Rr,o);e=new Tn({name:o,logLevel:t}),(0,at.set)(So,o,e)}return e}var O=require("@solana/web3.js"),Ko=new O.PublicKey("EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q"),xo=new O.PublicKey("CBuCnLe26faBpcBP2fktp4rp8abpcAnTWft6ZrP5Q4T"),Co=new O.PublicKey("9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z"),hn=new O.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Xu=new O.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Lr=new O.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ro=new O.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Lo=new O.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Yu=new O.PublicKey("5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h"),Or=new O.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Oo=new O.PublicKey("CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"),Nr=new O.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Mr=new O.PublicKey("kN1kEznaF5Xbd8LYuqtEFcxzWSBk5Fv6ygX6SqEGJVy"),No=new O.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),Hu=new O.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Fr=new O.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),In=new O.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),vr=new O.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Qu=new O.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),_r=new O.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),Vr=new O.PublicKey("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Er=new O.PublicKey("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Zu=new O.PublicKey("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),$u=new O.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),ju=new O.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Ju=new O.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ec=new O.PublicKey("6s1xP3hpbAfFoNtUNF8mfHsjr2Bd97JxFJRWLbL6aHuX");var Ce={OPEN_BOOK_PROGRAM:new O.PublicKey("EoTcMgcDRTJVZDMZWBoU6rhYHZfkNTVEAfz3uUJRcYGj"),SERUM_PROGRAM_ID_V3:new O.PublicKey("Ray1111111111111111111111111111111111111111"),AMM_V4:new O.PublicKey("DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav"),AMM_STABLE:new O.PublicKey("DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m"),CLMM_PROGRAM_ID:new O.PublicKey("DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH"),CLMM_LOCK_PROGRAM_ID:new O.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),CLMM_LOCK_AUTH_ID:new O.PublicKey("6Aoh8h2Lw2m5UGxYR8AdAL87jTWYeKoxM52mJRzfYwN"),CREATE_CPMM_POOL_PROGRAM:new O.PublicKey("DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb"),CREATE_CPMM_POOL_AUTH:new O.PublicKey("CXniRufdq5xL8t8jZAPxsPZDpuudwuJSPWnbcD5Y5Nxq"),CREATE_CPMM_POOL_FEE_ACC:new O.PublicKey("3oE58BKVt8KuYkGxx8zBojugnymWmBiyafWgMrnb6eYy"),LOCK_CPMM_PROGRAM:new O.PublicKey("DRay25Usp3YJAi7beckgpGUC7mGJ2cR1AVPxhYfwVCUX"),LOCK_CPMM_AUTH:new O.PublicKey("7qWVV8UY2bRJfDLP4s37YzBPKUkVB46DStYJBpYbQzu3"),UTIL1216:O.PublicKey.default,Router:new O.PublicKey("DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd"),FARM_PROGRAM_ID_V3:new O.PublicKey("DRayWyrLmEW5KEeqs8kdTMMaBabapqagaBC7KWpGtJeZ"),FARM_PROGRAM_ID_V4:new O.PublicKey("Ray1111111111111111111111111111111111111111"),FARM_PROGRAM_ID_V5:new O.PublicKey("DRayiCGSZgku1GTK6rXD6mVDdingXy6APAH1R6R5L2LC"),FARM_PROGRAM_ID_V6:new O.PublicKey("DRayzbYakXs45ELHkzH6vC3fuhQqTAnv5A68gdFuvZyZ"),LAUNCHPAD_PROGRAM:new O.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),LAUNCHPAD_AUTH:new O.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),LAUNCHPAD_PLATFORM:new O.PublicKey("2Jx4KTDrVSdWNazuGpcA8n3ZLTRGGBDxAWhuKe2Xcj2a"),LAUNCHPAD_CONFIG:new O.PublicKey("7ZR4zD7PYfY2XxoG1Gxcy2EgEeGYrpxrwzPuwdUBssEt"),FEE_DESTINATION_ID:new O.PublicKey("9y8ENuuZ3b19quffx9hQvRVygG5ky6snHfRvGpuSfeJy"),MODEL_DATA_PUBKEY:new O.PublicKey("Ray1111111111111111111111111111111111111111")};var Mo=require("@solana/spl-token"),sc=U("Raydium_farm_config"),Fo=new St.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),vo=new St.PublicKey("FrspKwj8i3pNmKwXreTveC4fu7KL5ZbGeXdZBe2XViu1"),Dr=Mo.NATIVE_MINT,Wr=new St.PublicKey("3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX"),Kt={3:Sn,5:Kn,6:Ct},xt={3:ze,5:xn,6:Cn},_o=o=>[3,4,5,6].indexOf(o)!==-1,Vo=o=>{var u;let{version:e,rewardInfos:t,rewardTokenAccountsPublicKeys:i}=o,r=`rewardInfo:${JSON.stringify(t)}, rewardAccount:${JSON.stringify(i)}`,s={3:()=>{if(t.length!==1||i.length!==1)return`rewardInfos or rewardTokenAccounts lengths not equal 1: ${r}`},5:()=>{if(t.length!==i.length)return`rewardInfos and rewardTokenAccounts lengths not equal: ${r}`},6:()=>{if(!i.length||t.length!==i.length)return`no rewardTokenAccounts or rewardInfos and rewardTokenAccounts lengths not equal: ${r}`}};return(u=s[e])==null?void 0:u.call(s)},Re={"Standard SPL":0,"Option tokens":1},Bn={[Ko.toString()]:3,[xo.toString()]:4,[Co.toString()]:5,[hn.toString()]:6,[Ce.FARM_PROGRAM_ID_V3.toString()]:3,[Ce.FARM_PROGRAM_ID_V4.toString()]:4,[Ce.FARM_PROGRAM_ID_V5.toString()]:5,[Ce.FARM_PROGRAM_ID_V6.toString()]:6};var Rt=P([y("instruction")]),Lt=P([y("instruction")]),qr=P([n("rewardState"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardLastUpdateTime"),n("totalReward"),n("totalRewardEmissioned"),n("rewardClaimed"),n("rewardPerSecond"),F("accRewardPerShare"),a("rewardVault"),a("rewardMint"),a("rewardSender"),n("rewardType"),h(n(),15,"padding")]),Eo=P([n("state"),n("nonce"),a("lpVault"),a("rewardVault"),a(),a(),n(),n(),n("totalReward"),F("perShareReward"),n("lastSlot"),n("perSlotReward")]),Do=P([n("state"),n("nonce"),a("lpVault"),a("rewardVaultA"),n("totalRewardA"),F("perShareRewardA"),n("perSlotRewardA"),y("option"),a("rewardVaultB"),V(7),n("totalRewardB"),F("perShareRewardB"),n("perSlotRewardB"),n("lastSlot"),a()]),Wo=P([n(),n("state"),n("nonce"),n("validRewardTokenNum"),F("rewardMultiplier"),n("rewardPeriodMax"),n("rewardPeriodMin"),n("rewardPeriodExtend"),a("lpMint"),a("lpVault"),h(qr,5,"rewardInfos"),a("creator"),a(),h(n(),32,"padding")]),Sn=new Proxy(Eo,{get(o,e,t){return e==="decode"?(...i)=>{let r=o.decode(...i);return q(M({},r),{version:3,rewardInfos:[{rewardVault:r.rewardVault,totalReward:r.totalReward,perSlotReward:r.perSlotReward,perShareReward:r.perShareReward}]})}:Reflect.get(o,e,t)}}),Kn=new Proxy(Do,{get(o,e,t){return e==="decode"?(...i)=>{let r=o.decode(...i);return q(M({},r),{version:5,rewardInfos:[{rewardVault:r.rewardVaultA,totalReward:r.totalRewardA,perSlotReward:r.perSlotRewardA,perShareReward:r.perShareRewardA},{rewardVault:r.rewardVaultB,totalReward:r.totalRewardB,perSlotReward:r.perSlotRewardB,perShareReward:r.perShareRewardB}]})}:Reflect.get(o,e,t)}}),Ct=new Proxy(Wo,{get(o,e,t){return e==="decode"?(...i)=>{let r=o.decode(...i);return q(M({},r),{version:6,rewardInfos:r.rewardInfos.map(s=>{var u;return q(M({},s),{rewardType:((u=Object.entries(Re).find(m=>String(m[1])===s.rewardType.toString()))!=null?u:["Standard SPL"])[0]})})})}:Reflect.get(o,e,t)}}),qo=P([n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),Ot=P([y("instruction"),n("nonce"),h(qo,5,"rewardTimeInfo")]),Nt=P([y("instruction"),n("rewardReopenTime"),n("rewardEndTime"),n("rewardPerSecond")]),Mt=P([y("instruction"),n("isSet"),n("rewardPerSecond"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardType")]),Ur=P([n("state"),a("id"),a("owner"),n("deposited"),h(n(),1,"rewardDebts")]),ze=P([n("state"),a("id"),a("owner"),n("deposited"),h(F(),1,"rewardDebts"),n(""),n("voteLockedBalance"),h(n(),15)]),Gr=P([n("state"),a("id"),a("owner"),n("deposited"),h(n(),2,"rewardDebts")]),xn=P([n("state"),a("id"),a("owner"),n("deposited"),h(F(),2,"rewardDebts"),h(n(),17)]),Cn=P([n(),n("state"),a("id"),a("owner"),n("deposited"),h(F(),5,"rewardDebts"),h(n(),16)]),se=P([y("instruction"),n("amount")]),Uo=P([a("mint"),a("grantAuthority"),n("baselineVoteWeightScaledFactor"),n("maxExtraLockupVoteWeightScaledFactor"),n("lockupSaturationSecs"),Io("digitShift"),h(y(),7,"reserved1"),h(n(),7,"reserved2")]),Rn=P([V(8),a("governanceProgramId"),a("realm"),a("realmGoverningTokenMint"),a("realmAuthority"),h(y(),32,"reserved1"),h(Uo,4,"votingMints"),Ge("timeOffset"),y("bump"),h(y(),7,"reserved2"),h(n(),11,"reserved3")]),Go=P([Ge("startTime"),Ge("endTime"),y("kind"),h(y(),15,"reserved")]),zo=P([h(Go,1,"lockup"),n("amountDeposited_native"),n("amountInitiallyLockedNative"),be("isUsed"),be("allowClawback"),y("votingMintConfigIdx"),h(y(),29,"reserved")]),Ln=P([V(8),a("voterAuthority"),a("registrar"),h(zo,32,"deposits"),y("voterBump"),y("voterWweightRecordBump"),h(y(),94,"reserved")]);var pe=B(require("bn.js"));var Xo=require("@solana/web3.js");var Ft=require("@solana/spl-token"),On=U("Raydium_accountInfo_util");async function he(o,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:s=100}=M({batchRequest:!1},t),u=Nn(e,s),m=new Array(u.length).fill([]);if(i){let d=u.map(A=>{let g=o._buildArgs([A.map(f=>f.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:g}}),p=Nn(d,10);m=(await(await Promise.all(p.map(async A=>await o._rpcBatchRequest(A)))).flat()).map(A=>(A.error&&On.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${A.error.message}`),A.result.value.map(g=>{if(g){let{data:f,executable:S,lamports:k,owner:T,rentEpoch:K}=g;return f.length!==2&&f[1]!=="base64"&&On.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(f[0],"base64"),executable:S,lamports:k,owner:new Xo.PublicKey(T),rentEpoch:K}}return null})))}else try{m=await Promise.all(u.map(d=>o.getMultipleAccountsInfo(d,r)))}catch(d){d instanceof Error&&On.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.message}`)}return m.flat()}async function Le(o,e,t){let i=await he(o,e.map(r=>r.pubkey),t);return e.map((r,s)=>q(M({},r),{accountInfo:i[s]}))}var Me=B(require("bn.js")),Ou=B(require("decimal.js"));var jo=B(require("big.js")),mt=B(require("bn.js"));var Yo=B(require("toformat")),zr=Yo.default,ut=zr;var ct=B(require("big.js")),Qo=B(require("bn.js")),Zo=B(require("decimal.js-light"));var Xe=B(require("bn.js"));var Ho=9007199254740991;function E(o){let e=U("Raydium_parseBigNumberish");if(o instanceof Xe.default)return o;if(typeof o=="string"){if(o.match(/^-?[0-9]+$/))return new Xe.default(o);e.logWithError(`invalid BigNumberish string: ${o}`)}return typeof o=="number"?(o%1&&e.logWithError(`BigNumberish number underflow: ${o}`),(o>=Ho||o<=-Ho)&&e.logWithError(`BigNumberish number overflow: ${o}`),new Xe.default(String(o))):typeof o=="bigint"?new Xe.default(o.toString()):(e.error(`invalid BigNumberish value: ${o}`),new Xe.default(0))}var vt=U("module/fraction"),Mn=ut(ct.default),lt=ut(Zo.default),Yr={[0]:lt.ROUND_DOWN,[1]:lt.ROUND_HALF_UP,[2]:lt.ROUND_UP},Hr={[0]:ct.default.roundDown,[1]:ct.default.roundHalfUp,[2]:ct.default.roundUp},z=class{constructor(e,t=new Qo.default(1)){this.numerator=E(e),this.denominator=E(t)}get quotient(){return this.numerator.div(this.denominator)}invert(){return new z(this.denominator,this.numerator)}add(e){let t=e instanceof z?e:new z(E(e));return this.denominator.eq(t.denominator)?new z(this.numerator.add(t.numerator),this.denominator):new z(this.numerator.mul(t.denominator).add(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}sub(e){let t=e instanceof z?e:new z(E(e));return this.denominator.eq(t.denominator)?new z(this.numerator.sub(t.numerator),this.denominator):new z(this.numerator.mul(t.denominator).sub(t.numerator.mul(this.denominator)),this.denominator.mul(t.denominator))}mul(e){let t=e instanceof z?e:new z(E(e));return new z(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof z?e:new z(E(e));return new z(this.numerator.mul(t.denominator),this.denominator.mul(t.numerator))}toSignificant(e,t={groupSeparator:""},i=1){Number.isInteger(e)||vt.logWithError(`${e} is not an integer.`),e<=0&&vt.logWithError(`${e} is not positive.`),lt.set({precision:e+1,rounding:Yr[i]});let r=new lt(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return r.toFormat(r.decimalPlaces(),t)}toFixed(e,t={groupSeparator:""},i=1){return Number.isInteger(e)||vt.logWithError(`${e} is not an integer.`),e<0&&vt.logWithError(`${e} is negative.`),Mn.DP=e,Mn.RM=Hr[i]||1,new Mn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Qr=U("Raydium_amount"),$o=ut(jo.default);function Zr(o,e){let t="0",i="0";if(o.includes(".")){let r=o.split(".");r.length===2?([t,i]=r,i=i.padEnd(e,"0")):Qr.logWithError(`invalid number string, num: ${o}`)}else t=o;return[t,i.slice(0,e)||i]}var ge=class extends z{constructor(t,i,r=!0,s){let u=new mt.default(0),m=Fn.pow(new mt.default(t.decimals));if(r)u=E(i);else{let d=new mt.default(0),p=new mt.default(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[b,A]=Zr(i.toString(),t.decimals);d=E(b),p=E(A)}d=d.mul(m),u=d.add(p)}super(u,m);this.logger=U(s||"TokenAmount"),this.token=t}get raw(){return this.numerator}isZero(){return this.raw.isZero()}gt(t){return this.token.equals(t.token)||this.logger.logWithError("gt token not equals"),this.raw.gt(t.raw)}lt(t){return this.token.equals(t.token)||this.logger.logWithError("lt token not equals"),this.raw.lt(t.raw)}add(t){return this.token.equals(t.token)||this.logger.logWithError("add token not equals"),new ge(this.token,this.raw.add(t.raw))}subtract(t){return this.token.equals(t.token)||this.logger.logWithError("sub token not equals"),new ge(this.token,this.raw.sub(t.raw))}toSignificant(t=this.token.decimals,i,r=0){return super.toSignificant(t,i,r)}toFixed(t=this.token.decimals,i,r=0){return t>this.token.decimals&&this.logger.logWithError("decimals overflow"),super.toFixed(t,i,r)}toExact(t={groupSeparator:""}){return $o.DP=this.token.decimals,new $o(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};var Jo=require("@solana/web3.js"),vn=require("@solana/spl-token"),_t={chainId:101,address:Jo.PublicKey.default.toBase58(),programId:vn.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"SOL",name:"solana",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}},Ie={chainId:101,address:"So11111111111111111111111111111111111111112",programId:vn.TOKEN_PROGRAM_ID.toBase58(),decimals:9,symbol:"WSOL",name:"Wrapped SOL",logoURI:"https://img-v1.raydium.io/icon/So11111111111111111111111111111111111111112.png",tags:[],priority:2,type:"raydium",extensions:{coingeckoId:"solana"}};var Dt=require("@solana/web3.js");var H=require("@solana/web3.js"),ei=require("@solana/spl-token");function c({pubkey:o,isSigner:e=!1,isWritable:t=!0}){return{pubkey:o,isWritable:t,isSigner:e}}var _n=[c({pubkey:ei.TOKEN_PROGRAM_ID,isWritable:!1}),c({pubkey:H.SystemProgram.programId,isWritable:!1}),c({pubkey:H.SYSVAR_RENT_PUBKEY,isWritable:!1})];function ti({publicKey:o,transformSol:e}){let t=Vn(o.toString());if(t instanceof H.PublicKey)return e&&t.equals(Oe)?Ke:t;if(e&&t.toString()===Oe.toBase58())return Ke;if(typeof t=="string"){if(t===H.PublicKey.default.toBase58())return H.PublicKey.default;try{return new H.PublicKey(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Vn(o){try{return new H.PublicKey(o)}catch{return o}}var En=new H.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),_e=new H.PublicKey("SysvarRent111111111111111111111111111111111"),Dc=new H.PublicKey("SysvarC1ock11111111111111111111111111111111"),Vt=new H.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Et=new H.PublicKey("Sysvar1nstructions1111111111111111111111111"),$r=H.SystemProgram.programId,Wc=new H.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),qc=new H.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Uc=new H.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Gc=new H.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),zc=new H.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Xc=new H.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Yc=new H.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),Hc=new H.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Qc=new H.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Zc=new H.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),$c=new H.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ke=new H.PublicKey("So11111111111111111111111111111111111111112"),Oe=H.PublicKey.default;var Dn=class{constructor({mint:e,decimals:t,symbol:i,name:r,skipMint:s=!1,isToken2022:u=!1}){if(e===Oe.toBase58()||e instanceof Dt.PublicKey&&Oe.equals(e)){this.decimals=Ie.decimals,this.symbol=Ie.symbol,this.name=Ie.name,this.mint=new Dt.PublicKey(Ie.address),this.isToken2022=!1;return}this.decimals=t,this.symbol=i||e.toString().substring(0,6),this.name=r||e.toString().substring(0,6),this.mint=s?Dt.PublicKey.default:ti({publicKey:e}),this.isToken2022=u}equals(e){return this===e?!0:this.mint.equals(e.mint)}},ae=Dn;ae.WSOL=new Dn(q(M({},Ie),{mint:Ie.address}));var Wn=class{constructor({decimals:e,symbol:t="UNKNOWN",name:i="UNKNOWN"}){this.decimals=e,this.symbol=t,this.name=i}equals(e){return this===e}},Wt=Wn;Wt.SOL=new Wn(_t);var oi=B(require("bn.js"));var ni=new z(new oi.default(100)),xe=class extends z{toSignificant(e=5,t,i){return this.mul(ni).toSignificant(e,t,i)}toFixed(e=2,t,i){return this.mul(ni).toFixed(e,t,i)}};var jr=U("Raydium_price"),Ae=class extends z{constructor(t){let{baseToken:i,quoteToken:r,numerator:s,denominator:u}=t;super(s,u);this.baseToken=i,this.quoteToken=r,this.scalar=new z(qn(i.decimals),qn(r.decimals))}get raw(){return new z(this.numerator,this.denominator)}get adjusted(){return super.mul(this.scalar)}invert(){return new Ae({baseToken:this.quoteToken,quoteToken:this.baseToken,denominator:this.numerator,numerator:this.denominator})}mul(t){this.quoteToken!==t.baseToken&&jr.logWithError("mul token not equals");let i=super.mul(t);return new Ae({baseToken:this.baseToken,quoteToken:t.quoteToken,denominator:i.denominator,numerator:i.numerator})}toSignificant(t=this.quoteToken.decimals,i,r){return this.adjusted.toSignificant(t,i,r)}toFixed(t=this.quoteToken.decimals,i,r){return this.adjusted.toFixed(t,i,r)}};var Lu=require("lodash");var ea=B(require("axios"));var ii={BASE_HOST:"https://api-v3.raydium.io",OWNER_BASE_HOST:"https://owner-v1.raydium.io",SERVICE_BASE_HOST:"https://service.raydium.io",MONITOR_BASE_HOST:"https://monitor.raydium.io",SERVICE_1_BASE_HOST:"https://service-v1.raydium.io",TEMP_HOST:"https://temp-api-v1.raydium.io",SEND_TRANSACTION:"/send-transaction",FARM_ARP:"/main/farm/info",FARM_ARP_LINE:"/main/farm-apr-tv",CLMM_CONFIG:"/main/clmm-config",CPMM_CONFIG:"/main/cpmm-config",CLMM_DYNAMIC_CONFIG:"/main/clmm-dynamic-config",VERSION:"/main/version",CHECK_AVAILABILITY:"/v3/main/AvailabilityCheckAPI",RPCS:"/main/rpcs",INFO:"/main/info",STAKE_POOLS:"/main/stake-pools",CHAIN_TIME:"/main/chain-time",TOKEN_LIST:"/mint/list",MINT_INFO_ID:"/mint/ids",JUP_TOKEN_LIST:"https://lite-api.jup.ag/tokens/v2/tag?query=verified",POOL_LIST:"/pools/info/list-v2",POOL_SEARCH_BY_ID:"/pools/info/ids",POOL_SEARCH_MINT:"/pools/info/list-v2",POOL_SEARCH_LP:"/pools/info/lps",POOL_KEY_BY_ID:"/pools/key/ids",POOL_LIQUIDITY_LINE:"/pools/line/liquidity",POOL_POSITION_LINE:"/pools/line/position",FARM_INFO:"/farms/info/ids",FARM_LP_INFO:"/farms/info/lp",FARM_KEYS:"/farms/key/ids",OWNER_CREATED_FARM:"/create-pool/{owner}",OWNER_STAKE_FARMS:"/position/stake/{owner}",OWNER_LOCK_POSITION:"/position/clmm-lock/{owner}",SWAP_HOST:"https://transaction-v1.raydium.io",SWAP_COMPUTE:"/compute/",SWAP_TX:"/transaction/",MINT_PRICE:"/mint/price",MIGRATE_CONFIG:"/main/migrate-lp",PRIORITY_FEE:"/main/auto-fee",CPMM_LOCK:"https://dynamic-ipfs.raydium.io/lock/cpmm/position",LAUNCH_AUTH_HOST:"https://launch-auth-v1.raydium.io",LAUNCH_COMMENT_HOST:"hhttps://launch-forum-v1.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1.raydium.io"},Jr=q(M({},ii),{BASE_HOST:"https://api-v3-devnet.raydium.io",OWNER_BASE_HOST:"https://owner-v1-devnet.raydium.io",SWAP_HOST:"https://transaction-v1-devnet.raydium.io",CPMM_LOCK:"https://dynamic-ipfs-devnet.raydium.io/lock/cpmm/position",TEMP_HOST:"https://temp-api-v1-devnet.raydium.io",LAUNCH_AUTH_HOST:"https://launch-auth-v1-devnet.raydium.io",LAUNCH_COMMENT_HOST:"https://launch-forum-v1-devnet.raydium.io",LAUNCH_HISTORY_HOST:"https://launch-history-v1-devnet.raydium.io",LAUNCH_MINT_HOST:"https://launch-mint-v1-devnet.raydium.io"});var Dl=U("Raydium_Api");var di=require("@solana/web3.js");var Ht=require("@solana/spl-token");var X=require("@solana/web3.js"),ui=B(require("axios"));var we=require("@solana/web3.js");async function Un({connection:o,address:e,cluster:t="mainnet"}){let i=await he(o,[...new Set(e.map(s=>s.toString()))].map(s=>new we.PublicKey(s))),r={};for(let s=0;s<e.length;s++){let u=i[s],m=e[s];if(!u)continue;let d=new we.AddressLookupTableAccount({key:m,state:we.AddressLookupTableAccount.deserialize(u.data)});r[m.toString()]=d,t==="devnet"?He[m.toString()]=d:Ye[m.toString()]=d}return r}var Ye={},Gn=async o=>{let e="AcL1Vo8oy1ULiavEcjSUcwfBSForXMudcZvDZy5nzJkU";if(Ye[e])return Ye;let t=new we.PublicKey(e),i=await o.getAccountInfo(t);return i&&(Ye[e]=new we.AddressLookupTableAccount({key:t,state:we.AddressLookupTableAccount.deserialize(i.data)})),Ye},He={},zn=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(He[e])return He;let t=new we.PublicKey(e),i=await o.getAccountInfo(t);return i&&(He[e]=new we.AddressLookupTableAccount({key:t,state:we.AddressLookupTableAccount.deserialize(i.data)})),He};var j={CreateAccount:"CreateAccount",InitAccount:"InitAccount",CreateATA:"CreateATA",CloseAccount:"CloseAccount",TransferAmount:"TransferAmount",InitMint:"InitMint",MintTo:"MintTo",InitMarket:"InitMarket",Util1216OwnerClaim:"Util1216OwnerClaim",SetComputeUnitPrice:"SetComputeUnitPrice",SetComputeUnitLimit:"SetComputeUnitLimit",ClmmCreatePool:"ClmmCreatePool",ClmmOpenPosition:"ClmmOpenPosition",ClmmIncreasePosition:"ClmmIncreasePosition",ClmmDecreasePosition:"ClmmDecreasePosition",ClmmClosePosition:"ClmmClosePosition",ClmmSwapBaseIn:"ClmmSwapBaseIn",ClmmSwapBaseOut:"ClmmSwapBaseOut",ClmmInitReward:"ClmmInitReward",ClmmSetReward:"ClmmSetReward",ClmmCollectReward:"ClmmCollectReward",ClmmLockPosition:"ClmmLockPosition",ClmmHarvestLockPosition:"ClmmHarvestLockPosition",AmmV4Swap:"AmmV4Swap",AmmV4AddLiquidity:"AmmV4AddLiquidity",AmmV4RemoveLiquidity:"AmmV4RemoveLiquidity",AmmV4SimulatePoolInfo:"AmmV4SimulatePoolInfo",AmmV4SwapBaseIn:"AmmV4SwapBaseIn",AmmV4SwapBaseOut:"AmmV4SwapBaseOut",AmmV4CreatePool:"AmmV4CreatePool",AmmV4InitPool:"AmmV4InitPool",AmmV5AddLiquidity:"AmmV5AddLiquidity",AmmV5RemoveLiquidity:"AmmV5RemoveLiquidity",AmmV5SimulatePoolInfo:"AmmV5SimulatePoolInfo",AmmV5SwapBaseIn:"AmmV5SwapBaseIn",AmmV5SwapBaseOut:"AmmV5SwapBaseOut",RouteSwap:"RouteSwap",RouteSwap1:"RouteSwap1",RouteSwap2:"RouteSwap2",FarmV3Deposit:"FarmV3Deposit",FarmV3Withdraw:"FarmV3Withdraw",FarmV3CreateLedger:"FarmV3CreateLedger",FarmV4Withdraw:"FarmV4Withdraw",FarmV5Deposit:"FarmV5Deposit",FarmV5Withdraw:"FarmV5Withdraw",FarmV5CreateLedger:"FarmV5CreateLedger",FarmV6Deposit:"FarmV6Deposit",FarmV6Withdraw:"FarmV6Withdraw",FarmV6Create:"FarmV6Create",FarmV6Restart:"FarmV6Restart",FarmV6CreatorAddReward:"FarmV6CreatorAddReward",FarmV6CreatorWithdraw:"FarmV6CreatorWithdraw",CpmmCreatePool:"CpmmCreatePool",CpmmAddLiquidity:"CpmmAddLiquidity",CpmmWithdrawLiquidity:"CpmmWithdrawLiquidity",CpmmSwapBaseIn:"CpmmSwapBaseIn",CpmmSwapBaseOut:"CpmmSwapBaseOut",CpmmLockLp:"CpmmLockLp",CpmmCollectLockFee:"CpmmCollectLockFee",TransferTip:"TransferTip"};var ue=require("@solana/web3.js");var ai=require("@solana/spl-token"),ri=U("Raydium_txUtil"),si=1644;function qt(o){let e=[],t=[];return o.microLamports&&(e.push(ue.ComputeBudgetProgram.setComputeUnitPrice({microLamports:o.microLamports})),t.push(j.SetComputeUnitPrice)),o.units&&(e.push(ue.ComputeBudgetProgram.setComputeUnitLimit({units:o.units})),t.push(j.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Qe(o,e){var i,r;let t=e!=null?e:"confirmed";return(r=await((i=o.getLatestBlockhash)==null?void 0:i.call(o,{commitment:t})))==null?void 0:r.blockhash}async function Ut(o,e){return o.getSignatureStatuses([e]),new Promise((t,i)=>{let r=setTimeout(i,6e4);o.onSignature(e,s=>{if(clearTimeout(r),!s.err){t("");return}i(Object.assign(s.err,{txId:e}))},"confirmed")})}function Xn(o,e){o.length<1&&ri.logWithError(`no instructions provided: ${o.toString()}`),e.length<1&&ri.logWithError(`no signers provided:, ${e.toString()}`);let t=new ue.Transaction;t.recentBlockhash="11111111111111111111111111111111",t.feePayer=e[0],t.add(...o);try{return Buffer.from(t.serialize({verifySignatures:!1})).toString("base64").length<si}catch{return!1}}function ee(o,e){let[t,i]=ue.PublicKey.findProgramAddressSync(o,e);return{publicKey:t,nonce:i}}function dt({instructions:o,payer:e,signers:t}){return Xn(o,[e,...t])}function pt({instructions:o,payer:e,lookupTableAddressAccount:t,recentBlockhash:i=ue.Keypair.generate().publicKey.toString()}){let s=new ue.TransactionMessage({payerKey:e,recentBlockhash:i,instructions:o}).compileToV0Message(Object.values(t!=null?t:{}));try{return Buffer.from(new ue.VersionedTransaction(s).serialize()).toString("base64").length<si}catch{return!1}}var ta=o=>Buffer.isBuffer(o)?o:o instanceof Uint8Array?Buffer.from(o.buffer,o.byteOffset,o.byteLength):Buffer.from(o),na=o=>{let e=o.serialize({requireAllSignatures:!1,verifySignatures:!1});o instanceof ue.VersionedTransaction&&(e=ta(e));try{return e instanceof Buffer?e.toString("base64"):Buffer.from(e).toString("base64")}catch{return e.toString("base64")}};function Ve(o){let e=[];return o.forEach(t=>{t instanceof ue.Transaction&&(t.recentBlockhash||(t.recentBlockhash=ai.TOKEN_PROGRAM_ID.toBase58()),t.feePayer||(t.feePayer=ue.Keypair.generate().publicKey)),e.push(na(t))}),console.log("simulate tx string:",e),e}var Gt=2e3,zt=class{constructor(e){this.instructions=[];this.endInstructions=[];this.lookupTableAddress=[];this.signers=[];this.instructionTypes=[];this.endInstructionTypes=[];this.connection=e.connection,this.feePayer=e.feePayer,this.signAllTransactions=e.signAllTransactions,this.owner=e.owner,this.cluster=e.cluster,this.blockhashCommitment=e.blockhashCommitment,this.loopMultiTxStatus=!!e.loopMultiTxStatus}get AllTxData(){return{instructions:this.instructions,endInstructions:this.endInstructions,signers:this.signers,instructionTypes:this.instructionTypes,endInstructionTypes:this.endInstructionTypes,lookupTableAddress:this.lookupTableAddress}}get allInstructions(){return[...this.instructions,...this.endInstructions]}async getComputeBudgetConfig(){var i;let e=(await ui.default.get(`https://solanacompass.com/api/fees?cacheFreshTime=${3e5}`)).data,{avg:t}=(i=e==null?void 0:e[15])!=null?i:{};if(!!t)return{units:6e5,microLamports:Math.min(Math.ceil(t*1e6/6e5),25e3)}}addCustomComputeBudget(e){if(e){let{instructions:t,instructionTypes:i}=qt(e);return this.instructions.unshift(...t),this.instructionTypes.unshift(...i),!0}return!1}addTipInstruction(e){var t;return e?(this.endInstructions.push(X.SystemProgram.transfer({fromPubkey:(t=e.feePayer)!=null?t:this.feePayer,toPubkey:new X.PublicKey(e.address),lamports:BigInt(e.amount.toString())})),this.endInstructionTypes.push(j.TransferTip),!0):!1}async calComputeBudget({config:e,defaultIns:t}){try{let i=e||await this.getComputeBudgetConfig();if(this.addCustomComputeBudget(i))return;t&&this.instructions.unshift(...t)}catch{t&&this.instructions.unshift(...t)}}addInstruction({instructions:e=[],endInstructions:t=[],signers:i=[],instructionTypes:r=[],endInstructionTypes:s=[],lookupTableAddress:u=[]}){return this.instructions.push(...e),this.endInstructions.push(...t),this.signers.push(...i),this.instructionTypes.push(...r),this.endInstructionTypes.push(...s),this.lookupTableAddress.push(...u.filter(m=>m!==X.PublicKey.default.toString())),this}async versionBuild({txVersion:e,extInfo:t,lookupTableAddress:i}){return e===0?await this.buildV0(q(M({},t||{}),{lookupTableAddress:i})):this.build(t)}build(e){var i;let t=new X.Transaction;return this.allInstructions.length&&t.add(...this.allInstructions),t.feePayer=this.feePayer,((i=this.owner)==null?void 0:i.signer)&&!this.signers.some(r=>r.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer),{builder:this,transaction:t,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async r=>{var b;let{recentBlockHash:s,skipPreflight:u=!0,sendAndConfirm:m,notSendToRpc:d}=r||{},p=s!=null?s:await Qe(this.connection,this.blockhashCommitment);if(t.recentBlockhash=p,this.signers.length&&t.sign(...this.signers),Ve([t]),(b=this.owner)!=null&&b.isKeyPair)return{txId:m?await(0,X.sendAndConfirmTransaction)(this.connection,t,this.signers.find(g=>g.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:u}):await this.connection.sendRawTransaction(t.serialize(),{skipPreflight:u}),signedTx:t};if(this.signAllTransactions){let A=await this.signAllTransactions([t]);if(this.signers.length)for(let g of A)try{g.sign(...this.signers)}catch{}return{txId:d?"":await this.connection.sendRawTransaction(A[0].serialize(),{skipPreflight:u}),signedTx:A[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:e||{}}}buildMultiTx(e){var p;let{extraPreBuildData:t=[],extInfo:i}=e,{transaction:r}=this.build(i),s=t.filter(b=>b.transaction.instructions.length>0),u=[r,...s.map(b=>b.transaction)],m=[this.signers,...s.map(b=>b.signers)],d=[...this.instructionTypes,...s.map(b=>b.instructionTypes).flat()];return(p=this.owner)!=null&&p.signer&&m.forEach(b=>{b.some(A=>A.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:u,signers:m,instructionTypes:d,execute:async b=>{var K;let{sequentially:A,onTxUpdate:g,skipTxCount:f=0,recentBlockHash:S,skipPreflight:k=!0}=b||{},T=S!=null?S:await Qe(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(A){let x=[],_=0;for(let D of u){if(++_,_<=f)continue;let I=await(0,X.sendAndConfirmTransaction)(this.connection,D,this.signers.find(C=>C.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:k});x.push(I)}return{txIds:x,signedTxs:u}}return{txIds:await await Promise.all(u.map(async x=>(x.recentBlockhash=T,await this.connection.sendRawTransaction(x.serialize(),{skipPreflight:k})))),signedTxs:u}}if(this.signAllTransactions){let x=u.map((D,I)=>(D.recentBlockhash=T,m[I].length&&D.sign(...m[I]),D));Ve(x);let _=await this.signAllTransactions(x);if(A){let D=0,I=[],C=async()=>{if(!_[D])return;let L=await this.connection.sendRawTransaction(_[D].serialize(),{skipPreflight:k});I.push({txId:L,status:"sent",signedTx:_[D]}),g==null||g([...I]),D++;let N=!1,v=null,W=null,le=Q=>{v!==null&&clearInterval(v),W!==null&&this.connection.removeSignatureListener(W);let Y=I.findIndex(re=>re.txId===L);if(Y>-1){if(I[Y].status==="error"||I[Y].status==="success")return;I[Y].status=Q.err?"error":"success"}g==null||g([...I]),Q.err||C()};this.loopMultiTxStatus&&(v=setInterval(async()=>{var Q;if(N){clearInterval(v);return}try{let Y=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:1});Y&&(N=!0,clearInterval(v),le({err:((Q=Y.meta)==null?void 0:Q.err)||null}),console.log("tx status from getTransaction:",L))}catch(Y){N=!0,clearInterval(v),console.error("getTransaction timeout:",Y,L)}},Gt)),W=this.connection.onSignature(L,Q=>{if(N){this.connection.removeSignatureListener(W);return}N=!0,le(Q)},"confirmed"),this.connection.getSignatureStatus(L)};return await C(),{txIds:I.map(L=>L.txId),signedTxs:_}}else{let D=[];for(let I=0;I<_.length;I+=1){let C=await this.connection.sendRawTransaction(_[I].serialize(),{skipPreflight:k});D.push(C)}return{txIds:D,signedTxs:_}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async versionMultiBuild({extraPreBuildData:e,txVersion:t,extInfo:i}){return t===0?await this.buildV0MultiTx({extraPreBuildData:e,buildProps:i||{}}):this.buildMultiTx({extraPreBuildData:e,extInfo:i})}async buildV0(e){var k;let S=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:r,recentBlockhash:s}=S,u=Te(S,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),m=M(M({},this.cluster==="devnet"?await zn(this.connection):await Gn(this.connection)),t),d=Array.from(new Set([...i,...this.lookupTableAddress])),p=[];for(let T of d)m[T]===void 0&&p.push(new X.PublicKey(T));let b=await Un({connection:this.connection,address:p});for(let[T,K]of Object.entries(b))m[T]=K;let A=r?X.PublicKey.default.toBase58():s!=null?s:await Qe(this.connection,this.blockhashCommitment),g=new X.TransactionMessage({payerKey:this.feePayer,recentBlockhash:A,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(m));((k=this.owner)==null?void 0:k.signer)&&!this.signers.some(T=>T.publicKey.equals(this.owner.publicKey))&&this.signers.push(this.owner.signer);let f=new X.VersionedTransaction(g);return f.sign(this.signers),{builder:this,transaction:f,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var D;let{skipPreflight:K=!0,sendAndConfirm:x,notSendToRpc:_}=T||{};if(Ve([f]),(D=this.owner)!=null&&D.isKeyPair){let I=await this.connection.sendTransaction(f,{skipPreflight:K});return x&&await Ut(this.connection,I),{txId:I,signedTx:f}}if(this.signAllTransactions){let I=await this.signAllTransactions([f]);if(this.signers.length)for(let C of I)try{C.sign(this.signers)}catch{}return{txId:_?"":await this.connection.sendTransaction(I[0],{skipPreflight:K}),signedTx:I[0]}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:u||{}}}async buildV0MultiTx(e){var p;let{extraPreBuildData:t=[],buildProps:i}=e,{transaction:r}=await this.buildV0(i),s=t.filter(b=>b.builder.instructions.length>0),u=[r,...s.map(b=>b.transaction)],m=[this.signers,...s.map(b=>b.signers)],d=[...this.instructionTypes,...s.map(b=>b.instructionTypes).flat()];return(p=this.owner)!=null&&p.signer&&m.forEach(b=>{b.some(A=>A.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),u.forEach(async(b,A)=>{b.sign(m[A])}),{builder:this,transactions:u,signers:m,instructionTypes:d,buildProps:i,execute:async b=>{var k;let{sequentially:A,onTxUpdate:g,recentBlockHash:f,skipPreflight:S=!0}=b||{};if(f&&u.forEach(T=>T.message.recentBlockhash=f),Ve(u),(k=this.owner)!=null&&k.isKeyPair){if(A){let T=[];for(let K of u){let x=await this.connection.sendTransaction(K,{skipPreflight:S});await Ut(this.connection,x),T.push(x)}return{txIds:T,signedTxs:u}}return{txIds:await Promise.all(u.map(async T=>await this.connection.sendTransaction(T,{skipPreflight:S}))),signedTxs:u}}if(this.signAllTransactions){let T=await this.signAllTransactions(u);if(A){let K=0,x=[],_=async()=>{if(!T[K])return;let D=await this.connection.sendTransaction(T[K],{skipPreflight:S});x.push({txId:D,status:"sent",signedTx:T[K]}),g==null||g([...x]),K++;let I=!1,C=null,L=null,N=v=>{C!==null&&clearInterval(C),L!==null&&this.connection.removeSignatureListener(L);let W=x.findIndex(le=>le.txId===D);if(W>-1){if(x[W].status==="error"||x[W].status==="success")return;x[W].status=v.err?"error":"success"}g==null||g([...x]),v.err||_()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var v;if(I){clearInterval(C);return}try{let W=await this.connection.getTransaction(D,{commitment:"confirmed",maxSupportedTransactionVersion:1});W&&(I=!0,clearInterval(C),N({err:((v=W.meta)==null?void 0:v.err)||null}),console.log("tx status from getTransaction:",D))}catch(W){I=!0,clearInterval(C),console.error("getTransaction timeout:",W,D)}},Gt)),L=this.connection.onSignature(D,v=>{if(I){this.connection.removeSignatureListener(L);return}I=!0,N(v)},"confirmed"),this.connection.getSignatureStatus(D)};return _(),{txIds:[],signedTxs:T}}else{let K=[];for(let x=0;x<T.length;x+=1){let _=await this.connection.sendTransaction(T[x],{skipPreflight:S});K.push(_)}return{txIds:K,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var g;let A=e||{},{splitIns:t=[],computeBudgetConfig:i}=A,r=Te(A,["splitIns","computeBudgetConfig"]),s=i?qt(i):{instructions:[],instructionTypes:[]},u=this.signers.reduce((f,S)=>q(M({},f),{[S.publicKey.toBase58()]:S}),{}),m=[],d=[],p=[],b=0;if(this.allInstructions.forEach(f=>{let S=[...p,f],k=i?[...s.instructions,...S]:S,K=[...new Set(S.map(x=>x.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat()).values()].map(x=>new X.PublicKey(x));if(f!==t[b]&&p.length<12&&(dt({instructions:k,payer:this.feePayer,signers:K})||dt({instructions:S,payer:this.feePayer,signers:K})))p.push(f);else{if(p.length===0)throw Error("item ins too big");b+=f===t[b]?1:0,dt({instructions:i?[...s.instructions,...p]:[...p],payer:this.feePayer,signers:K})?m.push(new X.Transaction().add(...s.instructions,...p)):m.push(new X.Transaction().add(...p)),d.push(Array.from(new Set(p.map(x=>x.keys.filter(_=>_.isSigner).map(_=>_.pubkey.toString())).flat())).map(x=>u[x]).filter(x=>x!==void 0)),p=[f]}}),p.length>0){let S=[...new Set(p.map(k=>k.keys.filter(T=>T.isSigner).map(T=>T.pubkey.toString())).flat()).values()].map(k=>u[k]).filter(k=>k!==void 0);dt({instructions:i?[...s.instructions,...p]:[...p],payer:this.feePayer,signers:S.map(k=>k.publicKey)})?m.push(new X.Transaction().add(...s.instructions,...p)):m.push(new X.Transaction().add(...p)),d.push(S)}return m.forEach(f=>f.feePayer=this.feePayer),(g=this.owner)!=null&&g.signer&&d.forEach(f=>{f.some(S=>S.publicKey.equals(this.owner.publicKey))||f.push(this.owner.signer)}),{builder:this,transactions:m,signers:d,instructionTypes:this.instructionTypes,execute:async f=>{var D;let{sequentially:S,onTxUpdate:k,skipTxCount:T=0,recentBlockHash:K,skipPreflight:x=!0}=f||{},_=K!=null?K:await Qe(this.connection,this.blockhashCommitment);if(m.forEach(async(I,C)=>{I.recentBlockhash=_,d[C].length&&I.sign(...d[C])}),Ve(m),(D=this.owner)!=null&&D.isKeyPair){if(S){let I=0,C=[];for(let L of m){if(++I,I<=T){C.push("tx skipped");continue}let N=await(0,X.sendAndConfirmTransaction)(this.connection,L,this.signers.find(v=>v.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});C.push(N)}return{txIds:C,signedTxs:m}}return{txIds:await Promise.all(m.map(async I=>await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:x}))),signedTxs:m}}if(this.signAllTransactions){let I=await this.signAllTransactions(m.slice(T,m.length)),C=[...m.slice(0,T),...I];if(S){let L=0,N=[],v=async()=>{if(!C[L])return;L<T&&(N.push({txId:"",status:"success",signedTx:C[L]}),k==null||k([...N]),L++,v());let W=await this.connection.sendRawTransaction(C[L].serialize(),{skipPreflight:x});N.push({txId:W,status:"sent",signedTx:C[L]}),k==null||k([...N]),L++;let le=!1,Q=null,Y=null,re=Z=>{Q!==null&&clearInterval(Q),Y!==null&&this.connection.removeSignatureListener(Y);let me=N.findIndex(Be=>Be.txId===W);if(me>-1){if(N[me].status==="error"||N[me].status==="success")return;N[me].status=Z.err?"error":"success"}k==null||k([...N]),Z.err||v()};this.loopMultiTxStatus&&(Q=setInterval(async()=>{var Z;if(le){clearInterval(Q);return}try{let me=await this.connection.getTransaction(W,{commitment:"confirmed",maxSupportedTransactionVersion:1});me&&(le=!0,clearInterval(Q),re({err:((Z=me.meta)==null?void 0:Z.err)||null}),console.log("tx status from getTransaction:",W))}catch(me){le=!0,clearInterval(Q),console.error("getTransaction timeout:",me,W)}},Gt)),Y=this.connection.onSignature(W,Z=>{if(le){this.connection.removeSignatureListener(Y);return}le=!0,re(Z)},"confirmed"),this.connection.getSignatureStatus(W)};return await v(),{txIds:N.map(W=>W.txId),signedTxs:C}}else{let L=[];for(let N=0;N<C.length;N+=1){let v=await this.connection.sendRawTransaction(C[N].serialize(),{skipPreflight:x});L.push(v)}return{txIds:L,signedTxs:C}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var D;let _=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:r={},lookupTableAddress:s=[],insCountLimit:u=12}=_,m=Te(_,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),d=M(M({},this.cluster==="devnet"?await zn(this.connection):await Gn(this.connection)),r),p=Array.from(new Set([...this.lookupTableAddress,...s])),b=[];for(let I of p)d[I]===void 0&&b.push(new X.PublicKey(I));let A=await Un({connection:this.connection,address:b});for(let[I,C]of Object.entries(A))d[I]=C;let g=t?qt(t):{instructions:[],instructionTypes:[]},f=await Qe(this.connection,this.blockhashCommitment),S=this.signers.reduce((I,C)=>q(M({},I),{[C.publicKey.toBase58()]:C}),{}),k=[],T=[],K=[],x=0;if(this.allInstructions.forEach(I=>{let C=[...K,I],L=t?[...g.instructions,...C]:C;if(I!==i[x]&&K.length<u&&(pt({instructions:L,payer:this.feePayer,lookupTableAddressAccount:d})||pt({instructions:C,payer:this.feePayer,lookupTableAddressAccount:d})))K.push(I);else{if(K.length===0)throw Error("item ins too big");x+=I===i[x]?1:0;let N={};for(let v of[...new Set(p)])d[v]!==void 0&&(N[v]=d[v]);if(t&&pt({instructions:[...g.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:f})){let v=new X.TransactionMessage({payerKey:this.feePayer,recentBlockhash:f,instructions:[...g.instructions,...K]}).compileToV0Message(Object.values(d));k.push(new X.VersionedTransaction(v))}else{let v=new X.TransactionMessage({payerKey:this.feePayer,recentBlockhash:f,instructions:[...K]}).compileToV0Message(Object.values(d));k.push(new X.VersionedTransaction(v))}T.push(Array.from(new Set(K.map(v=>v.keys.filter(W=>W.isSigner).map(W=>W.pubkey.toString())).flat())).map(v=>S[v]).filter(v=>v!==void 0)),K=[I]}}),K.length>0){let C=[...new Set(K.map(L=>L.keys.filter(N=>N.isSigner).map(N=>N.pubkey.toString())).flat()).values()].map(L=>S[L]).filter(L=>L!==void 0);if(t&&pt({instructions:[...g.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:f})){let L=new X.TransactionMessage({payerKey:this.feePayer,recentBlockhash:f,instructions:[...g.instructions,...K]}).compileToV0Message(Object.values(d));k.push(new X.VersionedTransaction(L))}else{let L=new X.TransactionMessage({payerKey:this.feePayer,recentBlockhash:f,instructions:[...K]}).compileToV0Message(Object.values(d));k.push(new X.VersionedTransaction(L))}T.push(C)}return(D=this.owner)!=null&&D.signer&&T.forEach(I=>{I.some(C=>C.publicKey.equals(this.owner.publicKey))||I.push(this.owner.signer)}),k.forEach((I,C)=>{I.sign(T[C])}),{builder:this,transactions:k,buildProps:e,signers:T,instructionTypes:this.instructionTypes,execute:async I=>{var le;let{sequentially:C,onTxUpdate:L,skipTxCount:N=0,recentBlockHash:v,skipPreflight:W=!0}=I||{};if(k.map(async(Q,Y)=>{T[Y].length&&Q.sign(T[Y]),v&&(Q.message.recentBlockhash=v)}),Ve(k),(le=this.owner)!=null&&le.isKeyPair){if(C){let Q=0,Y=[];for(let re of k){if(++Q,Q<=N){console.log("skip tx: ",Q),Y.push("tx skipped");continue}let Z=await this.connection.sendTransaction(re,{skipPreflight:W});await Ut(this.connection,Z),Y.push(Z)}return{txIds:Y,signedTxs:k}}return{txIds:await Promise.all(k.map(async Q=>await this.connection.sendTransaction(Q,{skipPreflight:W}))),signedTxs:k}}if(this.signAllTransactions){let Q=await this.signAllTransactions(k.slice(N,k.length)),Y=[...k.slice(0,N),...Q];if(C){let re=0,Z=[],me=async()=>{if(!Y[re])return;if(re<N){Z.push({txId:"",status:"success",signedTx:Y[re]}),L==null||L([...Z]),re++,me();return}let Be=await this.connection.sendTransaction(Y[re],{skipPreflight:W});Z.push({txId:Be,status:"sent",signedTx:Y[re]}),L==null||L([...Z]),re++;let ot=!1,qe=null,kt=null,yo=Fe=>{qe!==null&&clearInterval(qe),kt!==null&&this.connection.removeSignatureListener(kt);let Se=Z.findIndex(Ar=>Ar.txId===Be);if(Se>-1){if(Z[Se].status==="error"||Z[Se].status==="success")return;Z[Se].status=Fe.err?"error":"success"}L==null||L([...Z]),Fe.err||me()};this.loopMultiTxStatus&&(qe=setInterval(async()=>{var Fe;if(ot){clearInterval(qe);return}try{let Se=await this.connection.getTransaction(Be,{commitment:"confirmed",maxSupportedTransactionVersion:1});Se&&(ot=!0,clearInterval(qe),yo({err:((Fe=Se.meta)==null?void 0:Fe.err)||null}),console.log("tx status from getTransaction:",Be))}catch(Se){ot=!0,clearInterval(qe),console.error("getTransaction timeout:",Se,Be)}},Gt)),kt=this.connection.onSignature(Be,Fe=>{if(ot){this.connection.removeSignatureListener(kt);return}ot=!0,yo(Fe)},"confirmed"),this.connection.getSignatureStatus(Be)};return me(),{txIds:[],signedTxs:Y}}else{let re=[];for(let Z=0;Z<Y.length;Z+=1){let me=await this.connection.sendTransaction(Y[Z],{skipPreflight:W});re.push(me)}return{txIds:re,signedTxs:Y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:m||{}}}};var Yn=(...o)=>o.map(e=>{try{return typeof e=="object"?JSON.stringify(e):e}catch{return e}}).join(", "),fe=class{constructor({scope:e,moduleName:t}){this.disabled=!1;this.scope=e,this.logger=U(t)}createTxBuilder(e){return this.scope.checkOwner(),new zt({connection:this.scope.connection,feePayer:e||this.scope.ownerPubKey,cluster:this.scope.cluster,owner:this.scope.owner,blockhashCommitment:this.scope.blockhashCommitment,loopMultiTxStatus:this.scope.loopMultiTxStatus,api:this.scope.api,signAllTransactions:this.scope.signAllTransactions})}logDebug(...e){this.logger.debug(Yn(e))}logInfo(...e){this.logger.info(Yn(e))}logAndCreateError(...e){let t=Yn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var li=require("@solana/web3.js"),ra=B(require("bn.js"));var Yt=require("@solana/spl-token");var ci=require("@solana/web3.js"),oa=B(require("bn.js"));var ia=require("@solana/spl-token");var Ze=P([a("mint"),a("owner"),n("amount"),$("delegateOption"),a("delegate"),y("state"),$("isNativeOption"),n("isNative"),n("delegatedAmount"),$("closeAuthorityOption"),a("closeAuthority")]);var Gi=require("@solana/web3.js"),ps=require("@solana/spl-token");var pi=require("@solana/web3.js"),fi=require("@solana/spl-token");function de(o,e,t){return ee([o.toBuffer(),(t!=null?t:fi.TOKEN_PROGRAM_ID).toBuffer(),e.toBuffer()],new pi.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var fs=B(require("decimal.js"));var to=require("@solana/spl-token"),rs=require("@solana/web3.js"),as=B(require("bn.js")),ss=B(require("decimal.js"));var ua=require("@solana/spl-token"),ca=require("@solana/web3.js");var sa=P([$("mintAuthorityOption"),a("mintAuthority"),n("supply"),y("decimals"),y("isInitialized"),$("freezeAuthorityOption"),a("freezeAuthority")]);var Jn=require("@solana/spl-token"),en=require("@solana/web3.js"),ns=B(require("bn.js"));var G=B(require("bn.js")),$e=new G.default(1).shln(64);var la=new G.default(1).shln(128),Hn=new G.default(1).shln(64).subn(1),ma=new G.default(1).shln(128).subn(1);var je=new G.default("4295048016"),Je=new G.default("79226673521066979257578248091"),da=new G.default("59543866431248"),pa=new G.default("184467440737095516"),fa=new G.default("15793534762490258745");var Qn=60,Id=new G.default("18446743708227953217"),ya=[{bit:0,factor:new G.default("fffcb933bd6fb800",16)},{bit:1,factor:new G.default("fff97272373d4000",16)},{bit:2,factor:new G.default("fff2e50f5f657000",16)},{bit:3,factor:new G.default("ffe5caca7e10f000",16)},{bit:4,factor:new G.default("ffcb9843d60f7000",16)},{bit:5,factor:new G.default("ff973b41fa98e800",16)},{bit:6,factor:new G.default("ff2ea16466c9b000",16)},{bit:7,factor:new G.default("fe5dee046a9a3800",16)},{bit:8,factor:new G.default("fcbe86c7900bb000",16)},{bit:9,factor:new G.default("f987a7253ac65800",16)},{bit:10,factor:new G.default("f3392b0822bb6000",16)},{bit:11,factor:new G.default("e7159475a2caf000",16)},{bit:12,factor:new G.default("d097f3bdfd2f2000",16)},{bit:13,factor:new G.default("a9f746462d9f8000",16)},{bit:14,factor:new G.default("70d869a156f31c00",16)},{bit:15,factor:new G.default("31be135f97ed3200",16)},{bit:16,factor:new G.default("9aa508b5b85a500",16)},{bit:17,factor:new G.default("5d6af8dedc582c",16)},{bit:18,factor:new G.default("2216e584f5fa",16)}];var ft=3,yi=100;var bi=10,gi=100,Qt=14;var oe=new G.default(0),et=new G.default(1),Bd=new G.default(-1);var Sd=new G.default("18446744073700000000");var ba=P([V(8),y("bump"),J("index"),a("owner"),$("protocolFeeRate"),$("tradeFeeRate"),J("tickSpacing"),$("fundFeeRate"),h($(),1),a("fundOwner"),h(n(),3)]),ga=P([$("blockTimestamp"),Ge("tickCumulative"),h(n(),4)]),Pi=P([V(8),be("initialized"),n("recentEpoch"),J("observationIndex"),a("poolId"),h(ga,yi,"observations"),h(n(),4)]),Pa=P([J("filterPeriod"),J("decayPeriod"),J("reductionFactor"),$("dynamicFeeControl"),$("maxVolatilityAccumulator"),Pe("tickSpacingIndexReference"),$("volatilityReference"),$("volatilityAccumulator"),n("lastUpdateTimestamp"),h(y(),46)]),Aa=P([y("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),F("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),a("mint"),a("vault"),a("creator"),F("growthGlobalX64")]),Zn=P([V(8),y("bump"),a("configId"),a("creator"),a("mintA"),a("mintB"),a("vaultA"),a("vaultB"),a("observationId"),y("mintDecimalsA"),y("mintDecimalsB"),J("tickSpacing"),F("liquidity"),F("sqrtPriceX64"),Pe("tickCurrent"),$(),F("feeGrowthGlobalX64A"),F("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),h(F(),4),y("status"),y("feeOn"),V(6),h(Aa,ft,"rewardInfos"),V(8*16,"tickArrayBitmap"),h(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),Pa.replicate("dynamicFeeInfo"),h(n(),46)]),wa=P([F("growthInsideLastX64"),n("rewardAmountOwed")]),ka=P([V(8),y("bump"),a("nftMint"),a("poolId"),Pe("tickLower"),Pe("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),h(wa,ft,"rewardInfos"),n("recentEpoch"),h(n(),7)]),Rd=P([V(8),y("bump"),a("poolId"),Pe("tickLower"),Pe("tickUpper"),F("liquidity"),F("feeGrowthInsideLastX64A"),F("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),h(F(),ft,"rewardGrowthInside"),n("recentEpoch"),h(n(),7)]),Ta=P([Pe("tick"),Bo("liquidityNet"),F("liquidityGross"),F("feeGrowthOutsideX64A"),F("feeGrowthOutsideX64B"),h(F(),ft,"rewardGrowthsOutsideX64"),n("orderPhase"),n("ordersAmount"),n("partFilledOrdersRemaining"),F("unfilledRatioX64"),h($(),3)]),Ai=P([V(8),a("poolId"),Pe("startTickIndex"),h(Ta,Qn,"ticks"),y("initializedTickCount"),n("recentEpoch"),h(y(),107)]),ha=P([V(8),y("bump"),h(a(),bi,"operationOwners"),h(a(),gi,"whitelistMints")]),Ia=P([V(8),a("poolId"),a("owner"),Pe("tick"),be("zeroForOne"),n("orderPhase"),n("totalAmount"),n("filledAmount"),n("settleBase"),n("settleOutput"),n("openTime"),F("unfilledRatioX64"),h(n(),4)]),wi=P([V(8),a("poolId"),V(8*8*Qt,"positiveTickArrayBitmap"),V(8*8*Qt,"negativeTickArrayBitmap")]),Ld=P([V(8),J("index"),J("filterPeriod"),J("decayPeriod"),J("reductionFactor"),$("dynamicFeeControl"),$("maxVolatilityAccumulator"),h(n(),8)]),Ba=P([V(8),a("wallet"),y("nonceIndex"),n("orderNonce"),h(n(),4)]),Od=P([n(),y("bump"),a("owner"),a("poolId"),a("positionId"),a("nftAccount"),h(n(),8)]),Sa=P([V(8),y("bump"),a("lockOwner"),a("poolId"),a("positionId"),a("nftAccount"),a("lockNftMint"),n("recentEpoch"),h(n(),8)]);var Ka=B(require("bn.js"));var Gd=Buffer.from("amm_config","utf8"),Ca=Buffer.from("pool","utf8"),Ra=Buffer.from("pool_vault","utf8"),zd=Buffer.from("pool_reward_vault","utf8"),Xd=Buffer.from("position","utf8"),Yd=Buffer.from("tick_array","utf8"),Hd=Buffer.from("operation","utf8"),Qd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Zd=Buffer.from("observation","utf8"),$d=Buffer.from("support_mint","utf8"),jd=Buffer.from("dynamic_fee_config","utf8"),Jd=Buffer.from("permission","utf8");var ep=Buffer.from("locked_position","utf8");var Ki=require("js-sha256");var ki=B(require("bn.js")),La=B(require("decimal.js"));var op=new ki.default(1).shln(256).subn(1);var Ma=B(require("bn.js"));var Oa=B(require("bn.js")),Na=B(require("decimal.js"));var _a=B(require("bn.js")),Va=B(require("decimal.js"));var za=require("@solana/web3.js"),Xa=B(require("bn.js"));var Bi=require("@solana/spl-token");var Ya=B(require("decimal.js"));var qa=B(require("bn.js"));var Da=B(require("bn.js"));var Za=B(require("bn.js"));function ie(o){let e=`global:${o}`;return Buffer.from(Ki.sha256.digest(e)).slice(0,8)}Pi.span;var jf=U("Raydium_Clmm"),Jf={createPool:ie("create_pool"),createCustomizablePool:ie("create_customizable_pool"),createPermissionedPool:ie("create_permissioned_pool"),openPositionV2:ie("open_position_v2"),openPositionWithToken22Nft:ie("open_position_with_token22_nft"),closePosition:ie("close_position"),increaseLiquidityV2:ie("increase_liquidity_v2"),decreaseLiquidityV2:ie("decrease_liquidity_v2"),initializeReward:ie("initialize_reward"),setRewardParams:ie("set_reward_params"),updateRewardInfos:ie("update_reward_infos"),collectRemainingRewards:ie("collect_remaining_rewards"),swapV2:ie("swap_v2"),openLimitOrder:ie("open_limit_order"),increaseLimitOrder:ie("increase_limit_order"),decreaseLimitOrder:ie("decrease_limit_order"),settleLimitOrder:ie("settle_limit_order"),closeLimitOrder:ie("close_limit_order")};var w=require("@solana/web3.js"),bt=B(require("bn.js")),ne=require("@solana/spl-token");function tn(o,e,t){return ee([e.toBuffer(),Buffer.from("registrar","utf8"),t.toBuffer()],o)}function nn(o,e){return ee([e.toBuffer(),Buffer.from("voting_mint_seed","utf8")],o)}function on(o,e){return ee([e.toBuffer()],o)}function rn(o,e,t){return ee([e.toBuffer(),Buffer.from("voter","utf8"),t.toBuffer()],o)}function an(o,e,t){return ee([e.toBuffer(),Buffer.from("voter-weight-record","utf8"),t.toBuffer()],o)}function sn(o,e,t,i){return ee([Buffer.from("governance","utf8"),e.toBuffer(),t.toBuffer(),i.toBuffer()],o)}var cs=U("Raydium_farm_instruction"),gt={voterStakeRegistryCreateVoter:Buffer.from([6,24,245,52,243,255,148,25]),voterStakeRegistryCreateDepositEntry:Buffer.from([185,131,167,186,159,125,19,67]),voterStakeRegistryDeposit:Buffer.from([242,35,198,137,82,225,242,182]),voterStakeRegistryWithdraw:Buffer.from([183,18,70,156,148,109,161,34]),voterStakeRegistryUpdateVoterWeightRecord:Buffer.from([45,185,3,36,109,190,115,169])};function no(o){let{version:e,id:t,ledger:i,programId:r,owner:s}=o,u={3:9,5:10}[e];u||cs.logWithError(`invalid farm pool version: ${e}`);let m=Buffer.alloc(Rt.span);Rt.encode({instruction:u},m);let d=[c({pubkey:t}),c({pubkey:i}),c({pubkey:s,isWritable:!1}),c({pubkey:w.SystemProgram.programId,isWritable:!1}),c({pubkey:w.SYSVAR_RENT_PUBKEY,isWritable:!1})];return{instruction:new w.TransactionInstruction({programId:r,keys:d,data:m}),instructionType:j.FarmV3CreateLedger}}function Ri(o){var i;let e=Buffer.alloc(Ot.span);Ot.encode({instruction:0,nonce:new bt.default(o.nonce),rewardTimeInfo:o.rewardInfoConfig},e);let t=[..._n,c({pubkey:o.farmId}),c({pubkey:o.farmAuthority,isWritable:!1}),c({pubkey:o.lpVault}),c({pubkey:o.lpMint,isWritable:!1}),c({pubkey:o.lockVault}),c({pubkey:o.lockMint,isWritable:!1}),c({pubkey:(i=o.lockUserAccount)!=null?i:Oe}),c({pubkey:o.owner,isWritable:!1,isSigner:!0})];for(let r of o.rewardInfo)t.push(c({pubkey:r.rewardMint,isWritable:!1}),c({pubkey:r.rewardVault}),c({pubkey:r.userRewardToken}));return{instruction:new w.TransactionInstruction({programId:o.programId,keys:t,data:e}),instructionType:j.FarmV6Create}}function Li(o){let e=Buffer.alloc(Lt.span);Lt.encode({instruction:5},e);let t=[c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1}),c({pubkey:o.id}),c({pubkey:o.authority,isWritable:!1}),c({pubkey:o.lpVault,isWritable:!1}),c({pubkey:o.rewardVault}),c({pubkey:o.userRewardToken}),c({pubkey:o.owner,isWritable:!1,isSigner:!0})];return{instruction:new w.TransactionInstruction({programId:o.programId,keys:t,data:e}),instructionType:j.FarmV6CreatorWithdraw}}function Oi(o,e,t,i,r,s,u,m,d,p,b,A,g){let f=P([y("depositEntryIndex"),n("amount")]),S=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1},{pubkey:ne.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:Et,isSigner:!1,isWritable:!1}],k=Buffer.alloc(f.span);f.encode({depositEntryIndex:A,amount:g},k);let T=Buffer.from([...gt.voterStakeRegistryDeposit,...k]);return new w.TransactionInstruction({keys:S,programId:o,data:T})}function Ni(o,e,t,i){let r=P([]),s=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:w.SystemProgram.programId,isSigner:!1,isWritable:!1}],u=Buffer.alloc(r.span);r.encode({},u);let m=Buffer.from([...gt.voterStakeRegistryUpdateVoterWeightRecord,...u]);return new w.TransactionInstruction({keys:s,programId:o,data:m})}function Mi(o,e,t,i,r,s,u,m,d,p,b,A,g,f,S){let k=P([y("depositEntryIndex"),n("amount")]),T=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:m,isSigner:!1,isWritable:!0},{pubkey:ne.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:g,isSigner:!1,isWritable:!1},{pubkey:Et,isSigner:!1,isWritable:!1}],K=Buffer.alloc(k.span);k.encode({depositEntryIndex:f,amount:S},K);let x=Buffer.from([...gt.voterStakeRegistryWithdraw,...K]);return new w.TransactionInstruction({keys:T,programId:o,data:x})}function Fi(o,e,t,i,r,s){let u=P([y("ins")]),m=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!0},{pubkey:w.SystemProgram.programId,isSigner:!1,isWritable:!1}],d=Buffer.alloc(u.span);return u.encode({ins:23},d),new w.TransactionInstruction({keys:m,programId:o,data:d})}function vi(o,e,t,i,r,s,u,m){let d=P([y("voterBump"),y("voterWeightRecordBump")]),p=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!0,isWritable:!0},{pubkey:w.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:_e,isSigner:!1,isWritable:!1},{pubkey:Et,isSigner:!1,isWritable:!1}],b=Buffer.alloc(d.span);d.encode({voterBump:u,voterWeightRecordBump:m},b);let A=Buffer.from([...gt.voterStakeRegistryCreateVoter,...b]);return new w.TransactionInstruction({keys:p,programId:o,data:A})}function _i(o,e,t,i,r,s,u,m,d,p,b,A){let g=P([y("depositEntryIndex"),y("kind"),y("option"),n("startTs"),$("periods"),be("allowClawback")]),f=[{pubkey:e,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:s,isSigner:!0,isWritable:!0},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:w.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:ne.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:ne.ASSOCIATED_TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1},{pubkey:_e,isSigner:!1,isWritable:!1}],S=Buffer.alloc(g.span);g.encode({depositEntryIndex:m,kind:d,option:p===void 0?0:1,startTs:p,periods:b,allowClawback:A},S);let k=Buffer.from([...gt.voterStakeRegistryCreateDepositEntry,...S]);return new w.TransactionInstruction({keys:f,programId:o,data:k})}async function ls({connection:o,programId:e,governanceProgramId:t,voteWeightAddinProgramId:i,realm:r,communityTokenMint:s,owner:u,poolId:m,tokenProgram:d}){let p=tn(i,r,s).publicKey,b=ye({programId:e,poolId:m,owner:u,version:3}),A=await o.getAccountInfo(b);if(A===null)throw Error("user is not staker");let g=ze.decode(A.data),f=g.deposited.sub(g.voteLockedBalance);if(console.log("amount",f.toString()),f.eq(new bt.default(0)))throw Error("user do not has new stake amount");let S=nn(e,m).publicKey,k=on(e,m).publicKey,{publicKey:T,nonce:K}=rn(i,p,u),x=de(T,S,d).publicKey,{publicKey:_,nonce:D}=an(i,p,u),I=sn(t,r,s,u).publicKey,C=[],L=de(u,S,d).publicKey;if(await o.getAccountInfo(L)===null&&C.push((0,ne.createAssociatedTokenAccountIdempotentInstruction)(u,L,u,S)),await o.getAccountInfo(T)===null){let Q=Fi(t,r,u,s,u,I);C.push(Q,vi(i,p,T,_,u,u,K,D))}let{index:W,isInit:le}=await un(o,p,T,S);return le||C.push(_i(i,p,T,x,u,u,S,W,0,void 0,0,!1)),C.push(Oi(i,p,T,x,L,u,b,m,S,k,e,W,f),Ni(i,p,T,_)),C}async function ms({connection:o,programId:e,governanceProgramId:t,voteWeightAddinProgramId:i,realm:r,communityTokenMint:s,owner:u,poolId:m,tokenProgram:d}){let p=tn(i,r,s).publicKey,b=ye({programId:e,poolId:m,owner:u,version:3}),A=await o.getAccountInfo(b);if(A===null)throw Error("user is not staker");let g=ze.decode(A.data);if(g.voteLockedBalance.eq(new bt.default(0)))throw Error("user has vote locked balance = 0");let f=nn(e,m).publicKey,S=on(e,m).publicKey,{publicKey:k}=rn(i,p,u),T=de(k,f,d).publicKey,{publicKey:K}=an(i,p,u),x=sn(t,r,s,u).publicKey,_=[],{index:D,isInit:I}=await un(o,p,k,f);if(!I)throw Error("deposit entry index check error");return _.push(Mi(i,p,k,u,x,K,T,de(u,f,d).publicKey,b,m,f,S,e,D,g.voteLockedBalance)),_}function Vi({payer:o,rewardVault:e,userRewardTokenPub:t,farmKeys:i,rewardInfo:r}){let s=Buffer.alloc(Nt.span);Nt.encode({instruction:3,rewardReopenTime:E(r.openTime),rewardEndTime:E(r.endTime),rewardPerSecond:E(r.perSecond)},s);let u=[c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1}),c({pubkey:i.id}),c({pubkey:i.lpVault,isWritable:!1}),c({pubkey:e}),c({pubkey:t}),c({pubkey:o,isWritable:!1,isSigner:!0})];return new w.TransactionInstruction({programId:i.programId,keys:u,data:s})}function Ei({payer:o,userRewardTokenPub:e,farmKeys:t,rewardVault:i,rewardInfo:r}){let s=Buffer.alloc(Mt.span);Mt.encode({instruction:4,isSet:new bt.default(1),rewardPerSecond:E(r.perSecond),rewardOpenTime:E(r.openTime),rewardEndTime:E(r.endTime),rewardType:E(Re[r.rewardType])},s);let u=[..._n,c({pubkey:t.id}),c({pubkey:t.authority,isWritable:!1}),c({pubkey:r.mint,isWritable:!1}),c({pubkey:i}),c({pubkey:e}),c({pubkey:o,isWritable:!1,isSigner:!0})];return new w.TransactionInstruction({programId:t.programId,keys:u,data:s})}function ds(o){let{farmInfo:e,farmKeys:t,version:i,lpAccount:r,rewardAccounts:s,owner:u,instruction:m,amount:d,deposit:p}=o,[b,A]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],g=ye({programId:b,poolId:A,owner:u,version:i}),f=Buffer.alloc(se.span);se.encode({instruction:m,amount:d},f);let S=i===6?[c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1}),...p?[c({pubkey:w.SystemProgram.programId,isWritable:!1})]:[],c({pubkey:A}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:new w.PublicKey(t.lpVault)}),c({pubkey:g}),c({pubkey:u,isWritable:!1,isSigner:!0}),c({pubkey:r})]:[c({pubkey:A}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:g}),c({pubkey:u,isWritable:!1,isSigner:!0}),c({pubkey:r}),c({pubkey:new w.PublicKey(t.lpVault)}),c({pubkey:s[0]}),c({pubkey:new w.PublicKey(t.rewardInfos[0].vault)}),c({pubkey:w.SYSVAR_CLOCK_PUBKEY,isWritable:!1}),c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1})];if(i===5)for(let k=1;k<t.rewardInfos.length;k++)S.push(c({pubkey:s[k]})),S.push(c({pubkey:new w.PublicKey(t.rewardInfos[k].vault)}));if(i===6)for(let k=0;k<t.rewardInfos.length;k++)S.push(c({pubkey:new w.PublicKey(t.rewardInfos[k].vault)})),S.push(c({pubkey:s[k]}));return new w.TransactionInstruction({programId:b,keys:S,data:f})}function oo(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u}=o,[m,d]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],p=ye({programId:m,poolId:d,owner:s,version:6}),b=Buffer.alloc(se.span);se.encode({instruction:2,amount:E(u)},b);let A=[c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1}),c({pubkey:d}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:new w.PublicKey(t.lpVault)}),c({pubkey:p}),c({pubkey:s,isWritable:!1,isSigner:!0}),c({pubkey:i})];for(let g=0;g<t.rewardInfos.length;g++)A.push(c({pubkey:new w.PublicKey(t.rewardInfos[g].vault)})),A.push(c({pubkey:r[g]}));return new w.TransactionInstruction({programId:m,keys:A,data:b})}function io(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:m}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],b=ye({programId:d,poolId:p,owner:s,version:5}),A=Buffer.alloc(se.span);se.encode({instruction:12,amount:E(u)},A);let g=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:b}),c({pubkey:s,isWritable:!1,isSigner:!0}),c({pubkey:i}),c({pubkey:new w.PublicKey(t.lpVault)}),c({pubkey:r[0]}),c({pubkey:new w.PublicKey(t.rewardInfos[0].vault)}),c({pubkey:w.SYSVAR_CLOCK_PUBKEY,isWritable:!1}),c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1})];for(let f=1;f<t.rewardInfos.length;f++)g.push(c({pubkey:r[f]})),g.push(c({pubkey:new w.PublicKey(t.rewardInfos[f].vault)}));if(m)for(let f of m)g.push(c({pubkey:f}));return new w.TransactionInstruction({programId:d,keys:g,data:A})}function Di(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:m}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],b=P([y("instruction"),n("amount")]),A=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:m[0]}),c({pubkey:s,isSigner:!0,isWritable:!1}),c({pubkey:i}),c({pubkey:new w.PublicKey(t.lpVault)}),c({pubkey:r[0]}),c({pubkey:new w.PublicKey(t.rewardInfos[0].vault)}),c({pubkey:w.SYSVAR_CLOCK_PUBKEY,isWritable:!1}),c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1}),c({pubkey:r[1]}),c({pubkey:new w.PublicKey(t.rewardInfos[1].vault)})],g=Buffer.alloc(b.span);return b.encode({instruction:2,amount:u},g),new w.TransactionInstruction({keys:A,programId:d,data:g})}function ro(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:m}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],b=ye({programId:d,poolId:p,owner:s,version:3}),A=Buffer.alloc(se.span);se.encode({instruction:11,amount:E(u)},A);let g=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:b}),c({pubkey:s,isWritable:!1,isSigner:!0}),c({pubkey:i}),c({pubkey:new w.PublicKey(t.lpVault)}),c({pubkey:r[0]}),c({pubkey:new w.PublicKey(t.rewardInfos[0].vault)}),c({pubkey:w.SYSVAR_CLOCK_PUBKEY,isWritable:!1}),c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1})];if(m)for(let f of m)g.push(c({pubkey:f}));return new w.TransactionInstruction({programId:d,keys:g,data:A})}function Wi(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:m}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],b=ye({programId:d,poolId:p,owner:s,version:3}),A=Buffer.alloc(se.span);se.encode({instruction:10,amount:E(u)},A);let g=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:b}),c({pubkey:s,isWritable:!1,isSigner:!0}),c({pubkey:i}),c({pubkey:new w.PublicKey(t.lpVault)}),c({pubkey:r[0]}),c({pubkey:new w.PublicKey(t.rewardInfos[0].vault)}),c({pubkey:w.SYSVAR_CLOCK_PUBKEY,isWritable:!1}),c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1})];if(m)for(let f of m)g.push(c({pubkey:f}));return new w.TransactionInstruction({programId:d,keys:g,data:A})}function qi(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:m}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],b=ye({programId:d,poolId:p,owner:s,version:5}),A=Buffer.alloc(se.span);se.encode({instruction:11,amount:E(u)},A);let g=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:b}),c({pubkey:s,isWritable:!1,isSigner:!0}),c({pubkey:i}),c({pubkey:new w.PublicKey(t.lpVault)}),c({pubkey:r[0]}),c({pubkey:new w.PublicKey(t.rewardInfos[0].vault)}),c({pubkey:w.SYSVAR_CLOCK_PUBKEY,isWritable:!1}),c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1})];for(let f=1;f<t.rewardInfos.length;f++)g.push(c({pubkey:r[f]})),g.push(c({pubkey:new w.PublicKey(t.rewardInfos[f].vault)}));if(m)for(let f of m)g.push(c({pubkey:f}));return new w.TransactionInstruction({programId:d,keys:g,data:A})}function Ui(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u}=o,[m,d]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],p=ye({programId:m,poolId:d,owner:s,version:6}),b=Buffer.alloc(se.span);se.encode({instruction:1,amount:E(u)},b);let A=[c({pubkey:ne.TOKEN_PROGRAM_ID,isWritable:!1}),c({pubkey:w.SystemProgram.programId,isWritable:!1}),c({pubkey:d}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:new w.PublicKey(t.lpVault)}),c({pubkey:p}),c({pubkey:s,isWritable:!1,isSigner:!0}),c({pubkey:i})];for(let g=0;g<t.rewardInfos.length;g++)A.push(c({pubkey:new w.PublicKey(t.rewardInfos[g].vault)})),A.push(c({pubkey:r[g]}));return new w.TransactionInstruction({programId:m,keys:A,data:b})}var ys=B(require("bn.js"));var Gs=require("@solana/web3.js"),dn=require("@solana/spl-token");var bs=B(require("bn.js"));var ao=B(require("bn.js")),gs=new ao.default(25),Ps=new ao.default(1e4);var ji=require("@solana/spl-token"),ln=require("@solana/web3.js");var Qi=require("@solana/web3.js"),Zi=B(require("bn.js"));function As(o){return typeof o=="object"&&o!==null&&![ae,ge,Qi.PublicKey,z,Zi.default,Ae,xe].some(e=>typeof e=="object"&&o instanceof e)}function De(o){return typeof o=="string"?Vn(o):Array.isArray(o)?o.map(e=>De(e)):As(o)?Object.fromEntries(Object.entries(o).map(([e,t])=>[e,De(t)])):o}var Ss=B(require("bn.js"));var ws=P([y("instruction"),n("amountIn"),n("minAmountOut")]),ks=P([y("instruction"),n("maxAmountIn"),n("amountOut")]),hb=P([y("instruction"),y("nonce")]),Ts=P([y("instruction"),y("nonce"),n("startTime")]),$i=P([n("status"),n("nonce"),n("maxOrder"),n("depth"),n("baseDecimal"),n("quoteDecimal"),n("state"),n("resetFlag"),n("minSize"),n("volMaxCutRatio"),n("amountWaveRatio"),n("baseLotSize"),n("quoteLotSize"),n("minPriceMultiplier"),n("maxPriceMultiplier"),n("systemDecimalValue"),n("minSeparateNumerator"),n("minSeparateDenominator"),n("tradeFeeNumerator"),n("tradeFeeDenominator"),n("pnlNumerator"),n("pnlDenominator"),n("swapFeeNumerator"),n("swapFeeDenominator"),n("baseNeedTakePnl"),n("quoteNeedTakePnl"),n("quoteTotalPnl"),n("baseTotalPnl"),n("poolOpenTime"),n("punishPcAmount"),n("punishCoinAmount"),n("orderbookToInitTime"),F("swapBaseInAmount"),F("swapQuoteOutAmount"),n("swapBase2QuoteFee"),F("swapQuoteInAmount"),F("swapBaseOutAmount"),n("swapQuote2BaseFee"),a("baseVault"),a("quoteVault"),a("baseMint"),a("quoteMint"),a("lpMint"),a("openOrders"),a("marketId"),a("marketProgramId"),a("targetOrders"),a("withdrawQueue"),a("lpVault"),a("owner"),n("lpReserve"),h(n(),3,"padding")]),Ib=P([n("accountType"),n("status"),n("nonce"),n("maxOrder"),n("depth"),n("baseDecimal"),n("quoteDecimal"),n("state"),n("resetFlag"),n("minSize"),n("volMaxCutRatio"),n("amountWaveRatio"),n("baseLotSize"),n("quoteLotSize"),n("minPriceMultiplier"),n("maxPriceMultiplier"),n("systemDecimalsValue"),n("abortTradeFactor"),n("priceTickMultiplier"),n("priceTick"),n("minSeparateNumerator"),n("minSeparateDenominator"),n("tradeFeeNumerator"),n("tradeFeeDenominator"),n("pnlNumerator"),n("pnlDenominator"),n("swapFeeNumerator"),n("swapFeeDenominator"),n("baseNeedTakePnl"),n("quoteNeedTakePnl"),n("quoteTotalPnl"),n("baseTotalPnl"),n("poolOpenTime"),n("punishPcAmount"),n("punishCoinAmount"),n("orderbookToInitTime"),F("swapBaseInAmount"),F("swapQuoteOutAmount"),F("swapQuoteInAmount"),F("swapBaseOutAmount"),n("swapQuote2BaseFee"),n("swapBase2QuoteFee"),a("baseVault"),a("quoteVault"),a("baseMint"),a("quoteMint"),a("lpMint"),a("modelDataAccount"),a("openOrders"),a("marketId"),a("marketProgramId"),a("targetOrders"),a("owner"),h(n(),64,"padding")]),hs=P([y("instruction"),n("baseAmountIn"),n("quoteAmountIn"),n("fixedSide"),n("otherAmountMin")]),Is=P([y("instruction"),n("lpAmount"),n("baseAmountMin"),n("quoteAmountMin")]);var Bs=P([n("fee")]);var Mb=U("Raydium_liquidity_instruction");var Ks=5e4,xs=P([n("x"),n("y"),n("price")]),Vb=P([n("accountType"),n("status"),n("multiplier"),n("validDataCount"),h(xs,Ks,"DataElement")]);var Rs=require("@solana/web3.js"),Ls=B(require("decimal.js")),Os=require("@solana/spl-token");var Cs=require("@solana/web3.js");var Ub=U("Raydium_liquidity_serum");var zs=B(require("bn.js")),Xs=B(require("decimal.js"));var vs=require("@solana/spl-token"),_s=require("@solana/web3.js"),Vs=B(require("bn.js"));var mn=require("@solana/web3.js"),Ji=require("@solana/spl-token");function Ns(o="accountFlags"){let e=new Bt(o);return e.addBoolean("initialized"),e.addBoolean("market"),e.addBoolean("openOrders"),e.addBoolean("requestQueue"),e.addBoolean("eventQueue"),e.addBoolean("bids"),e.addBoolean("asks"),e}var Ms=P([V(5),Ns("accountFlags"),a("ownAddress"),n("vaultSignerNonce"),a("baseMint"),a("quoteMint"),a("baseVault"),n("baseDepositsTotal"),n("baseFeesAccrued"),a("quoteVault"),n("quoteDepositsTotal"),n("quoteFeesAccrued"),n("quoteDustThreshold"),a("requestQueue"),a("eventQueue"),a("bids"),a("asks"),n("baseLotSize"),n("quoteLotSize"),n("feeRateBps"),n("referrerRebatesAccrued"),V(7)]);var eu=require("@solana/web3.js"),Pt=require("@solana/spl-token");var Qs=B(require("bn.js"));var er=B(require("bn.js"));var rP=new er.default(0);var Ys=B(require("bn.js"));var tr=B(require("bn.js")),jt=new tr.default(1e6);var tu=B(require("bn.js")),nu=B(require("decimal.js"));var pn=require("@solana/web3.js"),so=require("@solana/spl-token");var AP=Buffer.from("vault_and_lp_mint_auth_seed","utf8"),wP=Buffer.from("amm_config","utf8"),kP=Buffer.from("pool","utf8"),TP=Buffer.from("pool_lp_mint","utf8"),hP=Buffer.from("pool_vault","utf8"),IP=Buffer.from("observation","utf8"),BP=Buffer.from("permission","utf8"),SP=Buffer.from("support_mint","utf8"),KP=Buffer.from("creator_fee_share","utf8");var xP=Buffer.from("locked_liquidity","utf8");var DP=U("Raydium_cpmm"),WP={initialize:[175,175,109,31,13,152,155,237],deposit:[242,35,198,137,82,225,242,182],withdraw:[183,18,70,156,148,109,161,34],swapBaseInput:[143,190,90,218,196,30,51,222],swapBaseOutput:[55,217,98,86,163,74,180,173],lockCpLiquidity:[216,157,29,78,38,51,31,26],collectCpFee:[8,30,51,199,209,184,247,133],createPermissionPda:Buffer.from([135,136,2,216,137,169,181,202]),closePermissionPda:Buffer.from([156,84,32,118,69,135,70,123]),initializeWithPermission:Buffer.from([63,55,254,65,49,178,89,121]),collectCreatorFee:Buffer.from([20,22,86,123,198,28,219,132]),collectCreatorFeePermissionless:Buffer.from([202,202,34,83,226,122,145,229])};var $s=P([V(8),y("bump"),be("disableCreatePool"),J("index"),n("tradeFeeRate"),n("protocolFeeRate"),n("fundFeeRate"),n("createPoolFee"),a("protocolOwner"),a("fundOwner"),n("creatorFeeRate"),n("creatorFeeShareRate"),h(n(),14)]),nr=P([V(8),a("configId"),a("poolCreator"),a("vaultA"),a("vaultB"),a("mintLp"),a("mintA"),a("mintB"),a("mintProgramA"),a("mintProgramB"),a("observationId"),y("bump"),y("status"),y("lpDecimals"),y("mintDecimalA"),y("mintDecimalB"),n("lpAmount"),n("protocolFeesMintA"),n("protocolFeesMintB"),n("fundFeesMintA"),n("fundFeesMintB"),n("openTime"),n("epoch"),y("feeOn"),be("enableCreatorFee"),h(y(),6),n("creatorFeesMintA"),n("creatorFeesMintB"),h(n(),28)]),GP=P([V(8),a("configId"),h(n(),30)]),zP=P([V(8),y("bump"),a("creator"),a("ammConfig"),n("shareRate"),h(n(),8)]);var mr=require("@solana/web3.js"),nt=require("@solana/spl-token"),dr=B(require("bn.js")),Cu=B(require("decimal.js"));var uo=require("@solana/spl-token"),ir=require("@solana/web3.js"),rr=B(require("bn.js"));var aw=Buffer.from("vault_auth_seed","utf8"),sw=Buffer.from("global_config","utf8"),uw=Buffer.from("pool_vesting","utf8"),cw=Buffer.from("platform_config","utf8"),lw=Buffer.from("platform_fee_vault_auth_seed","utf8"),mw=Buffer.from("creator_fee_vault_auth_seed","utf8"),dw=Buffer.from("platform_global_access","utf8"),pw=Buffer.from("platform_allow_config","utf8"),fw=Buffer.from("platform_curve_rule","utf8");var hw={initialize:Buffer.from([175,175,109,31,13,152,155,237]),initializeV2:Buffer.from([67,153,175,39,218,16,38,32]),buyExactIn:Buffer.from([250,234,13,123,213,156,19,236]),buyExactOut:Buffer.from([24,211,116,40,105,3,153,56]),sellExactIn:Buffer.from([149,39,222,155,211,124,152,26]),sellExactOut:Buffer.from([95,200,71,34,8,9,11,166]),createVestingAccount:Buffer.from([129,178,2,13,217,172,230,218]),claimVestedToken:Buffer.from([49,33,104,30,189,157,79,35]),createPlatformConfig:Buffer.from([176,90,196,175,253,113,220,20]),claimPlatformFee:Buffer.from([156,39,208,135,76,237,61,72]),updatePlaformConfig:Buffer.from([195,60,76,129,146,45,67,143]),initializeWithToken2022:Buffer.from([37,190,126,222,44,154,171,17]),claimPlatformFeeFromVault:Buffer.from([117,241,198,168,248,218,80,29]),claimCreatorFee:Buffer.from([26,97,138,203,132,171,141,252]),createPlatformVestingAccount:Buffer.from([146,71,173,69,98,19,15,106]),createPlatformAllowConfig:Buffer.from([69,71,168,7,214,250,107,102]),closePlatformAllowConfig:Buffer.from([82,205,36,216,16,6,240,215]),createPlatformCurveRule:Buffer.from([148,71,180,136,122,144,59,21]),updatePlatformCurveRule:Buffer.from([90,100,206,196,54,117,120,139]),removePlatformCurveRule:Buffer.from([236,77,154,138,32,145,127,219]),closePlatformCurveRule:Buffer.from([194,114,82,45,136,88,169,159])};var Iw=new rr.default("18446744073709551615");var ou=P([n(),n("epoch"),y("curveType"),J("index"),n("migrateFee"),n("tradeFeeRate"),n("maxShareFeeRate"),n("minSupplyA"),n("maxLockRate"),n("minSellRateA"),n("minMigrateRateA"),n("minFundRaisingB"),a("mintB"),a("protocolFeeOwner"),a("migrateFeeOwner"),a("migrateToAmmWallet"),a("migrateToCpmmWallet"),h(n(),16)]),iu=P([n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod"),n("startTime"),n("totalAllocatedShare")]),ru=P([n(),n("epoch"),y("bump"),y("status"),y("mintDecimalsA"),y("mintDecimalsB"),y("migrateType"),n("supply"),n("totalSellA"),n("virtualA"),n("virtualB"),n("realA"),n("realB"),n("totalFundRaisingB"),n("protocolFee"),n("platformFee"),n("migrateFee"),iu.replicate("vestingSchedule"),a("configId"),a("platformId"),a("mintA"),a("mintB"),a("vaultA"),a("vaultB"),a("creator"),y("mintProgramFlag"),y("cpmmCreatorFeeOn"),n("platformVestingShare"),h(y(),54)]),xw=P([n(),n("epoch"),a("poolId"),a("beneficiary"),n("claimedAmount"),n("tokenShareAmount"),h(n(),8)]),au=P([y("migrateType"),y("migrateCpmmFeeOn"),n("supply"),n("totalSellA"),n("totalFundRaisingB"),n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod")]),Cw=P([n("epoch"),y("index"),a("configId"),au.replicate("bondingCurveParam"),h(n(),50)]),ar=P([n(),n("epoch"),a("platformClaimFeeWallet"),a("platformLockNftWallet"),n("platformScale"),n("creatorScale"),n("burnScale"),n("feeRate"),h(y(),64,"name"),h(y(),256,"web"),h(y(),256,"img"),a("cpConfigId"),n("creatorFeeRate"),a("transferFeeExtensionAuth"),a("platformVestingWallet"),n("platformVestingScale"),a("platformCpCreator"),y("restrictGlobalConfig"),y("restrictCurveParam"),a("curveRuleManager"),h(y(),78)]),su=P([y("field"),y("op"),F("value")]),uu=P([J("groupId"),n("epoch"),kn(su,"constraints")]),cu=P([n(),y("bump"),y("version"),a("platformId"),a("configId"),n("epoch"),h(n(),8),kn(uu,"groups")]);var sr=require("@solana/spl-token");var ur=B(require("bn.js"));var Ww=new ur.default(1e6);var lu=B(require("bn.js")),mu=B(require("decimal.js"));var bu=B(require("bn.js")),gu=B(require("decimal.js"));var du=B(require("bn.js")),pu=B(require("decimal.js"));var fu=B(require("bn.js")),yu=B(require("decimal.js"));var co=B(require("bn.js")),fn=B(require("decimal.js")),yn=class{static _multipler(e){return new fn.default(10).pow(e)}static getPrice({priceX64:e,decimalA:t,decimalB:i}){return new fn.default(e.toString()).div(this._Q64).mul(this._multipler(t)).div(this._multipler(i))}static getPriceX64({price:e,decimalA:t,decimalB:i}){let r=e.mul(this._multipler(i)).div(this._multipler(t));return new co.default(r.mul(this._Q64).toFixed(0))}};yn._Q64=new fn.default(new co.default(1).shln(64).toString());var We=require("@solana/spl-token"),te=B(require("bn.js")),lo=require("@solana/web3.js");var Iu=B(require("decimal.js")),CT={initPriceX64:new te.default("515752397214619"),supply:new te.default(1e15),totalSellA:new te.default(7931e11),totalFundRaisingB:new te.default(85e9),totalFundRaisingBUSD:new te.default(125e8),totalLockedAmount:new te.default("0"),cliffPeriod:new te.default("0"),unlockPeriod:new te.default("0"),decimals:6,virtualA:new te.default("1073471847374405"),virtualB:new te.default("30050573465"),realA:new te.default(0),realB:new te.default(0),protocolFee:new te.default(0),platformId:new lo.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new te.default(0),cliffPeriod:new te.default(0),unlockPeriod:new te.default(0),startTime:new te.default(0),totalAllocatedShare:new te.default(0)}},RT=new te.default(1e4);var Bu={[Ro.toBase58()]:3};var Su=P([V(5),V(8),a("ownAddress"),n("vaultSignerNonce"),a("baseMint"),a("quoteMint"),a("baseVault"),n("baseDepositsTotal"),n("baseFeesAccrued"),a("quoteVault"),n("quoteDepositsTotal"),n("quoteFeesAccrued"),n("quoteDustThreshold"),a("requestQueue"),a("eventQueue"),a("bids"),a("asks"),n("baseLotSize"),n("quoteLotSize"),n("feeRateBps"),n("referrerRebatesAccrued"),V(7)]);var Ku=require("@solana/web3.js");var oh=U("Serum");var mo=require("@solana/spl-token"),po=require("@solana/web3.js"),xu=B(require("bn.js"));var Jh=new dr.default(0);var Ne=require("@solana/web3.js"),pr=require("@solana/spl-token"),fo=B(require("bn.js"));var ce=class extends fe{static getPdaPoolId(e,t){return ee([ce.SEED_CONFIG.pool.id,t.toBuffer()],e)}static getPdaOwnerId(e,t,i,r){return ee([ce.SEED_CONFIG.owner.id,t.toBuffer(),i.toBuffer(),Buffer.from(new fo.default(r).toArray())],e)}static async getAllInfo({connection:e,programId:t,poolIds:i,wallet:r,chainTime:s}){if(i.length===0)return[];let u=i.map(b=>ce.getPdaPoolId(t,b).publicKey),m=[];for(let b=0;b<ce.VERSION_PROJECT.length;b++)m.push(...u.map(A=>ce.getPdaOwnerId(t,A,r,b).publicKey));let d=await he(e,[...u,...m]),p=[];for(let b=0;b<d.length;b++){let A=Math.floor(b/i.length),g=b%i.length,f=u[g],S=m[b],k=d[g],T=d[i.length+b];if(!(k&&T)||k.data.length!==ce.POOL_LAYOUT.span||T.data.length!==ce.OWNER_LAYOUT.span)continue;let K=ce.POOL_LAYOUT.decode(k.data),x=ce.OWNER_LAYOUT.decode(T.data),_=K.openTime.toNumber(),D=K.endTime.toNumber(),I=x.tokenInfo.map(N=>N.debtAmount.gt(new fo.default(0))).filter(N=>!N).length!==3,C=s>_&&s<D&&K.status===1,L=I&&C;p.push({programId:t,poolId:f,ammId:K.ammId,ownerAccountId:S,snapshotLpAmount:x.lpAmount,project:ce.VERSION_PROJECT[A],openTime:_,endTime:D,canClaim:L,canClaimErrorType:I?C?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((N,v)=>({mintAddress:N.mintAddress,mintVault:N.mintVault,mintDecimals:N.mintDecimals,perLpLoss:N.perLpLoss,debtAmount:x.tokenInfo[v].debtAmount.add(x.tokenInfo[v].claimedAmount)}))})}return p}async makeClaimTransaction({poolInfo:e,ownerInfo:t,feePayer:i}){t.wallet||this.scope.checkOwner();let r=this.createTxBuilder(i),s=t.wallet||this.scope.ownerPubKey,u=[];for(let p of e.tokenInfo){let{account:b,instructionParams:A}=await this.scope.account.getOrCreateTokenAccount({mint:p.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:p.mintAddress.equals(ae.WSOL.mint),createInfo:{payer:s,amount:0},skipCloseAccount:!p.mintAddress.equals(ae.WSOL.mint),associatedOnly:p.mintAddress.equals(ae.WSOL.mint)?!1:t.associatedOnly});A&&r.addInstruction(A),u.push(b)}r.addInstruction({instructions:[ce.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:s,ownerPda:e.ownerAccountId,claimAddress:u}})]});let{transaction:m,signers:d}=r.build();return[{transaction:m,signer:d}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:t,feePayer:i}){let r=this.createTxBuilder(i),s=t.wallet||this.scope.ownerPubKey,u={};for(let b of e){let A=[];for(let g of b.tokenInfo){let{account:f,instructionParams:S}=await this.scope.account.getOrCreateTokenAccount({mint:g.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:g.mintAddress.equals(ae.WSOL.mint),createInfo:{payer:s,amount:0},skipCloseAccount:!g.mintAddress.equals(ae.WSOL.mint),associatedOnly:g.mintAddress.equals(ae.WSOL.mint)?!1:t.associatedOnly});S&&r.addInstruction(S),f&&(u[g.mintAddress.toString()]=f,A.push(f))}r.addInstruction({instructions:[ce.makeClaimInstruction({programId:b.programId,poolInfo:b,ownerInfo:{wallet:s,ownerPda:b.ownerAccountId,claimAddress:A}})]})}let{transaction:m,signers:d}=r.build(),p=r.allInstructions;return Xn(p,[s,...d.map(b=>b.publicKey)])?[{transaction:m,signer:d}]:[{transaction:new Ne.Transaction().add(...p.slice(0,r.AllTxData.instructions.length-1)),signer:d},{transaction:new Ne.Transaction().add(...p.slice(r.AllTxData.instructions.length-1)),signer:[]},{transaction:new Ne.Transaction().add(...r.AllTxData.endInstructions),signer:[]}]}static makeClaimInstruction({programId:e,poolInfo:t,ownerInfo:i}){let r=P([]),s=[{pubkey:i.wallet,isSigner:!0,isWritable:!0},{pubkey:t.poolId,isSigner:!1,isWritable:!0},{pubkey:i.ownerPda,isSigner:!1,isWritable:!0},...i.claimAddress.map(d=>({pubkey:d,isSigner:!1,isWritable:!0})),...t.tokenInfo.map(({mintVault:d})=>({pubkey:d,isSigner:!1,isWritable:!0})),{pubkey:pr.TOKEN_PROGRAM_ID,isSigner:!1,isWritable:!1}],u=Buffer.alloc(r.span);r.encode({},u);let m=Buffer.from([10,66,208,184,161,6,191,98,...u]);return new Ne.TransactionInstruction({keys:s,programId:e,data:m})}},ke=ce;ke.CLAIMED_NUM=3,ke.POOL_LAYOUT=P([V(8),y("bump"),y("status"),n("openTime"),n("endTime"),a("ammId"),h(P([y("mintDecimals"),a("mintAddress"),a("mintVault"),n("perLpLoss"),n("totalClaimedAmount")]),ce.CLAIMED_NUM,"tokenInfo"),h(n(),10,"padding")]),ke.OWNER_LAYOUT=P([V(8),y("bump"),y("version"),a("poolId"),a("owner"),n("lpAmount"),h(P([a("mintAddress"),n("debtAmount"),n("claimedAmount")]),ce.CLAIMED_NUM,"tokenInfo"),h(n(),4,"padding")]),ke.DEFAULT_POOL_ID=["58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2","6UmmUiYoBjSrhakAobJw8BvkmJtDVxaeBtbt7rxWo1mg","AVs9TA4nWDzfPJE9gGVNJMVhcQy3V9PGazuz33BfG2RA","DVa7Qmb5ct9RCpaU7UTpSaf3GVMYz17vNVU67XpdCRut","7XawhbbxtsRcQA8KTkHT9f9nc6d69UwqCDh6U5EEbEmX","6a1CsrpeZubDjEJE9s1CMVheB6HWM5d7m1cj2jkhyXhj","EoNrn8iUhwgJySD1pHu8Qxm5gSQqLK3za4m8xzD2RuEb","AceAyRTWt4PyB2pHqf2qhDgNZDtKVNaxgL8Ru3V4aN1P","6tmFJbMk5yVHFcFy7X2K8RwHjKLr6KVFLYXpgpBNeAxB"].map(e=>new Ne.PublicKey(e)),ke.SEED_CONFIG={pool:{id:Buffer.from("pool_seed","utf8")},owner:{id:Buffer.from("user_claim_seed","utf8")}},ke.VERSION_PROJECT=[void 0,"Francium","Tulip","Larix"];var Ru=require("@solana/web3.js"),At=require("@solana/spl-token");var MB=new Me.default(2),FB=new Me.default(3),vB=new Me.default(5),Fn=new Me.default(10),_B=new Me.default(100),VB=new Me.default(1e3),EB=new Me.default(1e4);function qn(o){return Fn.pow(E(o))}var fr=o=>typeof o=="number",Nu=o=>o?new Date(o):new Date,bn=o=>Nu(o).getTime();function yr(o,e,t){let i=fr(e)?e*((t==null?void 0:t.unit)==="s"?1e3:1):bn(e);return bn(o)<=i}function br(o,e,t){let i=fr(e)?e*((t==null?void 0:t.unit)==="s"?1e3:1):bn(e);return bn(o)>i}function Nn(o,e=1,t=[]){let i=[...o];if(e<=0)return t;for(;i.length;)t.push(i.splice(0,e));return t}var wt=U("Raydium.farm.util");function zi({programId:o,poolId:e,mint:t,type:i}){let{publicKey:r}=ee([e.toBuffer(),t.toBuffer(),Buffer.from(i==="lpVault"?"lp_vault_associated_seed":i==="rewardVault"?"reward_vault_associated_seed":"","utf-8")],o);return r}function ye({programId:o,poolId:e,owner:t,version:i}){let{publicKey:r}=ee([e.toBuffer(),t.toBuffer(),Buffer.from(i===6?"farmer_info_associated_seed":"staker_info_v2_associated_seed","utf-8")],o);return r}var Xi=({programId:o,poolId:e})=>ee([e.toBuffer()],o);function Yi(o){return{isSet:new pe.default(1),rewardPerSecond:E(o.perSecond),rewardOpenTime:E(o.openTime),rewardEndTime:E(o.endTime),rewardType:E(Re[o.rewardType])}}function Hi(o){return E(o.endTime).sub(E(o.openTime)).mul(E(o.perSecond))}function cn(o){let e=xt[o];return e||wt.logWithError("invalid version",o),e}function gr(o){let e=Kt[o];return e||wt.logWithError("invalid version",o),e}function Pr(o,e,t,i){if(o.version===3||o.version===5){if(o.lastSlot.gte(new pe.default(t)))return o;let r=new pe.default(t).sub(o.lastSlot);o.lastSlot=new pe.default(t);for(let s of o.rewardInfos){if(e.amount.eq(new pe.default(0)))continue;let u=s.perSlotReward.mul(r);s.perShareReward=s.perShareReward.add(u.mul(new pe.default(10).pow(new pe.default(o.version===3?9:15))).div(e.amount)),s.totalReward=s.totalReward.add(u)}}else if(o.version===6)for(let r of o.rewardInfos){if(r.rewardState.eq(new pe.default(0)))continue;let s=pe.default.min(new pe.default(i),r.rewardEndTime);if(r.rewardOpenTime.gte(s))continue;let m=s.sub(r.rewardLastUpdateTime).mul(r.rewardPerSecond),d=r.totalReward.sub(r.totalRewardEmissioned);d.lt(m)?(m=d,r.rewardLastUpdateTime=r.rewardLastUpdateTime.add(d.div(r.rewardPerSecond))):r.rewardLastUpdateTime=s,!e.amount.eq(new pe.default(0))&&(r.accRewardPerShare=r.accRewardPerShare.add(m.mul(o.rewardMultiplier).div(e.amount)),r.totalRewardEmissioned=r.totalRewardEmissioned.add(m))}return o}async function Mu({connection:o,farmPools:e,owner:t,config:i,chainTime:r}){let s=!1,u=!1,m=new pe.default(10),d=[];for(let g of e){let f=De(g);f.version===6?u=!0:s=!0,d.push({pubkey:f.id,version:f.version,key:"state",poolId:f.id},{pubkey:f.lpVault,version:f.version,key:"lpVault",poolId:f.id}),t&&d.push({pubkey:ye({programId:f.programId,poolId:f.id,owner:t,version:g.version}),version:f.version,key:"ledger",poolId:f.id})}let p={},b=await Le(o,d,i);for(let{pubkey:g,version:f,key:S,poolId:k,accountInfo:T}of b){let K=k.toBase58();if(p[K]=M({},p[K]),S==="state"){let x=gr(f);(!T||!T.data||T.data.length!==x.span)&&wt.logWithError(`invalid farm state account info, pools.id, ${g}`),p[K].state=x.decode(T.data)}else if(S==="lpVault")(!T||!T.data||T.data.length!==Ze.span)&&wt.logWithError(`invalid farm lp vault account info, pools.lpVault, ${g}`),p[K].lpVault=Ze.decode(T.data);else if(S==="ledger"){let x=cn(f);T&&T.data&&(T.data.length!==x.span&&wt.logWithError(`invalid farm ledger account info, ledger, ${g}`),p[K].ledger=x.decode(T.data))}}let A=u||s?await o.getSlot():0;for(let g of Object.keys(p))p[g]!==void 0&&(p[g].state=Pr(p[g].state,p[g].lpVault,A,r));for(let[g,{state:f,ledger:S}]of Object.entries(p))if(S){let k=f.version===6?f.rewardMultiplier:f.rewardInfos.length===1?m.pow(new pe.default(9)):m.pow(new pe.default(15)),T=f.rewardInfos.map((K,x)=>{let _=S.rewardDebts[x];return S.deposited.mul(f.version===6?K.accRewardPerShare:K.perShareReward).div(k).sub(_)});p[g].wrapped=q(M({},p[g].wrapped),{pendingRewards:T})}return p}function Fu(o,e=Date.now()){if(o.version===6){let t=o.state.rewardInfos;if(t.every(({rewardOpenTime:i})=>yr(e,i.toNumber(),{unit:"s"})))return"upcoming pool";if(t.every(({rewardEndTime:i})=>br(e,i.toNumber(),{unit:"s"})))return"closed pool"}else{let t=o.state.rewardInfos.map(({perSlotReward:i})=>i);if(t.length===2){if(String(t[0])==="0"&&String(t[1])!=="0")return"normal fusion pool";if(String(t[0])!=="0"&&String(t[1])!=="0")return"dual fusion pool";if(String(t[0])==="0"&&String(t[1])==="0")return"closed pool"}else if(t.length===1&&String(t[0])==="0")return"closed pool"}}async function un(o,e,t,i){let r=await o.getAccountInfo(e);if(r===null)throw Error("registrar info check error");let u=Rn.decode(r.data).votingMints.findIndex(b=>b.mint.equals(i));if(u===-1)throw Error("find voter mint error");let m=await o.getAccountInfo(t);if(m===null)return{index:u,isInit:!1};let p=Ln.decode(m.data).deposits.findIndex(b=>b.isUsed&&b.votingMintConfigIdx===u);return p===-1?{index:u,isInit:!1}:{index:p,isInit:!0}}0&&(module.exports={DEV_FARM_LOCK_MINT,DEV_FARM_LOCK_VAULT,FARM_LOCK_MINT,FARM_LOCK_VAULT,FARM_PROGRAM_TO_VERSION,FARM_VERSION_TO_LEDGER_LAYOUT,FARM_VERSION_TO_STATE_LAYOUT,Voter,VoterDepositEntry,VoterLockup,VoterRegistrar,VoterVotingMintConfig,associatedLedgerAccountLayout,calFarmRewardAmount,createAssociatedLedgerAccountInstruction,dwLayout,farmAddRewardLayout,farmLedgerLayoutV3_1,farmLedgerLayoutV3_2,farmLedgerLayoutV5_1,farmLedgerLayoutV5_2,farmLedgerLayoutV6_1,farmRewardInfoToConfig,farmRewardLayout,farmRewardRestartLayout,farmRewardTimeInfoLayout,farmStateV3Layout,farmStateV5Layout,farmStateV6Layout,fetchMultipleFarmInfoAndUpdate,getAssociatedAuthority,getAssociatedLedgerAccount,getAssociatedLedgerPoolAccount,getDepositEntryIndex,getFarmLedgerLayout,getFarmStateLayout,getRegistrarAddress,getTokenOwnerRecordAddress,getVoterAddress,getVoterWeightRecordAddress,getVotingMintAuthority,getVotingTokenMint,governanceCreateTokenOwnerRecord,isValidFarmVersion,judgeFarmType,makeAddNewRewardInstruction,makeCreateFarmInstruction,makeCreatorWithdrawFarmRewardInstruction,makeDepositInstructionV3,makeDepositInstructionV5,makeDepositInstructionV6,makeDepositTokenInstruction,makeDepositWithdrawInstruction,makeRestartRewardInstruction,makeWithdrawInstructionV3,makeWithdrawInstructionV4,makeWithdrawInstructionV5,makeWithdrawInstructionV6,makeWithdrawTokenInstruction,poolTypeV6,realFarmStateV3Layout,realFarmStateV5Layout,realFarmV6Layout,updateFarmPoolInfo,validateFarmRewards,voterStakeRegistryCreateDepositEntry,voterStakeRegistryCreateVoter,voterStakeRegistryDeposit,voterStakeRegistryUpdateVoterWeightRecord,voterStakeRegistryWithdraw,withdrawRewardLayout});
//# sourceMappingURL=index.js.map