@huma-finance/permissionless-sdk 1.0.5 → 1.0.6-beta.20250911115332.a7b8403

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
@@ -1,12 +1,13 @@
1
1
  # Huma Permissionless SDK
2
2
 
3
- This is an [NPM Package](https://www.npmjs.com/package/@huma-finance/permissionless-sdk) that helps build deposit and withdrawal instructions for the various modes + lockups on Huma 2.0 (Permissionless), and check token prices.
3
+ This is an [NPM Package](https://www.npmjs.com/package/@huma-finance/permissionless-sdk) that helps build deposit and withdrawal instructions for the various modes + lockups on Huma 2.0 (Permissionless), and check token prices and target APY.
4
4
 
5
5
  ## Current supported features
6
6
 
7
7
  - Deposit into classic or maxi mode (PST and mPST respectively)
8
8
  - Withdraw from classic or maxi mode (redeem PST and mPST tokens)
9
9
  - Check the current price of PST and mPST tokens
10
+ - Check the target APY for classic or maxi mode
10
11
  - Optionally specify a lockup on these tokens, in most cases you'll want to use the default NO_COMMIT option.
11
12
 
12
13
  ## Depositing
@@ -98,3 +99,29 @@ console.log(price.toString()); // Price in smallest units of underlying mint
98
99
  ```
99
100
 
100
101
  3. The price is returned as a BN representing the price in the smallest units of the underlying mint. For example, if the price is 1.234567 USDC, it will be returned as 1234567 (since USDC has 6 decimals).
102
+
103
+ ## Checking Target APY
104
+
105
+ An example Node script integration in /examples/getModeTargetAPY.ts is provided in this repo.
106
+
107
+ 1. Create a `PermissionlessClient` (same as depositing)
108
+
109
+ ```
110
+ import {
111
+ PermissionlessClient,
112
+ SolanaChainEnum,
113
+ } from "@huma-finance/permissionless-sdk";
114
+
115
+ new PermissionlessClient(connection, SolanaChainEnum.MAINNET);
116
+ ```
117
+
118
+ 2. Get the target APY for either PST (DepositMode.CLASSIC) or mPST (DepositMode.MAXI)
119
+
120
+ ```
121
+ import {
122
+ DepositMode
123
+ } from "@huma-finance/permissionless-sdk";
124
+
125
+ const apy = await client.getModeTargetApy(DepositMode.CLASSIC);
126
+ console.log(apy); // APY in basis points (e.g., 500 = 5.00%)
127
+ ```
@@ -10,6 +10,7 @@ export declare class PermissionlessClient {
10
10
  private program;
11
11
  constructor(connection: Connection, chain: SolanaChainEnum);
12
12
  getModeTokenATA(owner: PublicKey, mode: DepositMode): Promise<PublicKey>;
13
+ getModeTargetApy(mode: DepositMode): Promise<number>;
13
14
  buildDepositTx(owner: PublicKey, amount: BN, mode: DepositMode, commitment?: DepositCommitment): Promise<Transaction>;
14
15
  buildWithdrawTx(owner: PublicKey, amount: BN, mode: DepositMode): Promise<Transaction>;
15
16
  getModeTokenPrice(mode: DepositMode): Promise<BN>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/permissionless/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAShE,OAAO,EAAE,EAAE,EAAwB,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAA0B;gBAE7B,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe;IAQpD,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,SAAS,CAAC;IAUf,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,EAAE,EACV,IAAI,EAAE,WAAW,EACjB,UAAU,GAAE,iBAA+C,GAC1D,OAAO,CAAC,WAAW,CAAC;IAuDjB,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,EAAE,EACV,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,WAAW,CAAC;IAwCjB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC;YAkCzC,sCAAsC;CAqCrD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/permissionless/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAShE,OAAO,EAAE,EAAE,EAAwB,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAA0B;gBAE7B,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe;IAQpD,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,SAAS,CAAC;IAMf,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAapD,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,EAAE,EACV,IAAI,EAAE,WAAW,EACjB,UAAU,GAAE,iBAA+C,GAC1D,OAAO,CAAC,WAAW,CAAC;IAuDjB,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,EAAE,EACV,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,WAAW,CAAC;IAwCjB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC;YAkCzC,sCAAsC;CAqCrD"}
@@ -27,6 +27,12 @@ class PermissionlessClient {
27
27
  const modeMetadata = this.metadata[mode];
28
28
  return (0, tokenAccount_1.getModeTokenATA)(owner, new web3_js_1.PublicKey(modeMetadata.mint));
29
29
  }
30
+ // Fetches the target APY of the given mode in basis points
31
+ async getModeTargetApy(mode) {
32
+ const modeMetadata = this.metadata[mode];
33
+ const modeConfig = await this.program.account.modeConfig.fetch(new web3_js_1.PublicKey(modeMetadata.config));
34
+ return modeConfig.targetApyBps;
35
+ }
30
36
  // Returns a transaction with all the necessary instructions to deposit into
31
37
  // Huma 2.0 for the given mode. Note that this transaction omits priority fees,
32
38
  // compute unit limits, and recent blockhash as these should be added by the caller.
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/permissionless/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/permissionless/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { Connection } from "@solana/web3.js";
2
+ import { getModeTokenATA, PermissionlessClient, SolanaChainEnum } from "../src";
3
+ import { DepositMode } from "../src/types/metadata";
4
+ import { PublicKey } from "@solana/web3.js";
5
+ import { BN } from "@coral-xyz/anchor";
6
+ import dotenv from "dotenv";
7
+ import { Keypair } from "@solana/web3.js";
8
+
9
+ dotenv.config();
10
+
11
+ async function main() {
12
+ const connection = new Connection(process.env.RPC_URL!);
13
+ const client = new PermissionlessClient(connection, SolanaChainEnum.MAINNET);
14
+
15
+ const key = Keypair.fromSecretKey(
16
+ new Uint8Array(JSON.parse(process.env.PRIVATE_KEY!))
17
+ );
18
+
19
+ const tokenATA = await client.getModeTokenATA(
20
+ key.publicKey,
21
+ DepositMode.CLASSIC
22
+ );
23
+ const balance = await connection.getTokenAccountBalance(tokenATA);
24
+ console.log("Submitting redemption for shares: ", balance.value.amount);
25
+
26
+ // Note: 1 USDC is the minimum deposit amount
27
+ const tx = await client.buildWithdrawTx(
28
+ key.publicKey,
29
+ new BN(balance.value.amount),
30
+ DepositMode.CLASSIC
31
+ );
32
+
33
+ console.log(tx);
34
+
35
+ tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;
36
+ await tx.sign(key);
37
+
38
+ const txHash = await connection.sendRawTransaction(tx.serialize());
39
+
40
+ console.log(txHash);
41
+ }
42
+
43
+ main();
@@ -0,0 +1,35 @@
1
+ import { Connection } from "@solana/web3.js";
2
+ import { PermissionlessClient, SolanaChainEnum } from "../src";
3
+ import { DepositMode } from "../src/types/metadata";
4
+ import { PublicKey } from "@solana/web3.js";
5
+ import { BN } from "@coral-xyz/anchor";
6
+ import dotenv from "dotenv";
7
+ import { Keypair } from "@solana/web3.js";
8
+
9
+ dotenv.config();
10
+
11
+ async function main() {
12
+ const connection = new Connection(process.env.RPC_URL!);
13
+ const client = new PermissionlessClient(connection, SolanaChainEnum.MAINNET);
14
+
15
+ const key = Keypair.fromSecretKey(
16
+ new Uint8Array(JSON.parse(process.env.PRIVATE_KEY!))
17
+ );
18
+ // Note: 1 USDC is the minimum deposit amount
19
+ const tx = await client.buildDepositTx(
20
+ key.publicKey,
21
+ new BN(1000000),
22
+ DepositMode.CLASSIC
23
+ );
24
+
25
+ console.log(tx);
26
+
27
+ tx.recentBlockhash = (await connection.getLatestBlockhash()).blockhash;
28
+ await tx.sign(key);
29
+
30
+ const txHash = await connection.sendRawTransaction(tx.serialize());
31
+
32
+ console.log(txHash);
33
+ }
34
+
35
+ main();
@@ -0,0 +1,18 @@
1
+ import { Connection } from "@solana/web3.js";
2
+ import { PermissionlessClient, SolanaChainEnum } from "../src";
3
+ import { DepositMode } from "../src/types/metadata";
4
+ import dotenv from "dotenv";
5
+ import { BN } from "@coral-xyz/anchor";
6
+
7
+ dotenv.config();
8
+
9
+ async function main() {
10
+ const connection = new Connection(process.env.RPC_URL!);
11
+ const client = new PermissionlessClient(connection, SolanaChainEnum.MAINNET);
12
+
13
+ const apy = await client.getModeTargetApy(DepositMode.CLASSIC);
14
+
15
+ console.log(apy);
16
+ }
17
+
18
+ main();
@@ -0,0 +1,31 @@
1
+ import { Connection } from "@solana/web3.js";
2
+ import { PermissionlessClient, SolanaChainEnum } from "../src";
3
+ import { DepositMode } from "../src/types/metadata";
4
+ import dotenv from "dotenv";
5
+ import { BN } from "@coral-xyz/anchor";
6
+
7
+ dotenv.config();
8
+
9
+ function formatPrice(price: BN, decimals: BN): string {
10
+ // Show full decimal value (e.g. 1.234567)
11
+ const integerPart = price.div(decimals).toString();
12
+ const fractionalPart = price
13
+ .mod(decimals)
14
+ .toString()
15
+ .padStart(decimals.toString().length - 1, "0");
16
+ // Remove trailing zeros from fractional part, but keep at least one zero if all are zero
17
+ const trimmedFractional = fractionalPart.replace(/0+$/, "") || "0";
18
+ return `${integerPart}.${trimmedFractional}`;
19
+ }
20
+
21
+ async function main() {
22
+ const connection = new Connection(process.env.RPC_URL!);
23
+ const client = new PermissionlessClient(connection, SolanaChainEnum.MAINNET);
24
+
25
+ const price = await client.getModeTokenPrice(DepositMode.CLASSIC);
26
+
27
+ const decimalsFactor = new BN(10).pow(new BN(6));
28
+ console.log(formatPrice(price, decimalsFactor));
29
+ }
30
+
31
+ main();
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@huma-finance/permissionless-sdk",
3
- "version": "1.0.5",
3
+ "version": "1.0.6-beta.20250911115332.a7b8403",
4
4
  "description": "Huma Finance Permissionless SDK for Solana",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
8
  "dist/**/*",
9
- "README.md"
9
+ "README.md",
10
+ "examples/**/*"
10
11
  ],
11
12
  "publishConfig": {
12
13
  "access": "public"