@exponent-labs/marginfi-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/marginfi-pda@0.0.2...@exponent-labs/marginfi-pda@0.0.3) (2025-03-03)
7
+
8
+ **Note:** Version bump only for package @exponent-labs/marginfi-pda
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.0.2](https://github.com/exponent-finance/exponent-core/compare/@exponent-labs/marginfi-pda@0.0.1...@exponent-labs/marginfi-pda@0.0.2) (2025-03-03)
15
+
16
+ **Note:** Version bump only for package @exponent-labs/marginfi-pda
@@ -0,0 +1,20 @@
1
+ import { web3 } from "@coral-xyz/anchor";
2
+ export declare const MARGINFI_PROGRAM_ID: web3.PublicKey;
3
+ export declare class MarginfiPda {
4
+ programId: web3.PublicKey;
5
+ constructor(programId?: web3.PublicKey);
6
+ emissionsAuth({ bank, mint }: {
7
+ bank: web3.PublicKey;
8
+ mint: web3.PublicKey;
9
+ }): web3.PublicKey;
10
+ emissionsVault({ bank, mint }: {
11
+ bank: web3.PublicKey;
12
+ mint: web3.PublicKey;
13
+ }): web3.PublicKey;
14
+ bankLiquidityVault(bank: web3.PublicKey): web3.PublicKey;
15
+ bankLiquidityVaultAuthority(bank: web3.PublicKey): web3.PublicKey;
16
+ }
17
+ export declare const getBankLiquidityVaultAuthority: (bank: web3.PublicKey, marginfiProgramId: web3.PublicKey) => web3.PublicKey;
18
+ export declare const getBankLiquidityVault: (bank: web3.PublicKey, marginfiProgramId: web3.PublicKey) => web3.PublicKey;
19
+ export declare const getMarginfiEmissionsAuth: (marginfiBank: web3.PublicKey, emissionsMint: web3.PublicKey, marginfiProgramId: web3.PublicKey) => web3.PublicKey;
20
+ export declare const getMarginfiEmissionsVault: (marginfiBank: web3.PublicKey, emissionsMint: web3.PublicKey, marginfiProgramId: web3.PublicKey) => web3.PublicKey;
package/build/index.js ADDED
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMarginfiEmissionsVault = exports.getMarginfiEmissionsAuth = exports.getBankLiquidityVault = exports.getBankLiquidityVaultAuthority = exports.MarginfiPda = exports.MARGINFI_PROGRAM_ID = void 0;
4
+ const anchor_1 = require("@coral-xyz/anchor");
5
+ exports.MARGINFI_PROGRAM_ID = new anchor_1.web3.PublicKey("MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA");
6
+ class MarginfiPda {
7
+ programId;
8
+ constructor(programId = exports.MARGINFI_PROGRAM_ID) {
9
+ this.programId = programId;
10
+ }
11
+ emissionsAuth({ bank, mint }) {
12
+ return (0, exports.getMarginfiEmissionsAuth)(bank, mint, this.programId);
13
+ }
14
+ emissionsVault({ bank, mint }) {
15
+ return (0, exports.getMarginfiEmissionsVault)(bank, mint, this.programId);
16
+ }
17
+ bankLiquidityVault(bank) {
18
+ return (0, exports.getBankLiquidityVault)(bank, this.programId);
19
+ }
20
+ bankLiquidityVaultAuthority(bank) {
21
+ return (0, exports.getBankLiquidityVaultAuthority)(bank, this.programId);
22
+ }
23
+ }
24
+ exports.MarginfiPda = MarginfiPda;
25
+ const getBankLiquidityVaultAuthority = (bank, marginfiProgramId) => {
26
+ return anchor_1.web3.PublicKey.findProgramAddressSync([Buffer.from("liquidity_vault_auth"), bank.toBuffer()], marginfiProgramId)[0];
27
+ };
28
+ exports.getBankLiquidityVaultAuthority = getBankLiquidityVaultAuthority;
29
+ const getBankLiquidityVault = (bank, marginfiProgramId) => {
30
+ return anchor_1.web3.PublicKey.findProgramAddressSync([Buffer.from("liquidity_vault"), bank.toBuffer()], marginfiProgramId)[0];
31
+ };
32
+ exports.getBankLiquidityVault = getBankLiquidityVault;
33
+ const getMarginfiEmissionsAuth = (marginfiBank, emissionsMint, marginfiProgramId) => {
34
+ return anchor_1.web3.PublicKey.findProgramAddressSync([Buffer.from("emissions_auth_seed"), marginfiBank.toBuffer(), emissionsMint.toBuffer()], marginfiProgramId)[0];
35
+ };
36
+ exports.getMarginfiEmissionsAuth = getMarginfiEmissionsAuth;
37
+ const getMarginfiEmissionsVault = (marginfiBank, emissionsMint, marginfiProgramId) => {
38
+ return anchor_1.web3.PublicKey.findProgramAddressSync([Buffer.from("emissions_token_account_seed"), marginfiBank.toBuffer(), emissionsMint.toBuffer()], marginfiProgramId)[0];
39
+ };
40
+ exports.getMarginfiEmissionsVault = getMarginfiEmissionsVault;
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,8CAAwC;AAE3B,QAAA,mBAAmB,GAAG,IAAI,aAAI,CAAC,SAAS,CAAC,6CAA6C,CAAC,CAAA;AAEpG,MAAa,WAAW;IACH;IAAnB,YAAmB,YAAY,2BAAmB;QAA/B,cAAS,GAAT,SAAS,CAAsB;IAAG,CAAC;IAEtD,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAkD;QAC1E,OAAO,IAAA,gCAAwB,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7D,CAAC;IAED,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAkD;QAC3E,OAAO,IAAA,iCAAyB,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9D,CAAC;IAED,kBAAkB,CAAC,IAAoB;QACrC,OAAO,IAAA,6BAAqB,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IACpD,CAAC;IAED,2BAA2B,CAAC,IAAoB;QAC9C,OAAO,IAAA,sCAA8B,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7D,CAAC;CACF;AAlBD,kCAkBC;AACM,MAAM,8BAA8B,GAAG,CAAC,IAAoB,EAAE,iBAAiC,EAAE,EAAE;IACxG,OAAO,aAAI,CAAC,SAAS,CAAC,sBAAsB,CAC1C,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EACtD,iBAAiB,CAClB,CAAC,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AALY,QAAA,8BAA8B,kCAK1C;AAEM,MAAM,qBAAqB,GAAG,CAAC,IAAoB,EAAE,iBAAiC,EAAE,EAAE;IAC/F,OAAO,aAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;AACvH,CAAC,CAAA;AAFY,QAAA,qBAAqB,yBAEjC;AAEM,MAAM,wBAAwB,GAAG,CACtC,YAA4B,EAC5B,aAA6B,EAC7B,iBAAiC,EACjC,EAAE;IACF,OAAO,aAAI,CAAC,SAAS,CAAC,sBAAsB,CAC1C,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,EACvF,iBAAiB,CAClB,CAAC,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AATY,QAAA,wBAAwB,4BASpC;AAEM,MAAM,yBAAyB,GAAG,CACvC,YAA4B,EAC5B,aAA6B,EAC7B,iBAAiC,EACjC,EAAE;IACF,OAAO,aAAI,CAAC,SAAS,CAAC,sBAAsB,CAC1C,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,EAChG,iBAAiB,CAClB,CAAC,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AATY,QAAA,yBAAyB,6BASrC"}
package/package.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "@exponent-labs/marginfi-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,55 @@
1
+ import { web3 } from "@coral-xyz/anchor"
2
+
3
+ export const MARGINFI_PROGRAM_ID = new web3.PublicKey("MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA")
4
+
5
+ export class MarginfiPda {
6
+ constructor(public programId = MARGINFI_PROGRAM_ID) {}
7
+
8
+ emissionsAuth({ bank, mint }: { bank: web3.PublicKey; mint: web3.PublicKey }) {
9
+ return getMarginfiEmissionsAuth(bank, mint, this.programId)
10
+ }
11
+
12
+ emissionsVault({ bank, mint }: { bank: web3.PublicKey; mint: web3.PublicKey }) {
13
+ return getMarginfiEmissionsVault(bank, mint, this.programId)
14
+ }
15
+
16
+ bankLiquidityVault(bank: web3.PublicKey) {
17
+ return getBankLiquidityVault(bank, this.programId)
18
+ }
19
+
20
+ bankLiquidityVaultAuthority(bank: web3.PublicKey) {
21
+ return getBankLiquidityVaultAuthority(bank, this.programId)
22
+ }
23
+ }
24
+ export const getBankLiquidityVaultAuthority = (bank: web3.PublicKey, marginfiProgramId: web3.PublicKey) => {
25
+ return web3.PublicKey.findProgramAddressSync(
26
+ [Buffer.from("liquidity_vault_auth"), bank.toBuffer()],
27
+ marginfiProgramId,
28
+ )[0]
29
+ }
30
+
31
+ export const getBankLiquidityVault = (bank: web3.PublicKey, marginfiProgramId: web3.PublicKey) => {
32
+ return web3.PublicKey.findProgramAddressSync([Buffer.from("liquidity_vault"), bank.toBuffer()], marginfiProgramId)[0]
33
+ }
34
+
35
+ export const getMarginfiEmissionsAuth = (
36
+ marginfiBank: web3.PublicKey,
37
+ emissionsMint: web3.PublicKey,
38
+ marginfiProgramId: web3.PublicKey,
39
+ ) => {
40
+ return web3.PublicKey.findProgramAddressSync(
41
+ [Buffer.from("emissions_auth_seed"), marginfiBank.toBuffer(), emissionsMint.toBuffer()],
42
+ marginfiProgramId,
43
+ )[0]
44
+ }
45
+
46
+ export const getMarginfiEmissionsVault = (
47
+ marginfiBank: web3.PublicKey,
48
+ emissionsMint: web3.PublicKey,
49
+ marginfiProgramId: web3.PublicKey,
50
+ ) => {
51
+ return web3.PublicKey.findProgramAddressSync(
52
+ [Buffer.from("emissions_token_account_seed"), marginfiBank.toBuffer(), emissionsMint.toBuffer()],
53
+ marginfiProgramId,
54
+ )[0]
55
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,17 @@
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
+ }