@exponent-labs/adrena-idl 0.1.5
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/build/adrena.d.ts +12234 -0
- package/build/adrena.js +3 -0
- package/build/adrena.js.map +1 -0
- package/build/adrena.json +12234 -0
- package/build/index.d.ts +22 -0
- package/build/index.js +70 -0
- package/build/index.js.map +1 -0
- package/package.json +18 -0
- package/src/adrena.json +12234 -0
- package/src/adrena.ts +12234 -0
- package/src/index.ts +95 -0
- package/tsconfig.json +17 -0
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { IdlAccounts, IdlTypes, web3 } from "@coral-xyz/anchor";
|
|
4
|
+
import BN from "bn.js";
|
|
5
|
+
import { Adrena } from "./adrena";
|
|
6
|
+
type AdrenaAccounts = IdlAccounts<Adrena>;
|
|
7
|
+
type AdrenaTypes = IdlTypes<Adrena>;
|
|
8
|
+
export type PoolState = AdrenaAccounts["pool"];
|
|
9
|
+
export type CustodyState = AdrenaAccounts["custody"];
|
|
10
|
+
export type FeesStats = AdrenaTypes["FeesStats"];
|
|
11
|
+
export declare const decodePoolAccount: (connection: web3.Connection, accountPubkey: web3.PublicKey) => Promise<PoolState>;
|
|
12
|
+
export declare const encodePoolAccount: (accountBuffer: any) => Promise<Buffer>;
|
|
13
|
+
export declare const decodeCustodyAccount: (connection: web3.Connection, accountPubkey: web3.PublicKey) => Promise<CustodyState>;
|
|
14
|
+
export declare const encodeCustodyAccount: (custody: any) => Promise<Buffer>;
|
|
15
|
+
export declare const decodePoolAndCustodyAccounts: (accountInfos: {
|
|
16
|
+
data: Buffer;
|
|
17
|
+
}[]) => {
|
|
18
|
+
poolAccount: any;
|
|
19
|
+
custodyAccounts: any[];
|
|
20
|
+
};
|
|
21
|
+
export declare const calculateTotalFeesFromCustodies: (custodyAccounts: CustodyState[]) => BN;
|
|
22
|
+
export {};
|
package/build/index.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.calculateTotalFeesFromCustodies = exports.decodePoolAndCustodyAccounts = exports.encodeCustodyAccount = exports.decodeCustodyAccount = exports.encodePoolAccount = exports.decodePoolAccount = void 0;
|
|
7
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
8
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
9
|
+
const adrena_json_1 = __importDefault(require("./adrena.json")); // <-- the raw IDL
|
|
10
|
+
const ADRENA_POOL_IDL = adrena_json_1.default;
|
|
11
|
+
const decodePoolAccount = async (connection, accountPubkey) => {
|
|
12
|
+
const account = await connection.getAccountInfo(accountPubkey);
|
|
13
|
+
if (!account) {
|
|
14
|
+
throw new Error(`Could not fetch Adrena Pool ${accountPubkey.toString()}`);
|
|
15
|
+
}
|
|
16
|
+
const coder = new anchor_1.BorshCoder(ADRENA_POOL_IDL);
|
|
17
|
+
const decoded = coder.accounts.decode("Pool", account.data);
|
|
18
|
+
return decoded;
|
|
19
|
+
};
|
|
20
|
+
exports.decodePoolAccount = decodePoolAccount;
|
|
21
|
+
const encodePoolAccount = async (accountBuffer) => {
|
|
22
|
+
const coder = new anchor_1.BorshCoder(ADRENA_POOL_IDL);
|
|
23
|
+
return coder.accounts.encode("Pool", accountBuffer);
|
|
24
|
+
};
|
|
25
|
+
exports.encodePoolAccount = encodePoolAccount;
|
|
26
|
+
const decodeCustodyAccount = async (connection, accountPubkey) => {
|
|
27
|
+
const account = await connection.getAccountInfo(accountPubkey);
|
|
28
|
+
if (!account) {
|
|
29
|
+
throw new Error(`Could not fetch Adrena Custody ${accountPubkey.toString()}`);
|
|
30
|
+
}
|
|
31
|
+
const coder = new anchor_1.BorshCoder(ADRENA_POOL_IDL);
|
|
32
|
+
const decoded = coder.accounts.decode("Custody", account.data);
|
|
33
|
+
return decoded;
|
|
34
|
+
};
|
|
35
|
+
exports.decodeCustodyAccount = decodeCustodyAccount;
|
|
36
|
+
const encodeCustodyAccount = async (custody) => {
|
|
37
|
+
const coder = new anchor_1.BorshCoder(ADRENA_POOL_IDL);
|
|
38
|
+
return coder.accounts.encode("Custody", custody);
|
|
39
|
+
};
|
|
40
|
+
exports.encodeCustodyAccount = encodeCustodyAccount;
|
|
41
|
+
// Decode pool and custody accounts from raw account data (without additional RPC calls)
|
|
42
|
+
const decodePoolAndCustodyAccounts = (accountInfos) => {
|
|
43
|
+
const coder = new anchor_1.BorshCoder(ADRENA_POOL_IDL);
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
const poolAccount = coder.accounts.decode("Pool", accountInfos[0].data);
|
|
46
|
+
const custodyAccounts = [
|
|
47
|
+
coder.accounts.decode("Custody", accountInfos[1].data),
|
|
48
|
+
coder.accounts.decode("Custody", accountInfos[2].data),
|
|
49
|
+
coder.accounts.decode("Custody", accountInfos[3].data),
|
|
50
|
+
coder.accounts.decode("Custody", accountInfos[4].data),
|
|
51
|
+
];
|
|
52
|
+
return { poolAccount, custodyAccounts };
|
|
53
|
+
};
|
|
54
|
+
exports.decodePoolAndCustodyAccounts = decodePoolAndCustodyAccounts;
|
|
55
|
+
// Calculate total fees from custody accounts
|
|
56
|
+
const calculateTotalFeesFromCustodies = (custodyAccounts) => {
|
|
57
|
+
return custodyAccounts.reduce((acc, c) => {
|
|
58
|
+
const fees = c.collectedFees;
|
|
59
|
+
// @ts-ignore
|
|
60
|
+
const totalCustodyFees = fees.swapUsd
|
|
61
|
+
.add(fees.addLiquidityUsd)
|
|
62
|
+
.add(fees.removeLiquidityUsd)
|
|
63
|
+
.add(fees.closePositionUsd)
|
|
64
|
+
.add(fees.liquidationUsd)
|
|
65
|
+
.add(fees.borrowUsd);
|
|
66
|
+
return acc.add(totalCustodyFees);
|
|
67
|
+
}, new bn_js_1.default(0));
|
|
68
|
+
};
|
|
69
|
+
exports.calculateTotalFeesFromCustodies = calculateTotalFeesFromCustodies;
|
|
70
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@exponent-labs/adrena-idl",
|
|
3
|
+
"version": "0.1.5",
|
|
4
|
+
"main": "build/index.js",
|
|
5
|
+
"types": "build/index.d.ts",
|
|
6
|
+
"license": "AGPL-3.0",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc --build",
|
|
9
|
+
"clean": "rm -rf build && rm -rf node_modules && rm tsconfig.tsbuildinfo"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@coral-xyz/anchor": "0.29.0"
|
|
13
|
+
},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"typescript": "5.4.5"
|
|
16
|
+
},
|
|
17
|
+
"gitHead": "209b8847e9a0fadb5b5ec96b9b47f0ace4a3bf9d"
|
|
18
|
+
}
|