flash-sdk 1.0.128 → 1.0.129
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/PerpetualsClient.d.ts +3 -1
- package/dist/PerpetualsClient.js +148 -51
- package/dist/PoolConfig.d.ts +3 -1
- package/dist/PoolConfig.js +4 -3
- package/dist/PoolConfig.json +15 -708
- package/dist/backupOracle.d.ts +7 -0
- package/dist/backupOracle.js +89 -0
- package/dist/idl/perp_composability.d.ts +20 -0
- package/dist/idl/perp_composability.js +20 -0
- package/dist/idl/perpetuals.d.ts +181 -0
- package/dist/idl/perpetuals.js +183 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +1 -0
- package/package.json +4 -2
@@ -25,6 +25,7 @@ export declare class PerpetualsClient {
|
|
25
25
|
admin: PublicKey;
|
26
26
|
programId: PublicKey;
|
27
27
|
composabilityProgramId: PublicKey;
|
28
|
+
poolConfig: PoolConfig;
|
28
29
|
multisig: {
|
29
30
|
publicKey: PublicKey;
|
30
31
|
bump: number;
|
@@ -45,7 +46,7 @@ export declare class PerpetualsClient {
|
|
45
46
|
private postSendTxCallback?;
|
46
47
|
private prioritizationFee;
|
47
48
|
private txConfirmationCommitment;
|
48
|
-
constructor(provider: AnchorProvider,
|
49
|
+
constructor(provider: AnchorProvider, poolConfig: PoolConfig, composabilityProgramId: PublicKey, opts: PerpClientOptions);
|
49
50
|
setPrioritizationFee: (fee: number) => void;
|
50
51
|
loadAddressLookupTable: (poolConfig: PoolConfig) => Promise<void>;
|
51
52
|
findProgramAddress: (label: string, extraSeeds?: any) => {
|
@@ -2177,6 +2178,7 @@ export declare class PerpetualsClient {
|
|
2177
2178
|
addCustody: (poolName: string, tokenMint: PublicKey, isStable: boolean, isVirtual: boolean, oracle: OracleParams, pricing: PricingParams, permissions: Permissions, fees: Fees, borrowRate: BorrowRateParams, ratios: TokenRatios[]) => Promise<void>;
|
2178
2179
|
editCustody: (poolName: string, tokenMint: PublicKey, isStable: boolean, oracle: OracleParams, pricing: PricingParams, permissions: Permissions, fees: Fees, borrowRate: BorrowRateParams, ratios: TokenRatios[]) => Promise<void>;
|
2179
2180
|
removeCustody: (poolName: string, tokenMint: PublicKey, ratios: TokenRatios[]) => Promise<void>;
|
2181
|
+
getPythnetOraclePrices: (poolConfig: PoolConfig, backupOracleSecretKey: string) => Promise<TransactionInstruction>;
|
2180
2182
|
getLiquidationState: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, collateralMint: PublicKey, side: PositionSide) => Promise<any>;
|
2181
2183
|
validateCollectivePnl: (marketSymbol: string, collateralSymbol: string, poolConfig: PoolConfig, poolName: string, side: Side) => Promise<void>;
|
2182
2184
|
liquidate: (wallet: PublicKey, poolName: string, tokenMint: PublicKey, collateralMint: PublicKey, side: PositionSide, receivingAccount: PublicKey, rewardsReceivingAccount: PublicKey) => Promise<string>;
|
package/dist/PerpetualsClient.js
CHANGED
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
|
|
10
10
|
};
|
11
11
|
return __assign.apply(this, arguments);
|
12
12
|
};
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
14
|
+
if (k2 === undefined) k2 = k;
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
18
|
+
}
|
19
|
+
Object.defineProperty(o, k2, desc);
|
20
|
+
}) : (function(o, m, k, k2) {
|
21
|
+
if (k2 === undefined) k2 = k;
|
22
|
+
o[k2] = m[k];
|
23
|
+
}));
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
26
|
+
}) : function(o, v) {
|
27
|
+
o["default"] = v;
|
28
|
+
});
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
30
|
+
if (mod && mod.__esModule) return mod;
|
31
|
+
var result = {};
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
33
|
+
__setModuleDefault(result, mod);
|
34
|
+
return result;
|
35
|
+
};
|
13
36
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
14
37
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
15
38
|
return new (P || (P = Promise))(function (resolve, reject) {
|
@@ -74,8 +97,11 @@ var rpc_1 = require("./utils/rpc");
|
|
74
97
|
var utils_1 = require("./utils");
|
75
98
|
var constants_1 = require("./constants");
|
76
99
|
var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
100
|
+
var backupOracle_1 = require("./backupOracle");
|
101
|
+
var bytes_1 = require("@coral-xyz/anchor/dist/cjs/utils/bytes");
|
102
|
+
var nacl = __importStar(require("tweetnacl"));
|
77
103
|
var PerpetualsClient = (function () {
|
78
|
-
function PerpetualsClient(provider,
|
104
|
+
function PerpetualsClient(provider, poolConfig, composabilityProgramId, opts) {
|
79
105
|
var _this = this;
|
80
106
|
var _a;
|
81
107
|
this.addressLookupTables = [];
|
@@ -569,6 +595,44 @@ var PerpetualsClient = (function () {
|
|
569
595
|
}
|
570
596
|
});
|
571
597
|
}); };
|
598
|
+
this.getPythnetOraclePrices = function (poolConfig, backupOracleSecretKey) { return __awaiter(_this, void 0, void 0, function () {
|
599
|
+
var pythPriceIds, currentPrices, backupOracleAccount, caches_1, permissionlessPythCache, message, signature, preInstruction;
|
600
|
+
return __generator(this, function (_a) {
|
601
|
+
switch (_a.label) {
|
602
|
+
case 0:
|
603
|
+
pythPriceIds = poolConfig.custodies.map(function (f) { return f.pythPriceId; });
|
604
|
+
return [4, backupOracle_1.pythPriceServiceConnection.getLatestPriceFeeds(pythPriceIds)];
|
605
|
+
case 1:
|
606
|
+
currentPrices = _a.sent();
|
607
|
+
backupOracleAccount = web3_js_1.Keypair.fromSecretKey(bytes_1.bs58.decode(backupOracleSecretKey));
|
608
|
+
if (pythPriceIds.length === currentPrices.length) {
|
609
|
+
caches_1 = currentPrices.map(function (price) {
|
610
|
+
var uncheckedPrice = price.getPriceUnchecked();
|
611
|
+
var uncheckedEmaPrice = price.getEmaPriceUnchecked();
|
612
|
+
return {
|
613
|
+
price: new anchor_1.BN(uncheckedPrice.price),
|
614
|
+
expo: uncheckedPrice.expo,
|
615
|
+
conf: new anchor_1.BN(uncheckedPrice.conf),
|
616
|
+
ema: new anchor_1.BN(uncheckedEmaPrice.price),
|
617
|
+
publishTime: new anchor_1.BN(uncheckedPrice.publishTime)
|
618
|
+
};
|
619
|
+
});
|
620
|
+
permissionlessPythCache = {
|
621
|
+
backupCache: caches_1
|
622
|
+
};
|
623
|
+
message = this.program._coder.types.encode('PermissionlessPythCache', permissionlessPythCache);
|
624
|
+
signature = nacl.sign.detached(message, backupOracleAccount.secretKey);
|
625
|
+
preInstruction = web3_js_1.Ed25519Program.createInstructionWithPublicKey({
|
626
|
+
publicKey: backupOracleAccount.publicKey.toBytes(),
|
627
|
+
message: message,
|
628
|
+
signature: signature,
|
629
|
+
});
|
630
|
+
return [2, preInstruction];
|
631
|
+
}
|
632
|
+
return [2];
|
633
|
+
}
|
634
|
+
});
|
635
|
+
}); };
|
572
636
|
this.getLiquidationState = function (wallet, poolName, tokenMint, collateralMint, side) { return __awaiter(_this, void 0, void 0, function () {
|
573
637
|
var _a, _b;
|
574
638
|
var _c;
|
@@ -587,11 +651,12 @@ var PerpetualsClient = (function () {
|
|
587
651
|
return [4, this.getCustodyOracleAccountKey(poolName, tokenMint)];
|
588
652
|
case 1:
|
589
653
|
_c.custodyOracleAccount = _d.sent(),
|
590
|
-
_c.custodyCustomOracleAccount =
|
654
|
+
_c.custodyCustomOracleAccount = this.poolConfig.backupOracle,
|
591
655
|
_c.collateralCustody = this.getCustodyKey(poolName, collateralMint),
|
592
|
-
_c.collateralCustodyCustomOracleAccount =
|
656
|
+
_c.collateralCustodyCustomOracleAccount = this.poolConfig.backupOracle;
|
593
657
|
return [4, this.getCustodyOracleAccountKey(poolName, collateralMint)];
|
594
658
|
case 2: return [4, _b.apply(_a, [(_c.collateralCustodyOracleAccount = _d.sent(),
|
659
|
+
_c.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
595
660
|
_c)])
|
596
661
|
.view()
|
597
662
|
.catch(function (err) {
|
@@ -616,10 +681,11 @@ var PerpetualsClient = (function () {
|
|
616
681
|
pool: this.getPoolKey(poolName),
|
617
682
|
custody: marketCustodyConfig.custodyAccount,
|
618
683
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
619
|
-
custodyCustomOracleAccount:
|
684
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
620
685
|
collateralCustody: collateralCustodyConfig.custodyAccount,
|
621
686
|
collateralCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
622
|
-
collateralCustodyCustomOracleAccount:
|
687
|
+
collateralCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
688
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
623
689
|
})
|
624
690
|
.remainingAccounts([])
|
625
691
|
.rpc()
|
@@ -659,11 +725,12 @@ var PerpetualsClient = (function () {
|
|
659
725
|
return [4, this.getCustodyOracleAccountKey(poolName, collateralMint)];
|
660
726
|
case 2: return [4, _b.apply(_a, [(_c.collateralCustodyOracleAccount = _d.sent(),
|
661
727
|
_c.collateralCustodyTokenAccount = this.getCustodyTokenAccountKey(poolName, collateralMint),
|
662
|
-
_c.collateralCustodyCustomOracleAccount =
|
663
|
-
_c.custodyCustomOracleAccount =
|
728
|
+
_c.collateralCustodyCustomOracleAccount = this.poolConfig.backupOracle,
|
729
|
+
_c.custodyCustomOracleAccount = this.poolConfig.backupOracle,
|
664
730
|
_c.eventAuthority = this.eventAuthority.publicKey,
|
665
731
|
_c.tokenProgram = spl_token_1.TOKEN_PROGRAM_ID,
|
666
732
|
_c.program = this.program.programId,
|
733
|
+
_c.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
667
734
|
_c)])
|
668
735
|
.rpc()
|
669
736
|
.catch(function (err) {
|
@@ -692,6 +759,7 @@ var PerpetualsClient = (function () {
|
|
692
759
|
};
|
693
760
|
return [4, this.getCustodyOracleAccountKey(poolName, tokenMint)];
|
694
761
|
case 1: return [4, _b.apply(_a, [(_c.custodyOracleAccount = _d.sent(),
|
762
|
+
_c.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
695
763
|
_c)])
|
696
764
|
.view()
|
697
765
|
.catch(function (err) {
|
@@ -722,6 +790,7 @@ var PerpetualsClient = (function () {
|
|
722
790
|
case 1:
|
723
791
|
_d = (_a = _c.apply(_b, [(_e.custodyOracleAccount = _f.sent(),
|
724
792
|
_e.lpTokenMint = this.getPoolLpTokenKey(poolName),
|
793
|
+
_e.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
725
794
|
_e)]))
|
726
795
|
.remainingAccounts;
|
727
796
|
return [4, this.getCustodyMetas(poolName)];
|
@@ -755,6 +824,7 @@ var PerpetualsClient = (function () {
|
|
755
824
|
case 1:
|
756
825
|
_d = (_a = _c.apply(_b, [(_e.custodyOracleAccount = _f.sent(),
|
757
826
|
_e.lpTokenMint = this.getPoolLpTokenKey(poolName),
|
827
|
+
_e.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
758
828
|
_e)]))
|
759
829
|
.remainingAccounts;
|
760
830
|
return [4, this.getCustodyMetas(poolName)];
|
@@ -788,6 +858,7 @@ var PerpetualsClient = (function () {
|
|
788
858
|
};
|
789
859
|
return [4, this.getCustodyOracleAccountKey(poolName, tokenMint)];
|
790
860
|
case 1: return [4, _b.apply(_a, [(_c.custodyOracleAccount = _d.sent(),
|
861
|
+
_c.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
791
862
|
_c)])
|
792
863
|
.view()
|
793
864
|
.catch(function (err) {
|
@@ -815,6 +886,7 @@ var PerpetualsClient = (function () {
|
|
815
886
|
};
|
816
887
|
return [4, this.getCustodyOracleAccountKey(poolName, tokenMint)];
|
817
888
|
case 1: return [4, _b.apply(_a, [(_c.custodyOracleAccount = _d.sent(),
|
889
|
+
_c.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
818
890
|
_c)])
|
819
891
|
.view()
|
820
892
|
.catch(function (err) {
|
@@ -848,6 +920,7 @@ var PerpetualsClient = (function () {
|
|
848
920
|
};
|
849
921
|
return [4, this.getCustodyOracleAccountKey(poolName, tokenMint)];
|
850
922
|
case 1: return [4, _b.apply(_a, [(_c.custodyOracleAccount = _d.sent(),
|
923
|
+
_c.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
851
924
|
_c)])
|
852
925
|
.view()
|
853
926
|
.catch(function (err) {
|
@@ -877,6 +950,7 @@ var PerpetualsClient = (function () {
|
|
877
950
|
};
|
878
951
|
return [4, this.getCustodyOracleAccountKey(poolName, tokenMint)];
|
879
952
|
case 1: return [4, _b.apply(_a, [(_c.custodyOracleAccount = _d.sent(),
|
953
|
+
_c.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
880
954
|
_c)])
|
881
955
|
.view()
|
882
956
|
.catch(function (err) {
|
@@ -909,6 +983,7 @@ var PerpetualsClient = (function () {
|
|
909
983
|
_c.dispensingCustody = this.getCustodyKey(poolName, tokenMintOut);
|
910
984
|
return [4, this.getCustodyOracleAccountKey(poolName, tokenMintOut)];
|
911
985
|
case 2: return [4, _b.apply(_a, [(_c.dispensingCustodyOracleAccount = _d.sent(),
|
986
|
+
_c.ixSysvar = web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
912
987
|
_c)])
|
913
988
|
.view()
|
914
989
|
.catch(function (err) {
|
@@ -929,6 +1004,7 @@ var PerpetualsClient = (function () {
|
|
929
1004
|
.accounts({
|
930
1005
|
perpetuals: this.perpetuals.publicKey,
|
931
1006
|
pool: this.getPoolKey(poolName),
|
1007
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
932
1008
|
}))
|
933
1009
|
.remainingAccounts;
|
934
1010
|
return [4, this.getCustodyMetas(poolName)];
|
@@ -1792,15 +1868,16 @@ var PerpetualsClient = (function () {
|
|
1792
1868
|
position: positionAccount,
|
1793
1869
|
custody: marketCustodyConfig.custodyAccount,
|
1794
1870
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
1795
|
-
custodyCustomOracleAccount:
|
1871
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
1796
1872
|
collateralCustody: collateralCustodyConfig.custodyAccount,
|
1797
1873
|
collateralCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
1798
|
-
collateralCustodyCustomOracleAccount:
|
1874
|
+
collateralCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
1799
1875
|
collateralCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
|
1800
1876
|
eventAuthority: this.eventAuthority.publicKey,
|
1801
1877
|
systemProgram: web3_js_1.SystemProgram.programId,
|
1802
1878
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
1803
1879
|
program: this.programId,
|
1880
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
1804
1881
|
}).instruction()];
|
1805
1882
|
case 8:
|
1806
1883
|
instruction = _c.sent();
|
@@ -1907,7 +1984,7 @@ var PerpetualsClient = (function () {
|
|
1907
1984
|
isWritable: false,
|
1908
1985
|
});
|
1909
1986
|
custodyCustomOracles.push({
|
1910
|
-
pubkey:
|
1987
|
+
pubkey: this.poolConfig.backupOracle,
|
1911
1988
|
isSigner: false,
|
1912
1989
|
isWritable: false,
|
1913
1990
|
});
|
@@ -1917,7 +1994,8 @@ var PerpetualsClient = (function () {
|
|
1917
1994
|
.accounts({
|
1918
1995
|
payer: publicKey,
|
1919
1996
|
perpetuals: poolConfig.perpetuals,
|
1920
|
-
pool: poolConfig.poolAddress
|
1997
|
+
pool: poolConfig.poolAddress,
|
1998
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
1921
1999
|
})
|
1922
2000
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), custodyCustomOracles, true))
|
1923
2001
|
.instruction()];
|
@@ -1942,20 +2020,21 @@ var PerpetualsClient = (function () {
|
|
1942
2020
|
pool: poolConfig.poolAddress,
|
1943
2021
|
receivingCustody: inputCustodyConfig.custodyAccount,
|
1944
2022
|
receivingCustodyOracleAccount: inputCustodyConfig.oracleAddress,
|
1945
|
-
receivingCustodyCustomOracleAccount:
|
2023
|
+
receivingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
1946
2024
|
receivingCustodyTokenAccount: inputCustodyConfig.tokenAccount,
|
1947
2025
|
dispensingCustody: collateralCustodyConfig.custodyAccount,
|
1948
2026
|
dispensingCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
1949
|
-
dispensingCustodyCustomOracleAccount:
|
2027
|
+
dispensingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
1950
2028
|
dispensingCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
|
1951
2029
|
position: positionAccount,
|
1952
2030
|
custody: marketCustodyConfig.custodyAccount,
|
1953
2031
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
1954
|
-
custodyCustomOracleAccount:
|
2032
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
1955
2033
|
eventAuthority: this.eventAuthority.publicKey,
|
1956
2034
|
systemProgram: web3_js_1.SystemProgram.programId,
|
1957
2035
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
1958
2036
|
perpProgram: this.programId,
|
2037
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
1959
2038
|
})
|
1960
2039
|
.instruction()];
|
1961
2040
|
case 9:
|
@@ -2045,14 +2124,15 @@ var PerpetualsClient = (function () {
|
|
2045
2124
|
position: positionAccount,
|
2046
2125
|
custody: marketCustodyConfig.custodyAccount,
|
2047
2126
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
2048
|
-
custodyCustomOracleAccount:
|
2127
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2049
2128
|
collateralCustody: collateralCustodyConfig.custodyAccount,
|
2050
2129
|
collateralCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
2051
|
-
collateralCustodyCustomOracleAccount:
|
2130
|
+
collateralCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2052
2131
|
collateralCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
|
2053
2132
|
eventAuthority: this.eventAuthority.publicKey,
|
2054
2133
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
2055
2134
|
program: this.programId,
|
2135
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
2056
2136
|
}).instruction()];
|
2057
2137
|
case 8:
|
2058
2138
|
instruction = _b.sent();
|
@@ -2150,7 +2230,7 @@ var PerpetualsClient = (function () {
|
|
2150
2230
|
isWritable: false,
|
2151
2231
|
});
|
2152
2232
|
custodyCustomOracles.push({
|
2153
|
-
pubkey:
|
2233
|
+
pubkey: this.poolConfig.backupOracle,
|
2154
2234
|
isSigner: false,
|
2155
2235
|
isWritable: false,
|
2156
2236
|
});
|
@@ -2160,7 +2240,8 @@ var PerpetualsClient = (function () {
|
|
2160
2240
|
.accounts({
|
2161
2241
|
payer: publicKey,
|
2162
2242
|
perpetuals: poolConfig.perpetuals,
|
2163
|
-
pool: poolConfig.poolAddress
|
2243
|
+
pool: poolConfig.poolAddress,
|
2244
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
2164
2245
|
})
|
2165
2246
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), custodyCustomOracles, true))
|
2166
2247
|
.instruction()];
|
@@ -2182,19 +2263,20 @@ var PerpetualsClient = (function () {
|
|
2182
2263
|
pool: poolConfig.poolAddress,
|
2183
2264
|
receivingCustody: collateralCustodyConfig.custodyAccount,
|
2184
2265
|
receivingCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
2185
|
-
receivingCustodyCustomOracleAccount:
|
2266
|
+
receivingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2186
2267
|
receivingCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
|
2187
2268
|
dispensingCustody: outputCustodyConfig.custodyAccount,
|
2188
2269
|
dispensingCustodyOracleAccount: outputCustodyConfig.oracleAddress,
|
2189
|
-
dispensingCustodyCustomOracleAccount:
|
2270
|
+
dispensingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2190
2271
|
dispensingCustodyTokenAccount: outputCustodyConfig.tokenAccount,
|
2191
2272
|
position: positionAccount,
|
2192
2273
|
custody: marketCustodyConfig.custodyAccount,
|
2193
2274
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
2194
|
-
custodyCustomOracleAccount:
|
2275
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2195
2276
|
eventAuthority: this.eventAuthority.publicKey,
|
2196
2277
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
2197
2278
|
perpProgram: this.programId,
|
2279
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
2198
2280
|
})
|
2199
2281
|
.instruction()];
|
2200
2282
|
case 8:
|
@@ -2368,7 +2450,7 @@ var PerpetualsClient = (function () {
|
|
2368
2450
|
isWritable: false,
|
2369
2451
|
});
|
2370
2452
|
custodyCustomOracles.push({
|
2371
|
-
pubkey:
|
2453
|
+
pubkey: this.poolConfig.backupOracle,
|
2372
2454
|
isSigner: false,
|
2373
2455
|
isWritable: false,
|
2374
2456
|
});
|
@@ -2378,7 +2460,8 @@ var PerpetualsClient = (function () {
|
|
2378
2460
|
.accounts({
|
2379
2461
|
payer: publicKey,
|
2380
2462
|
perpetuals: poolConfig.perpetuals,
|
2381
|
-
pool: poolConfig.poolAddress
|
2463
|
+
pool: poolConfig.poolAddress,
|
2464
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
2382
2465
|
})
|
2383
2466
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), custodyCustomOracles, true))
|
2384
2467
|
.instruction()];
|
@@ -2401,15 +2484,16 @@ var PerpetualsClient = (function () {
|
|
2401
2484
|
pool: poolConfig.poolAddress,
|
2402
2485
|
receivingCustody: userInputCustodyConfig.custodyAccount,
|
2403
2486
|
receivingCustodyOracleAccount: userInputCustodyConfig.oracleAddress,
|
2404
|
-
receivingCustodyCustomOracleAccount:
|
2487
|
+
receivingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2405
2488
|
receivingCustodyTokenAccount: userInputCustodyConfig.tokenAccount,
|
2406
2489
|
dispensingCustody: userOutputCustodyConfig.custodyAccount,
|
2407
2490
|
dispensingCustodyOracleAccount: userOutputCustodyConfig.oracleAddress,
|
2408
|
-
dispensingCustodyCustomOracleAccount:
|
2491
|
+
dispensingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2409
2492
|
dispensingCustodyTokenAccount: userOutputCustodyConfig.tokenAccount,
|
2410
2493
|
eventAuthority: this.eventAuthority.publicKey,
|
2411
2494
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
2412
2495
|
program: this.programId,
|
2496
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
2413
2497
|
})
|
2414
2498
|
.instruction()];
|
2415
2499
|
case 21:
|
@@ -2511,14 +2595,15 @@ var PerpetualsClient = (function () {
|
|
2511
2595
|
pool: poolConfig.poolAddress,
|
2512
2596
|
custody: marketCustodyConfig.custodyAccount,
|
2513
2597
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
2514
|
-
custodyCustomOracleAccount:
|
2598
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2515
2599
|
collateralCustody: collateralCustodyConfig.custodyAccount,
|
2516
2600
|
collateralCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
2517
|
-
collateralCustodyCustomOracleAccount:
|
2601
|
+
collateralCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2518
2602
|
collateralCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
|
2519
2603
|
eventAuthority: this.eventAuthority.publicKey,
|
2520
2604
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
2521
2605
|
program: this.programId,
|
2606
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
2522
2607
|
})
|
2523
2608
|
.instruction()];
|
2524
2609
|
case 8:
|
@@ -2623,7 +2708,7 @@ var PerpetualsClient = (function () {
|
|
2623
2708
|
isWritable: false,
|
2624
2709
|
});
|
2625
2710
|
custodyCustomOracles.push({
|
2626
|
-
pubkey:
|
2711
|
+
pubkey: this.poolConfig.backupOracle,
|
2627
2712
|
isSigner: false,
|
2628
2713
|
isWritable: false,
|
2629
2714
|
});
|
@@ -2633,7 +2718,8 @@ var PerpetualsClient = (function () {
|
|
2633
2718
|
.accounts({
|
2634
2719
|
payer: publicKey,
|
2635
2720
|
perpetuals: poolConfig.perpetuals,
|
2636
|
-
pool: poolConfig.poolAddress
|
2721
|
+
pool: poolConfig.poolAddress,
|
2722
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
2637
2723
|
})
|
2638
2724
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), custodyCustomOracles, true))
|
2639
2725
|
.instruction()];
|
@@ -2654,18 +2740,19 @@ var PerpetualsClient = (function () {
|
|
2654
2740
|
pool: poolConfig.poolAddress,
|
2655
2741
|
receivingCustody: inputCustodyConfig.custodyAccount,
|
2656
2742
|
receivingCustodyOracleAccount: inputCustodyConfig.oracleAddress,
|
2657
|
-
receivingCustodyCustomOracleAccount:
|
2743
|
+
receivingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2658
2744
|
receivingCustodyTokenAccount: inputCustodyConfig.tokenAccount,
|
2659
2745
|
dispensingCustody: collateralCustodyConfig.custodyAccount,
|
2660
2746
|
dispensingCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
2661
|
-
dispensingCustodyCustomOracleAccount:
|
2747
|
+
dispensingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2662
2748
|
dispensingCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
|
2663
2749
|
custody: marketCustodyConfig.custodyAccount,
|
2664
2750
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
2665
|
-
custodyCustomOracleAccount:
|
2751
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2666
2752
|
eventAuthority: this.eventAuthority.publicKey,
|
2667
2753
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
2668
2754
|
perpProgram: this.programId,
|
2755
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
2669
2756
|
})
|
2670
2757
|
.instruction()];
|
2671
2758
|
case 9:
|
@@ -2755,14 +2842,15 @@ var PerpetualsClient = (function () {
|
|
2755
2842
|
position: positionPubKey,
|
2756
2843
|
custody: marketCustodyConfig.custodyAccount,
|
2757
2844
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
2758
|
-
custodyCustomOracleAccount:
|
2845
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2759
2846
|
collateralCustody: collateralCustodyConfig.custodyAccount,
|
2760
2847
|
collateralCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
2761
|
-
collateralCustodyCustomOracleAccount:
|
2848
|
+
collateralCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2762
2849
|
collateralCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
|
2763
2850
|
eventAuthority: this.eventAuthority.publicKey,
|
2764
2851
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
2765
2852
|
program: this.programId,
|
2853
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
2766
2854
|
})
|
2767
2855
|
.instruction()];
|
2768
2856
|
case 8:
|
@@ -2861,7 +2949,7 @@ var PerpetualsClient = (function () {
|
|
2861
2949
|
isWritable: false,
|
2862
2950
|
});
|
2863
2951
|
custodyCustomOracles.push({
|
2864
|
-
pubkey:
|
2952
|
+
pubkey: this.poolConfig.backupOracle,
|
2865
2953
|
isSigner: false,
|
2866
2954
|
isWritable: false,
|
2867
2955
|
});
|
@@ -2871,7 +2959,8 @@ var PerpetualsClient = (function () {
|
|
2871
2959
|
.accounts({
|
2872
2960
|
payer: publicKey,
|
2873
2961
|
perpetuals: poolConfig.perpetuals,
|
2874
|
-
pool: poolConfig.poolAddress
|
2962
|
+
pool: poolConfig.poolAddress,
|
2963
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
2875
2964
|
})
|
2876
2965
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), custodyCustomOracles, true))
|
2877
2966
|
.instruction()];
|
@@ -2893,19 +2982,20 @@ var PerpetualsClient = (function () {
|
|
2893
2982
|
pool: poolConfig.poolAddress,
|
2894
2983
|
receivingCustody: collateralCustodyConfig.custodyAccount,
|
2895
2984
|
receivingCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
2896
|
-
receivingCustodyCustomOracleAccount:
|
2985
|
+
receivingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2897
2986
|
receivingCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
|
2898
2987
|
dispensingCustody: outputCustodyConfig.custodyAccount,
|
2899
2988
|
dispensingCustodyOracleAccount: outputCustodyConfig.oracleAddress,
|
2900
|
-
dispensingCustodyCustomOracleAccount:
|
2989
|
+
dispensingCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2901
2990
|
dispensingCustodyTokenAccount: outputCustodyConfig.tokenAccount,
|
2902
2991
|
position: positionAccount,
|
2903
2992
|
custody: marketCustodyConfig.custodyAccount,
|
2904
2993
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
2905
|
-
custodyCustomOracleAccount:
|
2994
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2906
2995
|
eventAuthority: this.eventAuthority.publicKey,
|
2907
2996
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
2908
2997
|
perpProgram: this.programId,
|
2998
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
2909
2999
|
})
|
2910
3000
|
.instruction()];
|
2911
3001
|
case 8:
|
@@ -2951,12 +3041,13 @@ var PerpetualsClient = (function () {
|
|
2951
3041
|
position: positionPubKey,
|
2952
3042
|
custody: marketCustodyConfig.custodyAccount,
|
2953
3043
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
2954
|
-
custodyCustomOracleAccount:
|
3044
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2955
3045
|
collateralCustody: collateralCustodyConfig.custodyAccount,
|
2956
3046
|
collateralCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
2957
|
-
collateralCustodyCustomOracleAccount:
|
3047
|
+
collateralCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
2958
3048
|
eventAuthority: this.eventAuthority.publicKey,
|
2959
3049
|
program: this.programId,
|
3050
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
2960
3051
|
})
|
2961
3052
|
.instruction()];
|
2962
3053
|
case 1:
|
@@ -3002,13 +3093,14 @@ var PerpetualsClient = (function () {
|
|
3002
3093
|
position: positionPubKey,
|
3003
3094
|
custody: marketCustodyConfig.custodyAccount,
|
3004
3095
|
custodyOracleAccount: marketCustodyConfig.oracleAddress,
|
3005
|
-
custodyCustomOracleAccount:
|
3096
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
3006
3097
|
collateralCustody: collateralCustodyConfig.custodyAccount,
|
3007
3098
|
collateralCustodyOracleAccount: collateralCustodyConfig.oracleAddress,
|
3008
|
-
collateralCustodyCustomOracleAccount:
|
3099
|
+
collateralCustodyCustomOracleAccount: this.poolConfig.backupOracle,
|
3009
3100
|
collateralCustodyTokenAccount: collateralCustodyConfig.tokenAccount,
|
3010
3101
|
eventAuthority: this.eventAuthority.publicKey,
|
3011
3102
|
program: this.programId,
|
3103
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
3012
3104
|
})
|
3013
3105
|
.instruction()];
|
3014
3106
|
case 1:
|
@@ -3062,7 +3154,7 @@ var PerpetualsClient = (function () {
|
|
3062
3154
|
isWritable: false,
|
3063
3155
|
});
|
3064
3156
|
custodyCustomOracles.push({
|
3065
|
-
pubkey:
|
3157
|
+
pubkey: this.poolConfig.backupOracle,
|
3066
3158
|
isSigner: false,
|
3067
3159
|
isWritable: false,
|
3068
3160
|
});
|
@@ -3121,7 +3213,8 @@ var PerpetualsClient = (function () {
|
|
3121
3213
|
.accounts({
|
3122
3214
|
payer: publicKey,
|
3123
3215
|
perpetuals: poolConfig.perpetuals,
|
3124
|
-
pool: poolConfig.poolAddress
|
3216
|
+
pool: poolConfig.poolAddress,
|
3217
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
3125
3218
|
})
|
3126
3219
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), custodyCustomOracles, true))
|
3127
3220
|
.instruction()];
|
@@ -3143,12 +3236,13 @@ var PerpetualsClient = (function () {
|
|
3143
3236
|
pool: poolConfig.poolAddress,
|
3144
3237
|
custody: payTokenCustodyConfig.custodyAccount,
|
3145
3238
|
custodyOracleAccount: payTokenCustodyConfig.oracleAddress,
|
3146
|
-
custodyCustomOracleAccount:
|
3239
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
3147
3240
|
custodyTokenAccount: payTokenCustodyConfig.tokenAccount,
|
3148
3241
|
lpTokenMint: poolConfig.lpTokenMint,
|
3149
3242
|
eventAuthority: this.eventAuthority.publicKey,
|
3150
3243
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
3151
3244
|
program: this.programId,
|
3245
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
3152
3246
|
})
|
3153
3247
|
.instruction()];
|
3154
3248
|
case 12:
|
@@ -3207,7 +3301,7 @@ var PerpetualsClient = (function () {
|
|
3207
3301
|
isWritable: false,
|
3208
3302
|
});
|
3209
3303
|
custodyCustomOracles.push({
|
3210
|
-
pubkey:
|
3304
|
+
pubkey: this.poolConfig.backupOracle,
|
3211
3305
|
isSigner: false,
|
3212
3306
|
isWritable: false,
|
3213
3307
|
});
|
@@ -3252,7 +3346,8 @@ var PerpetualsClient = (function () {
|
|
3252
3346
|
.accounts({
|
3253
3347
|
payer: publicKey,
|
3254
3348
|
perpetuals: poolConfig.perpetuals,
|
3255
|
-
pool: poolConfig.poolAddress
|
3349
|
+
pool: poolConfig.poolAddress,
|
3350
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
3256
3351
|
})
|
3257
3352
|
.remainingAccounts(__spreadArray(__spreadArray(__spreadArray([], custodyAccountMetas, true), custodyOracleAccountMetas, true), custodyCustomOracles, true))
|
3258
3353
|
.instruction()];
|
@@ -3275,12 +3370,13 @@ var PerpetualsClient = (function () {
|
|
3275
3370
|
pool: poolConfig.poolAddress,
|
3276
3371
|
custody: recieveTokenCustodyConfig.custodyAccount,
|
3277
3372
|
custodyOracleAccount: recieveTokenCustodyConfig.oracleAddress,
|
3278
|
-
custodyCustomOracleAccount:
|
3373
|
+
custodyCustomOracleAccount: this.poolConfig.backupOracle,
|
3279
3374
|
custodyTokenAccount: recieveTokenCustodyConfig.tokenAccount,
|
3280
3375
|
lpTokenMint: poolConfig.lpTokenMint,
|
3281
3376
|
eventAuthority: this.eventAuthority.publicKey,
|
3282
3377
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
3283
3378
|
program: this.programId,
|
3379
|
+
ixSysvar: web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY
|
3284
3380
|
})
|
3285
3381
|
.instruction()];
|
3286
3382
|
case 10:
|
@@ -3309,9 +3405,10 @@ var PerpetualsClient = (function () {
|
|
3309
3405
|
};
|
3310
3406
|
this.provider = provider;
|
3311
3407
|
(0, anchor_1.setProvider)(provider);
|
3312
|
-
this.program = new anchor_1.Program(perpetuals_1.IDL, programId);
|
3408
|
+
this.program = new anchor_1.Program(perpetuals_1.IDL, poolConfig.programId);
|
3313
3409
|
this.programPerpComposability = new anchor_1.Program(perp_composability_1.IDL, composabilityProgramId);
|
3314
|
-
this.
|
3410
|
+
this.poolConfig = poolConfig;
|
3411
|
+
this.programId = poolConfig.programId;
|
3315
3412
|
this.composabilityProgramId = composabilityProgramId;
|
3316
3413
|
this.admin = this.provider.wallet.publicKey;
|
3317
3414
|
this.multisig = this.findProgramAddress("multisig");
|
package/dist/PoolConfig.d.ts
CHANGED
@@ -10,6 +10,7 @@ export interface CustodyConfig {
|
|
10
10
|
isStable: boolean;
|
11
11
|
isVirtual: boolean;
|
12
12
|
oracleAddress: PublicKey;
|
13
|
+
pythPriceId: string;
|
13
14
|
}
|
14
15
|
export type Token = {
|
15
16
|
symbol: string;
|
@@ -30,9 +31,10 @@ export declare class PoolConfig {
|
|
30
31
|
transferAuthority: PublicKey;
|
31
32
|
multisig: PublicKey;
|
32
33
|
addressLookupTableAddresses: PublicKey[];
|
34
|
+
backupOracle: PublicKey;
|
33
35
|
tokens: Token[];
|
34
36
|
custodies: CustodyConfig[];
|
35
|
-
constructor(programId: PublicKey, cluster: Cluster, poolName: string, poolAddress: PublicKey, lpTokenMint: PublicKey, lpDecimals: number, perpetuals: PublicKey, transferAuthority: PublicKey, multisig: PublicKey, addressLookupTableAddresses: PublicKey[], tokens: Token[], custodies: CustodyConfig[]);
|
37
|
+
constructor(programId: PublicKey, cluster: Cluster, poolName: string, poolAddress: PublicKey, lpTokenMint: PublicKey, lpDecimals: number, perpetuals: PublicKey, transferAuthority: PublicKey, multisig: PublicKey, addressLookupTableAddresses: PublicKey[], backupOracle: PublicKey, tokens: Token[], custodies: CustodyConfig[]);
|
36
38
|
getAllTokenMints(): PublicKey[];
|
37
39
|
getNonStableTokens(): PublicKey[];
|
38
40
|
getAllCustodies(): PublicKey[];
|