@exponent-labs/kamino-sy-pda 0.0.3

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/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ## [0.0.3](https://github.com/exponent-finance/exponent-core/compare/@exponent-labs/kamino-sy-pda@0.0.2...@exponent-labs/kamino-sy-pda@0.0.3) (2025-03-03)
7
+
8
+ **Note:** Version bump only for package @exponent-labs/kamino-sy-pda
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.0.2](https://github.com/exponent-finance/exponent-core/compare/@exponent-labs/kamino-sy-pda@0.0.1...@exponent-labs/kamino-sy-pda@0.0.2) (2025-03-03)
15
+
16
+ **Note:** Version bump only for package @exponent-labs/kamino-sy-pda
@@ -0,0 +1 @@
1
+ export * from "./kaminoSyPda";
package/build/index.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./kaminoSyPda"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B"}
@@ -0,0 +1,65 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ export declare class KaminoSyPda {
3
+ programId: PublicKey;
4
+ constructor(programId: PublicKey);
5
+ private findProgramAddressSync;
6
+ emissionTracker({ reserve }: {
7
+ reserve: PublicKey;
8
+ }): PublicKey;
9
+ mintSy({ reserve }: {
10
+ reserve: PublicKey;
11
+ }): PublicKey;
12
+ accountAuthority({ reserve }: {
13
+ reserve: PublicKey;
14
+ }): PublicKey;
15
+ mintSyAuthority({ reserve }: {
16
+ reserve: PublicKey;
17
+ }): PublicKey;
18
+ position({ reserve, owner }: {
19
+ reserve: PublicKey;
20
+ owner: PublicKey;
21
+ }): PublicKey;
22
+ syEscrowAuthority({ reserve }: {
23
+ reserve: PublicKey;
24
+ }): PublicKey;
25
+ syEscrow({ reserve }: {
26
+ reserve: PublicKey;
27
+ }): PublicKey;
28
+ syMeta({ kaminoReserve }: {
29
+ kaminoReserve: PublicKey;
30
+ }): PublicKey;
31
+ accountAuthorityToken({ reserve }: {
32
+ reserve: PublicKey;
33
+ }): PublicKey;
34
+ underlyingEscrow({ reserve, mintUnderlying, tokenProgramUnderlying, }: {
35
+ reserve: PublicKey;
36
+ mintUnderlying: PublicKey;
37
+ tokenProgramUnderlying: PublicKey;
38
+ }): PublicKey;
39
+ getKaminoReserveLiquiditySupply({ lendingMarket, reserveLiquidityMint, }: {
40
+ lendingMarket: PublicKey;
41
+ reserveLiquidityMint: PublicKey;
42
+ }): PublicKey;
43
+ getKaminoReserveCollateralMint({ lendingMarket, reserveLiquidityMint, }: {
44
+ lendingMarket: PublicKey;
45
+ reserveLiquidityMint: PublicKey;
46
+ }): PublicKey;
47
+ getKaminoReserveCollateralSupply({ lendingMarket, reserveLiquidityMint, }: {
48
+ lendingMarket: PublicKey;
49
+ reserveLiquidityMint: PublicKey;
50
+ }): PublicKey;
51
+ getKaminoUserMetadata({ user }: {
52
+ user: PublicKey;
53
+ }): PublicKey;
54
+ getKaminoFarmsVaultAuthority({ farm }: {
55
+ farm: PublicKey;
56
+ }): PublicKey;
57
+ getKaminoLendObligation({ owner, lendingMarket }: {
58
+ owner: PublicKey;
59
+ lendingMarket: PublicKey;
60
+ }): PublicKey;
61
+ getKaminoFarmsObligationFarm({ obligation, reserveFarmState, }: {
62
+ obligation: PublicKey;
63
+ reserveFarmState: PublicKey;
64
+ }): PublicKey;
65
+ }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.KaminoSyPda = void 0;
27
+ const web3_js_1 = require("@solana/web3.js");
28
+ const spl_token_1 = require("@solana/spl-token");
29
+ const anchor = __importStar(require("@coral-xyz/anchor"));
30
+ class KaminoSyPda {
31
+ programId;
32
+ constructor(programId) {
33
+ this.programId = programId;
34
+ }
35
+ findProgramAddressSync(seeds) {
36
+ return web3_js_1.PublicKey.findProgramAddressSync(seeds, this.programId)[0];
37
+ }
38
+ emissionTracker({ reserve }) {
39
+ return this.findProgramAddressSync([Buffer.from("emission_tracker"), reserve.toBuffer()]);
40
+ }
41
+ mintSy({ reserve }) {
42
+ return this.findProgramAddressSync([Buffer.from("standard_token_mint"), reserve.toBuffer()]);
43
+ }
44
+ accountAuthority({ reserve }) {
45
+ return this.findProgramAddressSync([Buffer.from("account_authority"), reserve.toBuffer()]);
46
+ }
47
+ mintSyAuthority({ reserve }) {
48
+ return this.findProgramAddressSync([Buffer.from("mint_authority"), reserve.toBuffer()]);
49
+ }
50
+ position({ reserve, owner }) {
51
+ return this.findProgramAddressSync([Buffer.from("position"), reserve.toBuffer(), owner.toBuffer()]);
52
+ }
53
+ syEscrowAuthority({ reserve }) {
54
+ return this.findProgramAddressSync([Buffer.from("stake_pool_authority"), reserve.toBuffer()]);
55
+ }
56
+ syEscrow({ reserve }) {
57
+ return this.findProgramAddressSync([Buffer.from("staked_receipt_pool"), reserve.toBuffer()]);
58
+ }
59
+ syMeta({ kaminoReserve }) {
60
+ return this.findProgramAddressSync([Buffer.from("meta"), kaminoReserve.toBuffer()]);
61
+ }
62
+ accountAuthorityToken({ reserve }) {
63
+ return this.findProgramAddressSync([Buffer.from("account_authority_token"), reserve.toBuffer()]);
64
+ }
65
+ underlyingEscrow({ reserve, mintUnderlying, tokenProgramUnderlying, }) {
66
+ const owner = this.accountAuthority({ reserve });
67
+ return (0, spl_token_1.getAssociatedTokenAddressSync)(mintUnderlying, owner, true, tokenProgramUnderlying);
68
+ }
69
+ // Additional methods specific to KaminoSy
70
+ getKaminoReserveLiquiditySupply({ lendingMarket, reserveLiquidityMint, }) {
71
+ return this.findProgramAddressSync([
72
+ Buffer.from("reserve_liq_supply"),
73
+ lendingMarket.toBuffer(),
74
+ reserveLiquidityMint.toBuffer(),
75
+ ]);
76
+ }
77
+ getKaminoReserveCollateralMint({ lendingMarket, reserveLiquidityMint, }) {
78
+ return this.findProgramAddressSync([
79
+ Buffer.from("reserve_coll_mint"),
80
+ lendingMarket.toBuffer(),
81
+ reserveLiquidityMint.toBuffer(),
82
+ ]);
83
+ }
84
+ getKaminoReserveCollateralSupply({ lendingMarket, reserveLiquidityMint, }) {
85
+ return this.findProgramAddressSync([
86
+ Buffer.from("reserve_coll_supply"),
87
+ lendingMarket.toBuffer(),
88
+ reserveLiquidityMint.toBuffer(),
89
+ ]);
90
+ }
91
+ getKaminoUserMetadata({ user }) {
92
+ return this.findProgramAddressSync([Buffer.from("user_meta"), user.toBuffer()]);
93
+ }
94
+ getKaminoFarmsVaultAuthority({ farm }) {
95
+ return this.findProgramAddressSync([Buffer.from("authority"), farm.toBuffer()]);
96
+ }
97
+ getKaminoLendObligation({ owner, lendingMarket }) {
98
+ return this.findProgramAddressSync([
99
+ Buffer.from([0]),
100
+ Buffer.from([0]),
101
+ owner.toBuffer(),
102
+ lendingMarket.toBuffer(),
103
+ anchor.web3.SystemProgram.programId.toBuffer(),
104
+ anchor.web3.SystemProgram.programId.toBuffer(),
105
+ ]);
106
+ }
107
+ getKaminoFarmsObligationFarm({ obligation, reserveFarmState, }) {
108
+ return this.findProgramAddressSync([Buffer.from("user"), reserveFarmState.toBuffer(), obligation.toBuffer()]);
109
+ }
110
+ }
111
+ exports.KaminoSyPda = KaminoSyPda;
112
+ //# sourceMappingURL=kaminoSyPda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kaminoSyPda.js","sourceRoot":"","sources":["../src/kaminoSyPda.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "@exponent-labs/kamino-sy-pda",
3
+ "version": "0.0.3",
4
+ "main": "build/index.js",
5
+ "types": "build/index.d.ts",
6
+ "license": "AGPL-3.0",
7
+ "scripts": {
8
+ "build": "tsc --build"
9
+ },
10
+ "dependencies": {
11
+ "@coral-xyz/anchor": "0.30.0",
12
+ "@solana/spl-token": "0.4.6"
13
+ },
14
+ "devDependencies": {
15
+ "typescript": "5.4.5"
16
+ },
17
+ "gitHead": "209b8847e9a0fadb5b5ec96b9b47f0ace4a3bf9d"
18
+ }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./kaminoSyPda"
@@ -0,0 +1,132 @@
1
+ import { PublicKey } from "@solana/web3.js"
2
+ import { getAssociatedTokenAddressSync } from "@solana/spl-token"
3
+ import * as anchor from "@coral-xyz/anchor"
4
+
5
+ export class KaminoSyPda {
6
+ constructor(public programId: PublicKey) {}
7
+
8
+ private findProgramAddressSync(seeds: Buffer[]) {
9
+ return PublicKey.findProgramAddressSync(seeds, this.programId)[0]
10
+ }
11
+
12
+ emissionTracker({ reserve }: { reserve: PublicKey }) {
13
+ return this.findProgramAddressSync([Buffer.from("emission_tracker"), reserve.toBuffer()])
14
+ }
15
+
16
+ mintSy({ reserve }: { reserve: PublicKey }) {
17
+ return this.findProgramAddressSync([Buffer.from("standard_token_mint"), reserve.toBuffer()])
18
+ }
19
+
20
+ accountAuthority({ reserve }: { reserve: PublicKey }) {
21
+ return this.findProgramAddressSync([Buffer.from("account_authority"), reserve.toBuffer()])
22
+ }
23
+
24
+ mintSyAuthority({ reserve }: { reserve: PublicKey }) {
25
+ return this.findProgramAddressSync([Buffer.from("mint_authority"), reserve.toBuffer()])
26
+ }
27
+
28
+ position({ reserve, owner }: { reserve: PublicKey; owner: PublicKey }) {
29
+ return this.findProgramAddressSync([Buffer.from("position"), reserve.toBuffer(), owner.toBuffer()])
30
+ }
31
+
32
+ syEscrowAuthority({ reserve }: { reserve: PublicKey }) {
33
+ return this.findProgramAddressSync([Buffer.from("stake_pool_authority"), reserve.toBuffer()])
34
+ }
35
+
36
+ syEscrow({ reserve }: { reserve: PublicKey }) {
37
+ return this.findProgramAddressSync([Buffer.from("staked_receipt_pool"), reserve.toBuffer()])
38
+ }
39
+
40
+ syMeta({ kaminoReserve }: { kaminoReserve: PublicKey }) {
41
+ return this.findProgramAddressSync([Buffer.from("meta"), kaminoReserve.toBuffer()])
42
+ }
43
+
44
+ accountAuthorityToken({ reserve }: { reserve: PublicKey }) {
45
+ return this.findProgramAddressSync([Buffer.from("account_authority_token"), reserve.toBuffer()])
46
+ }
47
+
48
+ underlyingEscrow({
49
+ reserve,
50
+ mintUnderlying,
51
+ tokenProgramUnderlying,
52
+ }: {
53
+ reserve: PublicKey
54
+ mintUnderlying: PublicKey
55
+ tokenProgramUnderlying: PublicKey
56
+ }) {
57
+ const owner = this.accountAuthority({ reserve })
58
+ return getAssociatedTokenAddressSync(mintUnderlying, owner, true, tokenProgramUnderlying)
59
+ }
60
+
61
+ // Additional methods specific to KaminoSy
62
+ getKaminoReserveLiquiditySupply({
63
+ lendingMarket,
64
+ reserveLiquidityMint,
65
+ }: {
66
+ lendingMarket: PublicKey
67
+ reserveLiquidityMint: PublicKey
68
+ }) {
69
+ return this.findProgramAddressSync([
70
+ Buffer.from("reserve_liq_supply"),
71
+ lendingMarket.toBuffer(),
72
+ reserveLiquidityMint.toBuffer(),
73
+ ])
74
+ }
75
+
76
+ getKaminoReserveCollateralMint({
77
+ lendingMarket,
78
+ reserveLiquidityMint,
79
+ }: {
80
+ lendingMarket: PublicKey
81
+ reserveLiquidityMint: PublicKey
82
+ }) {
83
+ return this.findProgramAddressSync([
84
+ Buffer.from("reserve_coll_mint"),
85
+ lendingMarket.toBuffer(),
86
+ reserveLiquidityMint.toBuffer(),
87
+ ])
88
+ }
89
+
90
+ getKaminoReserveCollateralSupply({
91
+ lendingMarket,
92
+ reserveLiquidityMint,
93
+ }: {
94
+ lendingMarket: PublicKey
95
+ reserveLiquidityMint: PublicKey
96
+ }) {
97
+ return this.findProgramAddressSync([
98
+ Buffer.from("reserve_coll_supply"),
99
+ lendingMarket.toBuffer(),
100
+ reserveLiquidityMint.toBuffer(),
101
+ ])
102
+ }
103
+
104
+ getKaminoUserMetadata({ user }: { user: PublicKey }) {
105
+ return this.findProgramAddressSync([Buffer.from("user_meta"), user.toBuffer()])
106
+ }
107
+
108
+ getKaminoFarmsVaultAuthority({ farm }: { farm: PublicKey }) {
109
+ return this.findProgramAddressSync([Buffer.from("authority"), farm.toBuffer()])
110
+ }
111
+
112
+ getKaminoLendObligation({ owner, lendingMarket }: { owner: PublicKey; lendingMarket: PublicKey }) {
113
+ return this.findProgramAddressSync([
114
+ Buffer.from([0]),
115
+ Buffer.from([0]),
116
+ owner.toBuffer(),
117
+ lendingMarket.toBuffer(),
118
+ anchor.web3.SystemProgram.programId.toBuffer(),
119
+ anchor.web3.SystemProgram.programId.toBuffer(),
120
+ ])
121
+ }
122
+
123
+ getKaminoFarmsObligationFarm({
124
+ obligation,
125
+ reserveFarmState,
126
+ }: {
127
+ obligation: PublicKey
128
+ reserveFarmState: PublicKey
129
+ }) {
130
+ return this.findProgramAddressSync([Buffer.from("user"), reserveFarmState.toBuffer(), obligation.toBuffer()])
131
+ }
132
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "rootDir": "src",
4
+ "sourceMap": true,
5
+ "incremental": true /* Save .tsbuildinfo files to allow for incremental compilation of projects. */,
6
+ "composite": true /* Enable constraints that allow a TypeScript project to be used with project references. */,
7
+ "target": "ESNext" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
8
+ "module": "CommonJS" /* Specify what module code is generated. */,
9
+ "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */,
10
+ "outDir": "./build" /* Specify an output folder for all emitted files. */,
11
+ "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
12
+ "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
13
+ "skipLibCheck": true /* Skip type checking all .d.ts files. */
14
+ },
15
+ "include": ["src"],
16
+ "exclude": ["build"],
17
+ "references": []
18
+ }