flash-sdk 11.3.6-alpha.1 → 11.4.0

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.
@@ -6,6 +6,9 @@ import { AddLiquidityAmountAndFee, InternalPrice, BorrowRateParams, ExitPriceAnd
6
6
  import { OraclePrice } from "./OraclePrice";
7
7
  import { CustodyAccount } from "./CustodyAccount";
8
8
  import { Perpetuals } from "./idl/perpetuals";
9
+ import { PerpComposability } from "./idl/perp_composability";
10
+ import { FbnftRewards } from "./idl/fbnft_rewards";
11
+ import { RewardDistribution } from "./idl/reward_distribution";
9
12
  import { SendTransactionOpts } from "./utils/rpc";
10
13
  import { MarketConfig, PoolConfig, Token } from "./PoolConfig";
11
14
  import { MarketAccount } from "./MarketAccount";
@@ -19,8 +22,12 @@ export type PerpClientOptions = {
19
22
  export declare class PerpetualsClient {
20
23
  provider: AnchorProvider;
21
24
  program: Program<Perpetuals>;
25
+ programPerpComposability: Program<PerpComposability>;
26
+ programFbnftReward: Program<FbnftRewards>;
27
+ programRewardDistribution: Program<RewardDistribution>;
22
28
  admin: PublicKey;
23
29
  programId: PublicKey;
30
+ composabilityProgramId: PublicKey;
24
31
  multisig: {
25
32
  publicKey: PublicKey;
26
33
  bump: number;
@@ -41,6 +48,10 @@ export declare class PerpetualsClient {
41
48
  publicKey: PublicKey;
42
49
  bump: number;
43
50
  };
51
+ eventAuthorityRewardDistribution: {
52
+ publicKey: PublicKey;
53
+ bump: number;
54
+ };
44
55
  prioritizationFee: number;
45
56
  minimumBalanceForRentExemptAccountLamports: number;
46
57
  private postSendTxCallback?;
@@ -69,6 +69,9 @@ var PositionAccount_1 = require("./PositionAccount");
69
69
  var types_1 = require("./types");
70
70
  var OraclePrice_1 = require("./OraclePrice");
71
71
  var perpetuals_1 = require("./idl/perpetuals");
72
+ var perp_composability_1 = require("./idl/perp_composability");
73
+ var fbnft_rewards_1 = require("./idl/fbnft_rewards");
74
+ var reward_distribution_1 = require("./idl/reward_distribution");
72
75
  var rpc_1 = require("./utils/rpc");
73
76
  var utils_1 = require("./utils");
74
77
  var constants_1 = require("./constants");
@@ -7140,6 +7143,8 @@ var PerpetualsClient = (function () {
7140
7143
  perpetuals: this.perpetuals.publicKey,
7141
7144
  tokenVault: poolConfig.tokenVault,
7142
7145
  pool: poolConfig.poolAddress,
7146
+ custody: custodyConfig.custodyAccount,
7147
+ custodyTokenAccount: custodyConfig.tokenAccount,
7143
7148
  revenueTokenAccount: poolConfig.revenueTokenAccount,
7144
7149
  protocolVault: poolConfig.protocolVault,
7145
7150
  protocolTokenAccount: poolConfig.protocolTokenAccount,
@@ -8159,12 +8164,17 @@ var PerpetualsClient = (function () {
8159
8164
  this.provider = provider;
8160
8165
  (0, anchor_1.setProvider)(provider);
8161
8166
  this.program = new anchor_1.Program(perpetuals_1.IDL, programId);
8167
+ this.programPerpComposability = new anchor_1.Program(perp_composability_1.IDL, composabilityProgramId);
8168
+ this.programFbnftReward = new anchor_1.Program(fbnft_rewards_1.IDL, fbNftRewardProgramId);
8169
+ this.programRewardDistribution = new anchor_1.Program(reward_distribution_1.IDL, rewardDistributionProgramId);
8162
8170
  this.programId = programId;
8171
+ this.composabilityProgramId = composabilityProgramId;
8163
8172
  this.admin = this.provider.wallet.publicKey;
8164
8173
  this.multisig = this.findProgramAddress("multisig");
8165
8174
  this.authority = this.findProgramAddress("transfer_authority");
8166
8175
  this.perpetuals = this.findProgramAddress("perpetuals");
8167
8176
  this.eventAuthority = this.findProgramAddress("__event_authority");
8177
+ this.eventAuthorityRewardDistribution = this.findProgramAddressFromProgramId("__event_authority", null, this.programRewardDistribution.programId);
8168
8178
  this.minimumBalanceForRentExemptAccountLamports = 2039280;
8169
8179
  this.prioritizationFee = (opts === null || opts === void 0 ? void 0 : opts.prioritizationFee) || 0;
8170
8180
  this.useExtOracleAccount = useExtOracleAccount;
@@ -506,6 +506,19 @@
506
506
  "pythTicker": "Commodities.WTIG6/USD",
507
507
  "pythPriceId": "0x7e91242dfd2cea64715b26edaa3e51bafc712a56ac4228a77bd53b51fd66db52",
508
508
  "isToken2022": false
509
+ },
510
+ {
511
+ "symbol": "XAUt",
512
+ "mintKey": "AymATz4TCL9sWNEEV9Kvyz45CHVhDZ6kUgjTJPzLpU9P",
513
+ "decimals": 6,
514
+ "usdPrecision": 4,
515
+ "tokenPrecision": 4,
516
+ "isStable": false,
517
+ "isVirtual": false,
518
+ "lazerId": 172,
519
+ "pythTicker": "Crypto.XAUT/USD",
520
+ "pythPriceId": "0x44465e17d2e9d390e70c999d5a11fda4f092847fcd2e3e5aa089d96c98a30e67",
521
+ "isToken2022": false
509
522
  }
510
523
  ],
511
524
  "custodies": [
@@ -610,6 +623,23 @@
610
623
  "lazerId": 2691,
611
624
  "pythTicker": "Commodities.WTIG6/USD",
612
625
  "pythPriceId": "0x7e91242dfd2cea64715b26edaa3e51bafc712a56ac4228a77bd53b51fd66db52"
626
+ },
627
+ {
628
+ "custodyId": 7,
629
+ "custodyAccount": "HymsKV4bGdSbf4AyaBqCrK1438jZu6ubCqcws516vRXx",
630
+ "tokenAccount": "551kLmp7X7V9GeuRr1Bcm8fh3LEMeC1mgmdcJeo9tWno",
631
+ "symbol": "XAUt",
632
+ "mintKey": "AymATz4TCL9sWNEEV9Kvyz45CHVhDZ6kUgjTJPzLpU9P",
633
+ "decimals": 6,
634
+ "usdPrecision": 4,
635
+ "tokenPrecision": 6,
636
+ "isStable": false,
637
+ "isVirtual": false,
638
+ "intOracleAddress": "F4YkaJozctgfuZwySEZozCsMyGymJDfeKgByYeLEBCnK",
639
+ "extOracleAddress": "2uPQGpm8X4ZkxMHxrAW1QuhXcse1AHEgPih6Xp9NuEWW",
640
+ "lazerId": 172,
641
+ "pythTicker": "Crypto.XAUT/USD",
642
+ "pythPriceId": "0x44465e17d2e9d390e70c999d5a11fda4f092847fcd2e3e5aa089d96c98a30e67"
613
643
  }
614
644
  ],
615
645
  "markets": [
@@ -2909,19 +2939,6 @@
2909
2939
  "pythTicker": "Commodities.WTIG6/USD",
2910
2940
  "pythPriceId": "0x7e91242dfd2cea64715b26edaa3e51bafc712a56ac4228a77bd53b51fd66db52",
2911
2941
  "isToken2022": false
2912
- },
2913
- {
2914
- "symbol": "XAUt",
2915
- "mintKey": "xaut1dB1uihYCwjReVgwZ4mBBJzwkXn4picqqmk4v2H",
2916
- "decimals": 6,
2917
- "usdPrecision": 4,
2918
- "tokenPrecision": 4,
2919
- "isStable": false,
2920
- "isVirtual": false,
2921
- "lazerId": 172,
2922
- "pythTicker": "Crypto.XAUT/USD",
2923
- "pythPriceId": "0x44465e17d2e9d390e70c999d5a11fda4f092847fcd2e3e5aa089d96c98a30e67",
2924
- "isToken2022": false
2925
2942
  }
2926
2943
  ],
2927
2944
  "custodies": [
@@ -3026,26 +3043,25 @@
3026
3043
  "lazerId": 2691,
3027
3044
  "pythTicker": "Commodities.WTIG6/USD",
3028
3045
  "pythPriceId": "0x7e91242dfd2cea64715b26edaa3e51bafc712a56ac4228a77bd53b51fd66db52"
3029
- },
3030
- {
3031
- "custodyId": 7,
3032
- "custodyAccount": "8sriDinQT789N7AJrEtQ2Q1jvVm7jGHhkdw4zTLKZxGe",
3033
- "tokenAccount": "DpnfaMR5kJhVyy5SGk6yB1JHXYuqJhsm53wdewd8gNd1",
3034
- "symbol": "XAUt",
3035
- "mintKey": "xaut1dB1uihYCwjReVgwZ4mBBJzwkXn4picqqmk4v2H",
3036
- "decimals": 6,
3037
- "usdPrecision": 4,
3038
- "tokenPrecision": 4,
3039
- "isStable": false,
3040
- "isVirtual": false,
3041
- "intOracleAddress": "6fCDXgCYMnY29RENXKE2yGxvtMVUCMU59kkmS212MjMc",
3042
- "extOracleAddress": "2uPQGpm8X4ZkxMHxrAW1QuhXcse1AHEgPih6Xp9NuEWW",
3043
- "lazerId": 172,
3044
- "pythTicker": "Crypto.XAUT/USD",
3045
- "pythPriceId": "0x44465e17d2e9d390e70c999d5a11fda4f092847fcd2e3e5aa089d96c98a30e67"
3046
3046
  }
3047
3047
  ],
3048
3048
  "markets": [
3049
+ {
3050
+ "marketId": 0,
3051
+ "marketAccount": "6VaKMhU9mtWUVXSj73VMj5RAXfLiE7mRn1myyWEwBC6S",
3052
+ "marketCorrelation": false,
3053
+ "pool": "Ar7yp9PJkRpvXasLB4NYdbDHnuvAZ1gDA8ALnkPKivbb",
3054
+ "targetCustody": "EXumu4qqjXYpv1RUzTGiVJAvjvL3BWzn592SSwxrtZwW",
3055
+ "collateralCustody": "4nkiPSMJb4hpLhpaXbebkYF73Ub5vjeked8mWkPafMBm",
3056
+ "side": "long",
3057
+ "maxLev": 100,
3058
+ "degenMinLev": 1,
3059
+ "degenMaxLev": 100,
3060
+ "targetCustodyId": 1,
3061
+ "collateralCustodyId": 0,
3062
+ "targetMint": "xaucSYSxjZF4EbsLqAGRvPcuD1uXAj9awmsxYkUAavx",
3063
+ "collateralMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr"
3064
+ },
3049
3065
  {
3050
3066
  "marketId": 1,
3051
3067
  "marketAccount": "HH56JHJojhexo4eAE6dCC8XAKKoHiUzEg5fkFRmVGh2S",
@@ -3189,22 +3205,6 @@
3189
3205
  "collateralCustodyId": 0,
3190
3206
  "targetMint": "oi1DkCGa5CVm379ZuznLMevqjg7KGWnDDFB96JXAi7a",
3191
3207
  "collateralMint": "Gh9ZwEmdLJ8DscKNTkTqPbNwLNNBjuSzaG9Vp2KGtKJr"
3192
- },
3193
- {
3194
- "marketId": 12,
3195
- "marketAccount": "HCHwtnbLgZPPkYqrbXF1oF688dxHW6cbhfU7yFLgfCpY",
3196
- "marketCorrelation": true,
3197
- "pool": "Ar7yp9PJkRpvXasLB4NYdbDHnuvAZ1gDA8ALnkPKivbb",
3198
- "targetCustody": "EXumu4qqjXYpv1RUzTGiVJAvjvL3BWzn592SSwxrtZwW",
3199
- "collateralCustody": "8sriDinQT789N7AJrEtQ2Q1jvVm7jGHhkdw4zTLKZxGe",
3200
- "side": "long",
3201
- "maxLev": 50,
3202
- "degenMinLev": 1,
3203
- "degenMaxLev": 50,
3204
- "targetCustodyId": 6,
3205
- "collateralCustodyId": 0,
3206
- "targetMint": "xaucSYSxjZF4EbsLqAGRvPcuD1uXAj9awmsxYkUAavx",
3207
- "collateralMint": "xaut1dB1uihYCwjReVgwZ4mBBJzwkXn4picqqmk4v2H"
3208
3208
  }
3209
3209
  ]
3210
3210
  },
@@ -0,0 +1,290 @@
1
+ export type FbnftRewards = {
2
+ "version": "0.1.0";
3
+ "name": "fbnft_rewards";
4
+ "instructions": [
5
+ {
6
+ "name": "initRewardVault";
7
+ "accounts": [
8
+ {
9
+ "name": "admin";
10
+ "isMut": true;
11
+ "isSigner": true;
12
+ },
13
+ {
14
+ "name": "transferAuthority";
15
+ "isMut": true;
16
+ "isSigner": false;
17
+ },
18
+ {
19
+ "name": "rewardVault";
20
+ "isMut": true;
21
+ "isSigner": false;
22
+ },
23
+ {
24
+ "name": "rewardMint";
25
+ "isMut": false;
26
+ "isSigner": false;
27
+ },
28
+ {
29
+ "name": "rewardTokenAccount";
30
+ "isMut": true;
31
+ "isSigner": false;
32
+ },
33
+ {
34
+ "name": "collectionMint";
35
+ "isMut": false;
36
+ "isSigner": false;
37
+ },
38
+ {
39
+ "name": "programData";
40
+ "isMut": false;
41
+ "isSigner": false;
42
+ },
43
+ {
44
+ "name": "systemProgram";
45
+ "isMut": false;
46
+ "isSigner": false;
47
+ },
48
+ {
49
+ "name": "tokenProgram";
50
+ "isMut": false;
51
+ "isSigner": false;
52
+ },
53
+ {
54
+ "name": "rent";
55
+ "isMut": false;
56
+ "isSigner": false;
57
+ }
58
+ ];
59
+ "args": [
60
+ {
61
+ "name": "params";
62
+ "type": {
63
+ "defined": "InitRewardVaultParams";
64
+ };
65
+ }
66
+ ];
67
+ },
68
+ {
69
+ "name": "distributeRewards";
70
+ "accounts": [
71
+ {
72
+ "name": "admin";
73
+ "isMut": false;
74
+ "isSigner": true;
75
+ },
76
+ {
77
+ "name": "fundingAccount";
78
+ "isMut": true;
79
+ "isSigner": false;
80
+ },
81
+ {
82
+ "name": "rewardVault";
83
+ "isMut": true;
84
+ "isSigner": false;
85
+ },
86
+ {
87
+ "name": "rewardTokenAccount";
88
+ "isMut": true;
89
+ "isSigner": false;
90
+ },
91
+ {
92
+ "name": "tokenProgram";
93
+ "isMut": false;
94
+ "isSigner": false;
95
+ }
96
+ ];
97
+ "args": [
98
+ {
99
+ "name": "params";
100
+ "type": {
101
+ "defined": "DistributeRewardsParams";
102
+ };
103
+ }
104
+ ];
105
+ },
106
+ {
107
+ "name": "collectReward";
108
+ "accounts": [
109
+ {
110
+ "name": "owner";
111
+ "isMut": true;
112
+ "isSigner": true;
113
+ },
114
+ {
115
+ "name": "feePayer";
116
+ "isMut": true;
117
+ "isSigner": true;
118
+ },
119
+ {
120
+ "name": "nftMint";
121
+ "isMut": true;
122
+ "isSigner": false;
123
+ },
124
+ {
125
+ "name": "nftTokenAccount";
126
+ "isMut": false;
127
+ "isSigner": false;
128
+ },
129
+ {
130
+ "name": "metadataAccount";
131
+ "isMut": true;
132
+ "isSigner": false;
133
+ },
134
+ {
135
+ "name": "receivingAccount";
136
+ "isMut": true;
137
+ "isSigner": false;
138
+ },
139
+ {
140
+ "name": "rewardRecord";
141
+ "isMut": true;
142
+ "isSigner": false;
143
+ },
144
+ {
145
+ "name": "rewardVault";
146
+ "isMut": true;
147
+ "isSigner": false;
148
+ },
149
+ {
150
+ "name": "rewardTokenAccount";
151
+ "isMut": true;
152
+ "isSigner": false;
153
+ },
154
+ {
155
+ "name": "transferAuthority";
156
+ "isMut": false;
157
+ "isSigner": false;
158
+ },
159
+ {
160
+ "name": "systemProgram";
161
+ "isMut": false;
162
+ "isSigner": false;
163
+ },
164
+ {
165
+ "name": "tokenProgram";
166
+ "isMut": false;
167
+ "isSigner": false;
168
+ }
169
+ ];
170
+ "args": [];
171
+ }
172
+ ];
173
+ "accounts": [
174
+ {
175
+ "name": "rewardVault";
176
+ "type": {
177
+ "kind": "struct";
178
+ "fields": [
179
+ {
180
+ "name": "admin";
181
+ "type": "publicKey";
182
+ },
183
+ {
184
+ "name": "collection";
185
+ "type": "publicKey";
186
+ },
187
+ {
188
+ "name": "rewardMint";
189
+ "type": "publicKey";
190
+ },
191
+ {
192
+ "name": "transferAuthority";
193
+ "type": "publicKey";
194
+ },
195
+ {
196
+ "name": "rewardTokenAccount";
197
+ "type": "publicKey";
198
+ },
199
+ {
200
+ "name": "lpTokenAccount";
201
+ "type": "publicKey";
202
+ },
203
+ {
204
+ "name": "nftCount";
205
+ "type": "u64";
206
+ },
207
+ {
208
+ "name": "accruedAmount";
209
+ "type": "u128";
210
+ },
211
+ {
212
+ "name": "paidAmount";
213
+ "type": "u128";
214
+ },
215
+ {
216
+ "name": "rewardsPerNft";
217
+ "type": "u64";
218
+ },
219
+ {
220
+ "name": "bump";
221
+ "type": "u8";
222
+ },
223
+ {
224
+ "name": "transferAuthorityBump";
225
+ "type": "u8";
226
+ },
227
+ {
228
+ "name": "tokenAccountBump";
229
+ "type": "u8";
230
+ }
231
+ ];
232
+ };
233
+ },
234
+ {
235
+ "name": "rewardRecord";
236
+ "type": {
237
+ "kind": "struct";
238
+ "fields": [
239
+ {
240
+ "name": "mint";
241
+ "type": "publicKey";
242
+ },
243
+ {
244
+ "name": "rewardDebt";
245
+ "type": "u64";
246
+ }
247
+ ];
248
+ };
249
+ }
250
+ ];
251
+ "types": [
252
+ {
253
+ "name": "InitRewardVaultParams";
254
+ "type": {
255
+ "kind": "struct";
256
+ "fields": [
257
+ {
258
+ "name": "nftCount";
259
+ "type": "u64";
260
+ }
261
+ ];
262
+ };
263
+ },
264
+ {
265
+ "name": "DistributeRewardsParams";
266
+ "type": {
267
+ "kind": "struct";
268
+ "fields": [
269
+ {
270
+ "name": "rewardAmount";
271
+ "type": "u64";
272
+ }
273
+ ];
274
+ };
275
+ }
276
+ ];
277
+ "errors": [
278
+ {
279
+ "code": 6000;
280
+ "name": "InvalidCollection";
281
+ "msg": "Unsuppported NFT collection";
282
+ },
283
+ {
284
+ "code": 6001;
285
+ "name": "InvalidCount";
286
+ "msg": "Invalid NFT Count";
287
+ }
288
+ ];
289
+ };
290
+ export declare const IDL: FbnftRewards;