@termix-it/cryptoclaw 1.0.0 → 1.0.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/CHANGELOG.md +93 -93
- package/README.md +1 -1
- package/assets/favicon.svg +22 -0
- package/dist/{accounts-CIGHxE7R.js → accounts-BIh6Lgjl.js} +1 -1
- package/dist/{accounts-BPjR5SyC.js → accounts-DA-4bmd_.js} +1 -1
- package/dist/{acp-cli-DG9nygBk.js → acp-cli-CBFKSvET.js} +8 -8
- package/dist/{acp-cli-DBWmJpUJ.js → acp-cli-CEPAR8vh.js} +8 -8
- package/dist/{agent-3MZVCC-N.js → agent-8dTCwA-D.js} +10 -10
- package/dist/{agent-scope-DBl1We79.js → agent-scope-BJucHu4R.js} +2 -2
- package/dist/{agent-scope-e_oNRhGi.js → agent-scope-DzpuqcS9.js} +5 -1
- package/dist/{agent-scope-DLfFOxP6.js → agent-scope-GUoze5gc.js} +2 -2
- package/dist/{agent-IDE9krld.js → agent-sjalTGVA.js} +10 -10
- package/dist/{audit-jaTyyQX1.js → audit-BMzW1G5a.js} +10 -10
- package/dist/{audit-Bj_dxNaD.js → audit-DQsCrYXQ.js} +10 -10
- package/dist/{auth-health-CCM6Z3vK.js → auth-health-Cr8ib9nm.js} +1 -1
- package/dist/{auth-health-BlspzqyF.js → auth-health-Dc-ImENT.js} +1 -1
- package/dist/{auth-profiles-DoD7YxsD.js → auth-profiles-CVShF1K6.js} +2 -2
- package/dist/build-info.json +3 -3
- package/dist/{call-D2DXG0AC.js → call-D-Kvee3W.js} +2 -2
- package/dist/{call-DqxlETxE.js → call-QEaFjVBF.js} +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-DUkxROTo.js → channel-options-B951pKy8.js} +5 -5
- package/dist/{channel-options-BHpXOBuP.js → channel-options-DJsSCLD8.js} +3 -3
- package/dist/{channel-selection-BdigfMZZ.js → channel-selection-BWiz5Osx.js} +1 -1
- package/dist/{channel-selection-D7jFTFec.js → channel-selection-ChOffLk2.js} +1 -1
- package/dist/{channel-summary-DS0kcHm2.js → channel-summary-BQMoWZQ1.js} +5 -5
- package/dist/{channel-summary-CobMoKN6.js → channel-summary-C4kSR_wu.js} +5 -5
- package/dist/{channels-cli-DBwffwqw.js → channels-cli-Fv9FTQXn.js} +34 -34
- package/dist/{channels-cli-D7ZNRrq7.js → channels-cli-Lq6EWRJ9.js} +33 -33
- package/dist/{channels-status-issues-C2UGSPvH.js → channels-status-issues-BwOdQrU9.js} +1 -1
- package/dist/{channels-status-issues-Dxmd7zYk.js → channels-status-issues-DouPXVa3.js} +1 -1
- package/dist/{chrome-CwbWzmh4.js → chrome-D0L5ufqO.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-C9xiWnx9.js → cli-Bzyu6rQE.js} +27 -27
- package/dist/{cli-D6C9z94O.js → cli-DJnpasWd.js} +27 -27
- package/dist/{command-options-DL1PhuUF.js → command-options-DBpEhnW5.js} +3 -3
- package/dist/{commands-Dpeoos11.js → commands-B0LiAJsa.js} +3 -3
- package/dist/{completion-cli-CZ8zPqPs.js → completion-cli-Bd5FrGHg.js} +27 -27
- package/dist/{completion-cli-B5nR7jt8.js → completion-cli-Cs-B1hk7.js} +1 -1
- package/dist/{config-dQK4rbfx.js → config-D1wc31Qf.js} +4 -4
- package/dist/{config-DSpb2aMV.js → config-DBZqAqbe.js} +4 -4
- package/dist/{config-IwiWafT3.js → config-fXndcfb4.js} +2 -2
- package/dist/{config-guard-DwIb5Y-v.js → config-guard-Csl9Ubn5.js} +48 -48
- package/dist/{configure-CivCcvkA.js → configure-CeTzu0Ed.js} +20 -20
- package/dist/{configure-7M9mLC4o.js → configure-CxPJaP8X.js} +20 -20
- package/dist/{control-service-BXC31sNw.js → control-service-BBeopea3.js} +4 -4
- package/dist/{control-service-lVzEzp9f.js → control-service-CWGGzqpN.js} +4 -4
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/{index-DQ-7PWhX.js → index-BdjmXlOn.js} +372 -363
- package/dist/control-ui/assets/index-BdjmXlOn.js.map +1 -0
- package/dist/control-ui/assets/{index-nlpH70Eh.css → index-BxkHytum.css} +1 -1
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.ico +0 -0
- package/dist/control-ui/favicon.svg +4 -4
- package/dist/control-ui/index.html +2 -2
- package/dist/{cron-cli-DS8ytfYQ.js → cron-cli-D8gKivN0.js} +11 -11
- package/dist/{cron-cli-Djb3HUdz.js → cron-cli-yC5Cy77c.js} +11 -11
- package/dist/{daemon-cli-KoaJ2nJX.js → daemon-cli-BM8zb09s.js} +12 -12
- package/dist/{daemon-cli-ZQIKLvAO.js → daemon-cli-D8AC0Q_A.js} +12 -12
- package/dist/{daemon-runtime-CHWbAfKs.js → daemon-runtime-BMAJ_2LE.js} +1 -1
- package/dist/{daemon-runtime-DEjUQVjL.js → daemon-runtime-CD5XPuxz.js} +1 -1
- package/dist/{deliver-sPBfRlXT.js → deliver-CNKlQLWI.js} +6 -6
- package/dist/{deliver-OfX6bSYR.js → deliver-D8Yt4jkc.js} +6 -6
- package/dist/{deliver-DVRzRmNN.js → deliver-Doq_iIoh.js} +3 -3
- package/dist/{deps-CZOfeWEp.js → deps-BhcPiVuz.js} +2 -2
- package/dist/{deps-BSdWD2wF.js → deps-ZGqhOjkR.js} +2 -2
- package/dist/{devices-cli-b9iF_uOi.js → devices-cli-BcIB2VyK.js} +7 -7
- package/dist/{devices-cli-DHSpDnCS.js → devices-cli-BcznR9RO.js} +7 -7
- package/dist/{directory-cli-qniSxsHo.js → directory-cli--IOOMz66.js} +11 -11
- package/dist/{directory-cli-D0dTuAem.js → directory-cli-DGFlpQ4T.js} +11 -11
- package/dist/{dispatcher-DA3u3CwV.js → dispatcher-cp7uHiyX.js} +1 -1
- package/dist/{dns-cli-DwwMpMuN.js → dns-cli-DkhYuREi.js} +9 -9
- package/dist/{dns-cli-C0JUNb9O.js → dns-cli-fQ4wu1HJ.js} +9 -9
- package/dist/{docs-cli-BlFHCHDz.js → docs-cli-BgnDzmFT.js} +8 -8
- package/dist/{docs-cli-BpSPrY3Y.js → docs-cli-CPaJzUSD.js} +8 -8
- package/dist/{doctor-Da1XgFcW.js → doctor-D6M3Hc0a.js} +21 -21
- package/dist/{doctor-qrtookj-.js → doctor-DRRL31R4.js} +21 -21
- package/dist/entry.js +1 -1
- package/dist/{errors--S5IAxQx.js → errors-DpH6VpWK.js} +1 -1
- package/dist/{exec-approvals-cli-Csgqkksl.js → exec-approvals-cli-BhEdzGao.js} +12 -12
- package/dist/{exec-approvals-cli-Dk4yHE2L.js → exec-approvals-cli-DHMroOAh.js} +12 -12
- package/dist/extensionAPI.js +25 -25
- package/dist/{gateway-cli-CJ7H2DgV.js → gateway-cli-CbQ4xoXp.js} +183 -108
- package/dist/{gateway-cli-CrKl-bIH.js → gateway-cli-DO7lIBZ5.js} +185 -110
- package/dist/{gateway-rpc-BPfCU2Vi.js → gateway-rpc-0hjEbkzc.js} +1 -1
- package/dist/{gateway-rpc--CH0NWWR.js → gateway-rpc-anmk3tbT.js} +1 -1
- package/dist/{github-copilot-auth-CcPEEb3Q.js → github-copilot-auth-D6I2MUxi.js} +6 -6
- package/dist/{github-copilot-auth-h3beCc_l.js → github-copilot-auth-DvShXmvU.js} +6 -6
- package/dist/{gmail-setup-utils-pZ9NnOvB.js → gmail-setup-utils-CAfk_F1J.js} +2 -2
- package/dist/{gmail-setup-utils-CnVYPhaQ.js → gmail-setup-utils-CJ1pbsWv.js} +2 -2
- package/dist/{health-format-BcsR5dtU.js → health-format-DlvTEKqI.js} +8 -8
- package/dist/{health-format-Pl8qK65t.js → health-format-SZpheYuf.js} +8 -8
- package/dist/hooks/bundled/boot-md/HOOK.md +1 -1
- package/dist/hooks/bundled/command-logger/HOOK.md +1 -1
- package/dist/hooks/bundled/session-memory/HOOK.md +1 -1
- package/dist/hooks/bundled/soul-evil/HOOK.md +1 -1
- package/dist/{hooks-cli-zkLY25DX.js → hooks-cli-CedlcxxR.js} +31 -31
- package/dist/{hooks-cli-BKHTdsn4.js → hooks-cli-DRarvOK2.js} +31 -31
- package/dist/{hooks-status-BETsyuUR.js → hooks-status-B4cP-W7z.js} +3 -3
- package/dist/{hooks-status-nPgxLL-x.js → hooks-status-n8jKv3Fm.js} +3 -3
- package/dist/{image-DAsWVn7Q.js → image-C6tw3aWy.js} +4 -4
- package/dist/{image-CC_YKDB-.js → image-CBqp4iA0.js} +3 -3
- package/dist/{image-BFNcQzKp.js → image-CQgVMkgf.js} +4 -4
- package/dist/index.js +79 -79
- package/dist/{installs-Byb3s_8P.js → installs-BhPUpyE9.js} +2 -2
- package/dist/{installs-CELeuogN.js → installs-CWAe2dOG.js} +2 -2
- package/dist/{links-cf9h8BXu.js → links-Dv1EDiwa.js} +2 -2
- package/dist/{links-Brcj2Oc-.js → links-kbubTyay.js} +2 -2
- package/dist/{loader-CU4bkeKe.js → loader-DE_vKAH5.js} +44 -44
- package/dist/{logging-BJRQDTME.js → logging-B65tlzu3.js} +2 -2
- package/dist/{logging-CD55MXc7.js → logging-C3Y3mzWS.js} +2 -2
- package/dist/{login-qr-BCr2GKX6.js → login-qr-BTMkosTm.js} +1 -1
- package/dist/{login-qr-HIPJAnbT.js → login-qr-BpdHxT8l.js} +3 -3
- package/dist/{login-qr-BMbekoZW.js → login-qr-C_Vv7Cqc.js} +3 -3
- package/dist/{logs-cli-CM7-XOcZ.js → logs-cli-_DHuOrR4.js} +9 -9
- package/dist/{logs-cli-aqjT7oHu.js → logs-cli-emy-Mg4S.js} +9 -9
- package/dist/{manager-CtGvmGvM.js → manager-CNk2RhQo.js} +3 -3
- package/dist/{manager-DpZlm3gk.js → manager-Cu-KA-wA.js} +3 -3
- package/dist/{manager-C5m5qpB0.js → manager-bvW7170C.js} +3 -3
- package/dist/{manifest-registry-BdTzIlta.js → manifest-registry-CBbBh2FT.js} +1 -1
- package/dist/{manifest-registry-DVQHMj0y.js → manifest-registry-CmLtWVRR.js} +1 -1
- package/dist/{model-selection-DuI_Ue9Q.js → model-selection-BVTyreim.js} +1 -1
- package/dist/{model-selection-Av0fLq51.js → model-selection-DmO3rB3w.js} +2 -2
- package/dist/{models-cli-gmkzOpbq.js → models-cli-CdrDfutq.js} +32 -32
- package/dist/{models-cli-C0JOZ5oP.js → models-cli-CgIqfTHx.js} +32 -32
- package/dist/{node-cli-BND9LLkM.js → node-cli-Bsn9lQ6O.js} +13 -13
- package/dist/{node-cli-DNRB94ib.js → node-cli-Ckvs6bcI.js} +13 -13
- package/dist/{nodes-cli-BCWlqHyR.js → nodes-cli-BELOAYB6.js} +10 -10
- package/dist/{nodes-cli-DWSo5dX7.js → nodes-cli-CTQPoAcf.js} +10 -10
- package/dist/{onboard-channels-DJz2TusQ.js → onboard-channels-B5qHfMk8.js} +6 -6
- package/dist/{onboard-channels-B75LjjVZ.js → onboard-channels-BgchLTab.js} +6 -6
- package/dist/{onboard-skills-ByHkU9nx.js → onboard-skills-CyG0xbsu.js} +17 -17
- package/dist/{onboard-skills-Wknr7pxR.js → onboard-skills-DEnuz7z3.js} +17 -17
- package/dist/{onboarding-BejDjkx5.js → onboarding-B6aTF0nd.js} +37 -37
- package/dist/{openclaw-root-_zPXSqgo.js → openclaw-root-Cx_l_MXP.js} +6 -2
- package/dist/{openclaw-root-YSGWCNem.js → openclaw-root-DJB4AQtF.js} +6 -2
- package/dist/{pairing-cli-Cn5vt4oI.js → pairing-cli-C_PnyRzK.js} +11 -11
- package/dist/{pairing-cli-CFqD3IdI.js → pairing-cli-CocCRLzF.js} +11 -11
- package/dist/{pairing-store-BHzy16_t.js → pairing-store-Dbotpoz6.js} +1 -1
- package/dist/{pairing-store-BOhO49Bi.js → pairing-store-cC0TwSYc.js} +1 -1
- package/dist/{paths-Dlp4VNXa.js → paths-B7p98Wg9.js} +1 -1
- package/dist/{pi-embedded-helpers-CQ9sq3Uu.js → pi-embedded-helpers-Bmu_uE8Y.js} +4 -4
- package/dist/{pi-embedded-helpers-B7ARjDEK.js → pi-embedded-helpers-CT7w1pYd.js} +2 -2
- package/dist/{pi-embedded-helpers-FPVRDeKf.js → pi-embedded-helpers-DRK9Qub7.js} +2 -2
- package/dist/{pi-tools.policy-Du4RZy9R.js → pi-tools.policy-BjgXXFkH.js} +3 -3
- package/dist/{plugin-auto-enable-RwRwIUKC.js → plugin-auto-enable-BmBAQgRq.js} +4 -4
- package/dist/{plugin-auto-enable-EBxTHjFJ.js → plugin-auto-enable-CBfM3u2p.js} +4 -4
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/{plugins-BI-p2ba9.js → plugins-CB4Xjrgb.js} +2 -2
- package/dist/{plugins-Dk4UBZwz.js → plugins-CQ1FUoTO.js} +2 -2
- package/dist/{plugins-cli-CMg0G56J.js → plugins-cli-DB1NYN9W.js} +33 -33
- package/dist/{plugins-cli-CX7QeUjq.js → plugins-cli-Dn9I2nvT.js} +33 -33
- package/dist/{ports-nXmd4Efh.js → ports-CcCvup-Y.js} +2 -2
- package/dist/{program-EAMJAB_2.js → program-CL1V1uQh.js} +58 -58
- package/dist/{pw-ai-D6JUaD41.js → pw-ai-CQDH40p5.js} +2 -2
- package/dist/{pw-ai-D2jD_dho.js → pw-ai-DUv3Smif.js} +2 -2
- package/dist/{qmd-manager-B-ijyM7o.js → qmd-manager-DJdGKjf-.js} +2 -2
- package/dist/{qmd-manager-xo4abL0u.js → qmd-manager-DqhsQHr6.js} +2 -2
- package/dist/{qmd-manager-C_Jah5eo.js → qmd-manager-ym3oBzzR.js} +2 -2
- package/dist/{register.subclis-CJGimm3-.js → register.subclis-Bf9yES9h.js} +28 -28
- package/dist/{reply-DfepuqG0.js → reply-qWVVjmhR.js} +44 -44
- package/dist/{routes-DkckwrRx.js → routes-C49H9SW5.js} +4 -4
- package/dist/{routes-Q42qtNl1.js → routes-DzL6l-Oq.js} +4 -4
- package/dist/{rpc-B4lvrGrD.js → rpc-BEKdRxnk.js} +1 -1
- package/dist/{rpc-CbWcXAQK.js → rpc-jU_lA6zf.js} +1 -1
- package/dist/{run-main-JFY3X4Xh.js → run-main-C12Z921D.js} +59 -59
- package/dist/{sandbox-BGqDfFaH.js → sandbox-Cfvpk8Q8.js} +9 -9
- package/dist/{sandbox-D_Tt3WRq.js → sandbox-DcPAdlhA.js} +9 -9
- package/dist/{sandbox-cli-CaxqKiTq.js → sandbox-cli-DVfJ38Q2.js} +16 -16
- package/dist/{sandbox-cli-DA0Cbrzl.js → sandbox-cli-DqrtTHAP.js} +16 -16
- package/dist/{security-cli-Ct-pfF2h.js → security-cli-2AAajc4y.js} +18 -18
- package/dist/{security-cli-BZjA_GAD.js → security-cli-YL2ZTkkR.js} +18 -18
- package/dist/{server-context-C53lhEx_.js → server-context-9SLnBBRW.js} +4 -4
- package/dist/{server-context-B9ez46MY.js → server-context-BG54Dk0A.js} +4 -4
- package/dist/{server-node-events-Cb6QOeDH.js → server-node-events-uUSBf7hZ.js} +29 -29
- package/dist/{server-node-events-DONmQvJg.js → server-node-events-x6ZMjAs1.js} +29 -29
- package/dist/{service-audit-AsnhO40e.js → service-audit-BsDPEKdd.js} +1 -1
- package/dist/{service-audit-BM-iyLL7.js → service-audit-CCg0o0UZ.js} +1 -1
- package/dist/{skills-7V483a6m.js → skills-DaDm2aTV.js} +3 -3
- package/dist/{skills-CsZRBUj0.js → skills-DryIpWLj.js} +3 -3
- package/dist/{skills-cli-DQaq5LBX.js → skills-cli-CYZbvr7O.js} +10 -10
- package/dist/{skills-cli-dVugbaAb.js → skills-cli-eDUNGpwb.js} +10 -10
- package/dist/{skills-status-4_4zVBvV.js → skills-status-D9G4-4sK.js} +2 -2
- package/dist/{skills-status-cD4rfMR9.js → skills-status-dTiH79uI.js} +2 -2
- package/dist/{status-DSoYX3Ep.js → status-BnbwLzB2.js} +3 -3
- package/dist/{status-DHPz4Mg_.js → status-CN2V3fan.js} +37 -37
- package/dist/{status-BakhDLuG.js → status-DCrBN9vJ.js} +3 -3
- package/dist/{system-cli-CUQswQPX.js → system-cli-BEmIixtY.js} +9 -9
- package/dist/{system-cli-Cz7in_Xr.js → system-cli-ZxnlO0-v.js} +9 -9
- package/dist/{table-DDQGlZSe.js → table--L48nql9.js} +2 -2
- package/dist/{table-DAOPkdc_.js → table-C1Xupkjv.js} +2 -2
- package/dist/{tool-display-Zbh1CRw5.js → tool-display-7o4pgXYF.js} +1 -1
- package/dist/{tool-display-B2rS2o6B.js → tool-display-B9G_vqLX.js} +1 -1
- package/dist/{tui-qPHLsB-x.js → tui-3eD-E_iD.js} +6 -6
- package/dist/{tui-DFVs6pRO.js → tui-BGSteZzU.js} +6 -6
- package/dist/{tui-cli-CBKZVd1C.js → tui-cli-B9iCyCn2.js} +19 -19
- package/dist/{tui-cli-DexeJOgZ.js → tui-cli-iakTIAvk.js} +19 -19
- package/dist/{update-cli-BPUtZjbl.js → update-cli-DUO4CVNB.js} +48 -48
- package/dist/{update-cli-ehTYbpaU.js → update-cli-DlXzjuIc.js} +47 -47
- package/dist/{update-B2q3duJD.js → update-lGuOUiyd.js} +3 -3
- package/dist/{update-runner-DAeygRSU.js → update-runner-L1EJYQRF.js} +5 -5
- package/dist/{update-runner-BfncKnU6.js → update-runner-eJ773fp-.js} +5 -5
- package/dist/{update-DNnej3C6.js → update-zm4_acQX.js} +3 -3
- package/dist/{utils-D7jskKIf.js → utils-CGterW74.js} +1 -7
- package/dist/{utils-7IMqr8vR.js → utils-DV2rghi_.js} +1 -7
- package/dist/{webhooks-cli-C0CV-1jG.js → webhooks-cli-BLHZn_at.js} +10 -10
- package/dist/{webhooks-cli-DT16BygW.js → webhooks-cli-UhujyhVU.js} +10 -10
- package/dist/{widearea-dns-Dk82I4Xa.js → widearea-dns-BKbb6W_z.js} +1 -1
- package/dist/{widearea-dns-BJZTAyT3.js → widearea-dns-CVZf20c2.js} +1 -1
- package/dist/{wsl-C24YfxH9.js → wsl-DntkIGSe.js} +1 -1
- package/docs/assets/pixel-lobster.svg +3 -3
- package/docs/blockchain/aave.md +72 -0
- package/docs/blockchain/agent-identity.md +73 -0
- package/docs/blockchain/contracts.md +96 -0
- package/docs/blockchain/defi.md +61 -0
- package/docs/blockchain/index.md +92 -0
- package/docs/blockchain/market-data.md +98 -0
- package/docs/blockchain/nft.md +44 -0
- package/docs/blockchain/portfolio.md +57 -0
- package/docs/blockchain/security.md +83 -0
- package/docs/blockchain/swap.md +89 -0
- package/docs/blockchain/wallet.md +77 -0
- package/docs/concepts/features.md +29 -10
- package/docs/docs.json +76 -6
- package/docs/index.md +44 -44
- package/docs/start/getting-started.md +10 -9
- package/docs/zh-CN/blockchain/aave.md +63 -0
- package/docs/zh-CN/blockchain/agent-identity.md +62 -0
- package/docs/zh-CN/blockchain/contracts.md +64 -0
- package/docs/zh-CN/blockchain/defi.md +49 -0
- package/docs/zh-CN/blockchain/index.md +92 -0
- package/docs/zh-CN/blockchain/market-data.md +68 -0
- package/docs/zh-CN/blockchain/nft.md +43 -0
- package/docs/zh-CN/blockchain/portfolio.md +49 -0
- package/docs/zh-CN/blockchain/security.md +75 -0
- package/docs/zh-CN/blockchain/swap.md +68 -0
- package/docs/zh-CN/blockchain/wallet.md +71 -0
- package/extensions/copilot-proxy/README.md +3 -3
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/diagnostics-otel/src/service.test.ts +12 -12
- package/extensions/diagnostics-otel/src/service.ts +79 -79
- package/extensions/discord/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/config.ts +3 -3
- package/extensions/memory-lancedb/{openclaw.plugin.json → cryptoclaw.plugin.json} +1 -1
- package/extensions/memory-lancedb/index.test.ts +2 -2
- package/extensions/memory-lancedb/index.ts +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/nostr/README.md +5 -5
- package/extensions/nostr/package.json +1 -1
- package/extensions/nostr/src/channel.ts +1 -1
- package/extensions/nostr/src/nostr-state-store.test.ts +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/voice-call/README.md +14 -14
- package/extensions/voice-call/package.json +1 -1
- package/extensions/voice-call/src/cli.ts +1 -1
- package/extensions/voice-call/src/core-bridge.ts +1 -1
- package/extensions/voice-call/src/manager.test.ts +6 -6
- package/extensions/voice-call/src/manager.ts +1 -1
- package/extensions/voice-call/src/response-generator.ts +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/package.json +1 -1
- package/skills/aave-bsc/SKILL.md +6 -0
- package/skills/coding-agent/SKILL.md +5 -5
- package/skills/discord/SKILL.md +6 -6
- package/skills/tmux/SKILL.md +6 -6
- package/dist/control-ui/assets/index-DQ-7PWhX.js.map +0 -1
- /package/extensions/copilot-proxy/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/diagnostics-otel/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/discord/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/imessage/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/memory-core/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/nostr/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/signal/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/slack/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/telegram/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/voice-call/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
- /package/extensions/whatsapp/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "在任何支持的 EVM 链上部署、调用和验证智能合约。"
|
|
3
|
+
title: "智能合约"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 智能合约
|
|
7
|
+
|
|
8
|
+
CryptoClaw 帮助你在支持的 EVM 链上部署和交互智能合约。
|
|
9
|
+
|
|
10
|
+
## 操作
|
|
11
|
+
|
|
12
|
+
| 工具 | 描述 | 需确认 |
|
|
13
|
+
| --------------------- | -------------------------- | :----: |
|
|
14
|
+
| `write_contract` | 执行状态变更合约调用 | 是 |
|
|
15
|
+
| `read_contract` | 读取合约数据 | |
|
|
16
|
+
| `get_contract_abi` | 从浏览器获取已验证合约 ABI | |
|
|
17
|
+
| `get_contract_source` | 获取已验证源代码 | |
|
|
18
|
+
| `deploy_contract` | 从字节码部署合约 | 是 |
|
|
19
|
+
|
|
20
|
+
## 合约部署
|
|
21
|
+
|
|
22
|
+
CryptoClaw 提供常见代币标准的模板:
|
|
23
|
+
|
|
24
|
+
| 模板 | 标准 | 描述 |
|
|
25
|
+
| ------- | ---- | ---------------------------------- |
|
|
26
|
+
| ERC-20 | 代币 | 标准 transfer/approve 的同质化代币 |
|
|
27
|
+
| ERC-721 | NFT | 非同质化代币集合 |
|
|
28
|
+
|
|
29
|
+
<Warning>
|
|
30
|
+
在部署到主网之前,请先在测试网(BSC Testnet、Sepolia)上测试。主网部署花费真实资金且不可逆。
|
|
31
|
+
</Warning>
|
|
32
|
+
|
|
33
|
+
## 合约交互
|
|
34
|
+
|
|
35
|
+
### 读取数据
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
"读取合约 0x... 的 totalSupply"
|
|
39
|
+
"BSC 上合约 0x... 的 owner 是谁?"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 写入合约
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
"调用 USDT 合约的 approve 函数,授权 100 代币"
|
|
46
|
+
"执行合约 0x... 的 stake 函数,质押 10 BNB"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
所有写入操作需通过 tx-gate 确认。
|
|
50
|
+
|
|
51
|
+
## 浏览器集成
|
|
52
|
+
|
|
53
|
+
通过 Etherscan API 系列集成区块浏览器:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
export ETHERSCAN_API_KEY=your_key_here
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
支持:获取已验证合约 ABI、查看源代码、查询交易历史、检查代币转账、监控 Gas 价格。
|
|
60
|
+
|
|
61
|
+
## 相关
|
|
62
|
+
|
|
63
|
+
- [NFT 管理](/zh-CN/blockchain/nft) — 专门的 NFT 操作
|
|
64
|
+
- [交易安全](/zh-CN/blockchain/security) — 确认和花费限制
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "监控 DeFi 仓位 — 收益农场、质押、流动性池和协议分析。"
|
|
3
|
+
title: "DeFi 仪表板"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DeFi 仪表板
|
|
7
|
+
|
|
8
|
+
CryptoClaw 提供综合 DeFi 监控仪表板,跟踪跨协议仓位并展示收益机会。
|
|
9
|
+
|
|
10
|
+
## 数据来源
|
|
11
|
+
|
|
12
|
+
| 来源 | API 密钥 | 功能 |
|
|
13
|
+
| ------------- | :--------------: | --------------------------------------------- |
|
|
14
|
+
| 链上合约查询 | 不需要 | Aave、PancakeSwap、Uniswap、Compound 协议直读 |
|
|
15
|
+
| DeFiLlama API | 不需要 | TVL 数据、协议分析、收益池排名 |
|
|
16
|
+
| DeBank API | `DEBANK_API_KEY` | 钱包级 DeFi 仓位(100+ 链) |
|
|
17
|
+
|
|
18
|
+
## 支持的协议
|
|
19
|
+
|
|
20
|
+
| 协议 | 链 | 功能 |
|
|
21
|
+
| ----------- | --------------------------------- | ---------------------- |
|
|
22
|
+
| PancakeSwap | BSC, Ethereum | LP 仓位、挖矿奖励 |
|
|
23
|
+
| Uniswap | Ethereum, Polygon, Arbitrum, Base | V2/V3 仓位、手续费收入 |
|
|
24
|
+
| Aave | BSC, Ethereum, Polygon | 存借仓位、健康系数 |
|
|
25
|
+
| Compound | Ethereum | 存借仓位 |
|
|
26
|
+
|
|
27
|
+
## 操作示例
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
"显示我的 DeFi 仓位"
|
|
31
|
+
"我的 Aave 健康系数是多少?"
|
|
32
|
+
"在 PancakeSwap 上赚了多少?"
|
|
33
|
+
"Aave 的 TVL 是多少?"
|
|
34
|
+
"BSC 上收益最高的池子"
|
|
35
|
+
"最佳稳定币收益在 Ethereum 上"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 配置
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# 可选:DeBank 获取钱包级仓位
|
|
42
|
+
export DEBANK_API_KEY=your_key_here
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 相关
|
|
46
|
+
|
|
47
|
+
- [代币兑换](/zh-CN/blockchain/swap) — 在 DEX 上执行兑换
|
|
48
|
+
- [AAVE 借贷](/zh-CN/blockchain/aave) — Aave V3 操作
|
|
49
|
+
- [投资组合](/zh-CN/blockchain/portfolio) — 资产聚合视图
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "CryptoClaw 区块链功能 — 钱包管理、DeFi、NFT 和 16+ EVM 链支持。"
|
|
3
|
+
title: "区块链概览"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 区块链概览
|
|
7
|
+
|
|
8
|
+
CryptoClaw 将多渠道 AI 助手扩展为原生区块链工具。通过聊天直接与 EVM 兼容链交互 — 管理钱包、兑换代币、追踪投资组合、部署合约等。
|
|
9
|
+
|
|
10
|
+
## 支持的网络
|
|
11
|
+
|
|
12
|
+
CryptoClaw 支持 **16+ EVM 兼容链**,包括:
|
|
13
|
+
|
|
14
|
+
| 网络 | 链 ID | 默认 |
|
|
15
|
+
| ----------------- | -------- | ---- |
|
|
16
|
+
| BNB Smart Chain | 56 | 是 |
|
|
17
|
+
| Ethereum | 1 | |
|
|
18
|
+
| Polygon | 137 | |
|
|
19
|
+
| Arbitrum One | 42161 | |
|
|
20
|
+
| Optimism | 10 | |
|
|
21
|
+
| Base | 8453 | |
|
|
22
|
+
| Avalanche C-Chain | 43114 | |
|
|
23
|
+
| Fantom | 250 | |
|
|
24
|
+
| Cronos | 25 | |
|
|
25
|
+
| zkSync Era | 324 | |
|
|
26
|
+
| BSC 测试网 | 97 | |
|
|
27
|
+
| Sepolia | 11155111 | |
|
|
28
|
+
|
|
29
|
+
调用工具时可通过名称或 ID 指定链。BSC 为默认链。
|
|
30
|
+
|
|
31
|
+
## 安全模型
|
|
32
|
+
|
|
33
|
+
所有区块链操作遵循严格的安全原则:
|
|
34
|
+
|
|
35
|
+
- **静态加密** — 私钥使用 AES-256-GCM 加密存储(scrypt KDF)
|
|
36
|
+
- **确认门控** — 状态变更操作(转账、兑换、合约写入)需要用户明确确认
|
|
37
|
+
- **花费限制** — 可配置单笔和每日 USD 上限
|
|
38
|
+
- **密钥脱敏** — 私钥永不暴露在代理对话记录中
|
|
39
|
+
- **仅 CLI 敏感操作** — 导入/导出仅限终端
|
|
40
|
+
|
|
41
|
+
详见 [交易安全](/zh-CN/blockchain/security)。
|
|
42
|
+
|
|
43
|
+
## 功能
|
|
44
|
+
|
|
45
|
+
<Columns>
|
|
46
|
+
<Card title="钱包管理" href="/zh-CN/blockchain/wallet" icon="wallet">
|
|
47
|
+
创建、导入和管理加密钱包。跨链查余额。
|
|
48
|
+
</Card>
|
|
49
|
+
<Card title="代币兑换" href="/zh-CN/blockchain/swap" icon="arrow-left-right">
|
|
50
|
+
在 PancakeSwap、Uniswap V2/V3 上兑换代币,带滑点保护。
|
|
51
|
+
</Card>
|
|
52
|
+
<Card title="DeFi 仪表板" href="/zh-CN/blockchain/defi" icon="bar-chart-3">
|
|
53
|
+
监控收益农场、质押和流动性池仓位。
|
|
54
|
+
</Card>
|
|
55
|
+
<Card title="市场数据" href="/zh-CN/blockchain/market-data" icon="trending-up">
|
|
56
|
+
实时价格、图表、热门代币和链上分析。
|
|
57
|
+
</Card>
|
|
58
|
+
<Card title="投资组合" href="/zh-CN/blockchain/portfolio" icon="pie-chart">
|
|
59
|
+
跨钱包和网络的资产聚合,USD 估值。
|
|
60
|
+
</Card>
|
|
61
|
+
<Card title="智能合约" href="/zh-CN/blockchain/contracts" icon="file-code">
|
|
62
|
+
在任何支持链上部署、调用和验证合约。
|
|
63
|
+
</Card>
|
|
64
|
+
<Card title="NFT 管理" href="/zh-CN/blockchain/nft" icon="image">
|
|
65
|
+
铸造、转移和查询 ERC-721 和 ERC-1155 代币。
|
|
66
|
+
</Card>
|
|
67
|
+
<Card title="AAVE 借贷" href="/zh-CN/blockchain/aave" icon="landmark">
|
|
68
|
+
在 Aave V3 (BSC) 上存入、借出和偿还。
|
|
69
|
+
</Card>
|
|
70
|
+
<Card title="代理身份" href="/zh-CN/blockchain/agent-identity" icon="fingerprint">
|
|
71
|
+
通过 ERC-8004 注册链上 AI 代理身份。
|
|
72
|
+
</Card>
|
|
73
|
+
</Columns>
|
|
74
|
+
|
|
75
|
+
## 快速开始
|
|
76
|
+
|
|
77
|
+
<Steps>
|
|
78
|
+
<Step title="安装 CryptoClaw">
|
|
79
|
+
```bash
|
|
80
|
+
npm install -g @termix-it/cryptoclaw
|
|
81
|
+
```
|
|
82
|
+
</Step>
|
|
83
|
+
<Step title="创建钱包">
|
|
84
|
+
```bash
|
|
85
|
+
cryptoclaw onboard --wallet
|
|
86
|
+
```
|
|
87
|
+
或直接对代理说:"创建一个新钱包"
|
|
88
|
+
</Step>
|
|
89
|
+
<Step title="开始交互">
|
|
90
|
+
让代理查余额、兑换代币或追踪投资组合。
|
|
91
|
+
</Step>
|
|
92
|
+
</Steps>
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "实时加密货币价格、图表、热门代币和链上分析。"
|
|
3
|
+
title: "市场数据"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 市场数据
|
|
7
|
+
|
|
8
|
+
CryptoClaw 通过多个数据提供商提供实时和历史加密货币市场数据。
|
|
9
|
+
|
|
10
|
+
## 数据提供商
|
|
11
|
+
|
|
12
|
+
| 提供商 | API 密钥 | 限频 | 功能 |
|
|
13
|
+
| -------------- | :------------: | ---------------- | ------------------------- |
|
|
14
|
+
| CoinGecko | 不需要 | ~30 次/分钟 | 价格、市场、热门、历史 |
|
|
15
|
+
| Dune Analytics | `DUNE_API_KEY` | 10 次/天(免费) | 自定义 SQL 查询、链上数据 |
|
|
16
|
+
| DeFiLlama | 不需要 | 宽松 | TVL、收益率、稳定币数据 |
|
|
17
|
+
|
|
18
|
+
## CoinGecko 操作
|
|
19
|
+
|
|
20
|
+
| 操作 | 描述 |
|
|
21
|
+
| -------- | ------------------------------- |
|
|
22
|
+
| 价格查询 | 任意代币的 USD/BTC/ETH 当前价格 |
|
|
23
|
+
| 市场概览 | 按市值排名的热门代币及 24h 变化 |
|
|
24
|
+
| 热门代币 | CoinGecko 当前热门 |
|
|
25
|
+
| 价格历史 | 历史价格图表(1d, 7d, 30d, 1y) |
|
|
26
|
+
| 代币搜索 | 按名称或符号查找代币 |
|
|
27
|
+
|
|
28
|
+
### 示例
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
"BNB 现在什么价?"
|
|
32
|
+
"按市值显示前 10 名代币"
|
|
33
|
+
"CoinGecko 上什么在热门?"
|
|
34
|
+
"显示 BTC 过去 30 天价格图表"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Dune Analytics
|
|
38
|
+
|
|
39
|
+
通过 Dune API 使用自定义 SQL 查询链上数据。
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
export DUNE_API_KEY=your_key_here
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 示例
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
"运行 Dune 查询 3286091 查看每周 DEX 交易量"
|
|
49
|
+
"查询今天以太坊上花费的总 Gas"
|
|
50
|
+
"显示本周 BSC 上的每日活跃地址"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## DeFiLlama
|
|
54
|
+
|
|
55
|
+
无需 API 密钥的协议和收益数据。
|
|
56
|
+
|
|
57
|
+
### 示例
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
"Aave 的总 TVL 是多少?"
|
|
61
|
+
"比较 BSC、Ethereum 和 Polygon 的 TVL"
|
|
62
|
+
"Ethereum 上最佳稳定币收益池"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 相关
|
|
66
|
+
|
|
67
|
+
- [投资组合](/zh-CN/blockchain/portfolio) — 追踪持仓
|
|
68
|
+
- [DeFi 仪表板](/zh-CN/blockchain/defi) — 监控 DeFi 仓位
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "铸造、转移和查询 ERC-721 和 ERC-1155 NFT。"
|
|
3
|
+
title: "NFT 管理"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# NFT 管理
|
|
7
|
+
|
|
8
|
+
CryptoClaw 管理 ERC-721 和 ERC-1155 标准的 NFT 集合和单个代币。
|
|
9
|
+
|
|
10
|
+
## 支持的标准
|
|
11
|
+
|
|
12
|
+
| 标准 | 描述 |
|
|
13
|
+
| -------- | ----------------------------------------- |
|
|
14
|
+
| ERC-721 | 非同质化代币 — 唯一物品 |
|
|
15
|
+
| ERC-1155 | 多代币标准 — 同一合约中的同质化和非同质化 |
|
|
16
|
+
|
|
17
|
+
## 操作
|
|
18
|
+
|
|
19
|
+
| 工具 | 描述 | 需确认 |
|
|
20
|
+
| --------------------- | ---------------------------------- | :----: |
|
|
21
|
+
| `transfer_nft` | 转移 ERC-721 代币 | 是 |
|
|
22
|
+
| `transfer_erc1155` | 转移 ERC-1155 代币 | 是 |
|
|
23
|
+
| `get_nft_metadata` | 查看代币元数据(名称、图片、属性) | |
|
|
24
|
+
| `get_nft_holdings` | 列出地址拥有的 NFT | |
|
|
25
|
+
| `get_collection_info` | 集合级统计(供应量、地板价等) | |
|
|
26
|
+
|
|
27
|
+
## 示例
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
"显示我在 BSC 上的 NFT"
|
|
31
|
+
"集合 0x... 中代币 #42 的元数据是什么?"
|
|
32
|
+
"将集合 0x... 中的 NFT #7 转给 0xRecipient"
|
|
33
|
+
"列出我在 Ethereum 上钱包中的所有 NFT"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
<Warning>
|
|
37
|
+
转移 NFT 时,请确保接收地址支持该代币标准。发送到未实现接收接口的合约可能导致永久丢失。
|
|
38
|
+
</Warning>
|
|
39
|
+
|
|
40
|
+
## 相关
|
|
41
|
+
|
|
42
|
+
- [智能合约](/zh-CN/blockchain/contracts) — 部署 NFT 合约
|
|
43
|
+
- [交易安全](/zh-CN/blockchain/security) — 转移确认机制
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "跨钱包和网络聚合加密货币持仓,实时 USD 估值。"
|
|
3
|
+
title: "投资组合"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 投资组合
|
|
7
|
+
|
|
8
|
+
CryptoClaw 聚合并显示所有钱包和网络的加密货币持仓及实时 USD 估值。
|
|
9
|
+
|
|
10
|
+
## 工具
|
|
11
|
+
|
|
12
|
+
| 工具 | 描述 |
|
|
13
|
+
| ------------------------ | ------------------------------- |
|
|
14
|
+
| `get_native_balance` | 查询原生代币余额(BNB、ETH 等) |
|
|
15
|
+
| `get_erc20_balance` | 查询 ERC-20 代币余额 |
|
|
16
|
+
| `wallet_list` | 列出所有管理的钱包 |
|
|
17
|
+
| `get_supported_networks` | 列出可用网络 |
|
|
18
|
+
|
|
19
|
+
## 功能
|
|
20
|
+
|
|
21
|
+
- **多钱包聚合** — 查看所有钱包的汇总持仓
|
|
22
|
+
- **多链支持** — 16+ EVM 链的余额
|
|
23
|
+
- **USD 估值** — 使用 CoinGecko 价格实时转换
|
|
24
|
+
- **代币细分** — 各代币余额及占比
|
|
25
|
+
|
|
26
|
+
## DeBank 增强数据
|
|
27
|
+
|
|
28
|
+
配置 DeBank API 获取包含 DeFi 仓位的综合视图:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
export DEBANK_API_KEY=your_key_here
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
DeBank 提供:跨 100+ 链总资产、按链余额细分、代币持仓、DeFi 仓位、NFT 持仓、交易历史。
|
|
35
|
+
|
|
36
|
+
## 示例
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
"显示我的投资组合"
|
|
40
|
+
"所有钱包的总余额是多少?"
|
|
41
|
+
"列出我在 BSC 上的代币持仓"
|
|
42
|
+
"按链显示资产分布"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 相关
|
|
46
|
+
|
|
47
|
+
- [钱包管理](/zh-CN/blockchain/wallet) — 创建和管理钱包
|
|
48
|
+
- [市场数据](/zh-CN/blockchain/market-data) — 查看当前价格
|
|
49
|
+
- [DeFi 仪表板](/zh-CN/blockchain/defi) — 详细 DeFi 仓位
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "交易安全架构 — 确认门控、花费限制和私钥保护。"
|
|
3
|
+
title: "交易安全"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 交易安全
|
|
7
|
+
|
|
8
|
+
CryptoClaw 对所有区块链操作执行多层安全措施,保护用户资金和私钥。
|
|
9
|
+
|
|
10
|
+
## 确认门控
|
|
11
|
+
|
|
12
|
+
状态变更操作在执行前需要用户明确确认。tx-gate 系统通过 `before_tool_call` 钩子拦截这些工具调用。
|
|
13
|
+
|
|
14
|
+
**需要确认的操作:**
|
|
15
|
+
|
|
16
|
+
| 工具 | 操作 |
|
|
17
|
+
| ------------------------ | --------------------------- |
|
|
18
|
+
| `transfer_native_token` | 发送原生代币(BNB、ETH 等) |
|
|
19
|
+
| `transfer_erc20` | 发送 ERC-20 代币 |
|
|
20
|
+
| `approve_token_spending` | 授权代币额度 |
|
|
21
|
+
| `transfer_nft` | 转移 ERC-721 NFT |
|
|
22
|
+
| `transfer_erc1155` | 转移 ERC-1155 代币 |
|
|
23
|
+
| `write_contract` | 执行合约写入 |
|
|
24
|
+
| `swap_execute` | 执行代币兑换 |
|
|
25
|
+
| `wallet_delete` | 删除钱包 |
|
|
26
|
+
| `agent_register` | 注册链上代理身份 |
|
|
27
|
+
| `agent_set_wallet` | 更新代理链上钱包 |
|
|
28
|
+
|
|
29
|
+
需要确认时,代理会展示人类可读的交易摘要(接收方、金额、代币、网络),等待您的批准。
|
|
30
|
+
|
|
31
|
+
## 花费限制
|
|
32
|
+
|
|
33
|
+
在 `~/.cryptoclaw/cryptoclaw.json` 中配置单笔和每日花费上限:
|
|
34
|
+
|
|
35
|
+
```json5
|
|
36
|
+
{
|
|
37
|
+
blockchain: {
|
|
38
|
+
spendingLimits: {
|
|
39
|
+
perTransaction: 100, // 单笔最大 USD
|
|
40
|
+
daily: 1000, // 24 小时最大 USD
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
超限交易将被阻止并显示警告。
|
|
47
|
+
|
|
48
|
+
## 私钥保护
|
|
49
|
+
|
|
50
|
+
- **加密存储**:AES-256-GCM,scrypt KDF(N=2^15, r=8, p=1)
|
|
51
|
+
- **密钥库权限**:文件模式 `0600`(仅所有者可访问)
|
|
52
|
+
- **对话脱敏**:`tool_result_persist` 钩子从会话记录中去除私钥
|
|
53
|
+
- **密钥检测**:`containsPrivateKey()` 和 `sanitizeSecrets()` 守护所有工具输出
|
|
54
|
+
- **仅 CLI 操作**:`wallet_import` 和 `wallet_export` 仅限终端
|
|
55
|
+
|
|
56
|
+
## 架构
|
|
57
|
+
|
|
58
|
+
```mermaid
|
|
59
|
+
flowchart TD
|
|
60
|
+
A["代理工具调用"] --> B{"tx-gate 钩子"}
|
|
61
|
+
B -->|只读| C["立即执行"]
|
|
62
|
+
B -->|状态变更| D["生成确认提示"]
|
|
63
|
+
D --> E["用户审批"]
|
|
64
|
+
E -->|批准| F{"检查花费限制"}
|
|
65
|
+
F -->|限额内| G["执行交易"]
|
|
66
|
+
F -->|超限| H["阻止并警告"]
|
|
67
|
+
E -->|拒绝| I["取消操作"]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 最佳实践
|
|
71
|
+
|
|
72
|
+
- 初始设置保守的花费限制,按需调高
|
|
73
|
+
- 为代理操作使用专用钱包,而非主钱包
|
|
74
|
+
- 仔细审查确认提示后再批准
|
|
75
|
+
- 使用测试网(BSC Testnet、Sepolia)进行实验
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "在 PancakeSwap 和 Uniswap 上兑换代币,带滑点保护和蜜罐检测。"
|
|
3
|
+
title: "代币兑换"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 代币兑换
|
|
7
|
+
|
|
8
|
+
CryptoClaw 支持在主要去中心化交易所跨 EVM 链兑换代币。
|
|
9
|
+
|
|
10
|
+
## 支持的 DEX
|
|
11
|
+
|
|
12
|
+
| DEX | 版本 | 链 |
|
|
13
|
+
| ----------- | ------ | ------------------------------------------- |
|
|
14
|
+
| PancakeSwap | V2, V3 | BSC, Ethereum |
|
|
15
|
+
| Uniswap | V2, V3 | Ethereum, Polygon, Arbitrum, Optimism, Base |
|
|
16
|
+
|
|
17
|
+
## 工具
|
|
18
|
+
|
|
19
|
+
| 工具 | 描述 | 需确认 |
|
|
20
|
+
| ----------------- | ------------------------ | :----: |
|
|
21
|
+
| `swap_quote` | 获取交易对报价 | |
|
|
22
|
+
| `swap_execute` | 执行兑换 | 是 |
|
|
23
|
+
| `check_allowance` | 检查代币授权额度 | |
|
|
24
|
+
| `get_dex_list` | 列出链上可用 DEX | |
|
|
25
|
+
| `get_token_info` | 通过地址或符号查代币信息 | |
|
|
26
|
+
|
|
27
|
+
## 兑换流程
|
|
28
|
+
|
|
29
|
+
<Steps>
|
|
30
|
+
<Step title="获取报价">
|
|
31
|
+
询问:"报价 1 BNB 兑换 USDT(PancakeSwap)"
|
|
32
|
+
|
|
33
|
+
代理获取最佳路由,显示预期输出、价格影响和费用。
|
|
34
|
+
|
|
35
|
+
</Step>
|
|
36
|
+
<Step title="审查并确认">
|
|
37
|
+
代理显示输入/输出金额、汇率、价格影响、滑点容差和 Gas 估算。确认后方可执行。
|
|
38
|
+
</Step>
|
|
39
|
+
<Step title="执行">
|
|
40
|
+
兑换在链上提交。代理返回交易哈希和最终金额。
|
|
41
|
+
</Step>
|
|
42
|
+
</Steps>
|
|
43
|
+
|
|
44
|
+
## 安全特性
|
|
45
|
+
|
|
46
|
+
- **滑点保护** — 默认 0.5% 滑点容差,可按笔配置
|
|
47
|
+
- **价格影响预警** — 影响超过 3% 时告警
|
|
48
|
+
- **蜜罐检测** — 检查无法卖出的代币
|
|
49
|
+
- **授权管理** — 需要时自动处理 approve 流程
|
|
50
|
+
- **花费限制** — 遵守已配置的单笔和每日 USD 上限
|
|
51
|
+
|
|
52
|
+
<Warning>
|
|
53
|
+
请始终验证代币合约地址。代理会警告未验证的代币,但对不熟悉的代币请保持谨慎。
|
|
54
|
+
</Warning>
|
|
55
|
+
|
|
56
|
+
## 示例
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
"兑换 0.5 BNB 为 USDT(PancakeSwap)"
|
|
60
|
+
"报价 100 USDC 到 ETH(Uniswap V3)"
|
|
61
|
+
"Polygon 上有哪些 DEX?"
|
|
62
|
+
"查看我对 PancakeSwap 路由的 USDT 授权"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 相关
|
|
66
|
+
|
|
67
|
+
- [DeFi 仪表板](/zh-CN/blockchain/defi) — 监控 LP 和收益仓位
|
|
68
|
+
- [市场数据](/zh-CN/blockchain/market-data) — 兑换前查价格
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "创建、导入和管理区块链钱包,使用 AES-256-GCM 加密密钥库。"
|
|
3
|
+
title: "钱包管理"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 钱包管理
|
|
7
|
+
|
|
8
|
+
CryptoClaw 提供安全的钱包管理功能,用于与 EVM 兼容区块链交互。所有钱包使用 AES-256-GCM 加密本地存储。
|
|
9
|
+
|
|
10
|
+
## 支持的操作
|
|
11
|
+
|
|
12
|
+
| 工具 | 描述 | 需确认 |
|
|
13
|
+
| --------------- | -------------------------- | :----: |
|
|
14
|
+
| `wallet_create` | 生成新钱包并加密存储 | |
|
|
15
|
+
| `wallet_list` | 列出所有钱包和当前活跃钱包 | |
|
|
16
|
+
| `wallet_switch` | 切换活跃钱包 | |
|
|
17
|
+
| `wallet_delete` | 从密钥库移除钱包 | 是 |
|
|
18
|
+
| `wallet_import` | 通过私钥导入钱包(仅 CLI) | |
|
|
19
|
+
| `wallet_export` | 导出钱包私钥(仅 CLI) | |
|
|
20
|
+
|
|
21
|
+
<Warning>
|
|
22
|
+
导入和导出操作仅限 CLI,不可通过聊天渠道触发。
|
|
23
|
+
</Warning>
|
|
24
|
+
|
|
25
|
+
## 创建钱包
|
|
26
|
+
|
|
27
|
+
让代理创建钱包,或使用 CLI:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
cryptoclaw onboard --wallet
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
代理会:
|
|
34
|
+
|
|
35
|
+
1. 生成新密钥对
|
|
36
|
+
2. 使用密码短语加密私钥(AES-256-GCM,scrypt KDF)
|
|
37
|
+
3. 存储到 `~/.cryptoclaw/wallets/`
|
|
38
|
+
4. 返回公开地址
|
|
39
|
+
|
|
40
|
+
## 查询余额
|
|
41
|
+
|
|
42
|
+
让代理查询任意网络上的余额:
|
|
43
|
+
|
|
44
|
+
- "我的 BNB 余额是多少?"
|
|
45
|
+
- "查看我在 Ethereum 上的 ETH 余额"
|
|
46
|
+
- "查询 Polygon 上的 USDT 余额"
|
|
47
|
+
|
|
48
|
+
## 钱包存储
|
|
49
|
+
|
|
50
|
+
钱包存储于 `~/.cryptoclaw/wallets/`:
|
|
51
|
+
|
|
52
|
+
- **密钥库文件**:AES-256-GCM 加密私钥,scrypt 派生密钥
|
|
53
|
+
- **文件权限**:`0600`(仅所有者读写)
|
|
54
|
+
- **元数据**:地址、创建日期、标签
|
|
55
|
+
|
|
56
|
+
## 配置
|
|
57
|
+
|
|
58
|
+
钱包设置位于 `~/.cryptoclaw/cryptoclaw.json`:
|
|
59
|
+
|
|
60
|
+
```json5
|
|
61
|
+
{
|
|
62
|
+
blockchain: {
|
|
63
|
+
defaultNetwork: "bsc", // 默认操作链
|
|
64
|
+
walletDir: "wallets", // 相对于状态目录
|
|
65
|
+
},
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 安全
|
|
70
|
+
|
|
71
|
+
详见 [交易安全](/zh-CN/blockchain/security)。
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copilot Proxy (
|
|
1
|
+
# Copilot Proxy (CryptoClaw plugin)
|
|
2
2
|
|
|
3
3
|
Provider plugin for the **Copilot Proxy** VS Code extension.
|
|
4
4
|
|
|
@@ -7,7 +7,7 @@ Provider plugin for the **Copilot Proxy** VS Code extension.
|
|
|
7
7
|
Bundled plugins are disabled by default. Enable this one:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
10
|
+
cryptoclaw plugins enable copilot-proxy
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
Restart the Gateway after enabling.
|
|
@@ -15,7 +15,7 @@ Restart the Gateway after enabling.
|
|
|
15
15
|
## Authenticate
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
18
|
+
cryptoclaw models auth login --provider copilot-proxy --set-default
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
## Notes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cryptoclaw/diagnostics-otel",
|
|
3
3
|
"version": "2026.2.4",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "CryptoClaw diagnostics OpenTelemetry exporter",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@opentelemetry/api": "^1.9.0",
|
|
@@ -192,26 +192,26 @@ describe("diagnostics-otel service", () => {
|
|
|
192
192
|
attempt: 2,
|
|
193
193
|
});
|
|
194
194
|
|
|
195
|
-
expect(telemetryState.counters.get("
|
|
195
|
+
expect(telemetryState.counters.get("cryptoclaw.webhook.received")?.add).toHaveBeenCalled();
|
|
196
196
|
expect(
|
|
197
|
-
telemetryState.histograms.get("
|
|
197
|
+
telemetryState.histograms.get("cryptoclaw.webhook.duration_ms")?.record,
|
|
198
198
|
).toHaveBeenCalled();
|
|
199
|
-
expect(telemetryState.counters.get("
|
|
200
|
-
expect(telemetryState.counters.get("
|
|
199
|
+
expect(telemetryState.counters.get("cryptoclaw.message.queued")?.add).toHaveBeenCalled();
|
|
200
|
+
expect(telemetryState.counters.get("cryptoclaw.message.processed")?.add).toHaveBeenCalled();
|
|
201
201
|
expect(
|
|
202
|
-
telemetryState.histograms.get("
|
|
202
|
+
telemetryState.histograms.get("cryptoclaw.message.duration_ms")?.record,
|
|
203
203
|
).toHaveBeenCalled();
|
|
204
|
-
expect(telemetryState.histograms.get("
|
|
205
|
-
expect(telemetryState.counters.get("
|
|
204
|
+
expect(telemetryState.histograms.get("cryptoclaw.queue.wait_ms")?.record).toHaveBeenCalled();
|
|
205
|
+
expect(telemetryState.counters.get("cryptoclaw.session.stuck")?.add).toHaveBeenCalled();
|
|
206
206
|
expect(
|
|
207
|
-
telemetryState.histograms.get("
|
|
207
|
+
telemetryState.histograms.get("cryptoclaw.session.stuck_age_ms")?.record,
|
|
208
208
|
).toHaveBeenCalled();
|
|
209
|
-
expect(telemetryState.counters.get("
|
|
209
|
+
expect(telemetryState.counters.get("cryptoclaw.run.attempt")?.add).toHaveBeenCalled();
|
|
210
210
|
|
|
211
211
|
const spanNames = telemetryState.tracer.startSpan.mock.calls.map((call) => call[0]);
|
|
212
|
-
expect(spanNames).toContain("
|
|
213
|
-
expect(spanNames).toContain("
|
|
214
|
-
expect(spanNames).toContain("
|
|
212
|
+
expect(spanNames).toContain("cryptoclaw.webhook.processed");
|
|
213
|
+
expect(spanNames).toContain("cryptoclaw.message.processed");
|
|
214
|
+
expect(spanNames).toContain("cryptoclaw.session.stuck");
|
|
215
215
|
|
|
216
216
|
expect(registerLogTransportMock).toHaveBeenCalledTimes(1);
|
|
217
217
|
expect(registeredTransports).toHaveLength(1);
|