@waiaas/actions 2.11.0-rc.1 → 2.11.0-rc.2
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/providers/aave-v3/aave-contracts.d.ts +34 -0
- package/dist/providers/aave-v3/aave-contracts.d.ts.map +1 -1
- package/dist/providers/aave-v3/aave-contracts.js +59 -0
- package/dist/providers/aave-v3/aave-contracts.js.map +1 -1
- package/dist/providers/aave-v3/aave-rpc.d.ts +31 -0
- package/dist/providers/aave-v3/aave-rpc.d.ts.map +1 -1
- package/dist/providers/aave-v3/aave-rpc.js +70 -0
- package/dist/providers/aave-v3/aave-rpc.js.map +1 -1
- package/dist/providers/aave-v3/index.d.ts +1 -1
- package/dist/providers/aave-v3/index.d.ts.map +1 -1
- package/dist/providers/aave-v3/index.js +133 -5
- package/dist/providers/aave-v3/index.js.map +1 -1
- package/dist/providers/hyperliquid/__tests__/perp-provider.test.js +103 -0
- package/dist/providers/hyperliquid/__tests__/perp-provider.test.js.map +1 -1
- package/dist/providers/hyperliquid/__tests__/spot-provider.test.js +64 -0
- package/dist/providers/hyperliquid/__tests__/spot-provider.test.js.map +1 -1
- package/dist/providers/hyperliquid/perp-provider.d.ts +4 -1
- package/dist/providers/hyperliquid/perp-provider.d.ts.map +1 -1
- package/dist/providers/hyperliquid/perp-provider.js +50 -0
- package/dist/providers/hyperliquid/perp-provider.js.map +1 -1
- package/dist/providers/hyperliquid/spot-provider.d.ts +4 -1
- package/dist/providers/hyperliquid/spot-provider.d.ts.map +1 -1
- package/dist/providers/hyperliquid/spot-provider.js +56 -0
- package/dist/providers/hyperliquid/spot-provider.js.map +1 -1
- package/dist/providers/jito-staking/config.d.ts +1 -0
- package/dist/providers/jito-staking/config.d.ts.map +1 -1
- package/dist/providers/jito-staking/config.js.map +1 -1
- package/dist/providers/jito-staking/index.d.ts +9 -0
- package/dist/providers/jito-staking/index.d.ts.map +1 -1
- package/dist/providers/jito-staking/index.js +52 -1
- package/dist/providers/jito-staking/index.js.map +1 -1
- package/dist/providers/jito-staking/jito-stake-pool.d.ts +19 -0
- package/dist/providers/jito-staking/jito-stake-pool.d.ts.map +1 -1
- package/dist/providers/jito-staking/jito-stake-pool.js +63 -0
- package/dist/providers/jito-staking/jito-stake-pool.js.map +1 -1
- package/dist/providers/lido-staking/config.d.ts +1 -0
- package/dist/providers/lido-staking/config.d.ts.map +1 -1
- package/dist/providers/lido-staking/config.js.map +1 -1
- package/dist/providers/lido-staking/index.d.ts +17 -0
- package/dist/providers/lido-staking/index.d.ts.map +1 -1
- package/dist/providers/lido-staking/index.js +105 -1
- package/dist/providers/lido-staking/index.js.map +1 -1
- package/dist/providers/lido-staking/lido-contract.d.ts +25 -0
- package/dist/providers/lido-staking/lido-contract.d.ts.map +1 -1
- package/dist/providers/lido-staking/lido-contract.js +46 -0
- package/dist/providers/lido-staking/lido-contract.js.map +1 -1
- package/dist/providers/pendle/__tests__/pendle-provider.test.js +139 -0
- package/dist/providers/pendle/__tests__/pendle-provider.test.js.map +1 -1
- package/dist/providers/pendle/config.d.ts +1 -0
- package/dist/providers/pendle/config.d.ts.map +1 -1
- package/dist/providers/pendle/config.js.map +1 -1
- package/dist/providers/pendle/index.d.ts +14 -1
- package/dist/providers/pendle/index.d.ts.map +1 -1
- package/dist/providers/pendle/index.js +111 -3
- package/dist/providers/pendle/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -21,7 +21,11 @@ export declare const AAVE_SELECTORS: {
|
|
|
21
21
|
readonly withdraw: "0x69328dec";
|
|
22
22
|
readonly getUserAccountData: "0xbf92857c";
|
|
23
23
|
readonly getReserveData: "0x35ea6a75";
|
|
24
|
+
readonly getReservesList: "0xd1946dbc";
|
|
25
|
+
readonly getReserveTokensAddresses: "0xd2493b6c";
|
|
26
|
+
readonly getAssetsPrices: "0x9d23d9f2";
|
|
24
27
|
readonly approve: "0x095ea7b3";
|
|
28
|
+
readonly balanceOf: "0x70a08231";
|
|
25
29
|
};
|
|
26
30
|
export declare const MAX_UINT256: bigint;
|
|
27
31
|
/**
|
|
@@ -81,4 +85,34 @@ export declare function encodeGetUserAccountDataCalldata(user: string): string;
|
|
|
81
85
|
* @returns ABI-encoded calldata with 0x prefix
|
|
82
86
|
*/
|
|
83
87
|
export declare function encodeGetReserveDataCalldata(asset: string): string;
|
|
88
|
+
/**
|
|
89
|
+
* Encode Pool.getReservesList() calldata.
|
|
90
|
+
* No arguments -- just the 4-byte selector.
|
|
91
|
+
*
|
|
92
|
+
* @returns ABI-encoded calldata with 0x prefix
|
|
93
|
+
*/
|
|
94
|
+
export declare function encodeGetReservesListCalldata(): string;
|
|
95
|
+
/**
|
|
96
|
+
* Encode ERC-20 balanceOf(address) calldata.
|
|
97
|
+
*
|
|
98
|
+
* @param account - Address to query balance for
|
|
99
|
+
* @returns ABI-encoded calldata with 0x prefix
|
|
100
|
+
*/
|
|
101
|
+
export declare function encodeBalanceOfCalldata(account: string): string;
|
|
102
|
+
/**
|
|
103
|
+
* Encode AaveOracle.getAssetsPrices(address[]) calldata.
|
|
104
|
+
*
|
|
105
|
+
* ABI layout: selector + offset(0x20) + length + addresses...
|
|
106
|
+
*
|
|
107
|
+
* @param assets - Array of asset addresses to query prices for
|
|
108
|
+
* @returns ABI-encoded calldata with 0x prefix
|
|
109
|
+
*/
|
|
110
|
+
export declare function encodeGetAssetsPricesCalldata(assets: string[]): string;
|
|
111
|
+
/**
|
|
112
|
+
* Encode PoolDataProvider.getReserveTokensAddresses(address) calldata.
|
|
113
|
+
*
|
|
114
|
+
* @param asset - Underlying asset address
|
|
115
|
+
* @returns ABI-encoded calldata with 0x prefix
|
|
116
|
+
*/
|
|
117
|
+
export declare function encodeGetReserveTokensAddressesCalldata(asset: string): string;
|
|
84
118
|
//# sourceMappingURL=aave-contracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aave-contracts.d.ts","sourceRoot":"","sources":["../../../src/providers/aave-v3/aave-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAGL,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAM3C,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"aave-contracts.d.ts","sourceRoot":"","sources":["../../../src/providers/aave-v3/aave-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAGL,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAM3C,eAAO,MAAM,cAAc;;;;;;;;;;;;CAiBjB,CAAC;AAMX,eAAO,MAAM,WAAW,QAAoB,CAAC;AAM7C;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,YAAY,GAAE,MAAU,GACvB,MAAM,CAER;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,gBAAgB,GAAE,MAAW,EAC7B,YAAY,GAAE,MAAU,GACvB,MAAM,CAER;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,gBAAgB,GAAE,MAAW,GAC5B,MAAM,CAER;AAMD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,GACT,MAAM,CAER;AAGD,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAMjC;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErE;AAMD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElE;AAMD;;;;;GAKG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAMD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAMD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAKtE;AAMD;;;;;GAKG;AACH,wBAAgB,uCAAuC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7E"}
|
|
@@ -26,8 +26,14 @@ export const AAVE_SELECTORS = {
|
|
|
26
26
|
// Pool read functions
|
|
27
27
|
getUserAccountData: '0xbf92857c', // getUserAccountData(address)
|
|
28
28
|
getReserveData: '0x35ea6a75', // getReserveData(address)
|
|
29
|
+
getReservesList: '0xd1946dbc', // getReservesList() -> address[]
|
|
30
|
+
// PoolDataProvider read functions
|
|
31
|
+
getReserveTokensAddresses: '0xd2493b6c', // getReserveTokensAddresses(address) -> (aToken, stableDebt, variableDebt)
|
|
32
|
+
// Oracle read functions
|
|
33
|
+
getAssetsPrices: '0x9d23d9f2', // getAssetsPrices(address[]) -> uint256[]
|
|
29
34
|
// ERC-20
|
|
30
35
|
approve: '0x095ea7b3', // approve(address,uint256)
|
|
36
|
+
balanceOf: '0x70a08231', // balanceOf(address) -> uint256
|
|
31
37
|
};
|
|
32
38
|
// ---------------------------------------------------------------------------
|
|
33
39
|
// MAX_UINT256 sentinel (for full repay/withdraw)
|
|
@@ -121,4 +127,57 @@ export function encodeGetUserAccountDataCalldata(user) {
|
|
|
121
127
|
export function encodeGetReserveDataCalldata(asset) {
|
|
122
128
|
return `${AAVE_SELECTORS.getReserveData}${addressToHex(asset)}`;
|
|
123
129
|
}
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
// getReservesList() -- read (no args)
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
/**
|
|
134
|
+
* Encode Pool.getReservesList() calldata.
|
|
135
|
+
* No arguments -- just the 4-byte selector.
|
|
136
|
+
*
|
|
137
|
+
* @returns ABI-encoded calldata with 0x prefix
|
|
138
|
+
*/
|
|
139
|
+
export function encodeGetReservesListCalldata() {
|
|
140
|
+
return AAVE_SELECTORS.getReservesList;
|
|
141
|
+
}
|
|
142
|
+
// ---------------------------------------------------------------------------
|
|
143
|
+
// balanceOf(address) -- ERC-20 read
|
|
144
|
+
// ---------------------------------------------------------------------------
|
|
145
|
+
/**
|
|
146
|
+
* Encode ERC-20 balanceOf(address) calldata.
|
|
147
|
+
*
|
|
148
|
+
* @param account - Address to query balance for
|
|
149
|
+
* @returns ABI-encoded calldata with 0x prefix
|
|
150
|
+
*/
|
|
151
|
+
export function encodeBalanceOfCalldata(account) {
|
|
152
|
+
return `${AAVE_SELECTORS.balanceOf}${addressToHex(account)}`;
|
|
153
|
+
}
|
|
154
|
+
// ---------------------------------------------------------------------------
|
|
155
|
+
// getAssetsPrices(address[]) -- Oracle read
|
|
156
|
+
// ---------------------------------------------------------------------------
|
|
157
|
+
/**
|
|
158
|
+
* Encode AaveOracle.getAssetsPrices(address[]) calldata.
|
|
159
|
+
*
|
|
160
|
+
* ABI layout: selector + offset(0x20) + length + addresses...
|
|
161
|
+
*
|
|
162
|
+
* @param assets - Array of asset addresses to query prices for
|
|
163
|
+
* @returns ABI-encoded calldata with 0x prefix
|
|
164
|
+
*/
|
|
165
|
+
export function encodeGetAssetsPricesCalldata(assets) {
|
|
166
|
+
const offset = uint256ToHex(32n); // dynamic array offset = 0x20
|
|
167
|
+
const length = uint256ToHex(BigInt(assets.length));
|
|
168
|
+
const items = assets.map((a) => addressToHex(a)).join('');
|
|
169
|
+
return `${AAVE_SELECTORS.getAssetsPrices}${offset}${length}${items}`;
|
|
170
|
+
}
|
|
171
|
+
// ---------------------------------------------------------------------------
|
|
172
|
+
// getReserveTokensAddresses(address) -- PoolDataProvider read
|
|
173
|
+
// ---------------------------------------------------------------------------
|
|
174
|
+
/**
|
|
175
|
+
* Encode PoolDataProvider.getReserveTokensAddresses(address) calldata.
|
|
176
|
+
*
|
|
177
|
+
* @param asset - Underlying asset address
|
|
178
|
+
* @returns ABI-encoded calldata with 0x prefix
|
|
179
|
+
*/
|
|
180
|
+
export function encodeGetReserveTokensAddressesCalldata(asset) {
|
|
181
|
+
return `${AAVE_SELECTORS.getReserveTokensAddresses}${addressToHex(asset)}`;
|
|
182
|
+
}
|
|
124
183
|
//# sourceMappingURL=aave-contracts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aave-contracts.js","sourceRoot":"","sources":["../../../src/providers/aave-v3/aave-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAE3C,8EAA8E;AAC9E,8CAA8C;AAC9C,8EAA8E;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,uBAAuB;IACvB,MAAM,EAAE,YAAY,EAAc,yCAAyC;IAC3E,MAAM,EAAE,YAAY,EAAc,iDAAiD;IACnF,KAAK,EAAE,YAAY,EAAe,yCAAyC;IAC3E,QAAQ,EAAE,YAAY,EAAY,oCAAoC;IACtE,sBAAsB;IACtB,kBAAkB,EAAE,YAAY,EAAE,8BAA8B;IAChE,cAAc,EAAE,YAAY,EAAM,0BAA0B;IAC5D,SAAS;IACT,OAAO,EAAE,YAAY,EAAa,2BAA2B;
|
|
1
|
+
{"version":3,"file":"aave-contracts.js","sourceRoot":"","sources":["../../../src/providers/aave-v3/aave-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,37 @@ export interface ReserveData {
|
|
|
33
33
|
/** Variable borrow index in ray units. */
|
|
34
34
|
variableBorrowIndex: bigint;
|
|
35
35
|
}
|
|
36
|
+
export interface ReserveTokensAddresses {
|
|
37
|
+
aToken: string;
|
|
38
|
+
stableDebtToken: string;
|
|
39
|
+
variableDebtToken: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Decode ABI-encoded dynamic address[] response.
|
|
43
|
+
*
|
|
44
|
+
* Layout: offset(32 bytes) + length(32 bytes) + N * address(32 bytes each)
|
|
45
|
+
*
|
|
46
|
+
* @param hexResponse - Raw hex response from eth_call (with or without 0x prefix)
|
|
47
|
+
* @returns Array of checksummed addresses (0x-prefixed, lowercase)
|
|
48
|
+
*/
|
|
49
|
+
export declare function decodeAddressArray(hexResponse: string): string[];
|
|
50
|
+
/**
|
|
51
|
+
* Decode ABI-encoded dynamic uint256[] response.
|
|
52
|
+
*
|
|
53
|
+
* Same layout as address array but values are full 32-byte uint256.
|
|
54
|
+
*
|
|
55
|
+
* @param hexResponse - Raw hex response from eth_call (with or without 0x prefix)
|
|
56
|
+
* @returns Array of bigint values
|
|
57
|
+
*/
|
|
58
|
+
export declare function decodeUint256Array(hexResponse: string): bigint[];
|
|
59
|
+
/**
|
|
60
|
+
* Decode PoolDataProvider.getReserveTokensAddresses() response.
|
|
61
|
+
*
|
|
62
|
+
* Returns 3 addresses: (aTokenAddress, stableDebtTokenAddress, variableDebtTokenAddress)
|
|
63
|
+
*
|
|
64
|
+
* @param hexResponse - Raw hex response from eth_call
|
|
65
|
+
*/
|
|
66
|
+
export declare function decodeReserveTokensAddresses(hexResponse: string): ReserveTokensAddresses;
|
|
36
67
|
/** Health factor at liquidation threshold (1.0 in 18 decimals). */
|
|
37
68
|
export declare const LIQUIDATION_THRESHOLD_HF = 1000000000000000000n;
|
|
38
69
|
/** Health factor warning threshold (1.2 in 18 decimals). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aave-rpc.d.ts","sourceRoot":"","sources":["../../../src/providers/aave-v3/aave-rpc.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/E;AAMD,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,2BAA2B,EAAE,MAAM,CAAC;IACpC,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAMD,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,uBAA6B,CAAC;AAEnE,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,uBAA6B,CAAC;AAM/D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAiB7E;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAerE;AAMD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE;IACX,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,EAAE,MAAM,CAAC;CACrC,EACD,MAAM,EAAE,QAAQ,GAAG,UAAU,EAC7B,UAAU,EAAE,MAAM,GACjB,MAAM,CAmBR;AAMD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE7C"}
|
|
1
|
+
{"version":3,"file":"aave-rpc.d.ts","sourceRoot":"","sources":["../../../src/providers/aave-v3/aave-rpc.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/E;AAMD,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,2BAA2B,EAAE,MAAM,CAAC;IACpC,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAMD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAMD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAehE;AAMD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAchE;AAMD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CAcxF;AAMD,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,uBAA6B,CAAC;AAEnE,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,uBAA6B,CAAC;AAM/D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAiB7E;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CAerE;AAMD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE;IACX,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,EAAE,MAAM,CAAC;CACrC,EACD,MAAM,EAAE,QAAQ,GAAG,UAAU,EAC7B,UAAU,EAAE,MAAM,GACjB,MAAM,CAmBR;AAMD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE7C"}
|
|
@@ -9,6 +9,76 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { MAX_UINT256 } from './aave-contracts.js';
|
|
11
11
|
// ---------------------------------------------------------------------------
|
|
12
|
+
// decodeAddressArray -- parse ABI-encoded dynamic address[] response
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
/**
|
|
15
|
+
* Decode ABI-encoded dynamic address[] response.
|
|
16
|
+
*
|
|
17
|
+
* Layout: offset(32 bytes) + length(32 bytes) + N * address(32 bytes each)
|
|
18
|
+
*
|
|
19
|
+
* @param hexResponse - Raw hex response from eth_call (with or without 0x prefix)
|
|
20
|
+
* @returns Array of checksummed addresses (0x-prefixed, lowercase)
|
|
21
|
+
*/
|
|
22
|
+
export function decodeAddressArray(hexResponse) {
|
|
23
|
+
const data = hexResponse.startsWith('0x') ? hexResponse.slice(2) : hexResponse;
|
|
24
|
+
if (data.length < 128)
|
|
25
|
+
return []; // at least offset + length
|
|
26
|
+
// offset is at chars 0..64 (skip it)
|
|
27
|
+
const length = Number(BigInt('0x' + data.slice(64, 128)));
|
|
28
|
+
const addresses = [];
|
|
29
|
+
for (let i = 0; i < length; i++) {
|
|
30
|
+
const start = 128 + i * 64;
|
|
31
|
+
const slot = data.slice(start, start + 64);
|
|
32
|
+
addresses.push('0x' + slot.slice(24)); // last 20 bytes = 40 hex chars
|
|
33
|
+
}
|
|
34
|
+
return addresses;
|
|
35
|
+
}
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// decodeUint256Array -- parse ABI-encoded dynamic uint256[] response
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
/**
|
|
40
|
+
* Decode ABI-encoded dynamic uint256[] response.
|
|
41
|
+
*
|
|
42
|
+
* Same layout as address array but values are full 32-byte uint256.
|
|
43
|
+
*
|
|
44
|
+
* @param hexResponse - Raw hex response from eth_call (with or without 0x prefix)
|
|
45
|
+
* @returns Array of bigint values
|
|
46
|
+
*/
|
|
47
|
+
export function decodeUint256Array(hexResponse) {
|
|
48
|
+
const data = hexResponse.startsWith('0x') ? hexResponse.slice(2) : hexResponse;
|
|
49
|
+
if (data.length < 128)
|
|
50
|
+
return [];
|
|
51
|
+
const length = Number(BigInt('0x' + data.slice(64, 128)));
|
|
52
|
+
const values = [];
|
|
53
|
+
for (let i = 0; i < length; i++) {
|
|
54
|
+
const start = 128 + i * 64;
|
|
55
|
+
const slot = data.slice(start, start + 64);
|
|
56
|
+
values.push(BigInt('0x' + slot));
|
|
57
|
+
}
|
|
58
|
+
return values;
|
|
59
|
+
}
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
// decodeReserveTokensAddresses -- parse 3 consecutive address slots
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
/**
|
|
64
|
+
* Decode PoolDataProvider.getReserveTokensAddresses() response.
|
|
65
|
+
*
|
|
66
|
+
* Returns 3 addresses: (aTokenAddress, stableDebtTokenAddress, variableDebtTokenAddress)
|
|
67
|
+
*
|
|
68
|
+
* @param hexResponse - Raw hex response from eth_call
|
|
69
|
+
*/
|
|
70
|
+
export function decodeReserveTokensAddresses(hexResponse) {
|
|
71
|
+
const data = hexResponse.startsWith('0x') ? hexResponse.slice(2) : hexResponse;
|
|
72
|
+
if (data.length < 192) {
|
|
73
|
+
throw new Error(`Invalid getReserveTokensAddresses response: expected at least 192 hex chars (3 x 32 bytes), got ${data.length}`);
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
aToken: '0x' + data.slice(24, 64),
|
|
77
|
+
stableDebtToken: '0x' + data.slice(88, 128),
|
|
78
|
+
variableDebtToken: '0x' + data.slice(152, 192),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// ---------------------------------------------------------------------------
|
|
12
82
|
// Health factor threshold constants (18-decimal bigints)
|
|
13
83
|
// ---------------------------------------------------------------------------
|
|
14
84
|
/** Health factor at liquidation threshold (1.0 in 18 decimals). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aave-rpc.js","sourceRoot":"","sources":["../../../src/providers/aave-v3/aave-rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"aave-rpc.js","sourceRoot":"","sources":["../../../src/providers/aave-v3/aave-rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export declare class AaveV3LendingProvider implements ILendingProvider, IPositio
|
|
|
18
18
|
getPosition(_walletId: string, context: ActionContext): Promise<LendingPositionSummary[]>;
|
|
19
19
|
getHealthFactor(_walletId: string, context: ActionContext): Promise<HealthFactor>;
|
|
20
20
|
getMarkets(_chain: string, _network?: string): Promise<MarketInfo[]>;
|
|
21
|
-
getPositions(
|
|
21
|
+
getPositions(walletId: string): Promise<PositionUpdate[]>;
|
|
22
22
|
getProviderName(): string;
|
|
23
23
|
getSupportedCategories(): PositionCategory[];
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/aave-v3/index.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EAEX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/aave-v3/index.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EAEX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgBhD,OAAO,EACL,KAAK,UAAU,EAUhB,MAAM,eAAe,CAAC;AAavB,qBAAa,qBAAsB,YAAW,gBAAgB,EAAE,iBAAiB;IAC/E,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAE9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAa;gBAE5B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU;IAsD7D,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,EAAE,CAAC;IAqBvD,OAAO,CAAC,aAAa;YAgCP,aAAa;IA2B3B,OAAO,CAAC,YAAY;YAgCN,eAAe;YA2Bf,iBAAiB;YAmBjB,mBAAmB;YAiBnB,oBAAoB;IA0B5B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA0CzF,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA6CjF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IASpE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA+I/D,eAAe,IAAI,MAAM;IAIzB,sBAAsB,IAAI,gBAAgB,EAAE;CAG7C"}
|
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
import { ChainError } from '@waiaas/core';
|
|
16
16
|
import { parseTokenAmount } from '../../common/amount-parser.js';
|
|
17
17
|
import { getAaveAddresses } from './config.js';
|
|
18
|
-
import { encodeSupplyCalldata, encodeBorrowCalldata, encodeRepayCalldata, encodeWithdrawCalldata, encodeApproveCalldata, encodeGetUserAccountDataCalldata, MAX_UINT256, } from './aave-contracts.js';
|
|
19
|
-
import { decodeGetUserAccountData, simulateHealthFactor, hfToNumber, LIQUIDATION_THRESHOLD_HF, } from './aave-rpc.js';
|
|
18
|
+
import { encodeSupplyCalldata, encodeBorrowCalldata, encodeRepayCalldata, encodeWithdrawCalldata, encodeApproveCalldata, encodeGetUserAccountDataCalldata, encodeGetReservesListCalldata, encodeBalanceOfCalldata, encodeGetAssetsPricesCalldata, encodeGetReserveTokensAddressesCalldata, encodeGetReserveDataCalldata, MAX_UINT256, } from './aave-contracts.js';
|
|
19
|
+
import { decodeGetUserAccountData, decodeAddressArray, decodeUint256Array, decodeReserveTokensAddresses, decodeGetReserveData, simulateHealthFactor, hfToNumber, rayToApy, LIQUIDATION_THRESHOLD_HF, } from './aave-rpc.js';
|
|
20
|
+
import { formatCaip19 } from '@waiaas/core';
|
|
20
21
|
import { AaveSupplyInputSchema, AaveBorrowInputSchema, AaveRepayInputSchema, AaveWithdrawInputSchema, } from './schemas.js';
|
|
21
22
|
// ---------------------------------------------------------------------------
|
|
22
23
|
// Provider implementation
|
|
@@ -317,9 +318,136 @@ export class AaveV3LendingProvider {
|
|
|
317
318
|
// -------------------------------------------------------------------------
|
|
318
319
|
// IPositionProvider methods
|
|
319
320
|
// -------------------------------------------------------------------------
|
|
320
|
-
async getPositions(
|
|
321
|
-
|
|
322
|
-
|
|
321
|
+
async getPositions(walletId) {
|
|
322
|
+
if (!this.rpcCaller)
|
|
323
|
+
return [];
|
|
324
|
+
try {
|
|
325
|
+
const network = 'ethereum-mainnet';
|
|
326
|
+
const addresses = getAaveAddresses(network);
|
|
327
|
+
const chainCaip2 = `eip155:${addresses.chainId}`;
|
|
328
|
+
const now = Math.floor(Date.now() / 1000);
|
|
329
|
+
const positions = [];
|
|
330
|
+
// 1. Get reserves list
|
|
331
|
+
const reservesHex = await this.rpcCaller.call({
|
|
332
|
+
to: addresses.pool,
|
|
333
|
+
data: encodeGetReservesListCalldata(),
|
|
334
|
+
chainId: addresses.chainId,
|
|
335
|
+
});
|
|
336
|
+
const reserves = decodeAddressArray(reservesHex);
|
|
337
|
+
if (reserves.length === 0)
|
|
338
|
+
return [];
|
|
339
|
+
// 2. Get oracle prices for all reserves at once
|
|
340
|
+
const pricesHex = await this.rpcCaller.call({
|
|
341
|
+
to: addresses.oracle,
|
|
342
|
+
data: encodeGetAssetsPricesCalldata(reserves),
|
|
343
|
+
chainId: addresses.chainId,
|
|
344
|
+
});
|
|
345
|
+
const prices = decodeUint256Array(pricesHex); // 8 decimals USD
|
|
346
|
+
// 3. Get user account data (for Health Factor)
|
|
347
|
+
const accountDataHex = await this.rpcCaller.call({
|
|
348
|
+
to: addresses.pool,
|
|
349
|
+
data: encodeGetUserAccountDataCalldata(walletId),
|
|
350
|
+
chainId: addresses.chainId,
|
|
351
|
+
});
|
|
352
|
+
const accountData = decodeGetUserAccountData(accountDataHex);
|
|
353
|
+
const healthFactor = hfToNumber(accountData.healthFactor);
|
|
354
|
+
// 4. For each reserve: get token addresses, balances, and reserve data
|
|
355
|
+
for (let i = 0; i < reserves.length; i++) {
|
|
356
|
+
const asset = reserves[i];
|
|
357
|
+
const priceUsd8 = prices[i] ?? 0n; // 8 decimals
|
|
358
|
+
// Get aToken/debtToken addresses
|
|
359
|
+
const tokensHex = await this.rpcCaller.call({
|
|
360
|
+
to: addresses.dataProvider,
|
|
361
|
+
data: encodeGetReserveTokensAddressesCalldata(asset),
|
|
362
|
+
chainId: addresses.chainId,
|
|
363
|
+
});
|
|
364
|
+
const tokens = decodeReserveTokensAddresses(tokensHex);
|
|
365
|
+
// Get aToken balance (supply)
|
|
366
|
+
const aBalHex = await this.rpcCaller.call({
|
|
367
|
+
to: tokens.aToken,
|
|
368
|
+
data: encodeBalanceOfCalldata(walletId),
|
|
369
|
+
chainId: addresses.chainId,
|
|
370
|
+
});
|
|
371
|
+
const aBalance = BigInt(aBalHex.length > 2 ? aBalHex : '0x0');
|
|
372
|
+
// Get variableDebtToken balance (borrow)
|
|
373
|
+
const vBalHex = await this.rpcCaller.call({
|
|
374
|
+
to: tokens.variableDebtToken,
|
|
375
|
+
data: encodeBalanceOfCalldata(walletId),
|
|
376
|
+
chainId: addresses.chainId,
|
|
377
|
+
});
|
|
378
|
+
const vBalance = BigInt(vBalHex.length > 2 ? vBalHex : '0x0');
|
|
379
|
+
if (aBalance === 0n && vBalance === 0n)
|
|
380
|
+
continue;
|
|
381
|
+
// Get reserve data for APY
|
|
382
|
+
const reserveDataHex = await this.rpcCaller.call({
|
|
383
|
+
to: addresses.dataProvider,
|
|
384
|
+
data: encodeGetReserveDataCalldata(asset),
|
|
385
|
+
chainId: addresses.chainId,
|
|
386
|
+
});
|
|
387
|
+
const reserveData = decodeGetReserveData(reserveDataHex);
|
|
388
|
+
// Format amount from wei (18 decimals)
|
|
389
|
+
const formatWei = (val) => {
|
|
390
|
+
const str = val.toString();
|
|
391
|
+
if (str.length <= 18)
|
|
392
|
+
return '0.' + str.padStart(18, '0');
|
|
393
|
+
const whole = str.slice(0, str.length - 18);
|
|
394
|
+
const frac = str.slice(str.length - 18);
|
|
395
|
+
// Trim trailing zeros for cleaner display
|
|
396
|
+
const trimmed = frac.replace(/0+$/, '');
|
|
397
|
+
return trimmed ? `${whole}.${trimmed}` : whole;
|
|
398
|
+
};
|
|
399
|
+
// Calculate USD value: balance * price / 10^18 / 10^8
|
|
400
|
+
const calcUsd = (balance, price) => {
|
|
401
|
+
return Number((balance * price) / 10n ** 18n) / 1e8;
|
|
402
|
+
};
|
|
403
|
+
const assetId = formatCaip19(chainCaip2, 'erc20', asset.toLowerCase());
|
|
404
|
+
if (aBalance > 0n) {
|
|
405
|
+
positions.push({
|
|
406
|
+
walletId,
|
|
407
|
+
category: 'LENDING',
|
|
408
|
+
provider: 'aave_v3',
|
|
409
|
+
chain: 'ethereum',
|
|
410
|
+
network,
|
|
411
|
+
assetId,
|
|
412
|
+
amount: formatWei(aBalance),
|
|
413
|
+
amountUsd: calcUsd(aBalance, priceUsd8),
|
|
414
|
+
metadata: {
|
|
415
|
+
positionType: 'SUPPLY',
|
|
416
|
+
apy: rayToApy(reserveData.liquidityRate),
|
|
417
|
+
healthFactor,
|
|
418
|
+
aTokenAddress: tokens.aToken,
|
|
419
|
+
},
|
|
420
|
+
status: 'ACTIVE',
|
|
421
|
+
openedAt: now,
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
if (vBalance > 0n) {
|
|
425
|
+
positions.push({
|
|
426
|
+
walletId,
|
|
427
|
+
category: 'LENDING',
|
|
428
|
+
provider: 'aave_v3',
|
|
429
|
+
chain: 'ethereum',
|
|
430
|
+
network,
|
|
431
|
+
assetId,
|
|
432
|
+
amount: formatWei(vBalance),
|
|
433
|
+
amountUsd: calcUsd(vBalance, priceUsd8),
|
|
434
|
+
metadata: {
|
|
435
|
+
positionType: 'BORROW',
|
|
436
|
+
interestRateMode: 'variable',
|
|
437
|
+
apy: rayToApy(reserveData.variableBorrowRate),
|
|
438
|
+
healthFactor,
|
|
439
|
+
debtTokenAddress: tokens.variableDebtToken,
|
|
440
|
+
},
|
|
441
|
+
status: 'ACTIVE',
|
|
442
|
+
openedAt: now,
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
return positions;
|
|
447
|
+
}
|
|
448
|
+
catch {
|
|
449
|
+
return [];
|
|
450
|
+
}
|
|
323
451
|
}
|
|
324
452
|
getProviderName() {
|
|
325
453
|
return 'aave_v3';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/aave-v3/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/aave-v3/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -386,5 +386,108 @@ describe('HyperliquidPerpProvider', () => {
|
|
|
386
386
|
expect(positions).toHaveLength(0);
|
|
387
387
|
});
|
|
388
388
|
});
|
|
389
|
+
// -------------------------------------------------------------------------
|
|
390
|
+
// IPositionProvider duck-type methods
|
|
391
|
+
// -------------------------------------------------------------------------
|
|
392
|
+
describe('IPositionProvider', () => {
|
|
393
|
+
it('getProviderName returns hyperliquid_perp', () => {
|
|
394
|
+
expect(provider.getProviderName()).toBe('hyperliquid_perp');
|
|
395
|
+
});
|
|
396
|
+
it('getSupportedCategories returns [PERP]', () => {
|
|
397
|
+
expect(provider.getSupportedCategories()).toEqual(['PERP']);
|
|
398
|
+
});
|
|
399
|
+
it('getPositions with long ETH position returns correct PositionUpdate', async () => {
|
|
400
|
+
marketData.getPositions.mockResolvedValue([
|
|
401
|
+
{
|
|
402
|
+
coin: 'ETH',
|
|
403
|
+
szi: '1.5',
|
|
404
|
+
entryPx: '2000',
|
|
405
|
+
leverage: { type: 'cross', value: 10 },
|
|
406
|
+
unrealizedPnl: '50',
|
|
407
|
+
marginUsed: '300',
|
|
408
|
+
liquidationPx: '1800',
|
|
409
|
+
},
|
|
410
|
+
]);
|
|
411
|
+
marketData.getAllMidPrices.mockResolvedValue({ ETH: '2100', BTC: '40000' });
|
|
412
|
+
const positions = await provider.getPositions('wallet-001');
|
|
413
|
+
expect(positions).toHaveLength(1);
|
|
414
|
+
const pos = positions[0];
|
|
415
|
+
expect(pos.walletId).toBe('wallet-001');
|
|
416
|
+
expect(pos.category).toBe('PERP');
|
|
417
|
+
expect(pos.provider).toBe('hyperliquid_perp');
|
|
418
|
+
expect(pos.chain).toBe('ethereum');
|
|
419
|
+
expect(pos.network).toBe('ethereum-mainnet');
|
|
420
|
+
expect(pos.assetId).toBeNull();
|
|
421
|
+
expect(pos.amount).toBe('1.5');
|
|
422
|
+
expect(pos.status).toBe('ACTIVE');
|
|
423
|
+
expect(pos.metadata.market).toBe('ETH');
|
|
424
|
+
expect(pos.metadata.side).toBe('LONG');
|
|
425
|
+
expect(pos.metadata.entryPrice).toBe(2000);
|
|
426
|
+
expect(pos.metadata.markPrice).toBe(2100);
|
|
427
|
+
expect(pos.metadata.leverage).toBe(10);
|
|
428
|
+
expect(pos.metadata.unrealizedPnl).toBe(50);
|
|
429
|
+
expect(pos.metadata.liquidationPrice).toBe(1800);
|
|
430
|
+
expect(pos.metadata.marginUsed).toBe(300);
|
|
431
|
+
});
|
|
432
|
+
it('getPositions with short BTC position returns side SHORT', async () => {
|
|
433
|
+
marketData.getPositions.mockResolvedValue([
|
|
434
|
+
{
|
|
435
|
+
coin: 'BTC',
|
|
436
|
+
szi: '-0.5',
|
|
437
|
+
entryPx: '42000',
|
|
438
|
+
leverage: { type: 'isolated', value: 5 },
|
|
439
|
+
unrealizedPnl: '-200',
|
|
440
|
+
marginUsed: '4200',
|
|
441
|
+
liquidationPx: '45000',
|
|
442
|
+
},
|
|
443
|
+
]);
|
|
444
|
+
marketData.getAllMidPrices.mockResolvedValue({ BTC: '41000' });
|
|
445
|
+
const positions = await provider.getPositions('wallet-001');
|
|
446
|
+
expect(positions).toHaveLength(1);
|
|
447
|
+
const pos = positions[0];
|
|
448
|
+
expect(pos.metadata.side).toBe('SHORT');
|
|
449
|
+
expect(pos.amount).toBe('0.5');
|
|
450
|
+
expect(pos.metadata.markPrice).toBe(41000);
|
|
451
|
+
});
|
|
452
|
+
it('getPositions with empty positions returns []', async () => {
|
|
453
|
+
marketData.getPositions.mockResolvedValue([]);
|
|
454
|
+
const positions = await provider.getPositions('wallet-001');
|
|
455
|
+
expect(positions).toEqual([]);
|
|
456
|
+
});
|
|
457
|
+
it('getPositions on API error returns []', async () => {
|
|
458
|
+
marketData.getPositions.mockRejectedValue(new Error('API down'));
|
|
459
|
+
const positions = await provider.getPositions('wallet-001');
|
|
460
|
+
expect(positions).toEqual([]);
|
|
461
|
+
});
|
|
462
|
+
it('getPositions calculates amountUsd from markPrice', async () => {
|
|
463
|
+
marketData.getPositions.mockResolvedValue([
|
|
464
|
+
{
|
|
465
|
+
coin: 'ETH',
|
|
466
|
+
szi: '2.0',
|
|
467
|
+
entryPx: '2000',
|
|
468
|
+
leverage: { type: 'cross', value: 10 },
|
|
469
|
+
unrealizedPnl: '100',
|
|
470
|
+
marginUsed: '400',
|
|
471
|
+
liquidationPx: '1800',
|
|
472
|
+
},
|
|
473
|
+
]);
|
|
474
|
+
marketData.getAllMidPrices.mockResolvedValue({ ETH: '2500' });
|
|
475
|
+
const positions = await provider.getPositions('wallet-001');
|
|
476
|
+
expect(positions[0].amountUsd).toBe(5000); // abs(2.0) * 2500
|
|
477
|
+
});
|
|
478
|
+
it('getPositions returns amountUsd null when no mid price', async () => {
|
|
479
|
+
marketData.getPositions.mockResolvedValue([
|
|
480
|
+
{
|
|
481
|
+
coin: 'DOGE',
|
|
482
|
+
szi: '1000',
|
|
483
|
+
entryPx: '0.08',
|
|
484
|
+
leverage: { type: 'cross', value: 5 },
|
|
485
|
+
},
|
|
486
|
+
]);
|
|
487
|
+
marketData.getAllMidPrices.mockResolvedValue({});
|
|
488
|
+
const positions = await provider.getPositions('wallet-001');
|
|
489
|
+
expect(positions[0].amountUsd).toBeNull();
|
|
490
|
+
});
|
|
491
|
+
});
|
|
389
492
|
});
|
|
390
493
|
//# sourceMappingURL=perp-provider.test.js.map
|