@morpho-org/blue-sdk 4.9.0 → 4.10.0-next.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/lib/addresses.d.ts +6 -0
- package/lib/addresses.js +2 -0
- package/lib/errors.d.ts +4 -0
- package/lib/errors.js +9 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/vault-v2/VaultV2.d.ts +56 -0
- package/lib/vault-v2/VaultV2.js +90 -0
- package/lib/vault-v2/VaultV2Adapter.d.ts +18 -0
- package/lib/vault-v2/VaultV2Adapter.js +16 -0
- package/lib/vault-v2/VaultV2MorphoVaultV1Adapter.d.ts +21 -0
- package/lib/vault-v2/VaultV2MorphoVaultV1Adapter.js +28 -0
- package/lib/vault-v2/index.d.ts +3 -0
- package/lib/vault-v2/index.js +19 -0
- package/package.json +3 -3
package/lib/addresses.d.ts
CHANGED
|
@@ -63,6 +63,8 @@ export interface ChainAddresses {
|
|
|
63
63
|
usdc?: Address;
|
|
64
64
|
stEth?: Address;
|
|
65
65
|
wstEth?: Address;
|
|
66
|
+
vaultV2Factory?: Address;
|
|
67
|
+
vaultV2MorphoVaultV1AdapterFactory?: Address;
|
|
66
68
|
}
|
|
67
69
|
declare const _addressesRegistry: {
|
|
68
70
|
readonly 1: {
|
|
@@ -174,6 +176,8 @@ declare const _addressesRegistry: {
|
|
|
174
176
|
readonly usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
|
|
175
177
|
readonly verUsdc: "0x59aaF835D34b1E3dF2170e4872B785f11E2a964b";
|
|
176
178
|
readonly testUsdc: "0xBC77067f829979812d795d516E523C4033b66409";
|
|
179
|
+
readonly vaultV2Factory: "0xC2F730a67AE81a7D2C17268A9652338449BF264b";
|
|
180
|
+
readonly vaultV2MorphoVaultV1AdapterFactory: "0xF123759C14B824e5670258e67C9FcEa7Ff368b50";
|
|
177
181
|
};
|
|
178
182
|
readonly 137: {
|
|
179
183
|
readonly morpho: "0x1bF0c2541F820E775182832f06c0B7Fc27A25f67";
|
|
@@ -867,6 +871,8 @@ export declare let addressesRegistry: {
|
|
|
867
871
|
readonly usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
|
|
868
872
|
readonly verUsdc: "0x59aaF835D34b1E3dF2170e4872B785f11E2a964b";
|
|
869
873
|
readonly testUsdc: "0xBC77067f829979812d795d516E523C4033b66409";
|
|
874
|
+
readonly vaultV2Factory: "0xC2F730a67AE81a7D2C17268A9652338449BF264b";
|
|
875
|
+
readonly vaultV2MorphoVaultV1AdapterFactory: "0xF123759C14B824e5670258e67C9FcEa7Ff368b50";
|
|
870
876
|
};
|
|
871
877
|
readonly 137: {
|
|
872
878
|
readonly morpho: "0x1bF0c2541F820E775182832f06c0B7Fc27A25f67";
|
package/lib/addresses.js
CHANGED
|
@@ -133,6 +133,8 @@ const _addressesRegistry = {
|
|
|
133
133
|
usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
134
134
|
verUsdc: "0x59aaF835D34b1E3dF2170e4872B785f11E2a964b",
|
|
135
135
|
testUsdc: "0xBC77067f829979812d795d516E523C4033b66409",
|
|
136
|
+
vaultV2Factory: "0xC2F730a67AE81a7D2C17268A9652338449BF264b",
|
|
137
|
+
vaultV2MorphoVaultV1AdapterFactory: "0xF123759C14B824e5670258e67C9FcEa7Ff368b50",
|
|
136
138
|
},
|
|
137
139
|
[chain_js_1.ChainId.PolygonMainnet]: {
|
|
138
140
|
morpho: "0x1bF0c2541F820E775182832f06c0B7Fc27A25f67",
|
package/lib/errors.d.ts
CHANGED
|
@@ -25,6 +25,10 @@ export declare class UnsupportedPreLiquidationParamsError extends Error {
|
|
|
25
25
|
readonly lltv: bigint;
|
|
26
26
|
constructor(lltv: bigint);
|
|
27
27
|
}
|
|
28
|
+
export declare class UnsupportedVaultV2AdapterError extends Error {
|
|
29
|
+
readonly address: Address;
|
|
30
|
+
constructor(address: Address);
|
|
31
|
+
}
|
|
28
32
|
export declare namespace BlueErrors {
|
|
29
33
|
class AlreadySet extends Error {
|
|
30
34
|
readonly name: string;
|
package/lib/errors.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BlueErrors = exports.UnsupportedPreLiquidationParamsError = exports.UnsupportedChainIdError = exports.UnknownVaultConfigError = exports.UnknownMarketParamsError = exports.UnknownTokenPriceError = exports.UnknownTokenError = exports.UnknownDataError = void 0;
|
|
3
|
+
exports.BlueErrors = exports.UnsupportedVaultV2AdapterError = exports.UnsupportedPreLiquidationParamsError = exports.UnsupportedChainIdError = exports.UnknownVaultConfigError = exports.UnknownMarketParamsError = exports.UnknownTokenPriceError = exports.UnknownTokenError = exports.UnknownDataError = void 0;
|
|
4
4
|
exports._try = _try;
|
|
5
5
|
const viem_1 = require("viem");
|
|
6
6
|
class UnknownDataError extends Error {
|
|
@@ -54,6 +54,14 @@ class UnsupportedPreLiquidationParamsError extends Error {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
exports.UnsupportedPreLiquidationParamsError = UnsupportedPreLiquidationParamsError;
|
|
57
|
+
class UnsupportedVaultV2AdapterError extends Error {
|
|
58
|
+
address;
|
|
59
|
+
constructor(address) {
|
|
60
|
+
super(`vault v2 adapter "${address}" is not supported`);
|
|
61
|
+
this.address = address;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.UnsupportedVaultV2AdapterError = UnsupportedVaultV2AdapterError;
|
|
57
65
|
var BlueErrors;
|
|
58
66
|
(function (BlueErrors) {
|
|
59
67
|
class AlreadySet extends Error {
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -27,3 +27,4 @@ __exportStar(require("./holding/index.js"), exports);
|
|
|
27
27
|
__exportStar(require("./position/index.js"), exports);
|
|
28
28
|
__exportStar(require("./vault/index.js"), exports);
|
|
29
29
|
__exportStar(require("./preLiquidation.js"), exports);
|
|
30
|
+
__exportStar(require("./vault-v2/index.js"), exports);
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Address } from "viem";
|
|
2
|
+
import { type RoundingDirection } from "../math";
|
|
3
|
+
import { type IToken, WrappedToken } from "../token";
|
|
4
|
+
import type { BigIntish } from "../types";
|
|
5
|
+
import type { IAccrualVaultV2Adapter } from "./VaultV2Adapter";
|
|
6
|
+
export interface IVaultV2 extends IToken {
|
|
7
|
+
asset: Address;
|
|
8
|
+
totalSupply: bigint;
|
|
9
|
+
totalAssets: bigint;
|
|
10
|
+
performanceFee: bigint;
|
|
11
|
+
managementFee: bigint;
|
|
12
|
+
virtualShares: bigint;
|
|
13
|
+
lastUpdate: bigint;
|
|
14
|
+
adapters: Address[];
|
|
15
|
+
maxRate: bigint;
|
|
16
|
+
liquidityAdapter: Address;
|
|
17
|
+
performanceFeeRecipient: Address;
|
|
18
|
+
managementFeeRecipient: Address;
|
|
19
|
+
}
|
|
20
|
+
export declare class VaultV2 extends WrappedToken implements IVaultV2 {
|
|
21
|
+
readonly asset: Address;
|
|
22
|
+
/**
|
|
23
|
+
* The ERC4626 vault's total supply of shares.
|
|
24
|
+
*/
|
|
25
|
+
totalSupply: bigint;
|
|
26
|
+
/**
|
|
27
|
+
* The ERC4626 vault's total assets, without accrued interest
|
|
28
|
+
*/
|
|
29
|
+
totalAssets: bigint;
|
|
30
|
+
virtualShares: bigint;
|
|
31
|
+
lastUpdate: bigint;
|
|
32
|
+
adapters: Address[];
|
|
33
|
+
maxRate: bigint;
|
|
34
|
+
performanceFee: bigint;
|
|
35
|
+
managementFee: bigint;
|
|
36
|
+
liquidityAdapter: Address;
|
|
37
|
+
performanceFeeRecipient: Address;
|
|
38
|
+
managementFeeRecipient: Address;
|
|
39
|
+
constructor({ totalSupply, asset, totalAssets, virtualShares, lastUpdate, adapters, maxRate, performanceFee, managementFee, liquidityAdapter, performanceFeeRecipient, managementFeeRecipient, ...config }: IVaultV2);
|
|
40
|
+
toAssets(shares: bigint): bigint;
|
|
41
|
+
toShares(assets: bigint): bigint;
|
|
42
|
+
protected _wrap(amount: bigint, rounding: RoundingDirection): bigint;
|
|
43
|
+
protected _unwrap(amount: bigint, rounding: RoundingDirection): bigint;
|
|
44
|
+
}
|
|
45
|
+
export interface IAccrualVaultV2 extends Omit<IVaultV2, "adapters"> {
|
|
46
|
+
}
|
|
47
|
+
export declare class AccrualVaultV2 extends VaultV2 implements IAccrualVaultV2 {
|
|
48
|
+
readonly accrualAdapters: IAccrualVaultV2Adapter[];
|
|
49
|
+
readonly assetBalance: bigint;
|
|
50
|
+
constructor(vault: IAccrualVaultV2, accrualAdapters: IAccrualVaultV2Adapter[], assetBalance: bigint);
|
|
51
|
+
accrueInterest(timestamp: BigIntish): {
|
|
52
|
+
vault: AccrualVaultV2;
|
|
53
|
+
performanceFeeShares: bigint;
|
|
54
|
+
managementFeeShares: bigint;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccrualVaultV2 = exports.VaultV2 = void 0;
|
|
4
|
+
const math_1 = require("../math");
|
|
5
|
+
const token_1 = require("../token");
|
|
6
|
+
class VaultV2 extends token_1.WrappedToken {
|
|
7
|
+
asset;
|
|
8
|
+
/**
|
|
9
|
+
* The ERC4626 vault's total supply of shares.
|
|
10
|
+
*/
|
|
11
|
+
totalSupply;
|
|
12
|
+
/**
|
|
13
|
+
* The ERC4626 vault's total assets, without accrued interest
|
|
14
|
+
*/
|
|
15
|
+
totalAssets;
|
|
16
|
+
virtualShares;
|
|
17
|
+
lastUpdate;
|
|
18
|
+
adapters;
|
|
19
|
+
maxRate;
|
|
20
|
+
performanceFee;
|
|
21
|
+
managementFee;
|
|
22
|
+
liquidityAdapter;
|
|
23
|
+
performanceFeeRecipient;
|
|
24
|
+
managementFeeRecipient;
|
|
25
|
+
constructor({ totalSupply, asset, totalAssets, virtualShares, lastUpdate, adapters, maxRate, performanceFee, managementFee, liquidityAdapter, performanceFeeRecipient, managementFeeRecipient, ...config }) {
|
|
26
|
+
super(config, asset);
|
|
27
|
+
this.totalSupply = totalSupply;
|
|
28
|
+
this.totalAssets = totalAssets;
|
|
29
|
+
this.virtualShares = virtualShares;
|
|
30
|
+
this.lastUpdate = lastUpdate;
|
|
31
|
+
this.asset = asset;
|
|
32
|
+
this.maxRate = maxRate;
|
|
33
|
+
this.adapters = adapters;
|
|
34
|
+
this.performanceFee = performanceFee;
|
|
35
|
+
this.managementFee = managementFee;
|
|
36
|
+
this.liquidityAdapter = liquidityAdapter;
|
|
37
|
+
this.performanceFeeRecipient = performanceFeeRecipient;
|
|
38
|
+
this.managementFeeRecipient = managementFeeRecipient;
|
|
39
|
+
}
|
|
40
|
+
toAssets(shares) {
|
|
41
|
+
return this._unwrap(shares, "Down");
|
|
42
|
+
}
|
|
43
|
+
toShares(assets) {
|
|
44
|
+
return this._wrap(assets, "Down");
|
|
45
|
+
}
|
|
46
|
+
_wrap(amount, rounding) {
|
|
47
|
+
return math_1.MathLib.mulDiv(amount, this.totalSupply + this.virtualShares, this.totalAssets + 1n, rounding);
|
|
48
|
+
}
|
|
49
|
+
_unwrap(amount, rounding) {
|
|
50
|
+
return math_1.MathLib.mulDiv(amount, this.totalAssets + 1n, this.totalSupply + this.virtualShares, rounding);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.VaultV2 = VaultV2;
|
|
54
|
+
class AccrualVaultV2 extends VaultV2 {
|
|
55
|
+
accrualAdapters;
|
|
56
|
+
assetBalance;
|
|
57
|
+
constructor(vault, accrualAdapters, assetBalance) {
|
|
58
|
+
super({ ...vault, adapters: accrualAdapters.map((a) => a.address) });
|
|
59
|
+
this.accrualAdapters = accrualAdapters;
|
|
60
|
+
this.assetBalance = assetBalance;
|
|
61
|
+
}
|
|
62
|
+
accrueInterest(timestamp) {
|
|
63
|
+
const vault = new AccrualVaultV2(this, this.accrualAdapters, this.assetBalance);
|
|
64
|
+
const elapsed = BigInt(timestamp) - vault.lastUpdate;
|
|
65
|
+
if (elapsed <= 0n)
|
|
66
|
+
return { vault, performanceFeeShares: 0n, managementFeeShares: 0n };
|
|
67
|
+
const realAssets = vault.accrualAdapters.reduce((curr, adapter) => curr + adapter.realAssets(timestamp), vault.assetBalance);
|
|
68
|
+
const maxTotalAssets = vault.totalAssets +
|
|
69
|
+
math_1.MathLib.wMulDown(vault.totalAssets * elapsed, vault.maxRate);
|
|
70
|
+
const newTotalAssets = math_1.MathLib.min(realAssets, maxTotalAssets);
|
|
71
|
+
const interest = math_1.MathLib.zeroFloorSub(newTotalAssets, vault.totalAssets);
|
|
72
|
+
const performanceFeeAssets = interest > 0n && vault.performanceFee > 0n
|
|
73
|
+
? math_1.MathLib.wMulDown(interest, vault.performanceFee)
|
|
74
|
+
: 0n;
|
|
75
|
+
const managementFeeAssets = elapsed > 0n && vault.managementFee > 0n
|
|
76
|
+
? math_1.MathLib.wMulDown(newTotalAssets * elapsed, vault.managementFee)
|
|
77
|
+
: 0n;
|
|
78
|
+
const newTotalAssetsWithoutFees = newTotalAssets - performanceFeeAssets - managementFeeAssets;
|
|
79
|
+
const performanceFeeShares = math_1.MathLib.mulDivDown(performanceFeeAssets, vault.totalSupply + vault.virtualShares, newTotalAssetsWithoutFees + 1n);
|
|
80
|
+
const managementFeeShares = math_1.MathLib.mulDivDown(managementFeeAssets, vault.totalSupply + vault.virtualShares, newTotalAssetsWithoutFees + 1n);
|
|
81
|
+
vault.totalAssets = newTotalAssets;
|
|
82
|
+
if (performanceFeeShares)
|
|
83
|
+
vault.totalSupply += performanceFeeShares;
|
|
84
|
+
if (managementFeeShares)
|
|
85
|
+
vault.totalSupply += managementFeeShares;
|
|
86
|
+
vault.lastUpdate = BigInt(timestamp);
|
|
87
|
+
return { vault, performanceFeeShares, managementFeeShares };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.AccrualVaultV2 = AccrualVaultV2;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Address, Hash } from "viem";
|
|
2
|
+
import type { BigIntish } from "../types";
|
|
3
|
+
export interface IVaultV2Adapter {
|
|
4
|
+
address: Address;
|
|
5
|
+
parentVault: Address;
|
|
6
|
+
adapterId: Hash;
|
|
7
|
+
skimRecipient: Address;
|
|
8
|
+
}
|
|
9
|
+
export declare abstract class VaultV2Adapter implements IVaultV2Adapter {
|
|
10
|
+
readonly address: Address;
|
|
11
|
+
readonly parentVault: Address;
|
|
12
|
+
readonly adapterId: Hash;
|
|
13
|
+
skimRecipient: Address;
|
|
14
|
+
constructor({ address, parentVault, adapterId, skimRecipient, }: IVaultV2Adapter);
|
|
15
|
+
}
|
|
16
|
+
export interface IAccrualVaultV2Adapter extends IVaultV2Adapter {
|
|
17
|
+
realAssets(timestamp: BigIntish): bigint;
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VaultV2Adapter = void 0;
|
|
4
|
+
class VaultV2Adapter {
|
|
5
|
+
address;
|
|
6
|
+
parentVault;
|
|
7
|
+
adapterId;
|
|
8
|
+
skimRecipient;
|
|
9
|
+
constructor({ address, parentVault, adapterId, skimRecipient, }) {
|
|
10
|
+
this.address = address;
|
|
11
|
+
this.parentVault = parentVault;
|
|
12
|
+
this.adapterId = adapterId;
|
|
13
|
+
this.skimRecipient = skimRecipient;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.VaultV2Adapter = VaultV2Adapter;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Address } from "viem";
|
|
2
|
+
import { VaultV2Adapter } from "./VaultV2Adapter";
|
|
3
|
+
export interface IVaultV2MorphoVaultV1Adapter extends IVaultV2Adapter {
|
|
4
|
+
morphoVaultV1: Address;
|
|
5
|
+
}
|
|
6
|
+
import type { BigIntish } from "../types";
|
|
7
|
+
import type { AccrualVault } from "../vault";
|
|
8
|
+
import type { IAccrualVaultV2Adapter, IVaultV2Adapter } from "./VaultV2Adapter";
|
|
9
|
+
export declare class VaultV2MorphoVaultV1Adapter extends VaultV2Adapter implements IVaultV2MorphoVaultV1Adapter {
|
|
10
|
+
readonly morphoVaultV1: Address;
|
|
11
|
+
constructor({ morphoVaultV1, ...vaultV2Adapter }: IVaultV2MorphoVaultV1Adapter);
|
|
12
|
+
ids(): `0x${string}`[];
|
|
13
|
+
}
|
|
14
|
+
export interface IAccrualVaultV2MorphoVaultV1Adapter extends IVaultV2MorphoVaultV1Adapter {
|
|
15
|
+
}
|
|
16
|
+
export declare class AccrualVaultV2MorphoVaultV1Adapter extends VaultV2MorphoVaultV1Adapter implements IAccrualVaultV2MorphoVaultV1Adapter, IAccrualVaultV2Adapter {
|
|
17
|
+
vaultV1: AccrualVault;
|
|
18
|
+
shares: bigint;
|
|
19
|
+
constructor(adapter: IAccrualVaultV2MorphoVaultV1Adapter, vaultV1: AccrualVault, shares: bigint);
|
|
20
|
+
realAssets(timestamp: BigIntish): bigint;
|
|
21
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccrualVaultV2MorphoVaultV1Adapter = exports.VaultV2MorphoVaultV1Adapter = void 0;
|
|
4
|
+
const VaultV2Adapter_1 = require("./VaultV2Adapter");
|
|
5
|
+
class VaultV2MorphoVaultV1Adapter extends VaultV2Adapter_1.VaultV2Adapter {
|
|
6
|
+
morphoVaultV1;
|
|
7
|
+
constructor({ morphoVaultV1, ...vaultV2Adapter }) {
|
|
8
|
+
super(vaultV2Adapter);
|
|
9
|
+
this.morphoVaultV1 = morphoVaultV1;
|
|
10
|
+
}
|
|
11
|
+
ids() {
|
|
12
|
+
return [this.adapterId];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.VaultV2MorphoVaultV1Adapter = VaultV2MorphoVaultV1Adapter;
|
|
16
|
+
class AccrualVaultV2MorphoVaultV1Adapter extends VaultV2MorphoVaultV1Adapter {
|
|
17
|
+
vaultV1;
|
|
18
|
+
shares;
|
|
19
|
+
constructor(adapter, vaultV1, shares) {
|
|
20
|
+
super(adapter);
|
|
21
|
+
this.vaultV1 = vaultV1;
|
|
22
|
+
this.shares = shares;
|
|
23
|
+
}
|
|
24
|
+
realAssets(timestamp) {
|
|
25
|
+
return this.vaultV1.accrueInterest(timestamp).toAssets(this.shares);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.AccrualVaultV2MorphoVaultV1Adapter = AccrualVaultV2MorphoVaultV1Adapter;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./VaultV2.js"), exports);
|
|
18
|
+
__exportStar(require("./VaultV2Adapter.js"), exports);
|
|
19
|
+
__exportStar(require("./VaultV2MorphoVaultV1Adapter.js"), exports);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morpho-org/blue-sdk",
|
|
3
3
|
"description": "Framework-agnostic package that defines Morpho-related entity classes (such as `Market`, `Token`, `Vault`).",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.10.0-next.0",
|
|
5
5
|
"author": "Morpho Association <contact@morpho.org>",
|
|
6
6
|
"contributors": [
|
|
7
7
|
"Rubilmax <rmilon@gmail.com>"
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"typescript": "^5.7.2",
|
|
32
|
-
"viem": "^2.
|
|
32
|
+
"viem": "^2.33.3",
|
|
33
33
|
"vitest": "^3.0.5",
|
|
34
34
|
"@morpho-org/morpho-ts": "^2.4.1",
|
|
35
|
-
"@morpho-org/test": "^2.1.
|
|
35
|
+
"@morpho-org/test": "^2.1.6-next.0"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"prepublish": "$npm_execpath build",
|