@minswap/noodles-sdk 0.1.2 → 0.2.0

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.
@@ -0,0 +1 @@
1
+ import{isValidSuiAddress as e}from"@mysten/sui/utils";import{SUI_GRAPHQL_URL as t}from"./806.js";class o extends Error{constructor(e){super(`Invalid Sui address: ${e}`),this.name="InvalidSuiAddressError"}}class r{noodlesSdk;scallopAddressId;scallopQuery;alphalendClient;constructor(e){this.noodlesSdk=e.noodlesSdk,this.scallopAddressId=e.scallopAddressId??"67c44a103fe1b8c454eb9699"}assertValidAddress(t){if(!e(t))throw new o(t)}async getScallopQuery(){if(this.scallopQuery)return this.scallopQuery;let{Scallop:e}=await import("@scallop-io/sui-scallop-sdk"),t=new e({addressId:this.scallopAddressId,networkType:"mainnet"});return this.scallopQuery=await t.createScallopQuery(),this.scallopQuery}async getAlphalendClient(){if(this.alphalendClient)return this.alphalendClient;let{AlphalendClient:e}=await import("@alphafi/alphalend-sdk");return this.alphalendClient=new e("mainnet",t),this.alphalendClient}async getScallopPosition(e){this.assertValidAddress(e);let t=await this.getScallopQuery();return await t.getUserPortfolio({walletAddress:e})}async getNaviPosition(e){this.assertValidAddress(e);let{getLendingPositions:t}=await import("@naviprotocol/lending"),o=await t(e,{env:"prod"}),r={borrows:[],supplies:[]};for(let e of o){let t=e["navi-lending-supply"]??e["navi-lending-emode-supply"],o=e["navi-lending-borrow"]??e["navi-lending-emode-borrow"];if(t){let e=Number(t.amount);e>0&&r.supplies.push({coinType:t.token.coinType,amount:e})}if(o){let e=Number(o.amount);e>0&&r.borrows.push({coinType:o.token.coinType,amount:e})}}return r}async getAlphalendPosition(e){this.assertValidAddress(e);let t=await this.getAlphalendClient(),[o,r]=await Promise.all([t.lendingProtocol.getAllMarkets(),t.getUserPortfolio(e)]);if(!r||0===r.length)return[];let i={};for(let e of o)i[e.market.marketId]=e.market.coinType;let s=[];for(let e of r){let t={positionId:e.positionId,netWorth:e.netWorth.toNumber(),dailyEarnings:e.dailyEarnings.toNumber(),netApr:e.netApr.toNumber(),safeBorrowLimit:e.safeBorrowLimit.toNumber(),borrowLimitUsed:e.borrowLimitUsed.toNumber(),liquidationThreshold:e.liquidationThreshold.toNumber(),totalSuppliedUsd:e.totalSuppliedUsd.toNumber(),aggregatedSupplyApr:e.aggregatedSupplyApr.toNumber(),totalBorrowedUsd:e.totalBorrowedUsd.toNumber(),aggregatedBorrowApr:e.aggregatedBorrowApr.toNumber(),suppliedAmounts:[],borrowedAmounts:[],rewardsToClaimUsd:e.rewardsToClaimUsd.toNumber(),rewardsToClaim:[]};for(let[o,r]of e.suppliedAmounts.entries()){let e=i[o];e&&t.suppliedAmounts.push({coinType:e,amount:r.toNumber()})}for(let[o,r]of e.borrowedAmounts.entries()){let e=i[o];e&&t.borrowedAmounts.push({coinType:e,amount:r.toNumber()})}for(let{coinType:o,rewardAmount:r}of e.rewardsToClaim)t.rewardsToClaim.push({coinType:o,rewardAmount:r.toNumber()});s.push(t)}return s}async getAllLendingPositions(e){this.assertValidAddress(e);let[t,o,r]=await Promise.all([this.getScallopPosition(e),this.getNaviPosition(e),this.getAlphalendPosition(e)]);return{scallop:t,navi:o,alphalend:r}}async getCoinAmountOut(e){if(0===e.length)return[];let t=[];for(let o=0;o<e.length;o+=10){let r=e.slice(o,o+10);if(0===r.length)break;for(let e of(await Promise.all(r.map(e=>this.noodlesSdk.aggregatorModule.getBestAmountOut({coinInType:e.coin_in_type,coinInAmount:BigInt(e.coin_in_amount),coinOutType:e.coin_out_type})))))t.push(null===e?"0":e.amountOut.toString())}return t}}export{o as InvalidSuiAddressError,r as NoodlesPortfolioSdk};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minswap/noodles-sdk",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -13,6 +13,11 @@
13
13
  "types": "./dist/pay.d.ts",
14
14
  "import": "./dist/pay.js",
15
15
  "require": "./dist/pay.cjs"
16
+ },
17
+ "./portfolio": {
18
+ "types": "./dist/portfolio.d.ts",
19
+ "import": "./dist/portfolio.js",
20
+ "require": "./dist/portfolio.cjs"
16
21
  }
17
22
  },
18
23
  "main": "./dist/index.cjs",
@@ -36,7 +41,7 @@
36
41
  },
37
42
  "dependencies": {
38
43
  "@alphafi/alphalend-sdk": "2.0.2",
39
- "@bluefin-exchange/bluefin7k-aggregator-sdk": "7.2.0",
44
+ "@bluefin-exchange/bluefin7k-aggregator-sdk": "7.3.0",
40
45
  "@cetusprotocol/aggregator-sdk": "1.5.5",
41
46
  "@cetusprotocol/cetus-sui-clmm-sdk": "5.4.0",
42
47
  "@flowx-finance/sdk": "2.0.3",
@@ -45,6 +50,7 @@
45
50
  "@minswap/tiny-invariant": "1.2.0",
46
51
  "@mysten/sui": "2.17.0",
47
52
  "@naviprotocol/astros-aggregator-sdk": "1.14.2",
53
+ "@naviprotocol/lending": "1.4.6",
48
54
  "@pythnetwork/pyth-sui-js": "3.0.0",
49
55
  "@scallop-io/sui-scallop-sdk": "3.0.2",
50
56
  "@suilend/sdk": "3.0.3",
@@ -57,13 +63,20 @@
57
63
  },
58
64
  "scripts": {
59
65
  "build": "rslib build",
66
+ "claim:7k": "node --import tsx scripts/7k-claim-fee.ts",
67
+ "claim:flowx": "node --import tsx scripts/flowx-claim-fee.ts",
68
+ "send-all": "node --import tsx scripts/send-all.ts",
69
+ "swap-trash": "node --import tsx scripts/swap-trash-coin.ts",
60
70
  "changeset": "changeset",
61
71
  "changeset:version": "changeset version",
62
72
  "changeset:publish": "pnpm run build && changeset publish",
63
73
  "lint": "biome check .",
64
74
  "dev": "rslib build --watch",
65
75
  "format": "biome check --write",
66
- "test": "pnpm run typecheck && pnpm run lint && pnpm run build && node scripts/smoke-build.mjs",
76
+ "test": "pnpm run typecheck && pnpm run lint && pnpm run build && node scripts/smoke-build.mjs && pnpm run test:e2e:run",
77
+ "test:e2e": "pnpm run build && pnpm run test:e2e:run",
78
+ "test:e2e:run": "node --import tsx --test tests/*.test.ts && node --test tests/*.test.mjs",
79
+ "test:e2e:portfolio": "pnpm run build && node --test tests/portfolio-sdk.test.mjs",
67
80
  "typecheck": "tsc --noEmit"
68
81
  }
69
82
  }
package/dist/832.js DELETED
@@ -1 +0,0 @@
1
- import{Transaction as e}from"@mysten/sui/transactions";import{normalizeStructTag as t}from"@mysten/sui/utils";import i from"@minswap/tiny-invariant";let n="0x2::sui::SUI",s="0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI",a="0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",r="0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC",d="0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3",o="0x0000000000000000000000000000000000000000000000000000000000000006",u="0x0000000000000000000000000000000000000000000000000000000000000000";function c(e){return e===n||e===s}function l(e,t){let i=BigInt(e),n=BigInt(1e4*Number(t));if(n===BigInt(0))return[i.toString()];let s=i*n/BigInt(1e4);return[(i-s).toString(),s.toString()]}function g(e,t){if(!t||0>=Number(t))return BigInt(e);let i=BigInt(e),n=BigInt(1e4*Number(t));if(n===BigInt(0))return i;let s=i*n/BigInt(1e4);return i-s}async function f(e,t,i,n){t.setSenderIfNotSet(i);let s=await e.simulateTransaction({transaction:t,include:{effects:!0},checksEnabled:!1}),{gasUsed:a,status:r}=("Transaction"===s.$kind?s.Transaction:s.FailedTransaction).effects;if(!r.success)throw Error(`Transaction failed during simulation: ${r.error?.message??""}`);let d=BigInt(a.computationCost)+BigInt(a.storageCost)-BigInt(a.storageRebate),o=BigInt(1e4*Number(n));return d*(BigInt(1e4)+o)/BigInt(1e4)}let p=async(e,t,i,n)=>{let s,a=[],r=!0;for(;r;)try{let i=await e.listCoins({owner:t,coinType:n,cursor:s});a=[...a,...i.objects.map(e=>({coinObjectId:e.objectId,version:e.version,digest:e.digest,balance:e.balance}))],r=i.hasNextPage,s=i.cursor}catch(e){console.error("Error fetching data:",e),r=!1}let d=((e,t,i)=>{let n;if(e?.length){do{n=!1;for(let s=0;s<e.length-1;s++){let a=BigInt(e[s][t]),r=BigInt(e[s+1][t]);if("desc"===i?a<r:a>r){let t=e[s];e[s]=e[s+1],e[s+1]=t,n=!0}}}while(n);return e}})(a.map(e=>({...e,balance:e.balance})),"balance","desc")??[],o="0",u=[],c=[];for(let e of d)if(o=(BigInt(e.balance)+BigInt(o)).toString(10),u.push(e.coinObjectId),c.push(e),BigInt(o)>=BigInt(i))break;return{objectIds:u,balance:o,objectCoins:c}};async function b(i,n){let{account:a,amount:r,splits:d,coinType:o,inheritTx:u,inspecTransaction:c,isSponsored:l=!1}=i,g=u??new e,{objectIds:f,balance:b}=await p(n,a,r,o);if(BigInt(b)<BigInt(r))throw Error(`Insufficient balance for type ${o}. Required: ${r}, Available: ${b}`);if(0===f.length)throw Error(`No coins found for type ${o} with sufficient balance. Required: ${r}`);let m=f[0];if(t(o)===t(s)&&!l){let e;return c?(f.length>1&&g.mergeCoins(g.object(m),f.slice(1).map(e=>g.object(e))),e=g.splitCoins(g.object(m),d)):e=g.splitCoins(g.gas,d),{tx:g,coinData:e}}f.length>1&&g.mergeCoins(g.object(m),f.slice(1).map(e=>g.object(e)));let h=g.splitCoins(g.object(m),d);return{tx:g,coinData:h}}async function m(t,i){let{inheritTx:n,sender:a,feeAmount:r,suiInputAmount:d}=t,o=n||new e;r>BigInt(0)&&o.setGasBudget(r);let{objectCoins:u}=await p(i,a,(BigInt(d||"0")+r).toString(),s);return o.setGasPayment(u.map(e=>({objectId:e.coinObjectId,version:e.version,digest:e.digest}))),o}let h="0x25fa0eb553dd69fa6a8028f73a38f1df7f289fa88a58ed3d7dc5a5360155bb19",C="0x8b1a8ac6e34688cd8f8f8e5fefa9d5fb9e1ff74d2f132f8e208ae5ac9cc530bb",I="0x13d101f44a0710a5475bec5f492a87b80e03d92d1cf540f26096f65850b23d26",k=e=>e?.fields??e,y=(e,t,n)=>{let s=k(e),a=s?.[t];return i(null!=a,`${n} missing ${t}`),a};class v{sdk;constructor(e){this.sdk=e}async getConfig(){var e;let t,n,s=await this.sdk.suiClient.getObject({objectId:C,include:{json:!0}});i(s.object,"Config object not found"),i(s.object.json,"Config object has no content");let a=s.object.json,r="string"==typeof(e=a.id)?e:(i("string"==typeof e?.id,"Boosting config id is missing"),e.id),d=a.fee_receiver;i("string"==typeof d,"Boosting config fee_receiver is missing");let o=(t=k(a.tiers),i(Array.isArray(n=t?.contents),"Boosting config tiers contents are missing"),n),u={};for(let e of o){let t=y(e,"key","Boosting tier"),i=y(e,"value","Boosting tier"),n=y(i,"duration",`Boosting tier ${t}`),s=y(i,"amount",`Boosting tier ${t}`),a=y(i,"point",`Boosting tier ${t}`),r=y(i,"original_amount",`Boosting tier ${t}`);u[t]={duration:BigInt(n),amount:BigInt(s),point:BigInt(a),originalAmount:BigInt(r)}}return{id:r,receiverAddress:d,tiers:u}}async buildPayBoostingTx({walletAddress:n,tierId:s,boostingCoinType:a,currentTx:r}){let d=await this.getConfig();i(s in d.tiers,"Invalid tier ID");let o=d.tiers[s].amount,u=r||new e,c=u.splitCoins(u.gas,[u.pure.u64(o)]);u.moveCall({target:`${h}::boosting::pay`,typeArguments:[t(a)],arguments:[u.object(C),u.pure.u64(s),c]}),u.setSender(n);let l=await f(this.sdk.suiClient,u,n,0);return m({inheritTx:u,sender:n,feeAmount:l},this.sdk.suiClient)}async buildAddTierTx({adminAddress:t,tierId:i,duration:n,point:s,originalAmount:a,amount:r,currentTx:d}){let o=d||new e;o.moveCall({target:`${h}::config::add_tier`,typeArguments:[],arguments:[o.object(C),o.object(I),o.pure.u64(i),o.pure.u64(s),o.pure.u64(n),o.pure.u64(a),o.pure.u64(r)]}),o.setSender(t);let u=await f(this.sdk.suiClient,o,t,0);return m({inheritTx:o,sender:t,feeAmount:u},this.sdk.suiClient)}async buildUpdateTierTx({adminAddress:t,tierId:i,duration:n,amount:s,originalAmount:a,point:r,currentTx:d}){let o=d||new e;o.moveCall({target:`${h}::config::update_tier`,typeArguments:[],arguments:[o.object(C),o.object(I),o.pure.u64(i),o.pure.u64(n),o.pure.u64(s),o.pure.u64(r),o.pure.u64(a)]}),o.setSender(t);let u=await f(this.sdk.suiClient,o,t,0);return m({inheritTx:o,sender:t,feeAmount:u},this.sdk.suiClient)}async buildRemoveTierTx({adminAddress:t,tierId:i,currentTx:n}){let s=n||new e;s.moveCall({target:`${h}::config::remove_tier`,typeArguments:[],arguments:[s.object(C),s.object(I),s.pure.u64(i)]}),s.setSender(t);let a=await f(this.sdk.suiClient,s,t,0);return m({inheritTx:s,sender:t,feeAmount:a},this.sdk.suiClient)}async buildUpdateFeeReceiver({adminAddress:t,newReceiverAddress:i,currentTx:n}){let s=n||new e;s.moveCall({target:`${h}::config::update_fee_receiver`,typeArguments:[],arguments:[s.object(C),s.object(I),s.pure.address(i)]}),s.setSender(t);let a=await f(this.sdk.suiClient,s,t,0);return m({inheritTx:s,sender:t,feeAmount:a},this.sdk.suiClient)}async buildPayBoostingWithAdminTx({walletAddress:i,tierId:n,customAmount:s,boostingCoinType:a,currentTx:r}){let d=r||new e,o=d.splitCoins(d.gas,[d.pure.u64(s)]);d.moveCall({target:`${h}::boosting::pay_with_admin`,typeArguments:[t(a)],arguments:[d.object(I),d.object(C),d.pure.u64(n),d.pure.u64(s),o]}),d.setSender(i);let u=await f(this.sdk.suiClient,d,i,0);return m({inheritTx:d,sender:i,feeAmount:u},this.sdk.suiClient)}}let T={prod:{packageId:"0x3dd678c250a667f1551bc4b9e35fd070896f4775dd2900d5cb2910d2aea0b068",configId:"0x3eb7bd15f61b7cc1a9fd36151e9c3d05aa37bfadb0a58c3a26a6c02c2e99f3ca",adminCapId:"0xf375fcb3d95934143766cab2028ab49441fa04ef2ce27c08c01004c455bcbad4",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"},staging:{packageId:"0xa83cd093ce5142649adae10d21fe87d55fa2df4e52a4292c77ba039bb12bfe67",configId:"0x19fb8f91946e58c068fa4238bdd7a531216a0c4dcfaa279a8a02c60cb02f6711",adminCapId:"0xd8139544d054702dfab6de4e9c55f162c8a6f30465935af56cffed99c5e1c2bd",paymentCoinType:"0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"}};class j{sdk;constructor(e){this.sdk=e}async getConfig(){let e=await this.sdk.suiClient.getObject({objectId:T[this.sdk.env].configId,include:{json:!0}});i(e.object,"Config object not found"),i(e.object.json,"Config object has no content");let t=e.object.json,n=t.id.id,s=t.fee_receiver,a=t.paused,r=t.accepted_payment_type,d=t.plans.fields.contents,o={};for(let e of d){let t=e.fields.key,i=e.fields.value.fields.id,n=e.fields.value.fields.price,s=e.fields.value.fields.month_interval,a=e.fields.value.fields.ptype;o[t]={id:BigInt(i),price:BigInt(n),monthInterval:s,planType:a}}return{id:n,plans:o,feeReceiverWallet:s,paused:a,acceptedPaymentType:r}}async buildSubscribeCyclePlanTx({walletAddress:e,planId:t,reference:n,paymentCoinType:s=T[this.sdk.env].paymentCoinType,currentTx:a}){let r=await this.getConfig();i(!r.paused,"Contract is paused"),i(t in r.plans,"Invalid plan ID");let d=r.plans[t],o=d.price*BigInt(d.monthInterval),{tx:u,coinData:c}=await b({account:e,amount:o.toString(),splits:[o.toString()],coinType:s,inheritTx:a},this.sdk.suiClient);u.moveCall({target:`${T[this.sdk.env].packageId}::subscription::subscribe_cycle_plan`,typeArguments:[s],arguments:[u.object(T[this.sdk.env].configId),u.pure.u64(t),u.pure.string(n),c]}),u.setSender(e);let l=await f(this.sdk.suiClient,u,e,0);return m({inheritTx:u,sender:e,feeAmount:l},this.sdk.suiClient)}async buildBuyMoreCUPlanTx({walletAddress:e,planId:t,reference:n,paidAmount:s,paymentCoinType:a=T[this.sdk.env].paymentCoinType,currentTx:r}){let d=await this.getConfig();i(!d.paused,"Contract is paused"),i(t in d.plans,"Invalid plan ID");let{tx:o,coinData:u}=await b({account:e,amount:s.toString(),splits:[s.toString()],coinType:a,inheritTx:r},this.sdk.suiClient);o.moveCall({target:`${T[this.sdk.env].packageId}::subscription::buy_more_cu`,typeArguments:[a],arguments:[o.object(T[this.sdk.env].configId),o.pure.u64(t),o.pure.string(n),o.pure.u64(s),u]}),o.setSender(e);let c=await f(this.sdk.suiClient,o,e,0);return m({inheritTx:o,sender:e,feeAmount:c},this.sdk.suiClient)}async buildSubscribePlanWithAdminTx({walletAddress:e,planId:t,reference:n,customAmount:s,paymentCoinType:a=T[this.sdk.env].paymentCoinType,currentTx:r}){i(!(await this.getConfig()).paused,"Contract is paused");let{tx:d,coinData:o}=await b({account:e,amount:s.toString(),splits:[s.toString()],coinType:a,inheritTx:r},this.sdk.suiClient);d.moveCall({target:`${T[this.sdk.env].packageId}::subscription::subscribe_plan_with_admin`,typeArguments:[a],arguments:[d.object(T[this.sdk.env].adminCapId),d.object(T[this.sdk.env].configId),d.pure.u64(t),d.pure.string(n),d.pure.u64(s),o]}),d.setSender(e);let u=await f(this.sdk.suiClient,d,e,0);return m({inheritTx:d,sender:e,feeAmount:u},this.sdk.suiClient)}async buildAddPlanTx({adminAddress:t,planId:i,planType:n,monthInterval:s,price:a,currentTx:r}){let d=r||new e;d.moveCall({target:`${T[this.sdk.env].packageId}::config::add_plan`,typeArguments:[],arguments:[d.object(T[this.sdk.env].configId),d.object(T[this.sdk.env].adminCapId),d.pure.u64(i),d.pure.u8(n),d.pure.u8(s),d.pure.u64(a)]}),d.setSender(t);let o=await f(this.sdk.suiClient,d,t,0);return m({inheritTx:d,sender:t,feeAmount:o},this.sdk.suiClient)}async buildUpdatePlanTx({adminAddress:t,planId:i,planType:n,monthInterval:s,price:a,currentTx:r}){let d=r||new e;d.moveCall({target:`${T[this.sdk.env].packageId}::config::update_plan`,typeArguments:[],arguments:[d.object(T[this.sdk.env].configId),d.object(T[this.sdk.env].adminCapId),d.pure.u64(BigInt(i)),d.pure.u8(n),d.pure.u8(s),d.pure.u64(a)]}),d.setSender(t);let o=await f(this.sdk.suiClient,d,t,0);return m({inheritTx:d,sender:t,feeAmount:o},this.sdk.suiClient)}async buildRemovePlanTx({adminAddress:t,planId:i,currentTx:n}){let s=n||new e;s.moveCall({target:`${T[this.sdk.env].packageId}::config::remove_plan`,typeArguments:[],arguments:[s.object(T[this.sdk.env].configId),s.object(T[this.sdk.env].adminCapId),s.pure.u64(BigInt(i))]}),s.setSender(t);let a=await f(this.sdk.suiClient,s,t,0);return m({inheritTx:s,sender:t,feeAmount:a},this.sdk.suiClient)}async buildUpdateFeeReceiverWalletTx({adminAddress:t,newFeeReceiverWallet:i,currentTx:n}){let s=n||new e;s.moveCall({target:`${T[this.sdk.env].packageId}::config::update_fee_receiver`,typeArguments:[],arguments:[s.object(T[this.sdk.env].configId),s.object(T[this.sdk.env].adminCapId),s.pure.address(i)]}),s.setSender(t);let a=await f(this.sdk.suiClient,s,t,0);return m({inheritTx:s,sender:t,feeAmount:a},this.sdk.suiClient)}async buildSetPausedTx({adminAddress:t,paused:i,currentTx:n}){let s=n||new e;s.moveCall({target:`${T[this.sdk.env].packageId}::config::set_paused`,typeArguments:[],arguments:[s.object(T[this.sdk.env].configId),s.object(T[this.sdk.env].adminCapId),s.pure.bool(i)]}),s.setSender(t);let a=await f(this.sdk.suiClient,s,t,0);return m({inheritTx:s,sender:t,feeAmount:a},this.sdk.suiClient)}async buildSetAcceptedPaymentTypeTx({adminAddress:t,paymentCoinType:i,currentTx:n}){let s=n||new e;s.moveCall({target:`${T[this.sdk.env].packageId}::config::set_accepted_payment_type`,typeArguments:[i],arguments:[s.object(T[this.sdk.env].configId),s.object(T[this.sdk.env].adminCapId)]}),s.setSender(t);let a=await f(this.sdk.suiClient,s,t,0);return m({inheritTx:s,sender:t,feeAmount:a},this.sdk.suiClient)}}class x{network;env;_suiClient;boostingModule;subscriptionModule;constructor(e,t="mainnet",i="prod"){this.network=t,this.env=i,this._suiClient=e,this.subscriptionModule=new j(this),this.boostingModule=new v(this)}get suiClient(){return this._suiClient}}export{I as ADMIN_CAP_ID,h as BOOSTING_PACKAGE_ID,v as BoostingModule,o as CLOCK_OBJECT_ID,C as CONFIG_ID,r as NATIVE_USDC_TOKEN_TYPE,x as NoodlesPaySdk,T as SUBSCRIPTION_CONFIG,u as SUI_ADDRESS_ZERO,s as SUI_FULL_TYPE,d as SUI_METADATA_OBJECT_ID,n as SUI_TYPE,j as SubscriptionModule,a as USDC_TOKEN_TYPE,m as addGasFee,g as getAmountAfterFee,p as getCoinObjectIdsByAmount,f as getNeededGasFee,b as getSplitCoinForTx,l as getSplitCoinsAfterFee,c as isSuiCoinType};