@kamino-finance/klend-sdk 5.14.0 → 5.14.1-beta.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.
- package/dist/classes/configItems.d.ts +166 -0
- package/dist/classes/configItems.d.ts.map +1 -0
- package/dist/classes/configItems.js +202 -0
- package/dist/classes/configItems.js.map +1 -0
- package/dist/classes/farm_utils.d.ts.map +1 -1
- package/dist/classes/farm_utils.js +3 -10
- package/dist/classes/farm_utils.js.map +1 -1
- package/dist/classes/manager.d.ts +6 -21
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +40 -311
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/obligation.d.ts.map +1 -1
- package/dist/classes/obligation.js +14 -0
- package/dist/classes/obligation.js.map +1 -1
- package/dist/classes/reserve.d.ts +5 -14
- package/dist/classes/reserve.d.ts.map +1 -1
- package/dist/classes/reserve.js +91 -463
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/shared.d.ts +0 -1
- package/dist/classes/shared.d.ts.map +1 -1
- package/dist/classes/shared.js.map +1 -1
- package/dist/classes/utils.d.ts +1 -0
- package/dist/classes/utils.d.ts.map +1 -1
- package/dist/classes/utils.js +12 -0
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +1 -11
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +6 -54
- package/dist/classes/vault.js.map +1 -1
- package/dist/client_kamino_manager.d.ts.map +1 -1
- package/dist/client_kamino_manager.js +27 -26
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/idl.json +186 -9
- package/dist/idl_codegen/accounts/GlobalConfig.d.ts +40 -0
- package/dist/idl_codegen/accounts/GlobalConfig.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/GlobalConfig.js +116 -0
- package/dist/idl_codegen/accounts/GlobalConfig.js.map +1 -0
- package/dist/idl_codegen/accounts/LendingMarket.d.ts +24 -3
- package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/LendingMarket.js +25 -7
- package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
- package/dist/idl_codegen/accounts/index.d.ts +2 -0
- package/dist/idl_codegen/accounts/index.d.ts.map +1 -1
- package/dist/idl_codegen/accounts/index.js +3 -1
- package/dist/idl_codegen/accounts/index.js.map +1 -1
- package/dist/idl_codegen/errors/custom.d.ts +25 -1
- package/dist/idl_codegen/errors/custom.d.ts.map +1 -1
- package/dist/idl_codegen/errors/custom.js +43 -1
- package/dist/idl_codegen/errors/custom.js.map +1 -1
- package/dist/idl_codegen/instructions/idlMissingTypes.d.ts +2 -1
- package/dist/idl_codegen/instructions/idlMissingTypes.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/idlMissingTypes.js +2 -1
- package/dist/idl_codegen/instructions/idlMissingTypes.js.map +1 -1
- package/dist/idl_codegen/instructions/index.d.ts +6 -0
- package/dist/idl_codegen/instructions/index.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/index.js +7 -1
- package/dist/idl_codegen/instructions/index.js.map +1 -1
- package/dist/idl_codegen/instructions/initGlobalConfig.d.ts +10 -0
- package/dist/idl_codegen/instructions/initGlobalConfig.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/initGlobalConfig.js +19 -0
- package/dist/idl_codegen/instructions/initGlobalConfig.js.map +1 -0
- package/dist/idl_codegen/instructions/updateGlobalConfig.d.ts +13 -0
- package/dist/idl_codegen/instructions/updateGlobalConfig.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/updateGlobalConfig.js +61 -0
- package/dist/idl_codegen/instructions/updateGlobalConfig.js.map +1 -0
- package/dist/idl_codegen/instructions/updateGlobalConfigAdmin.d.ts +7 -0
- package/dist/idl_codegen/instructions/updateGlobalConfigAdmin.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/updateGlobalConfigAdmin.js +16 -0
- package/dist/idl_codegen/instructions/updateGlobalConfigAdmin.js.map +1 -0
- package/dist/idl_codegen/instructions/updateReserveConfig.d.ts +4 -3
- package/dist/idl_codegen/instructions/updateReserveConfig.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/updateReserveConfig.js +5 -3
- package/dist/idl_codegen/instructions/updateReserveConfig.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawProtocolFee.d.ts +2 -2
- package/dist/idl_codegen/instructions/withdrawProtocolFee.d.ts.map +1 -1
- package/dist/idl_codegen/instructions/withdrawProtocolFee.js +2 -6
- package/dist/idl_codegen/instructions/withdrawProtocolFee.js.map +1 -1
- package/dist/idl_codegen/types/UpdateGlobalConfigMode.d.ts +32 -0
- package/dist/idl_codegen/types/UpdateGlobalConfigMode.d.ts.map +1 -0
- package/dist/idl_codegen/types/UpdateGlobalConfigMode.js +108 -0
- package/dist/idl_codegen/types/UpdateGlobalConfigMode.js.map +1 -0
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +33 -7
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js +60 -12
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
- package/dist/idl_codegen/types/index.d.ts +6 -2
- package/dist/idl_codegen/types/index.d.ts.map +1 -1
- package/dist/idl_codegen/types/index.js +3 -1
- package/dist/idl_codegen/types/index.js.map +1 -1
- package/dist/utils/accountListing.d.ts +1 -1
- package/dist/utils/accountListing.d.ts.map +1 -1
- package/dist/utils/accountListing.js +2 -2
- package/dist/utils/accountListing.js.map +1 -1
- package/dist/utils/api.d.ts +1 -5
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +6 -15
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/constants.d.ts +1 -1
- package/dist/utils/constants.js +1 -1
- package/dist/utils/lookupTable.d.ts.map +1 -1
- package/dist/utils/lookupTable.js +1 -6
- package/dist/utils/lookupTable.js.map +1 -1
- package/dist/utils/managerTypes.d.ts.map +1 -1
- package/dist/utils/managerTypes.js +10 -4
- package/dist/utils/managerTypes.js.map +1 -1
- package/dist/utils/seeds.d.ts +16 -0
- package/dist/utils/seeds.d.ts.map +1 -1
- package/dist/utils/seeds.js +23 -1
- package/dist/utils/seeds.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/configItems.ts +295 -0
- package/src/classes/farm_utils.ts +3 -11
- package/src/classes/manager.ts +52 -417
- package/src/classes/obligation.ts +16 -0
- package/src/classes/reserve.ts +119 -783
- package/src/classes/shared.ts +0 -1
- package/src/classes/utils.ts +12 -0
- package/src/classes/vault.ts +7 -75
- package/src/client_kamino_manager.ts +42 -34
- package/src/idl.json +186 -9
- package/src/idl_codegen/accounts/GlobalConfig.ts +125 -0
- package/src/idl_codegen/accounts/LendingMarket.ts +41 -9
- package/src/idl_codegen/accounts/index.ts +2 -0
- package/src/idl_codegen/errors/custom.ts +45 -0
- package/src/idl_codegen/instructions/idlMissingTypes.ts +4 -2
- package/src/idl_codegen/instructions/index.ts +9 -0
- package/src/idl_codegen/instructions/initGlobalConfig.ts +30 -0
- package/src/idl_codegen/instructions/updateGlobalConfig.ts +47 -0
- package/src/idl_codegen/instructions/updateGlobalConfigAdmin.ts +24 -0
- package/src/idl_codegen/instructions/updateReserveConfig.ts +7 -5
- package/src/idl_codegen/instructions/withdrawProtocolFee.ts +4 -8
- package/src/idl_codegen/types/UpdateGlobalConfigMode.ts +90 -0
- package/src/idl_codegen/types/UpdateLendingMarketMode.ts +73 -13
- package/src/idl_codegen/types/index.ts +16 -2
- package/src/utils/accountListing.ts +2 -3
- package/src/utils/api.ts +6 -20
- package/src/utils/constants.ts +1 -1
- package/src/utils/lookupTable.ts +1 -7
- package/src/utils/managerTypes.ts +10 -4
- package/src/utils/seeds.ts +25 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { Layout } from '@coral-xyz/borsh';
|
|
2
|
+
/**
|
|
3
|
+
* An object literal specifying *all* "update mode" enum values (of type {@code M}) and their corresponding config items
|
|
4
|
+
* (belonging to a top-level config struct {@code C}).
|
|
5
|
+
*
|
|
6
|
+
* An instance of this type is needed to construct a {@link ConfigUpdater}, as shown below.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```
|
|
10
|
+
* // Define the updater using a "map" - the line below would NOT compile if you forgot about any `StarWarsUpdateMode`:
|
|
11
|
+
* const STAR_WARS_UPDATER = new ConfigUpdater(StarWarsUpdateMode.fromDecoded, StarWars, (config) => ({
|
|
12
|
+
* [StarWarsUpdateMode.ANewHope.kind]: config.aNewHope,
|
|
13
|
+
* [StarWarsUpdateMode.TheEmpireStrikesBack.kind]: config.theEmpireStrikesBack,
|
|
14
|
+
* [StarWarsUpdateMode.ReturnOfTheJedi.kind]: config.returnOfTheJedi,
|
|
15
|
+
* }));
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export type ConfigItemMap<M extends BorshEnum, C> = BorshEnumMap<M, SingleOrArray<ConfigItem<C, any>>>;
|
|
19
|
+
/**
|
|
20
|
+
* As advertised.
|
|
21
|
+
*/
|
|
22
|
+
export type SingleOrArray<T> = T | T[];
|
|
23
|
+
/**
|
|
24
|
+
* A set of everything required to create an update ix for a single config item of type {@code A} belonging to a
|
|
25
|
+
* config object of type {@code C}.
|
|
26
|
+
*/
|
|
27
|
+
export type ConfigItem<C, A> = {
|
|
28
|
+
readonly __layout: Layout<A>;
|
|
29
|
+
readonly __getter: Getter<C, A>;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* A {@link ConfigItem} representing a borsh structure.
|
|
33
|
+
*
|
|
34
|
+
* Such structure may be used:
|
|
35
|
+
* - either directly (i.e. a borsh-serialized "fat" config item, e.g. `ReserveConfig.borrowRateCurve`),
|
|
36
|
+
* - or just to access its fields (e.g. `ReserveConfig.tokenInfo.pythConfiguration.price`).
|
|
37
|
+
*/
|
|
38
|
+
export type StructConfigItem<C, A extends Record<string, any>> = ConfigItem<C, A> & {
|
|
39
|
+
[K in keyof A]: A[K] extends object ? StructConfigItem<C, A[K]> : ConfigItem<C, A>;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* A syntactic sugar allowing for auto-completion of values within {@link ConfigItemMap}.
|
|
43
|
+
*/
|
|
44
|
+
export type AnyConfigItem<C, A> = A extends Record<string, any> ? StructConfigItem<C, A> : ConfigItem<C, A>;
|
|
45
|
+
/**
|
|
46
|
+
* A composite {@link ConfigItem}, allowing to encode multiple fields together.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```
|
|
50
|
+
* ...
|
|
51
|
+
* [CartoonsUpdateMode.UpdateTomAndJerry.discriminator]: new CompositeConfigItem(
|
|
52
|
+
* CARTOONS.value().characters.cats.tom,
|
|
53
|
+
* CARTOONS.value().characters.rodents.jerry
|
|
54
|
+
* ),
|
|
55
|
+
* ...
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare class CompositeConfigItem<C> implements ConfigItem<C, Record<string, any>> {
|
|
59
|
+
readonly __layout: Layout<Record<string, any>>;
|
|
60
|
+
readonly __getter: Getter<C, Record<string, any>>;
|
|
61
|
+
constructor(...components: AnyConfigItem<C, any>[]);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Creates an array of config items - one per each element of the given array.
|
|
65
|
+
*
|
|
66
|
+
* An example use-case is `LendingMarket.elevationGroups[]`: to update all of them, we need N ixs:
|
|
67
|
+
* - `updateLendingMarket(mode = ElevationGroup, value = elevationGroups[0])`
|
|
68
|
+
* - `updateLendingMarket(mode = ElevationGroup, value = elevationGroups[1])`
|
|
69
|
+
* - `updateLendingMarket(mode = ElevationGroup, value = elevationGroups[2])`
|
|
70
|
+
* ...
|
|
71
|
+
*
|
|
72
|
+
* So: conceptually, the *array* is not "a config item". Each *slot* in that array is its own config item.
|
|
73
|
+
*/
|
|
74
|
+
export declare function arrayElementConfigItems<C, A>(arrayConfigItem: ConfigItem<C, A[]>): ConfigItem<C, A>[];
|
|
75
|
+
/**
|
|
76
|
+
* A constructor reference of a borsh structure.
|
|
77
|
+
*/
|
|
78
|
+
export interface BorshStructClass<C> {
|
|
79
|
+
new (...args: any[]): C;
|
|
80
|
+
layout: any;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* A missing common type for borsh enums, which borsh should really have provided itself.
|
|
84
|
+
*/
|
|
85
|
+
export interface BorshEnum {
|
|
86
|
+
kind: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* A part of a {@link ConfigUpdater} responsible for a single config item.
|
|
90
|
+
*/
|
|
91
|
+
export declare class ConfigItemUpdater<C, A> {
|
|
92
|
+
private readonly item;
|
|
93
|
+
constructor(item: ConfigItem<C, A>);
|
|
94
|
+
/**
|
|
95
|
+
* Returns a serialized value of the specific config item extracted from the given top-level {@code newConfig}, or
|
|
96
|
+
* `undefined` if the value has not changed from the given {@code currentConfig}.
|
|
97
|
+
*/
|
|
98
|
+
encodeUpdatedItemFrom(currentConfig: C | undefined, newConfig: C): Uint8Array | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Borsh-serializes the given value.
|
|
101
|
+
*
|
|
102
|
+
* Only exposed for some legacy callers which still construct the update ixs manually (in tests).
|
|
103
|
+
*/
|
|
104
|
+
encodeItem(item: A): Uint8Array;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* A resolver of config item changes.
|
|
108
|
+
*/
|
|
109
|
+
export declare class ConfigUpdater<M extends BorshEnum, C> {
|
|
110
|
+
private readonly itemUpdaters;
|
|
111
|
+
/**
|
|
112
|
+
* A resolving constructor.
|
|
113
|
+
*
|
|
114
|
+
* The inputs:
|
|
115
|
+
* - `fromDecoded`: a reference to the codegen'ed enum-decoding function, e.g. `UpdateConfigMode.fromDecoded`. Needed
|
|
116
|
+
* to turn the `<enumClass>.kind` strings into enums (i.e. instances of `M`).
|
|
117
|
+
* - `configClass`: a reference to the codegen'ed top-level config class, e.g. `ReserveConfig`. Need to create a
|
|
118
|
+
* completion helper for the `itemMapBuilder`.
|
|
119
|
+
* - `itemMapBuilder`: a function building a {@link ConfigItemMap} using the completion helper provided as its
|
|
120
|
+
* argument, e.g. `(config) => ({[UpdateLendingMarketMode.UpdateImmutableFlag.kind]: config.immutable, ...})`.
|
|
121
|
+
*
|
|
122
|
+
* See the usage example at {@link ConfigItemMap}.
|
|
123
|
+
*/
|
|
124
|
+
constructor(fromDecoded: (mode: any) => M, configClass: BorshStructClass<C>, itemMapBuilder: (config: AnyConfigItem<C, C>) => ConfigItemMap<M, C>);
|
|
125
|
+
/**
|
|
126
|
+
* Returns all changes between the given current and new configs - in particular, this will be *all* supported fields'
|
|
127
|
+
* changes if the previous config does not exist.
|
|
128
|
+
*
|
|
129
|
+
* Please note that more than one {@link EncodedConfigUpdate}s can be associated with a single `M` enum value (in
|
|
130
|
+
* cases where e.g. an array property is updated by individual updates of its elements).
|
|
131
|
+
*/
|
|
132
|
+
encodeAllUpdates(currentConfig: C | undefined, newConfig: C): EncodedConfigUpdate<M>[];
|
|
133
|
+
/**
|
|
134
|
+
* Gets the single updater of the given config item.
|
|
135
|
+
*
|
|
136
|
+
* Throws an error if the updates are not supported (e.g. for deprecated modes) or if the given item is handled by
|
|
137
|
+
* multiple updaters (e.g. for an array property) - to handle these cases, use {@link allForMode()}.
|
|
138
|
+
*/
|
|
139
|
+
forMode(mode: M): ConfigItemUpdater<C, any>;
|
|
140
|
+
/**
|
|
141
|
+
* Gets all the updaters of the given config item.
|
|
142
|
+
*
|
|
143
|
+
* This may be an empty array (e.g. for deprecated modes), or multiple elements (e.g. if an array property is updated
|
|
144
|
+
* by individual updates of its elements). If you expect a single updater, use {@link forMode()}.
|
|
145
|
+
*/
|
|
146
|
+
allForMode(mode: M): ConfigItemUpdater<C, any>[];
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* The update mode discriminator and the serialized value needed to construct an update ix.
|
|
150
|
+
*/
|
|
151
|
+
export type EncodedConfigUpdate<M extends BorshEnum> = {
|
|
152
|
+
mode: M;
|
|
153
|
+
value: Uint8Array;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Borsh-serializes the given value according to the given layout.
|
|
157
|
+
*
|
|
158
|
+
* Only exposed for some legacy callers which still construct the update ixs manually (in tests).
|
|
159
|
+
*/
|
|
160
|
+
export declare function encodeUsingLayout<T>(layout: Layout<T>, value: T): Uint8Array;
|
|
161
|
+
type BorshEnumMap<M extends BorshEnum, T> = {
|
|
162
|
+
[Key in M['kind']]: T;
|
|
163
|
+
};
|
|
164
|
+
type Getter<C, A> = (config: C) => A;
|
|
165
|
+
export {};
|
|
166
|
+
//# sourceMappingURL=configItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configItems.d.ts","sourceRoot":"","sources":["../../src/classes/configItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConfigUpdater = exports.ConfigItemUpdater = exports.CompositeConfigItem = void 0;
|
|
4
|
+
exports.arrayElementConfigItems = arrayElementConfigItems;
|
|
5
|
+
exports.encodeUsingLayout = encodeUsingLayout;
|
|
6
|
+
const borsh_1 = require("@coral-xyz/borsh");
|
|
7
|
+
const utils_1 = require("./utils");
|
|
8
|
+
const buffer_1 = require("buffer");
|
|
9
|
+
/**
|
|
10
|
+
* A composite {@link ConfigItem}, allowing to encode multiple fields together.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```
|
|
14
|
+
* ...
|
|
15
|
+
* [CartoonsUpdateMode.UpdateTomAndJerry.discriminator]: new CompositeConfigItem(
|
|
16
|
+
* CARTOONS.value().characters.cats.tom,
|
|
17
|
+
* CARTOONS.value().characters.rodents.jerry
|
|
18
|
+
* ),
|
|
19
|
+
* ...
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
class CompositeConfigItem {
|
|
23
|
+
__layout;
|
|
24
|
+
__getter;
|
|
25
|
+
constructor(...components) {
|
|
26
|
+
this.__layout = (0, borsh_1.struct)(components.map((component, index) => component.__layout.replicate(index.toString())));
|
|
27
|
+
this.__getter = (config) => Object.fromEntries(components.map((component, index) => [index.toString(), component.__getter(config)]));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.CompositeConfigItem = CompositeConfigItem;
|
|
31
|
+
/**
|
|
32
|
+
* Creates an array of config items - one per each element of the given array.
|
|
33
|
+
*
|
|
34
|
+
* An example use-case is `LendingMarket.elevationGroups[]`: to update all of them, we need N ixs:
|
|
35
|
+
* - `updateLendingMarket(mode = ElevationGroup, value = elevationGroups[0])`
|
|
36
|
+
* - `updateLendingMarket(mode = ElevationGroup, value = elevationGroups[1])`
|
|
37
|
+
* - `updateLendingMarket(mode = ElevationGroup, value = elevationGroups[2])`
|
|
38
|
+
* ...
|
|
39
|
+
*
|
|
40
|
+
* So: conceptually, the *array* is not "a config item". Each *slot* in that array is its own config item.
|
|
41
|
+
*/
|
|
42
|
+
function arrayElementConfigItems(arrayConfigItem) {
|
|
43
|
+
const arrayGetter = arrayConfigItem.__getter;
|
|
44
|
+
const wrappedSequenceLayout = arrayConfigItem.__layout;
|
|
45
|
+
const sequenceLayout = wrappedSequenceLayout.layout?.fields?.[0];
|
|
46
|
+
if (sequenceLayout === undefined) {
|
|
47
|
+
throw new Error(`unexpected layout of the input array config item: ${(0, utils_1.toJson)(wrappedSequenceLayout, true)}`);
|
|
48
|
+
}
|
|
49
|
+
return new Array(sequenceLayout.count)
|
|
50
|
+
.fill(sequenceLayout.elementLayout)
|
|
51
|
+
.map((elementLayout, index) => ({
|
|
52
|
+
__layout: elementLayout,
|
|
53
|
+
__getter: (config) => arrayGetter(config)[index],
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A part of a {@link ConfigUpdater} responsible for a single config item.
|
|
58
|
+
*/
|
|
59
|
+
class ConfigItemUpdater {
|
|
60
|
+
item;
|
|
61
|
+
constructor(item) {
|
|
62
|
+
this.item = item;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Returns a serialized value of the specific config item extracted from the given top-level {@code newConfig}, or
|
|
66
|
+
* `undefined` if the value has not changed from the given {@code currentConfig}.
|
|
67
|
+
*/
|
|
68
|
+
encodeUpdatedItemFrom(currentConfig, newConfig) {
|
|
69
|
+
const getter = this.item.__getter;
|
|
70
|
+
const newItemValue = this.encodeItem(getter(newConfig));
|
|
71
|
+
if (currentConfig === undefined) {
|
|
72
|
+
return newItemValue;
|
|
73
|
+
}
|
|
74
|
+
if ((0, utils_1.blobEquals)(newItemValue, this.encodeItem(getter(currentConfig)))) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
return newItemValue;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Borsh-serializes the given value.
|
|
81
|
+
*
|
|
82
|
+
* Only exposed for some legacy callers which still construct the update ixs manually (in tests).
|
|
83
|
+
*/
|
|
84
|
+
encodeItem(item) {
|
|
85
|
+
return encodeUsingLayout(this.item.__layout, item);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.ConfigItemUpdater = ConfigItemUpdater;
|
|
89
|
+
/**
|
|
90
|
+
* A resolver of config item changes.
|
|
91
|
+
*/
|
|
92
|
+
class ConfigUpdater {
|
|
93
|
+
itemUpdaters;
|
|
94
|
+
/**
|
|
95
|
+
* A resolving constructor.
|
|
96
|
+
*
|
|
97
|
+
* The inputs:
|
|
98
|
+
* - `fromDecoded`: a reference to the codegen'ed enum-decoding function, e.g. `UpdateConfigMode.fromDecoded`. Needed
|
|
99
|
+
* to turn the `<enumClass>.kind` strings into enums (i.e. instances of `M`).
|
|
100
|
+
* - `configClass`: a reference to the codegen'ed top-level config class, e.g. `ReserveConfig`. Need to create a
|
|
101
|
+
* completion helper for the `itemMapBuilder`.
|
|
102
|
+
* - `itemMapBuilder`: a function building a {@link ConfigItemMap} using the completion helper provided as its
|
|
103
|
+
* argument, e.g. `(config) => ({[UpdateLendingMarketMode.UpdateImmutableFlag.kind]: config.immutable, ...})`.
|
|
104
|
+
*
|
|
105
|
+
* See the usage example at {@link ConfigItemMap}.
|
|
106
|
+
*/
|
|
107
|
+
constructor(fromDecoded, configClass, itemMapBuilder) {
|
|
108
|
+
this.itemUpdaters = new Map(Object.entries(itemMapBuilder(wrap(configClass))).map(([kind, itemOrArray]) => [
|
|
109
|
+
kind,
|
|
110
|
+
[
|
|
111
|
+
fromDecoded({ [kind]: {} }),
|
|
112
|
+
toArray(itemOrArray).map((item) => new ConfigItemUpdater(item)),
|
|
113
|
+
],
|
|
114
|
+
]));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Returns all changes between the given current and new configs - in particular, this will be *all* supported fields'
|
|
118
|
+
* changes if the previous config does not exist.
|
|
119
|
+
*
|
|
120
|
+
* Please note that more than one {@link EncodedConfigUpdate}s can be associated with a single `M` enum value (in
|
|
121
|
+
* cases where e.g. an array property is updated by individual updates of its elements).
|
|
122
|
+
*/
|
|
123
|
+
encodeAllUpdates(currentConfig, newConfig) {
|
|
124
|
+
const updates = [];
|
|
125
|
+
for (const [mode, itemUpdaters] of this.itemUpdaters.values()) {
|
|
126
|
+
for (const itemUpdater of itemUpdaters) {
|
|
127
|
+
const value = itemUpdater.encodeUpdatedItemFrom(currentConfig, newConfig);
|
|
128
|
+
if (value === undefined) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
updates.push({ mode, value });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return updates;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Gets the single updater of the given config item.
|
|
138
|
+
*
|
|
139
|
+
* Throws an error if the updates are not supported (e.g. for deprecated modes) or if the given item is handled by
|
|
140
|
+
* multiple updaters (e.g. for an array property) - to handle these cases, use {@link allForMode()}.
|
|
141
|
+
*/
|
|
142
|
+
forMode(mode) {
|
|
143
|
+
const itemUpdaters = this.allForMode(mode);
|
|
144
|
+
switch (itemUpdaters.length) {
|
|
145
|
+
case 0:
|
|
146
|
+
throw new Error(`updates not supported (updaters for ${mode.kind} were explicitly set to [])`);
|
|
147
|
+
case 1:
|
|
148
|
+
return itemUpdaters[0];
|
|
149
|
+
default:
|
|
150
|
+
throw new Error(`${mode.kind} defines multiple (${itemUpdaters.length}) updaters`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Gets all the updaters of the given config item.
|
|
155
|
+
*
|
|
156
|
+
* This may be an empty array (e.g. for deprecated modes), or multiple elements (e.g. if an array property is updated
|
|
157
|
+
* by individual updates of its elements). If you expect a single updater, use {@link forMode()}.
|
|
158
|
+
*/
|
|
159
|
+
allForMode(mode) {
|
|
160
|
+
const [_mode, itemUpdaters] = this.itemUpdaters.get(mode.kind) ??
|
|
161
|
+
(0, utils_1.orThrow)(`updaters for ${mode.kind} were not set (should not be possible, due to type-safety)`);
|
|
162
|
+
return itemUpdaters;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.ConfigUpdater = ConfigUpdater;
|
|
166
|
+
/**
|
|
167
|
+
* Borsh-serializes the given value according to the given layout.
|
|
168
|
+
*
|
|
169
|
+
* Only exposed for some legacy callers which still construct the update ixs manually (in tests).
|
|
170
|
+
*/
|
|
171
|
+
function encodeUsingLayout(layout, value) {
|
|
172
|
+
const buffer = buffer_1.Buffer.alloc(layout.span);
|
|
173
|
+
const length = layout.encode(value, buffer, 0);
|
|
174
|
+
if (length !== layout.span) {
|
|
175
|
+
throw new Error(`layout span declared incorrect length ${layout.span}; got ${length}`);
|
|
176
|
+
}
|
|
177
|
+
return Uint8Array.from(buffer);
|
|
178
|
+
}
|
|
179
|
+
// Only internals below:
|
|
180
|
+
function wrap(configClass) {
|
|
181
|
+
return withPotentialChildren({
|
|
182
|
+
__layout: typeof configClass.layout === 'function' ? configClass.layout() : configClass.layout,
|
|
183
|
+
__getter: (config) => config,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
function wrapChild(layout, parent) {
|
|
187
|
+
return withPotentialChildren({
|
|
188
|
+
__layout: layout,
|
|
189
|
+
__getter: (config) => parent.__getter(config)[layout.property],
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
function withPotentialChildren(item) {
|
|
193
|
+
for (const fieldLayout of item.__layout.fields ?? []) {
|
|
194
|
+
const structItem = item;
|
|
195
|
+
structItem[fieldLayout.property] = wrapChild(fieldLayout, structItem);
|
|
196
|
+
}
|
|
197
|
+
return item;
|
|
198
|
+
}
|
|
199
|
+
function toArray(singleOrArray) {
|
|
200
|
+
return Array.isArray(singleOrArray) ? singleOrArray : [singleOrArray];
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=configItems.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configItems.js","sourceRoot":"","sources":["../../src/classes/configItems.ts"],"names":[],"mappings":";;;AAuFA,0DAaC;AAsJD,8CAOC;AAjQD,4CAAkD;AAClD,mCAAsD;AACtD,mCAAgC;AAkDhC;;;;;;;;;;;;GAYG;AACH,MAAa,mBAAmB;IACrB,QAAQ,CAA8B;IACtC,QAAQ,CAAiC;IAElD,YAAY,GAAG,UAAmC;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAA,cAAM,EAAM,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CACzB,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7G,CAAC;CACF;AATD,kDASC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB,CAAO,eAAmC;IAC/E,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC;IAC7C,MAAM,qBAAqB,GAAG,eAAe,CAAC,QAAe,CAAC;IAC9D,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAA,cAAM,EAAC,qBAAqB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9G,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;SACnC,IAAI,CAAC,cAAc,CAAC,aAA0B,CAAC;SAC/C,GAAG,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9B,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;KACjD,CAAC,CAAC,CAAC;AACR,CAAC;AAiBD;;GAEG;AACH,MAAa,iBAAiB;IACC;IAA7B,YAA6B,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAEvD;;;OAGG;IACH,qBAAqB,CAAC,aAA4B,EAAE,SAAY;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,IAAA,kBAAU,EAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,IAAO;QAChB,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;CACF;AA3BD,8CA2BC;AAED;;GAEG;AACH,MAAa,aAAa;IACP,YAAY,CAAmD;IAEhF;;;;;;;;;;;;OAYG;IACH,YACE,WAA6B,EAC7B,WAAgC,EAChC,cAAoE;QAEpE,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CACzB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;YAC7E,IAAI;YACJ;gBACE,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBAC3B,OAAO,CAAC,WAAgD,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;aACrG;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,aAA4B,EAAE,SAAY;QACzD,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,WAAW,CAAC,qBAAqB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBAC1E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,SAAS;gBACX,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAO;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,QAAQ,YAAY,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,IAAI,6BAA6B,CAAC,CAAC;YACjG,KAAK,CAAC;gBACJ,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;YACzB;gBACE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,sBAAsB,YAAY,CAAC,MAAM,YAAY,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAO;QAChB,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,GACzB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,IAAA,eAAO,EAAC,gBAAgB,IAAI,CAAC,IAAI,4DAA4D,CAAC,CAAC;QACjG,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAnFD,sCAmFC;AAUD;;;;GAIG;AACH,SAAgB,iBAAiB,CAAI,MAAiB,EAAE,KAAQ;IAC9D,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,wBAAwB;AAExB,SAAS,IAAI,CAAI,WAAgC;IAC/C,OAAO,qBAAqB,CAAC;QAC3B,QAAQ,EAAE,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM;QAC9F,QAAQ,EAAE,CAAC,MAAS,EAAE,EAAE,CAAC,MAAM;KACzB,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,SAAS,CAChB,MAAiB,EACjB,MAA8B;IAE9B,OAAO,qBAAqB,CAAC;QAC3B,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,CAAC,MAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAS,CAAC;KACnE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAO,IAAyB;IAC5D,KAAK,MAAM,WAAW,IAAK,IAAI,CAAC,QAAgB,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAgC,CAAC;QACpD,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,SAAS,OAAO,CAAI,aAA+B;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farm_utils.d.ts","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"farm_utils.d.ts","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EAET,SAAS,EAKV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAEzC,eAAO,MAAM,2BAA2B,EAAE,SAAyE,CAAC;AAEpH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,eAAe,EAAE,OAAO,EACxB,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAuBnC;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,OAAO,EAC1B,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAkBjC;AAGD,wBAAsB,gCAAgC,CACpD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,EACf,cAAc,EAAE,SAAS,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAKjC;AAED,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,OAAO,EAC1B,WAAW,EAAE,SAAS,EACtB,gBAAgB,CAAC,EAAE,SAAS,GAC3B,OAAO,CAAC,6BAA6B,CAAC,CASxC;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,SAAS,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAK/B;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,sBAAsB,CAAC,CAGjC;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAEhG;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,sBAAsB,EAAE,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,sBAAsB,CAAC;IAClC,UAAU,EAAE,sBAAsB,CAAC;CACpC,CAAC"}
|
|
@@ -13,7 +13,6 @@ exports.getSetupFarmIxsWithFarm = getSetupFarmIxsWithFarm;
|
|
|
13
13
|
exports.getUserSharesInFarm = getUserSharesInFarm;
|
|
14
14
|
exports.setVaultIdForFarmIx = setVaultIdForFarmIx;
|
|
15
15
|
exports.getSharesInFarmUserPosition = getSharesInFarmUserPosition;
|
|
16
|
-
const anchor_1 = require("@coral-xyz/anchor");
|
|
17
16
|
const farms_sdk_1 = require("@kamino-finance/farms-sdk");
|
|
18
17
|
const web3_js_1 = require("@solana/web3.js");
|
|
19
18
|
const decimal_1 = __importDefault(require("decimal.js/decimal"));
|
|
@@ -55,8 +54,9 @@ async function getFarmUnstakeIx(connection, user, lamportsToUnstake, farmAddress
|
|
|
55
54
|
if (!userState) {
|
|
56
55
|
throw new Error(`User state not found for ${user}`);
|
|
57
56
|
}
|
|
58
|
-
const
|
|
59
|
-
|
|
57
|
+
const x = new decimal_1.default(lamportsToUnstake.toString()).mul(farms_sdk_1.WAD);
|
|
58
|
+
console.log('lamportsToUnstake', lamportsToUnstake.toString());
|
|
59
|
+
return farmClient.unstakeIx(user, farmAddress, x.toString(), scopePricesArg);
|
|
60
60
|
}
|
|
61
61
|
// withdrawing from a farm is a 2 step operation: first we unstake the tokens from the farm, then we withdraw them
|
|
62
62
|
async function getFarmWithdrawUnstakedDepositIx(connection, user, farm, stakeTokenMint) {
|
|
@@ -81,13 +81,6 @@ async function getSetupFarmIxsWithFarm(connection, farmAdmin, farmTokenMint) {
|
|
|
81
81
|
}
|
|
82
82
|
async function getUserSharesInFarm(connection, user, farm, farmTokenDecimals) {
|
|
83
83
|
const farmClient = new farms_sdk_1.Farms(connection);
|
|
84
|
-
const userStatePDA = (0, farms_sdk_1.getUserStatePDA)(farmClient.getProgramID(), farm, user);
|
|
85
|
-
// if the user state does not exist, return 0
|
|
86
|
-
const userState = await connection.getAccountInfo(userStatePDA);
|
|
87
|
-
if (!userState) {
|
|
88
|
-
return new decimal_1.default(0);
|
|
89
|
-
}
|
|
90
|
-
// if the user state exists, return the user shares
|
|
91
84
|
return farmClient.getUserTokensInUndelegatedFarm(user, farm, farmTokenDecimals);
|
|
92
85
|
}
|
|
93
86
|
async function setVaultIdForFarmIx(connection, farmAdmin, farm, vault) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farm_utils.js","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"farm_utils.js","sourceRoot":"","sources":["../../src/classes/farm_utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { AccountInfo, Connection, Keypair, ParsedAccountData, PublicKey, TransactionInstruction } from '@solana/web3.js';
|
|
2
2
|
import { KaminoVault, KaminoVaultClient, KaminoVaultConfig, MarketOverview, ReserveAllocationConfig, ReserveOverview, SimulatedVaultHoldingsWithEarnedInterest, VaultFees, VaultFeesPct, VaultHolder, VaultHoldings, VaultHoldingsWithUSDValue, VaultOverview, VaultReserveTotalBorrowedAndInvested } from './vault';
|
|
3
|
-
import { AddAssetToMarketParams, CreateKaminoMarketParams, ENV, KaminoMarket, KaminoReserve, LendingMarket,
|
|
4
|
-
import { ReserveConfig } from '../idl_codegen/types';
|
|
3
|
+
import { AddAssetToMarketParams, CreateKaminoMarketParams, ENV, KaminoMarket, KaminoReserve, LendingMarket, MarketWithAddress, PubkeyHashMap, Reserve, ReserveWithAddress, ScopeOracleConfig } from '../lib';
|
|
4
|
+
import { ReserveConfig, UpdateLendingMarketModeKind } from '../idl_codegen/types';
|
|
5
5
|
import Decimal from 'decimal.js';
|
|
6
6
|
import { VaultState } from '../idl_codegen_kamino_vault/accounts';
|
|
7
7
|
import { VaultConfigFieldKind } from '../idl_codegen_kamino_vault/types';
|
|
8
8
|
import { AcceptVaultOwnershipIxs, APYs, DepositIxs, InitVaultIxs, ReserveAllocationOverview, SyncVaultLUTIxs, UpdateReserveAllocationIxs, UpdateVaultConfigIxs, UserSharesForVault, WithdrawAndBlockReserveIxs, WithdrawIxs } from './vault_types';
|
|
9
9
|
import { FarmState } from '@kamino-finance/farms-sdk/dist';
|
|
10
10
|
import { WalletType } from '../utils/multisig';
|
|
11
|
+
import { ConfigUpdater } from './configItems';
|
|
11
12
|
/**
|
|
12
13
|
* KaminoManager is a class that provides a high-level interface to interact with the Kamino Lend and Kamino Vault programs, in order to create and manage a market, as well as vaults
|
|
13
14
|
*/
|
|
@@ -257,7 +258,7 @@ export declare class KaminoManager {
|
|
|
257
258
|
* Get all lending markets
|
|
258
259
|
* @returns an array of all lending markets
|
|
259
260
|
*/
|
|
260
|
-
getAllMarkets(
|
|
261
|
+
getAllMarkets(): Promise<KaminoMarket[]>;
|
|
261
262
|
/**
|
|
262
263
|
* Get all vaults for owner
|
|
263
264
|
* @param owner the pubkey of the vaults owner
|
|
@@ -320,7 +321,7 @@ export declare class KaminoManager {
|
|
|
320
321
|
*/
|
|
321
322
|
getVaultHoldingsWithPrice(vault: VaultState, price: Decimal, slot?: number, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>, currentSlot?: number): Promise<VaultHoldingsWithUSDValue>;
|
|
322
323
|
/**
|
|
323
|
-
* This will return an VaultOverview object that encapsulates all the information about the vault, including the holdings, reserves details, theoretical APY,
|
|
324
|
+
* This will return an VaultOverview object that encapsulates all the information about the vault, including the holdings, reserves details, theoretical APY, utilization ratio and total borrowed amount
|
|
324
325
|
* @param vault - the kamino vault to get available liquidity to withdraw for
|
|
325
326
|
* @param price - the price of the token in the vault (e.g. USDC)
|
|
326
327
|
* @param [slot] - the slot for which to retrieve the vault overview for. Optional. If not provided the function will fetch the current slot
|
|
@@ -361,14 +362,6 @@ export declare class KaminoManager {
|
|
|
361
362
|
* @returns a struct containing estimated gross APY and net APY (gross - vault fees) for the vault
|
|
362
363
|
*/
|
|
363
364
|
getVaultTheoreticalAPY(vault: VaultState, slot: number, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<APYs>;
|
|
364
|
-
/**
|
|
365
|
-
* This will return the APY of the vault based on the current invested amounts; for percentage it needs multiplication by 100
|
|
366
|
-
* @param vault - the kamino vault to get APY for
|
|
367
|
-
* @param slot - current slot
|
|
368
|
-
* @param [vaultReservesMap] - hashmap from each reserve pubkey to the reserve state. Optional. If provided the function will be significantly faster as it will not have to fetch the reserves
|
|
369
|
-
* @returns a struct containing estimated gross APY and net APY (gross - vault fees) for the vault
|
|
370
|
-
*/
|
|
371
|
-
getVaultActualAPY(vault: VaultState, slot: number, vaultReserves?: PubkeyHashMap<PublicKey, KaminoReserve>): Promise<APYs>;
|
|
372
365
|
/**
|
|
373
366
|
* Retrive the total amount of interest earned by the vault since its inception, up to the last interaction with the vault on chain, including what was charged as fees
|
|
374
367
|
* @param vaultState the kamino vault state to get total net yield for
|
|
@@ -401,10 +394,6 @@ export declare class KaminoManager {
|
|
|
401
394
|
* @returns a struct of simulated management and interest fees
|
|
402
395
|
*/
|
|
403
396
|
calculateSimulatedFees(vaultState: VaultState, simulatedCurrentHoldingsWithInterest?: SimulatedVaultHoldingsWithEarnedInterest, currentTimestamp?: Date): Promise<VaultFees>;
|
|
404
|
-
/**
|
|
405
|
-
* This will compute the PDA that is used as delegatee in Farms program to compute the user state PDA
|
|
406
|
-
*/
|
|
407
|
-
computeUserFarmStateForUserInVault(farmProgramID: PublicKey, vault: PublicKey, reserve: PublicKey, user: PublicKey): [PublicKey, number];
|
|
408
397
|
/**
|
|
409
398
|
* This will load the onchain state for all the reserves that the vault has allocations for
|
|
410
399
|
* @param vaultState - the vault state to load reserves for
|
|
@@ -510,9 +499,5 @@ export declare class KaminoManager {
|
|
|
510
499
|
*/
|
|
511
500
|
private static getWalletInfo;
|
|
512
501
|
}
|
|
513
|
-
export
|
|
514
|
-
declare const EXCLUDED_LENDING_MARKET_KEYS: readonly ["version", "bumpSeed", "reserved0", "reserved1", "padding1", "padding2", "elevationGroupPadding", "quoteCurrency"];
|
|
515
|
-
export type ExcludedLendingMarketKey = (typeof EXCLUDED_LENDING_MARKET_KEYS)[number];
|
|
516
|
-
export type LendingMarketKey = Exclude<BaseLendingMarketKey, ExcludedLendingMarketKey>;
|
|
517
|
-
export {};
|
|
502
|
+
export declare const MARKET_UPDATER: ConfigUpdater<UpdateLendingMarketModeKind, LendingMarket>;
|
|
518
503
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,UAAU,EAEV,OAAO,EACP,iBAAiB,EACjB,SAAS,EAGT,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EAEjB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,wCAAwC,EACxC,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,yBAAyB,EACzB,aAAa,EACb,oCAAoC,EACrC,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/classes/manager.ts"],"names":[],"mappings":"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"}
|