hedge-web3 0.2.20 → 0.2.21

Sign up to get free protection for your applications and to get access to all the features.
@@ -2798,6 +2798,12 @@ export declare type Vault = {
2798
2798
  "option": "u64";
2799
2799
  };
2800
2800
  },
2801
+ {
2802
+ "name": "interestRatePerSecond";
2803
+ "type": {
2804
+ "option": "u128";
2805
+ };
2806
+ },
2801
2807
  {
2802
2808
  "name": "emergencyModeThreshold";
2803
2809
  "type": {
@@ -3076,26 +3082,6 @@ export declare type Vault = {
3076
3082
  "index": false;
3077
3083
  }
3078
3084
  ];
3079
- },
3080
- {
3081
- "name": "VaultTransferEvent";
3082
- "fields": [
3083
- {
3084
- "name": "vault";
3085
- "type": "publicKey";
3086
- "index": false;
3087
- },
3088
- {
3089
- "name": "oldOwner";
3090
- "type": "publicKey";
3091
- "index": false;
3092
- },
3093
- {
3094
- "name": "newOwner";
3095
- "type": "publicKey";
3096
- "index": false;
3097
- }
3098
- ];
3099
3085
  }
3100
3086
  ];
3101
3087
  "errors": [
@@ -6,6 +6,7 @@ export interface VaultTypeConfig {
6
6
  maxDebtExtended?: BN;
7
7
  minDebtPerVault?: BN;
8
8
  loanInitFee?: BN;
9
+ interestRatePerSecond?: BN;
9
10
  emergencyModeThreshold?: BN;
10
11
  oracleChainlink?: PublicKey;
11
12
  oraclePyth?: PublicKey;
@@ -11,7 +11,8 @@ export declare class VaultAccount {
11
11
  publicKey: PublicKey;
12
12
  /** The public key of the vault owner. */
13
13
  vaultOwner: PublicKey;
14
- /** The public key of the vault owner. */ pdaSalt: string;
14
+ /** The public key of the vault owner. */
15
+ pdaSalt: string;
15
16
  /** The deposited collateral of the vault (in SOL Lamports). */
16
17
  deposited: BN;
17
18
  /** The outstanding debt of the vault (in USH Lamports). Denormalized to time 0. */
package/lib/idl/vault.js CHANGED
@@ -2801,6 +2801,12 @@ exports.IDL = {
2801
2801
  "option": "u64"
2802
2802
  }
2803
2803
  },
2804
+ {
2805
+ "name": "interestRatePerSecond",
2806
+ "type": {
2807
+ "option": "u128"
2808
+ }
2809
+ },
2804
2810
  {
2805
2811
  "name": "emergencyModeThreshold",
2806
2812
  "type": {
@@ -3079,26 +3085,6 @@ exports.IDL = {
3079
3085
  "index": false
3080
3086
  }
3081
3087
  ]
3082
- },
3083
- {
3084
- "name": "VaultTransferEvent",
3085
- "fields": [
3086
- {
3087
- "name": "vault",
3088
- "type": "publicKey",
3089
- "index": false
3090
- },
3091
- {
3092
- "name": "oldOwner",
3093
- "type": "publicKey",
3094
- "index": false
3095
- },
3096
- {
3097
- "name": "newOwner",
3098
- "type": "publicKey",
3099
- "index": false
3100
- }
3101
- ]
3102
3088
  }
3103
3089
  ],
3104
3090
  "errors": [
@@ -26,20 +26,21 @@ function updateVaultType(program, provider, payer, vaultTypeAccount, oracleInfoA
26
26
  }
27
27
  exports.updateVaultType = updateVaultType;
28
28
  function updateVaultTypeStatusInstruction(program, vaultSystemStatePublicKey, payerPublicKey, vaultTypeAccount, oracleInfoAccount, vaultTypeConfig) {
29
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
29
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
30
30
  return __awaiter(this, void 0, void 0, function* () {
31
31
  const config = {
32
32
  maxDebtExtended: (_a = vaultTypeConfig.maxDebtExtended) !== null && _a !== void 0 ? _a : null,
33
33
  minDebtPerVault: (_b = vaultTypeConfig.minDebtPerVault) !== null && _b !== void 0 ? _b : null,
34
34
  loanInitFee: (_c = vaultTypeConfig.loanInitFee) !== null && _c !== void 0 ? _c : null,
35
- emergencyModeThreshold: (_d = vaultTypeConfig.emergencyModeThreshold) !== null && _d !== void 0 ? _d : null,
36
- oracleChainlink: (_e = vaultTypeConfig.oracleChainlink) !== null && _e !== void 0 ? _e : null,
37
- oraclePyth: (_f = vaultTypeConfig.oraclePyth) !== null && _f !== void 0 ? _f : null,
38
- oracleSwitchboard: (_g = vaultTypeConfig.oracleSwitchboard) !== null && _g !== void 0 ? _g : null,
39
- deprecated: (_h = vaultTypeConfig.deprecated) !== null && _h !== void 0 ? _h : null,
40
- priorityPyth: (_j = vaultTypeConfig.priorityPyth) !== null && _j !== void 0 ? _j : null,
41
- priorityChainlink: (_k = vaultTypeConfig.priorityChainlink) !== null && _k !== void 0 ? _k : null,
42
- prioritySwitchboard: (_l = vaultTypeConfig.prioritySwitchboard) !== null && _l !== void 0 ? _l : null,
35
+ interestRatePerSecond: (_d = vaultTypeConfig.interestRatePerSecond) !== null && _d !== void 0 ? _d : null,
36
+ emergencyModeThreshold: (_e = vaultTypeConfig.emergencyModeThreshold) !== null && _e !== void 0 ? _e : null,
37
+ oracleChainlink: (_f = vaultTypeConfig.oracleChainlink) !== null && _f !== void 0 ? _f : null,
38
+ oraclePyth: (_g = vaultTypeConfig.oraclePyth) !== null && _g !== void 0 ? _g : null,
39
+ oracleSwitchboard: (_h = vaultTypeConfig.oracleSwitchboard) !== null && _h !== void 0 ? _h : null,
40
+ deprecated: (_j = vaultTypeConfig.deprecated) !== null && _j !== void 0 ? _j : null,
41
+ priorityPyth: (_k = vaultTypeConfig.priorityPyth) !== null && _k !== void 0 ? _k : null,
42
+ priorityChainlink: (_l = vaultTypeConfig.priorityChainlink) !== null && _l !== void 0 ? _l : null,
43
+ prioritySwitchboard: (_m = vaultTypeConfig.prioritySwitchboard) !== null && _m !== void 0 ? _m : null,
43
44
  };
44
45
  return yield program.methods
45
46
  .updateVaultType(config)
@@ -163,9 +163,7 @@ class VaultAccount {
163
163
  .mul(new decimal_js_1.default(this.denormalizedDebt.toString()))
164
164
  .floor()
165
165
  .toString());
166
- const extraCollateralDeposited = new decimal_js_1.default(this.denormalizedDebt.toString())
167
- .mul(vaultTypeAccountData.collateralRedistributionAccumulator.sub(this.collateralAccumulatorSnapshotBytes).toNumber())
168
- .floor();
166
+ const extraCollateralDeposited = new decimal_js_1.default(this.denormalizedDebt.toString()).mul(vaultTypeAccountData.collateralRedistributionAccumulator.sub(this.collateralAccumulatorSnapshotBytes).toNumber()).floor();
169
167
  this.deposited = this.deposited.add(new bn_js_1.default(extraCollateralDeposited.toString()));
170
168
  this.collateralAccumulatorSnapshotBytes = vaultTypeAccountData.collateralRedistributionAccumulator;
171
169
  this.debtProductSnapshotBytes = vaultTypeAccountData.debtRedistributionProduct;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hedge-web3",
3
- "version": "0.2.20",
3
+ "version": "0.2.21",
4
4
  "description": "Hedge Javascript Web3 API",
5
5
  "main": "lib/index.js",
6
6
  "types": "declarations/index.d.ts",
package/src/idl/vault.ts CHANGED
@@ -2798,6 +2798,12 @@ export type Vault = {
2798
2798
  "option": "u64"
2799
2799
  }
2800
2800
  },
2801
+ {
2802
+ "name": "interestRatePerSecond",
2803
+ "type": {
2804
+ "option": "u128"
2805
+ }
2806
+ },
2801
2807
  {
2802
2808
  "name": "emergencyModeThreshold",
2803
2809
  "type": {
@@ -3076,26 +3082,6 @@ export type Vault = {
3076
3082
  "index": false
3077
3083
  }
3078
3084
  ]
3079
- },
3080
- {
3081
- "name": "VaultTransferEvent",
3082
- "fields": [
3083
- {
3084
- "name": "vault",
3085
- "type": "publicKey",
3086
- "index": false
3087
- },
3088
- {
3089
- "name": "oldOwner",
3090
- "type": "publicKey",
3091
- "index": false
3092
- },
3093
- {
3094
- "name": "newOwner",
3095
- "type": "publicKey",
3096
- "index": false
3097
- }
3098
- ]
3099
3085
  }
3100
3086
  ],
3101
3087
  "errors": [
@@ -6077,6 +6063,12 @@ export const IDL: Vault = {
6077
6063
  "option": "u64"
6078
6064
  }
6079
6065
  },
6066
+ {
6067
+ "name": "interestRatePerSecond",
6068
+ "type": {
6069
+ "option": "u128"
6070
+ }
6071
+ },
6080
6072
  {
6081
6073
  "name": "emergencyModeThreshold",
6082
6074
  "type": {
@@ -6355,26 +6347,6 @@ export const IDL: Vault = {
6355
6347
  "index": false
6356
6348
  }
6357
6349
  ]
6358
- },
6359
- {
6360
- "name": "VaultTransferEvent",
6361
- "fields": [
6362
- {
6363
- "name": "vault",
6364
- "type": "publicKey",
6365
- "index": false
6366
- },
6367
- {
6368
- "name": "oldOwner",
6369
- "type": "publicKey",
6370
- "index": false
6371
- },
6372
- {
6373
- "name": "newOwner",
6374
- "type": "publicKey",
6375
- "index": false
6376
- }
6377
- ]
6378
6350
  }
6379
6351
  ],
6380
6352
  "errors": [
@@ -28,6 +28,8 @@ export interface VaultTypeConfig {
28
28
  maxDebtExtended?: BN
29
29
  minDebtPerVault?: BN
30
30
  loanInitFee?: BN
31
+ interestRatePerSecond?: BN
32
+
31
33
  emergencyModeThreshold?: BN
32
34
 
33
35
  oracleChainlink?: PublicKey
@@ -77,6 +79,7 @@ export async function updateVaultTypeStatusInstruction(
77
79
  maxDebtExtended: vaultTypeConfig.maxDebtExtended ?? null,
78
80
  minDebtPerVault: vaultTypeConfig.minDebtPerVault ?? null,
79
81
  loanInitFee: vaultTypeConfig.loanInitFee ?? null,
82
+ interestRatePerSecond: vaultTypeConfig.interestRatePerSecond ?? null,
80
83
  emergencyModeThreshold: vaultTypeConfig.emergencyModeThreshold ?? null,
81
84
  oracleChainlink: vaultTypeConfig.oracleChainlink ?? null,
82
85
  oraclePyth: vaultTypeConfig.oraclePyth ?? null,
@@ -16,7 +16,7 @@ export class VaultAccount {
16
16
  /** The public key of the vault owner. */
17
17
  vaultOwner: PublicKey
18
18
 
19
- /** The public key of the vault owner. */ // dont think this is correct? thoughts?
19
+ /** The public key of the vault owner. */
20
20
  pdaSalt: string
21
21
 
22
22
  /** The deposited collateral of the vault (in SOL Lamports). */
@@ -50,7 +50,7 @@ export class VaultAccount {
50
50
  this.publicKey = publicKey
51
51
  this.vaultOwner = vault.vaultOwner
52
52
  this.pdaSalt = vault.pdaSalt
53
-
53
+
54
54
  this.deposited = vault.deposited
55
55
  this.denormalizedDebt = vault.denormalizedDebt
56
56
 
@@ -177,15 +177,16 @@ export class VaultAccount {
177
177
  public updateDebtAndCollateral(vaultTypeAccountData: VaultType) {
178
178
  this.denormalizedDebt = new BN(
179
179
  vaultTypeAccountData.debtRedistributionProduct
180
- .div(this.debtProductSnapshotBytes)
181
- .mul(new Decimal(this.denormalizedDebt.toString()))
182
- .floor()
183
- .toString()
180
+ .div(this.debtProductSnapshotBytes)
181
+ .mul(new Decimal(this.denormalizedDebt.toString()))
182
+ .floor()
183
+ .toString()
184
184
  )
185
185
 
186
- const extraCollateralDeposited = new Decimal(this.denormalizedDebt.toString())
187
- .mul(vaultTypeAccountData.collateralRedistributionAccumulator.sub(this.collateralAccumulatorSnapshotBytes).toNumber())
188
- .floor()
186
+ const extraCollateralDeposited =
187
+ new Decimal(this.denormalizedDebt.toString()).mul(
188
+ vaultTypeAccountData.collateralRedistributionAccumulator.sub(this.collateralAccumulatorSnapshotBytes).toNumber()
189
+ ).floor()
189
190
  this.deposited = this.deposited.add(new BN(extraCollateralDeposited.toString()))
190
191
 
191
192
  this.collateralAccumulatorSnapshotBytes = vaultTypeAccountData.collateralRedistributionAccumulator
@@ -1,99 +0,0 @@
1
- import { BN, Program, Provider } from '@project-serum/anchor'
2
- import {
3
- Keypair,
4
- PublicKey,
5
- sendAndConfirmTransaction,
6
- Signer,
7
- SystemProgram,
8
- SYSVAR_RENT_PUBKEY,
9
- Transaction,
10
- TransactionInstruction,
11
- } from '@solana/web3.js'
12
- import {
13
- findAssociatedTokenAddress,
14
- findVaultAddress,
15
- getVaultTypeAccountPublicKey,
16
- getUshMintPublicKey,
17
- getVaultSystemStatePublicKey,
18
- getPoolPublicKeyForMint,
19
- getHedgeMintPublicKey,
20
- } from '../Constants'
21
-
22
- import { v4 as uuidv4 } from 'uuid'
23
- import { parseAnchorErrors } from '../utils/Errors'
24
- import sendAndConfirmWithDebug from '../utils/sendAndConfirmWithDebug'
25
- import { Vault } from '../idl/vault'
26
-
27
- export interface VaultTypeConfig {
28
- maxDebtExtended?: BN
29
- minDebtPerVault?: BN
30
- loanInitFee?: BN
31
- emergencyModeThreshold?: BN
32
-
33
- oracleChainlink?: PublicKey
34
- oraclePyth?: PublicKey
35
- oracleSwitchboard?: PublicKey
36
-
37
- priorityPyth?: number
38
- priorityChainlink?: number
39
- prioritySwitchboard?: number
40
-
41
- deprecated?: boolean
42
- }
43
-
44
- export async function transferVault(
45
- program: Program<Vault>,
46
- provider: Provider,
47
- payer: Signer,
48
- vaultTypeAccount: PublicKey,
49
- oracleInfoAccount: PublicKey,
50
- config: VaultTypeConfig
51
- ): Promise<PublicKey> {
52
- const vaultSystemStatePublicKey = await getVaultSystemStatePublicKey()
53
- const transaction = new Transaction().add(
54
- await transferVaultInstruction(
55
- program,
56
- vaultSystemStatePublicKey,
57
- payer.publicKey,
58
- vaultTypeAccount,
59
- oracleInfoAccount,
60
- config
61
- )
62
- )
63
-
64
- await sendAndConfirmWithDebug(provider.connection, transaction, [payer])
65
- return vaultSystemStatePublicKey
66
- }
67
-
68
- export async function transferVaultInstruction(
69
- program: Program<Vault>,
70
- vaultSystemStatePublicKey: PublicKey,
71
- payerPublicKey: PublicKey,
72
- vaultTypeAccount: PublicKey,
73
- oracleInfoAccount: PublicKey,
74
- vaultTypeConfig: VaultTypeConfig
75
- ): Promise<TransactionInstruction> {
76
- const config = {
77
- maxDebtExtended: vaultTypeConfig.maxDebtExtended ?? null,
78
- minDebtPerVault: vaultTypeConfig.minDebtPerVault ?? null,
79
- loanInitFee: vaultTypeConfig.loanInitFee ?? null,
80
- emergencyModeThreshold: vaultTypeConfig.emergencyModeThreshold ?? null,
81
- oracleChainlink: vaultTypeConfig.oracleChainlink ?? null,
82
- oraclePyth: vaultTypeConfig.oraclePyth ?? null,
83
- oracleSwitchboard: vaultTypeConfig.oracleSwitchboard ?? null,
84
- deprecated: vaultTypeConfig.deprecated ?? null,
85
- priorityPyth: vaultTypeConfig.priorityPyth ?? null,
86
- priorityChainlink: vaultTypeConfig.priorityChainlink ?? null,
87
- prioritySwitchboard: vaultTypeConfig.prioritySwitchboard ?? null,
88
- }
89
-
90
- return await program.methods
91
- .updateVaultType(config)
92
- .accounts({
93
- payer: payerPublicKey,
94
- vaultSystemState: vaultSystemStatePublicKey,
95
- vaultType: vaultTypeAccount,
96
- oracleInfoAccount: oracleInfoAccount,
97
- })
98
- .instruction()
99
- }