@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.
Files changed (56) hide show
  1. package/dist/providers/aave-v3/aave-contracts.d.ts +34 -0
  2. package/dist/providers/aave-v3/aave-contracts.d.ts.map +1 -1
  3. package/dist/providers/aave-v3/aave-contracts.js +59 -0
  4. package/dist/providers/aave-v3/aave-contracts.js.map +1 -1
  5. package/dist/providers/aave-v3/aave-rpc.d.ts +31 -0
  6. package/dist/providers/aave-v3/aave-rpc.d.ts.map +1 -1
  7. package/dist/providers/aave-v3/aave-rpc.js +70 -0
  8. package/dist/providers/aave-v3/aave-rpc.js.map +1 -1
  9. package/dist/providers/aave-v3/index.d.ts +1 -1
  10. package/dist/providers/aave-v3/index.d.ts.map +1 -1
  11. package/dist/providers/aave-v3/index.js +133 -5
  12. package/dist/providers/aave-v3/index.js.map +1 -1
  13. package/dist/providers/hyperliquid/__tests__/perp-provider.test.js +103 -0
  14. package/dist/providers/hyperliquid/__tests__/perp-provider.test.js.map +1 -1
  15. package/dist/providers/hyperliquid/__tests__/spot-provider.test.js +64 -0
  16. package/dist/providers/hyperliquid/__tests__/spot-provider.test.js.map +1 -1
  17. package/dist/providers/hyperliquid/perp-provider.d.ts +4 -1
  18. package/dist/providers/hyperliquid/perp-provider.d.ts.map +1 -1
  19. package/dist/providers/hyperliquid/perp-provider.js +50 -0
  20. package/dist/providers/hyperliquid/perp-provider.js.map +1 -1
  21. package/dist/providers/hyperliquid/spot-provider.d.ts +4 -1
  22. package/dist/providers/hyperliquid/spot-provider.d.ts.map +1 -1
  23. package/dist/providers/hyperliquid/spot-provider.js +56 -0
  24. package/dist/providers/hyperliquid/spot-provider.js.map +1 -1
  25. package/dist/providers/jito-staking/config.d.ts +1 -0
  26. package/dist/providers/jito-staking/config.d.ts.map +1 -1
  27. package/dist/providers/jito-staking/config.js.map +1 -1
  28. package/dist/providers/jito-staking/index.d.ts +9 -0
  29. package/dist/providers/jito-staking/index.d.ts.map +1 -1
  30. package/dist/providers/jito-staking/index.js +52 -1
  31. package/dist/providers/jito-staking/index.js.map +1 -1
  32. package/dist/providers/jito-staking/jito-stake-pool.d.ts +19 -0
  33. package/dist/providers/jito-staking/jito-stake-pool.d.ts.map +1 -1
  34. package/dist/providers/jito-staking/jito-stake-pool.js +63 -0
  35. package/dist/providers/jito-staking/jito-stake-pool.js.map +1 -1
  36. package/dist/providers/lido-staking/config.d.ts +1 -0
  37. package/dist/providers/lido-staking/config.d.ts.map +1 -1
  38. package/dist/providers/lido-staking/config.js.map +1 -1
  39. package/dist/providers/lido-staking/index.d.ts +17 -0
  40. package/dist/providers/lido-staking/index.d.ts.map +1 -1
  41. package/dist/providers/lido-staking/index.js +105 -1
  42. package/dist/providers/lido-staking/index.js.map +1 -1
  43. package/dist/providers/lido-staking/lido-contract.d.ts +25 -0
  44. package/dist/providers/lido-staking/lido-contract.d.ts.map +1 -1
  45. package/dist/providers/lido-staking/lido-contract.js +46 -0
  46. package/dist/providers/lido-staking/lido-contract.js.map +1 -1
  47. package/dist/providers/pendle/__tests__/pendle-provider.test.js +139 -0
  48. package/dist/providers/pendle/__tests__/pendle-provider.test.js.map +1 -1
  49. package/dist/providers/pendle/config.d.ts +1 -0
  50. package/dist/providers/pendle/config.d.ts.map +1 -1
  51. package/dist/providers/pendle/config.js.map +1 -1
  52. package/dist/providers/pendle/index.d.ts +14 -1
  53. package/dist/providers/pendle/index.d.ts.map +1 -1
  54. package/dist/providers/pendle/index.js +111 -3
  55. package/dist/providers/pendle/index.js.map +1 -1
  56. 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;;;;;;;;CAWjB,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"}
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":"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"}
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":"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"}
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(_walletId: string): Promise<PositionUpdate[]>;
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;AAWhD,OAAO,EACL,KAAK,UAAU,EAKhB,MAAM,eAAe,CAAC;AAYvB,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,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAKhE,eAAe,IAAI,MAAM;IAIzB,sBAAsB,IAAI,gBAAgB,EAAE;CAG7C"}
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(_walletId) {
321
- // Deferred: PositionTracker will use ILendingProvider.getPosition via adapter in Phase 277
322
- return [];
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