@agentlayer.tech/wallet 0.1.44 → 0.1.48

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.
@@ -1689,6 +1689,105 @@ const evmToolDefinitions = [
1689
1689
  additionalProperties: false,
1690
1690
  },
1691
1691
  },
1692
+ {
1693
+ name: "get_evm_morpho_vaults",
1694
+ description: "Get read-only Morpho vault discovery and detail data for the configured EVM network on supported mainnet chains. When listing, results are ordered (default: largest TVL first) and can be filtered by underlying asset.",
1695
+ parameters: {
1696
+ type: "object",
1697
+ properties: {
1698
+ vault_address: { type: "string", description: "Optional explicit vault address for a single-vault lookup." },
1699
+ limit: { type: "integer", minimum: 1, maximum: 500 },
1700
+ listed_only: { type: "boolean", description: "Filter to listed vaults only. Defaults to true." },
1701
+ asset_address: { type: "string", description: "Optional underlying asset address filter (e.g. only USDC vaults)." },
1702
+ order_by: {
1703
+ type: "string",
1704
+ enum: ["TotalAssetsUsd", "TotalAssets", "TotalSupply", "Liquidity", "LiquidityUsd", "Apy", "NetApy", "Address"],
1705
+ description: "Sort field when listing. Defaults to TotalAssetsUsd.",
1706
+ },
1707
+ order_direction: { type: "string", enum: ["asc", "desc"], description: "Sort direction. Defaults to desc." },
1708
+ network: { type: "string", enum: ["ethereum", "base"] },
1709
+ },
1710
+ additionalProperties: false,
1711
+ },
1712
+ },
1713
+ {
1714
+ name: "get_evm_morpho_markets",
1715
+ description: "Get read-only Morpho market discovery and detail data for the configured EVM network on supported mainnet chains. When listing, results are ordered (default: largest supply first) and can be filtered by free-text search or by collateral/loan asset.",
1716
+ parameters: {
1717
+ type: "object",
1718
+ properties: {
1719
+ market_id: { type: "string", description: "Optional explicit market id (32-byte hex) for a single-market lookup." },
1720
+ limit: { type: "integer", minimum: 1, maximum: 500 },
1721
+ listed_only: { type: "boolean", description: "Filter to listed markets only. Defaults to true." },
1722
+ search: { type: "string", description: "Optional free-text search over market/asset symbols (e.g. 'wstETH')." },
1723
+ collateral_asset_address: { type: "string", description: "Optional collateral asset address filter." },
1724
+ loan_asset_address: { type: "string", description: "Optional loan asset address filter." },
1725
+ order_by: {
1726
+ type: "string",
1727
+ enum: ["SupplyAssetsUsd", "BorrowAssetsUsd", "SupplyApy", "NetSupplyApy", "BorrowApy", "NetBorrowApy", "Utilization", "TotalLiquidityUsd", "Lltv"],
1728
+ description: "Sort field when listing. Defaults to SupplyAssetsUsd.",
1729
+ },
1730
+ order_direction: { type: "string", enum: ["asc", "desc"], description: "Sort direction. Defaults to desc." },
1731
+ network: { type: "string", enum: ["ethereum", "base"] },
1732
+ },
1733
+ additionalProperties: false,
1734
+ },
1735
+ },
1736
+ {
1737
+ name: "get_evm_morpho_positions",
1738
+ description: "Get read-only Morpho vault and market positions for the configured EVM wallet on supported mainnet chains.",
1739
+ parameters: {
1740
+ type: "object",
1741
+ properties: {
1742
+ network: { type: "string", enum: ["ethereum", "base"] },
1743
+ },
1744
+ additionalProperties: false,
1745
+ },
1746
+ },
1747
+ {
1748
+ name: "manage_evm_morpho_vault_position",
1749
+ description: "Preview, prepare, or execute a narrow Morpho vault operation on supported EVM mainnet networks. Supported operations are supply and withdraw. Preview or prepare first. After the user explicitly confirms the shown summary in chat, call execute; the OpenClaw plugin handles the internal execution authorization automatically.",
1750
+ optional: true,
1751
+ parameters: {
1752
+ type: "object",
1753
+ properties: {
1754
+ operation: { type: "string", enum: ["supply", "withdraw"] },
1755
+ token_address: { type: "string" },
1756
+ vault_address: { type: "string" },
1757
+ vault_preset: { type: "string" },
1758
+ amount_raw: { type: "string" },
1759
+ native_amount_raw: { type: "string" },
1760
+ mode: { type: "string", enum: ["preview", "prepare", "execute"] },
1761
+ purpose: { type: "string" },
1762
+ user_intent: { type: "boolean" },
1763
+ network: { type: "string", enum: ["ethereum", "base"] },
1764
+ },
1765
+ required: ["operation", "token_address", "mode", "purpose"],
1766
+ additionalProperties: false,
1767
+ },
1768
+ },
1769
+ {
1770
+ name: "manage_evm_morpho_market_position",
1771
+ description: "Preview, prepare, or execute a narrow Morpho market operation on supported EVM mainnet networks. Supported operations are supply_collateral, borrow, repay, and withdraw_collateral. Preview or prepare first. After the user explicitly confirms the shown summary in chat, call execute; the OpenClaw plugin handles the internal execution authorization automatically.",
1772
+ optional: true,
1773
+ parameters: {
1774
+ type: "object",
1775
+ properties: {
1776
+ operation: { type: "string", enum: ["supply_collateral", "borrow", "repay", "withdraw_collateral"] },
1777
+ token_address: { type: "string" },
1778
+ market_id: { type: "string" },
1779
+ market_preset: { type: "string" },
1780
+ amount_raw: { type: "string" },
1781
+ native_amount_raw: { type: "string" },
1782
+ mode: { type: "string", enum: ["preview", "prepare", "execute"] },
1783
+ purpose: { type: "string" },
1784
+ user_intent: { type: "boolean" },
1785
+ network: { type: "string", enum: ["ethereum", "base"] },
1786
+ },
1787
+ required: ["operation", "token_address", "mode", "purpose"],
1788
+ additionalProperties: false,
1789
+ },
1790
+ },
1692
1791
  {
1693
1792
  name: "get_evm_swap_quote",
1694
1793
  description: "Get a read-only Velora quote for an ERC-20 or native ETH swap on supported EVM mainnet networks. This does not approve or execute a swap.",
@@ -2,7 +2,7 @@
2
2
  "id": "agent-wallet",
3
3
  "name": "Agent Wallet",
4
4
  "description": "Official OpenClaw plugin bridge for the agent-wallet backends, including Solana, local BTC, and local EVM.",
5
- "version": "0.1.44",
5
+ "version": "0.1.48",
6
6
  "contracts": {
7
7
  "tools": [
8
8
  "close_empty_token_accounts",
@@ -16,6 +16,9 @@
16
16
  "get_evm_aave_positions",
17
17
  "get_evm_aave_reserves",
18
18
  "get_evm_fee_rates",
19
+ "get_evm_morpho_markets",
20
+ "get_evm_morpho_positions",
21
+ "get_evm_morpho_vaults",
19
22
  "get_evm_lido_overview",
20
23
  "get_evm_lido_positions",
21
24
  "get_evm_lido_withdrawal_requests",
@@ -45,6 +48,8 @@
45
48
  "kamino_lend_withdraw",
46
49
  "launch_bags_token",
47
50
  "manage_evm_aave_position",
51
+ "manage_evm_morpho_market_position",
52
+ "manage_evm_morpho_vault_position",
48
53
  "manage_evm_lido_position",
49
54
  "manage_evm_lido_withdrawal",
50
55
  "set_evm_network",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentlayertech/agent-wallet-plugin",
3
- "version": "0.1.44",
3
+ "version": "0.1.48",
4
4
  "description": "OpenClaw plugin bridge for the AgentLayer wallet runtime.",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN ../../../LICENSE",
package/CHANGELOG.md CHANGED
@@ -2,6 +2,68 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## v0.1.47 - 2026-06-16
6
+
7
+ - Fixed Solana swaps of Token-2022 tokens with complex extensions (e.g. Backpack
8
+ xStock tokens such as SPCX, which carry `scaledUiAmountConfig`,
9
+ `pausableConfig`, `permanentDelegate`, and `confidentialTransferMint`) that
10
+ consistently failed with "Provider swap transaction simulation failed". When a
11
+ simulation failure is detected during `execute_swap_intent`, the next retry
12
+ now passes `excludeDexes=GoonFi V2` to the Jupiter lite-api quote, forcing
13
+ routing through a DEX that handles these extensions correctly (ZeroFi).
14
+ - `providers/jupiter.py`: `fetch_quote`/`_fetch_quote_direct` accept an
15
+ optional `exclude_dexes`, passed through as the `excludeDexes` query param.
16
+ - `wallet_layer/solana.py`: `preview_swap` propagates `exclude_dexes` into the
17
+ metis fallback; `execute_swap_intent` tracks a simulation-failure flag and
18
+ excludes `GoonFi V2` on the retry. Default behavior is unchanged (no DEX
19
+ exclusion unless a prior attempt failed simulation). (#14)
20
+ - First published release carrying the Morpho lending integration and the
21
+ fresh-venv install hardening previously rolled out only locally (see the
22
+ 0.1.45 and 0.1.46 entries below).
23
+
24
+ ## v0.1.46 - 2026-06-14
25
+
26
+ - Hardened the runtime install so a freshly created venv does not fail on
27
+ native dependencies. The venv fingerprint hashes `pyproject.toml`, whose
28
+ version line changes every release, so each bump builds a brand-new venv with
29
+ the pip that `ensurepip` bundled. That pip could resolve `cryptography` and
30
+ `ckzg` to versions without a prebuilt wheel and fall back to a source build
31
+ needing a Rust/C toolchain, failing the install on machines that lack one.
32
+ The installer now upgrades pip/setuptools/wheel in a new venv and runs the
33
+ editable install with `--prefer-binary`, keeping native deps on prebuilt
34
+ wheels.
35
+
36
+ ## v0.1.45 - 2026-06-14
37
+
38
+ - Added a Morpho lending integration (vaults + Blue markets) on Ethereum and
39
+ Base, exposed across all local agent frameworks (OpenClaw, Codex,
40
+ Claude Code) through the shared agent-wallet adapter.
41
+ - Read-only discovery: `get_evm_morpho_vaults`, `get_evm_morpho_markets`,
42
+ and `get_evm_morpho_positions`, backed by the Morpho GraphQL API.
43
+ - Write flows with preview/prepare/execute and quote-fingerprint binding:
44
+ `manage_evm_morpho_vault_position` (supply/withdraw) and
45
+ `manage_evm_morpho_market_position`
46
+ (supply_collateral/borrow/repay/withdraw_collateral), including automatic
47
+ approval/authorization requirement execution and rollback on failure.
48
+ - Fixed three Morpho defects found while hardening the integration:
49
+ - Vault list discovery used a non-existent GraphQL filter type
50
+ (`VaultV2Filters` -> `VaultV2sFilters`), so the default vault listing
51
+ failed on every call.
52
+ - Single vault/market lookups now return `found: false` for a missing target
53
+ instead of a confusing `morpho_api_failed`. The Morpho API answers a
54
+ missing entity as a `NOT_FOUND` GraphQL error with HTTP 200, which the
55
+ previous code treated as a hard failure.
56
+ - Execute no longer rejects checksummed vault/market targets: the approval
57
+ binding lowercases the resolved target, so it is now compared
58
+ case-insensitively against the requested address/id.
59
+ - Made Morpho discovery usable without paging through a default-ordered slice:
60
+ - Vaults: filter by underlying asset and order by TVL/APY (default
61
+ `TotalAssetsUsd` desc).
62
+ - Markets: free-text `search` plus collateral/loan asset filters, ordered by
63
+ supply/APY (default `SupplyAssetsUsd` desc).
64
+ - `order_by` is validated case-insensitively against an allowlist, and the
65
+ read-path `marketId` is validated as a 32-byte hex string.
66
+
5
67
  ## v0.1.44 - 2026-06-12
6
68
 
7
69
  - Added anonymous, privacy-first adoption telemetry so wallet usage can be
package/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
 
4
4
  [![npm version](https://img.shields.io/npm/v/%40agentlayer.tech%2Fwallet)](https://www.npmjs.com/package/@agentlayer.tech/wallet)
5
5
  [![npm downloads](https://img.shields.io/npm/dm/%40agentlayer.tech%2Fwallet)](https://www.npmjs.com/package/@agentlayer.tech/wallet)
6
+ [![Node 24.x](https://img.shields.io/badge/node-24.x-339933?logo=node.js&logoColor=white)](https://nodejs.org/)
6
7
  [![docs](https://img.shields.io/badge/docs-agent--layer.tech-blue)](https://docs.agent-layer.tech/)
7
- [![license](https://img.shields.io/github/license/lopushok9/Agent-Layer)](https://github.com/lopushok9/Agent-Layer/blob/main/LICENSE)
8
8
 
9
9
  For Openclaw:
10
10
 
@@ -69,7 +69,7 @@ Do not treat it as a finished production wallet stack. Test every flow before re
69
69
  System prerequisites:
70
70
 
71
71
  - `python3`
72
- - `node`
72
+ - `node` `24.x`
73
73
  - `npm`
74
74
 
75
75
  Install the local runtime:
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.44
1
+ 0.1.48
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Keep in sync with package.json, pyproject.toml, and the npm installer version.
4
4
  # scripts/check_release_version.mjs enforces this on release.
5
- __version__ = "0.1.44"
5
+ __version__ = "0.1.48"
6
6
 
7
7
  __all__ = [
8
8
  "config",