@dew-finance/protocols 0.1.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/burrow/actions.d.ts +56 -0
- package/dist/burrow/actions.d.ts.map +1 -0
- package/dist/burrow/actions.js +158 -0
- package/dist/burrow/actions.js.map +1 -0
- package/dist/burrow/constants.d.ts +2 -0
- package/dist/burrow/constants.d.ts.map +1 -0
- package/dist/burrow/constants.js +2 -0
- package/dist/burrow/constants.js.map +1 -0
- package/dist/burrow/index.d.ts +11 -0
- package/dist/burrow/index.d.ts.map +1 -0
- package/dist/burrow/index.js +11 -0
- package/dist/burrow/index.js.map +1 -0
- package/dist/burrow/math.d.ts +55 -0
- package/dist/burrow/math.d.ts.map +1 -0
- package/dist/burrow/math.js +87 -0
- package/dist/burrow/math.js.map +1 -0
- package/dist/burrow/policy.d.ts +24 -0
- package/dist/burrow/policy.d.ts.map +1 -0
- package/dist/burrow/policy.js +200 -0
- package/dist/burrow/policy.js.map +1 -0
- package/dist/burrow/types.d.ts +127 -0
- package/dist/burrow/types.d.ts.map +1 -0
- package/dist/burrow/types.js +5 -0
- package/dist/burrow/types.js.map +1 -0
- package/dist/burrow/views.d.ts +27 -0
- package/dist/burrow/views.d.ts.map +1 -0
- package/dist/burrow/views.js +98 -0
- package/dist/burrow/views.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/ref-finance/index.d.ts +6 -0
- package/dist/ref-finance/index.d.ts.map +1 -0
- package/dist/ref-finance/index.js +6 -0
- package/dist/ref-finance/index.js.map +1 -0
- package/dist/ref-finance/quotes.d.ts +26 -0
- package/dist/ref-finance/quotes.d.ts.map +1 -0
- package/dist/ref-finance/quotes.js +18 -0
- package/dist/ref-finance/quotes.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type Action } from "@near-js/transactions";
|
|
2
|
+
type AmountInput = string | bigint;
|
|
3
|
+
type ActionOptions = {
|
|
4
|
+
gasTgas?: number;
|
|
5
|
+
depositYocto?: string;
|
|
6
|
+
};
|
|
7
|
+
type FtTransferOptions = ActionOptions & {
|
|
8
|
+
burrowId?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Deposit and increase collateral via ft_transfer_call.
|
|
12
|
+
* Amount is the NEP-141 token amount (token decimals).
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildIncreaseCollateralFtTransferCall({ tokenId, amount, burrowId, gasTgas, depositYocto, }: {
|
|
15
|
+
tokenId: string;
|
|
16
|
+
amount: AmountInput;
|
|
17
|
+
} & FtTransferOptions): Action;
|
|
18
|
+
/**
|
|
19
|
+
* Repay a Burrow debt via ft_transfer_call.
|
|
20
|
+
* - `amount` is the NEP-141 token amount (token decimals)
|
|
21
|
+
* - `maxAmount` (optional) is the Burrow internal amount (max(18, token_decimals))
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildRepayFtTransferCall({ tokenId, amount, maxAmount, burrowId, gasTgas, depositYocto, }: {
|
|
24
|
+
tokenId: string;
|
|
25
|
+
amount: AmountInput;
|
|
26
|
+
maxAmount?: AmountInput;
|
|
27
|
+
} & FtTransferOptions): Action;
|
|
28
|
+
/**
|
|
29
|
+
* Borrow + withdraw via execute_with_pyth. Amount is in Burrow internal decimals.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildBorrowAndWithdraw({ tokenId, amount, gasTgas, depositYocto, }: {
|
|
32
|
+
tokenId: string;
|
|
33
|
+
amount: AmountInput;
|
|
34
|
+
} & ActionOptions): Action;
|
|
35
|
+
/**
|
|
36
|
+
* Decrease collateral + withdraw via execute_with_pyth. Amount is in Burrow internal decimals.
|
|
37
|
+
*/
|
|
38
|
+
export declare function buildDecreaseCollateralAndWithdraw({ tokenId, amount, gasTgas, depositYocto, }: {
|
|
39
|
+
tokenId: string;
|
|
40
|
+
amount: AmountInput;
|
|
41
|
+
} & ActionOptions): Action;
|
|
42
|
+
/**
|
|
43
|
+
* Withdraw supplied assets via execute. Amount is in Burrow internal decimals.
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildWithdraw({ tokenId, amount, gasTgas, depositYocto, }: {
|
|
46
|
+
tokenId: string;
|
|
47
|
+
amount: AmountInput;
|
|
48
|
+
} & ActionOptions): Action;
|
|
49
|
+
/**
|
|
50
|
+
* Claim all farm rewards for an account.
|
|
51
|
+
*/
|
|
52
|
+
export declare function buildAccountFarmClaimAll({ accountId, gasTgas, depositYocto, }: {
|
|
53
|
+
accountId: string;
|
|
54
|
+
} & ActionOptions): Action;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/burrow/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AASpE,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnC,KAAK,aAAa,GAAG;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,iBAAiB,GAAG,aAAa,GAAG;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA4BF;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,EACpD,OAAO,EACP,MAAM,EACN,QAAqC,EACrC,OAAsC,EACtC,YAAgC,GACjC,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,iBAAiB,GAAG,MAAM,CAqB7B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAqC,EACrC,OAAsC,EACtC,YAAgC,GACjC,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB,GAAG,iBAAiB,GAAG,MAAM,CAsB7B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,MAAM,EACN,OAAkC,EAClC,YAAgC,GACjC,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,aAAa,GAAG,MAAM,CAuBzB;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,MAAM,EACN,OAAkC,EAClC,YAAgC,GACjC,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,aAAa,GAAG,MAAM,CAuBzB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,MAAM,EACN,OAAkC,EAClC,YAAgC,GACjC,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;CACrB,GAAG,aAAa,GAAG,MAAM,CAgBzB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,SAAS,EACT,OAAkC,EAClC,YAAiC,GAClC,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,GAAG,MAAM,CASzB"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { actionCreators } from "@near-js/transactions";
|
|
2
|
+
import { tgasToGas } from "@dew-finance/core";
|
|
3
|
+
import { DEFAULT_BURROW_CONTRACT_ID } from "./constants.js";
|
|
4
|
+
const DEFAULT_EXECUTE_GAS_TGAS = 300;
|
|
5
|
+
const DEFAULT_FT_TRANSFER_GAS_TGAS = 300;
|
|
6
|
+
const DEFAULT_ONE_YOCTO = "1";
|
|
7
|
+
const DEFAULT_NO_DEPOSIT = "0";
|
|
8
|
+
function toAmount(amount) {
|
|
9
|
+
if (typeof amount === "bigint") {
|
|
10
|
+
return amount.toString();
|
|
11
|
+
}
|
|
12
|
+
return amount;
|
|
13
|
+
}
|
|
14
|
+
function buildFunctionCall({ method, args, gasTgas, depositYocto, }) {
|
|
15
|
+
return actionCreators.functionCall(method, Buffer.from(JSON.stringify(args)), tgasToGas(gasTgas), BigInt(depositYocto));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Deposit and increase collateral via ft_transfer_call.
|
|
19
|
+
* Amount is the NEP-141 token amount (token decimals).
|
|
20
|
+
*/
|
|
21
|
+
export function buildIncreaseCollateralFtTransferCall({ tokenId, amount, burrowId = DEFAULT_BURROW_CONTRACT_ID, gasTgas = DEFAULT_FT_TRANSFER_GAS_TGAS, depositYocto = DEFAULT_ONE_YOCTO, }) {
|
|
22
|
+
return buildFunctionCall({
|
|
23
|
+
method: "ft_transfer_call",
|
|
24
|
+
gasTgas,
|
|
25
|
+
depositYocto,
|
|
26
|
+
args: {
|
|
27
|
+
receiver_id: burrowId,
|
|
28
|
+
amount: toAmount(amount),
|
|
29
|
+
msg: JSON.stringify({
|
|
30
|
+
Execute: {
|
|
31
|
+
actions: [
|
|
32
|
+
{
|
|
33
|
+
IncreaseCollateral: {
|
|
34
|
+
token_id: tokenId,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
}),
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Repay a Burrow debt via ft_transfer_call.
|
|
45
|
+
* - `amount` is the NEP-141 token amount (token decimals)
|
|
46
|
+
* - `maxAmount` (optional) is the Burrow internal amount (max(18, token_decimals))
|
|
47
|
+
*/
|
|
48
|
+
export function buildRepayFtTransferCall({ tokenId, amount, maxAmount, burrowId = DEFAULT_BURROW_CONTRACT_ID, gasTgas = DEFAULT_FT_TRANSFER_GAS_TGAS, depositYocto = DEFAULT_ONE_YOCTO, }) {
|
|
49
|
+
return buildFunctionCall({
|
|
50
|
+
method: "ft_transfer_call",
|
|
51
|
+
gasTgas,
|
|
52
|
+
depositYocto,
|
|
53
|
+
args: {
|
|
54
|
+
receiver_id: burrowId,
|
|
55
|
+
amount: toAmount(amount),
|
|
56
|
+
msg: JSON.stringify({
|
|
57
|
+
Execute: {
|
|
58
|
+
actions: [
|
|
59
|
+
{
|
|
60
|
+
Repay: {
|
|
61
|
+
token_id: tokenId,
|
|
62
|
+
max_amount: toAmount(maxAmount ?? amount),
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
}),
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Borrow + withdraw via execute_with_pyth. Amount is in Burrow internal decimals.
|
|
73
|
+
*/
|
|
74
|
+
export function buildBorrowAndWithdraw({ tokenId, amount, gasTgas = DEFAULT_EXECUTE_GAS_TGAS, depositYocto = DEFAULT_ONE_YOCTO, }) {
|
|
75
|
+
const maxAmount = toAmount(amount);
|
|
76
|
+
return buildFunctionCall({
|
|
77
|
+
method: "execute_with_pyth",
|
|
78
|
+
gasTgas,
|
|
79
|
+
depositYocto,
|
|
80
|
+
args: {
|
|
81
|
+
actions: [
|
|
82
|
+
{
|
|
83
|
+
Borrow: {
|
|
84
|
+
token_id: tokenId,
|
|
85
|
+
max_amount: maxAmount,
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
Withdraw: {
|
|
90
|
+
token_id: tokenId,
|
|
91
|
+
max_amount: maxAmount,
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Decrease collateral + withdraw via execute_with_pyth. Amount is in Burrow internal decimals.
|
|
100
|
+
*/
|
|
101
|
+
export function buildDecreaseCollateralAndWithdraw({ tokenId, amount, gasTgas = DEFAULT_EXECUTE_GAS_TGAS, depositYocto = DEFAULT_ONE_YOCTO, }) {
|
|
102
|
+
const amountString = toAmount(amount);
|
|
103
|
+
return buildFunctionCall({
|
|
104
|
+
method: "execute_with_pyth",
|
|
105
|
+
gasTgas,
|
|
106
|
+
depositYocto,
|
|
107
|
+
args: {
|
|
108
|
+
actions: [
|
|
109
|
+
{
|
|
110
|
+
DecreaseCollateral: {
|
|
111
|
+
token_id: tokenId,
|
|
112
|
+
amount: amountString,
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
Withdraw: {
|
|
117
|
+
token_id: tokenId,
|
|
118
|
+
max_amount: amountString,
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Withdraw supplied assets via execute. Amount is in Burrow internal decimals.
|
|
127
|
+
*/
|
|
128
|
+
export function buildWithdraw({ tokenId, amount, gasTgas = DEFAULT_EXECUTE_GAS_TGAS, depositYocto = DEFAULT_ONE_YOCTO, }) {
|
|
129
|
+
return buildFunctionCall({
|
|
130
|
+
method: "execute",
|
|
131
|
+
gasTgas,
|
|
132
|
+
depositYocto,
|
|
133
|
+
args: {
|
|
134
|
+
actions: [
|
|
135
|
+
{
|
|
136
|
+
Withdraw: {
|
|
137
|
+
token_id: tokenId,
|
|
138
|
+
max_amount: toAmount(amount),
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Claim all farm rewards for an account.
|
|
147
|
+
*/
|
|
148
|
+
export function buildAccountFarmClaimAll({ accountId, gasTgas = DEFAULT_EXECUTE_GAS_TGAS, depositYocto = DEFAULT_NO_DEPOSIT, }) {
|
|
149
|
+
return buildFunctionCall({
|
|
150
|
+
method: "account_farm_claim_all",
|
|
151
|
+
gasTgas,
|
|
152
|
+
depositYocto,
|
|
153
|
+
args: {
|
|
154
|
+
account_id: accountId,
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/burrow/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/burrow/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/burrow/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Burrow protocol helpers
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
export * from "./types.js";
|
|
6
|
+
export * from "./constants.js";
|
|
7
|
+
export * from "./views.js";
|
|
8
|
+
export * from "./actions.js";
|
|
9
|
+
export * from "./math.js";
|
|
10
|
+
export * from "./policy.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/burrow/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Burrow protocol helpers
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
export * from "./types.js";
|
|
6
|
+
export * from "./constants.js";
|
|
7
|
+
export * from "./views.js";
|
|
8
|
+
export * from "./actions.js";
|
|
9
|
+
export * from "./math.js";
|
|
10
|
+
export * from "./policy.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/burrow/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import Big from "big.js";
|
|
2
|
+
export type Bigish = Big | string | number;
|
|
3
|
+
export declare function toBurrowAmount({ amount, tokenDecimals, burrowDecimals, }: {
|
|
4
|
+
amount: Bigish;
|
|
5
|
+
tokenDecimals: number;
|
|
6
|
+
burrowDecimals?: number;
|
|
7
|
+
}): Big;
|
|
8
|
+
export declare function fromBurrowAmount({ amount, tokenDecimals, burrowDecimals, }: {
|
|
9
|
+
amount: Bigish;
|
|
10
|
+
tokenDecimals: number;
|
|
11
|
+
burrowDecimals?: number;
|
|
12
|
+
}): Big;
|
|
13
|
+
export declare function calculateAdjustedCollateralSum({ collaterals, }: {
|
|
14
|
+
collaterals: Array<{
|
|
15
|
+
amount: Bigish;
|
|
16
|
+
price: Bigish;
|
|
17
|
+
collateralFactor: Bigish;
|
|
18
|
+
}>;
|
|
19
|
+
}): Big;
|
|
20
|
+
export declare function calculateAdjustedBorrowedSum({ borrows, }: {
|
|
21
|
+
borrows: Array<{
|
|
22
|
+
amount: Bigish;
|
|
23
|
+
price: Bigish;
|
|
24
|
+
collateralFactor: Bigish;
|
|
25
|
+
}>;
|
|
26
|
+
}): Big;
|
|
27
|
+
export declare function calculateHealthFactor({ adjustedCollateralSum, adjustedBorrowedSum, }: {
|
|
28
|
+
adjustedCollateralSum: Bigish;
|
|
29
|
+
adjustedBorrowedSum: Bigish;
|
|
30
|
+
}): Big | null;
|
|
31
|
+
export declare function calculateMaxWithdrawableCollateral({ currentHealthFactor, healthFactorFloor, adjustedCollateralSum, adjustedBorrowedSum, supplyBalance, supplyPrice, supplyCollateralFactor, supplyDecimals, }: {
|
|
32
|
+
currentHealthFactor: Bigish | null;
|
|
33
|
+
healthFactorFloor: Bigish;
|
|
34
|
+
adjustedCollateralSum: Bigish;
|
|
35
|
+
adjustedBorrowedSum: Bigish;
|
|
36
|
+
supplyBalance: Bigish;
|
|
37
|
+
supplyPrice: Bigish;
|
|
38
|
+
supplyCollateralFactor: Bigish;
|
|
39
|
+
supplyDecimals: number;
|
|
40
|
+
}): Big;
|
|
41
|
+
export declare function calculateStableAssetRatio({ baseTokenAdjustedCollateralValue, masterTargetHealthFactor, slaveTargetHealthFactor, masterFarmTokenVolatilityRatio, slaveFarmTokenVolatilityRatio, masterFarmTokenPrice, slaveFarmTokenPrice, }: {
|
|
42
|
+
baseTokenAdjustedCollateralValue: Bigish;
|
|
43
|
+
masterTargetHealthFactor: Bigish;
|
|
44
|
+
slaveTargetHealthFactor: Bigish;
|
|
45
|
+
masterFarmTokenVolatilityRatio: Bigish;
|
|
46
|
+
slaveFarmTokenVolatilityRatio: Bigish;
|
|
47
|
+
masterFarmTokenPrice: Bigish;
|
|
48
|
+
slaveFarmTokenPrice: Bigish;
|
|
49
|
+
}): {
|
|
50
|
+
masterFarmTokenValue: Big;
|
|
51
|
+
slaveFarmTokenValue: Big;
|
|
52
|
+
masterFarmTokenAmount: Big;
|
|
53
|
+
slaveFarmTokenAmount: Big;
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=math.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/burrow/math.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,QAAQ,CAAC;AAEzB,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;AAM3C,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,aAAa,EACb,cAAc,GACf,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,GAAG,CAGN;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,aAAa,EACb,cAAc,GACf,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,GAAG,CAGN;AAED,wBAAgB,8BAA8B,CAAC,EAC7C,WAAW,GACZ,EAAE;IACD,WAAW,EAAE,KAAK,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;CACJ,GAAG,GAAG,CAON;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,OAAO,GACR,EAAE;IACD,OAAO,EAAE,KAAK,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;CACJ,GAAG,GAAG,CAON;AAED,wBAAgB,qBAAqB,CAAC,EACpC,qBAAqB,EACrB,mBAAmB,GACpB,EAAE;IACD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,GAAG,GAAG,IAAI,CAMb;AAED,wBAAgB,kCAAkC,CAAC,EACjD,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,cAAc,GACf,EAAE;IACD,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,GAAG,CAmCN;AAED,wBAAgB,yBAAyB,CAAC,EACxC,gCAAgC,EAChC,wBAAwB,EACxB,uBAAuB,EACvB,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,mBAAmB,GACpB,EAAE;IACD,gCAAgC,EAAE,MAAM,CAAC;IACzC,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,8BAA8B,EAAE,MAAM,CAAC;IACvC,6BAA6B,EAAE,MAAM,CAAC;IACtC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG;IACF,oBAAoB,EAAE,GAAG,CAAC;IAC1B,mBAAmB,EAAE,GAAG,CAAC;IACzB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,oBAAoB,EAAE,GAAG,CAAC;CAC3B,CAyBA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import Big from "big.js";
|
|
2
|
+
function toBig(value) {
|
|
3
|
+
return value instanceof Big ? value : new Big(value);
|
|
4
|
+
}
|
|
5
|
+
export function toBurrowAmount({ amount, tokenDecimals, burrowDecimals, }) {
|
|
6
|
+
const targetDecimals = burrowDecimals ?? Math.max(18, tokenDecimals);
|
|
7
|
+
return toBig(amount).mul(new Big(10).pow(targetDecimals)).round(0, Big.roundDown);
|
|
8
|
+
}
|
|
9
|
+
export function fromBurrowAmount({ amount, tokenDecimals, burrowDecimals, }) {
|
|
10
|
+
const targetDecimals = burrowDecimals ?? Math.max(18, tokenDecimals);
|
|
11
|
+
return toBig(amount).div(new Big(10).pow(targetDecimals)).round(tokenDecimals, Big.roundDown);
|
|
12
|
+
}
|
|
13
|
+
export function calculateAdjustedCollateralSum({ collaterals, }) {
|
|
14
|
+
return collaterals.reduce((acc, item) => {
|
|
15
|
+
const amount = toBig(item.amount);
|
|
16
|
+
const price = toBig(item.price);
|
|
17
|
+
const factor = toBig(item.collateralFactor);
|
|
18
|
+
return acc.add(amount.mul(price).mul(factor));
|
|
19
|
+
}, new Big(0));
|
|
20
|
+
}
|
|
21
|
+
export function calculateAdjustedBorrowedSum({ borrows, }) {
|
|
22
|
+
return borrows.reduce((acc, item) => {
|
|
23
|
+
const amount = toBig(item.amount);
|
|
24
|
+
const price = toBig(item.price);
|
|
25
|
+
const factor = toBig(item.collateralFactor);
|
|
26
|
+
return acc.add(amount.mul(price).div(factor));
|
|
27
|
+
}, new Big(0));
|
|
28
|
+
}
|
|
29
|
+
export function calculateHealthFactor({ adjustedCollateralSum, adjustedBorrowedSum, }) {
|
|
30
|
+
const borrowed = toBig(adjustedBorrowedSum);
|
|
31
|
+
if (borrowed.eq(0)) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return toBig(adjustedCollateralSum).div(borrowed);
|
|
35
|
+
}
|
|
36
|
+
export function calculateMaxWithdrawableCollateral({ currentHealthFactor, healthFactorFloor, adjustedCollateralSum, adjustedBorrowedSum, supplyBalance, supplyPrice, supplyCollateralFactor, supplyDecimals, }) {
|
|
37
|
+
const adjustedCollateral = toBig(adjustedCollateralSum);
|
|
38
|
+
const adjustedBorrowed = toBig(adjustedBorrowedSum);
|
|
39
|
+
const floor = toBig(healthFactorFloor);
|
|
40
|
+
if (currentHealthFactor === null) {
|
|
41
|
+
return toBig(supplyBalance);
|
|
42
|
+
}
|
|
43
|
+
const currentHf = toBig(currentHealthFactor);
|
|
44
|
+
if (currentHf.lte(floor)) {
|
|
45
|
+
return new Big(0);
|
|
46
|
+
}
|
|
47
|
+
if (adjustedBorrowed.eq(0)) {
|
|
48
|
+
return toBig(supplyBalance);
|
|
49
|
+
}
|
|
50
|
+
const maxWithdrawableAdjustedValue = adjustedCollateral.sub(adjustedBorrowed.mul(floor));
|
|
51
|
+
if (maxWithdrawableAdjustedValue.lte(0)) {
|
|
52
|
+
return new Big(0);
|
|
53
|
+
}
|
|
54
|
+
const collateralFactor = toBig(supplyCollateralFactor);
|
|
55
|
+
const price = toBig(supplyPrice);
|
|
56
|
+
const maxWithdrawableCollateralValue = maxWithdrawableAdjustedValue.div(collateralFactor);
|
|
57
|
+
const maxWithdrawableCollateralAmount = maxWithdrawableCollateralValue
|
|
58
|
+
.div(price)
|
|
59
|
+
.mul(new Big(10).pow(supplyDecimals))
|
|
60
|
+
.round(0, Big.roundDown);
|
|
61
|
+
const actualSuppliedBalance = toBig(supplyBalance);
|
|
62
|
+
return maxWithdrawableCollateralAmount.gt(actualSuppliedBalance)
|
|
63
|
+
? actualSuppliedBalance
|
|
64
|
+
: maxWithdrawableCollateralAmount;
|
|
65
|
+
}
|
|
66
|
+
export function calculateStableAssetRatio({ baseTokenAdjustedCollateralValue, masterTargetHealthFactor, slaveTargetHealthFactor, masterFarmTokenVolatilityRatio, slaveFarmTokenVolatilityRatio, masterFarmTokenPrice, slaveFarmTokenPrice, }) {
|
|
67
|
+
const baseValue = toBig(baseTokenAdjustedCollateralValue);
|
|
68
|
+
const masterHF = toBig(masterTargetHealthFactor);
|
|
69
|
+
const slaveHF = toBig(slaveTargetHealthFactor);
|
|
70
|
+
const masterVol = toBig(masterFarmTokenVolatilityRatio);
|
|
71
|
+
const slaveVol = toBig(slaveFarmTokenVolatilityRatio);
|
|
72
|
+
const denominator = masterHF.mul(slaveHF).sub(masterVol.pow(2).mul(slaveVol.pow(2)));
|
|
73
|
+
if (denominator.lte(0)) {
|
|
74
|
+
throw new Error("Invalid stable asset ratio inputs: denominator must be > 0");
|
|
75
|
+
}
|
|
76
|
+
const masterFarmTokenValue = baseValue.mul(slaveVol.pow(2)).mul(masterVol).div(denominator);
|
|
77
|
+
const slaveFarmTokenValue = slaveHF.mul(masterFarmTokenValue).div(slaveVol.mul(masterVol));
|
|
78
|
+
const masterFarmTokenAmount = masterFarmTokenValue.div(toBig(masterFarmTokenPrice));
|
|
79
|
+
const slaveFarmTokenAmount = slaveFarmTokenValue.div(toBig(slaveFarmTokenPrice));
|
|
80
|
+
return {
|
|
81
|
+
masterFarmTokenValue,
|
|
82
|
+
slaveFarmTokenValue,
|
|
83
|
+
masterFarmTokenAmount,
|
|
84
|
+
slaveFarmTokenAmount,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=math.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/burrow/math.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ChainEnvironment, Policy } from "@dew-finance/core";
|
|
2
|
+
type BurrowPolicyBase = {
|
|
3
|
+
policyId: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
requiredRole: string;
|
|
6
|
+
requiredVoteCount: number;
|
|
7
|
+
derivationPath: string;
|
|
8
|
+
chainEnvironment?: ChainEnvironment;
|
|
9
|
+
activationTime?: string;
|
|
10
|
+
proposalExpiryTimeNanosec?: string;
|
|
11
|
+
requiredPendingActions?: string[];
|
|
12
|
+
burrowId?: string;
|
|
13
|
+
};
|
|
14
|
+
type BurrowTokenPolicy = BurrowPolicyBase & {
|
|
15
|
+
tokenId: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function createBurrowIncreaseCollateralPolicy(params: BurrowTokenPolicy): Policy;
|
|
18
|
+
export declare function createBurrowRepayPolicy(params: BurrowTokenPolicy): Policy;
|
|
19
|
+
export declare function createBurrowBorrowAndWithdrawPolicy(params: BurrowTokenPolicy): Policy;
|
|
20
|
+
export declare function createBurrowDecreaseCollateralAndWithdrawPolicy(params: BurrowTokenPolicy): Policy;
|
|
21
|
+
export declare function createBurrowWithdrawPolicy(params: BurrowTokenPolicy): Policy;
|
|
22
|
+
export declare function createBurrowClaimAllRewardsPolicy(params: BurrowPolicyBase): Policy;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/burrow/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAqB,MAAM,mBAAmB,CAAC;AAIrF,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,iBAAiB,GAAG,gBAAgB,GAAG;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAuEF,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA4BtF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA4BzE;AAED,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA4BrF;AAED,wBAAgB,+CAA+C,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA4BjG;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA2B5E;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CA0BlF"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { DEFAULT_POLICY_ACTIVATION_TIME, DEFAULT_POLICY_EXPIRY_NS } from "@dew-finance/core";
|
|
2
|
+
import { DEFAULT_BURROW_CONTRACT_ID } from "./constants.js";
|
|
3
|
+
function buildRestrictionSchema({ predicates, indent = " ", }) {
|
|
4
|
+
const lines = predicates.map((predicate) => `${indent}${predicate}`);
|
|
5
|
+
return `and(\n${lines.join(",\n")}\n)`;
|
|
6
|
+
}
|
|
7
|
+
function buildChainSigTransactionPolicy({ policyId, description, requiredRole, requiredVoteCount, derivationPath, chainEnvironment, restrictions, activationTime, proposalExpiryTimeNanosec, requiredPendingActions, }) {
|
|
8
|
+
return {
|
|
9
|
+
id: policyId,
|
|
10
|
+
description,
|
|
11
|
+
required_role: requiredRole,
|
|
12
|
+
required_vote_count: requiredVoteCount,
|
|
13
|
+
policy_type: "ChainSigTransaction",
|
|
14
|
+
policy_details: {
|
|
15
|
+
ChainSigTransaction: {
|
|
16
|
+
derivation_path: derivationPath,
|
|
17
|
+
chain_environment: chainEnvironment,
|
|
18
|
+
restrictions,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
activation_time: activationTime,
|
|
22
|
+
proposal_expiry_time_nanosec: proposalExpiryTimeNanosec,
|
|
23
|
+
required_pending_actions: requiredPendingActions,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function resolvePolicyMeta(params) {
|
|
27
|
+
return {
|
|
28
|
+
chainEnvironment: params.chainEnvironment ?? "NearWasm",
|
|
29
|
+
activationTime: params.activationTime ?? DEFAULT_POLICY_ACTIVATION_TIME,
|
|
30
|
+
proposalExpiryTimeNanosec: params.proposalExpiryTimeNanosec ?? DEFAULT_POLICY_EXPIRY_NS,
|
|
31
|
+
requiredPendingActions: params.requiredPendingActions ?? [],
|
|
32
|
+
burrowId: params.burrowId ?? DEFAULT_BURROW_CONTRACT_ID,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function createBurrowIncreaseCollateralPolicy(params) {
|
|
36
|
+
const meta = resolvePolicyMeta(params);
|
|
37
|
+
const restrictions = [
|
|
38
|
+
{
|
|
39
|
+
schema: buildRestrictionSchema({
|
|
40
|
+
predicates: [
|
|
41
|
+
`$.contract_id.equal("${params.tokenId}")`,
|
|
42
|
+
`$.function_name.equal("ft_transfer_call")`,
|
|
43
|
+
`$.args.receiver_id.equal("${meta.burrowId}")`,
|
|
44
|
+
`$.args.msg.json().Execute.actions.get_index(0).IncreaseCollateral.token_id.equal("${params.tokenId}")`,
|
|
45
|
+
],
|
|
46
|
+
}),
|
|
47
|
+
interface: "",
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
return buildChainSigTransactionPolicy({
|
|
51
|
+
policyId: params.policyId,
|
|
52
|
+
description: params.description ?? `Burrow: increase collateral for ${params.tokenId}`,
|
|
53
|
+
requiredRole: params.requiredRole,
|
|
54
|
+
requiredVoteCount: params.requiredVoteCount,
|
|
55
|
+
derivationPath: params.derivationPath,
|
|
56
|
+
chainEnvironment: meta.chainEnvironment,
|
|
57
|
+
restrictions,
|
|
58
|
+
activationTime: meta.activationTime,
|
|
59
|
+
proposalExpiryTimeNanosec: meta.proposalExpiryTimeNanosec,
|
|
60
|
+
requiredPendingActions: meta.requiredPendingActions,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
export function createBurrowRepayPolicy(params) {
|
|
64
|
+
const meta = resolvePolicyMeta(params);
|
|
65
|
+
const restrictions = [
|
|
66
|
+
{
|
|
67
|
+
schema: buildRestrictionSchema({
|
|
68
|
+
predicates: [
|
|
69
|
+
`$.contract_id.equal("${params.tokenId}")`,
|
|
70
|
+
`$.function_name.equal("ft_transfer_call")`,
|
|
71
|
+
`$.args.receiver_id.equal("${meta.burrowId}")`,
|
|
72
|
+
`$.args.msg.json().Execute.actions.get_index(0).Repay.token_id.equal("${params.tokenId}")`,
|
|
73
|
+
],
|
|
74
|
+
}),
|
|
75
|
+
interface: "",
|
|
76
|
+
},
|
|
77
|
+
];
|
|
78
|
+
return buildChainSigTransactionPolicy({
|
|
79
|
+
policyId: params.policyId,
|
|
80
|
+
description: params.description ?? `Burrow: repay ${params.tokenId}`,
|
|
81
|
+
requiredRole: params.requiredRole,
|
|
82
|
+
requiredVoteCount: params.requiredVoteCount,
|
|
83
|
+
derivationPath: params.derivationPath,
|
|
84
|
+
chainEnvironment: meta.chainEnvironment,
|
|
85
|
+
restrictions,
|
|
86
|
+
activationTime: meta.activationTime,
|
|
87
|
+
proposalExpiryTimeNanosec: meta.proposalExpiryTimeNanosec,
|
|
88
|
+
requiredPendingActions: meta.requiredPendingActions,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
export function createBurrowBorrowAndWithdrawPolicy(params) {
|
|
92
|
+
const meta = resolvePolicyMeta(params);
|
|
93
|
+
const restrictions = [
|
|
94
|
+
{
|
|
95
|
+
schema: buildRestrictionSchema({
|
|
96
|
+
predicates: [
|
|
97
|
+
`$.contract_id.equal("${meta.burrowId}")`,
|
|
98
|
+
`$.function_name.equal("execute_with_pyth")`,
|
|
99
|
+
`$.args.actions.get_index(0).Borrow.token_id.equal("${params.tokenId}")`,
|
|
100
|
+
`$.args.actions.get_index(1).Withdraw.token_id.equal("${params.tokenId}")`,
|
|
101
|
+
],
|
|
102
|
+
}),
|
|
103
|
+
interface: "",
|
|
104
|
+
},
|
|
105
|
+
];
|
|
106
|
+
return buildChainSigTransactionPolicy({
|
|
107
|
+
policyId: params.policyId,
|
|
108
|
+
description: params.description ?? `Burrow: borrow + withdraw ${params.tokenId}`,
|
|
109
|
+
requiredRole: params.requiredRole,
|
|
110
|
+
requiredVoteCount: params.requiredVoteCount,
|
|
111
|
+
derivationPath: params.derivationPath,
|
|
112
|
+
chainEnvironment: meta.chainEnvironment,
|
|
113
|
+
restrictions,
|
|
114
|
+
activationTime: meta.activationTime,
|
|
115
|
+
proposalExpiryTimeNanosec: meta.proposalExpiryTimeNanosec,
|
|
116
|
+
requiredPendingActions: meta.requiredPendingActions,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
export function createBurrowDecreaseCollateralAndWithdrawPolicy(params) {
|
|
120
|
+
const meta = resolvePolicyMeta(params);
|
|
121
|
+
const restrictions = [
|
|
122
|
+
{
|
|
123
|
+
schema: buildRestrictionSchema({
|
|
124
|
+
predicates: [
|
|
125
|
+
`$.contract_id.equal("${meta.burrowId}")`,
|
|
126
|
+
`$.function_name.equal("execute_with_pyth")`,
|
|
127
|
+
`$.args.actions.get_index(0).DecreaseCollateral.token_id.equal("${params.tokenId}")`,
|
|
128
|
+
`$.args.actions.get_index(1).Withdraw.token_id.equal("${params.tokenId}")`,
|
|
129
|
+
],
|
|
130
|
+
}),
|
|
131
|
+
interface: "",
|
|
132
|
+
},
|
|
133
|
+
];
|
|
134
|
+
return buildChainSigTransactionPolicy({
|
|
135
|
+
policyId: params.policyId,
|
|
136
|
+
description: params.description ?? `Burrow: decrease collateral + withdraw ${params.tokenId}`,
|
|
137
|
+
requiredRole: params.requiredRole,
|
|
138
|
+
requiredVoteCount: params.requiredVoteCount,
|
|
139
|
+
derivationPath: params.derivationPath,
|
|
140
|
+
chainEnvironment: meta.chainEnvironment,
|
|
141
|
+
restrictions,
|
|
142
|
+
activationTime: meta.activationTime,
|
|
143
|
+
proposalExpiryTimeNanosec: meta.proposalExpiryTimeNanosec,
|
|
144
|
+
requiredPendingActions: meta.requiredPendingActions,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
export function createBurrowWithdrawPolicy(params) {
|
|
148
|
+
const meta = resolvePolicyMeta(params);
|
|
149
|
+
const restrictions = [
|
|
150
|
+
{
|
|
151
|
+
schema: buildRestrictionSchema({
|
|
152
|
+
predicates: [
|
|
153
|
+
`$.contract_id.equal("${meta.burrowId}")`,
|
|
154
|
+
`$.function_name.equal("execute")`,
|
|
155
|
+
`$.args.actions.get_index(0).Withdraw.token_id.equal("${params.tokenId}")`,
|
|
156
|
+
],
|
|
157
|
+
}),
|
|
158
|
+
interface: "",
|
|
159
|
+
},
|
|
160
|
+
];
|
|
161
|
+
return buildChainSigTransactionPolicy({
|
|
162
|
+
policyId: params.policyId,
|
|
163
|
+
description: params.description ?? `Burrow: withdraw ${params.tokenId}`,
|
|
164
|
+
requiredRole: params.requiredRole,
|
|
165
|
+
requiredVoteCount: params.requiredVoteCount,
|
|
166
|
+
derivationPath: params.derivationPath,
|
|
167
|
+
chainEnvironment: meta.chainEnvironment,
|
|
168
|
+
restrictions,
|
|
169
|
+
activationTime: meta.activationTime,
|
|
170
|
+
proposalExpiryTimeNanosec: meta.proposalExpiryTimeNanosec,
|
|
171
|
+
requiredPendingActions: meta.requiredPendingActions,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
export function createBurrowClaimAllRewardsPolicy(params) {
|
|
175
|
+
const meta = resolvePolicyMeta(params);
|
|
176
|
+
const restrictions = [
|
|
177
|
+
{
|
|
178
|
+
schema: buildRestrictionSchema({
|
|
179
|
+
predicates: [
|
|
180
|
+
`$.contract_id.equal("${meta.burrowId}")`,
|
|
181
|
+
`$.function_name.equal("account_farm_claim_all")`,
|
|
182
|
+
],
|
|
183
|
+
}),
|
|
184
|
+
interface: "",
|
|
185
|
+
},
|
|
186
|
+
];
|
|
187
|
+
return buildChainSigTransactionPolicy({
|
|
188
|
+
policyId: params.policyId,
|
|
189
|
+
description: params.description ?? "Burrow: claim farm rewards",
|
|
190
|
+
requiredRole: params.requiredRole,
|
|
191
|
+
requiredVoteCount: params.requiredVoteCount,
|
|
192
|
+
derivationPath: params.derivationPath,
|
|
193
|
+
chainEnvironment: meta.chainEnvironment,
|
|
194
|
+
restrictions,
|
|
195
|
+
activationTime: meta.activationTime,
|
|
196
|
+
proposalExpiryTimeNanosec: meta.proposalExpiryTimeNanosec,
|
|
197
|
+
requiredPendingActions: meta.requiredPendingActions,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/burrow/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Burrow protocol types (on-chain JSON shapes)
|
|
3
|
+
*/
|
|
4
|
+
export interface BurrowAssetShareBalance {
|
|
5
|
+
shares: string;
|
|
6
|
+
balance: string;
|
|
7
|
+
}
|
|
8
|
+
export interface BurrowAssetShareBalanceWithCustom extends BurrowAssetShareBalance {
|
|
9
|
+
balance_formatted?: string;
|
|
10
|
+
usd?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface BurrowAssetShareBalanceWithCustomWithId extends BurrowAssetShareBalanceWithCustom {
|
|
13
|
+
token_id: string;
|
|
14
|
+
apr: string;
|
|
15
|
+
farm_apr?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface BurrowReward {
|
|
18
|
+
reward_per_day: string;
|
|
19
|
+
booster_log_base: string;
|
|
20
|
+
remaining_rewards: string;
|
|
21
|
+
boosted_shares: string;
|
|
22
|
+
}
|
|
23
|
+
export interface BurrowAccountDetail {
|
|
24
|
+
account_id: string;
|
|
25
|
+
supplied: BurrowAssetShareBalanceWithCustomWithId[];
|
|
26
|
+
collateral: BurrowAssetShareBalanceWithCustomWithId[];
|
|
27
|
+
borrowed: BurrowAssetShareBalanceWithCustomWithId[];
|
|
28
|
+
farms: Array<{
|
|
29
|
+
farm_id: {
|
|
30
|
+
TokenNetBalance?: string;
|
|
31
|
+
Supplied?: string;
|
|
32
|
+
} | "NetTvl";
|
|
33
|
+
rewards: Array<{
|
|
34
|
+
reward_token_id: string;
|
|
35
|
+
asset_farm_reward: BurrowReward;
|
|
36
|
+
boosted_shares: string;
|
|
37
|
+
unclaimed_amount: string;
|
|
38
|
+
}>;
|
|
39
|
+
}>;
|
|
40
|
+
has_non_farmed_assets: boolean;
|
|
41
|
+
booster_staking: null | {
|
|
42
|
+
staked_booster_amount: string;
|
|
43
|
+
x_booster_amount: string;
|
|
44
|
+
unlock_timestamp: string;
|
|
45
|
+
};
|
|
46
|
+
booster_stakings: Record<string, {
|
|
47
|
+
staked_booster_amount: string;
|
|
48
|
+
x_booster_amount: string;
|
|
49
|
+
unlock_timestamp: string;
|
|
50
|
+
}>;
|
|
51
|
+
}
|
|
52
|
+
export interface BurrowConfig {
|
|
53
|
+
boost_suppress_factor: number;
|
|
54
|
+
booster_decimals: number;
|
|
55
|
+
booster_token_id: string;
|
|
56
|
+
dcl_id: string | null;
|
|
57
|
+
enable_price_oracle: boolean;
|
|
58
|
+
enable_pyth_oracle: boolean;
|
|
59
|
+
force_closing_enabled: boolean;
|
|
60
|
+
lp_tokens_info_valid_duration_sec: number;
|
|
61
|
+
max_num_assets: number;
|
|
62
|
+
maximum_recency_duration_sec: number;
|
|
63
|
+
maximum_staking_duration_sec: number;
|
|
64
|
+
maximum_staleness_duration_sec: number;
|
|
65
|
+
minimum_staking_duration_sec: number;
|
|
66
|
+
oracle_account_id: string;
|
|
67
|
+
owner_id: string;
|
|
68
|
+
pyth_oracle_account_id: string;
|
|
69
|
+
pyth_price_valid_duration_sec: number;
|
|
70
|
+
ref_exchange_id: string;
|
|
71
|
+
x_booster_multiplier_at_maximum_staking_duration: number;
|
|
72
|
+
}
|
|
73
|
+
export interface TokenPythInfo {
|
|
74
|
+
decimals: number;
|
|
75
|
+
default_price: number | null;
|
|
76
|
+
extra_call: string | null;
|
|
77
|
+
fraction_digits: number;
|
|
78
|
+
price_identifier: string | null;
|
|
79
|
+
}
|
|
80
|
+
export interface BurrowPythPrice {
|
|
81
|
+
conf: string;
|
|
82
|
+
expo: number;
|
|
83
|
+
price: string;
|
|
84
|
+
publish_time: number;
|
|
85
|
+
}
|
|
86
|
+
export interface BurrowAsset {
|
|
87
|
+
borrowed: {
|
|
88
|
+
balance: string;
|
|
89
|
+
shares: string;
|
|
90
|
+
};
|
|
91
|
+
config: {
|
|
92
|
+
borrowed_limit: string | null;
|
|
93
|
+
can_borrow: boolean;
|
|
94
|
+
can_deposit: boolean;
|
|
95
|
+
can_use_as_collateral: boolean;
|
|
96
|
+
can_withdraw: boolean;
|
|
97
|
+
extra_decimals: number;
|
|
98
|
+
holding_position_fee_rate: string;
|
|
99
|
+
max_change_rate: string | null;
|
|
100
|
+
max_utilization_rate: string;
|
|
101
|
+
min_borrowed_amount: string | null;
|
|
102
|
+
net_tvl_multiplier: number;
|
|
103
|
+
prot_ratio?: number;
|
|
104
|
+
reserve_ratio: number;
|
|
105
|
+
supplied_limit: string | null;
|
|
106
|
+
target_utilization: number;
|
|
107
|
+
target_utilization_rate: string;
|
|
108
|
+
volatility_ratio: number;
|
|
109
|
+
};
|
|
110
|
+
last_update_timestamp: string;
|
|
111
|
+
lostfound_shares: string;
|
|
112
|
+
margin_debt: {
|
|
113
|
+
balance: string;
|
|
114
|
+
shares: string;
|
|
115
|
+
};
|
|
116
|
+
margin_pending_debt: string;
|
|
117
|
+
margin_position: string;
|
|
118
|
+
prot_fee: string;
|
|
119
|
+
reserved: string;
|
|
120
|
+
supplied: {
|
|
121
|
+
balance: string;
|
|
122
|
+
shares: string;
|
|
123
|
+
};
|
|
124
|
+
unit_acc_hp_interest?: string;
|
|
125
|
+
}
|
|
126
|
+
export type BurrowContractId = string;
|
|
127
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/burrow/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/burrow/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { NearRpcOptions } from "@dew-finance/core";
|
|
2
|
+
import type { BurrowAccountDetail, BurrowAsset, BurrowConfig, BurrowContractId, TokenPythInfo } from "./types.js";
|
|
3
|
+
import Big from "big.js";
|
|
4
|
+
export type BurrowViewOptions = NearRpcOptions & {
|
|
5
|
+
burrowId?: BurrowContractId;
|
|
6
|
+
};
|
|
7
|
+
export declare function getBurrowConfig(params?: BurrowViewOptions): Promise<BurrowConfig>;
|
|
8
|
+
export declare function getTokenPythInfo({ tokenId, ...options }: BurrowViewOptions & {
|
|
9
|
+
tokenId: string;
|
|
10
|
+
}): Promise<TokenPythInfo>;
|
|
11
|
+
export declare function getAsset({ tokenId, ...options }: BurrowViewOptions & {
|
|
12
|
+
tokenId: string;
|
|
13
|
+
}): Promise<BurrowAsset>;
|
|
14
|
+
export declare function getAccount({ accountId, ...options }: BurrowViewOptions & {
|
|
15
|
+
accountId: string;
|
|
16
|
+
}): Promise<BurrowAccountDetail>;
|
|
17
|
+
export declare function getBurrowDecimals({ pythInfo }: {
|
|
18
|
+
pythInfo: TokenPythInfo;
|
|
19
|
+
}): number;
|
|
20
|
+
export declare function getCollateralFactor({ asset }: {
|
|
21
|
+
asset: BurrowAsset;
|
|
22
|
+
}): number;
|
|
23
|
+
export declare function fetchTokenPythPrice({ tokenId, age, ...options }: BurrowViewOptions & {
|
|
24
|
+
tokenId: string;
|
|
25
|
+
age?: number;
|
|
26
|
+
}): Promise<Big>;
|
|
27
|
+
//# sourceMappingURL=views.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/burrow/views.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAEhB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,GAAG,MAAM,QAAQ,CAAC;AAGzB,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAoCF,wBAAsB,eAAe,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAQ3F;AAED,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,GAAG,OAAO,EACX,EAAE,iBAAiB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAQlE;AAED,wBAAsB,QAAQ,CAAC,EAC7B,OAAO,EACP,GAAG,OAAO,EACX,EAAE,iBAAiB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAQhE;AAED,wBAAsB,UAAU,CAAC,EAC/B,SAAS,EACT,GAAG,OAAO,EACX,EAAE,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAQ1E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,aAAa,CAAA;CAAE,GAAG,MAAM,CAEnF;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG,MAAM,CAE7E;AAED,wBAAsB,mBAAmB,CAAC,EACxC,OAAO,EACP,GAAQ,EACR,GAAG,OAAO,EACX,EAAE,iBAAiB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAmCtE"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { JsonRpcProvider } from "@near-js/providers";
|
|
2
|
+
import Big from "big.js";
|
|
3
|
+
import { DEFAULT_BURROW_CONTRACT_ID } from "./constants.js";
|
|
4
|
+
function resolveNearProvider({ nearProvider, nearRpcUrl }) {
|
|
5
|
+
if (nearProvider) {
|
|
6
|
+
return nearProvider;
|
|
7
|
+
}
|
|
8
|
+
if (nearRpcUrl) {
|
|
9
|
+
return new JsonRpcProvider({ url: nearRpcUrl });
|
|
10
|
+
}
|
|
11
|
+
throw new Error("Missing nearProvider or nearRpcUrl for Burrow view call.");
|
|
12
|
+
}
|
|
13
|
+
async function viewFunction({ contractId, method, args, options, }) {
|
|
14
|
+
const provider = resolveNearProvider(options);
|
|
15
|
+
const res = (await provider.query({
|
|
16
|
+
request_type: "call_function",
|
|
17
|
+
account_id: contractId,
|
|
18
|
+
method_name: method,
|
|
19
|
+
args_base64: Buffer.from(JSON.stringify(args)).toString("base64"),
|
|
20
|
+
finality: "optimistic",
|
|
21
|
+
}));
|
|
22
|
+
const raw = res.result ?? res.body ?? new Uint8Array();
|
|
23
|
+
const text = Buffer.from(raw).toString();
|
|
24
|
+
return text ? JSON.parse(text) : null;
|
|
25
|
+
}
|
|
26
|
+
export async function getBurrowConfig(params = {}) {
|
|
27
|
+
const { burrowId = DEFAULT_BURROW_CONTRACT_ID, ...options } = params;
|
|
28
|
+
return viewFunction({
|
|
29
|
+
contractId: burrowId,
|
|
30
|
+
method: "get_config",
|
|
31
|
+
args: {},
|
|
32
|
+
options,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
export async function getTokenPythInfo({ tokenId, ...options }) {
|
|
36
|
+
const { burrowId = DEFAULT_BURROW_CONTRACT_ID } = options;
|
|
37
|
+
return viewFunction({
|
|
38
|
+
contractId: burrowId,
|
|
39
|
+
method: "get_token_pyth_info",
|
|
40
|
+
args: { token_id: tokenId },
|
|
41
|
+
options,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
export async function getAsset({ tokenId, ...options }) {
|
|
45
|
+
const { burrowId = DEFAULT_BURROW_CONTRACT_ID } = options;
|
|
46
|
+
return viewFunction({
|
|
47
|
+
contractId: burrowId,
|
|
48
|
+
method: "get_asset",
|
|
49
|
+
args: { token_id: tokenId },
|
|
50
|
+
options,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export async function getAccount({ accountId, ...options }) {
|
|
54
|
+
const { burrowId = DEFAULT_BURROW_CONTRACT_ID } = options;
|
|
55
|
+
return viewFunction({
|
|
56
|
+
contractId: burrowId,
|
|
57
|
+
method: "get_account",
|
|
58
|
+
args: { account_id: accountId },
|
|
59
|
+
options,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
export function getBurrowDecimals({ pythInfo }) {
|
|
63
|
+
return Math.max(18, pythInfo.decimals);
|
|
64
|
+
}
|
|
65
|
+
export function getCollateralFactor({ asset }) {
|
|
66
|
+
return asset.config.volatility_ratio / 10000;
|
|
67
|
+
}
|
|
68
|
+
export async function fetchTokenPythPrice({ tokenId, age = 60, ...options }) {
|
|
69
|
+
const pythInfo = await getTokenPythInfo({ tokenId, ...options });
|
|
70
|
+
const burrowConfig = await getBurrowConfig(options);
|
|
71
|
+
const pythPrice = await viewFunction({
|
|
72
|
+
contractId: burrowConfig.pyth_oracle_account_id,
|
|
73
|
+
method: "get_price_no_older_than",
|
|
74
|
+
args: {
|
|
75
|
+
price_id: pythInfo.price_identifier,
|
|
76
|
+
age,
|
|
77
|
+
},
|
|
78
|
+
options,
|
|
79
|
+
});
|
|
80
|
+
if (!pythPrice) {
|
|
81
|
+
throw new Error(`Pyth price not found for ${tokenId}`);
|
|
82
|
+
}
|
|
83
|
+
let extraCallMultiplier = Big(1);
|
|
84
|
+
if (pythInfo.extra_call) {
|
|
85
|
+
const rawMultiplier = await viewFunction({
|
|
86
|
+
contractId: tokenId,
|
|
87
|
+
method: pythInfo.extra_call,
|
|
88
|
+
args: {},
|
|
89
|
+
options,
|
|
90
|
+
});
|
|
91
|
+
if (!rawMultiplier) {
|
|
92
|
+
throw new Error(`Unable to get extra call result for ${tokenId}`);
|
|
93
|
+
}
|
|
94
|
+
extraCallMultiplier = Big(rawMultiplier).div(Big(10).pow(pythInfo.decimals));
|
|
95
|
+
}
|
|
96
|
+
return Big(pythPrice.price).mul(extraCallMultiplier).mul(Big(10).pow(pythPrice.expo));
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=views.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/burrow/views.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ref-finance/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ref-finance/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type RefFinanceSwapRoute = {
|
|
2
|
+
pools: Array<{
|
|
3
|
+
pool_id: string;
|
|
4
|
+
token_in: string;
|
|
5
|
+
token_out: string;
|
|
6
|
+
amount_in: string;
|
|
7
|
+
min_amount_out: string;
|
|
8
|
+
}>;
|
|
9
|
+
amount_in: string;
|
|
10
|
+
min_amount_out: string;
|
|
11
|
+
};
|
|
12
|
+
export type RefFinanceSwapQuote = {
|
|
13
|
+
routes: RefFinanceSwapRoute[];
|
|
14
|
+
contract_in: string;
|
|
15
|
+
contract_out: string;
|
|
16
|
+
amount_in: string;
|
|
17
|
+
amount_out: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function getSwapQuote({ amountIn, tokenIn, tokenOut, slippage, pathDeep, }: {
|
|
20
|
+
tokenIn: string;
|
|
21
|
+
tokenOut: string;
|
|
22
|
+
amountIn: string;
|
|
23
|
+
slippage: number;
|
|
24
|
+
pathDeep?: number;
|
|
25
|
+
}): Promise<RefFinanceSwapQuote>;
|
|
26
|
+
//# sourceMappingURL=quotes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../../src/ref-finance/quotes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,KAAK,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,YAAY,CAAC,EACjC,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAY,GACb,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA0B/B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export async function getSwapQuote({ amountIn, tokenIn, tokenOut, slippage, pathDeep = 3, }) {
|
|
2
|
+
const url = new URL("https://smartrouter.rhea.finance/findPath");
|
|
3
|
+
url.searchParams.set("amountIn", amountIn);
|
|
4
|
+
url.searchParams.set("tokenIn", tokenIn);
|
|
5
|
+
url.searchParams.set("tokenOut", tokenOut);
|
|
6
|
+
url.searchParams.set("slippage", slippage.toString());
|
|
7
|
+
url.searchParams.set("pathDeep", pathDeep.toString());
|
|
8
|
+
const response = await fetch(url);
|
|
9
|
+
if (!response.ok) {
|
|
10
|
+
throw new Error(`Failed to get swap quote for ${amountIn} ${tokenIn} -> ${tokenOut}`);
|
|
11
|
+
}
|
|
12
|
+
const json = (await response.json());
|
|
13
|
+
if (json.result_code !== 0) {
|
|
14
|
+
throw new Error(`Failed to get swap quote for ${amountIn} ${tokenIn} -> ${tokenOut}. ${json.result_message}`);
|
|
15
|
+
}
|
|
16
|
+
return json.result_data;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=quotes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/ref-finance/quotes.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,GAAG,CAAC,GAOb;IACC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACjE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,IAAI,OAAO,OAAO,QAAQ,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIlC,CAAC;IAEF,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,gCAAgC,QAAQ,IAAI,OAAO,OAAO,QAAQ,KAAK,IAAI,CAAC,cAAc,EAAE,CAC7F,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,WAAW,CAAC;AAC1B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dew-finance/protocols",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Protocol adapters and helpers for Dew Finance SDK",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./burrow": {
|
|
14
|
+
"types": "./dist/burrow/index.d.ts",
|
|
15
|
+
"import": "./dist/burrow/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./ref-finance": {
|
|
18
|
+
"types": "./dist/ref-finance/index.d.ts",
|
|
19
|
+
"import": "./dist/ref-finance/index.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"url": "https://github.com/Meteor-Wallet/dew-finance-sdk.git",
|
|
24
|
+
"type": "git"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc",
|
|
28
|
+
"dev": "tsc --watch",
|
|
29
|
+
"test": "vitest run",
|
|
30
|
+
"test:watch": "vitest",
|
|
31
|
+
"lint": "eslint src",
|
|
32
|
+
"format": "prettier --write \"src/**/*.{ts,tsx}\"",
|
|
33
|
+
"format:check": "prettier --check \"src/**/*.{ts,tsx}\"",
|
|
34
|
+
"typecheck": "tsc --noEmit",
|
|
35
|
+
"clean": "rm -rf dist"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@dew-finance/core": "0.1.0",
|
|
39
|
+
"big.js": "^7.0.1",
|
|
40
|
+
"@near-js/providers": "^2.0.1",
|
|
41
|
+
"@near-js/transactions": "^2.0.1"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@types/big.js": "^6.2.2",
|
|
45
|
+
"typescript": "^5.9.3",
|
|
46
|
+
"vitest": "^1.6.1"
|
|
47
|
+
},
|
|
48
|
+
"files": [
|
|
49
|
+
"dist"
|
|
50
|
+
],
|
|
51
|
+
"license": "MIT",
|
|
52
|
+
"publishConfig": {
|
|
53
|
+
"access": "public"
|
|
54
|
+
}
|
|
55
|
+
}
|