@sovryn-zero/lib-base 1.0.0-early.access.2 → 1.0.0-early.access.4

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.
Files changed (35) hide show
  1. package/dist/src/LoC.d.ts +367 -0
  2. package/dist/src/LoC.d.ts.map +1 -0
  3. package/dist/src/LoC.js +423 -0
  4. package/dist/src/LoC.js.map +1 -0
  5. package/dist/src/ObservableZero.d.ts +15 -0
  6. package/dist/src/ObservableZero.d.ts.map +1 -0
  7. package/dist/src/ObservableZero.js +3 -0
  8. package/dist/src/ObservableZero.js.map +1 -0
  9. package/dist/src/PopulatableZero.d.ts +125 -0
  10. package/dist/src/PopulatableZero.d.ts.map +1 -0
  11. package/dist/src/PopulatableZero.js +3 -0
  12. package/dist/src/PopulatableZero.js.map +1 -0
  13. package/dist/src/ReadableZero.d.ts +156 -0
  14. package/dist/src/ReadableZero.d.ts.map +1 -0
  15. package/dist/src/ReadableZero.js +3 -0
  16. package/dist/src/ReadableZero.js.map +1 -0
  17. package/dist/src/SendableZero.d.ts +156 -0
  18. package/dist/src/SendableZero.d.ts.map +1 -0
  19. package/dist/src/SendableZero.js +20 -0
  20. package/dist/src/SendableZero.js.map +1 -0
  21. package/dist/src/TransactableZero.d.ts +414 -0
  22. package/dist/src/TransactableZero.d.ts.map +1 -0
  23. package/dist/src/TransactableZero.js +18 -0
  24. package/dist/src/TransactableZero.js.map +1 -0
  25. package/dist/src/ZeroStore.d.ts +209 -0
  26. package/dist/src/ZeroStore.d.ts.map +1 -0
  27. package/dist/src/ZeroStore.js +209 -0
  28. package/dist/src/ZeroStore.js.map +1 -0
  29. package/dist/src/_CachedReadableZero.d.ts +55 -0
  30. package/dist/src/_CachedReadableZero.d.ts.map +1 -0
  31. package/dist/src/_CachedReadableZero.js +93 -0
  32. package/dist/src/_CachedReadableZero.js.map +1 -0
  33. package/dist/src/constants.js +2 -2
  34. package/package.json +2 -2
  35. package/src/constants.ts +2 -2
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LiquityStore = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const strictEquals = (a, b) => a === b;
9
+ const eq = (a, b) => a.eq(b);
10
+ const equals = (a, b) => a.equals(b);
11
+ const frontendStatusEquals = (a, b) => a.status === "unregistered"
12
+ ? b.status === "unregistered"
13
+ : b.status === "registered" && a.kickbackRate.eq(b.kickbackRate);
14
+ const showFrontendStatus = (x) => x.status === "unregistered"
15
+ ? '{ status: "unregistered" }'
16
+ : `{ status: "registered", kickbackRate: ${x.kickbackRate} }`;
17
+ const wrap = (f) => (...args) => f(...args);
18
+ const difference = (a, b) => Object.fromEntries(Object.entries(a).filter(([key, value]) => value !== b[key]));
19
+ /**
20
+ * Abstract base class of Zero data store implementations.
21
+ *
22
+ * @remarks
23
+ * The type parameter `T` may be used to type extra state added to {@link LiquityStoreState} by the
24
+ * subclass.
25
+ *
26
+ * Implemented by {@link @sovryn-zero/lib-ethers#BlockPolledLiquityStore}.
27
+ *
28
+ * @public
29
+ */
30
+ class LiquityStore {
31
+ constructor() {
32
+ /** Turn console logging on/off. */
33
+ this.logging = false;
34
+ /** @internal */
35
+ this._loaded = false;
36
+ this._listeners = new Set();
37
+ }
38
+ /**
39
+ * The current store state.
40
+ *
41
+ * @remarks
42
+ * Should not be accessed before the store is loaded. Assign a function to
43
+ * {@link LiquityStore.onLoaded | onLoaded} to get a callback when this happens.
44
+ *
45
+ * See {@link LiquityStoreState} for the list of properties returned.
46
+ */
47
+ get state() {
48
+ return Object.assign({}, this._baseState, this._derivedState, this._extraState);
49
+ }
50
+ /**
51
+ * Start monitoring the blockchain for Zero state changes.
52
+ *
53
+ * @remarks
54
+ * The {@link LiquityStore.onLoaded | onLoaded} callback will be called after the state is fetched
55
+ * for the first time.
56
+ *
57
+ * Use the {@link LiquityStore.subscribe | subscribe()} function to register listeners.
58
+ *
59
+ * @returns Function to stop the monitoring.
60
+ */
61
+ start() {
62
+ const doStop = this._doStart();
63
+ return () => {
64
+ doStop();
65
+ this._cancelUpdateIfScheduled();
66
+ };
67
+ }
68
+ _cancelUpdateIfScheduled() {
69
+ if (this._updateTimeoutId !== undefined) {
70
+ clearTimeout(this._updateTimeoutId);
71
+ }
72
+ }
73
+ _scheduleUpdate() {
74
+ this._cancelUpdateIfScheduled();
75
+ this._updateTimeoutId = setTimeout(() => {
76
+ this._updateTimeoutId = undefined;
77
+ this._update();
78
+ }, 30000);
79
+ }
80
+ _logUpdate(name, next, show) {
81
+ if (this.logging) {
82
+ console.log(`${name} updated to ${show ? show(next) : next}`);
83
+ }
84
+ return next;
85
+ }
86
+ _updateIfChanged(equals, name, prev, next, show) {
87
+ return next !== undefined && !equals(prev, next) ? this._logUpdate(name, next, show) : prev;
88
+ }
89
+ _silentlyUpdateIfChanged(equals, prev, next) {
90
+ return next !== undefined && !equals(prev, next) ? next : prev;
91
+ }
92
+ _updateFees(name, prev, next) {
93
+ if (next && !next.equals(prev)) {
94
+ // Filter out fee update spam that happens on every new block by only logging when string
95
+ // representation changes.
96
+ if (`${next}` !== `${prev}`) {
97
+ this._logUpdate(name, next);
98
+ }
99
+ return next;
100
+ }
101
+ else {
102
+ return prev;
103
+ }
104
+ }
105
+ _reduce(baseState, baseStateUpdate) {
106
+ return {
107
+ frontend: this._updateIfChanged(frontendStatusEquals, "frontend", baseState.frontend, baseStateUpdate.frontend, showFrontendStatus),
108
+ ownFrontend: this._updateIfChanged(frontendStatusEquals, "ownFrontend", baseState.ownFrontend, baseStateUpdate.ownFrontend, showFrontendStatus),
109
+ numberOfTroves: this._updateIfChanged(strictEquals, "numberOfTroves", baseState.numberOfTroves, baseStateUpdate.numberOfTroves),
110
+ accountBalance: this._updateIfChanged(eq, "accountBalance", baseState.accountBalance, baseStateUpdate.accountBalance),
111
+ zusdBalance: this._updateIfChanged(eq, "zusdBalance", baseState.zusdBalance, baseStateUpdate.zusdBalance),
112
+ nueBalance: this._updateIfChanged(eq, "nueBalance", baseState.nueBalance, baseStateUpdate.nueBalance),
113
+ zeroBalance: this._updateIfChanged(eq, "zeroBalance", baseState.zeroBalance, baseStateUpdate.zeroBalance),
114
+ collateralSurplusBalance: this._updateIfChanged(eq, "collateralSurplusBalance", baseState.collateralSurplusBalance, baseStateUpdate.collateralSurplusBalance),
115
+ price: this._updateIfChanged(eq, "price", baseState.price, baseStateUpdate.price),
116
+ zusdInStabilityPool: this._updateIfChanged(eq, "zusdInStabilityPool", baseState.zusdInStabilityPool, baseStateUpdate.zusdInStabilityPool),
117
+ total: this._updateIfChanged(equals, "total", baseState.total, baseStateUpdate.total),
118
+ totalRedistributed: this._updateIfChanged(equals, "totalRedistributed", baseState.totalRedistributed, baseStateUpdate.totalRedistributed),
119
+ troveBeforeRedistribution: this._updateIfChanged(equals, "troveBeforeRedistribution", baseState.troveBeforeRedistribution, baseStateUpdate.troveBeforeRedistribution),
120
+ stabilityDeposit: this._updateIfChanged(equals, "stabilityDeposit", baseState.stabilityDeposit, baseStateUpdate.stabilityDeposit),
121
+ remainingStabilityPoolZEROReward: this._silentlyUpdateIfChanged(eq, baseState.remainingStabilityPoolZEROReward, baseStateUpdate.remainingStabilityPoolZEROReward),
122
+ _feesInNormalMode: this._silentlyUpdateIfChanged(equals, baseState._feesInNormalMode, baseStateUpdate._feesInNormalMode),
123
+ zeroStake: this._updateIfChanged(equals, "zeroStake", baseState.zeroStake, baseStateUpdate.zeroStake),
124
+ totalStakedZERO: this._updateIfChanged(eq, "totalStakedZERO", baseState.totalStakedZERO, baseStateUpdate.totalStakedZERO),
125
+ _riskiestTroveBeforeRedistribution: this._silentlyUpdateIfChanged(equals, baseState._riskiestTroveBeforeRedistribution, baseStateUpdate._riskiestTroveBeforeRedistribution)
126
+ };
127
+ }
128
+ _derive({ troveBeforeRedistribution, totalRedistributed, _feesInNormalMode, total, price, _riskiestTroveBeforeRedistribution }) {
129
+ const fees = _feesInNormalMode._setRecoveryMode(total.collateralRatioIsBelowCritical(price));
130
+ return {
131
+ trove: troveBeforeRedistribution.applyRedistribution(totalRedistributed),
132
+ fees,
133
+ borrowingRate: fees.borrowingRate(),
134
+ redemptionRate: fees.redemptionRate(),
135
+ haveUndercollateralizedTroves: _riskiestTroveBeforeRedistribution
136
+ .applyRedistribution(totalRedistributed)
137
+ .collateralRatioIsBelowMinimum(price)
138
+ };
139
+ }
140
+ _reduceDerived(derivedState, derivedStateUpdate) {
141
+ return {
142
+ fees: this._updateFees("fees", derivedState.fees, derivedStateUpdate.fees),
143
+ trove: this._updateIfChanged(equals, "trove", derivedState.trove, derivedStateUpdate.trove),
144
+ borrowingRate: this._silentlyUpdateIfChanged(eq, derivedState.borrowingRate, derivedStateUpdate.borrowingRate),
145
+ redemptionRate: this._silentlyUpdateIfChanged(eq, derivedState.redemptionRate, derivedStateUpdate.redemptionRate),
146
+ haveUndercollateralizedTroves: this._updateIfChanged(strictEquals, "haveUndercollateralizedTroves", derivedState.haveUndercollateralizedTroves, derivedStateUpdate.haveUndercollateralizedTroves)
147
+ };
148
+ }
149
+ _notify(params) {
150
+ // Iterate on a copy of `_listeners`, to avoid notifying any new listeners subscribed by
151
+ // existing listeners, as that could result in infinite loops.
152
+ //
153
+ // Before calling a listener from our copy of `_listeners`, check if it has been removed from
154
+ // the original set. This way we avoid calling listeners that have already been unsubscribed
155
+ // by an earlier listener callback.
156
+ [...this._listeners].forEach(listener => {
157
+ if (this._listeners.has(listener)) {
158
+ listener(params);
159
+ }
160
+ });
161
+ }
162
+ /**
163
+ * Register a state change listener.
164
+ *
165
+ * @param listener - Function that will be called whenever state changes.
166
+ * @returns Function to unregister this listener.
167
+ */
168
+ subscribe(listener) {
169
+ const uniqueListener = wrap(listener);
170
+ this._listeners.add(uniqueListener);
171
+ return () => {
172
+ this._listeners.delete(uniqueListener);
173
+ };
174
+ }
175
+ /** @internal */
176
+ _load(baseState, extraState) {
177
+ assert_1.default(!this._loaded);
178
+ this._baseState = baseState;
179
+ this._derivedState = this._derive(baseState);
180
+ this._extraState = extraState;
181
+ this._loaded = true;
182
+ this._scheduleUpdate();
183
+ if (this.onLoaded) {
184
+ this.onLoaded();
185
+ }
186
+ }
187
+ /** @internal */
188
+ _update(baseStateUpdate, extraStateUpdate) {
189
+ assert_1.default(this._baseState && this._derivedState);
190
+ const oldState = this.state;
191
+ if (baseStateUpdate) {
192
+ this._baseState = this._reduce(this._baseState, baseStateUpdate);
193
+ }
194
+ // Always running this lets us derive state based on passage of time, like baseRate decay
195
+ this._derivedState = this._reduceDerived(this._derivedState, this._derive(this._baseState));
196
+ if (extraStateUpdate) {
197
+ assert_1.default(this._extraState);
198
+ this._extraState = this._reduceExtra(this._extraState, extraStateUpdate);
199
+ }
200
+ this._scheduleUpdate();
201
+ this._notify({
202
+ newState: this.state,
203
+ oldState,
204
+ stateChange: difference(this.state, oldState)
205
+ });
206
+ }
207
+ }
208
+ exports.LiquityStore = LiquityStore;
209
+ //# sourceMappingURL=LiquityStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiquityStore.js","sourceRoot":"","sources":["../../src/LiquityStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { Decimal } from "./Decimal";
2
+ import { Fees } from "./Fees";
3
+ import { ZEROStake } from "./ZEROStake";
4
+ import { StabilityDeposit } from "./StabilityDeposit";
5
+ import { Trove, TroveWithPendingRedistribution, UserTrove } from "./Trove";
6
+ import { FrontendStatus, ReadableLiquity, TroveListingParams } from "./ReadableLiquity";
7
+ /** @internal */
8
+ export declare type _ReadableLiquityWithExtraParamsBase<T extends unknown[]> = {
9
+ [P in keyof ReadableLiquity]: ReadableLiquity[P] extends (...params: infer A) => infer R ? (...params: [...originalParams: A, ...extraParams: T]) => R : never;
10
+ };
11
+ /** @internal */
12
+ export declare type _LiquityReadCacheBase<T extends unknown[]> = {
13
+ [P in keyof ReadableLiquity]: ReadableLiquity[P] extends (...args: infer A) => Promise<infer R> ? (...params: [...originalParams: A, ...extraParams: T]) => R | undefined : never;
14
+ };
15
+ /** @internal */
16
+ export interface _ReadableLiquityWithExtraParams<T extends unknown[]> extends _ReadableLiquityWithExtraParamsBase<T> {
17
+ getTroves(params: TroveListingParams & {
18
+ beforeRedistribution: true;
19
+ }, ...extraParams: T): Promise<TroveWithPendingRedistribution[]>;
20
+ getTroves(params: TroveListingParams, ...extraParams: T): Promise<UserTrove[]>;
21
+ }
22
+ /** @internal */
23
+ export interface _LiquityReadCache<T extends unknown[]> extends _LiquityReadCacheBase<T> {
24
+ getTroves(params: TroveListingParams & {
25
+ beforeRedistribution: true;
26
+ }, ...extraParams: T): TroveWithPendingRedistribution[] | undefined;
27
+ getTroves(params: TroveListingParams, ...extraParams: T): UserTrove[] | undefined;
28
+ }
29
+ /** @internal */
30
+ export declare class _CachedReadableLiquity<T extends unknown[]> implements _ReadableLiquityWithExtraParams<T> {
31
+ private _readable;
32
+ private _cache;
33
+ constructor(readable: _ReadableLiquityWithExtraParams<T>, cache: _LiquityReadCache<T>);
34
+ getTotalRedistributed(...extraParams: T): Promise<Trove>;
35
+ getTroveBeforeRedistribution(address?: string, ...extraParams: T): Promise<TroveWithPendingRedistribution>;
36
+ getTrove(address?: string, ...extraParams: T): Promise<UserTrove>;
37
+ getNumberOfTroves(...extraParams: T): Promise<number>;
38
+ getPrice(...extraParams: T): Promise<Decimal>;
39
+ getTotal(...extraParams: T): Promise<Trove>;
40
+ getStabilityDeposit(address?: string, ...extraParams: T): Promise<StabilityDeposit>;
41
+ getRemainingStabilityPoolZEROReward(...extraParams: T): Promise<Decimal>;
42
+ getZUSDInStabilityPool(...extraParams: T): Promise<Decimal>;
43
+ getZUSDBalance(address?: string, ...extraParams: T): Promise<Decimal>;
44
+ getZEROBalance(address?: string, ...extraParams: T): Promise<Decimal>;
45
+ getCollateralSurplusBalance(address?: string, ...extraParams: T): Promise<Decimal>;
46
+ getTroves(params: TroveListingParams & {
47
+ beforeRedistribution: true;
48
+ }, ...extraParams: T): Promise<TroveWithPendingRedistribution[]>;
49
+ getTroves(params: TroveListingParams, ...extraParams: T): Promise<UserTrove[]>;
50
+ getFees(...extraParams: T): Promise<Fees>;
51
+ getZEROStake(address?: string, ...extraParams: T): Promise<ZEROStake>;
52
+ getTotalStakedZERO(...extraParams: T): Promise<Decimal>;
53
+ getFrontendStatus(address?: string, ...extraParams: T): Promise<FrontendStatus>;
54
+ }
55
+ //# sourceMappingURL=_CachedReadableLiquity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_CachedReadableLiquity.d.ts","sourceRoot":"","sources":["../../src/_CachedReadableLiquity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._CachedReadableLiquity = void 0;
4
+ /** @internal */
5
+ class _CachedReadableLiquity {
6
+ constructor(readable, cache) {
7
+ this._readable = readable;
8
+ this._cache = cache;
9
+ }
10
+ async getTotalRedistributed(...extraParams) {
11
+ var _a;
12
+ return ((_a = this._cache.getTotalRedistributed(...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getTotalRedistributed(...extraParams));
13
+ }
14
+ async getTroveBeforeRedistribution(address, ...extraParams) {
15
+ var _a;
16
+ return ((_a = this._cache.getTroveBeforeRedistribution(address, ...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getTroveBeforeRedistribution(address, ...extraParams));
17
+ }
18
+ async getTrove(address, ...extraParams) {
19
+ const [troveBeforeRedistribution, totalRedistributed] = await Promise.all([
20
+ this.getTroveBeforeRedistribution(address, ...extraParams),
21
+ this.getTotalRedistributed(...extraParams)
22
+ ]);
23
+ return troveBeforeRedistribution.applyRedistribution(totalRedistributed);
24
+ }
25
+ async getNumberOfTroves(...extraParams) {
26
+ var _a;
27
+ return ((_a = this._cache.getNumberOfTroves(...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getNumberOfTroves(...extraParams));
28
+ }
29
+ async getPrice(...extraParams) {
30
+ var _a;
31
+ return (_a = this._cache.getPrice(...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getPrice(...extraParams);
32
+ }
33
+ async getTotal(...extraParams) {
34
+ var _a;
35
+ return (_a = this._cache.getTotal(...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getTotal(...extraParams);
36
+ }
37
+ async getStabilityDeposit(address, ...extraParams) {
38
+ var _a;
39
+ return ((_a = this._cache.getStabilityDeposit(address, ...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getStabilityDeposit(address, ...extraParams));
40
+ }
41
+ async getRemainingStabilityPoolZEROReward(...extraParams) {
42
+ var _a;
43
+ return ((_a = this._cache.getRemainingStabilityPoolZEROReward(...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getRemainingStabilityPoolZEROReward(...extraParams));
44
+ }
45
+ async getZUSDInStabilityPool(...extraParams) {
46
+ var _a;
47
+ return ((_a = this._cache.getZUSDInStabilityPool(...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getZUSDInStabilityPool(...extraParams));
48
+ }
49
+ async getZUSDBalance(address, ...extraParams) {
50
+ var _a;
51
+ return ((_a = this._cache.getZUSDBalance(address, ...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getZUSDBalance(address, ...extraParams));
52
+ }
53
+ async getZEROBalance(address, ...extraParams) {
54
+ var _a;
55
+ return ((_a = this._cache.getZEROBalance(address, ...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getZEROBalance(address, ...extraParams));
56
+ }
57
+ async getCollateralSurplusBalance(address, ...extraParams) {
58
+ var _a;
59
+ return ((_a = this._cache.getCollateralSurplusBalance(address, ...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getCollateralSurplusBalance(address, ...extraParams));
60
+ }
61
+ async getTroves(params, ...extraParams) {
62
+ var _a;
63
+ const { beforeRedistribution, ...restOfParams } = params;
64
+ const [totalRedistributed, troves] = await Promise.all([
65
+ beforeRedistribution ? undefined : this.getTotalRedistributed(...extraParams),
66
+ (_a = this._cache.getTroves({ beforeRedistribution: true, ...restOfParams }, ...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getTroves({ beforeRedistribution: true, ...restOfParams }, ...extraParams)
67
+ ]);
68
+ if (totalRedistributed) {
69
+ return troves.map(trove => trove.applyRedistribution(totalRedistributed));
70
+ }
71
+ else {
72
+ return troves;
73
+ }
74
+ }
75
+ async getFees(...extraParams) {
76
+ var _a;
77
+ return (_a = this._cache.getFees(...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getFees(...extraParams);
78
+ }
79
+ async getZEROStake(address, ...extraParams) {
80
+ var _a;
81
+ return ((_a = this._cache.getZEROStake(address, ...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getZEROStake(address, ...extraParams));
82
+ }
83
+ async getTotalStakedZERO(...extraParams) {
84
+ var _a;
85
+ return ((_a = this._cache.getTotalStakedZERO(...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getTotalStakedZERO(...extraParams));
86
+ }
87
+ async getFrontendStatus(address, ...extraParams) {
88
+ var _a;
89
+ return ((_a = this._cache.getFrontendStatus(address, ...extraParams)) !== null && _a !== void 0 ? _a : this._readable.getFrontendStatus(address, ...extraParams));
90
+ }
91
+ }
92
+ exports._CachedReadableLiquity = _CachedReadableLiquity;
93
+ //# sourceMappingURL=_CachedReadableLiquity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_CachedReadableLiquity.js","sourceRoot":"","sources":["../../src/_CachedReadableLiquity.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ exports.ZUSD_MINIMUM_DEBT = exports.ZUSD_LIQUIDATION_RESERVE.add(exports.ZUSD_MI
48
48
  *
49
49
  * @public
50
50
  */
51
- exports.MINIMUM_BORROWING_RATE = Decimal_1.Decimal.from(0.005);
51
+ exports.MINIMUM_BORROWING_RATE = Decimal_1.Decimal.from(0.025);
52
52
  /**
53
53
  * Value that the {@link Fees.borrowingRate | borrowing rate} will never exceed.
54
54
  *
@@ -60,5 +60,5 @@ exports.MAXIMUM_BORROWING_RATE = Decimal_1.Decimal.from(0.05);
60
60
  *
61
61
  * @public
62
62
  */
63
- exports.MINIMUM_REDEMPTION_RATE = Decimal_1.Decimal.from(0.005);
63
+ exports.MINIMUM_REDEMPTION_RATE = Decimal_1.Decimal.from(0.025);
64
64
  //# sourceMappingURL=constants.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sovryn-zero/lib-base",
3
- "version": "1.0.0-early.access.2",
4
- "description": "Sovryn ZERO SDK shared interfaces",
3
+ "version": "1.0.0-early.access.4",
4
+ "description": "Sovryn Zero SDK shared interfaces",
5
5
  "keywords": [
6
6
  "Sovryn",
7
7
  "Zero",
package/src/constants.ts CHANGED
@@ -51,7 +51,7 @@ export const ZUSD_MINIMUM_DEBT = ZUSD_LIQUIDATION_RESERVE.add(ZUSD_MINIMUM_NET_D
51
51
  *
52
52
  * @public
53
53
  */
54
- export const MINIMUM_BORROWING_RATE = Decimal.from(0.005);
54
+ export const MINIMUM_BORROWING_RATE = Decimal.from(0.025);
55
55
 
56
56
  /**
57
57
  * Value that the {@link Fees.borrowingRate | borrowing rate} will never exceed.
@@ -65,4 +65,4 @@ export const MAXIMUM_BORROWING_RATE = Decimal.from(0.05);
65
65
  *
66
66
  * @public
67
67
  */
68
- export const MINIMUM_REDEMPTION_RATE = Decimal.from(0.005);
68
+ export const MINIMUM_REDEMPTION_RATE = Decimal.from(0.025);