@symmetry-hq/temp-v3-sdk 0.0.1
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/dist/idl/idl.d.ts +8 -0
- package/dist/idl/idl.js +4958 -0
- package/dist/idl/types.d.ts +4955 -0
- package/dist/idl/types.js +2 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.js +60 -0
- package/dist/layouts/basket.d.ts +42 -0
- package/dist/layouts/basket.js +43 -0
- package/dist/layouts/config.d.ts +97 -0
- package/dist/layouts/config.js +102 -0
- package/dist/layouts/fraction.d.ts +6 -0
- package/dist/layouts/fraction.js +9 -0
- package/dist/layouts/oracle.d.ts +36 -0
- package/dist/layouts/oracle.js +37 -0
- package/dist/src/constants.d.ts +15 -0
- package/dist/src/constants.js +19 -0
- package/dist/src/idl/idl.d.ts +8 -0
- package/dist/src/idl/idl.js +4958 -0
- package/dist/src/idl/types.d.ts +4955 -0
- package/dist/src/idl/types.js +2 -0
- package/dist/src/index.d.ts +53 -0
- package/dist/src/index.js +199 -0
- package/dist/src/instructions/accounts.d.ts +27 -0
- package/dist/src/instructions/accounts.js +110 -0
- package/dist/src/instructions/auction.d.ts +7 -0
- package/dist/src/instructions/auction.js +43 -0
- package/dist/src/instructions/automation/auction.d.ts +6 -0
- package/dist/src/instructions/automation/auction.js +40 -0
- package/dist/src/instructions/automation/claimBounty.d.ts +12 -0
- package/dist/src/instructions/automation/claimBounty.js +44 -0
- package/dist/src/instructions/automation/priceUpdate.d.ts +15 -0
- package/dist/src/instructions/automation/priceUpdate.js +47 -0
- package/dist/src/instructions/automation/rebalanceSwap.d.ts +10 -0
- package/dist/src/instructions/automation/rebalanceSwap.js +42 -0
- package/dist/src/instructions/basket.d.ts +120 -0
- package/dist/src/instructions/basket.js +622 -0
- package/dist/src/instructions/bounty.d.ts +18 -0
- package/dist/src/instructions/bounty.js +81 -0
- package/dist/src/instructions/fee.d.ts +8 -0
- package/dist/src/instructions/fee.js +46 -0
- package/dist/src/instructions/globalConfig.d.ts +11 -0
- package/dist/src/instructions/globalConfig.js +43 -0
- package/dist/src/instructions/luts.d.ts +33 -0
- package/dist/src/instructions/luts.js +91 -0
- package/dist/src/instructions/management/addBounty.d.ts +7 -0
- package/dist/src/instructions/management/addBounty.js +39 -0
- package/dist/src/instructions/management/admin.d.ts +9 -0
- package/dist/src/instructions/management/admin.js +43 -0
- package/dist/src/instructions/management/claimFees.d.ts +7 -0
- package/dist/src/instructions/management/claimFees.js +47 -0
- package/dist/src/instructions/management/createBasket.d.ts +22 -0
- package/dist/src/instructions/management/createBasket.js +101 -0
- package/dist/src/instructions/management/edit.d.ts +34 -0
- package/dist/src/instructions/management/edit.js +192 -0
- package/dist/src/instructions/management/luts.d.ts +29 -0
- package/dist/src/instructions/management/luts.js +88 -0
- package/dist/src/instructions/pda.d.ts +26 -0
- package/dist/src/instructions/pda.js +110 -0
- package/dist/src/instructions/price.d.ts +17 -0
- package/dist/src/instructions/price.js +47 -0
- package/dist/src/instructions/user/deposit.d.ts +32 -0
- package/dist/src/instructions/user/deposit.js +168 -0
- package/dist/src/instructions/user/withdraw.d.ts +16 -0
- package/dist/src/instructions/user/withdraw.js +82 -0
- package/dist/src/layouts/basket.d.ts +41 -0
- package/dist/src/layouts/basket.js +43 -0
- package/dist/src/layouts/config.d.ts +133 -0
- package/dist/src/layouts/config.js +137 -0
- package/dist/src/layouts/fraction.d.ts +6 -0
- package/dist/src/layouts/fraction.js +9 -0
- package/dist/src/layouts/intents/bounty.d.ts +18 -0
- package/dist/src/layouts/intents/bounty.js +19 -0
- package/dist/src/layouts/intents/intent.d.ts +101 -0
- package/dist/src/layouts/intents/intent.js +113 -0
- package/dist/src/layouts/intents/rebalanceIntent.d.ts +56 -0
- package/dist/src/layouts/intents/rebalanceIntent.js +63 -0
- package/dist/src/layouts/lookupTable.d.ts +7 -0
- package/dist/src/layouts/lookupTable.js +10 -0
- package/dist/src/layouts/oracle.d.ts +42 -0
- package/dist/src/layouts/oracle.js +43 -0
- package/dist/src/states/basket.d.ts +8 -0
- package/dist/src/states/basket.js +54 -0
- package/dist/src/states/intents/intent.d.ts +14 -0
- package/dist/src/states/intents/intent.js +90 -0
- package/dist/src/states/intents/rebalanceIntent.d.ts +8 -0
- package/dist/src/states/intents/rebalanceIntent.js +54 -0
- package/dist/src/states/oracles/clmm_oracle.d.ts +178 -0
- package/dist/src/states/oracles/clmm_oracle.js +546 -0
- package/dist/src/states/oracles/constants.d.ts +8 -0
- package/dist/src/states/oracles/constants.js +12 -0
- package/dist/src/states/oracles/oracle.d.ts +60 -0
- package/dist/src/states/oracles/oracle.js +237 -0
- package/dist/src/states/oracles/pythOracle.d.ts +39 -0
- package/dist/src/states/oracles/pythOracle.js +202 -0
- package/dist/src/states/oracles/pyth_oracle.d.ts +39 -0
- package/dist/src/states/oracles/pyth_oracle.js +202 -0
- package/dist/src/states/oracles/raydiumClmmOracle.d.ts +178 -0
- package/dist/src/states/oracles/raydiumClmmOracle.js +546 -0
- package/dist/src/states/oracles/raydiumCpmmOracle.d.ts +139 -0
- package/dist/src/states/oracles/raydiumCpmmOracle.js +420 -0
- package/dist/src/states/oracles/raydium_cpmm_oracle.d.ts +139 -0
- package/dist/src/states/oracles/raydium_cpmm_oracle.js +420 -0
- package/dist/src/states/oracles/switchboardOracle.d.ts +0 -0
- package/dist/src/states/oracles/switchboardOracle.js +1 -0
- package/dist/src/states/oracles/switchboard_oracle.d.ts +0 -0
- package/dist/src/states/oracles/switchboard_oracle.js +1 -0
- package/dist/src/txUtils.d.ts +26 -0
- package/dist/src/txUtils.js +183 -0
- package/dist/states/basket.d.ts +8 -0
- package/dist/states/basket.js +57 -0
- package/dist/test.d.ts +1 -0
- package/dist/test.js +39 -0
- package/package.json +30 -0
- package/src/constants.ts +24 -0
- package/src/index.ts +260 -0
- package/src/instructions/automation/auction.ts +55 -0
- package/src/instructions/automation/claimBounty.ts +69 -0
- package/src/instructions/automation/priceUpdate.ts +73 -0
- package/src/instructions/automation/rebalanceSwap.ts +60 -0
- package/src/instructions/management/addBounty.ts +56 -0
- package/src/instructions/management/admin.ts +65 -0
- package/src/instructions/management/claimFees.ts +59 -0
- package/src/instructions/management/createBasket.ts +148 -0
- package/src/instructions/management/edit.ts +255 -0
- package/src/instructions/management/luts.ts +134 -0
- package/src/instructions/pda.ts +160 -0
- package/src/instructions/user/deposit.ts +237 -0
- package/src/instructions/user/withdraw.ts +130 -0
- package/src/layouts/basket.ts +82 -0
- package/src/layouts/config.ts +301 -0
- package/src/layouts/fraction.ts +12 -0
- package/src/layouts/intents/bounty.ts +35 -0
- package/src/layouts/intents/intent.ts +204 -0
- package/src/layouts/intents/rebalanceIntent.ts +111 -0
- package/src/layouts/lookupTable.ts +14 -0
- package/src/layouts/oracle.ts +96 -0
- package/src/states/basket.ts +56 -0
- package/src/states/intents/intent.ts +107 -0
- package/src/states/intents/rebalanceIntent.ts +57 -0
- package/src/states/oracles/constants.ts +13 -0
- package/src/states/oracles/oracle.ts +260 -0
- package/src/states/oracles/pythOracle.ts +270 -0
- package/src/states/oracles/raydiumClmmOracle.ts +812 -0
- package/src/states/oracles/raydiumCpmmOracle.ts +614 -0
- package/src/states/oracles/switchboardOracle.ts +0 -0
- package/src/txUtils.ts +250 -0
- package/test.ts +30 -0
- package/tsconfig.json +101 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Connection, PublicKey } from "@solana/web3.js";
|
|
2
|
+
import { BasketsProgram } from "./idl/types";
|
|
3
|
+
import { Program } from "@coral-xyz/anchor";
|
|
4
|
+
import { Basket } from "./layouts/basket";
|
|
5
|
+
export declare function getBasketsProgram(connection: Connection): Program<BasketsProgram>;
|
|
6
|
+
export declare const COMPUTE_UNITS = 1000000;
|
|
7
|
+
export declare const PRIORITY_FEE = 100000;
|
|
8
|
+
export declare const JUPITER_API_KEY = "https://quote-api.jup.ag/v6/";
|
|
9
|
+
export declare const MAX_JUPITER_ACCOUNTS = 35;
|
|
10
|
+
export declare class BasketsSdk {
|
|
11
|
+
private sdkParams;
|
|
12
|
+
constructor(params: {
|
|
13
|
+
connection: Connection;
|
|
14
|
+
payer?: PublicKey;
|
|
15
|
+
priorityFee?: number;
|
|
16
|
+
jupiterApiKey?: string;
|
|
17
|
+
maxAllowedAccounts?: number;
|
|
18
|
+
});
|
|
19
|
+
setPayer(payer: PublicKey): Promise<void>;
|
|
20
|
+
getBasket(params: {
|
|
21
|
+
basket: PublicKey;
|
|
22
|
+
}): Promise<Basket>;
|
|
23
|
+
fetchAllBaskets(): Promise<Basket[]>;
|
|
24
|
+
}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.BasketsSdk = exports.MAX_JUPITER_ACCOUNTS = exports.JUPITER_API_KEY = exports.PRIORITY_FEE = exports.COMPUTE_UNITS = void 0;
|
|
16
|
+
exports.getBasketsProgram = getBasketsProgram;
|
|
17
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
18
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
19
|
+
const idl_1 = require("./idl/idl");
|
|
20
|
+
const nodewallet_1 = __importDefault(require("@coral-xyz/anchor/dist/cjs/nodewallet"));
|
|
21
|
+
const basket_1 = require("./states/basket");
|
|
22
|
+
function getBasketsProgram(connection) {
|
|
23
|
+
const program = new anchor_1.Program(idl_1.IDL, new anchor_1.AnchorProvider(connection, new nodewallet_1.default(web3_js_1.Keypair.generate())));
|
|
24
|
+
return program;
|
|
25
|
+
}
|
|
26
|
+
exports.COMPUTE_UNITS = 1000000;
|
|
27
|
+
exports.PRIORITY_FEE = 100000;
|
|
28
|
+
exports.JUPITER_API_KEY = "https://quote-api.jup.ag/v6/";
|
|
29
|
+
exports.MAX_JUPITER_ACCOUNTS = 35;
|
|
30
|
+
class BasketsSdk {
|
|
31
|
+
constructor(params) {
|
|
32
|
+
var _a, _b, _c, _d;
|
|
33
|
+
this.sdkParams = {
|
|
34
|
+
connection: params.connection,
|
|
35
|
+
payer: (_a = params.payer) !== null && _a !== void 0 ? _a : web3_js_1.Keypair.generate().publicKey,
|
|
36
|
+
program: getBasketsProgram(params.connection),
|
|
37
|
+
priorityFee: (_b = params.priorityFee) !== null && _b !== void 0 ? _b : exports.PRIORITY_FEE,
|
|
38
|
+
jupiterApiKey: (_c = params.jupiterApiKey) !== null && _c !== void 0 ? _c : exports.JUPITER_API_KEY,
|
|
39
|
+
maxAllowedAccounts: (_d = params.maxAllowedAccounts) !== null && _d !== void 0 ? _d : exports.MAX_JUPITER_ACCOUNTS,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
setPayer(payer) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
this.sdkParams.payer = payer;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
getBasket(params) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const basketState = yield (0, basket_1.fetchBasket)(this.sdkParams.connection, params.basket);
|
|
50
|
+
return basketState;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
fetchAllBaskets() {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
const baskets = yield (0, basket_1.fetchBaskets)(this.sdkParams.connection, []);
|
|
56
|
+
return baskets;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.BasketsSdk = BasketsSdk;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BN } from "@coral-xyz/anchor";
|
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
|
3
|
+
import { OracleAggregator } from "./oracle";
|
|
4
|
+
import { Fraction } from "./fraction";
|
|
5
|
+
import { BasketSettings } from "./config";
|
|
6
|
+
export declare const MAX_SUPPORTED_TOKENS_PER_BASKET: number;
|
|
7
|
+
export interface BasketFees {
|
|
8
|
+
symmetry_fees: BN;
|
|
9
|
+
creator_fees: BN;
|
|
10
|
+
host_fees: BN;
|
|
11
|
+
managers_fees: BN;
|
|
12
|
+
}
|
|
13
|
+
export declare const BasketFeesLayout: any;
|
|
14
|
+
export interface LookupTables {
|
|
15
|
+
active: PublicKey[];
|
|
16
|
+
temp: PublicKey[];
|
|
17
|
+
}
|
|
18
|
+
export declare const LookupTablesLayout: any;
|
|
19
|
+
export interface Asset {
|
|
20
|
+
mint: PublicKey;
|
|
21
|
+
amount: BN;
|
|
22
|
+
weight: number;
|
|
23
|
+
num_oracles: number;
|
|
24
|
+
oracle_aggregator: OracleAggregator;
|
|
25
|
+
}
|
|
26
|
+
export declare const AssetLayout: any;
|
|
27
|
+
export interface Basket {
|
|
28
|
+
version: number;
|
|
29
|
+
seedArray: number[];
|
|
30
|
+
ownAddress: PublicKey;
|
|
31
|
+
mint: PublicKey;
|
|
32
|
+
supplyOutstanding: BN;
|
|
33
|
+
highWaterMark: Fraction;
|
|
34
|
+
bountyAmount: BN;
|
|
35
|
+
settings: BasketSettings;
|
|
36
|
+
accumulated_fees: BasketFees;
|
|
37
|
+
lookup_tables: LookupTables;
|
|
38
|
+
write_version: BN;
|
|
39
|
+
num_tokens: number;
|
|
40
|
+
composition: Asset[];
|
|
41
|
+
}
|
|
42
|
+
export declare const BasketLayout: any;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BasketLayout = exports.AssetLayout = exports.LookupTablesLayout = exports.BasketFeesLayout = exports.MAX_SUPPORTED_TOKENS_PER_BASKET = void 0;
|
|
4
|
+
const borsh_1 = require("@coral-xyz/borsh");
|
|
5
|
+
const oracle_1 = require("./oracle");
|
|
6
|
+
const fraction_1 = require("./fraction");
|
|
7
|
+
const config_1 = require("./config");
|
|
8
|
+
exports.MAX_SUPPORTED_TOKENS_PER_BASKET = 100;
|
|
9
|
+
;
|
|
10
|
+
exports.BasketFeesLayout = (0, borsh_1.struct)([
|
|
11
|
+
(0, borsh_1.u64)("symmetry_fees"),
|
|
12
|
+
(0, borsh_1.u64)("creator_fees"),
|
|
13
|
+
(0, borsh_1.u64)("host_fees"),
|
|
14
|
+
(0, borsh_1.u64)("managers_fees"),
|
|
15
|
+
]);
|
|
16
|
+
;
|
|
17
|
+
exports.LookupTablesLayout = (0, borsh_1.struct)([
|
|
18
|
+
(0, borsh_1.array)((0, borsh_1.publicKey)(), 2, "active"),
|
|
19
|
+
(0, borsh_1.array)((0, borsh_1.publicKey)(), 2, "temp"),
|
|
20
|
+
]);
|
|
21
|
+
;
|
|
22
|
+
exports.AssetLayout = (0, borsh_1.struct)([
|
|
23
|
+
(0, borsh_1.publicKey)('mint'),
|
|
24
|
+
(0, borsh_1.u64)('amount'),
|
|
25
|
+
(0, borsh_1.u16)('weight'),
|
|
26
|
+
oracle_1.OracleAggregatorLayout.replicate('oracle_aggregator'),
|
|
27
|
+
]);
|
|
28
|
+
;
|
|
29
|
+
exports.BasketLayout = (0, borsh_1.struct)([
|
|
30
|
+
(0, borsh_1.u8)('version'),
|
|
31
|
+
(0, borsh_1.array)((0, borsh_1.u8)(), 16, 'seedArray'),
|
|
32
|
+
(0, borsh_1.publicKey)('ownAddress'),
|
|
33
|
+
(0, borsh_1.publicKey)('mint'),
|
|
34
|
+
(0, borsh_1.u64)('supplyOutstanding'),
|
|
35
|
+
fraction_1.FractionLayout.replicate('highWaterMark'),
|
|
36
|
+
(0, borsh_1.u64)('bountyAmount'),
|
|
37
|
+
config_1.BasketSettingsLayout.replicate('settings'),
|
|
38
|
+
exports.BasketFeesLayout.replicate('accumulated_fees'),
|
|
39
|
+
exports.LookupTablesLayout.replicate('lookup_tables'),
|
|
40
|
+
(0, borsh_1.u64)('write_version'),
|
|
41
|
+
(0, borsh_1.u8)('num_tokens'),
|
|
42
|
+
(0, borsh_1.array)(exports.AssetLayout, exports.MAX_SUPPORTED_TOKENS_PER_BASKET, 'composition'),
|
|
43
|
+
]);
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { PublicKey } from "@solana/web3.js";
|
|
2
|
+
import { Fraction } from "./fraction";
|
|
3
|
+
import { BN } from "@coral-xyz/anchor";
|
|
4
|
+
export declare const MAX_MANAGERS_PER_BASKET = 10;
|
|
5
|
+
export declare const MAX_SYMBOL_LENGTH = 10;
|
|
6
|
+
export declare const MAX_NAME_LENGTH = 32;
|
|
7
|
+
export declare const MAX_URI_LENGTH = 200;
|
|
8
|
+
export declare enum BasketType {
|
|
9
|
+
Private = 0,
|
|
10
|
+
Public = 1
|
|
11
|
+
}
|
|
12
|
+
export declare const BasketTypeLayout: any;
|
|
13
|
+
export interface ScheduleSettings {
|
|
14
|
+
cycle_duration: BN;
|
|
15
|
+
deposits_start: BN;
|
|
16
|
+
deposits_end: BN;
|
|
17
|
+
automation_start: BN;
|
|
18
|
+
automation_end: BN;
|
|
19
|
+
management_start: BN;
|
|
20
|
+
management_end: BN;
|
|
21
|
+
modification_delay: BN;
|
|
22
|
+
}
|
|
23
|
+
export declare const ScheduleSettingsLayout: any;
|
|
24
|
+
export interface FeeSettings {
|
|
25
|
+
host_deposit_fee_bps: number;
|
|
26
|
+
host_management_fee_bps: number;
|
|
27
|
+
host_performance_fee_bps: number;
|
|
28
|
+
creator_deposit_fee_bps: number;
|
|
29
|
+
creator_management_fee_bps: number;
|
|
30
|
+
creator_performance_fee_bps: number;
|
|
31
|
+
managers_deposit_fee_bps: number;
|
|
32
|
+
managers_management_fee_bps: number;
|
|
33
|
+
managers_performance_fee_bps: number;
|
|
34
|
+
basket_deposit_fee_bps: number;
|
|
35
|
+
basket_withdraw_fee_bps: number;
|
|
36
|
+
modification_delay: BN;
|
|
37
|
+
}
|
|
38
|
+
export declare const FeeSettingsLayout: any;
|
|
39
|
+
export interface ManagerSettings {
|
|
40
|
+
managers: PublicKey[];
|
|
41
|
+
managers_weight_bps: number[];
|
|
42
|
+
modification_delay: BN;
|
|
43
|
+
}
|
|
44
|
+
export declare const ManagerSettingsLayout: any;
|
|
45
|
+
export interface AutomationSettings {
|
|
46
|
+
allow_automation: number;
|
|
47
|
+
rebalance_slippage_bps: number;
|
|
48
|
+
rebalance_threshold_bps: number;
|
|
49
|
+
rebalance_interval_seconds: BN;
|
|
50
|
+
modification_delay: BN;
|
|
51
|
+
}
|
|
52
|
+
export declare const AutomationSettingsLayout: any;
|
|
53
|
+
export interface LpSettings {
|
|
54
|
+
lp_threshold_bps: number;
|
|
55
|
+
allow_lp: number;
|
|
56
|
+
modification_delay: BN;
|
|
57
|
+
}
|
|
58
|
+
export declare const LpSettingsLayout: any;
|
|
59
|
+
export interface MetadataSettings {
|
|
60
|
+
symbol_length: number;
|
|
61
|
+
symbol: number[];
|
|
62
|
+
name_length: number;
|
|
63
|
+
name: number[];
|
|
64
|
+
uri_length: number;
|
|
65
|
+
uri: number[];
|
|
66
|
+
modification_delay: BN;
|
|
67
|
+
}
|
|
68
|
+
export declare const MetadataSettingsLayout: any;
|
|
69
|
+
export interface BasketSettings {
|
|
70
|
+
creator: PublicKey;
|
|
71
|
+
host: PublicKey;
|
|
72
|
+
basket_type: BasketType;
|
|
73
|
+
start_price: Fraction;
|
|
74
|
+
active_rebalance: BN;
|
|
75
|
+
active_deposits: BN;
|
|
76
|
+
active_managements: BN;
|
|
77
|
+
schedule: ScheduleSettings;
|
|
78
|
+
schedule_authority_bitmask: number;
|
|
79
|
+
fee_settings: FeeSettings;
|
|
80
|
+
fee_settings_authority_bitmask: number;
|
|
81
|
+
manager_settings: ManagerSettings;
|
|
82
|
+
manager_settings_authority_bitmask: number;
|
|
83
|
+
automation_settings: AutomationSettings;
|
|
84
|
+
automation_settings_authority_bitmask: number;
|
|
85
|
+
lp_settings: LpSettings;
|
|
86
|
+
lp_settings_authority_bitmask: number;
|
|
87
|
+
metadata_settings: MetadataSettings;
|
|
88
|
+
metadata_settings_authority_bitmask: number;
|
|
89
|
+
add_token_delay: BN;
|
|
90
|
+
add_token_intent_authority_bitmask: number;
|
|
91
|
+
update_weights_delay: BN;
|
|
92
|
+
update_weights_intent_authority_bitmask: number;
|
|
93
|
+
make_direct_swap_delay: BN;
|
|
94
|
+
make_direct_swap_intent_authority_bitmask: number;
|
|
95
|
+
extra_data: BN[];
|
|
96
|
+
}
|
|
97
|
+
export declare const BasketSettingsLayout: any;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BasketSettingsLayout = exports.MetadataSettingsLayout = exports.LpSettingsLayout = exports.AutomationSettingsLayout = exports.ManagerSettingsLayout = exports.FeeSettingsLayout = exports.ScheduleSettingsLayout = exports.BasketTypeLayout = exports.BasketType = exports.MAX_URI_LENGTH = exports.MAX_NAME_LENGTH = exports.MAX_SYMBOL_LENGTH = exports.MAX_MANAGERS_PER_BASKET = void 0;
|
|
4
|
+
const borsh_1 = require("@coral-xyz/borsh");
|
|
5
|
+
const fraction_1 = require("./fraction");
|
|
6
|
+
exports.MAX_MANAGERS_PER_BASKET = 10;
|
|
7
|
+
exports.MAX_SYMBOL_LENGTH = 10;
|
|
8
|
+
exports.MAX_NAME_LENGTH = 32;
|
|
9
|
+
exports.MAX_URI_LENGTH = 200;
|
|
10
|
+
var BasketType;
|
|
11
|
+
(function (BasketType) {
|
|
12
|
+
BasketType[BasketType["Private"] = 0] = "Private";
|
|
13
|
+
BasketType[BasketType["Public"] = 1] = "Public";
|
|
14
|
+
})(BasketType || (exports.BasketType = BasketType = {}));
|
|
15
|
+
;
|
|
16
|
+
exports.BasketTypeLayout = (0, borsh_1.struct)([
|
|
17
|
+
(0, borsh_1.u8)('basket_type'),
|
|
18
|
+
]);
|
|
19
|
+
;
|
|
20
|
+
exports.ScheduleSettingsLayout = (0, borsh_1.struct)([
|
|
21
|
+
(0, borsh_1.u64)('cycle_duration'),
|
|
22
|
+
(0, borsh_1.u64)('deposits_start'),
|
|
23
|
+
(0, borsh_1.u64)('deposits_end'),
|
|
24
|
+
(0, borsh_1.u64)('automation_start'),
|
|
25
|
+
(0, borsh_1.u64)('automation_end'),
|
|
26
|
+
(0, borsh_1.u64)('management_start'),
|
|
27
|
+
(0, borsh_1.u64)('management_end'),
|
|
28
|
+
(0, borsh_1.u64)('modification_delay'),
|
|
29
|
+
]);
|
|
30
|
+
;
|
|
31
|
+
exports.FeeSettingsLayout = (0, borsh_1.struct)([
|
|
32
|
+
(0, borsh_1.u16)('host_deposit_fee_bps'),
|
|
33
|
+
(0, borsh_1.u16)('host_management_fee_bps'),
|
|
34
|
+
(0, borsh_1.u16)('host_performance_fee_bps'),
|
|
35
|
+
(0, borsh_1.u16)('creator_deposit_fee_bps'),
|
|
36
|
+
(0, borsh_1.u16)('creator_management_fee_bps'),
|
|
37
|
+
(0, borsh_1.u16)('creator_performance_fee_bps'),
|
|
38
|
+
(0, borsh_1.u16)('managers_deposit_fee_bps'),
|
|
39
|
+
(0, borsh_1.u16)('managers_management_fee_bps'),
|
|
40
|
+
(0, borsh_1.u16)('managers_performance_fee_bps'),
|
|
41
|
+
(0, borsh_1.u16)('basket_deposit_fee_bps'),
|
|
42
|
+
(0, borsh_1.u16)('basket_withdraw_fee_bps'),
|
|
43
|
+
(0, borsh_1.u64)('modification_delay'),
|
|
44
|
+
]);
|
|
45
|
+
exports.ManagerSettingsLayout = (0, borsh_1.struct)([
|
|
46
|
+
(0, borsh_1.array)((0, borsh_1.publicKey)(), exports.MAX_MANAGERS_PER_BASKET, 'managers'),
|
|
47
|
+
(0, borsh_1.array)((0, borsh_1.u16)(), exports.MAX_MANAGERS_PER_BASKET, 'managers_weight_bps'),
|
|
48
|
+
(0, borsh_1.u64)('modification_delay'),
|
|
49
|
+
]);
|
|
50
|
+
;
|
|
51
|
+
exports.AutomationSettingsLayout = (0, borsh_1.struct)([
|
|
52
|
+
(0, borsh_1.u8)('allow_automation'),
|
|
53
|
+
(0, borsh_1.u16)('rebalance_slippage_bps'),
|
|
54
|
+
(0, borsh_1.u16)('rebalance_threshold_bps'),
|
|
55
|
+
(0, borsh_1.u64)('rebalance_interval_seconds'),
|
|
56
|
+
(0, borsh_1.u64)('modification_delay'),
|
|
57
|
+
]);
|
|
58
|
+
;
|
|
59
|
+
exports.LpSettingsLayout = (0, borsh_1.struct)([
|
|
60
|
+
(0, borsh_1.u16)('lp_threshold_bps'),
|
|
61
|
+
(0, borsh_1.u8)('allow_lp'),
|
|
62
|
+
(0, borsh_1.u64)('modification_delay'),
|
|
63
|
+
]);
|
|
64
|
+
;
|
|
65
|
+
exports.MetadataSettingsLayout = (0, borsh_1.struct)([
|
|
66
|
+
(0, borsh_1.u8)('symbol_length'),
|
|
67
|
+
(0, borsh_1.array)((0, borsh_1.u8)(), exports.MAX_SYMBOL_LENGTH, 'symbol'),
|
|
68
|
+
(0, borsh_1.u8)('name_length'),
|
|
69
|
+
(0, borsh_1.array)((0, borsh_1.u8)(), exports.MAX_NAME_LENGTH, 'name'),
|
|
70
|
+
(0, borsh_1.u8)('uri_length'),
|
|
71
|
+
(0, borsh_1.array)((0, borsh_1.u8)(), exports.MAX_URI_LENGTH, 'uri'),
|
|
72
|
+
(0, borsh_1.u64)('modification_delay'),
|
|
73
|
+
]);
|
|
74
|
+
;
|
|
75
|
+
exports.BasketSettingsLayout = (0, borsh_1.struct)([
|
|
76
|
+
(0, borsh_1.publicKey)('creator'),
|
|
77
|
+
(0, borsh_1.publicKey)('host'),
|
|
78
|
+
exports.BasketTypeLayout.replicate('basket_type'),
|
|
79
|
+
fraction_1.FractionLayout.replicate('start_price'),
|
|
80
|
+
(0, borsh_1.u64)('active_rebalance'),
|
|
81
|
+
(0, borsh_1.u64)('active_deposits'),
|
|
82
|
+
(0, borsh_1.u64)('active_managements'),
|
|
83
|
+
exports.ScheduleSettingsLayout.replicate('schedule'),
|
|
84
|
+
(0, borsh_1.u16)('schedule_authority_bitmask'),
|
|
85
|
+
exports.FeeSettingsLayout.replicate('fee_settings'),
|
|
86
|
+
(0, borsh_1.u16)('fee_settings_authority_bitmask'),
|
|
87
|
+
exports.ManagerSettingsLayout.replicate('manager_settings'),
|
|
88
|
+
(0, borsh_1.u16)('manager_settings_authority_bitmask'),
|
|
89
|
+
exports.AutomationSettingsLayout.replicate('automation_settings'),
|
|
90
|
+
(0, borsh_1.u16)('automation_settings_authority_bitmask'),
|
|
91
|
+
exports.LpSettingsLayout.replicate('lp_settings'),
|
|
92
|
+
(0, borsh_1.u16)('lp_settings_authority_bitmask'),
|
|
93
|
+
exports.MetadataSettingsLayout.replicate('metadata_settings'),
|
|
94
|
+
(0, borsh_1.u16)('metadata_settings_authority_bitmask'),
|
|
95
|
+
(0, borsh_1.u64)('add_token_delay'),
|
|
96
|
+
(0, borsh_1.u16)('add_token_intent_authority_bitmask'),
|
|
97
|
+
(0, borsh_1.u64)('update_weights_delay'),
|
|
98
|
+
(0, borsh_1.u16)('update_weights_intent_authority_bitmask'),
|
|
99
|
+
(0, borsh_1.u64)('make_direct_swap_delay'),
|
|
100
|
+
(0, borsh_1.u16)('make_direct_swap_intent_authority_bitmask'),
|
|
101
|
+
(0, borsh_1.array)((0, borsh_1.u64)(), 32, 'extra_data'),
|
|
102
|
+
]);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FractionLayout = void 0;
|
|
4
|
+
const borsh_1 = require("@coral-xyz/borsh");
|
|
5
|
+
;
|
|
6
|
+
exports.FractionLayout = (0, borsh_1.struct)([
|
|
7
|
+
(0, borsh_1.u64)('numerator'),
|
|
8
|
+
(0, borsh_1.u64)('exponent'),
|
|
9
|
+
]);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BN } from "@coral-xyz/anchor";
|
|
2
|
+
import { Fraction } from "./fraction";
|
|
3
|
+
export declare const MAX_ORACLES_PER_TOKEN = 4;
|
|
4
|
+
export declare const MAX_ACCOUNTS_PER_ORACLE = 4;
|
|
5
|
+
export interface OracleSettings {
|
|
6
|
+
oracle_type: number;
|
|
7
|
+
num_required_accounts: number;
|
|
8
|
+
weight: number;
|
|
9
|
+
is_required: number;
|
|
10
|
+
conf_thresh_bps: number;
|
|
11
|
+
staleness_thresh: BN;
|
|
12
|
+
volatility_thresh_bps: number;
|
|
13
|
+
min_liquidity: BN;
|
|
14
|
+
staleness_conf_rate_bps: number;
|
|
15
|
+
token_decimals: number;
|
|
16
|
+
twap_seconds_ago: BN;
|
|
17
|
+
twap_secondary_seconds_ago: BN;
|
|
18
|
+
quote: number;
|
|
19
|
+
side: number;
|
|
20
|
+
}
|
|
21
|
+
export declare const OracleSettingsLayout: any;
|
|
22
|
+
export interface OracleData {
|
|
23
|
+
oracle_settings: OracleSettings;
|
|
24
|
+
accounts_to_load_lut_ids: number[];
|
|
25
|
+
accounts_to_load_lut_indices: number[];
|
|
26
|
+
}
|
|
27
|
+
export declare const OracleDataLayout: any;
|
|
28
|
+
export interface OracleAggregator {
|
|
29
|
+
num_oracles: number;
|
|
30
|
+
oracles: OracleData[];
|
|
31
|
+
min_conf_bps: number;
|
|
32
|
+
conf_thresh_bps: number;
|
|
33
|
+
min_oracles_thresh: number;
|
|
34
|
+
conf_multiplier: Fraction;
|
|
35
|
+
}
|
|
36
|
+
export declare const OracleAggregatorLayout: any;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OracleAggregatorLayout = exports.OracleDataLayout = exports.OracleSettingsLayout = exports.MAX_ACCOUNTS_PER_ORACLE = exports.MAX_ORACLES_PER_TOKEN = void 0;
|
|
4
|
+
const borsh_1 = require("@coral-xyz/borsh");
|
|
5
|
+
const fraction_1 = require("./fraction");
|
|
6
|
+
exports.MAX_ORACLES_PER_TOKEN = 4;
|
|
7
|
+
exports.MAX_ACCOUNTS_PER_ORACLE = 4;
|
|
8
|
+
exports.OracleSettingsLayout = (0, borsh_1.struct)([
|
|
9
|
+
(0, borsh_1.u8)('oracle_type'),
|
|
10
|
+
(0, borsh_1.u8)('num_required_accounts'),
|
|
11
|
+
(0, borsh_1.u16)('weight'),
|
|
12
|
+
(0, borsh_1.u8)('is_required'),
|
|
13
|
+
(0, borsh_1.u16)('conf_thresh_bps'),
|
|
14
|
+
(0, borsh_1.u64)('staleness_thresh'),
|
|
15
|
+
(0, borsh_1.u16)('volatility_thresh_bps'),
|
|
16
|
+
(0, borsh_1.u64)('min_liquidity'),
|
|
17
|
+
(0, borsh_1.u16)('staleness_conf_rate_bps'),
|
|
18
|
+
(0, borsh_1.u8)('token_decimals'),
|
|
19
|
+
(0, borsh_1.u64)('twap_seconds_ago'),
|
|
20
|
+
(0, borsh_1.u64)('twap_secondary_seconds_ago'),
|
|
21
|
+
(0, borsh_1.u8)('quote'),
|
|
22
|
+
(0, borsh_1.u8)('side')
|
|
23
|
+
]);
|
|
24
|
+
;
|
|
25
|
+
exports.OracleDataLayout = (0, borsh_1.struct)([
|
|
26
|
+
exports.OracleSettingsLayout.replicate('oracle_settings'),
|
|
27
|
+
(0, borsh_1.array)((0, borsh_1.u8)(), exports.MAX_ACCOUNTS_PER_ORACLE, 'accounts_to_load_lut_ids'),
|
|
28
|
+
(0, borsh_1.array)((0, borsh_1.u8)(), exports.MAX_ACCOUNTS_PER_ORACLE, 'accounts_to_load_lut_indices'),
|
|
29
|
+
]);
|
|
30
|
+
exports.OracleAggregatorLayout = (0, borsh_1.struct)([
|
|
31
|
+
(0, borsh_1.u8)('num_oracles'),
|
|
32
|
+
(0, borsh_1.array)(exports.OracleDataLayout, exports.MAX_ORACLES_PER_TOKEN, 'oracles'),
|
|
33
|
+
(0, borsh_1.u16)('min_conf_bps'),
|
|
34
|
+
(0, borsh_1.u16)('conf_thresh_bps'),
|
|
35
|
+
(0, borsh_1.u8)('min_oracles_thresh'),
|
|
36
|
+
fraction_1.FractionLayout.replicate('conf_multiplier')
|
|
37
|
+
]);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PublicKey } from '@solana/web3.js';
|
|
2
|
+
export declare const BASKETS_V3_PROGRAM_ID: PublicKey;
|
|
3
|
+
export declare const METADATA_PROGRAM_ID: PublicKey;
|
|
4
|
+
export declare const ADDRESS_LOOKUP_TABLE_PROGRAM_ID: PublicKey;
|
|
5
|
+
export declare const RENT_SYSVAR_ID: PublicKey;
|
|
6
|
+
export declare const WSOL_MINT: PublicKey;
|
|
7
|
+
export declare const USDC_MINT: PublicKey;
|
|
8
|
+
export declare const PYTH_SOL_ACCOUNT: PublicKey;
|
|
9
|
+
export declare const PYTH_USDC_ACCOUNT: PublicKey;
|
|
10
|
+
export declare const BOUNTY_MINT: PublicKey;
|
|
11
|
+
export declare const INTENT_TASK_DATA_SIZE = 600;
|
|
12
|
+
export declare const MAX_MANAGERS_PER_BASKET = 10;
|
|
13
|
+
export declare const MAX_SUPPORTED_TOKENS_PER_BASKET: number;
|
|
14
|
+
export declare const MAX_ORACLES_PER_TOKEN: number;
|
|
15
|
+
export declare const MAX_EXTRA_DATA_PER_ORACLE: number;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAX_EXTRA_DATA_PER_ORACLE = exports.MAX_ORACLES_PER_TOKEN = exports.MAX_SUPPORTED_TOKENS_PER_BASKET = exports.MAX_MANAGERS_PER_BASKET = exports.INTENT_TASK_DATA_SIZE = exports.BOUNTY_MINT = exports.PYTH_USDC_ACCOUNT = exports.PYTH_SOL_ACCOUNT = exports.USDC_MINT = exports.WSOL_MINT = exports.RENT_SYSVAR_ID = exports.ADDRESS_LOOKUP_TABLE_PROGRAM_ID = exports.METADATA_PROGRAM_ID = exports.BASKETS_V3_PROGRAM_ID = void 0;
|
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
exports.BASKETS_V3_PROGRAM_ID = new web3_js_1.PublicKey("BASKT7aKd8n7ibpUbwLP3Wiyxyi3yoiXsxBk4Hpumate");
|
|
6
|
+
exports.METADATA_PROGRAM_ID = new web3_js_1.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
|
|
7
|
+
exports.ADDRESS_LOOKUP_TABLE_PROGRAM_ID = new web3_js_1.PublicKey("AddressLookupTab1e1111111111111111111111111");
|
|
8
|
+
exports.RENT_SYSVAR_ID = new web3_js_1.PublicKey("SysvarRent111111111111111111111111111111111");
|
|
9
|
+
exports.WSOL_MINT = new web3_js_1.PublicKey("So11111111111111111111111111111111111111112");
|
|
10
|
+
// export const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
|
|
11
|
+
exports.USDC_MINT = new web3_js_1.PublicKey("USDCoctVLVnvTXBEuP9s8hntucdJokbo17RwHuNXemT");
|
|
12
|
+
exports.PYTH_SOL_ACCOUNT = new web3_js_1.PublicKey("7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE");
|
|
13
|
+
exports.PYTH_USDC_ACCOUNT = new web3_js_1.PublicKey("Dpw1EAVrSB1ibxiDQyTAW6Zip3J4Btk2x4SgApQCeFbX");
|
|
14
|
+
exports.BOUNTY_MINT = new web3_js_1.PublicKey("49hY35FvJ8KimFrkGL1X89GSve1C1ZVoLPeQBUHXCouy");
|
|
15
|
+
exports.INTENT_TASK_DATA_SIZE = 600;
|
|
16
|
+
exports.MAX_MANAGERS_PER_BASKET = 10;
|
|
17
|
+
exports.MAX_SUPPORTED_TOKENS_PER_BASKET = 100;
|
|
18
|
+
exports.MAX_ORACLES_PER_TOKEN = 4;
|
|
19
|
+
exports.MAX_EXTRA_DATA_PER_ORACLE = 4;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BasketsProgram } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Program IDL in camelCase format in order to be used in JS/TS.
|
|
4
|
+
*
|
|
5
|
+
* Note that this is only a type helper and is not the actual IDL. The original
|
|
6
|
+
* IDL can be found at `target/idl/baskets_v3.json`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const IDL: BasketsProgram;
|