1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625 |
- {
- "version": "0.1.0",
- "name": "amm_v3",
- "instructions": [
- {
- "name": "createAmmConfig",
- "docs": [
- "# Arguments",
- "",
- "* `ctx`- The accounts needed by instruction.",
- "* `index` - The index of amm config, there may be multiple config.",
- "* `tick_spacing` - The tickspacing binding with config, cannot be changed.",
- "* `trade_fee_rate` - Trade fee rate, can be changed.",
- "* `protocol_fee_rate` - The rate of protocol fee within tarde fee.",
- "* `fund_fee_rate` - The rate of fund fee within tarde fee.",
- ""
- ],
- "accounts": [
- {
- "name": "owner",
- "isMut": true,
- "isSigner": true,
- "docs": ["Address to be set as protocol owner."]
- },
- {
- "name": "ammConfig",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "Initialize config state account to store protocol owner address and fee rates."
- ]
- },
- {
- "name": "systemProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "index",
- "type": "u16"
- },
- {
- "name": "tickSpacing",
- "type": "u16"
- },
- {
- "name": "tradeFeeRate",
- "type": "u32"
- },
- {
- "name": "protocolFeeRate",
- "type": "u32"
- },
- {
- "name": "fundFeeRate",
- "type": "u32"
- }
- ]
- },
- {
- "name": "updateAmmConfig",
- "docs": [
- "Updates the owner of the amm config",
- "Must be called by the current owner or admin",
- "",
- "# Arguments",
- "",
- "* `ctx`- The context of accounts",
- "* `trade_fee_rate`- The new trade fee rate of amm config, be set when `param` is 0",
- "* `protocol_fee_rate`- The new protocol fee rate of amm config, be set when `param` is 1",
- "* `fund_fee_rate`- The new fund fee rate of amm config, be set when `param` is 2",
- "* `new_owner`- The config's new owner, be set when `param` is 3",
- "* `new_fund_owner`- The config's new fund owner, be set when `param` is 4",
- "* `param`- The vaule can be 0 | 1 | 2 | 3 | 4, otherwise will report a error",
- ""
- ],
- "accounts": [
- {
- "name": "owner",
- "isMut": false,
- "isSigner": true,
- "docs": ["The amm config owner or admin"]
- },
- {
- "name": "ammConfig",
- "isMut": true,
- "isSigner": false,
- "docs": ["Amm config account to be changed"]
- }
- ],
- "args": [
- {
- "name": "param",
- "type": "u8"
- },
- {
- "name": "value",
- "type": "u32"
- }
- ]
- },
- {
- "name": "createPool",
- "docs": [
- "Creates a pool for the given token pair and the initial price",
- "",
- "# Arguments",
- "",
- "* `ctx`- The context of accounts",
- "* `sqrt_price_x64` - the initial sqrt price (amount_token_1 / amount_token_0) of the pool as a Q64.64",
- ""
- ],
- "accounts": [
- {
- "name": "poolCreator",
- "isMut": true,
- "isSigner": true,
- "docs": ["Address paying to create the pool. Can be anyone"]
- },
- {
- "name": "ammConfig",
- "isMut": false,
- "isSigner": false,
- "docs": ["Which config the pool belongs to."]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": ["Initialize an account to store the pool state"]
- },
- {
- "name": "tokenMint0",
- "isMut": false,
- "isSigner": false,
- "docs": ["Token_0 mint, the key must be smaller then token_1 mint."]
- },
- {
- "name": "tokenMint1",
- "isMut": false,
- "isSigner": false,
- "docs": ["Token_1 mint"]
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["Token_0 vault for the pool"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["Token_1 vault for the pool"]
- },
- {
- "name": "observationState",
- "isMut": true,
- "isSigner": false,
- "docs": ["Initialize an account to store oracle observations"]
- },
- {
- "name": "tickArrayBitmap",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "Initialize an account to store if a tick array is initialized."
- ]
- },
- {
- "name": "tokenProgram0",
- "isMut": false,
- "isSigner": false,
- "docs": ["Spl token program or token program 2022"]
- },
- {
- "name": "tokenProgram1",
- "isMut": false,
- "isSigner": false,
- "docs": ["Spl token program or token program 2022"]
- },
- {
- "name": "systemProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["To create a new program account"]
- },
- {
- "name": "rent",
- "isMut": false,
- "isSigner": false,
- "docs": ["Sysvar for program account"]
- }
- ],
- "args": [
- {
- "name": "sqrtPriceX64",
- "type": "u128"
- },
- {
- "name": "openTime",
- "type": "u64"
- }
- ]
- },
- {
- "name": "updatePoolStatus",
- "docs": [
- "Update pool status for given vaule",
- "",
- "# Arguments",
- "",
- "* `ctx`- The context of accounts",
- "* `status` - The vaule of status",
- ""
- ],
- "accounts": [
- {
- "name": "authority",
- "isMut": false,
- "isSigner": true
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "status",
- "type": "u8"
- }
- ]
- },
- {
- "name": "createOperationAccount",
- "docs": [
- "Creates an operation account for the program",
- "",
- "# Arguments",
- "",
- "* `ctx`- The context of accounts",
- ""
- ],
- "accounts": [
- {
- "name": "owner",
- "isMut": true,
- "isSigner": true,
- "docs": ["Address to be set as operation account owner."]
- },
- {
- "name": "operationState",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "Initialize operation state account to store operation owner address and white list mint."
- ]
- },
- {
- "name": "systemProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": []
- },
- {
- "name": "updateOperationAccount",
- "docs": [
- "Update the operation account",
- "",
- "# Arguments",
- "",
- "* `ctx`- The context of accounts",
- "* `param`- The vaule can be 0 | 1 | 2 | 3, otherwise will report a error",
- "* `keys`- update operation owner when the `param` is 0",
- "remove operation owner when the `param` is 1",
- "update whitelist mint when the `param` is 2",
- "remove whitelist mint when the `param` is 3",
- ""
- ],
- "accounts": [
- {
- "name": "owner",
- "isMut": false,
- "isSigner": true,
- "docs": ["Address to be set as operation account owner."]
- },
- {
- "name": "operationState",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "Initialize operation state account to store operation owner address and white list mint."
- ]
- },
- {
- "name": "systemProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "param",
- "type": "u8"
- },
- {
- "name": "keys",
- "type": {
- "vec": "publicKey"
- }
- }
- ]
- },
- {
- "name": "transferRewardOwner",
- "docs": [
- "Transfer reward owner",
- "",
- "# Arguments",
- "",
- "* `ctx`- The context of accounts",
- "* `new_owner`- new owner pubkey",
- ""
- ],
- "accounts": [
- {
- "name": "authority",
- "isMut": false,
- "isSigner": true,
- "docs": ["Address to be set as operation account owner."]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "newOwner",
- "type": "publicKey"
- }
- ]
- },
- {
- "name": "initializeReward",
- "docs": [
- "Initialize a reward info for a given pool and reward index",
- "",
- "# Arguments",
- "",
- "* `ctx`- The context of accounts",
- "* `reward_index` - the index to reward info",
- "* `open_time` - reward open timestamp",
- "* `end_time` - reward end timestamp",
- "* `emissions_per_second_x64` - Token reward per second are earned per unit of liquidity.",
- ""
- ],
- "accounts": [
- {
- "name": "rewardFunder",
- "isMut": true,
- "isSigner": true,
- "docs": ["The founder deposit reward token to vault"]
- },
- {
- "name": "funderTokenAccount",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "ammConfig",
- "isMut": false,
- "isSigner": false,
- "docs": ["For check the reward_funder authority"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": ["Set reward for this pool"]
- },
- {
- "name": "operationState",
- "isMut": false,
- "isSigner": false,
- "docs": ["load info from the account to judge reward permission"]
- },
- {
- "name": "rewardTokenMint",
- "isMut": false,
- "isSigner": false,
- "docs": ["Reward mint"]
- },
- {
- "name": "rewardTokenVault",
- "isMut": true,
- "isSigner": false,
- "docs": ["A pda, reward vault"]
- },
- {
- "name": "rewardTokenProgram",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "systemProgram",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "rent",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "param",
- "type": {
- "defined": "InitializeRewardParam"
- }
- }
- ]
- },
- {
- "name": "collectRemainingRewards",
- "docs": [
- "Collect remaining reward token for reward founder",
- "",
- "# Arguments",
- "",
- "* `ctx`- The context of accounts",
- "* `reward_index` - the index to reward info",
- ""
- ],
- "accounts": [
- {
- "name": "rewardFunder",
- "isMut": false,
- "isSigner": true,
- "docs": ["The founder who init reward info in berfore"]
- },
- {
- "name": "funderTokenAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["The funder's reward token account"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": ["Set reward for this pool"]
- },
- {
- "name": "rewardTokenVault",
- "isMut": false,
- "isSigner": false,
- "docs": [
- "Reward vault transfer remaining token to founder token account"
- ]
- },
- {
- "name": "rewardVaultMint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of reward token vault"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": ["Token program 2022"]
- },
- {
- "name": "memoProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["memo program"]
- }
- ],
- "args": [
- {
- "name": "rewardIndex",
- "type": "u8"
- }
- ]
- },
- {
- "name": "updateRewardInfos",
- "docs": [
- "Update rewards info of the given pool, can be called for everyone",
- "",
- "# Arguments",
- "",
- "* `ctx`- The context of accounts",
- ""
- ],
- "accounts": [
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": ["The liquidity pool for which reward info to update"]
- }
- ],
- "args": []
- },
- {
- "name": "setRewardParams",
- "docs": [
- "Restset reward param, start a new reward cycle or extend the current cycle.",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `reward_index` - The index of reward token in the pool.",
- "* `emissions_per_second_x64` - The per second emission reward, when extend the current cycle,",
- "new value can't be less than old value",
- "* `open_time` - reward open timestamp, must be set when state a new cycle",
- "* `end_time` - reward end timestamp",
- ""
- ],
- "accounts": [
- {
- "name": "authority",
- "isMut": false,
- "isSigner": true,
- "docs": [
- "Address to be set as protocol owner. It pays to create factory state account."
- ]
- },
- {
- "name": "ammConfig",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "operationState",
- "isMut": false,
- "isSigner": false,
- "docs": ["load info from the account to judge reward permission"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Token program"]
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": ["Token program 2022"]
- }
- ],
- "args": [
- {
- "name": "rewardIndex",
- "type": "u8"
- },
- {
- "name": "emissionsPerSecondX64",
- "type": "u128"
- },
- {
- "name": "openTime",
- "type": "u64"
- },
- {
- "name": "endTime",
- "type": "u64"
- }
- ]
- },
- {
- "name": "collectProtocolFee",
- "docs": [
- "Collect the protocol fee accrued to the pool",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `amount_0_requested` - The maximum amount of token_0 to send, can be 0 to collect fees in only token_1",
- "* `amount_1_requested` - The maximum amount of token_1 to send, can be 0 to collect fees in only token_0",
- ""
- ],
- "accounts": [
- {
- "name": "owner",
- "isMut": false,
- "isSigner": true,
- "docs": ["Only admin or config owner can collect fee now"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": ["Pool state stores accumulated protocol fee amount"]
- },
- {
- "name": "ammConfig",
- "isMut": false,
- "isSigner": false,
- "docs": ["Amm config account stores owner"]
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_0"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_1"]
- },
- {
- "name": "vault0Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 0"]
- },
- {
- "name": "vault1Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 1"]
- },
- {
- "name": "recipientTokenAccount0",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "The address that receives the collected token_0 protocol fees"
- ]
- },
- {
- "name": "recipientTokenAccount1",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "The address that receives the collected token_1 protocol fees"
- ]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["The SPL program to perform token transfers"]
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": ["The SPL program 2022 to perform token transfers"]
- }
- ],
- "args": [
- {
- "name": "amount0Requested",
- "type": "u64"
- },
- {
- "name": "amount1Requested",
- "type": "u64"
- }
- ]
- },
- {
- "name": "collectFundFee",
- "docs": [
- "Collect the fund fee accrued to the pool",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `amount_0_requested` - The maximum amount of token_0 to send, can be 0 to collect fees in only token_1",
- "* `amount_1_requested` - The maximum amount of token_1 to send, can be 0 to collect fees in only token_0",
- ""
- ],
- "accounts": [
- {
- "name": "owner",
- "isMut": false,
- "isSigner": true,
- "docs": ["Only admin or fund_owner can collect fee now"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": ["Pool state stores accumulated protocol fee amount"]
- },
- {
- "name": "ammConfig",
- "isMut": false,
- "isSigner": false,
- "docs": ["Amm config account stores fund_owner"]
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_0"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_1"]
- },
- {
- "name": "vault0Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 0"]
- },
- {
- "name": "vault1Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 1"]
- },
- {
- "name": "recipientTokenAccount0",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "The address that receives the collected token_0 protocol fees"
- ]
- },
- {
- "name": "recipientTokenAccount1",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "The address that receives the collected token_1 protocol fees"
- ]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["The SPL program to perform token transfers"]
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": ["The SPL program 2022 to perform token transfers"]
- }
- ],
- "args": [
- {
- "name": "amount0Requested",
- "type": "u64"
- },
- {
- "name": "amount1Requested",
- "type": "u64"
- }
- ]
- },
- {
- "name": "openPosition",
- "docs": [
- "#[deprecated(note = \"Use `open_position_with_token22_nft` instead.\")]",
- "Creates a new position wrapped in a NFT",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `tick_lower_index` - The low boundary of market",
- "* `tick_upper_index` - The upper boundary of market",
- "* `tick_array_lower_start_index` - The start index of tick array which include tick low",
- "* `tick_array_upper_start_index` - The start index of tick array which include tick upper",
- "* `liquidity` - The liquidity to be added",
- "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check",
- "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check",
- ""
- ],
- "accounts": [
- {
- "name": "payer",
- "isMut": true,
- "isSigner": true,
- "docs": ["Pays to mint the position"]
- },
- {
- "name": "positionNftOwner",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "positionNftMint",
- "isMut": true,
- "isSigner": true,
- "docs": ["Unique token mint address"]
- },
- {
- "name": "positionNftAccount",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "Token account where position NFT will be minted",
- "This account created in the contract by cpi to avoid large stack variables"
- ]
- },
- {
- "name": "metadataAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["To store metaplex metadata"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": ["Add liquidity for this pool"]
- },
- {
- "name": "protocolPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["Store the information of market marking in range"]
- },
- {
- "name": "tickArrayLower",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tickArrayUpper",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "personalPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["personal position state"]
- },
- {
- "name": "tokenAccount0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The token_0 account deposit token to the pool"]
- },
- {
- "name": "tokenAccount1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The token_1 account deposit token to the pool"]
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_0"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_1"]
- },
- {
- "name": "rent",
- "isMut": false,
- "isSigner": false,
- "docs": ["Sysvar for token mint and ATA creation"]
- },
- {
- "name": "systemProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create the position manager state account"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create mint account and mint tokens"]
- },
- {
- "name": "associatedTokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create an ATA for receiving position NFT"]
- },
- {
- "name": "metadataProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create NFT metadata"]
- }
- ],
- "args": [
- {
- "name": "tickLowerIndex",
- "type": "i32"
- },
- {
- "name": "tickUpperIndex",
- "type": "i32"
- },
- {
- "name": "tickArrayLowerStartIndex",
- "type": "i32"
- },
- {
- "name": "tickArrayUpperStartIndex",
- "type": "i32"
- },
- {
- "name": "liquidity",
- "type": "u128"
- },
- {
- "name": "amount0Max",
- "type": "u64"
- },
- {
- "name": "amount1Max",
- "type": "u64"
- }
- ]
- },
- {
- "name": "openPositionV2",
- "docs": [
- "#[deprecated(note = \"Use `open_position_with_token22_nft` instead.\")]",
- "Creates a new position wrapped in a NFT, support Token2022",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `tick_lower_index` - The low boundary of market",
- "* `tick_upper_index` - The upper boundary of market",
- "* `tick_array_lower_start_index` - The start index of tick array which include tick low",
- "* `tick_array_upper_start_index` - The start index of tick array which include tick upper",
- "* `liquidity` - The liquidity to be added, if zero, and the base_flage is specified, calculate liquidity base amount_0_max or amount_1_max according base_flag, otherwise open position with zero liquidity",
- "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check",
- "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check",
- "* `with_metadata` - The flag indicating whether to create NFT mint metadata",
- "* `base_flag` - if the liquidity specified as zero, true: calculate liquidity base amount_0_max otherwise base amount_1_max",
- ""
- ],
- "accounts": [
- {
- "name": "payer",
- "isMut": true,
- "isSigner": true,
- "docs": ["Pays to mint the position"]
- },
- {
- "name": "positionNftOwner",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "positionNftMint",
- "isMut": true,
- "isSigner": true,
- "docs": ["Unique token mint address"]
- },
- {
- "name": "positionNftAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["Token account where position NFT will be minted"]
- },
- {
- "name": "metadataAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["To store metaplex metadata"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": ["Add liquidity for this pool"]
- },
- {
- "name": "protocolPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["Store the information of market marking in range"]
- },
- {
- "name": "tickArrayLower",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tickArrayUpper",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "personalPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["personal position state"]
- },
- {
- "name": "tokenAccount0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The token_0 account deposit token to the pool"]
- },
- {
- "name": "tokenAccount1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The token_1 account deposit token to the pool"]
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_0"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_1"]
- },
- {
- "name": "rent",
- "isMut": false,
- "isSigner": false,
- "docs": ["Sysvar for token mint and ATA creation"]
- },
- {
- "name": "systemProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create the position manager state account"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create mint account and mint tokens"]
- },
- {
- "name": "associatedTokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create an ATA for receiving position NFT"]
- },
- {
- "name": "metadataProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create NFT metadata"]
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create mint account and mint tokens"]
- },
- {
- "name": "vault0Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 0"]
- },
- {
- "name": "vault1Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 1"]
- }
- ],
- "args": [
- {
- "name": "tickLowerIndex",
- "type": "i32"
- },
- {
- "name": "tickUpperIndex",
- "type": "i32"
- },
- {
- "name": "tickArrayLowerStartIndex",
- "type": "i32"
- },
- {
- "name": "tickArrayUpperStartIndex",
- "type": "i32"
- },
- {
- "name": "liquidity",
- "type": "u128"
- },
- {
- "name": "amount0Max",
- "type": "u64"
- },
- {
- "name": "amount1Max",
- "type": "u64"
- },
- {
- "name": "withMetadata",
- "type": "bool"
- },
- {
- "name": "baseFlag",
- "type": {
- "option": "bool"
- }
- }
- ]
- },
- {
- "name": "openPositionWithToken22Nft",
- "docs": [
- "Creates a new position wrapped in a Token2022 NFT without relying on metadata_program and metadata_account, reduce the cost for user to create a personal position.",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `tick_lower_index` - The low boundary of market",
- "* `tick_upper_index` - The upper boundary of market",
- "* `tick_array_lower_start_index` - The start index of tick array which include tick low",
- "* `tick_array_upper_start_index` - The start index of tick array which include tick upper",
- "* `liquidity` - The liquidity to be added, if zero, and the base_flage is specified, calculate liquidity base amount_0_max or amount_1_max according base_flag, otherwise open position with zero liquidity",
- "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check",
- "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check",
- "* `with_metadata` - The flag indicating whether to create NFT mint metadata",
- "* `base_flag` - if the liquidity specified as zero, true: calculate liquidity base amount_0_max otherwise base amount_1_max",
- ""
- ],
- "accounts": [
- {
- "name": "payer",
- "isMut": true,
- "isSigner": true,
- "docs": ["Pays to mint the position"]
- },
- {
- "name": "positionNftOwner",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "positionNftMint",
- "isMut": true,
- "isSigner": true,
- "docs": ["Unique token mint address, initialize in constract"]
- },
- {
- "name": "positionNftAccount",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": ["Add liquidity for this pool"]
- },
- {
- "name": "protocolPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["Store the information of market marking in range"]
- },
- {
- "name": "tickArrayLower",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tickArrayUpper",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "personalPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["personal position state"]
- },
- {
- "name": "tokenAccount0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The token_0 account deposit token to the pool"]
- },
- {
- "name": "tokenAccount1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The token_1 account deposit token to the pool"]
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_0"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_1"]
- },
- {
- "name": "rent",
- "isMut": false,
- "isSigner": false,
- "docs": ["Sysvar for token mint and ATA creation"]
- },
- {
- "name": "systemProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create the position manager state account"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to transfer for token account"]
- },
- {
- "name": "associatedTokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create an ATA for receiving position NFT"]
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": [
- "Program to create NFT mint/token account and transfer for token22 account"
- ]
- },
- {
- "name": "vault0Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 0"]
- },
- {
- "name": "vault1Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 1"]
- }
- ],
- "args": [
- {
- "name": "tickLowerIndex",
- "type": "i32"
- },
- {
- "name": "tickUpperIndex",
- "type": "i32"
- },
- {
- "name": "tickArrayLowerStartIndex",
- "type": "i32"
- },
- {
- "name": "tickArrayUpperStartIndex",
- "type": "i32"
- },
- {
- "name": "liquidity",
- "type": "u128"
- },
- {
- "name": "amount0Max",
- "type": "u64"
- },
- {
- "name": "amount1Max",
- "type": "u64"
- },
- {
- "name": "withMetadata",
- "type": "bool"
- },
- {
- "name": "baseFlag",
- "type": {
- "option": "bool"
- }
- }
- ]
- },
- {
- "name": "closePosition",
- "docs": [
- "Close the user's position and NFT account. If the NFT mint belongs to token2022, it will also be closed and the funds returned to the NFT owner.",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- ""
- ],
- "accounts": [
- {
- "name": "nftOwner",
- "isMut": true,
- "isSigner": true,
- "docs": ["The position nft owner"]
- },
- {
- "name": "positionNftMint",
- "isMut": true,
- "isSigner": false,
- "docs": ["Mint address bound to the personal position."]
- },
- {
- "name": "positionNftAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["User token account where position NFT be minted to"]
- },
- {
- "name": "personalPosition",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "systemProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["System program to close the position state account"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Token/Token2022 program to close token/mint account"]
- }
- ],
- "args": []
- },
- {
- "name": "increaseLiquidity",
- "docs": [
- "#[deprecated(note = \"Use `increase_liquidity_v2` instead.\")]",
- "Increases liquidity with a exist position, with amount paid by `payer`",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `liquidity` - The desired liquidity to be added, can't be zero",
- "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check",
- "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check",
- ""
- ],
- "accounts": [
- {
- "name": "nftOwner",
- "isMut": false,
- "isSigner": true,
- "docs": ["Pays to mint the position"]
- },
- {
- "name": "nftAccount",
- "isMut": false,
- "isSigner": false,
- "docs": ["The token account for nft"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "protocolPosition",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "personalPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["Increase liquidity for this position"]
- },
- {
- "name": "tickArrayLower",
- "isMut": true,
- "isSigner": false,
- "docs": ["Stores init state for the lower tick"]
- },
- {
- "name": "tickArrayUpper",
- "isMut": true,
- "isSigner": false,
- "docs": ["Stores init state for the upper tick"]
- },
- {
- "name": "tokenAccount0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The payer's token account for token_0"]
- },
- {
- "name": "tokenAccount1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The token account spending token_1 to mint the position"]
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_0"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_1"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create mint account and mint tokens"]
- }
- ],
- "args": [
- {
- "name": "liquidity",
- "type": "u128"
- },
- {
- "name": "amount0Max",
- "type": "u64"
- },
- {
- "name": "amount1Max",
- "type": "u64"
- }
- ]
- },
- {
- "name": "increaseLiquidityV2",
- "docs": [
- "Increases liquidity with a exist position, with amount paid by `payer`, support Token2022",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `liquidity` - The desired liquidity to be added, if zero, calculate liquidity base amount_0 or amount_1 according base_flag",
- "* `amount_0_max` - The max amount of token_0 to spend, which serves as a slippage check",
- "* `amount_1_max` - The max amount of token_1 to spend, which serves as a slippage check",
- "* `base_flag` - must be specified if liquidity is zero, true: calculate liquidity base amount_0_max otherwise base amount_1_max",
- ""
- ],
- "accounts": [
- {
- "name": "nftOwner",
- "isMut": false,
- "isSigner": true,
- "docs": ["Pays to mint the position"]
- },
- {
- "name": "nftAccount",
- "isMut": false,
- "isSigner": false,
- "docs": ["The token account for nft"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "protocolPosition",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "personalPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["Increase liquidity for this position"]
- },
- {
- "name": "tickArrayLower",
- "isMut": true,
- "isSigner": false,
- "docs": ["Stores init state for the lower tick"]
- },
- {
- "name": "tickArrayUpper",
- "isMut": true,
- "isSigner": false,
- "docs": ["Stores init state for the upper tick"]
- },
- {
- "name": "tokenAccount0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The payer's token account for token_0"]
- },
- {
- "name": "tokenAccount1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The token account spending token_1 to mint the position"]
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_0"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The address that holds pool tokens for token_1"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["Program to create mint account and mint tokens"]
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": ["Token program 2022"]
- },
- {
- "name": "vault0Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 0"]
- },
- {
- "name": "vault1Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 1"]
- }
- ],
- "args": [
- {
- "name": "liquidity",
- "type": "u128"
- },
- {
- "name": "amount0Max",
- "type": "u64"
- },
- {
- "name": "amount1Max",
- "type": "u64"
- },
- {
- "name": "baseFlag",
- "type": {
- "option": "bool"
- }
- }
- ]
- },
- {
- "name": "decreaseLiquidity",
- "docs": [
- "#[deprecated(note = \"Use `decrease_liquidity_v2` instead.\")]",
- "Decreases liquidity with a exist position",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `liquidity` - The amount by which liquidity will be decreased",
- "* `amount_0_min` - The minimum amount of token_0 that should be accounted for the burned liquidity",
- "* `amount_1_min` - The minimum amount of token_1 that should be accounted for the burned liquidity",
- ""
- ],
- "accounts": [
- {
- "name": "nftOwner",
- "isMut": false,
- "isSigner": true,
- "docs": ["The position owner or delegated authority"]
- },
- {
- "name": "nftAccount",
- "isMut": false,
- "isSigner": false,
- "docs": ["The token account for the tokenized position"]
- },
- {
- "name": "personalPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["Decrease liquidity for this position"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "protocolPosition",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["Token_0 vault"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["Token_1 vault"]
- },
- {
- "name": "tickArrayLower",
- "isMut": true,
- "isSigner": false,
- "docs": ["Stores init state for the lower tick"]
- },
- {
- "name": "tickArrayUpper",
- "isMut": true,
- "isSigner": false,
- "docs": ["Stores init state for the upper tick"]
- },
- {
- "name": "recipientTokenAccount0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The destination token account for receive amount_0"]
- },
- {
- "name": "recipientTokenAccount1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The destination token account for receive amount_1"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["SPL program to transfer out tokens"]
- }
- ],
- "args": [
- {
- "name": "liquidity",
- "type": "u128"
- },
- {
- "name": "amount0Min",
- "type": "u64"
- },
- {
- "name": "amount1Min",
- "type": "u64"
- }
- ]
- },
- {
- "name": "decreaseLiquidityV2",
- "docs": [
- "Decreases liquidity with a exist position, support Token2022",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `liquidity` - The amount by which liquidity will be decreased",
- "* `amount_0_min` - The minimum amount of token_0 that should be accounted for the burned liquidity",
- "* `amount_1_min` - The minimum amount of token_1 that should be accounted for the burned liquidity",
- ""
- ],
- "accounts": [
- {
- "name": "nftOwner",
- "isMut": false,
- "isSigner": true,
- "docs": ["The position owner or delegated authority"]
- },
- {
- "name": "nftAccount",
- "isMut": false,
- "isSigner": false,
- "docs": ["The token account for the tokenized position"]
- },
- {
- "name": "personalPosition",
- "isMut": true,
- "isSigner": false,
- "docs": ["Decrease liquidity for this position"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "protocolPosition",
- "isMut": true,
- "isSigner": false
- },
- {
- "name": "tokenVault0",
- "isMut": true,
- "isSigner": false,
- "docs": ["Token_0 vault"]
- },
- {
- "name": "tokenVault1",
- "isMut": true,
- "isSigner": false,
- "docs": ["Token_1 vault"]
- },
- {
- "name": "tickArrayLower",
- "isMut": true,
- "isSigner": false,
- "docs": ["Stores init state for the lower tick"]
- },
- {
- "name": "tickArrayUpper",
- "isMut": true,
- "isSigner": false,
- "docs": ["Stores init state for the upper tick"]
- },
- {
- "name": "recipientTokenAccount0",
- "isMut": true,
- "isSigner": false,
- "docs": ["The destination token account for receive amount_0"]
- },
- {
- "name": "recipientTokenAccount1",
- "isMut": true,
- "isSigner": false,
- "docs": ["The destination token account for receive amount_1"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["SPL program to transfer out tokens"]
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": ["Token program 2022"]
- },
- {
- "name": "memoProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["memo program"]
- },
- {
- "name": "vault0Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 0"]
- },
- {
- "name": "vault1Mint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 1"]
- }
- ],
- "args": [
- {
- "name": "liquidity",
- "type": "u128"
- },
- {
- "name": "amount0Min",
- "type": "u64"
- },
- {
- "name": "amount1Min",
- "type": "u64"
- }
- ]
- },
- {
- "name": "swap",
- "docs": [
- "#[deprecated(note = \"Use `swap_v2` instead.\")]",
- "Swaps one token for as much as possible of another token across a single pool",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `amount` - Arranged in pairs with other_amount_threshold. (amount_in, amount_out_minimum) or (amount_out, amount_in_maximum)",
- "* `other_amount_threshold` - For slippage check",
- "* `sqrt_price_limit` - The Q64.64 sqrt price √P limit. If zero for one, the price cannot",
- "* `is_base_input` - swap base input or swap base output",
- ""
- ],
- "accounts": [
- {
- "name": "payer",
- "isMut": false,
- "isSigner": true,
- "docs": ["The user performing the swap"]
- },
- {
- "name": "ammConfig",
- "isMut": false,
- "isSigner": false,
- "docs": ["The factory state to read protocol fees"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "The program account of the pool in which the swap will be performed"
- ]
- },
- {
- "name": "inputTokenAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["The user token account for input token"]
- },
- {
- "name": "outputTokenAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["The user token account for output token"]
- },
- {
- "name": "inputVault",
- "isMut": true,
- "isSigner": false,
- "docs": ["The vault token account for input token"]
- },
- {
- "name": "outputVault",
- "isMut": true,
- "isSigner": false,
- "docs": ["The vault token account for output token"]
- },
- {
- "name": "observationState",
- "isMut": true,
- "isSigner": false,
- "docs": ["The program account for the most recent oracle observation"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["SPL program for token transfers"]
- },
- {
- "name": "tickArray",
- "isMut": true,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "amount",
- "type": "u64"
- },
- {
- "name": "otherAmountThreshold",
- "type": "u64"
- },
- {
- "name": "sqrtPriceLimitX64",
- "type": "u128"
- },
- {
- "name": "isBaseInput",
- "type": "bool"
- }
- ]
- },
- {
- "name": "swapV2",
- "docs": [
- "Swaps one token for as much as possible of another token across a single pool, support token program 2022",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `amount` - Arranged in pairs with other_amount_threshold. (amount_in, amount_out_minimum) or (amount_out, amount_in_maximum)",
- "* `other_amount_threshold` - For slippage check",
- "* `sqrt_price_limit` - The Q64.64 sqrt price √P limit. If zero for one, the price cannot",
- "* `is_base_input` - swap base input or swap base output",
- ""
- ],
- "accounts": [
- {
- "name": "payer",
- "isMut": false,
- "isSigner": true,
- "docs": ["The user performing the swap"]
- },
- {
- "name": "ammConfig",
- "isMut": false,
- "isSigner": false,
- "docs": ["The factory state to read protocol fees"]
- },
- {
- "name": "poolState",
- "isMut": true,
- "isSigner": false,
- "docs": [
- "The program account of the pool in which the swap will be performed"
- ]
- },
- {
- "name": "inputTokenAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["The user token account for input token"]
- },
- {
- "name": "outputTokenAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["The user token account for output token"]
- },
- {
- "name": "inputVault",
- "isMut": true,
- "isSigner": false,
- "docs": ["The vault token account for input token"]
- },
- {
- "name": "outputVault",
- "isMut": true,
- "isSigner": false,
- "docs": ["The vault token account for output token"]
- },
- {
- "name": "observationState",
- "isMut": true,
- "isSigner": false,
- "docs": ["The program account for the most recent oracle observation"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["SPL program for token transfers"]
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": ["SPL program 2022 for token transfers"]
- },
- {
- "name": "memoProgram",
- "isMut": false,
- "isSigner": false
- },
- {
- "name": "inputVaultMint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 0"]
- },
- {
- "name": "outputVaultMint",
- "isMut": false,
- "isSigner": false,
- "docs": ["The mint of token vault 1"]
- }
- ],
- "args": [
- {
- "name": "amount",
- "type": "u64"
- },
- {
- "name": "otherAmountThreshold",
- "type": "u64"
- },
- {
- "name": "sqrtPriceLimitX64",
- "type": "u128"
- },
- {
- "name": "isBaseInput",
- "type": "bool"
- }
- ]
- },
- {
- "name": "swapRouterBaseIn",
- "docs": [
- "Swap token for as much as possible of another token across the path provided, base input",
- "",
- "# Arguments",
- "",
- "* `ctx` - The context of accounts",
- "* `amount_in` - Token amount to be swapped in",
- "* `amount_out_minimum` - Panic if output amount is below minimum amount. For slippage.",
- ""
- ],
- "accounts": [
- {
- "name": "payer",
- "isMut": false,
- "isSigner": true,
- "docs": ["The user performing the swap"]
- },
- {
- "name": "inputTokenAccount",
- "isMut": true,
- "isSigner": false,
- "docs": ["The token account that pays input tokens for the swap"]
- },
- {
- "name": "inputTokenMint",
- "isMut": true,
- "isSigner": false,
- "docs": ["The mint of input token"]
- },
- {
- "name": "tokenProgram",
- "isMut": false,
- "isSigner": false,
- "docs": ["SPL program for token transfers"]
- },
- {
- "name": "tokenProgram2022",
- "isMut": false,
- "isSigner": false,
- "docs": ["SPL program 2022 for token transfers"]
- },
- {
- "name": "memoProgram",
- "isMut": false,
- "isSigner": false
- }
- ],
- "args": [
- {
- "name": "amountIn",
- "type": "u64"
- },
- {
- "name": "amountOutMinimum",
- "type": "u64"
- }
- ]
- }
- ],
- "accounts": [
- {
- "name": "AmmConfig",
- "docs": ["Holds the current owner of the factory"],
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "bump",
- "docs": ["Bump to identify PDA"],
- "type": "u8"
- },
- {
- "name": "index",
- "type": "u16"
- },
- {
- "name": "owner",
- "docs": ["Address of the protocol owner"],
- "type": "publicKey"
- },
- {
- "name": "protocolFeeRate",
- "docs": ["The protocol fee"],
- "type": "u32"
- },
- {
- "name": "tradeFeeRate",
- "docs": [
- "The trade fee, denominated in hundredths of a bip (10^-6)"
- ],
- "type": "u32"
- },
- {
- "name": "tickSpacing",
- "docs": ["The tick spacing"],
- "type": "u16"
- },
- {
- "name": "fundFeeRate",
- "docs": [
- "The fund fee, denominated in hundredths of a bip (10^-6)"
- ],
- "type": "u32"
- },
- {
- "name": "paddingU32",
- "type": "u32"
- },
- {
- "name": "fundOwner",
- "type": "publicKey"
- },
- {
- "name": "padding",
- "type": {
- "array": ["u64", 3]
- }
- }
- ]
- }
- },
- {
- "name": "OperationState",
- "docs": ["Holds the current owner of the factory"],
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "bump",
- "docs": ["Bump to identify PDA"],
- "type": "u8"
- },
- {
- "name": "operationOwners",
- "docs": ["Address of the operation owner"],
- "type": {
- "array": ["publicKey", 10]
- }
- },
- {
- "name": "whitelistMints",
- "docs": ["The mint address of whitelist to emmit reward"],
- "type": {
- "array": ["publicKey", 100]
- }
- }
- ]
- }
- },
- {
- "name": "ObservationState",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "initialized",
- "docs": ["Whether the ObservationState is initialized"],
- "type": "bool"
- },
- {
- "name": "recentEpoch",
- "docs": ["recent update epoch"],
- "type": "u64"
- },
- {
- "name": "observationIndex",
- "docs": [
- "the most-recently updated index of the observations array"
- ],
- "type": "u16"
- },
- {
- "name": "poolId",
- "docs": ["belongs to which pool"],
- "type": "publicKey"
- },
- {
- "name": "observations",
- "docs": ["observation array"],
- "type": {
- "array": [
- {
- "defined": "Observation"
- },
- 100
- ]
- }
- },
- {
- "name": "padding",
- "docs": ["padding for feature update"],
- "type": {
- "array": ["u64", 4]
- }
- }
- ]
- }
- },
- {
- "name": "PersonalPositionState",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "bump",
- "docs": ["Bump to identify PDA"],
- "type": {
- "array": ["u8", 1]
- }
- },
- {
- "name": "nftMint",
- "docs": ["Mint address of the tokenized position"],
- "type": "publicKey"
- },
- {
- "name": "poolId",
- "docs": ["The ID of the pool with which this token is connected"],
- "type": "publicKey"
- },
- {
- "name": "tickLowerIndex",
- "docs": ["The lower bound tick of the position"],
- "type": "i32"
- },
- {
- "name": "tickUpperIndex",
- "docs": ["The upper bound tick of the position"],
- "type": "i32"
- },
- {
- "name": "liquidity",
- "docs": ["The amount of liquidity owned by this position"],
- "type": "u128"
- },
- {
- "name": "feeGrowthInside0LastX64",
- "docs": [
- "The token_0 fee growth of the aggregate position as of the last action on the individual position"
- ],
- "type": "u128"
- },
- {
- "name": "feeGrowthInside1LastX64",
- "docs": [
- "The token_1 fee growth of the aggregate position as of the last action on the individual position"
- ],
- "type": "u128"
- },
- {
- "name": "tokenFeesOwed0",
- "docs": [
- "The fees owed to the position owner in token_0, as of the last computation"
- ],
- "type": "u64"
- },
- {
- "name": "tokenFeesOwed1",
- "docs": [
- "The fees owed to the position owner in token_1, as of the last computation"
- ],
- "type": "u64"
- },
- {
- "name": "rewardInfos",
- "type": {
- "array": [
- {
- "defined": "PositionRewardInfo"
- },
- 3
- ]
- }
- },
- {
- "name": "recentEpoch",
- "type": "u64"
- },
- {
- "name": "padding",
- "type": {
- "array": ["u64", 7]
- }
- }
- ]
- }
- },
- {
- "name": "PoolState",
- "docs": [
- "The pool state",
- "",
- "PDA of `[POOL_SEED, config, token_mint_0, token_mint_1]`",
- ""
- ],
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "bump",
- "docs": ["Bump to identify PDA"],
- "type": {
- "array": ["u8", 1]
- }
- },
- {
- "name": "ammConfig",
- "type": "publicKey"
- },
- {
- "name": "owner",
- "type": "publicKey"
- },
- {
- "name": "tokenMint0",
- "docs": [
- "Token pair of the pool, where token_mint_0 address < token_mint_1 address"
- ],
- "type": "publicKey"
- },
- {
- "name": "tokenMint1",
- "type": "publicKey"
- },
- {
- "name": "tokenVault0",
- "docs": ["Token pair vault"],
- "type": "publicKey"
- },
- {
- "name": "tokenVault1",
- "type": "publicKey"
- },
- {
- "name": "observationKey",
- "docs": ["observation account key"],
- "type": "publicKey"
- },
- {
- "name": "mintDecimals0",
- "docs": ["mint0 and mint1 decimals"],
- "type": "u8"
- },
- {
- "name": "mintDecimals1",
- "type": "u8"
- },
- {
- "name": "tickSpacing",
- "docs": ["The minimum number of ticks between initialized ticks"],
- "type": "u16"
- },
- {
- "name": "liquidity",
- "docs": ["The currently in range liquidity available to the pool."],
- "type": "u128"
- },
- {
- "name": "sqrtPriceX64",
- "docs": [
- "The current price of the pool as a sqrt(token_1/token_0) Q64.64 value"
- ],
- "type": "u128"
- },
- {
- "name": "tickCurrent",
- "docs": [
- "The current tick of the pool, i.e. according to the last tick transition that was run."
- ],
- "type": "i32"
- },
- {
- "name": "padding3",
- "type": "u16"
- },
- {
- "name": "padding4",
- "type": "u16"
- },
- {
- "name": "feeGrowthGlobal0X64",
- "docs": [
- "The fee growth as a Q64.64 number, i.e. fees of token_0 and token_1 collected per",
- "unit of liquidity for the entire life of the pool."
- ],
- "type": "u128"
- },
- {
- "name": "feeGrowthGlobal1X64",
- "type": "u128"
- },
- {
- "name": "protocolFeesToken0",
- "docs": [
- "The amounts of token_0 and token_1 that are owed to the protocol."
- ],
- "type": "u64"
- },
- {
- "name": "protocolFeesToken1",
- "type": "u64"
- },
- {
- "name": "swapInAmountToken0",
- "docs": ["The amounts in and out of swap token_0 and token_1"],
- "type": "u128"
- },
- {
- "name": "swapOutAmountToken1",
- "type": "u128"
- },
- {
- "name": "swapInAmountToken1",
- "type": "u128"
- },
- {
- "name": "swapOutAmountToken0",
- "type": "u128"
- },
- {
- "name": "status",
- "docs": [
- "Bitwise representation of the state of the pool",
- "bit0, 1: disable open position and increase liquidity, 0: normal",
- "bit1, 1: disable decrease liquidity, 0: normal",
- "bit2, 1: disable collect fee, 0: normal",
- "bit3, 1: disable collect reward, 0: normal",
- "bit4, 1: disable swap, 0: normal"
- ],
- "type": "u8"
- },
- {
- "name": "padding",
- "docs": ["Leave blank for future use"],
- "type": {
- "array": ["u8", 7]
- }
- },
- {
- "name": "rewardInfos",
- "type": {
- "array": [
- {
- "defined": "RewardInfo"
- },
- 3
- ]
- }
- },
- {
- "name": "tickArrayBitmap",
- "docs": ["Packed initialized tick array state"],
- "type": {
- "array": ["u64", 16]
- }
- },
- {
- "name": "totalFeesToken0",
- "docs": ["except protocol_fee and fund_fee"],
- "type": "u64"
- },
- {
- "name": "totalFeesClaimedToken0",
- "docs": ["except protocol_fee and fund_fee"],
- "type": "u64"
- },
- {
- "name": "totalFeesToken1",
- "type": "u64"
- },
- {
- "name": "totalFeesClaimedToken1",
- "type": "u64"
- },
- {
- "name": "fundFeesToken0",
- "type": "u64"
- },
- {
- "name": "fundFeesToken1",
- "type": "u64"
- },
- {
- "name": "openTime",
- "type": "u64"
- },
- {
- "name": "recentEpoch",
- "type": "u64"
- },
- {
- "name": "padding1",
- "type": {
- "array": ["u64", 24]
- }
- },
- {
- "name": "padding2",
- "type": {
- "array": ["u64", 32]
- }
- }
- ]
- }
- },
- {
- "name": "ProtocolPositionState",
- "docs": ["Info stored for each user's position"],
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "bump",
- "docs": ["Bump to identify PDA"],
- "type": "u8"
- },
- {
- "name": "poolId",
- "docs": ["The ID of the pool with which this token is connected"],
- "type": "publicKey"
- },
- {
- "name": "tickLowerIndex",
- "docs": ["The lower bound tick of the position"],
- "type": "i32"
- },
- {
- "name": "tickUpperIndex",
- "docs": ["The upper bound tick of the position"],
- "type": "i32"
- },
- {
- "name": "liquidity",
- "docs": ["The amount of liquidity owned by this position"],
- "type": "u128"
- },
- {
- "name": "feeGrowthInside0LastX64",
- "docs": [
- "The token_0 fee growth per unit of liquidity as of the last update to liquidity or fees owed"
- ],
- "type": "u128"
- },
- {
- "name": "feeGrowthInside1LastX64",
- "docs": [
- "The token_1 fee growth per unit of liquidity as of the last update to liquidity or fees owed"
- ],
- "type": "u128"
- },
- {
- "name": "tokenFeesOwed0",
- "docs": ["The fees owed to the position owner in token_0"],
- "type": "u64"
- },
- {
- "name": "tokenFeesOwed1",
- "docs": ["The fees owed to the position owner in token_1"],
- "type": "u64"
- },
- {
- "name": "rewardGrowthInside",
- "docs": [
- "The reward growth per unit of liquidity as of the last update to liquidity"
- ],
- "type": {
- "array": ["u128", 3]
- }
- },
- {
- "name": "recentEpoch",
- "type": "u64"
- },
- {
- "name": "padding",
- "type": {
- "array": ["u64", 7]
- }
- }
- ]
- }
- },
- {
- "name": "TickArrayState",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "poolId",
- "type": "publicKey"
- },
- {
- "name": "startTickIndex",
- "type": "i32"
- },
- {
- "name": "ticks",
- "type": {
- "array": [
- {
- "defined": "TickState"
- },
- 60
- ]
- }
- },
- {
- "name": "initializedTickCount",
- "type": "u8"
- },
- {
- "name": "recentEpoch",
- "type": "u64"
- },
- {
- "name": "padding",
- "type": {
- "array": ["u8", 107]
- }
- }
- ]
- }
- },
- {
- "name": "TickArrayBitmapExtension",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "poolId",
- "type": "publicKey"
- },
- {
- "name": "positiveTickArrayBitmap",
- "docs": [
- "Packed initialized tick array state for start_tick_index is positive"
- ],
- "type": {
- "array": [
- {
- "array": ["u64", 8]
- },
- 14
- ]
- }
- },
- {
- "name": "negativeTickArrayBitmap",
- "docs": [
- "Packed initialized tick array state for start_tick_index is negitive"
- ],
- "type": {
- "array": [
- {
- "array": ["u64", 8]
- },
- 14
- ]
- }
- }
- ]
- }
- }
- ],
- "types": [
- {
- "name": "InitializeRewardParam",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "openTime",
- "docs": ["Reward open time"],
- "type": "u64"
- },
- {
- "name": "endTime",
- "docs": ["Reward end time"],
- "type": "u64"
- },
- {
- "name": "emissionsPerSecondX64",
- "docs": [
- "Token reward per second are earned per unit of liquidity"
- ],
- "type": "u128"
- }
- ]
- }
- },
- {
- "name": "Observation",
- "docs": ["The element of observations in ObservationState"],
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "blockTimestamp",
- "docs": ["The block timestamp of the observation"],
- "type": "u32"
- },
- {
- "name": "tickCumulative",
- "docs": ["the cumulative of tick during the duration time"],
- "type": "i64"
- },
- {
- "name": "padding",
- "docs": ["padding for feature update"],
- "type": {
- "array": ["u64", 4]
- }
- }
- ]
- }
- },
- {
- "name": "PositionRewardInfo",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "growthInsideLastX64",
- "type": "u128"
- },
- {
- "name": "rewardAmountOwed",
- "type": "u64"
- }
- ]
- }
- },
- {
- "name": "RewardInfo",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "rewardState",
- "docs": ["Reward state"],
- "type": "u8"
- },
- {
- "name": "openTime",
- "docs": ["Reward open time"],
- "type": "u64"
- },
- {
- "name": "endTime",
- "docs": ["Reward end time"],
- "type": "u64"
- },
- {
- "name": "lastUpdateTime",
- "docs": ["Reward last update time"],
- "type": "u64"
- },
- {
- "name": "emissionsPerSecondX64",
- "docs": [
- "Q64.64 number indicates how many tokens per second are earned per unit of liquidity."
- ],
- "type": "u128"
- },
- {
- "name": "rewardTotalEmissioned",
- "docs": ["The total amount of reward emissioned"],
- "type": "u64"
- },
- {
- "name": "rewardClaimed",
- "docs": ["The total amount of claimed reward"],
- "type": "u64"
- },
- {
- "name": "tokenMint",
- "docs": ["Reward token mint."],
- "type": "publicKey"
- },
- {
- "name": "tokenVault",
- "docs": ["Reward vault token account."],
- "type": "publicKey"
- },
- {
- "name": "authority",
- "docs": ["The owner that has permission to set reward param"],
- "type": "publicKey"
- },
- {
- "name": "rewardGrowthGlobalX64",
- "docs": [
- "Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward",
- "emissions were turned on."
- ],
- "type": "u128"
- }
- ]
- }
- },
- {
- "name": "TickState",
- "type": {
- "kind": "struct",
- "fields": [
- {
- "name": "tick",
- "type": "i32"
- },
- {
- "name": "liquidityNet",
- "docs": [
- "Amount of net liquidity added (subtracted) when tick is crossed from left to right (right to left)"
- ],
- "type": "i128"
- },
- {
- "name": "liquidityGross",
- "docs": ["The total position liquidity that references this tick"],
- "type": "u128"
- },
- {
- "name": "feeGrowthOutside0X64",
- "docs": [
- "Fee growth per unit of liquidity on the _other_ side of this tick (relative to the current tick)",
- "only has relative meaning, not absolute — the value depends on when the tick is initialized"
- ],
- "type": "u128"
- },
- {
- "name": "feeGrowthOutside1X64",
- "type": "u128"
- },
- {
- "name": "rewardGrowthsOutsideX64",
- "type": {
- "array": ["u128", 3]
- }
- },
- {
- "name": "padding",
- "type": {
- "array": ["u32", 13]
- }
- }
- ]
- }
- },
- {
- "name": "PoolStatusBitIndex",
- "type": {
- "kind": "enum",
- "variants": [
- {
- "name": "OpenPositionOrIncreaseLiquidity"
- },
- {
- "name": "DecreaseLiquidity"
- },
- {
- "name": "CollectFee"
- },
- {
- "name": "CollectReward"
- },
- {
- "name": "Swap"
- }
- ]
- }
- },
- {
- "name": "PoolStatusBitFlag",
- "type": {
- "kind": "enum",
- "variants": [
- {
- "name": "Enable"
- },
- {
- "name": "Disable"
- }
- ]
- }
- },
- {
- "name": "RewardState",
- "docs": ["State of reward"],
- "type": {
- "kind": "enum",
- "variants": [
- {
- "name": "Uninitialized"
- },
- {
- "name": "Initialized"
- },
- {
- "name": "Opening"
- },
- {
- "name": "Ended"
- }
- ]
- }
- },
- {
- "name": "TickArryBitmap",
- "type": {
- "kind": "alias",
- "value": {
- "array": ["u64", 8]
- }
- }
- }
- ],
- "events": [
- {
- "name": "ConfigChangeEvent",
- "fields": [
- {
- "name": "index",
- "type": "u16",
- "index": false
- },
- {
- "name": "owner",
- "type": "publicKey",
- "index": true
- },
- {
- "name": "protocolFeeRate",
- "type": "u32",
- "index": false
- },
- {
- "name": "tradeFeeRate",
- "type": "u32",
- "index": false
- },
- {
- "name": "tickSpacing",
- "type": "u16",
- "index": false
- },
- {
- "name": "fundFeeRate",
- "type": "u32",
- "index": false
- },
- {
- "name": "fundOwner",
- "type": "publicKey",
- "index": false
- }
- ]
- },
- {
- "name": "CreatePersonalPositionEvent",
- "fields": [
- {
- "name": "poolState",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "minter",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "nftOwner",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "tickLowerIndex",
- "type": "i32",
- "index": false
- },
- {
- "name": "tickUpperIndex",
- "type": "i32",
- "index": false
- },
- {
- "name": "liquidity",
- "type": "u128",
- "index": false
- },
- {
- "name": "depositAmount0",
- "type": "u64",
- "index": false
- },
- {
- "name": "depositAmount1",
- "type": "u64",
- "index": false
- },
- {
- "name": "depositAmount0TransferFee",
- "type": "u64",
- "index": false
- },
- {
- "name": "depositAmount1TransferFee",
- "type": "u64",
- "index": false
- }
- ]
- },
- {
- "name": "IncreaseLiquidityEvent",
- "fields": [
- {
- "name": "positionNftMint",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "liquidity",
- "type": "u128",
- "index": false
- },
- {
- "name": "amount0",
- "type": "u64",
- "index": false
- },
- {
- "name": "amount1",
- "type": "u64",
- "index": false
- },
- {
- "name": "amount0TransferFee",
- "type": "u64",
- "index": false
- },
- {
- "name": "amount1TransferFee",
- "type": "u64",
- "index": false
- }
- ]
- },
- {
- "name": "DecreaseLiquidityEvent",
- "fields": [
- {
- "name": "positionNftMint",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "liquidity",
- "type": "u128",
- "index": false
- },
- {
- "name": "decreaseAmount0",
- "type": "u64",
- "index": false
- },
- {
- "name": "decreaseAmount1",
- "type": "u64",
- "index": false
- },
- {
- "name": "feeAmount0",
- "type": "u64",
- "index": false
- },
- {
- "name": "feeAmount1",
- "type": "u64",
- "index": false
- },
- {
- "name": "rewardAmounts",
- "type": {
- "array": ["u64", 3]
- },
- "index": false
- },
- {
- "name": "transferFee0",
- "type": "u64",
- "index": false
- },
- {
- "name": "transferFee1",
- "type": "u64",
- "index": false
- }
- ]
- },
- {
- "name": "LiquidityCalculateEvent",
- "fields": [
- {
- "name": "poolLiquidity",
- "type": "u128",
- "index": false
- },
- {
- "name": "poolSqrtPriceX64",
- "type": "u128",
- "index": false
- },
- {
- "name": "poolTick",
- "type": "i32",
- "index": false
- },
- {
- "name": "calcAmount0",
- "type": "u64",
- "index": false
- },
- {
- "name": "calcAmount1",
- "type": "u64",
- "index": false
- },
- {
- "name": "tradeFeeOwed0",
- "type": "u64",
- "index": false
- },
- {
- "name": "tradeFeeOwed1",
- "type": "u64",
- "index": false
- },
- {
- "name": "transferFee0",
- "type": "u64",
- "index": false
- },
- {
- "name": "transferFee1",
- "type": "u64",
- "index": false
- }
- ]
- },
- {
- "name": "CollectPersonalFeeEvent",
- "fields": [
- {
- "name": "positionNftMint",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "recipientTokenAccount0",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "recipientTokenAccount1",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "amount0",
- "type": "u64",
- "index": false
- },
- {
- "name": "amount1",
- "type": "u64",
- "index": false
- }
- ]
- },
- {
- "name": "UpdateRewardInfosEvent",
- "fields": [
- {
- "name": "rewardGrowthGlobalX64",
- "type": {
- "array": ["u128", 3]
- },
- "index": false
- }
- ]
- },
- {
- "name": "PoolCreatedEvent",
- "fields": [
- {
- "name": "tokenMint0",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "tokenMint1",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "tickSpacing",
- "type": "u16",
- "index": false
- },
- {
- "name": "poolState",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "sqrtPriceX64",
- "type": "u128",
- "index": false
- },
- {
- "name": "tick",
- "type": "i32",
- "index": false
- },
- {
- "name": "tokenVault0",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "tokenVault1",
- "type": "publicKey",
- "index": false
- }
- ]
- },
- {
- "name": "CollectProtocolFeeEvent",
- "fields": [
- {
- "name": "poolState",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "recipientTokenAccount0",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "recipientTokenAccount1",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "amount0",
- "type": "u64",
- "index": false
- },
- {
- "name": "amount1",
- "type": "u64",
- "index": false
- }
- ]
- },
- {
- "name": "SwapEvent",
- "fields": [
- {
- "name": "poolState",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "sender",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "tokenAccount0",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "tokenAccount1",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "amount0",
- "type": "u64",
- "index": false
- },
- {
- "name": "transferFee0",
- "type": "u64",
- "index": false
- },
- {
- "name": "amount1",
- "type": "u64",
- "index": false
- },
- {
- "name": "transferFee1",
- "type": "u64",
- "index": false
- },
- {
- "name": "zeroForOne",
- "type": "bool",
- "index": false
- },
- {
- "name": "sqrtPriceX64",
- "type": "u128",
- "index": false
- },
- {
- "name": "liquidity",
- "type": "u128",
- "index": false
- },
- {
- "name": "tick",
- "type": "i32",
- "index": false
- }
- ]
- },
- {
- "name": "LiquidityChangeEvent",
- "fields": [
- {
- "name": "poolState",
- "type": "publicKey",
- "index": false
- },
- {
- "name": "tick",
- "type": "i32",
- "index": false
- },
- {
- "name": "tickLower",
- "type": "i32",
- "index": false
- },
- {
- "name": "tickUpper",
- "type": "i32",
- "index": false
- },
- {
- "name": "liquidityBefore",
- "type": "u128",
- "index": false
- },
- {
- "name": "liquidityAfter",
- "type": "u128",
- "index": false
- }
- ]
- }
- ],
- "errors": [
- {
- "code": 6000,
- "name": "LOK",
- "msg": "LOK"
- },
- {
- "code": 6001,
- "name": "NotApproved",
- "msg": "Not approved"
- },
- {
- "code": 6002,
- "name": "InvalidUpdateConfigFlag",
- "msg": "invalid update amm config flag"
- },
- {
- "code": 6003,
- "name": "AccountLack",
- "msg": "Account lack"
- },
- {
- "code": 6004,
- "name": "ClosePositionErr",
- "msg": "Remove liquitity, collect fees owed and reward then you can close position account"
- },
- {
- "code": 6005,
- "name": "ZeroMintAmount",
- "msg": "Minting amount should be greater than 0"
- },
- {
- "code": 6006,
- "name": "InvaildTickIndex",
- "msg": "Tick out of range"
- },
- {
- "code": 6007,
- "name": "TickInvaildOrder",
- "msg": "The lower tick must be below the upper tick"
- },
- {
- "code": 6008,
- "name": "TickLowerOverflow",
- "msg": "The tick must be greater, or equal to the minimum tick(-443636)"
- },
- {
- "code": 6009,
- "name": "TickUpperOverflow",
- "msg": "The tick must be lesser than, or equal to the maximum tick(443636)"
- },
- {
- "code": 6010,
- "name": "TickAndSpacingNotMatch",
- "msg": "tick % tick_spacing must be zero"
- },
- {
- "code": 6011,
- "name": "InvalidTickArray",
- "msg": "Invaild tick array account"
- },
- {
- "code": 6012,
- "name": "InvalidTickArrayBoundary",
- "msg": "Invaild tick array boundary"
- },
- {
- "code": 6013,
- "name": "SqrtPriceLimitOverflow",
- "msg": "Square root price limit overflow"
- },
- {
- "code": 6014,
- "name": "SqrtPriceX64",
- "msg": "sqrt_price_x64 out of range"
- },
- {
- "code": 6015,
- "name": "LiquiditySubValueErr",
- "msg": "Liquidity sub delta L must be smaller than before"
- },
- {
- "code": 6016,
- "name": "LiquidityAddValueErr",
- "msg": "Liquidity add delta L must be greater, or equal to before"
- },
- {
- "code": 6017,
- "name": "InvaildLiquidity",
- "msg": "Invaild liquidity when update position"
- },
- {
- "code": 6018,
- "name": "ForbidBothZeroForSupplyLiquidity",
- "msg": "Both token amount must not be zero while supply liquidity"
- },
- {
- "code": 6019,
- "name": "LiquidityInsufficient",
- "msg": "Liquidity insufficient"
- },
- {
- "code": 6020,
- "name": "TransactionTooOld",
- "msg": "Transaction too old"
- },
- {
- "code": 6021,
- "name": "PriceSlippageCheck",
- "msg": "Price slippage check"
- },
- {
- "code": 6022,
- "name": "TooLittleOutputReceived",
- "msg": "Too little output received"
- },
- {
- "code": 6023,
- "name": "TooMuchInputPaid",
- "msg": "Too much input paid"
- },
- {
- "code": 6024,
- "name": "ZeroAmountSpecified",
- "msg": "Swap special amount can not be zero"
- },
- {
- "code": 6025,
- "name": "InvalidInputPoolVault",
- "msg": "Input pool vault is invalid"
- },
- {
- "code": 6026,
- "name": "TooSmallInputOrOutputAmount",
- "msg": "Swap input or output amount is too small"
- },
- {
- "code": 6027,
- "name": "NotEnoughTickArrayAccount",
- "msg": "Not enought tick array account"
- },
- {
- "code": 6028,
- "name": "InvalidFirstTickArrayAccount",
- "msg": "Invaild first tick array account"
- },
- {
- "code": 6029,
- "name": "InvalidRewardIndex",
- "msg": "Invalid reward index"
- },
- {
- "code": 6030,
- "name": "FullRewardInfo",
- "msg": "The init reward token reach to the max"
- },
- {
- "code": 6031,
- "name": "RewardTokenAlreadyInUse",
- "msg": "The init reward token already in use"
- },
- {
- "code": 6032,
- "name": "ExceptPoolVaultMint",
- "msg": "The reward tokens must contain one of pool vault mint except the last reward"
- },
- {
- "code": 6033,
- "name": "InvalidRewardInitParam",
- "msg": "Invalid reward init param"
- },
- {
- "code": 6034,
- "name": "InvalidRewardDesiredAmount",
- "msg": "Invalid collect reward desired amount"
- },
- {
- "code": 6035,
- "name": "InvalidRewardInputAccountNumber",
- "msg": "Invalid collect reward input account number"
- },
- {
- "code": 6036,
- "name": "InvalidRewardPeriod",
- "msg": "Invalid reward period"
- },
- {
- "code": 6037,
- "name": "NotApproveUpdateRewardEmissiones",
- "msg": "Modification of emissiones is allowed within 72 hours from the end of the previous cycle"
- },
- {
- "code": 6038,
- "name": "UnInitializedRewardInfo",
- "msg": "uninitialized reward info"
- },
- {
- "code": 6039,
- "name": "NotSupportMint",
- "msg": "Not support token_2022 mint extension"
- },
- {
- "code": 6040,
- "name": "MissingTickArrayBitmapExtensionAccount",
- "msg": "Missing tickarray bitmap extension account"
- },
- {
- "code": 6041,
- "name": "InsufficientLiquidityForDirection",
- "msg": "Insufficient liquidity for this direction"
- },
- {
- "code": 6042,
- "name": "MaxTokenOverflow",
- "msg": "Max token overflow"
- },
- {
- "code": 6043,
- "name": "CalculateOverflow",
- "msg": "calculate overflow"
- }
- ],
- "metadata": {
- "address": "CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"
- }
- }
|