@teneo-protocol/sdk 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +11 -2
- package/.github/CODEOWNERS +2 -0
- package/.github/ISSUE_TEMPLATE/01-bug.yml +85 -0
- package/.github/ISSUE_TEMPLATE/config.yml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- package/.github/workflows/claude-code-review.yml +8 -3
- package/.github/workflows/claude-reviewer.yml +6 -4
- package/.github/workflows/publish-npm.yml +1 -0
- package/.github/workflows/push-to-main.yml +1 -1
- package/.github/workflows/top-issue.yml +102 -0
- package/CHANGELOG.md +69 -0
- package/CONCEPTS.md +747 -0
- package/README.md +178 -8
- package/dist/constants.js +8 -8
- package/dist/constants.js.map +1 -1
- package/dist/core/websocket-client.d.ts +15 -3
- package/dist/core/websocket-client.d.ts.map +1 -1
- package/dist/core/websocket-client.js +52 -13
- package/dist/core/websocket-client.js.map +1 -1
- package/dist/formatters/response-formatter.js +4 -0
- package/dist/formatters/response-formatter.js.map +1 -1
- package/dist/handlers/message-handler-registry.js +2 -1
- package/dist/handlers/message-handler-registry.js.map +1 -1
- package/dist/handlers/message-handlers/agent-details-response-handler.d.ts +1666 -0
- package/dist/handlers/message-handlers/agent-details-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-details-response-handler.js +38 -0
- package/dist/handlers/message-handlers/agent-details-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.js +2 -5
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/agent-selected-handler.js +2 -5
- package/dist/handlers/message-handlers/agent-selected-handler.js.map +1 -1
- package/dist/handlers/message-handlers/agent-status-update-handler.d.ts +783 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/agent-status-update-handler.js +2 -5
- package/dist/handlers/message-handlers/agent-status-update-handler.js.map +1 -1
- package/dist/handlers/message-handlers/agents-list-handler.js +2 -5
- package/dist/handlers/message-handlers/agents-list-handler.js.map +1 -1
- package/dist/handlers/message-handlers/all-agents-response-handler.d.ts +439 -0
- package/dist/handlers/message-handlers/all-agents-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/all-agents-response-handler.js +36 -0
- package/dist/handlers/message-handlers/all-agents-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-error-handler.js +2 -5
- package/dist/handlers/message-handlers/auth-error-handler.js.map +1 -1
- package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-message-handler.js +6 -5
- package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -1
- package/dist/handlers/message-handlers/auth-required-handler.js +2 -5
- package/dist/handlers/message-handlers/auth-required-handler.js.map +1 -1
- package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-success-handler.js +6 -5
- package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -1
- package/dist/handlers/message-handlers/base-handler.d.ts +4 -4
- package/dist/handlers/message-handlers/base-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/base-handler.js +3 -1
- package/dist/handlers/message-handlers/base-handler.js.map +1 -1
- package/dist/handlers/message-handlers/challenge-handler.js +3 -2
- package/dist/handlers/message-handlers/challenge-handler.js.map +1 -1
- package/dist/handlers/message-handlers/error-message-handler.js +2 -5
- package/dist/handlers/message-handlers/error-message-handler.js.map +1 -1
- package/dist/handlers/message-handlers/index.d.ts +6 -0
- package/dist/handlers/message-handlers/index.d.ts.map +1 -1
- package/dist/handlers/message-handlers/index.js +33 -1
- package/dist/handlers/message-handlers/index.js.map +1 -1
- package/dist/handlers/message-handlers/list-available-agents-handler.d.ts +783 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/list-available-agents-handler.js +2 -5
- package/dist/handlers/message-handlers/list-available-agents-handler.js.map +1 -1
- package/dist/handlers/message-handlers/list-room-agents-handler.d.ts +783 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/list-room-agents-handler.js +2 -5
- package/dist/handlers/message-handlers/list-room-agents-handler.js.map +1 -1
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +2 -199
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/list-rooms-response-handler.js +4 -6
- package/dist/handlers/message-handlers/list-rooms-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/ping-pong-handler.js +4 -10
- package/dist/handlers/message-handlers/ping-pong-handler.js.map +1 -1
- package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts +94 -0
- package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/rate-limit-notification-handler.js +35 -0
- package/dist/handlers/message-handlers/rate-limit-notification-handler.js.map +1 -0
- package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/regular-message-handler.js +4 -6
- package/dist/handlers/message-handlers/regular-message-handler.js.map +1 -1
- package/dist/handlers/message-handlers/room-operation-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/room-operation-response-handler.js +2 -5
- package/dist/handlers/message-handlers/room-operation-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/subscribe-response-handler.js +4 -6
- package/dist/handlers/message-handlers/subscribe-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/task-quote-handler.d.ts +14 -0
- package/dist/handlers/message-handlers/task-quote-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/task-quote-handler.js +29 -0
- package/dist/handlers/message-handlers/task-quote-handler.js.map +1 -0
- package/dist/handlers/message-handlers/task-response-handler.js +2 -5
- package/dist/handlers/message-handlers/task-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/types.d.ts +21 -9
- package/dist/handlers/message-handlers/types.d.ts.map +1 -1
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/unsubscribe-response-handler.js +4 -6
- package/dist/handlers/message-handlers/unsubscribe-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/user-authenticated-handler.d.ts +40 -0
- package/dist/handlers/message-handlers/user-authenticated-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/user-authenticated-handler.js +28 -0
- package/dist/handlers/message-handlers/user-authenticated-handler.js.map +1 -0
- package/dist/handlers/message-handlers/user-count-handler.d.ts +49 -0
- package/dist/handlers/message-handlers/user-count-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/user-count-handler.js +31 -0
- package/dist/handlers/message-handlers/user-count-handler.js.map +1 -0
- package/dist/handlers/webhook-handler.d.ts +1 -1
- package/dist/handlers/webhook-handler.d.ts.map +1 -1
- package/dist/handlers/webhook-handler.js +14 -5
- package/dist/handlers/webhook-handler.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/managers/admin-manager.d.ts +116 -0
- package/dist/managers/admin-manager.d.ts.map +1 -0
- package/dist/managers/admin-manager.js +169 -0
- package/dist/managers/admin-manager.js.map +1 -0
- package/dist/managers/agent-registry.d.ts +52 -1
- package/dist/managers/agent-registry.d.ts.map +1 -1
- package/dist/managers/agent-registry.js +145 -6
- package/dist/managers/agent-registry.js.map +1 -1
- package/dist/managers/agent-room-manager.d.ts +1 -7
- package/dist/managers/agent-room-manager.d.ts.map +1 -1
- package/dist/managers/agent-room-manager.js +83 -36
- package/dist/managers/agent-room-manager.js.map +1 -1
- package/dist/managers/connection-manager.js +2 -0
- package/dist/managers/connection-manager.js.map +1 -1
- package/dist/managers/index.d.ts +2 -1
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/index.js +3 -1
- package/dist/managers/index.js.map +1 -1
- package/dist/managers/message-router.d.ts +56 -5
- package/dist/managers/message-router.d.ts.map +1 -1
- package/dist/managers/message-router.js +155 -8
- package/dist/managers/message-router.js.map +1 -1
- package/dist/managers/room-management-manager.d.ts.map +1 -1
- package/dist/managers/room-management-manager.js +9 -7
- package/dist/managers/room-management-manager.js.map +1 -1
- package/dist/managers/room-manager.d.ts +7 -5
- package/dist/managers/room-manager.d.ts.map +1 -1
- package/dist/managers/room-manager.js +14 -10
- package/dist/managers/room-manager.js.map +1 -1
- package/dist/payments/index.d.ts +5 -0
- package/dist/payments/index.d.ts.map +1 -0
- package/dist/payments/index.js +21 -0
- package/dist/payments/index.js.map +1 -0
- package/dist/payments/payment-client.d.ts +74 -0
- package/dist/payments/payment-client.d.ts.map +1 -0
- package/dist/payments/payment-client.js +207 -0
- package/dist/payments/payment-client.js.map +1 -0
- package/dist/teneo-sdk.d.ts +135 -21
- package/dist/teneo-sdk.d.ts.map +1 -1
- package/dist/teneo-sdk.js +268 -26
- package/dist/teneo-sdk.js.map +1 -1
- package/dist/types/categories.d.ts +22 -0
- package/dist/types/categories.d.ts.map +1 -0
- package/dist/types/categories.js +40 -0
- package/dist/types/categories.js.map +1 -0
- package/dist/types/config.d.ts +79 -8
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +62 -5
- package/dist/types/config.js.map +1 -1
- package/dist/types/error-codes.d.ts +8 -0
- package/dist/types/error-codes.d.ts.map +1 -1
- package/dist/types/error-codes.js +9 -0
- package/dist/types/error-codes.js.map +1 -1
- package/dist/types/events.d.ts +44 -0
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/events.js +19 -1
- package/dist/types/events.js.map +1 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +33 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/messages.d.ts +11219 -423
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/messages.js +249 -7
- package/dist/types/messages.js.map +1 -1
- package/dist/utils/bounded-queue.d.ts.map +1 -1
- package/dist/utils/bounded-queue.js +5 -2
- package/dist/utils/bounded-queue.js.map +1 -1
- package/dist/utils/circuit-breaker.js +11 -4
- package/dist/utils/circuit-breaker.js.map +1 -1
- package/dist/utils/deduplication-cache.js +3 -1
- package/dist/utils/deduplication-cache.js.map +1 -1
- package/dist/utils/event-waiter.d.ts +3 -3
- package/dist/utils/event-waiter.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/pricing-resolver.d.ts +26 -0
- package/dist/utils/pricing-resolver.d.ts.map +1 -0
- package/dist/utils/pricing-resolver.js +85 -0
- package/dist/utils/pricing-resolver.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -1
- package/dist/utils/rate-limiter.js +6 -0
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/retry-policy.js +1 -0
- package/dist/utils/retry-policy.js.map +1 -1
- package/dist/utils/secure-private-key.js +3 -1
- package/dist/utils/secure-private-key.js.map +1 -1
- package/dist/utils/signature-verifier.d.ts.map +1 -1
- package/dist/utils/signature-verifier.js +3 -1
- package/dist/utils/signature-verifier.js.map +1 -1
- package/examples/.env.example +1 -1
- package/examples/agent-room-management-example.ts +10 -9
- package/examples/basic-usage.ts +3 -4
- package/examples/claude-agent-x-follower/.env.example +1 -1
- package/examples/claude-agent-x-follower/QUICKSTART.md +2 -2
- package/examples/claude-agent-x-follower/README.md +2 -2
- package/examples/claude-agent-x-follower/index.ts +120 -96
- package/examples/n8n-teneo/.env.example +1 -1
- package/examples/n8n-teneo/README.md +1 -1
- package/examples/n8n-teneo/index.ts +54 -44
- package/examples/nestjs-dashboard/.env.example +11 -0
- package/examples/nestjs-dashboard/README.md +297 -0
- package/examples/nestjs-dashboard/nest-cli.json +10 -0
- package/examples/nestjs-dashboard/package.json +44 -0
- package/examples/nestjs-dashboard/pnpm-lock.yaml +3079 -0
- package/examples/nestjs-dashboard/src/app.controller.ts +24 -0
- package/examples/nestjs-dashboard/src/app.module.ts +15 -0
- package/examples/nestjs-dashboard/src/main.ts +32 -0
- package/examples/nestjs-dashboard/src/public/dashboard.html +1144 -0
- package/examples/nestjs-dashboard/src/teneo/agents.controller.ts +54 -0
- package/examples/nestjs-dashboard/src/teneo/events.controller.ts +65 -0
- package/examples/nestjs-dashboard/src/teneo/messages.controller.ts +47 -0
- package/examples/nestjs-dashboard/src/teneo/rooms.controller.ts +258 -0
- package/examples/nestjs-dashboard/src/teneo/teneo.module.ts +13 -0
- package/examples/nestjs-dashboard/src/teneo/teneo.service.ts +484 -0
- package/examples/nestjs-dashboard/tsconfig.json +22 -0
- package/examples/openai-teneo/.env.example +1 -1
- package/examples/openai-teneo/README.md +2 -2
- package/examples/openai-teneo/index.ts +82 -71
- package/examples/production-dashboard/.env.example +1 -1
- package/examples/production-dashboard/README.md +1 -1
- package/examples/production-dashboard/server.ts +2 -2
- package/examples/room-management-example.ts +5 -8
- package/examples/usage/.env.example +1 -1
- package/examples/usage/01-connect.ts +3 -4
- package/examples/usage/02-list-agents.ts +2 -3
- package/examples/usage/03-pick-agent.ts +2 -3
- package/examples/usage/04-find-by-capability.ts +2 -3
- package/examples/usage/05-webhook-example.ts +2 -3
- package/examples/usage/06-simple-api-server.ts +2 -3
- package/examples/usage/07-event-listener.ts +2 -3
- package/examples/webhook-integration.ts +1 -1
- package/examples/x-influencer-battle-server.ts +2 -2
- package/package.json +4 -1
- package/src/core/websocket-client.test.ts +8 -3
- package/src/core/websocket-client.ts +36 -6
- package/src/formatters/response-formatter.test.ts +2 -0
- package/src/formatters/response-formatter.ts +3 -3
- package/src/handlers/message-handlers/agent-details-response-handler.ts +42 -0
- package/src/handlers/message-handlers/agent-room-operation-response-handler.ts +2 -8
- package/src/handlers/message-handlers/agent-status-update-handler.ts +3 -9
- package/src/handlers/message-handlers/all-agents-response-handler.ts +39 -0
- package/src/handlers/message-handlers/auth-message-handler.ts +5 -0
- package/src/handlers/message-handlers/auth-success-handler.ts +6 -1
- package/src/handlers/message-handlers/base-handler.ts +20 -7
- package/src/handlers/message-handlers/index.ts +34 -0
- package/src/handlers/message-handlers/list-room-agents-handler.ts +2 -5
- package/src/handlers/message-handlers/list-rooms-response-handler.ts +4 -2
- package/src/handlers/message-handlers/rate-limit-notification-handler.ts +45 -0
- package/src/handlers/message-handlers/regular-message-handler.ts +3 -2
- package/src/handlers/message-handlers/room-operation-response-handler.ts +3 -6
- package/src/handlers/message-handlers/subscribe-response-handler.ts +12 -2
- package/src/handlers/message-handlers/task-quote-handler.ts +31 -0
- package/src/handlers/message-handlers/types.ts +37 -9
- package/src/handlers/message-handlers/unsubscribe-response-handler.ts +12 -2
- package/src/handlers/message-handlers/user-authenticated-handler.ts +31 -0
- package/src/handlers/message-handlers/user-count-handler.ts +34 -0
- package/src/handlers/webhook-handler.test.ts +3 -2
- package/src/handlers/webhook-handler.ts +13 -7
- package/src/index.ts +21 -0
- package/src/managers/admin-manager.ts +249 -0
- package/src/managers/agent-registry.test.ts +2 -1
- package/src/managers/agent-registry.ts +170 -2
- package/src/managers/agent-room-manager.ts +98 -42
- package/src/managers/index.ts +13 -1
- package/src/managers/message-router.ts +215 -17
- package/src/managers/room-management-manager.ts +4 -7
- package/src/managers/room-manager.ts +11 -15
- package/src/payments/index.ts +22 -0
- package/src/payments/payment-client.ts +240 -0
- package/src/teneo-sdk.ts +302 -27
- package/src/types/categories.ts +45 -0
- package/src/types/config.ts +70 -2
- package/src/types/error-codes.ts +10 -0
- package/src/types/events.test.ts +1 -0
- package/src/types/events.ts +43 -0
- package/src/types/index.ts +56 -0
- package/src/types/messages.test.ts +2 -1
- package/src/types/messages.ts +307 -5
- package/src/utils/bounded-queue.test.ts +1 -1
- package/src/utils/bounded-queue.ts +2 -1
- package/src/utils/circuit-breaker.test.ts +1 -1
- package/src/utils/deduplication-cache.test.ts +1 -1
- package/src/utils/event-waiter.test.ts +1 -1
- package/src/utils/event-waiter.ts +3 -3
- package/src/utils/index.ts +7 -0
- package/src/utils/logger.ts +8 -8
- package/src/utils/pricing-resolver.ts +128 -0
- package/src/utils/rate-limiter.test.ts +1 -1
- package/src/utils/rate-limiter.ts +1 -0
- package/src/utils/signature-verifier.test.ts +2 -2
- package/src/utils/signature-verifier.ts +3 -2
- package/tests/.env.example +7 -0
- package/tests/direct-agent-test.ts +151 -0
- package/tests/integration/real-server.test.ts +2 -0
- package/tests/integration/room-management.test.ts +10 -8
- package/tests/integration/websocket.test.ts +4 -1
- package/tests/payment-flow-test.ts +147 -0
- package/tests/unit/handlers/agent-room-operation-response-handler.test.ts +17 -29
- package/tests/unit/handlers/agent-status-update-handler.test.ts +2 -6
- package/tests/unit/handlers/auth-success-handler-rooms.test.ts +1 -3
- package/tests/unit/handlers/list-available-agents-handler.test.ts +4 -12
- package/tests/unit/handlers/list-room-agents-handler.test.ts +2 -6
- package/tests/unit/handlers/room-operation-response-handler.test.ts +9 -36
- package/tests/unit/managers/agent-room-manager.test.ts +9 -16
- package/tests/unit/managers/room-management-manager.test.ts +21 -39
- package/tsconfig.json +2 -2
- package/vitest.config.ts +1 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* PaymentClient - Handles x402 payment header generation for quote-approve flow
|
|
4
|
+
*
|
|
5
|
+
* Creates x402 V2 payment headers for USDC payments on PEAQ network.
|
|
6
|
+
* Implements ERC-3009 TransferWithAuthorization signing using viem's EIP-712.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PaymentClient = exports.PEAQ_CHAIN_ID = exports.USDC_CONTRACT = exports.DEFAULT_RPC_URL = exports.DEFAULT_PAY_TO_ADDRESS = exports.DEFAULT_PAYMENT_TIMEOUT_SECONDS = exports.X402_VERSION = exports.USDC_DECIMALS = void 0;
|
|
10
|
+
exports.buildX402ResourceUrl = buildX402ResourceUrl;
|
|
11
|
+
exports.usdcToUnits = usdcToUnits;
|
|
12
|
+
exports.unitsToUsdc = unitsToUsdc;
|
|
13
|
+
const viem_1 = require("viem");
|
|
14
|
+
const accounts_1 = require("viem/accounts");
|
|
15
|
+
// PEAQ chain definition
|
|
16
|
+
const peaq = (0, viem_1.defineChain)({
|
|
17
|
+
id: 3338,
|
|
18
|
+
name: "peaq",
|
|
19
|
+
network: "peaq",
|
|
20
|
+
nativeCurrency: {
|
|
21
|
+
decimals: 18,
|
|
22
|
+
name: "PEAQ",
|
|
23
|
+
symbol: "PEAQ"
|
|
24
|
+
},
|
|
25
|
+
rpcUrls: {
|
|
26
|
+
default: {
|
|
27
|
+
http: ["https://peaq.api.onfinality.io/public"]
|
|
28
|
+
},
|
|
29
|
+
public: {
|
|
30
|
+
http: ["https://peaq.api.onfinality.io/public"]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
// USDC contract on PEAQ
|
|
35
|
+
const USDC_CONTRACT = "0xbbA60da06c2c5424f03f7434542280FCAd453d10";
|
|
36
|
+
exports.USDC_CONTRACT = USDC_CONTRACT;
|
|
37
|
+
const PEAQ_NETWORK_CAIP2 = "eip155:3338";
|
|
38
|
+
exports.PEAQ_CHAIN_ID = PEAQ_NETWORK_CAIP2;
|
|
39
|
+
// ERC-3009 TransferWithAuthorization EIP-712 types
|
|
40
|
+
const ERC3009_TYPES = {
|
|
41
|
+
TransferWithAuthorization: [
|
|
42
|
+
{ name: "from", type: "address" },
|
|
43
|
+
{ name: "to", type: "address" },
|
|
44
|
+
{ name: "value", type: "uint256" },
|
|
45
|
+
{ name: "validAfter", type: "uint256" },
|
|
46
|
+
{ name: "validBefore", type: "uint256" },
|
|
47
|
+
{ name: "nonce", type: "bytes32" }
|
|
48
|
+
]
|
|
49
|
+
};
|
|
50
|
+
// x402 constants
|
|
51
|
+
exports.USDC_DECIMALS = 6;
|
|
52
|
+
exports.X402_VERSION = 2;
|
|
53
|
+
exports.DEFAULT_PAYMENT_TIMEOUT_SECONDS = 60;
|
|
54
|
+
exports.DEFAULT_PAY_TO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
55
|
+
exports.DEFAULT_RPC_URL = "https://peaq.api.onfinality.io/public";
|
|
56
|
+
/**
|
|
57
|
+
* Converts a WebSocket URL to an HTTP(S) URL for x402 resource specification.
|
|
58
|
+
* The x402 protocol requires HTTP URLs, not WebSocket URLs.
|
|
59
|
+
*
|
|
60
|
+
* @param wsUrl - WebSocket URL (wss:// or ws://)
|
|
61
|
+
* @returns HTTP URL (https:// or http://)
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* buildX402ResourceUrl("wss://api.teneo.com/ws") // "https://api.teneo.com/x402"
|
|
65
|
+
*/
|
|
66
|
+
function buildX402ResourceUrl(wsUrl) {
|
|
67
|
+
const httpUrl = wsUrl.replace(/^wss:\/\//, "https://").replace(/^ws:\/\//, "http://");
|
|
68
|
+
// Replace /ws endpoint with /x402, or append /x402 if URL doesn't end with /ws
|
|
69
|
+
return /\/ws\/?$/.test(httpUrl)
|
|
70
|
+
? httpUrl.replace(/\/ws\/?$/, "/x402")
|
|
71
|
+
: httpUrl.replace(/\/?$/, "/x402");
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Converts USDC human-readable amount to micro-units (6 decimals).
|
|
75
|
+
* @param usdc - Amount in USDC (e.g., 1.5)
|
|
76
|
+
* @returns Amount in micro-units (e.g., 1500000)
|
|
77
|
+
*/
|
|
78
|
+
function usdcToUnits(usdc) {
|
|
79
|
+
return Math.round(usdc * 10 ** exports.USDC_DECIMALS);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Converts micro-units to USDC human-readable amount.
|
|
83
|
+
* @param units - Amount in micro-units (e.g., 1500000)
|
|
84
|
+
* @returns Amount in USDC (e.g., 1.5)
|
|
85
|
+
*/
|
|
86
|
+
function unitsToUsdc(units) {
|
|
87
|
+
return units / 10 ** exports.USDC_DECIMALS;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Generate a random 32-byte nonce as hex string
|
|
91
|
+
*/
|
|
92
|
+
function generateNonce() {
|
|
93
|
+
const randomBytes = new Uint8Array(32);
|
|
94
|
+
crypto.getRandomValues(randomBytes);
|
|
95
|
+
return (0, viem_1.toHex)(randomBytes);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* PaymentClient handles creation of x402 V2 payment headers
|
|
99
|
+
* for the quote-approve payment flow.
|
|
100
|
+
*/
|
|
101
|
+
class PaymentClient {
|
|
102
|
+
secureKey;
|
|
103
|
+
walletAddress;
|
|
104
|
+
network;
|
|
105
|
+
asset;
|
|
106
|
+
resourceUrl;
|
|
107
|
+
constructor(secureKey, walletAddress, config = {}) {
|
|
108
|
+
this.secureKey = secureKey;
|
|
109
|
+
this.walletAddress = walletAddress;
|
|
110
|
+
this.network = config.network ?? PEAQ_NETWORK_CAIP2;
|
|
111
|
+
this.asset = config.asset ?? USDC_CONTRACT;
|
|
112
|
+
this.resourceUrl = config.resourceUrl ?? "";
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Creates an x402 V2 payment header for a specific amount and recipient.
|
|
116
|
+
*
|
|
117
|
+
* @param amountMicroUnits - Amount in micro-units (e.g., 1000 = 0.001 USDC)
|
|
118
|
+
* @param recipientAddress - Wallet address of the payment recipient (agent)
|
|
119
|
+
* @param resourceUrl - Optional override for x402 resource URL
|
|
120
|
+
* @returns Base64 encoded x402 V2 payment header
|
|
121
|
+
*/
|
|
122
|
+
async createPaymentHeader(amountMicroUnits, recipientAddress, resourceUrl) {
|
|
123
|
+
const resource = resourceUrl || this.resourceUrl || this.getDefaultResourceUrl();
|
|
124
|
+
const amountStr = Math.round(amountMicroUnits).toString();
|
|
125
|
+
// Create payment header using the secure key
|
|
126
|
+
const header = await this.secureKey.use(async (privateKey) => {
|
|
127
|
+
const account = (0, accounts_1.privateKeyToAccount)(privateKey);
|
|
128
|
+
// Time bounds for the authorization (valid for 60 seconds)
|
|
129
|
+
const now = Math.floor(Date.now() / 1000);
|
|
130
|
+
const validAfter = now - 60; // Valid from 60 seconds ago
|
|
131
|
+
const validBefore = now + 60; // Valid until 60 seconds from now
|
|
132
|
+
const nonce = generateNonce();
|
|
133
|
+
// EIP-712 domain for USDC on PEAQ
|
|
134
|
+
const domain = {
|
|
135
|
+
name: "USDC",
|
|
136
|
+
version: "2",
|
|
137
|
+
chainId: BigInt(peaq.id),
|
|
138
|
+
verifyingContract: this.asset
|
|
139
|
+
};
|
|
140
|
+
// ERC-3009 TransferWithAuthorization message
|
|
141
|
+
const message = {
|
|
142
|
+
from: account.address,
|
|
143
|
+
to: recipientAddress,
|
|
144
|
+
value: BigInt(amountStr),
|
|
145
|
+
validAfter: BigInt(validAfter),
|
|
146
|
+
validBefore: BigInt(validBefore),
|
|
147
|
+
nonce: nonce
|
|
148
|
+
};
|
|
149
|
+
// Sign the EIP-712 typed data
|
|
150
|
+
const signature = await (0, accounts_1.signTypedData)({
|
|
151
|
+
privateKey: privateKey,
|
|
152
|
+
domain,
|
|
153
|
+
types: ERC3009_TYPES,
|
|
154
|
+
primaryType: "TransferWithAuthorization",
|
|
155
|
+
message
|
|
156
|
+
});
|
|
157
|
+
// Build V1 payload (authorization data)
|
|
158
|
+
const v1Payload = {
|
|
159
|
+
authorization: {
|
|
160
|
+
from: account.address,
|
|
161
|
+
to: recipientAddress,
|
|
162
|
+
value: amountStr,
|
|
163
|
+
validAfter: validAfter.toString(),
|
|
164
|
+
validBefore: validBefore.toString(),
|
|
165
|
+
nonce: nonce
|
|
166
|
+
},
|
|
167
|
+
signature: signature
|
|
168
|
+
};
|
|
169
|
+
// Build V2 payload (what the backend expects)
|
|
170
|
+
const v2Payload = {
|
|
171
|
+
x402Version: 2,
|
|
172
|
+
resource: {
|
|
173
|
+
url: resource,
|
|
174
|
+
description: "Teneo SDK payment",
|
|
175
|
+
mimeType: "application/json"
|
|
176
|
+
},
|
|
177
|
+
accepted: {
|
|
178
|
+
scheme: "exact",
|
|
179
|
+
network: this.network,
|
|
180
|
+
amount: amountStr,
|
|
181
|
+
asset: this.asset,
|
|
182
|
+
payTo: recipientAddress,
|
|
183
|
+
maxTimeoutSeconds: 60,
|
|
184
|
+
extra: { name: "USDC", version: "2" }
|
|
185
|
+
},
|
|
186
|
+
payload: v1Payload
|
|
187
|
+
};
|
|
188
|
+
return Buffer.from(JSON.stringify(v2Payload)).toString("base64");
|
|
189
|
+
});
|
|
190
|
+
return header;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get default x402 resource URL from WebSocket URL
|
|
194
|
+
*/
|
|
195
|
+
getDefaultResourceUrl() {
|
|
196
|
+
// Default fallback
|
|
197
|
+
return "https://dev-rooms-websocket-ai-core-o9fmb.ondigitalocean.app/x402";
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Gets the wallet address associated with this payment client.
|
|
201
|
+
*/
|
|
202
|
+
get address() {
|
|
203
|
+
return this.walletAddress;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
exports.PaymentClient = PaymentClient;
|
|
207
|
+
//# sourceMappingURL=payment-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-client.js","sourceRoot":"","sources":["../../src/payments/payment-client.ts"],"names":[],"mappings":"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"}
|
package/dist/teneo-sdk.d.ts
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { EventEmitter } from "eventemitter3";
|
|
7
7
|
import { z } from "zod";
|
|
8
|
-
import { PartialSDKConfig, SDKConfigBuilder, Agent, RoomInfo, type HealthStatus } from "./types";
|
|
8
|
+
import { PartialSDKConfig, SDKConfigBuilder, Agent, RoomInfo, AgentRoomInfo, type HealthStatus } from "./types";
|
|
9
9
|
import { SDKEvents } from "./types/events";
|
|
10
10
|
import { FormattedResponse, ResponseFormatOptions } from "./formatters/response-formatter";
|
|
11
|
-
import { SendMessageOptions, AgentCommand } from "./managers";
|
|
12
|
-
export type { SendMessageOptions, AgentCommand };
|
|
11
|
+
import { SendMessageOptions, AgentCommand, QuoteResult, AdminManager, ListAllAgentsOptions, AllAgentsResult } from "./managers";
|
|
12
|
+
export type { SendMessageOptions, AgentCommand, QuoteResult, ListAllAgentsOptions, AllAgentsResult };
|
|
13
13
|
export declare const SendMessageOptionsSchema: z.ZodObject<{
|
|
14
14
|
room: z.ZodOptional<z.ZodString>;
|
|
15
15
|
from: z.ZodOptional<z.ZodString>;
|
|
@@ -46,6 +46,7 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
46
46
|
private config;
|
|
47
47
|
private readonly logger;
|
|
48
48
|
private isDestroyed;
|
|
49
|
+
private secureKey?;
|
|
49
50
|
private readonly wsClient;
|
|
50
51
|
private readonly webhookHandler;
|
|
51
52
|
private readonly responseFormatter;
|
|
@@ -55,6 +56,7 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
55
56
|
private readonly agentRoom;
|
|
56
57
|
private readonly agents;
|
|
57
58
|
private readonly messages;
|
|
59
|
+
private readonly _admin;
|
|
58
60
|
/**
|
|
59
61
|
* Creates a new instance of the Teneo Protocol SDK.
|
|
60
62
|
* Initializes all core components, managers, and validates the provided configuration.
|
|
@@ -105,7 +107,7 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
105
107
|
*/
|
|
106
108
|
constructor(config: PartialSDKConfig);
|
|
107
109
|
/**
|
|
108
|
-
* Establishes a connection to the Teneo
|
|
110
|
+
* Establishes a connection to the Teneo Protocol via WebSocket.
|
|
109
111
|
* Handles authentication automatically and joins any configured auto-join rooms.
|
|
110
112
|
* Emits 'connection:open', 'auth:success', and 'ready' events on successful connection.
|
|
111
113
|
*
|
|
@@ -118,19 +120,19 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
118
120
|
* ```typescript
|
|
119
121
|
* const sdk = new TeneoSDK({ wsUrl: 'wss://example.com', privateKey: '0x...' });
|
|
120
122
|
* await sdk.connect();
|
|
121
|
-
* console.log('Connected to Teneo
|
|
123
|
+
* console.log('Connected to Teneo Protocol');
|
|
122
124
|
* ```
|
|
123
125
|
*/
|
|
124
126
|
connect(): Promise<void>;
|
|
125
127
|
/**
|
|
126
|
-
* Disconnects from the Teneo
|
|
128
|
+
* Disconnects from the Teneo Protocol and cleans up all active connections.
|
|
127
129
|
* Clears all timers, pending messages, and stops automatic reconnection attempts.
|
|
128
130
|
* Emits 'disconnect' event after disconnection is complete.
|
|
129
131
|
*
|
|
130
132
|
* @example
|
|
131
133
|
* ```typescript
|
|
132
134
|
* sdk.disconnect();
|
|
133
|
-
* console.log('Disconnected from Teneo
|
|
135
|
+
* console.log('Disconnected from Teneo Protocol');
|
|
134
136
|
* ```
|
|
135
137
|
*/
|
|
136
138
|
disconnect(): void;
|
|
@@ -190,36 +192,59 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
190
192
|
*/
|
|
191
193
|
sendDirectCommand(command: AgentCommand, waitForResponse?: boolean): Promise<FormattedResponse | void>;
|
|
192
194
|
/**
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
+
* Requests a quote for a task from the coordinator.
|
|
196
|
+
* The quote includes agent selection, pricing, and expiration.
|
|
197
|
+
* Does NOT auto-approve - use confirmQuote() to execute.
|
|
198
|
+
*/
|
|
199
|
+
requestQuote(content: string, room: string): Promise<QuoteResult>;
|
|
200
|
+
/**
|
|
201
|
+
* Confirms a pending quote and executes the task with payment.
|
|
202
|
+
* Attaches x402 payment header if payment client is configured.
|
|
203
|
+
*/
|
|
204
|
+
confirmQuote(taskId: string, options?: {
|
|
205
|
+
waitForResponse?: boolean;
|
|
206
|
+
timeout?: number;
|
|
207
|
+
}): Promise<FormattedResponse | void>;
|
|
208
|
+
/**
|
|
209
|
+
* Gets a pending quote by task ID.
|
|
210
|
+
*/
|
|
211
|
+
getPendingQuote(taskId: string): QuoteResult | undefined;
|
|
212
|
+
/**
|
|
213
|
+
* Subscribes to a public room in the Teneo Protocol.
|
|
214
|
+
* This is only needed for public rooms - private rooms are automatically subscribed.
|
|
195
215
|
* Emits 'room:subscribed' event when successfully subscribed.
|
|
196
216
|
*
|
|
197
|
-
* @param roomId - The ID of the room to subscribe to
|
|
217
|
+
* @param roomId - The ID of the public room to subscribe to
|
|
198
218
|
* @returns Promise that resolves when the room has been subscribed
|
|
199
219
|
* @throws {SDKError} If not connected to the network (ErrorCode.NOT_CONNECTED)
|
|
200
220
|
* @throws {ValidationError} If roomId is empty or invalid
|
|
201
221
|
*
|
|
202
222
|
* @example
|
|
203
223
|
* ```typescript
|
|
204
|
-
*
|
|
205
|
-
*
|
|
224
|
+
* // Subscribe to a public room
|
|
225
|
+
* await sdk.subscribeToRoom('public-announcements');
|
|
226
|
+
* console.log('Subscribed to public room');
|
|
227
|
+
*
|
|
228
|
+
* // Note: Private rooms don't need subscription - you're always subscribed
|
|
206
229
|
* ```
|
|
207
230
|
*/
|
|
208
231
|
subscribeToRoom(roomId: string): Promise<void>;
|
|
209
232
|
/**
|
|
210
|
-
* Unsubscribes from a
|
|
211
|
-
* You will no longer receive messages from
|
|
233
|
+
* Unsubscribes from a public room in the Teneo Protocol.
|
|
234
|
+
* You will no longer receive messages from this public room.
|
|
212
235
|
* Emits 'room:unsubscribed' event when successfully unsubscribed.
|
|
213
236
|
*
|
|
214
|
-
*
|
|
237
|
+
* Note: This only applies to public rooms. Private rooms cannot be unsubscribed from.
|
|
238
|
+
*
|
|
239
|
+
* @param roomId - The ID of the public room to unsubscribe from
|
|
215
240
|
* @returns Promise that resolves when the room has been unsubscribed
|
|
216
241
|
* @throws {SDKError} If not connected to the network (ErrorCode.NOT_CONNECTED)
|
|
217
242
|
* @throws {ValidationError} If roomId is empty or invalid
|
|
218
243
|
*
|
|
219
244
|
* @example
|
|
220
245
|
* ```typescript
|
|
221
|
-
* await sdk.unsubscribeFromRoom('
|
|
222
|
-
* console.log('Unsubscribed from
|
|
246
|
+
* await sdk.unsubscribeFromRoom('public-announcements');
|
|
247
|
+
* console.log('Unsubscribed from public room');
|
|
223
248
|
* ```
|
|
224
249
|
*/
|
|
225
250
|
unsubscribeFromRoom(roomId: string): Promise<void>;
|
|
@@ -256,7 +281,7 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
256
281
|
*/
|
|
257
282
|
getSubscribedRooms(): string[];
|
|
258
283
|
/**
|
|
259
|
-
* Gets a list of all available agents in the Teneo
|
|
284
|
+
* Gets a list of all available agents in the Teneo Protocol.
|
|
260
285
|
* The list is automatically updated when new agents join or leave.
|
|
261
286
|
* Returns a read-only array to prevent external modification.
|
|
262
287
|
*
|
|
@@ -351,7 +376,71 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
351
376
|
*/
|
|
352
377
|
findAgentsByStatus(status: string): ReadonlyArray<Agent>;
|
|
353
378
|
/**
|
|
354
|
-
*
|
|
379
|
+
* Fetches detailed information about a specific agent from the server.
|
|
380
|
+
* Makes a request to the server for full agent details including capabilities,
|
|
381
|
+
* commands, pricing, and more.
|
|
382
|
+
*
|
|
383
|
+
* @param agentId - The unique identifier of the agent
|
|
384
|
+
* @returns Promise that resolves with full agent details
|
|
385
|
+
* @throws {SDKError} If not connected or request times out
|
|
386
|
+
* @throws {ValidationError} If agentId is invalid
|
|
387
|
+
*
|
|
388
|
+
* @example
|
|
389
|
+
* ```typescript
|
|
390
|
+
* const details = await sdk.getAgentDetails('weather-agent-001');
|
|
391
|
+
* console.log(`Agent: ${details.agent_name}`);
|
|
392
|
+
* console.log(`Capabilities: ${details.capabilities?.length}`);
|
|
393
|
+
* console.log(`Status: ${details.status}`);
|
|
394
|
+
* ```
|
|
395
|
+
*/
|
|
396
|
+
getAgentDetails(agentId: string): Promise<AgentRoomInfo>;
|
|
397
|
+
/**
|
|
398
|
+
* Gets the admin manager for admin-only features.
|
|
399
|
+
* Returns undefined if the current user is not an admin.
|
|
400
|
+
* Use this to access admin APIs like listing all agents, user counts, etc.
|
|
401
|
+
*
|
|
402
|
+
* @returns The AdminManager instance if user is admin, undefined otherwise
|
|
403
|
+
*
|
|
404
|
+
* @example
|
|
405
|
+
* ```typescript
|
|
406
|
+
* if (sdk.admin?.isAdmin) {
|
|
407
|
+
* // List all agents in the network
|
|
408
|
+
* const result = await sdk.admin.listAllAgents({ limit: 20 });
|
|
409
|
+
* console.log(`Found ${result.total} agents`);
|
|
410
|
+
*
|
|
411
|
+
* result.agents.forEach(agent => {
|
|
412
|
+
* console.log(`${agent.agent_name}: verified=${agent.is_verified}, banned=${agent.is_banned}`);
|
|
413
|
+
* });
|
|
414
|
+
*
|
|
415
|
+
* // Get user count
|
|
416
|
+
* const userCount = sdk.admin.getLastUserCount();
|
|
417
|
+
* console.log(`Online users: ${userCount?.count}`);
|
|
418
|
+
*
|
|
419
|
+
* // Listen for user count updates
|
|
420
|
+
* sdk.admin.on('user_count', (data) => {
|
|
421
|
+
* console.log(`User count updated: ${data.count}`);
|
|
422
|
+
* });
|
|
423
|
+
* }
|
|
424
|
+
* ```
|
|
425
|
+
*/
|
|
426
|
+
get admin(): AdminManager | undefined;
|
|
427
|
+
/**
|
|
428
|
+
* Lists all agents in the network (admin only, convenience method).
|
|
429
|
+
* Returns paginated list of agents with full admin information.
|
|
430
|
+
*
|
|
431
|
+
* @param options - Pagination and filter options
|
|
432
|
+
* @returns Promise that resolves with agents list
|
|
433
|
+
* @throws {SDKError} If not connected or not an admin
|
|
434
|
+
*
|
|
435
|
+
* @example
|
|
436
|
+
* ```typescript
|
|
437
|
+
* const result = await sdk.listAllAgents({ limit: 50, filter: 'weather' });
|
|
438
|
+
* console.log(`Found ${result.total} agents matching 'weather'`);
|
|
439
|
+
* ```
|
|
440
|
+
*/
|
|
441
|
+
listAllAgents(options?: ListAllAgentsOptions): Promise<AllAgentsResult>;
|
|
442
|
+
/**
|
|
443
|
+
* Gets a list of all available rooms in the Teneo Protocol.
|
|
355
444
|
* Includes rooms you have access to based on your authentication.
|
|
356
445
|
* Returns a read-only array to prevent external modification.
|
|
357
446
|
*
|
|
@@ -701,6 +790,27 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
701
790
|
* ```
|
|
702
791
|
*/
|
|
703
792
|
invalidateAgentRoomCache(roomId: string): void;
|
|
793
|
+
/**
|
|
794
|
+
* Updates user preferences on the server.
|
|
795
|
+
* Server-side enforcement of max price per request - prevents quotes/payments exceeding the limit.
|
|
796
|
+
*
|
|
797
|
+
* @param preferences - User preferences to update
|
|
798
|
+
* @param preferences.maxPricePerRequest - Max price per request in USDC (e.g., 0.01 = $0.01), or null to remove limit
|
|
799
|
+
* @returns Promise that resolves when preferences are updated
|
|
800
|
+
* @throws {SDKError} If update fails or times out
|
|
801
|
+
*
|
|
802
|
+
* @example
|
|
803
|
+
* ```typescript
|
|
804
|
+
* // Set a spending limit of $0.05 per request
|
|
805
|
+
* await sdk.setUserPreferences({ maxPricePerRequest: 0.05 });
|
|
806
|
+
*
|
|
807
|
+
* // Remove the spending limit
|
|
808
|
+
* await sdk.setUserPreferences({ maxPricePerRequest: null });
|
|
809
|
+
* ```
|
|
810
|
+
*/
|
|
811
|
+
setUserPreferences(preferences: {
|
|
812
|
+
maxPricePerRequest?: number | null;
|
|
813
|
+
}): Promise<void>;
|
|
704
814
|
/**
|
|
705
815
|
* Configures webhook URL and headers for receiving real-time event notifications.
|
|
706
816
|
* Webhooks allow you to receive events at your server endpoint via HTTP POST requests.
|
|
@@ -808,7 +918,7 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
808
918
|
* This is a convenience getter that returns only the connection status.
|
|
809
919
|
* For detailed state information, use getConnectionState().
|
|
810
920
|
*
|
|
811
|
-
* @returns True if connected to the Teneo
|
|
921
|
+
* @returns True if connected to the Teneo Protocol, false otherwise
|
|
812
922
|
*
|
|
813
923
|
* @example
|
|
814
924
|
* ```typescript
|
|
@@ -826,7 +936,7 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
826
936
|
* This is a convenience getter that returns only the authentication status.
|
|
827
937
|
* For detailed auth information, use getAuthState().
|
|
828
938
|
*
|
|
829
|
-
* @returns True if authenticated with the Teneo
|
|
939
|
+
* @returns True if authenticated with the Teneo Protocol, false otherwise
|
|
830
940
|
*
|
|
831
941
|
* @example
|
|
832
942
|
* ```typescript
|
|
@@ -1026,6 +1136,10 @@ export declare class TeneoSDK extends EventEmitter<SDKEvents> {
|
|
|
1026
1136
|
* Create default logger using pino
|
|
1027
1137
|
*/
|
|
1028
1138
|
private createDefaultLogger;
|
|
1139
|
+
/**
|
|
1140
|
+
* Derive wallet address from private key
|
|
1141
|
+
*/
|
|
1142
|
+
private deriveWalletAddress;
|
|
1029
1143
|
/**
|
|
1030
1144
|
* Creates a new SDK configuration builder for fluent configuration.
|
|
1031
1145
|
* The builder pattern provides a more intuitive way to configure the SDK
|
package/dist/teneo-sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teneo-sdk.d.ts","sourceRoot":"","sources":["../src/teneo-sdk.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"teneo-sdk.d.ts","sourceRoot":"","sources":["../src/teneo-sdk.ts"],"names":[],"mappings":"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"}
|