UNPKG

@raydium-io/raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

2 lines 99.5 kB
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,bo=Object.prototype.propertyIsEnumerable;var yo=(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)&&yo(o,t,e[t]);if(Tt)for(var t of Tt(e))bo.call(e,t)&&yo(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&&bo.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})},go=(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 S=(o,e,t)=>(t=o!=null?wr(Br(o)):{},go(e||!o||!o.__esModule?it(t,"default",{value:o,enumerable:!0}):t,o)),Kr=o=>go(it({},"__esModule",{value:!0}),o);var Nu={};Sr(Nu,{DEV_FARM_LOCK_MINT:()=>Dr,DEV_FARM_LOCK_VAULT:()=>Wr,FARM_LOCK_MINT:()=>Fo,FARM_LOCK_VAULT:()=>vo,FARM_PROGRAM_TO_VERSION:()=>In,FARM_VERSION_TO_LEDGER_LAYOUT:()=>xt,FARM_VERSION_TO_STATE_LAYOUT:()=>Kt,Voter:()=>Rn,VoterDepositEntry:()=>zo,VoterLockup:()=>Go,VoterRegistrar:()=>Cn,VoterVotingMintConfig:()=>Uo,associatedLedgerAccountLayout:()=>Rt,calFarmRewardAmount:()=>Qi,createAssociatedLedgerAccountInstruction:()=>to,dwLayout:()=>se,farmAddRewardLayout:()=>Mt,farmLedgerLayoutV3_1:()=>Ur,farmLedgerLayoutV3_2:()=>ze,farmLedgerLayoutV5_1:()=>Gr,farmLedgerLayoutV5_2:()=>Kn,farmLedgerLayoutV6_1:()=>xn,farmRewardInfoToConfig:()=>Yi,farmRewardLayout:()=>Ot,farmRewardRestartLayout:()=>Nt,farmRewardTimeInfoLayout:()=>qo,farmStateV3Layout:()=>Bn,farmStateV5Layout:()=>Sn,farmStateV6Layout:()=>Ct,fetchMultipleFarmInfoAndUpdate:()=>Lu,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:()=>Vo,judgeFarmType:()=>Ou,makeAddNewRewardInstruction:()=>Ei,makeCreateFarmInstruction:()=>Ri,makeCreatorWithdrawFarmRewardInstruction:()=>Li,makeDepositInstructionV3:()=>Wi,makeDepositInstructionV5:()=>qi,makeDepositInstructionV6:()=>Ui,makeDepositTokenInstruction:()=>ls,makeDepositWithdrawInstruction:()=>ds,makeRestartRewardInstruction:()=>_i,makeWithdrawInstructionV3:()=>io,makeWithdrawInstructionV4:()=>Di,makeWithdrawInstructionV5:()=>oo,makeWithdrawInstructionV6:()=>no,makeWithdrawTokenInstruction:()=>ms,poolTypeV6:()=>Re,realFarmStateV3Layout:()=>Eo,realFarmStateV5Layout:()=>Do,realFarmV6Layout:()=>Wo,updateFarmPoolInfo:()=>Pr,validateFarmRewards:()=>_o,voterStakeRegistryCreateDepositEntry:()=>Vi,voterStakeRegistryCreateVoter:()=>vi,voterStakeRegistryDeposit:()=>Oi,voterStakeRegistryUpdateVoterWeightRecord:()=>Ni,voterStakeRegistryWithdraw:()=>Mi,withdrawRewardLayout:()=>Lt});module.exports=Kr(Nu);var To=require("@solana/web3.js"),Ue=S(require("bn.js"));var R=require("@solana/buffer-layout"),ht=R.Layout,Po=R.Structure;var Pn=R.UInt;var Ao=R.u8,te=R.u16;var It=R.u32;var Pe=R.s32;var wo=R.seq;var D=R.blob;var An=R.bits,ko=R.offset;var ve=class extends ht{constructor(t,i,r){super(t,r);this.blob=D(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 g(o){return new Pn(1,o)}function j(o){return new Pn(4,o)}function n(o){return new ve(8,!1,o)}function v(o){return new ve(16,!1,o)}function ho(o){return new ve(1,!0,o)}function Ge(o){return new ve(8,!0,o)}function Io(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(D(32),e=>new To.PublicKey(e),e=>e.toBuffer(),o)}function be(o){return new rt(Ao(),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 Bo(o,e){let t=It("length"),i=P([t,h(o,ko(t,-t.span),"values")]);return new rt(i,({values:r})=>r,r=>({values:r}),e)}var wn=class extends Po{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 l=Reflect.get(s,"count");i=(0,Ue.isBN)(l)?l.toNumber():l,Reflect.set(s,"count",i)}return Reflect.get(s,u)},set(s,u,l){return u==="count"&&(i=l),Reflect.set(s,u,l)}});return wo(o,r,t)}var St=require("@solana/web3.js");var at=require("lodash");var kn=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 kn({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"),Tn=new O.PublicKey("FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG"),Uu=new O.PublicKey("CLaimxFqjHzgTJtAGHU47NPhg6qrc5sCnpC4tBLyABQS"),Lr=new O.PublicKey("srmqPvymJeFKQ4zGQed1GFppgkRHL9kaELCbyksJtPX"),Ro=new O.PublicKey("9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin"),Lo=new O.PublicKey("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"),Gu=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"),zu=new O.PublicKey("routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS"),Fr=new O.PublicKey("7YttLkHDoNj9wyDur5pM1ejNaAvT9X4eqaYcHQqtj2G5"),hn=new O.PublicKey("CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"),vr=new O.PublicKey("GpMZbSM2GgvTKHJirzeGfMFoaZ8UR2X7F4v8vHTvxFbL"),Xu=new O.PublicKey("DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8"),Vr=new O.PublicKey("LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"),_r=new O.PublicKey("3f7GcQFG397GAaEnv51zR6tsTVihYRydnydDD1cXekxH"),Er=new O.PublicKey("LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"),Yu=new O.PublicKey("WLHv2UAZm6z4KyaaELi5pjdbJh6RESMva1Rnn8pJVVh"),Qu=new O.PublicKey("DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6"),Zu=new O.PublicKey("5xqNaZXX5eUi4p5HU4oz9i5QnwRNT2y6oN7yyn4qENeq"),Hu=new O.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),ju=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"),ic=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:Bn,5:Sn,6:Ct},xt={3:ze,5:Kn,6:xn},Vo=o=>[3,4,5,6].indexOf(o)!==-1,_o=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},In={[Ko.toString()]:3,[xo.toString()]:4,[Co.toString()]:5,[Tn.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([g("instruction")]),Lt=P([g("instruction")]),qr=P([n("rewardState"),n("rewardOpenTime"),n("rewardEndTime"),n("rewardLastUpdateTime"),n("totalReward"),n("totalRewardEmissioned"),n("rewardClaimed"),n("rewardPerSecond"),v("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"),v("perShareReward"),n("lastSlot"),n("perSlotReward")]),Do=P([n("state"),n("nonce"),a("lpVault"),a("rewardVaultA"),n("totalRewardA"),v("perShareRewardA"),n("perSlotRewardA"),g("option"),a("rewardVaultB"),D(7),n("totalRewardB"),v("perShareRewardB"),n("perSlotRewardB"),n("lastSlot"),a()]),Wo=P([n(),n("state"),n("nonce"),n("validRewardTokenNum"),v("rewardMultiplier"),n("rewardPeriodMax"),n("rewardPeriodMin"),n("rewardPeriodExtend"),a("lpMint"),a("lpVault"),h(qr,5,"rewardInfos"),a("creator"),a(),h(n(),32,"padding")]),Bn=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)}}),Sn=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(l=>String(l[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([g("instruction"),n("nonce"),h(qo,5,"rewardTimeInfo")]),Nt=P([g("instruction"),n("rewardReopenTime"),n("rewardEndTime"),n("rewardPerSecond")]),Mt=P([g("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(v(),1,"rewardDebts"),n(""),n("voteLockedBalance"),h(n(),15)]),Gr=P([n("state"),a("id"),a("owner"),n("deposited"),h(n(),2,"rewardDebts")]),Kn=P([n("state"),a("id"),a("owner"),n("deposited"),h(v(),2,"rewardDebts"),h(n(),17)]),xn=P([n(),n("state"),a("id"),a("owner"),n("deposited"),h(v(),5,"rewardDebts"),h(n(),16)]),se=P([g("instruction"),n("amount")]),Uo=P([a("mint"),a("grantAuthority"),n("baselineVoteWeightScaledFactor"),n("maxExtraLockupVoteWeightScaledFactor"),n("lockupSaturationSecs"),ho("digitShift"),h(g(),7,"reserved1"),h(n(),7,"reserved2")]),Cn=P([D(8),a("governanceProgramId"),a("realm"),a("realmGoverningTokenMint"),a("realmAuthority"),h(g(),32,"reserved1"),h(Uo,4,"votingMints"),Ge("timeOffset"),g("bump"),h(g(),7,"reserved2"),h(n(),11,"reserved3")]),Go=P([Ge("startTime"),Ge("endTime"),g("kind"),h(g(),15,"reserved")]),zo=P([h(Go,1,"lockup"),n("amountDeposited_native"),n("amountInitiallyLockedNative"),be("isUsed"),be("allowClawback"),g("votingMintConfigIdx"),h(g(),29,"reserved")]),Rn=P([D(8),a("voterAuthority"),a("registrar"),h(zo,32,"deposits"),g("voterBump"),g("voterWweightRecordBump"),h(g(),94,"reserved")]);var pe=S(require("bn.js"));var Xo=require("@solana/web3.js");var Ft=require("@solana/spl-token"),Ln=U("Raydium_accountInfo_util");async function he(o,e,t){let{batchRequest:i,commitment:r="confirmed",chunkCount:s=100}=M({batchRequest:!1},t),u=On(e,s),l=new Array(u.length).fill([]);if(i){let d=u.map(A=>{let b=o._buildArgs([A.map(f=>f.toBase58())],r,"base64");return{methodName:"getMultipleAccounts",args:b}}),p=On(d,10);l=(await(await Promise.all(p.map(async A=>await o._rpcBatchRequest(A)))).flat()).map(A=>(A.error&&Ln.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${A.error.message}`),A.result.value.map(b=>{if(b){let{data:f,executable:B,lamports:k,owner:T,rentEpoch:K}=b;return f.length!==2&&f[1]!=="base64"&&Ln.logWithError("info must be base64 encoded, RPC_ERROR"),{data:Buffer.from(f[0],"base64"),executable:B,lamports:k,owner:new Xo.PublicKey(T),rentEpoch:K}}return null})))}else try{l=await Promise.all(u.map(d=>o.getMultipleAccountsInfo(d,r)))}catch(d){d instanceof Error&&Ln.logWithError(`failed to get info for multiple accounts, RPC_ERROR, ${d.message}`)}return l.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=S(require("bn.js")),Cu=S(require("decimal.js"));var $o=S(require("big.js")),mt=S(require("bn.js"));var Yo=S(require("toformat")),zr=Yo.default,ut=zr;var ct=S(require("big.js")),Zo=S(require("bn.js")),Ho=S(require("decimal.js-light"));var Xe=S(require("bn.js"));var Qo=9007199254740991;function _(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>=Qo||o<=-Qo)&&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"),Nn=ut(ct.default),lt=ut(Ho.default),Yr={[0]:lt.ROUND_DOWN,[1]:lt.ROUND_HALF_UP,[2]:lt.ROUND_UP},Qr={[0]:ct.default.roundDown,[1]:ct.default.roundHalfUp,[2]:ct.default.roundUp},z=class{constructor(e,t=new Zo.default(1)){this.numerator=_(e),this.denominator=_(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));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));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));return new z(this.numerator.mul(t.numerator),this.denominator.mul(t.denominator))}div(e){let t=e instanceof z?e:new z(_(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.`),Nn.DP=e,Nn.RM=Qr[i]||1,new Nn(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,t)}isZero(){return this.numerator.isZero()}};var Zr=U("Raydium_amount"),jo=ut($o.default);function Hr(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")):Zr.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),l=Mn.pow(new mt.default(t.decimals));if(r)u=_(i);else{let d=new mt.default(0),p=new mt.default(0);if(typeof i=="string"||typeof i=="number"||typeof i=="bigint"){let[y,A]=Hr(i.toString(),t.decimals);d=_(y),p=_(A)}d=d.mul(l),u=d.add(p)}super(u,l);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 jo.DP=this.token.decimals,new jo(this.numerator.toString()).div(this.denominator.toString()).toFormat(t)}};var Jo=require("@solana/web3.js"),Fn=require("@solana/spl-token"),Vt={chainId:101,address:Jo.PublicKey.default.toBase58(),programId:Fn.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:Fn.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 Q=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 vn=[c({pubkey:ei.TOKEN_PROGRAM_ID,isWritable:!1}),c({pubkey:Q.SystemProgram.programId,isWritable:!1}),c({pubkey:Q.SYSVAR_RENT_PUBKEY,isWritable:!1})];function ti({publicKey:o,transformSol:e}){let t=Vn(o.toString());if(t instanceof Q.PublicKey)return e&&t.equals(Oe)?Ke:t;if(e&&t.toString()===Oe.toBase58())return Ke;if(typeof t=="string"){if(t===Q.PublicKey.default.toBase58())return Q.PublicKey.default;try{return new Q.PublicKey(t)}catch{throw new Error("invalid public key")}}throw new Error("invalid public key")}function Vn(o){try{return new Q.PublicKey(o)}catch{return o}}var _n=new Q.PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),Ve=new Q.PublicKey("SysvarRent111111111111111111111111111111111"),Vc=new Q.PublicKey("SysvarC1ock11111111111111111111111111111111"),_t=new Q.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),Et=new Q.PublicKey("Sysvar1nstructions1111111111111111111111111"),jr=Q.SystemProgram.programId,_c=new Q.PublicKey("4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R"),Ec=new Q.PublicKey("Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS"),Dc=new Q.PublicKey("SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt"),Wc=new Q.PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),qc=new Q.PublicKey("Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"),Uc=new Q.PublicKey("mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So"),Gc=new Q.PublicKey("7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj"),zc=new Q.PublicKey("USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX"),Xc=new Q.PublicKey("NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa"),Yc=new Q.PublicKey("ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo"),Qc=new Q.PublicKey("7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs"),Ke=new Q.PublicKey("So11111111111111111111111111111111111111112"),Oe=Q.PublicKey.default;var En=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=En;ae.WSOL=new En(q(M({},Ie),{mint:Ie.address}));var Dn=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=Dn;Wt.SOL=new Dn(Vt);var oi=S(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 $r=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(Wn(i.decimals),Wn(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&&$r.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 xu=require("lodash");var ea=S(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 Vl=U("Raydium_Api");var di=require("@solana/web3.js");var Qt=require("@solana/spl-token");var X=require("@solana/web3.js"),ui=S(require("axios"));var we=require("@solana/web3.js");async function qn({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],l=e[s];if(!u)continue;let d=new we.AddressLookupTableAccount({key:l,state:we.AddressLookupTableAccount.deserialize(u.data)});r[l.toString()]=d,t==="devnet"?Qe[l.toString()]=d:Ye[l.toString()]=d}return r}var Ye={},Un=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},Qe={},Gn=async o=>{let e="EFhMuDw1PKEuckuFRW9PavNfTH4LKP5uKHgyXDmWpFCq";if(Qe[e])return Qe;let t=new we.PublicKey(e),i=await o.getAccountInfo(t);return i&&(Qe[e]=new we.AddressLookupTableAccount({key:t,state:we.AddressLookupTableAccount.deserialize(i.data)})),Qe};var $={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($.SetComputeUnitPrice)),o.units&&(e.push(ue.ComputeBudgetProgram.setComputeUnitLimit({units:o.units})),t.push($.SetComputeUnitLimit)),{instructions:e,instructionTypes:t}}async function Ze(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 zn(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 J(o,e){let[t,i]=ue.PublicKey.findProgramAddressSync(o,e);return{publicKey:t,nonce:i}}function dt({instructions:o,payer:e,signers:t}){return zn(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 _e(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($.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(l=>l!==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 y;let{recentBlockHash:s,skipPreflight:u=!0,sendAndConfirm:l,notSendToRpc:d}=r||{},p=s!=null?s:await Ze(this.connection,this.blockhashCommitment);if(t.recentBlockhash=p,this.signers.length&&t.sign(...this.signers),_e([t]),(y=this.owner)!=null&&y.isKeyPair)return{txId:l?await(0,X.sendAndConfirmTransaction)(this.connection,t,this.signers.find(b=>b.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 b of A)try{b.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(y=>y.transaction.instructions.length>0),u=[r,...s.map(y=>y.transaction)],l=[this.signers,...s.map(y=>y.signers)],d=[...this.instructionTypes,...s.map(y=>y.instructionTypes).flat()];return(p=this.owner)!=null&&p.signer&&l.forEach(y=>{y.some(A=>A.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),{builder:this,transactions:u,signers:l,instructionTypes:d,execute:async y=>{var K;let{sequentially:A,onTxUpdate:b,skipTxCount:f=0,recentBlockHash:B,skipPreflight:k=!0}=y||{},T=B!=null?B:await Ze(this.connection,this.blockhashCommitment);if((K=this.owner)!=null&&K.isKeyPair){if(A){let x=[],V=0;for(let E of u){if(++V,V<=f)continue;let I=await(0,X.sendAndConfirmTransaction)(this.connection,E,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((E,I)=>(E.recentBlockhash=T,l[I].length&&E.sign(...l[I]),E));_e(x);let V=await this.signAllTransactions(x);if(A){let E=0,I=[],C=async()=>{if(!V[E])return;let L=await this.connection.sendRawTransaction(V[E].serialize(),{skipPreflight:k});I.push({txId:L,status:"sent",signedTx:V[E]}),b==null||b([...I]),E++;let N=!1,F=null,W=null,le=Z=>{F!==null&&clearInterval(F),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=Z.err?"error":"success"}b==null||b([...I]),Z.err||C()};this.loopMultiTxStatus&&(F=setInterval(async()=>{var Z;if(N){clearInterval(F);return}try{let Y=await this.connection.getTransaction(L,{commitment:"confirmed",maxSupportedTransactionVersion:0});Y&&(N=!0,clearInterval(F),le({err:((Z=Y.meta)==null?void 0:Z.err)||null}),console.log("tx status from getTransaction:",L))}catch(Y){N=!0,clearInterval(F),console.error("getTransaction timeout:",Y,L)}},Gt)),W=this.connection.onSignature(L,Z=>{if(N){this.connection.removeSignatureListener(W);return}N=!0,le(Z)},"confirmed"),this.connection.getSignatureStatus(L)};return await C(),{txIds:I.map(L=>L.txId),signedTxs:V}}else{let E=[];for(let I=0;I<V.length;I+=1){let C=await this.connection.sendRawTransaction(V[I].serialize(),{skipPreflight:k});E.push(C)}return{txIds:E,signedTxs:V}}}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 B=e||{},{lookupTableCache:t={},lookupTableAddress:i=[],forerunCreate:r,recentBlockhash:s}=B,u=Te(B,["lookupTableCache","lookupTableAddress","forerunCreate","recentBlockhash"]),l=M(M({},this.cluster==="devnet"?await Gn(this.connection):await Un(this.connection)),t),d=Array.from(new Set([...i,...this.lookupTableAddress])),p=[];for(let T of d)l[T]===void 0&&p.push(new X.PublicKey(T));let y=await qn({connection:this.connection,address:p});for(let[T,K]of Object.entries(y))l[T]=K;let A=r?X.PublicKey.default.toBase58():s!=null?s:await Ze(this.connection,this.blockhashCommitment),b=new X.TransactionMessage({payerKey:this.feePayer,recentBlockhash:A,instructions:[...this.allInstructions]}).compileToV0Message(Object.values(l));((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(b);return f.sign(this.signers),{builder:this,transaction:f,signers:this.signers,instructionTypes:[...this.instructionTypes,...this.endInstructionTypes],execute:async T=>{var E;let{skipPreflight:K=!0,sendAndConfirm:x,notSendToRpc:V}=T||{};if(_e([f]),(E=this.owner)!=null&&E.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:V?"":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(y=>y.builder.instructions.length>0),u=[r,...s.map(y=>y.transaction)],l=[this.signers,...s.map(y=>y.signers)],d=[...this.instructionTypes,...s.map(y=>y.instructionTypes).flat()];return(p=this.owner)!=null&&p.signer&&l.forEach(y=>{y.some(A=>A.publicKey.equals(this.owner.publicKey))||this.signers.push(this.owner.signer)}),u.forEach(async(y,A)=>{y.sign(l[A])}),{builder:this,transactions:u,signers:l,instructionTypes:d,buildProps:i,execute:async y=>{var k;let{sequentially:A,onTxUpdate:b,recentBlockHash:f,skipPreflight:B=!0}=y||{};if(f&&u.forEach(T=>T.message.recentBlockhash=f),_e(u),(k=this.owner)!=null&&k.isKeyPair){if(A){let T=[];for(let K of u){let x=await this.connection.sendTransaction(K,{skipPreflight:B});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:B}))),signedTxs:u}}if(this.signAllTransactions){let T=await this.signAllTransactions(u);if(A){let K=0,x=[],V=async()=>{if(!T[K])return;let E=await this.connection.sendTransaction(T[K],{skipPreflight:B});x.push({txId:E,status:"sent",signedTx:T[K]}),b==null||b([...x]),K++;let I=!1,C=null,L=null,N=F=>{C!==null&&clearInterval(C),L!==null&&this.connection.removeSignatureListener(L);let W=x.findIndex(le=>le.txId===E);if(W>-1){if(x[W].status==="error"||x[W].status==="success")return;x[W].status=F.err?"error":"success"}b==null||b([...x]),F.err||V()};this.loopMultiTxStatus&&(C=setInterval(async()=>{var F;if(I){clearInterval(C);return}try{let W=await this.connection.getTransaction(E,{commitment:"confirmed",maxSupportedTransactionVersion:0});W&&(I=!0,clearInterval(C),N({err:((F=W.meta)==null?void 0:F.err)||null}),console.log("tx status from getTransaction:",E))}catch(W){I=!0,clearInterval(C),console.error("getTransaction timeout:",W,E)}},Gt)),L=this.connection.onSignature(E,F=>{if(I){this.connection.removeSignatureListener(L);return}I=!0,N(F)},"confirmed"),this.connection.getSignatureStatus(E)};return V(),{txIds:[],signedTxs:T}}else{let K=[];for(let x=0;x<T.length;x+=1){let V=await this.connection.sendTransaction(T[x],{skipPreflight:B});K.push(V)}return{txIds:K,signedTxs:T}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:i||{}}}async sizeCheckBuild(e){var b;let A=e||{},{splitIns:t=[],computeBudgetConfig:i}=A,r=Te(A,["splitIns","computeBudgetConfig"]),s=i?qt(i):{instructions:[],instructionTypes:[]},u=this.signers.reduce((f,B)=>q(M({},f),{[B.publicKey.toBase58()]:B}),{}),l=[],d=[],p=[],y=0;if(this.allInstructions.forEach(f=>{let B=[...p,f],k=i?[...s.instructions,...B]:B,K=[...new Set(B.map(x=>x.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat()).values()].map(x=>new X.PublicKey(x));if(f!==t[y]&&p.length<12&&(dt({instructions:k,payer:this.feePayer,signers:K})||dt({instructions:B,payer:this.feePayer,signers:K})))p.push(f);else{if(p.length===0)throw Error("item ins too big");y+=f===t[y]?1:0,dt({instructions:i?[...s.instructions,...p]:[...p],payer:this.feePayer,signers:K})?l.push(new X.Transaction().add(...s.instructions,...p)):l.push(new X.Transaction().add(...p)),d.push(Array.from(new Set(p.map(x=>x.keys.filter(V=>V.isSigner).map(V=>V.pubkey.toString())).flat())).map(x=>u[x]).filter(x=>x!==void 0)),p=[f]}}),p.length>0){let B=[...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:B.map(k=>k.publicKey)})?l.push(new X.Transaction().add(...s.instructions,...p)):l.push(new X.Transaction().add(...p)),d.push(B)}return l.forEach(f=>f.feePayer=this.feePayer),(b=this.owner)!=null&&b.signer&&d.forEach(f=>{f.some(B=>B.publicKey.equals(this.owner.publicKey))||f.push(this.owner.signer)}),{builder:this,transactions:l,signers:d,instructionTypes:this.instructionTypes,execute:async f=>{var E;let{sequentially:B,onTxUpdate:k,skipTxCount:T=0,recentBlockHash:K,skipPreflight:x=!0}=f||{},V=K!=null?K:await Ze(this.connection,this.blockhashCommitment);if(l.forEach(async(I,C)=>{I.recentBlockhash=V,d[C].length&&I.sign(...d[C])}),_e(l),(E=this.owner)!=null&&E.isKeyPair){if(B){let I=0,C=[];for(let L of l){if(++I,I<=T){C.push("tx skipped");continue}let N=await(0,X.sendAndConfirmTransaction)(this.connection,L,this.signers.find(F=>F.publicKey.equals(this.owner.publicKey))?this.signers:[...this.signers,this.owner.signer],{skipPreflight:x});C.push(N)}return{txIds:C,signedTxs:l}}return{txIds:await Promise.all(l.map(async I=>await this.connection.sendRawTransaction(I.serialize(),{skipPreflight:x}))),signedTxs:l}}if(this.signAllTransactions){let I=await this.signAllTransactions(l.slice(T,l.length)),C=[...l.slice(0,T),...I];if(B){let L=0,N=[],F=async()=>{if(!C[L])return;L<T&&(N.push({txId:"",status:"success",signedTx:C[L]}),k==null||k([...N]),L++,F());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,Z=null,Y=null,re=H=>{Z!==null&&clearInterval(Z),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=H.err?"error":"success"}k==null||k([...N]),H.err||F()};this.loopMultiTxStatus&&(Z=setInterval(async()=>{var H;if(le){clearInterval(Z);return}try{let me=await this.connection.getTransaction(W,{commitment:"confirmed",maxSupportedTransactionVersion:0});me&&(le=!0,clearInterval(Z),re({err:((H=me.meta)==null?void 0:H.err)||null}),console.log("tx status from getTransaction:",W))}catch(me){le=!0,clearInterval(Z),console.error("getTransaction timeout:",me,W)}},Gt)),Y=this.connection.onSignature(W,H=>{if(le){this.connection.removeSignatureListener(Y);return}le=!0,re(H)},"confirmed"),this.connection.getSignatureStatus(W)};return await F(),{txIds:N.map(W=>W.txId),signedTxs:C}}else{let L=[];for(let N=0;N<C.length;N+=1){let F=await this.connection.sendRawTransaction(C[N].serialize(),{skipPreflight:x});L.push(F)}return{txIds:L,signedTxs:C}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:r||{}}}async sizeCheckBuildV0(e){var E;let V=e||{},{computeBudgetConfig:t,splitIns:i=[],lookupTableCache:r={},lookupTableAddress:s=[],insCountLimit:u=12}=V,l=Te(V,["computeBudgetConfig","splitIns","lookupTableCache","lookupTableAddress","insCountLimit"]),d=M(M({},this.cluster==="devnet"?await Gn(this.connection):await Un(this.connection)),r),p=Array.from(new Set([...this.lookupTableAddress,...s])),y=[];for(let I of p)d[I]===void 0&&y.push(new X.PublicKey(I));let A=await qn({connection:this.connection,address:y});for(let[I,C]of Object.entries(A))d[I]=C;let b=t?qt(t):{instructions:[],instructionTypes:[]},f=await Ze(this.connection,this.blockhashCommitment),B=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?[...b.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 F of[...new Set(p)])d[F]!==void 0&&(N[F]=d[F]);if(t&&pt({instructions:[...b.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:f})){let F=new X.TransactionMessage({payerKey:this.feePayer,recentBlockhash:f,instructions:[...b.instructions,...K]}).compileToV0Message(Object.values(d));k.push(new X.VersionedTransaction(F))}else{let F=new X.TransactionMessage({payerKey:this.feePayer,recentBlockhash:f,instructions:[...K]}).compileToV0Message(Object.values(d));k.push(new X.VersionedTransaction(F))}T.push(Array.from(new Set(K.map(F=>F.keys.filter(W=>W.isSigner).map(W=>W.pubkey.toString())).flat())).map(F=>B[F]).filter(F=>F!==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=>B[L]).filter(L=>L!==void 0);if(t&&pt({instructions:[...b.instructions,...K],payer:this.feePayer,lookupTableAddressAccount:d,recentBlockhash:f})){let L=new X.TransactionMessage({payerKey:this.feePayer,recentBlockhash:f,instructions:[...b.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(E=this.owner)!=null&&E.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:F,skipPreflight:W=!0}=I||{};if(k.map(async(Z,Y)=>{T[Y].length&&Z.sign(T[Y]),F&&(Z.message.recentBlockhash=F)}),_e(k),(le=this.owner)!=null&&le.isKeyPair){if(C){let Z=0,Y=[];for(let re of k){if(++Z,Z<=N){console.log("skip tx: ",Z),Y.push("tx skipped");continue}let H=await this.connection.sendTransaction(re,{skipPreflight:W});await Ut(this.connection,H),Y.push(H)}return{txIds:Y,signedTxs:k}}return{txIds:await Promise.all(k.map(async Z=>await this.connection.sendTransaction(Z,{skipPreflight:W}))),signedTxs:k}}if(this.signAllTransactions){let Z=await this.signAllTransactions(k.slice(N,k.length)),Y=[...k.slice(0,N),...Z];if(C){let re=0,H=[],me=async()=>{if(!Y[re])return;if(re<N){H.push({txId:"",status:"success",signedTx:Y[re]}),L==null||L([...H]),re++,me();return}let Be=await this.connection.sendTransaction(Y[re],{skipPreflight:W});H.push({txId:Be,status:"sent",signedTx:Y[re]}),L==null||L([...H]),re++;let ot=!1,qe=null,kt=null,fo=Fe=>{qe!==null&&clearInterval(qe),kt!==null&&this.connection.removeSignatureListener(kt);let Se=H.findIndex(Ar=>Ar.txId===Be);if(Se>-1){if(H[Se].status==="error"||H[Se].status==="success")return;H[Se].status=Fe.err?"error":"success"}L==null||L([...H]),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:0});Se&&(ot=!0,clearInterval(qe),fo({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,fo(Fe)},"confirmed"),this.connection.getSignatureStatus(Be)};return me(),{txIds:[],signedTxs:Y}}else{let re=[];for(let H=0;H<Y.length;H+=1){let me=await this.connection.sendTransaction(Y[H],{skipPreflight:W});re.push(me)}return{txIds:re,signedTxs:Y}}}throw new Error("please provide owner in keypair format or signAllTransactions function")},extInfo:l||{}}}};var Xn=(...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(Xn(e))}logInfo(...e){this.logger.info(Xn(e))}logAndCreateError(...e){let t=Xn(e);throw new Error(t)}checkDisabled(){(this.disabled||!this.scope)&&this.logAndCreateError("module not working")}};var li=require("@solana/web3.js"),ra=S(require("bn.js"));var Yt=require("@solana/spl-token");var ci=require("@solana/web3.js"),oa=S(require("bn.js"));var ia=require("@solana/spl-token");var He=P([a("mint"),a("owner"),n("amount"),j("delegateOption"),a("delegate"),g("state"),j("isNativeOption"),n("isNative"),n("delegatedAmount"),j("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 J([o.toBuffer(),(t!=null?t:fi.TOKEN_PROGRAM_ID).toBuffer(),e.toBuffer()],new pi.PublicKey("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"))}var fs=S(require("decimal.js"));var eo=require("@solana/spl-token"),rs=require("@solana/web3.js"),as=S(require("bn.js")),ss=S(require("decimal.js"));var ua=require("@solana/spl-token"),ca=require("@solana/web3.js");var sa=P([j("mintAuthorityOption"),a("mintAuthority"),n("supply"),g("decimals"),g("isInitialized"),j("freezeAuthorityOption"),a("freezeAuthority")]);var $n=require("@solana/spl-token"),en=require("@solana/web3.js"),ns=S(require("bn.js"));var G=S(require("bn.js")),je=new G.default(1).shln(64);var la=new G.default(1).shln(128),Yn=new G.default(1).shln(64).subn(1),ma=new G.default(1).shln(128).subn(1);var $e=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,kd=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,Zt=14;var oe=new G.default(0),et=new G.default(1),Td=new G.default(-1);var hd=new G.default("18446744073700000000");var ba=P([D(8),g("bump"),te("index"),a("owner"),j("protocolFeeRate"),j("tradeFeeRate"),te("tickSpacing"),j("fundFeeRate"),h(j(),1),a("fundOwner"),h(n(),3)]),ga=P([j("blockTimestamp"),Ge("tickCumulative"),h(n(),4)]),Pi=P([D(8),be("initialized"),n("recentEpoch"),te("observationIndex"),a("poolId"),h(ga,yi,"observations"),h(n(),4)]),Pa=P([te("filterPeriod"),te("decayPeriod"),te("reductionFactor"),j("dynamicFeeControl"),j("maxVolatilityAccumulator"),Pe("tickSpacingIndexReference"),j("volatilityReference"),j("volatilityAccumulator"),n("lastUpdateTimestamp"),h(g(),46)]),Aa=P([g("state"),n("openTime"),n("endTime"),n("lastUpdateTime"),v("emissionsPerSecondX64"),n("totalEmissioned"),n("claimed"),a("mint"),a("vault"),a("creator"),v("growthGlobalX64")]),Zn=P([D(8),g("bump"),a("configId"),a("creator"),a("mintA"),a("mintB"),a("vaultA"),a("vaultB"),a("observationId"),g("mintDecimalsA"),g("mintDecimalsB"),te("tickSpacing"),v("liquidity"),v("sqrtPriceX64"),Pe("tickCurrent"),j(),v("feeGrowthGlobalX64A"),v("feeGrowthGlobalX64B"),n("protocolFeesTokenA"),n("protocolFeesTokenB"),h(v(),4),g("status"),g("feeOn"),D(6),h(Aa,ft,"rewardInfos"),D(8*16,"tickArrayBitmap"),h(n(),4),n("fundFeesTokenA"),n("fundFeesTokenB"),n("startTime"),n("recentEpoch"),Pa.replicate("dynamicFeeInfo"),h(n(),46)]),wa=P([v("growthInsideLastX64"),n("rewardAmountOwed")]),ka=P([D(8),g("bump"),a("nftMint"),a("poolId"),Pe("tickLower"),Pe("tickUpper"),v("liquidity"),v("feeGrowthInsideLastX64A"),v("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),h(wa,ft,"rewardInfos"),n("recentEpoch"),h(n(),7)]),Kd=P([D(8),g("bump"),a("poolId"),Pe("tickLower"),Pe("tickUpper"),v("liquidity"),v("feeGrowthInsideLastX64A"),v("feeGrowthInsideLastX64B"),n("tokenFeesOwedA"),n("tokenFeesOwedB"),h(v(),ft,"rewardGrowthInside"),n("recentEpoch"),h(n(),7)]),Ta=P([Pe("tick"),Io("liquidityNet"),v("liquidityGross"),v("feeGrowthOutsideX64A"),v("feeGrowthOutsideX64B"),h(v(),ft,"rewardGrowthsOutsideX64"),n("orderPhase"),n("ordersAmount"),n("partFilledOrdersRemaining"),v("unfilledRatioX64"),h(j(),3)]),Ai=P([D(8),a("poolId"),Pe("startTickIndex"),h(Ta,Qn,"ticks"),g("initializedTickCount"),n("recentEpoch"),h(g(),107)]),ha=P([D(8),g("bump"),h(a(),bi,"operationOwners"),h(a(),gi,"whitelistMints")]),Ia=P([D(8),a("poolId"),a("owner"),Pe("tick"),be("zeroForOne"),n("orderPhase"),n("totalAmount"),n("filledAmount"),n("settleBase"),n("settleOutput"),n("openTime"),v("unfilledRatioX64"),h(n(),4)]),wi=P([D(8),a("poolId"),D(8*8*Zt,"positiveTickArrayBitmap"),D(8*8*Zt,"negativeTickArrayBitmap")]),xd=P([D(8),te("index"),te("filterPeriod"),te("decayPeriod"),te("reductionFactor"),j("dynamicFeeControl"),j("maxVolatilityAccumulator"),h(n(),8)]),Ba=P([D(8),a("wallet"),g("nonceIndex"),n("orderNonce"),h(n(),4)]),Cd=P([n(),g("bump"),a("owner"),a("poolId"),a("positionId"),a("nftAccount"),h(n(),8)]),Sa=P([D(8),g("bump"),a("lockOwner"),a("poolId"),a("positionId"),a("nftAccount"),a("lockNftMint"),n("recentEpoch"),h(n(),8)]);var Ka=S(require("bn.js"));var Wd=Buffer.from("amm_config","utf8"),Ca=Buffer.from("pool","utf8"),Ra=Buffer.from("pool_vault","utf8"),qd=Buffer.from("pool_reward_vault","utf8"),Ud=Buffer.from("position","utf8"),Gd=Buffer.from("tick_array","utf8"),zd=Buffer.from("operation","utf8"),Xd=Buffer.from("pool_tick_array_bitmap_extension","utf8"),Yd=Buffer.from("observation","utf8"),Qd=Buffer.from("support_mint","utf8"),Zd=Buffer.from("dynamic_fee_config","utf8"),Hd=Buffer.from("permission","utf8");var jd=Buffer.from("locked_position","utf8");var Ki=require("js-sha256");var ki=S(require("bn.js")),La=S(require("decimal.js"));var ep=new ki.default(1).shln(256).subn(1);var Ma=S(require("bn.js"));var Oa=S(require("bn.js")),Na=S(require("decimal.js"));var Va=S(require("bn.js")),_a=S(require("decimal.js"));var za=require("@solana/web3.js"),Xa=S(require("bn.js"));var Bi=require("@solana/spl-token");var Ya=S(require("decimal.js"));var qa=S(require("bn.js"));var Da=S(require("bn.js"));var Ha=S(require("bn.js"));function ie(o){let e=`global:${o}`;return Buffer.from(Ki.sha256.digest(e)).slice(0,8)}Pi.span;var Qf=U("Raydium_Clmm"),Zf={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=S(require("bn.js")),ne=require("@solana/spl-token");function tn(o,e,t){return J([e.toBuffer(),Buffer.from("registrar","utf8"),t.toBuffer()],o)}function nn(o,e){return J([e.toBuffer(),Buffer.from("voting_mint_seed","utf8")],o)}function on(o,e){return J([e.toBuffer()],o)}function rn(o,e,t){return J([e.toBuffer(),Buffer.from("voter","utf8"),t.toBuffer()],o)}function an(o,e,t){return J([e.toBuffer(),Buffer.from("voter-weight-record","utf8"),t.toBuffer()],o)}function sn(o,e,t,i){return J([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 to(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 l=Buffer.alloc(Rt.span);Rt.encode({instruction:u},l);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:l}),instructionType:$.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=[...vn,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:$.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:$.FarmV6CreatorWithdraw}}function Oi(o,e,t,i,r,s,u,l,d,p,y,A,b){let f=P([g("depositEntryIndex"),n("amount")]),B=[{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:l,isSigner:!1,isWritable:!1},{pubkey:d,isSigner:!1,isWritable:!0},{pubkey:p,isSigner:!1,isWritable:!1},{pubkey:y,isSigner:!1,isWritable:!1},{pubkey:Et,isSigner:!1,isWritable:!1}],k=Buffer.alloc(f.span);f.encode({depositEntryIndex:A,amount:b},k);let T=Buffer.from([...gt.voterStakeRegistryDeposit,...k]);return new w.TransactionInstruction({keys:B,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 l=Buffer.from([...gt.voterStakeRegistryUpdateVoterWeightRecord,...u]);return new w.TransactionInstruction({keys:s,programId:o,data:l})}function Mi(o,e,t,i,r,s,u,l,d,p,y,A,b,f,B){let k=P([g("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:l,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:y,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:b,isSigner:!1,isWritable:!1},{pubkey:Et,isSigner:!1,isWritable:!1}],K=Buffer.alloc(k.span);k.encode({depositEntryIndex:f,amount:B},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([g("ins")]),l=[{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:l,programId:o,data:d})}function vi(o,e,t,i,r,s,u,l){let d=P([g("voterBump"),g("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:Ve,isSigner:!1,isWritable:!1},{pubkey:Et,isSigner:!1,isWritable:!1}],y=Buffer.alloc(d.span);d.encode({voterBump:u,voterWeightRecordBump:l},y);let A=Buffer.from([...gt.voterStakeRegistryCreateVoter,...y]);return new w.TransactionInstruction({keys:p,programId:o,data:A})}function Vi(o,e,t,i,r,s,u,l,d,p,y,A){let b=P([g("depositEntryIndex"),g("kind"),g("option"),n("startTs"),j("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:Ve,isSigner:!1,isWritable:!1}],B=Buffer.alloc(b.span);b.encode({depositEntryIndex:l,kind:d,option:p===void 0?0:1,startTs:p,periods:y,allowClawback:A},B);let k=Buffer.from([...gt.voterStakeRegistryCreateDepositEntry,...B]);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:l,tokenProgram:d}){let p=tn(i,r,s).publicKey,y=ye({programId:e,poolId:l,owner:u,version:3}),A=await o.getAccountInfo(y);if(A===null)throw Error("user is not staker");let b=ze.decode(A.data),f=b.deposited.sub(b.voteLockedBalance);if(console.log("amount",f.toString()),f.eq(new bt.default(0)))throw Error("user do not has new stake amount");let B=nn(e,l).publicKey,k=on(e,l).publicKey,{publicKey:T,nonce:K}=rn(i,p,u),x=de(T,B,d).publicKey,{publicKey:V,nonce:E}=an(i,p,u),I=sn(t,r,s,u).publicKey,C=[],L=de(u,B,d).publicKey;if(await o.getAccountInfo(L)===null&&C.push((0,ne.createAssociatedTokenAccountIdempotentInstruction)(u,L,u,B)),await o.getAccountInfo(T)===null){let Z=Fi(t,r,u,s,u,I);C.push(Z,vi(i,p,T,V,u,u,K,E))}let{index:W,isInit:le}=await un(o,p,T,B);return le||C.push(Vi(i,p,T,x,u,u,B,W,0,void 0,0,!1)),C.push(Oi(i,p,T,x,L,u,y,l,B,k,e,W,f),Ni(i,p,T,V)),C}async function ms({connection:o,programId:e,governanceProgramId:t,voteWeightAddinProgramId:i,realm:r,communityTokenMint:s,owner:u,poolId:l,tokenProgram:d}){let p=tn(i,r,s).publicKey,y=ye({programId:e,poolId:l,owner:u,version:3}),A=await o.getAccountInfo(y);if(A===null)throw Error("user is not staker");let b=ze.decode(A.data);if(b.voteLockedBalance.eq(new bt.default(0)))throw Error("user has vote locked balance = 0");let f=nn(e,l).publicKey,B=on(e,l).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,V=[],{index:E,isInit:I}=await un(o,p,k,f);if(!I)throw Error("deposit entry index check error");return V.push(Mi(i,p,k,u,x,K,T,de(u,f,d).publicKey,y,l,f,B,e,E,b.voteLockedBalance)),V}function _i({payer:o,rewardVault:e,userRewardTokenPub:t,farmKeys:i,rewardInfo:r}){let s=Buffer.alloc(Nt.span);Nt.encode({instruction:3,rewardReopenTime:_(r.openTime),rewardEndTime:_(r.endTime),rewardPerSecond:_(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:_(r.perSecond),rewardOpenTime:_(r.openTime),rewardEndTime:_(r.endTime),rewardType:_(Re[r.rewardType])},s);let u=[...vn,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:l,amount:d,deposit:p}=o,[y,A]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],b=ye({programId:y,poolId:A,owner:u,version:i}),f=Buffer.alloc(se.span);se.encode({instruction:l,amount:d},f);let B=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:b}),c({pubkey:u,isWritable:!1,isSigner:!0}),c({pubkey:r})]:[c({pubkey:A}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:b}),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++)B.push(c({pubkey:s[k]})),B.push(c({pubkey:new w.PublicKey(t.rewardInfos[k].vault)}));if(i===6)for(let k=0;k<t.rewardInfos.length;k++)B.push(c({pubkey:new w.PublicKey(t.rewardInfos[k].vault)})),B.push(c({pubkey:s[k]}));return new w.TransactionInstruction({programId:y,keys:B,data:f})}function no(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u}=o,[l,d]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],p=ye({programId:l,poolId:d,owner:s,version:6}),y=Buffer.alloc(se.span);se.encode({instruction:2,amount:_(u)},y);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 b=0;b<t.rewardInfos.length;b++)A.push(c({pubkey:new w.PublicKey(t.rewardInfos[b].vault)})),A.push(c({pubkey:r[b]}));return new w.TransactionInstruction({programId:l,keys:A,data:y})}function oo(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:l}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],y=ye({programId:d,poolId:p,owner:s,version:5}),A=Buffer.alloc(se.span);se.encode({instruction:12,amount:_(u)},A);let b=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:y}),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++)b.push(c({pubkey:r[f]})),b.push(c({pubkey:new w.PublicKey(t.rewardInfos[f].vault)}));if(l)for(let f of l)b.push(c({pubkey:f}));return new w.TransactionInstruction({programId:d,keys:b,data:A})}function Di(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:l}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],y=P([g("instruction"),n("amount")]),A=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:l[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)})],b=Buffer.alloc(y.span);return y.encode({instruction:2,amount:u},b),new w.TransactionInstruction({keys:A,programId:d,data:b})}function io(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:l}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],y=ye({programId:d,poolId:p,owner:s,version:3}),A=Buffer.alloc(se.span);se.encode({instruction:11,amount:_(u)},A);let b=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:y}),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(l)for(let f of l)b.push(c({pubkey:f}));return new w.TransactionInstruction({programId:d,keys:b,data:A})}function Wi(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:l}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],y=ye({programId:d,poolId:p,owner:s,version:3}),A=Buffer.alloc(se.span);se.encode({instruction:10,amount:_(u)},A);let b=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:y}),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(l)for(let f of l)b.push(c({pubkey:f}));return new w.TransactionInstruction({programId:d,keys:b,data:A})}function qi(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u,userAuxiliaryLedgers:l}=o,[d,p]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],y=ye({programId:d,poolId:p,owner:s,version:5}),A=Buffer.alloc(se.span);se.encode({instruction:11,amount:_(u)},A);let b=[c({pubkey:p}),c({pubkey:new w.PublicKey(t.authority),isWritable:!1}),c({pubkey:y}),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++)b.push(c({pubkey:r[f]})),b.push(c({pubkey:new w.PublicKey(t.rewardInfos[f].vault)}));if(l)for(let f of l)b.push(c({pubkey:f}));return new w.TransactionInstruction({programId:d,keys:b,data:A})}function Ui(o){let{farmInfo:e,farmKeys:t,lpAccount:i,rewardAccounts:r,owner:s,amount:u}=o,[l,d]=[new w.PublicKey(e.programId),new w.PublicKey(e.id)],p=ye({programId:l,poolId:d,owner:s,version:6}),y=Buffer.alloc(se.span);se.encode({instruction:1,amount:_(u)},y);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 b=0;b<t.rewardInfos.length;b++)A.push(c({pubkey:new w.PublicKey(t.rewardInfos[b].vault)})),A.push(c({pubkey:r[b]}));return new w.TransactionInstruction({programId:l,keys:A,data:y})}var ys=S(require("bn.js"));var Gs=require("@solana/web3.js"),dn=require("@solana/spl-token");var bs=S(require("bn.js"));var ro=S(require("bn.js")),gs=new ro.default(25),Ps=new ro.default(1e4);var $i=require("@solana/spl-token"),ln=require("@solana/web3.js");var Zi=require("@solana/web3.js"),Hi=S(require("bn.js"));function As(o){return typeof o=="object"&&o!==null&&![ae,ge,Zi.PublicKey,z,Hi.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=S(require("bn.js"));var ws=P([g("instruction"),n("amountIn"),n("minAmountOut")]),ks=P([g("instruction"),n("maxAmountIn"),n("amountOut")]),hb=P([g("instruction"),g("nonce")]),Ts=P([g("instruction"),g("nonce"),n("startTime")]),ji=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"),v("swapBaseInAmount"),v("swapQuoteOutAmount"),n("swapBase2QuoteFee"),v("swapQuoteInAmount"),v("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"),v("swapBaseInAmount"),v("swapQuoteOutAmount"),v("swapQuoteInAmount"),v("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([g("instruction"),n("baseAmountIn"),n("quoteAmountIn"),n("fixedSide"),n("otherAmountMin")]),Is=P([g("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")]),_b=P([n("accountType"),n("status"),n("multiplier"),n("validDataCount"),h(xs,Ks,"DataElement")]);var Rs=require("@solana/web3.js"),Ls=S(require("decimal.js")),Os=require("@solana/spl-token");var Cs=require("@solana/web3.js");var Ub=U("Raydium_liquidity_serum");var zs=S(require("bn.js")),Xs=S(require("decimal.js"));var vs=require("@solana/spl-token"),Vs=require("@solana/web3.js"),_s=S(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([D(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"),D(7)]);var eu=require("@solana/web3.js"),Pt=require("@solana/spl-token");var Zs=S(require("bn.js"));var er=S(require("bn.js"));var rP=new er.default(0);var Ys=S(require("bn.js"));var tr=S(require("bn.js")),$t=new tr.default(1e6);var tu=S(require("bn.js")),nu=S(require("decimal.js"));var pn=require("@solana/web3.js"),ao=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");var KP=Buffer.from("locked_liquidity","utf8");var _P=U("Raydium_cpmm"),EP={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 js=P([D(8),g("bump"),be("disableCreatePool"),te("index"),n("tradeFeeRate"),n("protocolFeeRate"),n("fundFeeRate"),n("createPoolFee"),a("protocolOwner"),a("fundOwner"),n("creatorFeeRate"),h(n(),15)]),nr=P([D(8),a("configId"),a("poolCreator"),a("vaultA"),a("vaultB"),a("mintLp"),a("mintA"),a("mintB"),a("mintProgramA"),a("mintProgramB"),a("observationId"),g("bump"),g("status"),g("lpDecimals"),g("mintDecimalA"),g("mintDecimalB"),n("lpAmount"),n("protocolFeesMintA"),n("protocolFeesMintB"),n("fundFeesMintA"),n("fundFeesMintB"),n("openTime"),n("epoch"),g("feeOn"),be("enableCreatorFee"),h(g(),6),n("creatorFeesMintA"),n("creatorFeesMintB"),h(n(),28)]),qP=P([D(8),a("configId"),h(n(),30)]);var mr=require("@solana/web3.js"),nt=require("@solana/spl-token"),dr=S(require("bn.js")),Su=S(require("decimal.js"));var so=require("@solana/spl-token"),ar=require("@solana/web3.js"),sr=S(require("bn.js"));var ou=P([n(),n("epoch"),g("curveType"),te("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"),g("bump"),g("status"),g("mintDecimalsA"),g("mintDecimalsB"),g("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"),g("mintProgramFlag"),g("cpmmCreatorFeeOn"),n("platformVestingShare"),h(g(),54)]),tw=P([n(),n("epoch"),a("poolId"),a("beneficiary"),n("claimedAmount"),n("tokenShareAmount"),h(n(),8)]),ir=P([g("migrateType"),g("migrateCpmmFeeOn"),n("supply"),n("totalSellA"),n("totalFundRaisingB"),n("totalLockedAmount"),n("cliffPeriod"),n("unlockPeriod")]),au=P([n("epoch"),g("index"),a("configId"),ir.replicate("bondingCurveParam"),h(n(),50)]),rr=P([n(),n("epoch"),a("platformClaimFeeWallet"),a("platformLockNftWallet"),n("platformScale"),n("creatorScale"),n("burnScale"),n("feeRate"),h(g(),64,"name"),h(g(),256,"web"),h(g(),256,"img"),a("cpConfigId"),n("creatorFeeRate"),a("transferFeeExtensionAuth"),a("platformVestingWallet"),n("platformVestingScale"),a("platformCpCreator"),g("restrictGlobalConfig"),h(g(),107),Bo(au,"platformCurve")]);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");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]),updatePlatformCurveParam:Buffer.from([138,144,138,250,220,128,4,57]),removePlatformCurveParam:Buffer.from([27,30,62,169,93,224,24,145]),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])};var Iw=new sr.default("18446744073709551615");var ur=require("@solana/spl-token");var su=S(require("bn.js")),uu=S(require("decimal.js"));var pu=S(require("bn.js")),fu=S(require("decimal.js"));var cu=S(require("bn.js")),lu=S(require("decimal.js"));var mu=S(require("bn.js")),du=S(require("decimal.js"));var uo=S(require("bn.js")),fn=S(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 uo.default(r.mul(this._Q64).toFixed(0))}};yn._Q64=new fn.default(new uo.default(1).shln(64).toString());var We=require("@solana/spl-token"),ee=S(require("bn.js")),co=require("@solana/web3.js");var ku=S(require("decimal.js")),sT={initPriceX64:new ee.default("515752397214619"),supply:new ee.default(1e15),totalSellA:new ee.default(7931e11),totalFundRaisingB:new ee.default(85e9),totalFundRaisingBUSD:new ee.default(125e8),totalLockedAmount:new ee.default("0"),cliffPeriod:new ee.default("0"),unlockPeriod:new ee.default("0"),decimals:6,virtualA:new ee.default("1073471847374405"),virtualB:new ee.default("30050573465"),realA:new ee.default(0),realB:new ee.default(0),protocolFee:new ee.default(0),platformId:new co.PublicKey("4Bu96XjU84XjPDSpveTVf6LYGCkfW5FK7SNkREWcEfV4"),vestingSchedule:{totalLockedAmount:new ee.default(0),cliffPeriod:new ee.default(0),unlockPeriod:new ee.default(0),startTime:new ee.default(0),totalAllocatedShare:new ee.default(0)}},uT=new ee.default(1e4);var Tu={[Ro.toBase58()]:3};var hu=P([D(5),D(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"),D(7)]);var Iu=require("@solana/web3.js");var MT=U("Serum");var lo=require("@solana/spl-token"),mo=require("@solana/web3.js"),Bu=S(require("bn.js"));var Rh=new dr.default(0);var Ne=require("@solana/web3.js"),pr=require("@solana/spl-token"),po=S(require("bn.js"));var ce=class extends fe{static getPdaPoolId(e,t){return J([ce.SEED_CONFIG.pool.id,t.toBuffer()],e)}static getPdaOwnerId(e,t,i,r){return J([ce.SEED_CONFIG.owner.id,t.toBuffer(),i.toBuffer(),Buffer.from(new po.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(y=>ce.getPdaPoolId(t,y).publicKey),l=[];for(let y=0;y<ce.VERSION_PROJECT.length;y++)l.push(...u.map(A=>ce.getPdaOwnerId(t,A,r,y).publicKey));let d=await he(e,[...u,...l]),p=[];for(let y=0;y<d.length;y++){let A=Math.floor(y/i.length),b=y%i.length,f=u[b],B=l[y],k=d[b],T=d[i.length+y];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),V=K.openTime.toNumber(),E=K.endTime.toNumber(),I=x.tokenInfo.map(N=>N.debtAmount.gt(new po.default(0))).filter(N=>!N).length!==3,C=s>V&&s<E&&K.status===1,L=I&&C;p.push({programId:t,poolId:f,ammId:K.ammId,ownerAccountId:B,snapshotLpAmount:x.lpAmount,project:ce.VERSION_PROJECT[A],openTime:V,endTime:E,canClaim:L,canClaimErrorType:I?C?void 0:"outOfOperationalTime":"alreadyClaimIt",tokenInfo:K.tokenInfo.map((N,F)=>({mintAddress:N.mintAddress,mintVault:N.mintVault,mintDecimals:N.mintDecimals,perLpLoss:N.perLpLoss,debtAmount:x.tokenInfo[F].debtAmount.add(x.tokenInfo[F].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:y,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(y)}r.addInstruction({instructions:[ce.makeClaimInstruction({programId:e.programId,poolInfo:e,ownerInfo:{wallet:s,ownerPda:e.ownerAccountId,claimAddress:u}})]});let{transaction:l,signers:d}=r.build();return[{transaction:l,signer:d}]}async makeClaimAllTransaction({poolInfos:e,ownerInfo:t,feePayer:i}){let r=this.createTxBuilder(i),s=t.wallet||this.scope.ownerPubKey,u={};for(let y of e){let A=[];for(let b of y.tokenInfo){let{account:f,instructionParams:B}=await this.scope.account.getOrCreateTokenAccount({mint:b.mintAddress,owner:this.scope.ownerPubKey,notUseTokenAccount:b.mintAddress.equals(ae.WSOL.mint),createInfo:{payer:s,amount:0},skipCloseAccount:!b.mintAddress.equals(ae.WSOL.mint),associatedOnly:b.mintAddress.equals(ae.WSOL.mint)?!1:t.associatedOnly});B&&r.addInstruction(B),f&&(u[b.mintAddress.toString()]=f,A.push(f))}r.addInstruction({instructions:[ce.makeClaimInstruction({programId:y.programId,poolInfo:y,ownerInfo:{wallet:s,ownerPda:y.ownerAccountId,claimAddress:A}})]})}let{transaction:l,signers:d}=r.build(),p=r.allInstructions;return zn(p,[s,...d.map(y=>y.publicKey)])?[{transaction:l,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 l=Buffer.from([10,66,208,184,161,6,191,98,...u]);return new Ne.TransactionInstruction({keys:s,programId:e,data:l})}},ke=ce;ke.CLAIMED_NUM=3,ke.POOL_LAYOUT=P([D(8),g("bump"),g("status"),n("openTime"),n("endTime"),a("ammId"),h(P([g("mintDecimals"),a("mintAddress"),a("mintVault"),n("perLpLoss"),n("totalClaimedAmount")]),ce.CLAIMED_NUM,"tokenInfo"),h(n(),10,"padding")]),ke.OWNER_LAYOUT=P([D(8),g("bump"),g("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 Ku=require("@solana/web3.js"),At=require("@solana/spl-token");var mB=new Me.default(2),dB=new Me.default(3),pB=new Me.default(5),Mn=new Me.default(10),fB=new Me.default(100),yB=new Me.default(1e3),bB=new Me.default(1e4);function Wn(o){return Mn.pow(_(o))}var fr=o=>typeof o=="number",Ru=o=>o?new Date(o):new Date,bn=o=>Ru(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 On(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}=J([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}=J([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})=>J([e.toBuffer()],o);function Yi(o){return{isSet:new pe.default(1),rewardPerSecond:_(o.perSecond),rewardOpenTime:_(o.openTime),rewardEndTime:_(o.endTime),rewardType:_(Re[o.rewardType])}}function Qi(o){return _(o.endTime).sub(_(o.openTime)).mul(_(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 l=s.sub(r.rewardLastUpdateTime).mul(r.rewardPerSecond),d=r.totalReward.sub(r.totalRewardEmissioned);d.lt(l)?(l=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(l.mul(o.rewardMultiplier).div(e.amount)),r.totalRewardEmissioned=r.totalRewardEmissioned.add(l))}return o}async function Lu({connection:o,farmPools:e,owner:t,config:i,chainTime:r}){let s=!1,u=!1,l=new pe.default(10),d=[];for(let b of e){let f=De(b);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:b.version}),version:f.version,key:"ledger",poolId:f.id})}let p={},y=await Le(o,d,i);for(let{pubkey:b,version:f,key:B,poolId:k,accountInfo:T}of y){let K=k.toBase58();if(p[K]=M({},p[K]),B==="state"){let x=gr(f);(!T||!T.data||T.data.length!==x.span)&&wt.logWithError(`invalid farm state account info, pools.id, ${b}`),p[K].state=x.decode(T.data)}else if(B==="lpVault")(!T||!T.data||T.data.length!==He.span)&&wt.logWithError(`invalid farm lp vault account info, pools.lpVault, ${b}`),p[K].lpVault=He.decode(T.data);else if(B==="ledger"){let x=cn(f);T&&T.data&&(T.data.length!==x.span&&wt.logWithError(`invalid farm ledger account info, ledger, ${b}`),p[K].ledger=x.decode(T.data))}}let A=u||s?await o.getSlot():0;for(let b of Object.keys(p))p[b]!==void 0&&(p[b].state=Pr(p[b].state,p[b].lpVault,A,r));for(let[b,{state:f,ledger:B}]of Object.entries(p))if(B){let k=f.version===6?f.rewardMultiplier:f.rewardInfos.length===1?l.pow(new pe.default(9)):l.pow(new pe.default(15)),T=f.rewardInfos.map((K,x)=>{let V=B.rewardDebts[x];return B.deposited.mul(f.version===6?K.accRewardPerShare:K.perShareReward).div(k).sub(V)});p[b].wrapped=q(M({},p[b].wrapped),{pendingRewards:T})}return p}function Ou(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=Cn.decode(r.data).votingMints.findIndex(y=>y.mint.equals(i));if(u===-1)throw Error("find voter mint error");let l=await o.getAccountInfo(t);if(l===null)return{index:u,isInit:!1};let p=Rn.decode(l.data).deposits.findIndex(y=>y.isUsed&&y.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