@cetusprotocol/burn-sdk 1.0.4 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,7 +12,7 @@ The `Burn SDK` is specifically tailored for projects that have established liqui
12
12
 
13
13
  To start using the `Burn SDK`, you first need to install it in your TypeScript project. You can add it using npm, yarn, or bun:
14
14
 
15
- npm link: https://www.npmjs.com/package/@cetusprotocol/burn-sdk
15
+ npm link: <https://www.npmjs.com/package/@cetusprotocol/burn-sdk>
16
16
 
17
17
  ```bash
18
18
  npm install @cetusprotocol/burn-sdk
@@ -60,6 +60,7 @@ After linking your wallet, if you need use your wallet address to do something,
60
60
 
61
61
  ```typescript
62
62
  const wallet = 'YOUR_WALLET_ADDRESS'
63
+
63
64
  sdk.setSenderAddress(wallet)
64
65
  ```
65
66
 
@@ -91,6 +92,7 @@ This method fetches a list of burn positions for a specified pool ID by calling
91
92
  ```typescript
92
93
  const pool_id = '0x...'
93
94
  const position_ids = await sdk.Burn.getPoolBurnPositionList(pool_id)
95
+
94
96
  // result:
95
97
  position_ids: [{
96
98
  id: '0x88678e4cd2681bf41b7f2afdd49c15...',
@@ -117,6 +119,7 @@ This method fetches a list of burn positions for a specified account by calling
117
119
  ```typescript
118
120
  const account_address = '0x...'
119
121
  const position_ids = await sdk.Burn.getBurnPositionList(account_address)
122
+
120
123
  // result:
121
124
  positionIds: ['0x1b9b4f2271bc69df97ddafcb3f645...']
122
125
  ```
@@ -179,8 +182,8 @@ const pool_id = '0xc41621d02d5ee00a7a993b912a8550df...'
179
182
  const pos_id = '0x2f10a5816747fd02218dd7a3a7d0417d28...' // is wrap pos id
180
183
  const coin_type_a = '26b3bc67befc214058ca78ea9a2690298d731a2d4309485ec3d40198063c4abc::usdc::USDC'
181
184
  const coin_type_b = '26b3bc67befc214058ca78ea9a2690298d731a2d4309485ec3d40198063c4abc::cetus::CETUS'
182
-
183
185
  const rewarder_coin_types = ['0x26b3bc67befc214058ca78ea9a2690298d731a2d4309485ec3d40198063c4abc::cetus::CETUS']
186
+
184
187
  let tx = sdk.Burn.createCollectFeePayload({
185
188
  pool_id,
186
189
  pos_id,
@@ -213,8 +216,8 @@ const pool_id = '0xc41621d02d5ee00a7a993b912a855...'
213
216
  const pos_id = '0x2f10a5816747fd02218dd7a3a7d0417d...' // is wrap pos id
214
217
  const coin_type_a = '26b3bc67befc214058ca78ea9a2690298d731a2d4309485ec3d40198063c4abc::usdc::USDC'
215
218
  const coin_type_b = '26b3bc67befc214058ca78ea9a2690298d731a2d4309485ec3d40198063c4abc::cetus::CETUS'
216
-
217
219
  const rewarder_coin_types = ['0x26b3bc67befc214058ca78ea9a2690298d731a2d4309485ec3d40198063c4abc::cetus::CETUS']
220
+
218
221
  let tx = sdk.Burn.createCollectFeesPayload([{
219
222
  pool_id,
220
223
  pos_id,
@@ -252,7 +255,7 @@ const simulate_res = await sdk.FullClient.devInspectTransactionBlock({
252
255
  })
253
256
  ```
254
257
 
255
- # Contract Error Codes
258
+ ## Contract Error Codes
256
259
 
257
260
  the Cetus smart contract may return the following error codes:
258
261
 
@@ -262,7 +265,7 @@ the Cetus smart contract may return the following error codes:
262
265
  | lp_burn | 2 | The current liquidity position does not fully cover the entire price range | burn_lp_v2 |
263
266
  | lp_burn | 3 | The current liquidity position does not belong to this pool | burn_lp |
264
267
 
265
- # More About Cetus
268
+ ## More About Cetus
266
269
 
267
270
  Use the following links to learn more about Cetus:
268
271
 
package/dist/index.d.mts CHANGED
@@ -33,6 +33,14 @@ type CollectRewardParams = CommonParams & {
33
33
  rewarder_coin_types: string[];
34
34
  account: string;
35
35
  };
36
+ type RedeemVestParams = {
37
+ clmm_versioned_id: string;
38
+ clmm_vester_id: string;
39
+ clmm_pool_id: string;
40
+ burn_position_id: string;
41
+ period: number;
42
+ vest_coin_type: string;
43
+ } & CoinPairType;
36
44
 
37
45
  declare class BurnModule implements IModule<CetusBurnSDK> {
38
46
  protected _sdk: CetusBurnSDK;
@@ -100,13 +108,20 @@ declare class BurnModule implements IModule<CetusBurnSDK> {
100
108
  * @returns
101
109
  */
102
110
  crateCollectRewardPayload(params: CollectRewardParams, tx?: Transaction): Transaction;
111
+ /**
112
+ * @description Create a redeem vest payload for a given pool and position.
113
+ * @param params - The redeem vest parameters.
114
+ * @param tx - The transaction object.
115
+ * @returns
116
+ */
117
+ redeemVestPayload(params: RedeemVestParams[], tx?: Transaction): Transaction;
103
118
  /**
104
119
  * @description Create a collect fee payload for a given pool and position.
105
120
  * @param params - The collect fee parameters.
106
121
  * @param tx - The transaction object.
107
122
  * @returns
108
123
  */
109
- createCollectFeesPayload(params: CollectFeeParams[], tx?: Transaction): Transaction;
124
+ createCollectFeesPayload(paramsList: CollectFeeParams[], tx?: Transaction): Transaction;
110
125
  /**
111
126
  * @description Create a collect reward payload for a given pool and position.
112
127
  * @param params - The collect reward parameters.
@@ -151,4 +166,4 @@ declare const burnMainnet: SdkOptions;
151
166
 
152
167
  declare const burnTestnet: SdkOptions;
153
168
 
154
- export { type BurnConfigs, BurnModule, type BurnParams, type BurnPositionNFT, BurnUtils, CetusBurnSDK, type CollectFeeParams, type CollectRewardParams, type SdkOptions, burnMainnet, burnTestnet, CetusBurnSDK as default };
169
+ export { type BurnConfigs, BurnModule, type BurnParams, type BurnPositionNFT, BurnUtils, CetusBurnSDK, type CollectFeeParams, type CollectRewardParams, type RedeemVestParams, type SdkOptions, burnMainnet, burnTestnet, CetusBurnSDK as default };
package/dist/index.d.ts CHANGED
@@ -33,6 +33,14 @@ type CollectRewardParams = CommonParams & {
33
33
  rewarder_coin_types: string[];
34
34
  account: string;
35
35
  };
36
+ type RedeemVestParams = {
37
+ clmm_versioned_id: string;
38
+ clmm_vester_id: string;
39
+ clmm_pool_id: string;
40
+ burn_position_id: string;
41
+ period: number;
42
+ vest_coin_type: string;
43
+ } & CoinPairType;
36
44
 
37
45
  declare class BurnModule implements IModule<CetusBurnSDK> {
38
46
  protected _sdk: CetusBurnSDK;
@@ -100,13 +108,20 @@ declare class BurnModule implements IModule<CetusBurnSDK> {
100
108
  * @returns
101
109
  */
102
110
  crateCollectRewardPayload(params: CollectRewardParams, tx?: Transaction): Transaction;
111
+ /**
112
+ * @description Create a redeem vest payload for a given pool and position.
113
+ * @param params - The redeem vest parameters.
114
+ * @param tx - The transaction object.
115
+ * @returns
116
+ */
117
+ redeemVestPayload(params: RedeemVestParams[], tx?: Transaction): Transaction;
103
118
  /**
104
119
  * @description Create a collect fee payload for a given pool and position.
105
120
  * @param params - The collect fee parameters.
106
121
  * @param tx - The transaction object.
107
122
  * @returns
108
123
  */
109
- createCollectFeesPayload(params: CollectFeeParams[], tx?: Transaction): Transaction;
124
+ createCollectFeesPayload(paramsList: CollectFeeParams[], tx?: Transaction): Transaction;
110
125
  /**
111
126
  * @description Create a collect reward payload for a given pool and position.
112
127
  * @param params - The collect reward parameters.
@@ -151,4 +166,4 @@ declare const burnMainnet: SdkOptions;
151
166
 
152
167
  declare const burnTestnet: SdkOptions;
153
168
 
154
- export { type BurnConfigs, BurnModule, type BurnParams, type BurnPositionNFT, BurnUtils, CetusBurnSDK, type CollectFeeParams, type CollectRewardParams, type SdkOptions, burnMainnet, burnTestnet, CetusBurnSDK as default };
169
+ export { type BurnConfigs, BurnModule, type BurnParams, type BurnPositionNFT, BurnUtils, CetusBurnSDK, type CollectFeeParams, type CollectRewardParams, type RedeemVestParams, type SdkOptions, burnMainnet, burnTestnet, CetusBurnSDK as default };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var P=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var v=(a,t)=>{for(var e in t)P(a,e,{get:t[e],enumerable:!0})},I=(a,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of E(t))!A.call(a,n)&&n!==e&&P(a,n,{get:()=>t[n],enumerable:!(o=S(t,n))||o.enumerable});return a};var D=a=>I(P({},"__esModule",{value:!0}),a);var R={};v(R,{BurnModule:()=>m,BurnUtils:()=>b,CetusBurnSDK:()=>g,burnMainnet:()=>h,burnTestnet:()=>k,default:()=>F});module.exports=D(R);var T=require("@cetusprotocol/common-sdk");var w=require("@cetusprotocol/common-sdk"),h={env:"mainnet",full_rpc_url:w.FullRpcUrlMainnet,burn:{package_id:"0x12d73de9a6bc3cb658ec9dc0fe7de2662be1cea5c76c092fcc3606048cdbac27",published_at:"0xb977b00649d3ab8950bcbbafb01fcf32e2e7718eb3133eff2e48c0cef04b1495",config:{manager_id:"0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",clmm_global_config:"0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",clmm_global_vault_id:"0xce7bceef26d3ad1f6d9b6f13a953f053e6ed3ca77907516481ce99ae8e588f2b",burn_pool_handle:"0xc9aacf74bd7cc8da8820ae28ca4473b7e01c87be19bc35bf81c9c7311e1b299e"}}};var C=require("@cetusprotocol/common-sdk"),k={env:"testnet",full_rpc_url:C.FullRpcUrlTestnet,burn:{package_id:"0x3b494006831b046481c8046910106e2dfbe0d1fa9bc01e41783fb3ff6534ed3a",published_at:"0xaf89f8215c5b07eaac8b77c7745ce62f94cb76ef4bcb854e283f644c519ef43e",config:{manager_id:"0xd04529ef15b7dad6699ee905daca0698858cab49724b2b2a1fc6b1ebc5e474ef",clmm_global_config:"0x9774e359588ead122af1c7e7f64e14ade261cfeecdb5d0eb4a5b3b4c8ab8bd3e",clmm_global_vault_id:"0xf78d2ee3c312f298882cb680695e5e8c81b1d441a646caccc058006c2851ddea",burn_pool_handle:"0x20262dac8853ab8f63c98e0b17bfb1c758efc33d0092ac3c5f204dfb7ba81ac5"}}};var p=require("@mysten/sui/transactions"),s=require("@cetusprotocol/common-sdk");var B=require("@cetusprotocol/common-sdk");var y=class extends B.BaseError{constructor(t,e,o){super(t,e||"UnknownError",o)}static isBurnErrorCode(t,e){return this.isErrorCode(t,e)}},u=(a,t,e)=>{throw t instanceof Error?new y(t.message,a,e):new y(t,a,e)};var f=require("@cetusprotocol/common-sdk"),b=class{static buildBurnPositionNFT(t){let e=t.position.fields,o=`Cetus Burned LP | Pool${e.name.split("Pool")?.[1]}`;return{id:t.id.id,url:e.url,pool_id:e.pool,coin_type_a:(0,f.extractStructTagFromType)(e.coin_type_a.fields.name).full_address,coin_type_b:(0,f.extractStructTagFromType)(e.coin_type_b.fields.name).full_address,description:e.description,name:o,liquidity:e.liquidity,clmm_position_id:e.id.id,clmm_pool_id:e.pool,tick_lower_index:(0,f.asIntN)(BigInt(e.tick_lower_index.fields.bits)),tick_upper_index:(0,f.asIntN)(BigInt(e.tick_upper_index.fields.bits)),index:e.index,is_lp_burn:!0}}};var m=class{constructor(t){this._sdk=t}get sdk(){return this._sdk}async getBurnPoolList(){try{let{burn:t}=this._sdk.sdkOptions,{manager_id:e}=(0,s.getPackagerConfigs)(t),n=(await this._sdk.FullClient.getObject({id:e,options:{showType:!0,showContent:!0}}))?.data?.content?.fields?.position?.fields?.id?.id;return(await this._sdk.FullClient.getDynamicFieldsByPage(n))?.data?.map(d=>d?.name?.value)}catch(t){console.log("getBurnPoolList ~ error:",t),u("FetchError",t,{[s.DETAILS_KEYS.METHOD_NAME]:"getBurnPoolList"})}}async getPositionHandle(t){let{burn:e}=this._sdk.sdkOptions,{burn_pool_handle:o}=(0,s.getPackagerConfigs)(e),n=`getPosHandle_${t}`,r=this._sdk.getCache(n);if(r)return r;try{return r=(await this._sdk.FullClient.getDynamicFieldObject({parentId:o,name:{type:"0x2::object::ID",value:t}})).data.content.fields.value.fields.id.id,r&&this._sdk.updateCache(n,r),r}catch(i){u("InvalidPoolId",i,{[s.DETAILS_KEYS.METHOD_NAME]:"getPositionHandle",[s.DETAILS_KEYS.REQUEST_PARAMS]:{pool_id:t}})}}async getPoolBurnPositionList(t){try{let e=await this.getPositionHandle(t);e===void 0&&u("InvalidPoolId",`${t} is a invalid pool id, please check it and try another valid pool id`,{[s.DETAILS_KEYS.METHOD_NAME]:"getPositionHandle",[s.DETAILS_KEYS.REQUEST_PARAMS]:{pool_id:t}});let n=(await this._sdk.FullClient.getDynamicFieldsByPage(e))?.data?.map(r=>r.objectId);if(n.length>0){let i=(await this._sdk.FullClient.batchGetObjects(n,{showContent:!0})).map(c=>c.data.content.fields.value.fields.burned_position_id);return(await this._sdk.FullClient.batchGetObjects(i,{showContent:!0}))?.map(c=>b.buildBurnPositionNFT(c?.data?.content?.fields))}return[]}catch(e){console.log("getPoolBurnPositionList ~ error:",e),u("InvalidPoolId",`${t} is a invalid pool id, please check it and try another valid pool id`,{[s.DETAILS_KEYS.METHOD_NAME]:"getPoolBurnPositionList",[s.DETAILS_KEYS.REQUEST_PARAMS]:{pool_id:t}})}}async getBurnPositionList(t){let{package_id:e}=this._sdk.sdkOptions.burn;try{return(await this._sdk.FullClient.getOwnedObjectsByPage(t,{options:{showType:!0,showContent:!0,showOwner:!0,showDisplay:!0},filter:{MatchAny:[{StructType:`${e}::lp_burn::CetusLPBurnProof`}]}}))?.data?.map(r=>b.buildBurnPositionNFT(r?.data?.content?.fields))}catch(o){u("InvalidAccountAddress",o,{[s.DETAILS_KEYS.METHOD_NAME]:"getBurnPositionList",[s.DETAILS_KEYS.REQUEST_PARAMS]:{account_address:t}})}}async getBurnPosition(t){try{let e=await this._sdk.FullClient.getObject({id:t,options:{showContent:!0,showType:!0}});return e?.data?.content?.fields?b.buildBurnPositionNFT(e?.data?.content?.fields):null}catch(e){u("InvalidPositionId",e,{[s.DETAILS_KEYS.METHOD_NAME]:"getBurnPosition",[s.DETAILS_KEYS.REQUEST_PARAMS]:{pos_id:t}})}}createBurnPayload(t,e){e=e||new p.Transaction;let o=typeof t.pos_id=="string"?e.object(t.pos_id):t.pos_id,{burn:n}=this._sdk.sdkOptions,{manager_id:r}=(0,s.getPackagerConfigs)(n),i=`${n.published_at}::lp_burn::burn`;return e.moveCall({target:i,arguments:[e.object(r),e.object(t.pool_id),o],typeArguments:[t.coin_type_a,t.coin_type_b]}),e}createBurnLPV2Payload(t,e){e=e||new p.Transaction;let o=typeof t=="string"?e.object(t):t,{burn:n}=this._sdk.sdkOptions,{manager_id:r}=(0,s.getPackagerConfigs)(n),i=`${n.published_at}::lp_burn::burn_lp_v2`,[d]=e.moveCall({target:i,arguments:[e.object(r),o],typeArguments:[]});return d}createCollectFeePayload(t,e){e=e||new p.Transaction;let{burn:o}=this._sdk.sdkOptions,{manager_id:n,clmm_global_config:r}=(0,s.getPackagerConfigs)(o),i=`${o.published_at}::lp_burn::collect_fee`,d=e.moveCall({target:i,arguments:[e.object(n),e.object(r),e.object(t.pool_id),e.object(t.pos_id)],typeArguments:[t.coin_type_a,t.coin_type_b]});return e.transferObjects(d,e.pure.address(t.account)),e}crateCollectRewardPayload(t,e){e=e||new p.Transaction;let{burn:o}=this._sdk.sdkOptions,{manager_id:n,clmm_global_config:r,clmm_global_vault_id:i}=(0,s.getPackagerConfigs)(o),d=`${o.published_at}::lp_burn::collect_reward`;for(let l=0;l<t.rewarder_coin_types?.length;l++){let c=t.rewarder_coin_types?.[l],_=e.moveCall({target:d,arguments:[e.object(n),e.object(r),e.object(t.pool_id),e.object(t.pos_id),e.object(i),e.object(s.CLOCK_ADDRESS)],typeArguments:[t.coin_type_a,t.coin_type_b,c]});e.transferObjects([_],e.pure.address(t.account))}return e}createCollectFeesPayload(t,e){e=e||new p.Transaction;let{burn:o}=this._sdk.sdkOptions,{manager_id:n,clmm_global_config:r}=(0,s.getPackagerConfigs)(o),i=`${o.published_at}::lp_burn::collect_fee`;for(let d=0;d<t.length;d++){let l=t[d],c=e.moveCall({target:i,arguments:[e.object(n),e.object(r),e.object(l.pool_id),e.object(l.pos_id)],typeArguments:[l.coin_type_a,l.coin_type_b]});e.transferObjects([c[0],c[1]],e.pure.address(l.account))}return e}crateCollectRewardsPayload(t,e){e=e||new p.Transaction;let{burn:o}=this._sdk.sdkOptions,{manager_id:n,clmm_global_config:r,clmm_global_vault_id:i}=(0,s.getPackagerConfigs)(o),d=`${o.published_at}::lp_burn::collect_reward`;for(let l=0;l<t.length;l++){let c=t[l];for(let _=0;_<c.rewarder_coin_types?.length;_++){let j=c.rewarder_coin_types?.[_],O=e.moveCall({target:d,arguments:[e.object(n),e.object(r),e.object(c.pool_id),e.object(c.pos_id),e.object(i),e.object(s.CLOCK_ADDRESS)],typeArguments:[c.coin_type_a,c.coin_type_b,j]});e.transferObjects([O],e.pure.address(c.account))}}return e}};var g=class a extends T.SdkWrapper{constructor(t){super(t),this._burn=new m(this)}get Burn(){return this._burn}static createSDK(t){let{env:e="mainnet"}=t;return e==="mainnet"?a.createCustomSDK({...h,...t}):a.createCustomSDK({...k,...t})}static createCustomSDK(t){return new a(t)}};var F=g;0&&(module.exports={BurnModule,BurnUtils,CetusBurnSDK,burnMainnet,burnTestnet});
1
+ "use strict";var h=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var F=(a,t)=>{for(var e in t)h(a,e,{get:t[e],enumerable:!0})},I=(a,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of v(t))!A.call(a,n)&&n!==e&&h(a,n,{get:()=>t[n],enumerable:!(o=E(t,n))||o.enumerable});return a};var D=a=>I(h({},"__esModule",{value:!0}),a);var M={};F(M,{BurnModule:()=>f,BurnUtils:()=>_,CetusBurnSDK:()=>g,burnMainnet:()=>k,burnTestnet:()=>w,default:()=>R});module.exports=D(M);var O=require("@cetusprotocol/common-sdk");var B=require("@cetusprotocol/common-sdk"),k={env:"mainnet",full_rpc_url:B.FullRpcUrlMainnet,burn:{package_id:"0x12d73de9a6bc3cb658ec9dc0fe7de2662be1cea5c76c092fcc3606048cdbac27",published_at:"0xf80a6bb02d98cebf90a6476e8c106a4ddf1865ef79d6067a66933eb57b9f0f7b",version:5,config:{manager_id:"0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",clmm_global_config:"0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",clmm_global_vault_id:"0xce7bceef26d3ad1f6d9b6f13a953f053e6ed3ca77907516481ce99ae8e588f2b",burn_pool_handle:"0xc9aacf74bd7cc8da8820ae28ca4473b7e01c87be19bc35bf81c9c7311e1b299e"}}};var T=require("@cetusprotocol/common-sdk"),w={env:"testnet",full_rpc_url:T.FullRpcUrlTestnet,burn:{package_id:"0x5977541d3ac853f984e9b5bb104d4971c50a94e4daa4f0e5fedf40c3d35f6636",published_at:"0x5977541d3ac853f984e9b5bb104d4971c50a94e4daa4f0e5fedf40c3d35f6636",config:{manager_id:"0x96142a17b098e64dad3b6d9b3ab72ddc658cde01e3008f56928496e50819b3cf",clmm_global_config:"0x170708f8b3fdb938835171ea730916b4b4e920c74f2cf7cd986d2c7ad02ebd5e",clmm_global_vault_id:"0x51b48da7fd31af581a0e02cb9e1b33129c8a66d5e98577d5540c24b23a3050a6",burn_pool_handle:"0x2fd8901939489b560bf664e90223369bdb5b5174c3246cc520cf4009aed7934a"}}};var p=require("@mysten/sui/transactions"),s=require("@cetusprotocol/common-sdk");var j=require("@cetusprotocol/common-sdk");var y=class extends j.BaseError{constructor(t,e,o){super(t,e||"UnknownError",o)}static isBurnErrorCode(t,e){return this.isErrorCode(t,e)}},b=(a,t,e)=>{throw t instanceof Error?new y(t.message,a,e):new y(t,a,e)};var m=require("@cetusprotocol/common-sdk"),_=class{static buildBurnPositionNFT(t){let e=t.position.fields,o=t.name;return{id:t.id.id,url:e.url,pool_id:e.pool,coin_type_a:(0,m.extractStructTagFromType)(e.coin_type_a.fields.name).full_address,coin_type_b:(0,m.extractStructTagFromType)(e.coin_type_b.fields.name).full_address,description:t.description,name:o,liquidity:e.liquidity,clmm_position_id:e.id.id,clmm_pool_id:e.pool,tick_lower_index:(0,m.asIntN)(BigInt(e.tick_lower_index.fields.bits)),tick_upper_index:(0,m.asIntN)(BigInt(e.tick_upper_index.fields.bits)),index:e.index,is_lp_burn:!0}}};var f=class{constructor(t){this._sdk=t}get sdk(){return this._sdk}async getBurnPoolList(){try{let{burn:t}=this._sdk.sdkOptions,{manager_id:e}=(0,s.getPackagerConfigs)(t),n=(await this._sdk.FullClient.getObject({id:e,options:{showType:!0,showContent:!0}}))?.data?.content?.fields?.position?.fields?.id?.id;return(await this._sdk.FullClient.getDynamicFieldsByPage(n))?.data?.map(d=>d?.name?.value)}catch(t){console.log("getBurnPoolList ~ error:",t),b("FetchError",t,{[s.DETAILS_KEYS.METHOD_NAME]:"getBurnPoolList"})}}async getPositionHandle(t){let{burn:e}=this._sdk.sdkOptions,{burn_pool_handle:o}=(0,s.getPackagerConfigs)(e),n=`getPosHandle_${t}`,r=this._sdk.getCache(n);if(r)return r;try{return r=(await this._sdk.FullClient.getDynamicFieldObject({parentId:o,name:{type:"0x2::object::ID",value:t}})).data.content.fields.value.fields.id.id,r&&this._sdk.updateCache(n,r),r}catch(i){b("InvalidPoolId",i,{[s.DETAILS_KEYS.METHOD_NAME]:"getPositionHandle",[s.DETAILS_KEYS.REQUEST_PARAMS]:{pool_id:t}})}}async getPoolBurnPositionList(t){try{let e=await this.getPositionHandle(t);e===void 0&&b("InvalidPoolId",`${t} is a invalid pool id, please check it and try another valid pool id`,{[s.DETAILS_KEYS.METHOD_NAME]:"getPositionHandle",[s.DETAILS_KEYS.REQUEST_PARAMS]:{pool_id:t}});let n=(await this._sdk.FullClient.getDynamicFieldsByPage(e))?.data?.map(r=>r.objectId);if(n.length>0){let i=(await this._sdk.FullClient.batchGetObjects(n,{showContent:!0})).map(c=>c.data.content.fields.value.fields.burned_position_id);return(await this._sdk.FullClient.batchGetObjects(i,{showContent:!0}))?.map(c=>_.buildBurnPositionNFT(c?.data?.content?.fields))}return[]}catch(e){console.log("getPoolBurnPositionList ~ error:",e),b("InvalidPoolId",`${t} is a invalid pool id, please check it and try another valid pool id`,{[s.DETAILS_KEYS.METHOD_NAME]:"getPoolBurnPositionList",[s.DETAILS_KEYS.REQUEST_PARAMS]:{pool_id:t}})}}async getBurnPositionList(t){let{package_id:e}=this._sdk.sdkOptions.burn;try{return(await this._sdk.FullClient.getOwnedObjectsByPage(t,{options:{showType:!0,showContent:!0,showOwner:!0,showDisplay:!0},filter:{MatchAny:[{StructType:`${e}::lp_burn::CetusLPBurnProof`}]}}))?.data?.map(r=>_.buildBurnPositionNFT(r?.data?.content?.fields))}catch(o){b("InvalidAccountAddress",o,{[s.DETAILS_KEYS.METHOD_NAME]:"getBurnPositionList",[s.DETAILS_KEYS.REQUEST_PARAMS]:{account_address:t}})}}async getBurnPosition(t){try{let e=await this._sdk.FullClient.getObject({id:t,options:{showContent:!0,showType:!0}});return e?.data?.content?.fields?_.buildBurnPositionNFT(e?.data?.content?.fields):null}catch(e){b("InvalidPositionId",e,{[s.DETAILS_KEYS.METHOD_NAME]:"getBurnPosition",[s.DETAILS_KEYS.REQUEST_PARAMS]:{pos_id:t}})}}createBurnPayload(t,e){e=e||new p.Transaction;let o=typeof t.pos_id=="string"?e.object(t.pos_id):t.pos_id,{burn:n}=this._sdk.sdkOptions,{manager_id:r}=(0,s.getPackagerConfigs)(n),i=`${n.published_at}::lp_burn::burn`;return e.moveCall({target:i,arguments:[e.object(r),e.object(t.pool_id),o],typeArguments:[t.coin_type_a,t.coin_type_b]}),e}createBurnLPV2Payload(t,e){e=e||new p.Transaction;let o=typeof t=="string"?e.object(t):t,{burn:n}=this._sdk.sdkOptions,{manager_id:r}=(0,s.getPackagerConfigs)(n),i=`${n.published_at}::lp_burn::burn_lp_v2`,[d]=e.moveCall({target:i,arguments:[e.object(r),o],typeArguments:[]});return d}createCollectFeePayload(t,e){e=e||new p.Transaction;let{burn:o}=this._sdk.sdkOptions,{manager_id:n,clmm_global_config:r}=(0,s.getPackagerConfigs)(o),i=`${o.published_at}::lp_burn::collect_fee`,d=e.moveCall({target:i,arguments:[e.object(n),e.object(r),e.object(t.pool_id),e.object(t.pos_id)],typeArguments:[t.coin_type_a,t.coin_type_b]});return e.transferObjects([d[0],d[1]],e.pure.address(t.account)),e}crateCollectRewardPayload(t,e){e=e||new p.Transaction;let{burn:o}=this._sdk.sdkOptions,{manager_id:n,clmm_global_config:r,clmm_global_vault_id:i}=(0,s.getPackagerConfigs)(o),d=`${o.published_at}::lp_burn::collect_reward`;for(let l=0;l<t.rewarder_coin_types?.length;l++){let c=t.rewarder_coin_types?.[l],u=e.moveCall({target:d,arguments:[e.object(n),e.object(r),e.object(t.pool_id),e.object(t.pos_id),e.object(i),e.object(s.CLOCK_ADDRESS)],typeArguments:[t.coin_type_a,t.coin_type_b,c]});e.transferObjects([u],e.pure.address(t.account))}return e}redeemVestPayload(t,e){e=e||new p.Transaction;let{burn:o}=this._sdk.sdkOptions;for(let n of t){let{clmm_versioned_id:r,clmm_vester_id:i,clmm_pool_id:d,burn_position_id:l,period:c,coin_type_a:u,coin_type_b:P,vest_coin_type:C}=n,S=e.moveCall({package:o.published_at,module:"lp_burn",function:"redeem",arguments:[e.object(r),e.object(i),e.object(d),e.object(l),e.pure.u16(c),e.object(s.CLOCK_ADDRESS)],typeArguments:[u,P]});e.transferObjects([S],e.pure.address(this._sdk.getSenderAddress()))}return e}createCollectFeesPayload(t,e){e=e||new p.Transaction;for(let o of t)this.createCollectFeePayload(o,e);return e}crateCollectRewardsPayload(t,e){e=e||new p.Transaction;let{burn:o}=this._sdk.sdkOptions,{manager_id:n,clmm_global_config:r,clmm_global_vault_id:i}=(0,s.getPackagerConfigs)(o),d=`${o.published_at}::lp_burn::collect_reward`;for(let l=0;l<t.length;l++){let c=t[l];for(let u=0;u<c.rewarder_coin_types?.length;u++){let P=c.rewarder_coin_types?.[u],C=e.moveCall({target:d,arguments:[e.object(n),e.object(r),e.object(c.pool_id),e.object(c.pos_id),e.object(i),e.object(s.CLOCK_ADDRESS)],typeArguments:[c.coin_type_a,c.coin_type_b,P]});e.transferObjects([C],e.pure.address(c.account))}}return e}};var g=class a extends O.SdkWrapper{constructor(t){super(t),this._burn=new f(this)}get Burn(){return this._burn}static createSDK(t){let{env:e="mainnet"}=t;return e==="mainnet"?a.createCustomSDK({...k,...t}):a.createCustomSDK({...w,...t})}static createCustomSDK(t){return new a(t)}};var R=g;0&&(module.exports={BurnModule,BurnUtils,CetusBurnSDK,burnMainnet,burnTestnet});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/sdk.ts","../src/config/mainnet.ts","../src/config/testnet.ts","../src/modules/burnModule.ts","../src/errors/errors.ts","../src/utils/burn.ts"],"sourcesContent":["import { CetusBurnSDK, SdkOptions } from './sdk'\n\nexport * from './utils'\nexport * from './types'\nexport * from './modules'\nexport * from './config'\nexport { CetusBurnSDK, SdkOptions }\nexport default CetusBurnSDK\n","import type { BaseSdkOptions, Package } from '@cetusprotocol/common-sdk'\nimport { SdkWrapper } from '@cetusprotocol/common-sdk'\nimport { burnMainnet, burnTestnet } from './config'\nimport { BurnModule } from './modules/burnModule'\nimport type { BurnConfigs } from './types/burn'\n\n/**\n * Represents options and configurations for an SDK.\n */\nexport interface SdkOptions extends BaseSdkOptions {\n burn: Package<BurnConfigs>\n}\n\n/**\n * The entry class of CetusDcaSDK, which is almost responsible for all interactions with dca.\n */\nexport class CetusBurnSDK extends SdkWrapper<SdkOptions> {\n protected _burn: BurnModule\n\n constructor(options: SdkOptions) {\n super(options)\n\n this._burn = new BurnModule(this)\n }\n\n get Burn(): BurnModule {\n return this._burn\n }\n\n /**\n * Static factory method to initialize the SDK\n * @param options SDK initialization options\n * @returns An instance of CetusBurnDK\n */\n static createSDK(options: BaseSdkOptions): CetusBurnSDK {\n const { env = 'mainnet' } = options\n return env === 'mainnet'\n ? CetusBurnSDK.createCustomSDK({ ...burnMainnet, ...options })\n : CetusBurnSDK.createCustomSDK({ ...burnTestnet, ...options })\n }\n\n /**\n * Create a custom SDK instance with the given options\n * @param options The options for the SDK\n * @returns An instance of CetusBurnSDK\n */\n static createCustomSDK<T extends BaseSdkOptions>(options: T & SdkOptions): CetusBurnSDK {\n return new CetusBurnSDK(options)\n }\n}\n","import { FullRpcUrlMainnet } from '@cetusprotocol/common-sdk'\nimport type { SdkOptions } from '../sdk'\nimport { CetusBurnSDK } from '../sdk'\n// mainnet\nexport const burnMainnet: SdkOptions = {\n env: 'mainnet',\n full_rpc_url: FullRpcUrlMainnet,\n burn: {\n package_id: '0x12d73de9a6bc3cb658ec9dc0fe7de2662be1cea5c76c092fcc3606048cdbac27',\n published_at: '0xb977b00649d3ab8950bcbbafb01fcf32e2e7718eb3133eff2e48c0cef04b1495',\n config: {\n manager_id: '0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845',\n clmm_global_config: '0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f',\n clmm_global_vault_id: '0xce7bceef26d3ad1f6d9b6f13a953f053e6ed3ca77907516481ce99ae8e588f2b',\n burn_pool_handle: '0xc9aacf74bd7cc8da8820ae28ca4473b7e01c87be19bc35bf81c9c7311e1b299e',\n },\n },\n}\n","import { FullRpcUrlTestnet } from '@cetusprotocol/common-sdk'\nimport type { SdkOptions } from '../sdk'\nimport { CetusBurnSDK } from '../sdk'\n\nexport const burnTestnet: SdkOptions = {\n env: 'testnet',\n full_rpc_url: FullRpcUrlTestnet,\n burn: {\n package_id: '0x3b494006831b046481c8046910106e2dfbe0d1fa9bc01e41783fb3ff6534ed3a',\n published_at: '0xaf89f8215c5b07eaac8b77c7745ce62f94cb76ef4bcb854e283f644c519ef43e',\n config: {\n manager_id: '0xd04529ef15b7dad6699ee905daca0698858cab49724b2b2a1fc6b1ebc5e474ef',\n clmm_global_config: '0x9774e359588ead122af1c7e7f64e14ade261cfeecdb5d0eb4a5b3b4c8ab8bd3e',\n clmm_global_vault_id: '0xf78d2ee3c312f298882cb680695e5e8c81b1d441a646caccc058006c2851ddea',\n burn_pool_handle: '0x20262dac8853ab8f63c98e0b17bfb1c758efc33d0092ac3c5f204dfb7ba81ac5',\n },\n },\n}\n","import type { TransactionObjectArgument } from '@mysten/sui/transactions'\nimport { Transaction } from '@mysten/sui/transactions'\nimport { CLOCK_ADDRESS, DETAILS_KEYS, getPackagerConfigs, IModule } from '@cetusprotocol/common-sdk'\nimport { BurnErrorCode, handleError } from '../errors/errors'\nimport type { CetusBurnSDK } from '../sdk'\nimport type { BurnParams, CollectFeeParams, CollectRewardParams } from '../types/burn'\nimport { BurnUtils } from '../utils'\n\nexport class BurnModule implements IModule<CetusBurnSDK> {\n protected _sdk: CetusBurnSDK\n\n constructor(sdk: CetusBurnSDK) {\n this._sdk = sdk\n }\n\n get sdk() {\n return this._sdk\n }\n\n /**\n * @description Get the list of pools that have been burned.\n * @returns\n */\n async getBurnPoolList() {\n try {\n const { burn } = this._sdk.sdkOptions\n // TODO positionTableId is a constant, it can be written in the configuration later\n const { manager_id } = getPackagerConfigs(burn)\n const object: any = await this._sdk.FullClient.getObject({\n id: manager_id,\n options: {\n showType: true,\n showContent: true,\n },\n })\n\n const positionTableId = object?.data?.content?.fields?.position?.fields?.id?.id\n\n const positionTableData = await this._sdk.FullClient.getDynamicFieldsByPage(positionTableId)\n\n const burnPools = positionTableData?.data?.map((item: any) => {\n return item?.name?.value\n })\n\n return burnPools\n } catch (error) {\n console.log('getBurnPoolList ~ error:', error)\n handleError(BurnErrorCode.FetchError, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPoolList',\n })\n }\n }\n\n /**\n * @description Get the position handle for a given pool.\n * @param pool_id - The pool ID.\n * @returns\n */\n private async getPositionHandle(pool_id: string) {\n const { burn } = this._sdk.sdkOptions\n const { burn_pool_handle } = getPackagerConfigs(burn)\n const cacheKey = `getPosHandle_${pool_id}`\n let posHandle = this._sdk.getCache<string>(cacheKey)\n if (posHandle) {\n return posHandle\n }\n try {\n const posHandleRes: any = await this._sdk.FullClient.getDynamicFieldObject({\n parentId: burn_pool_handle,\n name: {\n type: '0x2::object::ID',\n value: pool_id,\n },\n })\n posHandle = posHandleRes.data.content.fields.value.fields.id.id\n\n if (posHandle) {\n this._sdk.updateCache(cacheKey, posHandle)\n }\n\n return posHandle\n } catch (error) {\n handleError(BurnErrorCode.InvalidPoolId, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPositionHandle',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n }\n\n /**\n * @description Get the list of burned positions for a given pool.\n * @param pool_id - The pool ID.\n * @returns\n */\n async getPoolBurnPositionList(pool_id: string) {\n try {\n const posHandle = await this.getPositionHandle(pool_id)\n if (posHandle === undefined) {\n handleError(BurnErrorCode.InvalidPoolId, `${pool_id} is a invalid pool id, please check it and try another valid pool id`, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPositionHandle',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n\n const positionTableData = await this._sdk.FullClient.getDynamicFieldsByPage(posHandle as string)\n\n const warpPosIds = positionTableData?.data?.map((item: any) => {\n return item.objectId\n })\n\n if (warpPosIds.length > 0) {\n const warpPosRes = await this._sdk.FullClient.batchGetObjects(warpPosIds, { showContent: true })\n\n const burnedPositionIds = warpPosRes.map((item: any) => {\n return item.data.content.fields.value.fields.burned_position_id\n })\n\n const burnedPositionsRes = await this._sdk.FullClient.batchGetObjects(burnedPositionIds, { showContent: true })\n\n const burnPositionList = burnedPositionsRes?.map((item: any) => {\n const info = BurnUtils.buildBurnPositionNFT(item?.data?.content?.fields)\n return info\n })\n return burnPositionList\n }\n\n return []\n } catch (error: any) {\n console.log('getPoolBurnPositionList ~ error:', error)\n handleError(BurnErrorCode.InvalidPoolId, `${pool_id} is a invalid pool id, please check it and try another valid pool id`, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPoolBurnPositionList',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n }\n\n /**\n * @description Get the list of burned positions for a given account.\n * @param account_address - The account address.\n * @returns\n */\n async getBurnPositionList(account_address: string) {\n const { package_id } = this._sdk.sdkOptions.burn\n try {\n const ownerRes = await this._sdk.FullClient.getOwnedObjectsByPage(account_address, {\n options: { showType: true, showContent: true, showOwner: true, showDisplay: true },\n filter: {\n MatchAny: [\n {\n StructType: `${package_id}::lp_burn::CetusLPBurnProof`,\n },\n ],\n },\n })\n const burnPositionList = ownerRes?.data?.map((item: any) => {\n const info = BurnUtils.buildBurnPositionNFT(item?.data?.content?.fields)\n return info\n })\n return burnPositionList\n } catch (error) {\n handleError(BurnErrorCode.InvalidAccountAddress, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPositionList',\n [DETAILS_KEYS.REQUEST_PARAMS]: { account_address },\n })\n }\n }\n\n /**\n * @description Get the burned position information for a given position ID.\n * @param pos_id - The position ID.\n * @returns\n */\n async getBurnPosition(pos_id: string) {\n try {\n const object: any = await this._sdk.FullClient.getObject({ id: pos_id, options: { showContent: true, showType: true } })\n\n if (object?.data?.content?.fields) {\n const info = BurnUtils.buildBurnPositionNFT(object?.data?.content?.fields)\n return info\n }\n\n return null\n } catch (error) {\n handleError(BurnErrorCode.InvalidPositionId, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPosition',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pos_id },\n })\n }\n }\n\n /**\n * @description Create a burn payload for a given pool and position.\n * @param params - The burn parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createBurnPayload(params: BurnParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const positionArg = typeof params.pos_id === 'string' ? tx.object(params.pos_id) : params.pos_id\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id } = getPackagerConfigs(burn)\n const target = `${burn.published_at}::lp_burn::burn`\n tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(params.pool_id), positionArg],\n typeArguments: [params.coin_type_a, params.coin_type_b],\n })\n\n return tx\n }\n\n /**\n * When the position is burned, a CetusLPBurnProof will be returned. Compared to the burn_lp function,\n * this V2 version does not require the pool object as a parameter, making it more convenient to use.\n * The function will automatically verify the position's validity through the position object itself.\n * This design also allows users to create a pool, add liquidity, and burn the position all within one transaction.\n *\n * @param {string | TransactionObjectArgument} pos - The LP position to be burned,\n * either as an object argument or its ID (string).\n * @param {Transaction} [tx] - An optional `Transaction` object; if not provided, a new one is created.\n * @returns {CetusLPBurnProof} - The CetusLPBurnProof object ID .\n */\n createBurnLPV2Payload(pos: string | TransactionObjectArgument, tx?: Transaction): TransactionObjectArgument {\n tx = tx || new Transaction()\n\n const positionArg = typeof pos === 'string' ? tx.object(pos) : pos\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::burn_lp_v2`\n const [cetusLPBurnProof] = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), positionArg],\n typeArguments: [],\n })\n\n return cetusLPBurnProof\n }\n\n /**\n * @description Create a collect fee payload for a given pool and position.\n * @param params - The collect fee parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createCollectFeePayload(params: CollectFeeParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_fee`\n\n const coins = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(clmm_global_config), tx.object(params.pool_id), tx.object(params.pos_id)],\n typeArguments: [params.coin_type_a, params.coin_type_b],\n })\n tx.transferObjects(coins, tx.pure.address(params.account))\n\n return tx\n }\n\n /**\n * @description Create a collect reward payload for a given pool and position.\n * @param params - The collect reward parameters.\n * @param tx - The transaction object.\n * @returns\n */\n crateCollectRewardPayload(params: CollectRewardParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config, clmm_global_vault_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_reward`\n\n for (let i = 0; i < params.rewarder_coin_types?.length; i++) {\n const item = params.rewarder_coin_types?.[i]\n const coin = tx.moveCall({\n target,\n arguments: [\n tx.object(manager_id),\n tx.object(clmm_global_config),\n tx.object(params.pool_id),\n tx.object(params.pos_id),\n tx.object(clmm_global_vault_id),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [params.coin_type_a, params.coin_type_b, item],\n })\n\n tx.transferObjects([coin], tx.pure.address(params.account))\n }\n\n return tx\n }\n\n /**\n * @description Create a collect fee payload for a given pool and position.\n * @param params - The collect fee parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createCollectFeesPayload(params: CollectFeeParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_fee`\n\n for (let i = 0; i < params.length; i++) {\n const item = params[i]\n const coins = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(clmm_global_config), tx.object(item.pool_id), tx.object(item.pos_id)],\n typeArguments: [item.coin_type_a, item.coin_type_b],\n })\n tx.transferObjects([coins[0], coins[1]], tx.pure.address(item.account))\n }\n\n return tx\n }\n\n /**\n * @description Create a collect reward payload for a given pool and position.\n * @param params - The collect reward parameters.\n * @param tx - The transaction object.\n * @returns\n */\n crateCollectRewardsPayload(params: CollectRewardParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config, clmm_global_vault_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_reward`\n for (let j = 0; j < params.length; j++) {\n const item = params[j]\n for (let i = 0; i < item.rewarder_coin_types?.length; i++) {\n const items = item.rewarder_coin_types?.[i]\n const coin = tx.moveCall({\n target,\n arguments: [\n tx.object(manager_id),\n tx.object(clmm_global_config),\n tx.object(item.pool_id),\n tx.object(item.pos_id),\n tx.object(clmm_global_vault_id),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [item.coin_type_a, item.coin_type_b, items],\n })\n\n tx.transferObjects([coin], tx.pure.address(item.account))\n }\n }\n\n return tx\n }\n}\n","import { BaseError } from '@cetusprotocol/common-sdk'\n\nexport enum BurnErrorCode {\n InvalidPoolId = `InvalidPoolId`,\n InvalidPositionId = `InvalidPositionId`,\n InvalidAccountAddress = `InvalidAccountAddress`,\n BuildError = 'BuildError',\n FetchError = 'FetchError',\n}\n\nexport class BurnError extends BaseError {\n constructor(message: string, error_code?: BurnErrorCode, details?: Record<string, any>) {\n super(message, error_code || 'UnknownError', details)\n }\n\n static isBurnErrorCode(e: any, code: BurnErrorCode): boolean {\n return this.isErrorCode<BurnError>(e, code)\n }\n}\n\nexport const handleError = (code: BurnErrorCode, error: Error | string, details?: Record<string, any>) => {\n if (error instanceof Error) {\n throw new BurnError(error.message, code, details)\n } else {\n throw new BurnError(error, code, details)\n }\n}\n","import { asIntN, extractStructTagFromType } from '@cetusprotocol/common-sdk'\nimport { BurnPositionNFT } from '../types/burn'\n\nexport class BurnUtils {\n static buildBurnPositionNFT(fields: any): BurnPositionNFT {\n const burnFields = fields.position.fields\n const name = `Cetus Burned LP | Pool${burnFields.name.split('Pool')?.[1]}`\n const burnPositionNft: BurnPositionNFT = {\n id: fields.id.id,\n url: burnFields.url,\n pool_id: burnFields.pool,\n coin_type_a: extractStructTagFromType(burnFields.coin_type_a.fields.name).full_address,\n coin_type_b: extractStructTagFromType(burnFields.coin_type_b.fields.name).full_address,\n description: burnFields.description,\n name,\n liquidity: burnFields.liquidity,\n clmm_position_id: burnFields.id.id,\n clmm_pool_id: burnFields.pool,\n tick_lower_index: asIntN(BigInt(burnFields.tick_lower_index.fields.bits)),\n tick_upper_index: asIntN(BigInt(burnFields.tick_upper_index.fields.bits)),\n index: burnFields.index,\n is_lp_burn: true,\n }\n return burnPositionNft\n }\n}\n"],"mappings":"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","names":["index_exports","__export","BurnModule","BurnUtils","CetusBurnSDK","burnMainnet","burnTestnet","index_default","__toCommonJS","import_common_sdk","import_common_sdk","burnMainnet","import_common_sdk","burnTestnet","import_transactions","import_common_sdk","import_common_sdk","BurnError","message","error_code","details","e","code","handleError","error","import_common_sdk","BurnUtils","fields","burnFields","name","BurnModule","sdk","burn","manager_id","positionTableId","item","error","handleError","pool_id","burn_pool_handle","cacheKey","posHandle","warpPosIds","burnedPositionIds","BurnUtils","account_address","package_id","pos_id","object","params","tx","positionArg","target","pos","cetusLPBurnProof","clmm_global_config","coins","clmm_global_vault_id","i","coin","j","items","CetusBurnSDK","_CetusBurnSDK","options","BurnModule","env","burnMainnet","burnTestnet","index_default","CetusBurnSDK"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/sdk.ts","../src/config/mainnet.ts","../src/config/testnet.ts","../src/modules/burnModule.ts","../src/errors/errors.ts","../src/utils/burn.ts"],"sourcesContent":["import { CetusBurnSDK, SdkOptions } from './sdk'\n\nexport * from './utils'\nexport * from './types'\nexport * from './modules'\nexport * from './config'\nexport { CetusBurnSDK, SdkOptions }\nexport default CetusBurnSDK\n","import type { BaseSdkOptions, Package } from '@cetusprotocol/common-sdk'\nimport { SdkWrapper } from '@cetusprotocol/common-sdk'\nimport { burnMainnet, burnTestnet } from './config'\nimport { BurnModule } from './modules/burnModule'\nimport type { BurnConfigs } from './types/burn'\n\n/**\n * Represents options and configurations for an SDK.\n */\nexport interface SdkOptions extends BaseSdkOptions {\n burn: Package<BurnConfigs>\n}\n\n/**\n * The entry class of CetusDcaSDK, which is almost responsible for all interactions with dca.\n */\nexport class CetusBurnSDK extends SdkWrapper<SdkOptions> {\n protected _burn: BurnModule\n\n constructor(options: SdkOptions) {\n super(options)\n\n this._burn = new BurnModule(this)\n }\n\n get Burn(): BurnModule {\n return this._burn\n }\n\n /**\n * Static factory method to initialize the SDK\n * @param options SDK initialization options\n * @returns An instance of CetusBurnDK\n */\n static createSDK(options: BaseSdkOptions): CetusBurnSDK {\n const { env = 'mainnet' } = options\n return env === 'mainnet'\n ? CetusBurnSDK.createCustomSDK({ ...burnMainnet, ...options })\n : CetusBurnSDK.createCustomSDK({ ...burnTestnet, ...options })\n }\n\n /**\n * Create a custom SDK instance with the given options\n * @param options The options for the SDK\n * @returns An instance of CetusBurnSDK\n */\n static createCustomSDK<T extends BaseSdkOptions>(options: T & SdkOptions): CetusBurnSDK {\n return new CetusBurnSDK(options)\n }\n}\n","import { FullRpcUrlMainnet } from '@cetusprotocol/common-sdk'\nimport type { SdkOptions } from '../sdk'\nimport { CetusBurnSDK } from '../sdk'\n// mainnet\nexport const burnMainnet: SdkOptions = {\n env: 'mainnet',\n full_rpc_url: FullRpcUrlMainnet,\n burn: {\n package_id: '0x12d73de9a6bc3cb658ec9dc0fe7de2662be1cea5c76c092fcc3606048cdbac27',\n published_at: '0xf80a6bb02d98cebf90a6476e8c106a4ddf1865ef79d6067a66933eb57b9f0f7b',\n version: 5,\n config: {\n manager_id: '0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845',\n clmm_global_config: '0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f',\n clmm_global_vault_id: '0xce7bceef26d3ad1f6d9b6f13a953f053e6ed3ca77907516481ce99ae8e588f2b',\n burn_pool_handle: '0xc9aacf74bd7cc8da8820ae28ca4473b7e01c87be19bc35bf81c9c7311e1b299e',\n },\n },\n}\n","import { FullRpcUrlTestnet } from '@cetusprotocol/common-sdk'\nimport type { SdkOptions } from '../sdk'\nimport { CetusBurnSDK } from '../sdk'\n\nexport const burnTestnet: SdkOptions = {\n env: 'testnet',\n full_rpc_url: FullRpcUrlTestnet,\n burn: {\n package_id: '0x5977541d3ac853f984e9b5bb104d4971c50a94e4daa4f0e5fedf40c3d35f6636',\n published_at: '0x5977541d3ac853f984e9b5bb104d4971c50a94e4daa4f0e5fedf40c3d35f6636',\n config: {\n manager_id: '0x96142a17b098e64dad3b6d9b3ab72ddc658cde01e3008f56928496e50819b3cf',\n clmm_global_config: '0x170708f8b3fdb938835171ea730916b4b4e920c74f2cf7cd986d2c7ad02ebd5e',\n clmm_global_vault_id: '0x51b48da7fd31af581a0e02cb9e1b33129c8a66d5e98577d5540c24b23a3050a6',\n burn_pool_handle: '0x2fd8901939489b560bf664e90223369bdb5b5174c3246cc520cf4009aed7934a',\n },\n },\n}\n","import type { TransactionObjectArgument } from '@mysten/sui/transactions'\nimport { Transaction } from '@mysten/sui/transactions'\nimport { CLOCK_ADDRESS, DETAILS_KEYS, getPackagerConfigs, IModule } from '@cetusprotocol/common-sdk'\nimport { BurnErrorCode, handleError } from '../errors/errors'\nimport type { CetusBurnSDK } from '../sdk'\nimport type { BurnParams, CollectFeeParams, CollectRewardParams, RedeemVestParams } from '../types/burn'\nimport { BurnUtils } from '../utils'\n\nexport class BurnModule implements IModule<CetusBurnSDK> {\n protected _sdk: CetusBurnSDK\n\n constructor(sdk: CetusBurnSDK) {\n this._sdk = sdk\n }\n\n get sdk() {\n return this._sdk\n }\n\n /**\n * @description Get the list of pools that have been burned.\n * @returns\n */\n async getBurnPoolList() {\n try {\n const { burn } = this._sdk.sdkOptions\n // TODO positionTableId is a constant, it can be written in the configuration later\n const { manager_id } = getPackagerConfigs(burn)\n const object: any = await this._sdk.FullClient.getObject({\n id: manager_id,\n options: {\n showType: true,\n showContent: true,\n },\n })\n\n const positionTableId = object?.data?.content?.fields?.position?.fields?.id?.id\n\n const positionTableData = await this._sdk.FullClient.getDynamicFieldsByPage(positionTableId)\n\n const burnPools = positionTableData?.data?.map((item: any) => {\n return item?.name?.value\n })\n\n return burnPools\n } catch (error) {\n console.log('getBurnPoolList ~ error:', error)\n handleError(BurnErrorCode.FetchError, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPoolList',\n })\n }\n }\n\n /**\n * @description Get the position handle for a given pool.\n * @param pool_id - The pool ID.\n * @returns\n */\n private async getPositionHandle(pool_id: string) {\n const { burn } = this._sdk.sdkOptions\n const { burn_pool_handle } = getPackagerConfigs(burn)\n const cacheKey = `getPosHandle_${pool_id}`\n let posHandle = this._sdk.getCache<string>(cacheKey)\n if (posHandle) {\n return posHandle\n }\n try {\n const posHandleRes: any = await this._sdk.FullClient.getDynamicFieldObject({\n parentId: burn_pool_handle,\n name: {\n type: '0x2::object::ID',\n value: pool_id,\n },\n })\n posHandle = posHandleRes.data.content.fields.value.fields.id.id\n\n if (posHandle) {\n this._sdk.updateCache(cacheKey, posHandle)\n }\n\n return posHandle\n } catch (error) {\n handleError(BurnErrorCode.InvalidPoolId, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPositionHandle',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n }\n\n /**\n * @description Get the list of burned positions for a given pool.\n * @param pool_id - The pool ID.\n * @returns\n */\n async getPoolBurnPositionList(pool_id: string) {\n try {\n const posHandle = await this.getPositionHandle(pool_id)\n if (posHandle === undefined) {\n handleError(BurnErrorCode.InvalidPoolId, `${pool_id} is a invalid pool id, please check it and try another valid pool id`, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPositionHandle',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n\n const positionTableData = await this._sdk.FullClient.getDynamicFieldsByPage(posHandle as string)\n\n const warpPosIds = positionTableData?.data?.map((item: any) => {\n return item.objectId\n })\n\n if (warpPosIds.length > 0) {\n const warpPosRes = await this._sdk.FullClient.batchGetObjects(warpPosIds, { showContent: true })\n\n const burnedPositionIds = warpPosRes.map((item: any) => {\n return item.data.content.fields.value.fields.burned_position_id\n })\n\n const burnedPositionsRes = await this._sdk.FullClient.batchGetObjects(burnedPositionIds, { showContent: true })\n\n const burnPositionList = burnedPositionsRes?.map((item: any) => {\n const info = BurnUtils.buildBurnPositionNFT(item?.data?.content?.fields)\n return info\n })\n return burnPositionList\n }\n\n return []\n } catch (error: any) {\n console.log('getPoolBurnPositionList ~ error:', error)\n handleError(BurnErrorCode.InvalidPoolId, `${pool_id} is a invalid pool id, please check it and try another valid pool id`, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPoolBurnPositionList',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n }\n\n /**\n * @description Get the list of burned positions for a given account.\n * @param account_address - The account address.\n * @returns\n */\n async getBurnPositionList(account_address: string) {\n const { package_id } = this._sdk.sdkOptions.burn\n try {\n const ownerRes = await this._sdk.FullClient.getOwnedObjectsByPage(account_address, {\n options: { showType: true, showContent: true, showOwner: true, showDisplay: true },\n filter: {\n MatchAny: [\n {\n StructType: `${package_id}::lp_burn::CetusLPBurnProof`,\n },\n ],\n },\n })\n const burnPositionList = ownerRes?.data?.map((item: any) => {\n const info = BurnUtils.buildBurnPositionNFT(item?.data?.content?.fields)\n return info\n })\n return burnPositionList\n } catch (error) {\n handleError(BurnErrorCode.InvalidAccountAddress, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPositionList',\n [DETAILS_KEYS.REQUEST_PARAMS]: { account_address },\n })\n }\n }\n\n /**\n * @description Get the burned position information for a given position ID.\n * @param pos_id - The position ID.\n * @returns\n */\n async getBurnPosition(pos_id: string) {\n try {\n const object: any = await this._sdk.FullClient.getObject({ id: pos_id, options: { showContent: true, showType: true } })\n\n if (object?.data?.content?.fields) {\n const info = BurnUtils.buildBurnPositionNFT(object?.data?.content?.fields)\n return info\n }\n\n return null\n } catch (error) {\n handleError(BurnErrorCode.InvalidPositionId, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPosition',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pos_id },\n })\n }\n }\n\n /**\n * @description Create a burn payload for a given pool and position.\n * @param params - The burn parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createBurnPayload(params: BurnParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const positionArg = typeof params.pos_id === 'string' ? tx.object(params.pos_id) : params.pos_id\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id } = getPackagerConfigs(burn)\n const target = `${burn.published_at}::lp_burn::burn`\n tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(params.pool_id), positionArg],\n typeArguments: [params.coin_type_a, params.coin_type_b],\n })\n\n return tx\n }\n\n /**\n * When the position is burned, a CetusLPBurnProof will be returned. Compared to the burn_lp function,\n * this V2 version does not require the pool object as a parameter, making it more convenient to use.\n * The function will automatically verify the position's validity through the position object itself.\n * This design also allows users to create a pool, add liquidity, and burn the position all within one transaction.\n *\n * @param {string | TransactionObjectArgument} pos - The LP position to be burned,\n * either as an object argument or its ID (string).\n * @param {Transaction} [tx] - An optional `Transaction` object; if not provided, a new one is created.\n * @returns {CetusLPBurnProof} - The CetusLPBurnProof object ID .\n */\n createBurnLPV2Payload(pos: string | TransactionObjectArgument, tx?: Transaction): TransactionObjectArgument {\n tx = tx || new Transaction()\n\n const positionArg = typeof pos === 'string' ? tx.object(pos) : pos\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::burn_lp_v2`\n const [cetusLPBurnProof] = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), positionArg],\n typeArguments: [],\n })\n\n return cetusLPBurnProof\n }\n\n /**\n * @description Create a collect fee payload for a given pool and position.\n * @param params - The collect fee parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createCollectFeePayload(params: CollectFeeParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config } = getPackagerConfigs(burn)\n const target = `${burn.published_at}::lp_burn::collect_fee`\n\n const coins = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(clmm_global_config), tx.object(params.pool_id), tx.object(params.pos_id)],\n typeArguments: [params.coin_type_a, params.coin_type_b],\n })\n\n tx.transferObjects([coins[0], coins[1]], tx.pure.address(params.account))\n\n return tx\n }\n\n /**\n * @description Create a collect reward payload for a given pool and position.\n * @param params - The collect reward parameters.\n * @param tx - The transaction object.\n * @returns\n */\n crateCollectRewardPayload(params: CollectRewardParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config, clmm_global_vault_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_reward`\n\n for (let i = 0; i < params.rewarder_coin_types?.length; i++) {\n const item = params.rewarder_coin_types?.[i]\n const coin = tx.moveCall({\n target,\n arguments: [\n tx.object(manager_id),\n tx.object(clmm_global_config),\n tx.object(params.pool_id),\n tx.object(params.pos_id),\n tx.object(clmm_global_vault_id),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [params.coin_type_a, params.coin_type_b, item],\n })\n\n tx.transferObjects([coin], tx.pure.address(params.account))\n }\n\n return tx\n }\n\n /**\n * @description Create a redeem vest payload for a given pool and position.\n * @param params - The redeem vest parameters.\n * @param tx - The transaction object.\n * @returns\n */\n redeemVestPayload(params: RedeemVestParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n const { burn } = this._sdk.sdkOptions\n\n for (const param of params) {\n const { clmm_versioned_id, clmm_vester_id, clmm_pool_id, burn_position_id, period, coin_type_a, coin_type_b, vest_coin_type } = param\n const coin = tx.moveCall({\n package: burn.published_at,\n module: 'lp_burn',\n function: 'redeem',\n arguments: [\n tx.object(clmm_versioned_id),\n tx.object(clmm_vester_id),\n tx.object(clmm_pool_id),\n tx.object(burn_position_id),\n tx.pure.u16(period),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [coin_type_a, coin_type_b],\n })\n\n tx.transferObjects([coin], tx.pure.address(this._sdk.getSenderAddress()))\n }\n\n return tx\n }\n\n /**\n * @description Create a collect fee payload for a given pool and position.\n * @param params - The collect fee parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createCollectFeesPayload(paramsList: CollectFeeParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n\n for (const params of paramsList) {\n this.createCollectFeePayload(params, tx)\n }\n\n return tx\n }\n\n /**\n * @description Create a collect reward payload for a given pool and position.\n * @param params - The collect reward parameters.\n * @param tx - The transaction object.\n * @returns\n */\n crateCollectRewardsPayload(params: CollectRewardParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config, clmm_global_vault_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_reward`\n for (let j = 0; j < params.length; j++) {\n const item = params[j]\n for (let i = 0; i < item.rewarder_coin_types?.length; i++) {\n const items = item.rewarder_coin_types?.[i]\n const coin = tx.moveCall({\n target,\n arguments: [\n tx.object(manager_id),\n tx.object(clmm_global_config),\n tx.object(item.pool_id),\n tx.object(item.pos_id),\n tx.object(clmm_global_vault_id),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [item.coin_type_a, item.coin_type_b, items],\n })\n\n tx.transferObjects([coin], tx.pure.address(item.account))\n }\n }\n\n return tx\n }\n}\n","import { BaseError } from '@cetusprotocol/common-sdk'\n\nexport enum BurnErrorCode {\n InvalidPoolId = `InvalidPoolId`,\n InvalidPositionId = `InvalidPositionId`,\n InvalidAccountAddress = `InvalidAccountAddress`,\n BuildError = 'BuildError',\n FetchError = 'FetchError',\n}\n\nexport class BurnError extends BaseError {\n constructor(message: string, error_code?: BurnErrorCode, details?: Record<string, any>) {\n super(message, error_code || 'UnknownError', details)\n }\n\n static isBurnErrorCode(e: any, code: BurnErrorCode): boolean {\n return this.isErrorCode<BurnError>(e, code)\n }\n}\n\nexport const handleError = (code: BurnErrorCode, error: Error | string, details?: Record<string, any>) => {\n if (error instanceof Error) {\n throw new BurnError(error.message, code, details)\n } else {\n throw new BurnError(error, code, details)\n }\n}\n","import { asIntN, extractStructTagFromType } from '@cetusprotocol/common-sdk'\nimport { BurnPositionNFT } from '../types/burn'\n\nexport class BurnUtils {\n static buildBurnPositionNFT(fields: any): BurnPositionNFT {\n const burnFields = fields.position.fields\n const name = fields.name\n const burnPositionNft: BurnPositionNFT = {\n id: fields.id.id,\n url: burnFields.url,\n pool_id: burnFields.pool,\n coin_type_a: extractStructTagFromType(burnFields.coin_type_a.fields.name).full_address,\n coin_type_b: extractStructTagFromType(burnFields.coin_type_b.fields.name).full_address,\n description: fields.description,\n name,\n liquidity: burnFields.liquidity,\n clmm_position_id: burnFields.id.id,\n clmm_pool_id: burnFields.pool,\n tick_lower_index: asIntN(BigInt(burnFields.tick_lower_index.fields.bits)),\n tick_upper_index: asIntN(BigInt(burnFields.tick_upper_index.fields.bits)),\n index: burnFields.index,\n is_lp_burn: true,\n }\n return burnPositionNft\n }\n}\n"],"mappings":"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","names":["index_exports","__export","BurnModule","BurnUtils","CetusBurnSDK","burnMainnet","burnTestnet","index_default","__toCommonJS","import_common_sdk","import_common_sdk","burnMainnet","import_common_sdk","burnTestnet","import_transactions","import_common_sdk","import_common_sdk","BurnError","message","error_code","details","e","code","handleError","error","import_common_sdk","BurnUtils","fields","burnFields","name","BurnModule","sdk","burn","manager_id","positionTableId","item","error","handleError","pool_id","burn_pool_handle","cacheKey","posHandle","warpPosIds","burnedPositionIds","BurnUtils","account_address","package_id","pos_id","object","params","tx","positionArg","target","pos","cetusLPBurnProof","clmm_global_config","coins","clmm_global_vault_id","i","coin","param","clmm_versioned_id","clmm_vester_id","clmm_pool_id","burn_position_id","period","coin_type_a","coin_type_b","vest_coin_type","paramsList","j","items","CetusBurnSDK","_CetusBurnSDK","options","BurnModule","env","burnMainnet","burnTestnet","index_default","CetusBurnSDK"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{SdkWrapper as E}from"@cetusprotocol/common-sdk";import{FullRpcUrlMainnet as j}from"@cetusprotocol/common-sdk";var P={env:"mainnet",full_rpc_url:j,burn:{package_id:"0x12d73de9a6bc3cb658ec9dc0fe7de2662be1cea5c76c092fcc3606048cdbac27",published_at:"0xb977b00649d3ab8950bcbbafb01fcf32e2e7718eb3133eff2e48c0cef04b1495",config:{manager_id:"0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",clmm_global_config:"0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",clmm_global_vault_id:"0xce7bceef26d3ad1f6d9b6f13a953f053e6ed3ca77907516481ce99ae8e588f2b",burn_pool_handle:"0xc9aacf74bd7cc8da8820ae28ca4473b7e01c87be19bc35bf81c9c7311e1b299e"}}};import{FullRpcUrlTestnet as O}from"@cetusprotocol/common-sdk";var h={env:"testnet",full_rpc_url:O,burn:{package_id:"0x3b494006831b046481c8046910106e2dfbe0d1fa9bc01e41783fb3ff6534ed3a",published_at:"0xaf89f8215c5b07eaac8b77c7745ce62f94cb76ef4bcb854e283f644c519ef43e",config:{manager_id:"0xd04529ef15b7dad6699ee905daca0698858cab49724b2b2a1fc6b1ebc5e474ef",clmm_global_config:"0x9774e359588ead122af1c7e7f64e14ade261cfeecdb5d0eb4a5b3b4c8ab8bd3e",clmm_global_vault_id:"0xf78d2ee3c312f298882cb680695e5e8c81b1d441a646caccc058006c2851ddea",burn_pool_handle:"0x20262dac8853ab8f63c98e0b17bfb1c758efc33d0092ac3c5f204dfb7ba81ac5"}}};import{Transaction as f}from"@mysten/sui/transactions";import{CLOCK_ADDRESS as C,DETAILS_KEYS as d,getPackagerConfigs as u}from"@cetusprotocol/common-sdk";import{BaseError as S}from"@cetusprotocol/common-sdk";var m=class extends S{constructor(t,e,o){super(t,e||"UnknownError",o)}static isBurnErrorCode(t,e){return this.isErrorCode(t,e)}},b=(l,t,e)=>{throw t instanceof Error?new m(t.message,l,e):new m(t,l,e)};import{asIntN as k,extractStructTagFromType as w}from"@cetusprotocol/common-sdk";var _=class{static buildBurnPositionNFT(t){let e=t.position.fields,o=`Cetus Burned LP | Pool${e.name.split("Pool")?.[1]}`;return{id:t.id.id,url:e.url,pool_id:e.pool,coin_type_a:w(e.coin_type_a.fields.name).full_address,coin_type_b:w(e.coin_type_b.fields.name).full_address,description:e.description,name:o,liquidity:e.liquidity,clmm_position_id:e.id.id,clmm_pool_id:e.pool,tick_lower_index:k(BigInt(e.tick_lower_index.fields.bits)),tick_upper_index:k(BigInt(e.tick_upper_index.fields.bits)),index:e.index,is_lp_burn:!0}}};var g=class{constructor(t){this._sdk=t}get sdk(){return this._sdk}async getBurnPoolList(){try{let{burn:t}=this._sdk.sdkOptions,{manager_id:e}=u(t),r=(await this._sdk.FullClient.getObject({id:e,options:{showType:!0,showContent:!0}}))?.data?.content?.fields?.position?.fields?.id?.id;return(await this._sdk.FullClient.getDynamicFieldsByPage(r))?.data?.map(a=>a?.name?.value)}catch(t){console.log("getBurnPoolList ~ error:",t),b("FetchError",t,{[d.METHOD_NAME]:"getBurnPoolList"})}}async getPositionHandle(t){let{burn:e}=this._sdk.sdkOptions,{burn_pool_handle:o}=u(e),r=`getPosHandle_${t}`,n=this._sdk.getCache(r);if(n)return n;try{return n=(await this._sdk.FullClient.getDynamicFieldObject({parentId:o,name:{type:"0x2::object::ID",value:t}})).data.content.fields.value.fields.id.id,n&&this._sdk.updateCache(r,n),n}catch(s){b("InvalidPoolId",s,{[d.METHOD_NAME]:"getPositionHandle",[d.REQUEST_PARAMS]:{pool_id:t}})}}async getPoolBurnPositionList(t){try{let e=await this.getPositionHandle(t);e===void 0&&b("InvalidPoolId",`${t} is a invalid pool id, please check it and try another valid pool id`,{[d.METHOD_NAME]:"getPositionHandle",[d.REQUEST_PARAMS]:{pool_id:t}});let r=(await this._sdk.FullClient.getDynamicFieldsByPage(e))?.data?.map(n=>n.objectId);if(r.length>0){let s=(await this._sdk.FullClient.batchGetObjects(r,{showContent:!0})).map(i=>i.data.content.fields.value.fields.burned_position_id);return(await this._sdk.FullClient.batchGetObjects(s,{showContent:!0}))?.map(i=>_.buildBurnPositionNFT(i?.data?.content?.fields))}return[]}catch(e){console.log("getPoolBurnPositionList ~ error:",e),b("InvalidPoolId",`${t} is a invalid pool id, please check it and try another valid pool id`,{[d.METHOD_NAME]:"getPoolBurnPositionList",[d.REQUEST_PARAMS]:{pool_id:t}})}}async getBurnPositionList(t){let{package_id:e}=this._sdk.sdkOptions.burn;try{return(await this._sdk.FullClient.getOwnedObjectsByPage(t,{options:{showType:!0,showContent:!0,showOwner:!0,showDisplay:!0},filter:{MatchAny:[{StructType:`${e}::lp_burn::CetusLPBurnProof`}]}}))?.data?.map(n=>_.buildBurnPositionNFT(n?.data?.content?.fields))}catch(o){b("InvalidAccountAddress",o,{[d.METHOD_NAME]:"getBurnPositionList",[d.REQUEST_PARAMS]:{account_address:t}})}}async getBurnPosition(t){try{let e=await this._sdk.FullClient.getObject({id:t,options:{showContent:!0,showType:!0}});return e?.data?.content?.fields?_.buildBurnPositionNFT(e?.data?.content?.fields):null}catch(e){b("InvalidPositionId",e,{[d.METHOD_NAME]:"getBurnPosition",[d.REQUEST_PARAMS]:{pos_id:t}})}}createBurnPayload(t,e){e=e||new f;let o=typeof t.pos_id=="string"?e.object(t.pos_id):t.pos_id,{burn:r}=this._sdk.sdkOptions,{manager_id:n}=u(r),s=`${r.published_at}::lp_burn::burn`;return e.moveCall({target:s,arguments:[e.object(n),e.object(t.pool_id),o],typeArguments:[t.coin_type_a,t.coin_type_b]}),e}createBurnLPV2Payload(t,e){e=e||new f;let o=typeof t=="string"?e.object(t):t,{burn:r}=this._sdk.sdkOptions,{manager_id:n}=u(r),s=`${r.published_at}::lp_burn::burn_lp_v2`,[a]=e.moveCall({target:s,arguments:[e.object(n),o],typeArguments:[]});return a}createCollectFeePayload(t,e){e=e||new f;let{burn:o}=this._sdk.sdkOptions,{manager_id:r,clmm_global_config:n}=u(o),s=`${o.published_at}::lp_burn::collect_fee`,a=e.moveCall({target:s,arguments:[e.object(r),e.object(n),e.object(t.pool_id),e.object(t.pos_id)],typeArguments:[t.coin_type_a,t.coin_type_b]});return e.transferObjects(a,e.pure.address(t.account)),e}crateCollectRewardPayload(t,e){e=e||new f;let{burn:o}=this._sdk.sdkOptions,{manager_id:r,clmm_global_config:n,clmm_global_vault_id:s}=u(o),a=`${o.published_at}::lp_burn::collect_reward`;for(let c=0;c<t.rewarder_coin_types?.length;c++){let i=t.rewarder_coin_types?.[c],p=e.moveCall({target:a,arguments:[e.object(r),e.object(n),e.object(t.pool_id),e.object(t.pos_id),e.object(s),e.object(C)],typeArguments:[t.coin_type_a,t.coin_type_b,i]});e.transferObjects([p],e.pure.address(t.account))}return e}createCollectFeesPayload(t,e){e=e||new f;let{burn:o}=this._sdk.sdkOptions,{manager_id:r,clmm_global_config:n}=u(o),s=`${o.published_at}::lp_burn::collect_fee`;for(let a=0;a<t.length;a++){let c=t[a],i=e.moveCall({target:s,arguments:[e.object(r),e.object(n),e.object(c.pool_id),e.object(c.pos_id)],typeArguments:[c.coin_type_a,c.coin_type_b]});e.transferObjects([i[0],i[1]],e.pure.address(c.account))}return e}crateCollectRewardsPayload(t,e){e=e||new f;let{burn:o}=this._sdk.sdkOptions,{manager_id:r,clmm_global_config:n,clmm_global_vault_id:s}=u(o),a=`${o.published_at}::lp_burn::collect_reward`;for(let c=0;c<t.length;c++){let i=t[c];for(let p=0;p<i.rewarder_coin_types?.length;p++){let B=i.rewarder_coin_types?.[p],T=e.moveCall({target:a,arguments:[e.object(r),e.object(n),e.object(i.pool_id),e.object(i.pos_id),e.object(s),e.object(C)],typeArguments:[i.coin_type_a,i.coin_type_b,B]});e.transferObjects([T],e.pure.address(i.account))}}return e}};var y=class l extends E{constructor(t){super(t),this._burn=new g(this)}get Burn(){return this._burn}static createSDK(t){let{env:e="mainnet"}=t;return e==="mainnet"?l.createCustomSDK({...P,...t}):l.createCustomSDK({...h,...t})}static createCustomSDK(t){return new l(t)}};var se=y;export{g as BurnModule,_ as BurnUtils,y as CetusBurnSDK,P as burnMainnet,h as burnTestnet,se as default};
1
+ import{SdkWrapper as v}from"@cetusprotocol/common-sdk";import{FullRpcUrlMainnet as O}from"@cetusprotocol/common-sdk";var w={env:"mainnet",full_rpc_url:O,burn:{package_id:"0x12d73de9a6bc3cb658ec9dc0fe7de2662be1cea5c76c092fcc3606048cdbac27",published_at:"0xf80a6bb02d98cebf90a6476e8c106a4ddf1865ef79d6067a66933eb57b9f0f7b",version:5,config:{manager_id:"0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845",clmm_global_config:"0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f",clmm_global_vault_id:"0xce7bceef26d3ad1f6d9b6f13a953f053e6ed3ca77907516481ce99ae8e588f2b",burn_pool_handle:"0xc9aacf74bd7cc8da8820ae28ca4473b7e01c87be19bc35bf81c9c7311e1b299e"}}};import{FullRpcUrlTestnet as S}from"@cetusprotocol/common-sdk";var C={env:"testnet",full_rpc_url:S,burn:{package_id:"0x5977541d3ac853f984e9b5bb104d4971c50a94e4daa4f0e5fedf40c3d35f6636",published_at:"0x5977541d3ac853f984e9b5bb104d4971c50a94e4daa4f0e5fedf40c3d35f6636",config:{manager_id:"0x96142a17b098e64dad3b6d9b3ab72ddc658cde01e3008f56928496e50819b3cf",clmm_global_config:"0x170708f8b3fdb938835171ea730916b4b4e920c74f2cf7cd986d2c7ad02ebd5e",clmm_global_vault_id:"0x51b48da7fd31af581a0e02cb9e1b33129c8a66d5e98577d5540c24b23a3050a6",burn_pool_handle:"0x2fd8901939489b560bf664e90223369bdb5b5174c3246cc520cf4009aed7934a"}}};import{Transaction as b}from"@mysten/sui/transactions";import{CLOCK_ADDRESS as h,DETAILS_KEYS as c,getPackagerConfigs as _}from"@cetusprotocol/common-sdk";import{BaseError as E}from"@cetusprotocol/common-sdk";var f=class extends E{constructor(t,e,o){super(t,e||"UnknownError",o)}static isBurnErrorCode(t,e){return this.isErrorCode(t,e)}},p=(l,t,e)=>{throw t instanceof Error?new f(t.message,l,e):new f(t,l,e)};import{asIntN as B,extractStructTagFromType as T}from"@cetusprotocol/common-sdk";var m=class{static buildBurnPositionNFT(t){let e=t.position.fields,o=t.name;return{id:t.id.id,url:e.url,pool_id:e.pool,coin_type_a:T(e.coin_type_a.fields.name).full_address,coin_type_b:T(e.coin_type_b.fields.name).full_address,description:t.description,name:o,liquidity:e.liquidity,clmm_position_id:e.id.id,clmm_pool_id:e.pool,tick_lower_index:B(BigInt(e.tick_lower_index.fields.bits)),tick_upper_index:B(BigInt(e.tick_upper_index.fields.bits)),index:e.index,is_lp_burn:!0}}};var g=class{constructor(t){this._sdk=t}get sdk(){return this._sdk}async getBurnPoolList(){try{let{burn:t}=this._sdk.sdkOptions,{manager_id:e}=_(t),r=(await this._sdk.FullClient.getObject({id:e,options:{showType:!0,showContent:!0}}))?.data?.content?.fields?.position?.fields?.id?.id;return(await this._sdk.FullClient.getDynamicFieldsByPage(r))?.data?.map(a=>a?.name?.value)}catch(t){console.log("getBurnPoolList ~ error:",t),p("FetchError",t,{[c.METHOD_NAME]:"getBurnPoolList"})}}async getPositionHandle(t){let{burn:e}=this._sdk.sdkOptions,{burn_pool_handle:o}=_(e),r=`getPosHandle_${t}`,n=this._sdk.getCache(r);if(n)return n;try{return n=(await this._sdk.FullClient.getDynamicFieldObject({parentId:o,name:{type:"0x2::object::ID",value:t}})).data.content.fields.value.fields.id.id,n&&this._sdk.updateCache(r,n),n}catch(s){p("InvalidPoolId",s,{[c.METHOD_NAME]:"getPositionHandle",[c.REQUEST_PARAMS]:{pool_id:t}})}}async getPoolBurnPositionList(t){try{let e=await this.getPositionHandle(t);e===void 0&&p("InvalidPoolId",`${t} is a invalid pool id, please check it and try another valid pool id`,{[c.METHOD_NAME]:"getPositionHandle",[c.REQUEST_PARAMS]:{pool_id:t}});let r=(await this._sdk.FullClient.getDynamicFieldsByPage(e))?.data?.map(n=>n.objectId);if(r.length>0){let s=(await this._sdk.FullClient.batchGetObjects(r,{showContent:!0})).map(i=>i.data.content.fields.value.fields.burned_position_id);return(await this._sdk.FullClient.batchGetObjects(s,{showContent:!0}))?.map(i=>m.buildBurnPositionNFT(i?.data?.content?.fields))}return[]}catch(e){console.log("getPoolBurnPositionList ~ error:",e),p("InvalidPoolId",`${t} is a invalid pool id, please check it and try another valid pool id`,{[c.METHOD_NAME]:"getPoolBurnPositionList",[c.REQUEST_PARAMS]:{pool_id:t}})}}async getBurnPositionList(t){let{package_id:e}=this._sdk.sdkOptions.burn;try{return(await this._sdk.FullClient.getOwnedObjectsByPage(t,{options:{showType:!0,showContent:!0,showOwner:!0,showDisplay:!0},filter:{MatchAny:[{StructType:`${e}::lp_burn::CetusLPBurnProof`}]}}))?.data?.map(n=>m.buildBurnPositionNFT(n?.data?.content?.fields))}catch(o){p("InvalidAccountAddress",o,{[c.METHOD_NAME]:"getBurnPositionList",[c.REQUEST_PARAMS]:{account_address:t}})}}async getBurnPosition(t){try{let e=await this._sdk.FullClient.getObject({id:t,options:{showContent:!0,showType:!0}});return e?.data?.content?.fields?m.buildBurnPositionNFT(e?.data?.content?.fields):null}catch(e){p("InvalidPositionId",e,{[c.METHOD_NAME]:"getBurnPosition",[c.REQUEST_PARAMS]:{pos_id:t}})}}createBurnPayload(t,e){e=e||new b;let o=typeof t.pos_id=="string"?e.object(t.pos_id):t.pos_id,{burn:r}=this._sdk.sdkOptions,{manager_id:n}=_(r),s=`${r.published_at}::lp_burn::burn`;return e.moveCall({target:s,arguments:[e.object(n),e.object(t.pool_id),o],typeArguments:[t.coin_type_a,t.coin_type_b]}),e}createBurnLPV2Payload(t,e){e=e||new b;let o=typeof t=="string"?e.object(t):t,{burn:r}=this._sdk.sdkOptions,{manager_id:n}=_(r),s=`${r.published_at}::lp_burn::burn_lp_v2`,[a]=e.moveCall({target:s,arguments:[e.object(n),o],typeArguments:[]});return a}createCollectFeePayload(t,e){e=e||new b;let{burn:o}=this._sdk.sdkOptions,{manager_id:r,clmm_global_config:n}=_(o),s=`${o.published_at}::lp_burn::collect_fee`,a=e.moveCall({target:s,arguments:[e.object(r),e.object(n),e.object(t.pool_id),e.object(t.pos_id)],typeArguments:[t.coin_type_a,t.coin_type_b]});return e.transferObjects([a[0],a[1]],e.pure.address(t.account)),e}crateCollectRewardPayload(t,e){e=e||new b;let{burn:o}=this._sdk.sdkOptions,{manager_id:r,clmm_global_config:n,clmm_global_vault_id:s}=_(o),a=`${o.published_at}::lp_burn::collect_reward`;for(let d=0;d<t.rewarder_coin_types?.length;d++){let i=t.rewarder_coin_types?.[d],u=e.moveCall({target:a,arguments:[e.object(r),e.object(n),e.object(t.pool_id),e.object(t.pos_id),e.object(s),e.object(h)],typeArguments:[t.coin_type_a,t.coin_type_b,i]});e.transferObjects([u],e.pure.address(t.account))}return e}redeemVestPayload(t,e){e=e||new b;let{burn:o}=this._sdk.sdkOptions;for(let r of t){let{clmm_versioned_id:n,clmm_vester_id:s,clmm_pool_id:a,burn_position_id:d,period:i,coin_type_a:u,coin_type_b:P,vest_coin_type:k}=r,j=e.moveCall({package:o.published_at,module:"lp_burn",function:"redeem",arguments:[e.object(n),e.object(s),e.object(a),e.object(d),e.pure.u16(i),e.object(h)],typeArguments:[u,P]});e.transferObjects([j],e.pure.address(this._sdk.getSenderAddress()))}return e}createCollectFeesPayload(t,e){e=e||new b;for(let o of t)this.createCollectFeePayload(o,e);return e}crateCollectRewardsPayload(t,e){e=e||new b;let{burn:o}=this._sdk.sdkOptions,{manager_id:r,clmm_global_config:n,clmm_global_vault_id:s}=_(o),a=`${o.published_at}::lp_burn::collect_reward`;for(let d=0;d<t.length;d++){let i=t[d];for(let u=0;u<i.rewarder_coin_types?.length;u++){let P=i.rewarder_coin_types?.[u],k=e.moveCall({target:a,arguments:[e.object(r),e.object(n),e.object(i.pool_id),e.object(i.pos_id),e.object(s),e.object(h)],typeArguments:[i.coin_type_a,i.coin_type_b,P]});e.transferObjects([k],e.pure.address(i.account))}}return e}};var y=class l extends v{constructor(t){super(t),this._burn=new g(this)}get Burn(){return this._burn}static createSDK(t){let{env:e="mainnet"}=t;return e==="mainnet"?l.createCustomSDK({...w,...t}):l.createCustomSDK({...C,...t})}static createCustomSDK(t){return new l(t)}};var ie=y;export{g as BurnModule,m as BurnUtils,y as CetusBurnSDK,w as burnMainnet,C as burnTestnet,ie as default};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sdk.ts","../src/config/mainnet.ts","../src/config/testnet.ts","../src/modules/burnModule.ts","../src/errors/errors.ts","../src/utils/burn.ts","../src/index.ts"],"sourcesContent":["import type { BaseSdkOptions, Package } from '@cetusprotocol/common-sdk'\nimport { SdkWrapper } from '@cetusprotocol/common-sdk'\nimport { burnMainnet, burnTestnet } from './config'\nimport { BurnModule } from './modules/burnModule'\nimport type { BurnConfigs } from './types/burn'\n\n/**\n * Represents options and configurations for an SDK.\n */\nexport interface SdkOptions extends BaseSdkOptions {\n burn: Package<BurnConfigs>\n}\n\n/**\n * The entry class of CetusDcaSDK, which is almost responsible for all interactions with dca.\n */\nexport class CetusBurnSDK extends SdkWrapper<SdkOptions> {\n protected _burn: BurnModule\n\n constructor(options: SdkOptions) {\n super(options)\n\n this._burn = new BurnModule(this)\n }\n\n get Burn(): BurnModule {\n return this._burn\n }\n\n /**\n * Static factory method to initialize the SDK\n * @param options SDK initialization options\n * @returns An instance of CetusBurnDK\n */\n static createSDK(options: BaseSdkOptions): CetusBurnSDK {\n const { env = 'mainnet' } = options\n return env === 'mainnet'\n ? CetusBurnSDK.createCustomSDK({ ...burnMainnet, ...options })\n : CetusBurnSDK.createCustomSDK({ ...burnTestnet, ...options })\n }\n\n /**\n * Create a custom SDK instance with the given options\n * @param options The options for the SDK\n * @returns An instance of CetusBurnSDK\n */\n static createCustomSDK<T extends BaseSdkOptions>(options: T & SdkOptions): CetusBurnSDK {\n return new CetusBurnSDK(options)\n }\n}\n","import { FullRpcUrlMainnet } from '@cetusprotocol/common-sdk'\nimport type { SdkOptions } from '../sdk'\nimport { CetusBurnSDK } from '../sdk'\n// mainnet\nexport const burnMainnet: SdkOptions = {\n env: 'mainnet',\n full_rpc_url: FullRpcUrlMainnet,\n burn: {\n package_id: '0x12d73de9a6bc3cb658ec9dc0fe7de2662be1cea5c76c092fcc3606048cdbac27',\n published_at: '0xb977b00649d3ab8950bcbbafb01fcf32e2e7718eb3133eff2e48c0cef04b1495',\n config: {\n manager_id: '0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845',\n clmm_global_config: '0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f',\n clmm_global_vault_id: '0xce7bceef26d3ad1f6d9b6f13a953f053e6ed3ca77907516481ce99ae8e588f2b',\n burn_pool_handle: '0xc9aacf74bd7cc8da8820ae28ca4473b7e01c87be19bc35bf81c9c7311e1b299e',\n },\n },\n}\n","import { FullRpcUrlTestnet } from '@cetusprotocol/common-sdk'\nimport type { SdkOptions } from '../sdk'\nimport { CetusBurnSDK } from '../sdk'\n\nexport const burnTestnet: SdkOptions = {\n env: 'testnet',\n full_rpc_url: FullRpcUrlTestnet,\n burn: {\n package_id: '0x3b494006831b046481c8046910106e2dfbe0d1fa9bc01e41783fb3ff6534ed3a',\n published_at: '0xaf89f8215c5b07eaac8b77c7745ce62f94cb76ef4bcb854e283f644c519ef43e',\n config: {\n manager_id: '0xd04529ef15b7dad6699ee905daca0698858cab49724b2b2a1fc6b1ebc5e474ef',\n clmm_global_config: '0x9774e359588ead122af1c7e7f64e14ade261cfeecdb5d0eb4a5b3b4c8ab8bd3e',\n clmm_global_vault_id: '0xf78d2ee3c312f298882cb680695e5e8c81b1d441a646caccc058006c2851ddea',\n burn_pool_handle: '0x20262dac8853ab8f63c98e0b17bfb1c758efc33d0092ac3c5f204dfb7ba81ac5',\n },\n },\n}\n","import type { TransactionObjectArgument } from '@mysten/sui/transactions'\nimport { Transaction } from '@mysten/sui/transactions'\nimport { CLOCK_ADDRESS, DETAILS_KEYS, getPackagerConfigs, IModule } from '@cetusprotocol/common-sdk'\nimport { BurnErrorCode, handleError } from '../errors/errors'\nimport type { CetusBurnSDK } from '../sdk'\nimport type { BurnParams, CollectFeeParams, CollectRewardParams } from '../types/burn'\nimport { BurnUtils } from '../utils'\n\nexport class BurnModule implements IModule<CetusBurnSDK> {\n protected _sdk: CetusBurnSDK\n\n constructor(sdk: CetusBurnSDK) {\n this._sdk = sdk\n }\n\n get sdk() {\n return this._sdk\n }\n\n /**\n * @description Get the list of pools that have been burned.\n * @returns\n */\n async getBurnPoolList() {\n try {\n const { burn } = this._sdk.sdkOptions\n // TODO positionTableId is a constant, it can be written in the configuration later\n const { manager_id } = getPackagerConfigs(burn)\n const object: any = await this._sdk.FullClient.getObject({\n id: manager_id,\n options: {\n showType: true,\n showContent: true,\n },\n })\n\n const positionTableId = object?.data?.content?.fields?.position?.fields?.id?.id\n\n const positionTableData = await this._sdk.FullClient.getDynamicFieldsByPage(positionTableId)\n\n const burnPools = positionTableData?.data?.map((item: any) => {\n return item?.name?.value\n })\n\n return burnPools\n } catch (error) {\n console.log('getBurnPoolList ~ error:', error)\n handleError(BurnErrorCode.FetchError, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPoolList',\n })\n }\n }\n\n /**\n * @description Get the position handle for a given pool.\n * @param pool_id - The pool ID.\n * @returns\n */\n private async getPositionHandle(pool_id: string) {\n const { burn } = this._sdk.sdkOptions\n const { burn_pool_handle } = getPackagerConfigs(burn)\n const cacheKey = `getPosHandle_${pool_id}`\n let posHandle = this._sdk.getCache<string>(cacheKey)\n if (posHandle) {\n return posHandle\n }\n try {\n const posHandleRes: any = await this._sdk.FullClient.getDynamicFieldObject({\n parentId: burn_pool_handle,\n name: {\n type: '0x2::object::ID',\n value: pool_id,\n },\n })\n posHandle = posHandleRes.data.content.fields.value.fields.id.id\n\n if (posHandle) {\n this._sdk.updateCache(cacheKey, posHandle)\n }\n\n return posHandle\n } catch (error) {\n handleError(BurnErrorCode.InvalidPoolId, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPositionHandle',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n }\n\n /**\n * @description Get the list of burned positions for a given pool.\n * @param pool_id - The pool ID.\n * @returns\n */\n async getPoolBurnPositionList(pool_id: string) {\n try {\n const posHandle = await this.getPositionHandle(pool_id)\n if (posHandle === undefined) {\n handleError(BurnErrorCode.InvalidPoolId, `${pool_id} is a invalid pool id, please check it and try another valid pool id`, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPositionHandle',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n\n const positionTableData = await this._sdk.FullClient.getDynamicFieldsByPage(posHandle as string)\n\n const warpPosIds = positionTableData?.data?.map((item: any) => {\n return item.objectId\n })\n\n if (warpPosIds.length > 0) {\n const warpPosRes = await this._sdk.FullClient.batchGetObjects(warpPosIds, { showContent: true })\n\n const burnedPositionIds = warpPosRes.map((item: any) => {\n return item.data.content.fields.value.fields.burned_position_id\n })\n\n const burnedPositionsRes = await this._sdk.FullClient.batchGetObjects(burnedPositionIds, { showContent: true })\n\n const burnPositionList = burnedPositionsRes?.map((item: any) => {\n const info = BurnUtils.buildBurnPositionNFT(item?.data?.content?.fields)\n return info\n })\n return burnPositionList\n }\n\n return []\n } catch (error: any) {\n console.log('getPoolBurnPositionList ~ error:', error)\n handleError(BurnErrorCode.InvalidPoolId, `${pool_id} is a invalid pool id, please check it and try another valid pool id`, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPoolBurnPositionList',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n }\n\n /**\n * @description Get the list of burned positions for a given account.\n * @param account_address - The account address.\n * @returns\n */\n async getBurnPositionList(account_address: string) {\n const { package_id } = this._sdk.sdkOptions.burn\n try {\n const ownerRes = await this._sdk.FullClient.getOwnedObjectsByPage(account_address, {\n options: { showType: true, showContent: true, showOwner: true, showDisplay: true },\n filter: {\n MatchAny: [\n {\n StructType: `${package_id}::lp_burn::CetusLPBurnProof`,\n },\n ],\n },\n })\n const burnPositionList = ownerRes?.data?.map((item: any) => {\n const info = BurnUtils.buildBurnPositionNFT(item?.data?.content?.fields)\n return info\n })\n return burnPositionList\n } catch (error) {\n handleError(BurnErrorCode.InvalidAccountAddress, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPositionList',\n [DETAILS_KEYS.REQUEST_PARAMS]: { account_address },\n })\n }\n }\n\n /**\n * @description Get the burned position information for a given position ID.\n * @param pos_id - The position ID.\n * @returns\n */\n async getBurnPosition(pos_id: string) {\n try {\n const object: any = await this._sdk.FullClient.getObject({ id: pos_id, options: { showContent: true, showType: true } })\n\n if (object?.data?.content?.fields) {\n const info = BurnUtils.buildBurnPositionNFT(object?.data?.content?.fields)\n return info\n }\n\n return null\n } catch (error) {\n handleError(BurnErrorCode.InvalidPositionId, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPosition',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pos_id },\n })\n }\n }\n\n /**\n * @description Create a burn payload for a given pool and position.\n * @param params - The burn parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createBurnPayload(params: BurnParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const positionArg = typeof params.pos_id === 'string' ? tx.object(params.pos_id) : params.pos_id\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id } = getPackagerConfigs(burn)\n const target = `${burn.published_at}::lp_burn::burn`\n tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(params.pool_id), positionArg],\n typeArguments: [params.coin_type_a, params.coin_type_b],\n })\n\n return tx\n }\n\n /**\n * When the position is burned, a CetusLPBurnProof will be returned. Compared to the burn_lp function,\n * this V2 version does not require the pool object as a parameter, making it more convenient to use.\n * The function will automatically verify the position's validity through the position object itself.\n * This design also allows users to create a pool, add liquidity, and burn the position all within one transaction.\n *\n * @param {string | TransactionObjectArgument} pos - The LP position to be burned,\n * either as an object argument or its ID (string).\n * @param {Transaction} [tx] - An optional `Transaction` object; if not provided, a new one is created.\n * @returns {CetusLPBurnProof} - The CetusLPBurnProof object ID .\n */\n createBurnLPV2Payload(pos: string | TransactionObjectArgument, tx?: Transaction): TransactionObjectArgument {\n tx = tx || new Transaction()\n\n const positionArg = typeof pos === 'string' ? tx.object(pos) : pos\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::burn_lp_v2`\n const [cetusLPBurnProof] = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), positionArg],\n typeArguments: [],\n })\n\n return cetusLPBurnProof\n }\n\n /**\n * @description Create a collect fee payload for a given pool and position.\n * @param params - The collect fee parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createCollectFeePayload(params: CollectFeeParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_fee`\n\n const coins = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(clmm_global_config), tx.object(params.pool_id), tx.object(params.pos_id)],\n typeArguments: [params.coin_type_a, params.coin_type_b],\n })\n tx.transferObjects(coins, tx.pure.address(params.account))\n\n return tx\n }\n\n /**\n * @description Create a collect reward payload for a given pool and position.\n * @param params - The collect reward parameters.\n * @param tx - The transaction object.\n * @returns\n */\n crateCollectRewardPayload(params: CollectRewardParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config, clmm_global_vault_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_reward`\n\n for (let i = 0; i < params.rewarder_coin_types?.length; i++) {\n const item = params.rewarder_coin_types?.[i]\n const coin = tx.moveCall({\n target,\n arguments: [\n tx.object(manager_id),\n tx.object(clmm_global_config),\n tx.object(params.pool_id),\n tx.object(params.pos_id),\n tx.object(clmm_global_vault_id),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [params.coin_type_a, params.coin_type_b, item],\n })\n\n tx.transferObjects([coin], tx.pure.address(params.account))\n }\n\n return tx\n }\n\n /**\n * @description Create a collect fee payload for a given pool and position.\n * @param params - The collect fee parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createCollectFeesPayload(params: CollectFeeParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_fee`\n\n for (let i = 0; i < params.length; i++) {\n const item = params[i]\n const coins = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(clmm_global_config), tx.object(item.pool_id), tx.object(item.pos_id)],\n typeArguments: [item.coin_type_a, item.coin_type_b],\n })\n tx.transferObjects([coins[0], coins[1]], tx.pure.address(item.account))\n }\n\n return tx\n }\n\n /**\n * @description Create a collect reward payload for a given pool and position.\n * @param params - The collect reward parameters.\n * @param tx - The transaction object.\n * @returns\n */\n crateCollectRewardsPayload(params: CollectRewardParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config, clmm_global_vault_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_reward`\n for (let j = 0; j < params.length; j++) {\n const item = params[j]\n for (let i = 0; i < item.rewarder_coin_types?.length; i++) {\n const items = item.rewarder_coin_types?.[i]\n const coin = tx.moveCall({\n target,\n arguments: [\n tx.object(manager_id),\n tx.object(clmm_global_config),\n tx.object(item.pool_id),\n tx.object(item.pos_id),\n tx.object(clmm_global_vault_id),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [item.coin_type_a, item.coin_type_b, items],\n })\n\n tx.transferObjects([coin], tx.pure.address(item.account))\n }\n }\n\n return tx\n }\n}\n","import { BaseError } from '@cetusprotocol/common-sdk'\n\nexport enum BurnErrorCode {\n InvalidPoolId = `InvalidPoolId`,\n InvalidPositionId = `InvalidPositionId`,\n InvalidAccountAddress = `InvalidAccountAddress`,\n BuildError = 'BuildError',\n FetchError = 'FetchError',\n}\n\nexport class BurnError extends BaseError {\n constructor(message: string, error_code?: BurnErrorCode, details?: Record<string, any>) {\n super(message, error_code || 'UnknownError', details)\n }\n\n static isBurnErrorCode(e: any, code: BurnErrorCode): boolean {\n return this.isErrorCode<BurnError>(e, code)\n }\n}\n\nexport const handleError = (code: BurnErrorCode, error: Error | string, details?: Record<string, any>) => {\n if (error instanceof Error) {\n throw new BurnError(error.message, code, details)\n } else {\n throw new BurnError(error, code, details)\n }\n}\n","import { asIntN, extractStructTagFromType } from '@cetusprotocol/common-sdk'\nimport { BurnPositionNFT } from '../types/burn'\n\nexport class BurnUtils {\n static buildBurnPositionNFT(fields: any): BurnPositionNFT {\n const burnFields = fields.position.fields\n const name = `Cetus Burned LP | Pool${burnFields.name.split('Pool')?.[1]}`\n const burnPositionNft: BurnPositionNFT = {\n id: fields.id.id,\n url: burnFields.url,\n pool_id: burnFields.pool,\n coin_type_a: extractStructTagFromType(burnFields.coin_type_a.fields.name).full_address,\n coin_type_b: extractStructTagFromType(burnFields.coin_type_b.fields.name).full_address,\n description: burnFields.description,\n name,\n liquidity: burnFields.liquidity,\n clmm_position_id: burnFields.id.id,\n clmm_pool_id: burnFields.pool,\n tick_lower_index: asIntN(BigInt(burnFields.tick_lower_index.fields.bits)),\n tick_upper_index: asIntN(BigInt(burnFields.tick_upper_index.fields.bits)),\n index: burnFields.index,\n is_lp_burn: true,\n }\n return burnPositionNft\n }\n}\n","import { CetusBurnSDK, SdkOptions } from './sdk'\n\nexport * from './utils'\nexport * from './types'\nexport * from './modules'\nexport * from './config'\nexport { CetusBurnSDK, SdkOptions }\nexport default CetusBurnSDK\n"],"mappings":"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","names":["SdkWrapper","FullRpcUrlMainnet","burnMainnet","FullRpcUrlTestnet","burnTestnet","Transaction","CLOCK_ADDRESS","DETAILS_KEYS","getPackagerConfigs","BaseError","BurnError","BaseError","message","error_code","details","e","code","handleError","error","asIntN","extractStructTagFromType","BurnUtils","fields","burnFields","name","BurnModule","sdk","burn","manager_id","getPackagerConfigs","positionTableId","item","error","handleError","DETAILS_KEYS","pool_id","burn_pool_handle","cacheKey","posHandle","warpPosIds","burnedPositionIds","BurnUtils","account_address","package_id","pos_id","object","params","tx","Transaction","positionArg","target","pos","cetusLPBurnProof","clmm_global_config","coins","clmm_global_vault_id","i","coin","CLOCK_ADDRESS","j","items","CetusBurnSDK","_CetusBurnSDK","SdkWrapper","options","BurnModule","env","burnMainnet","burnTestnet","index_default","CetusBurnSDK"]}
1
+ {"version":3,"sources":["../src/sdk.ts","../src/config/mainnet.ts","../src/config/testnet.ts","../src/modules/burnModule.ts","../src/errors/errors.ts","../src/utils/burn.ts","../src/index.ts"],"sourcesContent":["import type { BaseSdkOptions, Package } from '@cetusprotocol/common-sdk'\nimport { SdkWrapper } from '@cetusprotocol/common-sdk'\nimport { burnMainnet, burnTestnet } from './config'\nimport { BurnModule } from './modules/burnModule'\nimport type { BurnConfigs } from './types/burn'\n\n/**\n * Represents options and configurations for an SDK.\n */\nexport interface SdkOptions extends BaseSdkOptions {\n burn: Package<BurnConfigs>\n}\n\n/**\n * The entry class of CetusDcaSDK, which is almost responsible for all interactions with dca.\n */\nexport class CetusBurnSDK extends SdkWrapper<SdkOptions> {\n protected _burn: BurnModule\n\n constructor(options: SdkOptions) {\n super(options)\n\n this._burn = new BurnModule(this)\n }\n\n get Burn(): BurnModule {\n return this._burn\n }\n\n /**\n * Static factory method to initialize the SDK\n * @param options SDK initialization options\n * @returns An instance of CetusBurnDK\n */\n static createSDK(options: BaseSdkOptions): CetusBurnSDK {\n const { env = 'mainnet' } = options\n return env === 'mainnet'\n ? CetusBurnSDK.createCustomSDK({ ...burnMainnet, ...options })\n : CetusBurnSDK.createCustomSDK({ ...burnTestnet, ...options })\n }\n\n /**\n * Create a custom SDK instance with the given options\n * @param options The options for the SDK\n * @returns An instance of CetusBurnSDK\n */\n static createCustomSDK<T extends BaseSdkOptions>(options: T & SdkOptions): CetusBurnSDK {\n return new CetusBurnSDK(options)\n }\n}\n","import { FullRpcUrlMainnet } from '@cetusprotocol/common-sdk'\nimport type { SdkOptions } from '../sdk'\nimport { CetusBurnSDK } from '../sdk'\n// mainnet\nexport const burnMainnet: SdkOptions = {\n env: 'mainnet',\n full_rpc_url: FullRpcUrlMainnet,\n burn: {\n package_id: '0x12d73de9a6bc3cb658ec9dc0fe7de2662be1cea5c76c092fcc3606048cdbac27',\n published_at: '0xf80a6bb02d98cebf90a6476e8c106a4ddf1865ef79d6067a66933eb57b9f0f7b',\n version: 5,\n config: {\n manager_id: '0x1d94aa32518d0cb00f9de6ed60d450c9a2090761f326752ffad06b2e9404f845',\n clmm_global_config: '0xdaa46292632c3c4d8f31f23ea0f9b36a28ff3677e9684980e4438403a67a3d8f',\n clmm_global_vault_id: '0xce7bceef26d3ad1f6d9b6f13a953f053e6ed3ca77907516481ce99ae8e588f2b',\n burn_pool_handle: '0xc9aacf74bd7cc8da8820ae28ca4473b7e01c87be19bc35bf81c9c7311e1b299e',\n },\n },\n}\n","import { FullRpcUrlTestnet } from '@cetusprotocol/common-sdk'\nimport type { SdkOptions } from '../sdk'\nimport { CetusBurnSDK } from '../sdk'\n\nexport const burnTestnet: SdkOptions = {\n env: 'testnet',\n full_rpc_url: FullRpcUrlTestnet,\n burn: {\n package_id: '0x5977541d3ac853f984e9b5bb104d4971c50a94e4daa4f0e5fedf40c3d35f6636',\n published_at: '0x5977541d3ac853f984e9b5bb104d4971c50a94e4daa4f0e5fedf40c3d35f6636',\n config: {\n manager_id: '0x96142a17b098e64dad3b6d9b3ab72ddc658cde01e3008f56928496e50819b3cf',\n clmm_global_config: '0x170708f8b3fdb938835171ea730916b4b4e920c74f2cf7cd986d2c7ad02ebd5e',\n clmm_global_vault_id: '0x51b48da7fd31af581a0e02cb9e1b33129c8a66d5e98577d5540c24b23a3050a6',\n burn_pool_handle: '0x2fd8901939489b560bf664e90223369bdb5b5174c3246cc520cf4009aed7934a',\n },\n },\n}\n","import type { TransactionObjectArgument } from '@mysten/sui/transactions'\nimport { Transaction } from '@mysten/sui/transactions'\nimport { CLOCK_ADDRESS, DETAILS_KEYS, getPackagerConfigs, IModule } from '@cetusprotocol/common-sdk'\nimport { BurnErrorCode, handleError } from '../errors/errors'\nimport type { CetusBurnSDK } from '../sdk'\nimport type { BurnParams, CollectFeeParams, CollectRewardParams, RedeemVestParams } from '../types/burn'\nimport { BurnUtils } from '../utils'\n\nexport class BurnModule implements IModule<CetusBurnSDK> {\n protected _sdk: CetusBurnSDK\n\n constructor(sdk: CetusBurnSDK) {\n this._sdk = sdk\n }\n\n get sdk() {\n return this._sdk\n }\n\n /**\n * @description Get the list of pools that have been burned.\n * @returns\n */\n async getBurnPoolList() {\n try {\n const { burn } = this._sdk.sdkOptions\n // TODO positionTableId is a constant, it can be written in the configuration later\n const { manager_id } = getPackagerConfigs(burn)\n const object: any = await this._sdk.FullClient.getObject({\n id: manager_id,\n options: {\n showType: true,\n showContent: true,\n },\n })\n\n const positionTableId = object?.data?.content?.fields?.position?.fields?.id?.id\n\n const positionTableData = await this._sdk.FullClient.getDynamicFieldsByPage(positionTableId)\n\n const burnPools = positionTableData?.data?.map((item: any) => {\n return item?.name?.value\n })\n\n return burnPools\n } catch (error) {\n console.log('getBurnPoolList ~ error:', error)\n handleError(BurnErrorCode.FetchError, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPoolList',\n })\n }\n }\n\n /**\n * @description Get the position handle for a given pool.\n * @param pool_id - The pool ID.\n * @returns\n */\n private async getPositionHandle(pool_id: string) {\n const { burn } = this._sdk.sdkOptions\n const { burn_pool_handle } = getPackagerConfigs(burn)\n const cacheKey = `getPosHandle_${pool_id}`\n let posHandle = this._sdk.getCache<string>(cacheKey)\n if (posHandle) {\n return posHandle\n }\n try {\n const posHandleRes: any = await this._sdk.FullClient.getDynamicFieldObject({\n parentId: burn_pool_handle,\n name: {\n type: '0x2::object::ID',\n value: pool_id,\n },\n })\n posHandle = posHandleRes.data.content.fields.value.fields.id.id\n\n if (posHandle) {\n this._sdk.updateCache(cacheKey, posHandle)\n }\n\n return posHandle\n } catch (error) {\n handleError(BurnErrorCode.InvalidPoolId, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPositionHandle',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n }\n\n /**\n * @description Get the list of burned positions for a given pool.\n * @param pool_id - The pool ID.\n * @returns\n */\n async getPoolBurnPositionList(pool_id: string) {\n try {\n const posHandle = await this.getPositionHandle(pool_id)\n if (posHandle === undefined) {\n handleError(BurnErrorCode.InvalidPoolId, `${pool_id} is a invalid pool id, please check it and try another valid pool id`, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPositionHandle',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n\n const positionTableData = await this._sdk.FullClient.getDynamicFieldsByPage(posHandle as string)\n\n const warpPosIds = positionTableData?.data?.map((item: any) => {\n return item.objectId\n })\n\n if (warpPosIds.length > 0) {\n const warpPosRes = await this._sdk.FullClient.batchGetObjects(warpPosIds, { showContent: true })\n\n const burnedPositionIds = warpPosRes.map((item: any) => {\n return item.data.content.fields.value.fields.burned_position_id\n })\n\n const burnedPositionsRes = await this._sdk.FullClient.batchGetObjects(burnedPositionIds, { showContent: true })\n\n const burnPositionList = burnedPositionsRes?.map((item: any) => {\n const info = BurnUtils.buildBurnPositionNFT(item?.data?.content?.fields)\n return info\n })\n return burnPositionList\n }\n\n return []\n } catch (error: any) {\n console.log('getPoolBurnPositionList ~ error:', error)\n handleError(BurnErrorCode.InvalidPoolId, `${pool_id} is a invalid pool id, please check it and try another valid pool id`, {\n [DETAILS_KEYS.METHOD_NAME]: 'getPoolBurnPositionList',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pool_id },\n })\n }\n }\n\n /**\n * @description Get the list of burned positions for a given account.\n * @param account_address - The account address.\n * @returns\n */\n async getBurnPositionList(account_address: string) {\n const { package_id } = this._sdk.sdkOptions.burn\n try {\n const ownerRes = await this._sdk.FullClient.getOwnedObjectsByPage(account_address, {\n options: { showType: true, showContent: true, showOwner: true, showDisplay: true },\n filter: {\n MatchAny: [\n {\n StructType: `${package_id}::lp_burn::CetusLPBurnProof`,\n },\n ],\n },\n })\n const burnPositionList = ownerRes?.data?.map((item: any) => {\n const info = BurnUtils.buildBurnPositionNFT(item?.data?.content?.fields)\n return info\n })\n return burnPositionList\n } catch (error) {\n handleError(BurnErrorCode.InvalidAccountAddress, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPositionList',\n [DETAILS_KEYS.REQUEST_PARAMS]: { account_address },\n })\n }\n }\n\n /**\n * @description Get the burned position information for a given position ID.\n * @param pos_id - The position ID.\n * @returns\n */\n async getBurnPosition(pos_id: string) {\n try {\n const object: any = await this._sdk.FullClient.getObject({ id: pos_id, options: { showContent: true, showType: true } })\n\n if (object?.data?.content?.fields) {\n const info = BurnUtils.buildBurnPositionNFT(object?.data?.content?.fields)\n return info\n }\n\n return null\n } catch (error) {\n handleError(BurnErrorCode.InvalidPositionId, error as Error, {\n [DETAILS_KEYS.METHOD_NAME]: 'getBurnPosition',\n [DETAILS_KEYS.REQUEST_PARAMS]: { pos_id },\n })\n }\n }\n\n /**\n * @description Create a burn payload for a given pool and position.\n * @param params - The burn parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createBurnPayload(params: BurnParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const positionArg = typeof params.pos_id === 'string' ? tx.object(params.pos_id) : params.pos_id\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id } = getPackagerConfigs(burn)\n const target = `${burn.published_at}::lp_burn::burn`\n tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(params.pool_id), positionArg],\n typeArguments: [params.coin_type_a, params.coin_type_b],\n })\n\n return tx\n }\n\n /**\n * When the position is burned, a CetusLPBurnProof will be returned. Compared to the burn_lp function,\n * this V2 version does not require the pool object as a parameter, making it more convenient to use.\n * The function will automatically verify the position's validity through the position object itself.\n * This design also allows users to create a pool, add liquidity, and burn the position all within one transaction.\n *\n * @param {string | TransactionObjectArgument} pos - The LP position to be burned,\n * either as an object argument or its ID (string).\n * @param {Transaction} [tx] - An optional `Transaction` object; if not provided, a new one is created.\n * @returns {CetusLPBurnProof} - The CetusLPBurnProof object ID .\n */\n createBurnLPV2Payload(pos: string | TransactionObjectArgument, tx?: Transaction): TransactionObjectArgument {\n tx = tx || new Transaction()\n\n const positionArg = typeof pos === 'string' ? tx.object(pos) : pos\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::burn_lp_v2`\n const [cetusLPBurnProof] = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), positionArg],\n typeArguments: [],\n })\n\n return cetusLPBurnProof\n }\n\n /**\n * @description Create a collect fee payload for a given pool and position.\n * @param params - The collect fee parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createCollectFeePayload(params: CollectFeeParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config } = getPackagerConfigs(burn)\n const target = `${burn.published_at}::lp_burn::collect_fee`\n\n const coins = tx.moveCall({\n target,\n arguments: [tx.object(manager_id), tx.object(clmm_global_config), tx.object(params.pool_id), tx.object(params.pos_id)],\n typeArguments: [params.coin_type_a, params.coin_type_b],\n })\n\n tx.transferObjects([coins[0], coins[1]], tx.pure.address(params.account))\n\n return tx\n }\n\n /**\n * @description Create a collect reward payload for a given pool and position.\n * @param params - The collect reward parameters.\n * @param tx - The transaction object.\n * @returns\n */\n crateCollectRewardPayload(params: CollectRewardParams, tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config, clmm_global_vault_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_reward`\n\n for (let i = 0; i < params.rewarder_coin_types?.length; i++) {\n const item = params.rewarder_coin_types?.[i]\n const coin = tx.moveCall({\n target,\n arguments: [\n tx.object(manager_id),\n tx.object(clmm_global_config),\n tx.object(params.pool_id),\n tx.object(params.pos_id),\n tx.object(clmm_global_vault_id),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [params.coin_type_a, params.coin_type_b, item],\n })\n\n tx.transferObjects([coin], tx.pure.address(params.account))\n }\n\n return tx\n }\n\n /**\n * @description Create a redeem vest payload for a given pool and position.\n * @param params - The redeem vest parameters.\n * @param tx - The transaction object.\n * @returns\n */\n redeemVestPayload(params: RedeemVestParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n const { burn } = this._sdk.sdkOptions\n\n for (const param of params) {\n const { clmm_versioned_id, clmm_vester_id, clmm_pool_id, burn_position_id, period, coin_type_a, coin_type_b, vest_coin_type } = param\n const coin = tx.moveCall({\n package: burn.published_at,\n module: 'lp_burn',\n function: 'redeem',\n arguments: [\n tx.object(clmm_versioned_id),\n tx.object(clmm_vester_id),\n tx.object(clmm_pool_id),\n tx.object(burn_position_id),\n tx.pure.u16(period),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [coin_type_a, coin_type_b],\n })\n\n tx.transferObjects([coin], tx.pure.address(this._sdk.getSenderAddress()))\n }\n\n return tx\n }\n\n /**\n * @description Create a collect fee payload for a given pool and position.\n * @param params - The collect fee parameters.\n * @param tx - The transaction object.\n * @returns\n */\n createCollectFeesPayload(paramsList: CollectFeeParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n\n for (const params of paramsList) {\n this.createCollectFeePayload(params, tx)\n }\n\n return tx\n }\n\n /**\n * @description Create a collect reward payload for a given pool and position.\n * @param params - The collect reward parameters.\n * @param tx - The transaction object.\n * @returns\n */\n crateCollectRewardsPayload(params: CollectRewardParams[], tx?: Transaction) {\n tx = tx || new Transaction()\n\n const { burn } = this._sdk.sdkOptions\n const { manager_id, clmm_global_config, clmm_global_vault_id } = getPackagerConfigs(burn)\n\n const target = `${burn.published_at}::lp_burn::collect_reward`\n for (let j = 0; j < params.length; j++) {\n const item = params[j]\n for (let i = 0; i < item.rewarder_coin_types?.length; i++) {\n const items = item.rewarder_coin_types?.[i]\n const coin = tx.moveCall({\n target,\n arguments: [\n tx.object(manager_id),\n tx.object(clmm_global_config),\n tx.object(item.pool_id),\n tx.object(item.pos_id),\n tx.object(clmm_global_vault_id),\n tx.object(CLOCK_ADDRESS),\n ],\n typeArguments: [item.coin_type_a, item.coin_type_b, items],\n })\n\n tx.transferObjects([coin], tx.pure.address(item.account))\n }\n }\n\n return tx\n }\n}\n","import { BaseError } from '@cetusprotocol/common-sdk'\n\nexport enum BurnErrorCode {\n InvalidPoolId = `InvalidPoolId`,\n InvalidPositionId = `InvalidPositionId`,\n InvalidAccountAddress = `InvalidAccountAddress`,\n BuildError = 'BuildError',\n FetchError = 'FetchError',\n}\n\nexport class BurnError extends BaseError {\n constructor(message: string, error_code?: BurnErrorCode, details?: Record<string, any>) {\n super(message, error_code || 'UnknownError', details)\n }\n\n static isBurnErrorCode(e: any, code: BurnErrorCode): boolean {\n return this.isErrorCode<BurnError>(e, code)\n }\n}\n\nexport const handleError = (code: BurnErrorCode, error: Error | string, details?: Record<string, any>) => {\n if (error instanceof Error) {\n throw new BurnError(error.message, code, details)\n } else {\n throw new BurnError(error, code, details)\n }\n}\n","import { asIntN, extractStructTagFromType } from '@cetusprotocol/common-sdk'\nimport { BurnPositionNFT } from '../types/burn'\n\nexport class BurnUtils {\n static buildBurnPositionNFT(fields: any): BurnPositionNFT {\n const burnFields = fields.position.fields\n const name = fields.name\n const burnPositionNft: BurnPositionNFT = {\n id: fields.id.id,\n url: burnFields.url,\n pool_id: burnFields.pool,\n coin_type_a: extractStructTagFromType(burnFields.coin_type_a.fields.name).full_address,\n coin_type_b: extractStructTagFromType(burnFields.coin_type_b.fields.name).full_address,\n description: fields.description,\n name,\n liquidity: burnFields.liquidity,\n clmm_position_id: burnFields.id.id,\n clmm_pool_id: burnFields.pool,\n tick_lower_index: asIntN(BigInt(burnFields.tick_lower_index.fields.bits)),\n tick_upper_index: asIntN(BigInt(burnFields.tick_upper_index.fields.bits)),\n index: burnFields.index,\n is_lp_burn: true,\n }\n return burnPositionNft\n }\n}\n","import { CetusBurnSDK, SdkOptions } from './sdk'\n\nexport * from './utils'\nexport * from './types'\nexport * from './modules'\nexport * from './config'\nexport { CetusBurnSDK, SdkOptions }\nexport default CetusBurnSDK\n"],"mappings":"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","names":["SdkWrapper","FullRpcUrlMainnet","burnMainnet","FullRpcUrlTestnet","burnTestnet","Transaction","CLOCK_ADDRESS","DETAILS_KEYS","getPackagerConfigs","BaseError","BurnError","BaseError","message","error_code","details","e","code","handleError","error","asIntN","extractStructTagFromType","BurnUtils","fields","burnFields","name","BurnModule","sdk","burn","manager_id","getPackagerConfigs","positionTableId","item","error","handleError","DETAILS_KEYS","pool_id","burn_pool_handle","cacheKey","posHandle","warpPosIds","burnedPositionIds","BurnUtils","account_address","package_id","pos_id","object","params","tx","Transaction","positionArg","target","pos","cetusLPBurnProof","clmm_global_config","coins","clmm_global_vault_id","i","coin","CLOCK_ADDRESS","param","clmm_versioned_id","clmm_vester_id","clmm_pool_id","burn_position_id","period","coin_type_a","coin_type_b","vest_coin_type","paramsList","j","items","CetusBurnSDK","_CetusBurnSDK","SdkWrapper","options","BurnModule","env","burnMainnet","burnTestnet","index_default","CetusBurnSDK"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cetusprotocol/burn-sdk",
3
- "version": "1.0.4",
3
+ "version": "1.1.1",
4
4
  "description": "SDK for cetus burn",
5
5
  "typings": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
@@ -29,7 +29,7 @@
29
29
  "@cetusprotocol/test-utils": "workspace:*"
30
30
  },
31
31
  "peerDependencies": {
32
- "@cetusprotocol/common-sdk": ">=1.0.0",
32
+ "@cetusprotocol/common-sdk": "*",
33
33
  "@mysten/bcs": "^1.5.0",
34
34
  "@mysten/sui": "^1.24.0"
35
35
  }