@oobe-protocol-labs/synapse-sap-sdk 0.1.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/LICENSE +21 -0
- package/README.md +882 -0
- package/dist/cjs/constants/index.js +43 -0
- package/dist/cjs/constants/index.js.map +1 -0
- package/dist/cjs/constants/limits.js +161 -0
- package/dist/cjs/constants/limits.js.map +1 -0
- package/dist/cjs/constants/programs.js +78 -0
- package/dist/cjs/constants/programs.js.map +1 -0
- package/dist/cjs/constants/seeds.js +57 -0
- package/dist/cjs/constants/seeds.js.map +1 -0
- package/dist/cjs/core/client.js +391 -0
- package/dist/cjs/core/client.js.map +1 -0
- package/dist/cjs/core/connection.js +319 -0
- package/dist/cjs/core/connection.js.map +1 -0
- package/dist/cjs/core/index.js +24 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/errors/index.js +334 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/events/index.js +136 -0
- package/dist/cjs/events/index.js.map +1 -0
- package/dist/cjs/idl/index.js +63 -0
- package/dist/cjs/idl/index.js.map +1 -0
- package/dist/cjs/idl/synapse_agent_sap.json +9710 -0
- package/dist/cjs/index.js +147 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/modules/agent.js +272 -0
- package/dist/cjs/modules/agent.js.map +1 -0
- package/dist/cjs/modules/attestation.js +147 -0
- package/dist/cjs/modules/attestation.js.map +1 -0
- package/dist/cjs/modules/base.js +128 -0
- package/dist/cjs/modules/base.js.map +1 -0
- package/dist/cjs/modules/escrow.js +246 -0
- package/dist/cjs/modules/escrow.js.map +1 -0
- package/dist/cjs/modules/feedback.js +166 -0
- package/dist/cjs/modules/feedback.js.map +1 -0
- package/dist/cjs/modules/index.js +35 -0
- package/dist/cjs/modules/index.js.map +1 -0
- package/dist/cjs/modules/indexing.js +375 -0
- package/dist/cjs/modules/indexing.js.map +1 -0
- package/dist/cjs/modules/ledger.js +234 -0
- package/dist/cjs/modules/ledger.js.map +1 -0
- package/dist/cjs/modules/tools.js +319 -0
- package/dist/cjs/modules/tools.js.map +1 -0
- package/dist/cjs/modules/vault.js +410 -0
- package/dist/cjs/modules/vault.js.map +1 -0
- package/dist/cjs/pda/index.js +377 -0
- package/dist/cjs/pda/index.js.map +1 -0
- package/dist/cjs/plugin/index.js +934 -0
- package/dist/cjs/plugin/index.js.map +1 -0
- package/dist/cjs/plugin/protocols.js +282 -0
- package/dist/cjs/plugin/protocols.js.map +1 -0
- package/dist/cjs/plugin/schemas.js +831 -0
- package/dist/cjs/plugin/schemas.js.map +1 -0
- package/dist/cjs/postgres/adapter.js +715 -0
- package/dist/cjs/postgres/adapter.js.map +1 -0
- package/dist/cjs/postgres/index.js +50 -0
- package/dist/cjs/postgres/index.js.map +1 -0
- package/dist/cjs/postgres/serializers.js +381 -0
- package/dist/cjs/postgres/serializers.js.map +1 -0
- package/dist/cjs/postgres/sync.js +221 -0
- package/dist/cjs/postgres/sync.js.map +1 -0
- package/dist/cjs/postgres/types.js +44 -0
- package/dist/cjs/postgres/types.js.map +1 -0
- package/dist/cjs/registries/builder.js +414 -0
- package/dist/cjs/registries/builder.js.map +1 -0
- package/dist/cjs/registries/discovery.js +362 -0
- package/dist/cjs/registries/discovery.js.map +1 -0
- package/dist/cjs/registries/index.js +51 -0
- package/dist/cjs/registries/index.js.map +1 -0
- package/dist/cjs/registries/session.js +433 -0
- package/dist/cjs/registries/session.js.map +1 -0
- package/dist/cjs/registries/x402.js +577 -0
- package/dist/cjs/registries/x402.js.map +1 -0
- package/dist/cjs/types/accounts.js +13 -0
- package/dist/cjs/types/accounts.js.map +1 -0
- package/dist/cjs/types/common.js +13 -0
- package/dist/cjs/types/common.js.map +1 -0
- package/dist/cjs/types/enums.js +174 -0
- package/dist/cjs/types/enums.js.map +1 -0
- package/dist/cjs/types/index.js +36 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/instructions.js +92 -0
- package/dist/cjs/types/instructions.js.map +1 -0
- package/dist/cjs/utils/hash.js +58 -0
- package/dist/cjs/utils/hash.js.map +1 -0
- package/dist/cjs/utils/index.js +27 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/serialization.js +105 -0
- package/dist/cjs/utils/serialization.js.map +1 -0
- package/dist/cjs/utils/validation.js +36 -0
- package/dist/cjs/utils/validation.js.map +1 -0
- package/dist/esm/constants/index.js +29 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/constants/limits.js +158 -0
- package/dist/esm/constants/limits.js.map +1 -0
- package/dist/esm/constants/programs.js +75 -0
- package/dist/esm/constants/programs.js.map +1 -0
- package/dist/esm/constants/seeds.js +54 -0
- package/dist/esm/constants/seeds.js.map +1 -0
- package/dist/esm/core/client.js +384 -0
- package/dist/esm/core/client.js.map +1 -0
- package/dist/esm/core/connection.js +315 -0
- package/dist/esm/core/connection.js.map +1 -0
- package/dist/esm/core/index.js +19 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/errors/index.js +325 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/events/index.js +132 -0
- package/dist/esm/events/index.js.map +1 -0
- package/dist/esm/idl/index.js +57 -0
- package/dist/esm/idl/index.js.map +1 -0
- package/dist/esm/idl/synapse_agent_sap.json +9710 -0
- package/dist/esm/index.js +70 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/modules/agent.js +268 -0
- package/dist/esm/modules/agent.js.map +1 -0
- package/dist/esm/modules/attestation.js +143 -0
- package/dist/esm/modules/attestation.js.map +1 -0
- package/dist/esm/modules/base.js +124 -0
- package/dist/esm/modules/base.js.map +1 -0
- package/dist/esm/modules/escrow.js +242 -0
- package/dist/esm/modules/escrow.js.map +1 -0
- package/dist/esm/modules/feedback.js +162 -0
- package/dist/esm/modules/feedback.js.map +1 -0
- package/dist/esm/modules/index.js +23 -0
- package/dist/esm/modules/index.js.map +1 -0
- package/dist/esm/modules/indexing.js +371 -0
- package/dist/esm/modules/indexing.js.map +1 -0
- package/dist/esm/modules/ledger.js +230 -0
- package/dist/esm/modules/ledger.js.map +1 -0
- package/dist/esm/modules/tools.js +315 -0
- package/dist/esm/modules/tools.js.map +1 -0
- package/dist/esm/modules/vault.js +406 -0
- package/dist/esm/modules/vault.js.map +1 -0
- package/dist/esm/pda/index.js +357 -0
- package/dist/esm/pda/index.js.map +1 -0
- package/dist/esm/plugin/index.js +927 -0
- package/dist/esm/plugin/index.js.map +1 -0
- package/dist/esm/plugin/protocols.js +279 -0
- package/dist/esm/plugin/protocols.js.map +1 -0
- package/dist/esm/plugin/schemas.js +828 -0
- package/dist/esm/plugin/schemas.js.map +1 -0
- package/dist/esm/postgres/adapter.js +678 -0
- package/dist/esm/postgres/adapter.js.map +1 -0
- package/dist/esm/postgres/index.js +27 -0
- package/dist/esm/postgres/index.js.map +1 -0
- package/dist/esm/postgres/serializers.js +362 -0
- package/dist/esm/postgres/serializers.js.map +1 -0
- package/dist/esm/postgres/sync.js +217 -0
- package/dist/esm/postgres/sync.js.map +1 -0
- package/dist/esm/postgres/types.js +41 -0
- package/dist/esm/postgres/types.js.map +1 -0
- package/dist/esm/registries/builder.js +410 -0
- package/dist/esm/registries/builder.js.map +1 -0
- package/dist/esm/registries/discovery.js +358 -0
- package/dist/esm/registries/discovery.js.map +1 -0
- package/dist/esm/registries/index.js +44 -0
- package/dist/esm/registries/index.js.map +1 -0
- package/dist/esm/registries/session.js +429 -0
- package/dist/esm/registries/session.js.map +1 -0
- package/dist/esm/registries/x402.js +573 -0
- package/dist/esm/registries/x402.js.map +1 -0
- package/dist/esm/types/accounts.js +12 -0
- package/dist/esm/types/accounts.js.map +1 -0
- package/dist/esm/types/common.js +12 -0
- package/dist/esm/types/common.js.map +1 -0
- package/dist/esm/types/enums.js +171 -0
- package/dist/esm/types/enums.js.map +1 -0
- package/dist/esm/types/index.js +25 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/instructions.js +89 -0
- package/dist/esm/types/instructions.js.map +1 -0
- package/dist/esm/utils/hash.js +53 -0
- package/dist/esm/utils/hash.js.map +1 -0
- package/dist/esm/utils/index.js +19 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/serialization.js +98 -0
- package/dist/esm/utils/serialization.js.map +1 -0
- package/dist/esm/utils/validation.js +33 -0
- package/dist/esm/utils/validation.js.map +1 -0
- package/dist/types/constants/index.d.ts +27 -0
- package/dist/types/constants/index.d.ts.map +1 -0
- package/dist/types/constants/limits.d.ts +149 -0
- package/dist/types/constants/limits.d.ts.map +1 -0
- package/dist/types/constants/programs.d.ts +69 -0
- package/dist/types/constants/programs.d.ts.map +1 -0
- package/dist/types/constants/seeds.d.ts +61 -0
- package/dist/types/constants/seeds.d.ts.map +1 -0
- package/dist/types/core/client.d.ts +323 -0
- package/dist/types/core/client.d.ts.map +1 -0
- package/dist/types/core/connection.d.ts +279 -0
- package/dist/types/core/connection.d.ts.map +1 -0
- package/dist/types/core/index.d.ts +20 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +276 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/events/index.d.ts +248 -0
- package/dist/types/events/index.d.ts.map +1 -0
- package/dist/types/idl/index.d.ts +70 -0
- package/dist/types/idl/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +68 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/modules/agent.d.ts +166 -0
- package/dist/types/modules/agent.d.ts.map +1 -0
- package/dist/types/modules/attestation.d.ts +96 -0
- package/dist/types/modules/attestation.d.ts.map +1 -0
- package/dist/types/modules/base.d.ts +126 -0
- package/dist/types/modules/base.d.ts.map +1 -0
- package/dist/types/modules/escrow.d.ts +151 -0
- package/dist/types/modules/escrow.d.ts.map +1 -0
- package/dist/types/modules/feedback.d.ts +105 -0
- package/dist/types/modules/feedback.d.ts.map +1 -0
- package/dist/types/modules/index.d.ts +24 -0
- package/dist/types/modules/index.d.ts.map +1 -0
- package/dist/types/modules/indexing.d.ts +200 -0
- package/dist/types/modules/indexing.d.ts.map +1 -0
- package/dist/types/modules/ledger.d.ts +150 -0
- package/dist/types/modules/ledger.d.ts.map +1 -0
- package/dist/types/modules/tools.d.ts +182 -0
- package/dist/types/modules/tools.d.ts.map +1 -0
- package/dist/types/modules/vault.d.ts +240 -0
- package/dist/types/modules/vault.d.ts.map +1 -0
- package/dist/types/pda/index.d.ts +296 -0
- package/dist/types/pda/index.d.ts.map +1 -0
- package/dist/types/plugin/index.d.ts +171 -0
- package/dist/types/plugin/index.d.ts.map +1 -0
- package/dist/types/plugin/protocols.d.ts +152 -0
- package/dist/types/plugin/protocols.d.ts.map +1 -0
- package/dist/types/plugin/schemas.d.ts +823 -0
- package/dist/types/plugin/schemas.d.ts.map +1 -0
- package/dist/types/postgres/adapter.d.ts +355 -0
- package/dist/types/postgres/adapter.d.ts.map +1 -0
- package/dist/types/postgres/index.d.ts +24 -0
- package/dist/types/postgres/index.d.ts.map +1 -0
- package/dist/types/postgres/serializers.d.ts +30 -0
- package/dist/types/postgres/serializers.d.ts.map +1 -0
- package/dist/types/postgres/sync.d.ts +132 -0
- package/dist/types/postgres/sync.d.ts.map +1 -0
- package/dist/types/postgres/types.d.ts +167 -0
- package/dist/types/postgres/types.d.ts.map +1 -0
- package/dist/types/registries/builder.d.ts +340 -0
- package/dist/types/registries/builder.d.ts.map +1 -0
- package/dist/types/registries/discovery.d.ts +333 -0
- package/dist/types/registries/discovery.d.ts.map +1 -0
- package/dist/types/registries/index.d.ts +48 -0
- package/dist/types/registries/index.d.ts.map +1 -0
- package/dist/types/registries/session.d.ts +323 -0
- package/dist/types/registries/session.d.ts.map +1 -0
- package/dist/types/registries/x402.d.ts +463 -0
- package/dist/types/registries/x402.d.ts.map +1 -0
- package/dist/types/types/accounts.d.ts +565 -0
- package/dist/types/types/accounts.d.ts.map +1 -0
- package/dist/types/types/common.d.ts +166 -0
- package/dist/types/types/common.d.ts.map +1 -0
- package/dist/types/types/enums.d.ts +238 -0
- package/dist/types/types/enums.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +28 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/instructions.d.ts +366 -0
- package/dist/types/types/instructions.d.ts.map +1 -0
- package/dist/types/utils/hash.d.ts +48 -0
- package/dist/types/utils/hash.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +19 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/serialization.d.ts +69 -0
- package/dist/types/utils/serialization.d.ts.map +1 -0
- package/dist/types/utils/validation.d.ts +29 -0
- package/dist/types/utils/validation.d.ts.map +1 -0
- package/package.json +178 -0
- package/src/constants/index.ts +44 -0
- package/src/constants/limits.ts +165 -0
- package/src/constants/programs.ts +83 -0
- package/src/constants/seeds.ts +66 -0
- package/src/core/client.ts +416 -0
- package/src/core/connection.ts +409 -0
- package/src/core/index.ts +20 -0
- package/src/errors/index.ts +346 -0
- package/src/events/index.ts +335 -0
- package/src/idl/index.ts +76 -0
- package/src/idl/synapse_agent_sap.json +9710 -0
- package/src/index.ts +253 -0
- package/src/modules/agent.ts +319 -0
- package/src/modules/attestation.ts +168 -0
- package/src/modules/base.ts +158 -0
- package/src/modules/escrow.ts +308 -0
- package/src/modules/feedback.ts +186 -0
- package/src/modules/index.ts +24 -0
- package/src/modules/indexing.ts +444 -0
- package/src/modules/ledger.ts +262 -0
- package/src/modules/tools.ts +411 -0
- package/src/modules/vault.ts +533 -0
- package/src/pda/index.ts +512 -0
- package/src/plugin/index.ts +1202 -0
- package/src/plugin/protocols.ts +404 -0
- package/src/plugin/schemas.ts +909 -0
- package/src/postgres/adapter.ts +904 -0
- package/src/postgres/index.ts +59 -0
- package/src/postgres/schema.sql +683 -0
- package/src/postgres/serializers.ts +485 -0
- package/src/postgres/sync.ts +254 -0
- package/src/postgres/types.ts +245 -0
- package/src/registries/builder.ts +607 -0
- package/src/registries/discovery.ts +572 -0
- package/src/registries/index.ts +77 -0
- package/src/registries/session.ts +613 -0
- package/src/registries/x402.ts +906 -0
- package/src/types/accounts.ts +618 -0
- package/src/types/common.ts +187 -0
- package/src/types/enums.ts +214 -0
- package/src/types/index.ts +92 -0
- package/src/types/instructions.ts +413 -0
- package/src/utils/hash.ts +57 -0
- package/src/utils/index.ts +19 -0
- package/src/utils/serialization.ts +98 -0
- package/src/utils/validation.ts +36 -0
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module types/instructions
|
|
3
|
+
* @description Instruction argument DTOs and helper enumerations.
|
|
4
|
+
*
|
|
5
|
+
* These interfaces map 1:1 to the Anchor instruction argument structs.
|
|
6
|
+
* Use them when calling SDK module methods.
|
|
7
|
+
*
|
|
8
|
+
* @category Types
|
|
9
|
+
* @since v0.1.0
|
|
10
|
+
*/
|
|
11
|
+
import type { PublicKey } from "@solana/web3.js";
|
|
12
|
+
import type BN from "bn.js";
|
|
13
|
+
import type { Capability, PricingTier, VolumeCurveBreakpoint } from "./common";
|
|
14
|
+
/**
|
|
15
|
+
* @interface RegisterAgentArgs
|
|
16
|
+
* @description Arguments for the `registerAgent` instruction.
|
|
17
|
+
*
|
|
18
|
+
* Creates a new on-chain agent identity with the given profile,
|
|
19
|
+
* capabilities, pricing tiers, and protocol support.
|
|
20
|
+
*
|
|
21
|
+
* @category Types
|
|
22
|
+
* @since v0.1.0
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { TokenType } from "@synapse-sap/sdk";
|
|
27
|
+
*
|
|
28
|
+
* const args: RegisterAgentArgs = {
|
|
29
|
+
* name: "My Agent",
|
|
30
|
+
* description: "A helpful Solana agent",
|
|
31
|
+
* capabilities: [{ id: "jupiter:swap", description: null, protocolId: "jupiter", version: "1.0" }],
|
|
32
|
+
* pricing: [],
|
|
33
|
+
* protocols: ["solana-agent-protocol"],
|
|
34
|
+
* };
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export interface RegisterAgentArgs {
|
|
38
|
+
/** Agent display name. */
|
|
39
|
+
readonly name: string;
|
|
40
|
+
/** Agent description. */
|
|
41
|
+
readonly description: string;
|
|
42
|
+
/** Capabilities the agent exposes. */
|
|
43
|
+
readonly capabilities: Capability[];
|
|
44
|
+
/** Pricing tiers for the agent's services. */
|
|
45
|
+
readonly pricing: PricingTier[];
|
|
46
|
+
/** Supported protocol identifiers. */
|
|
47
|
+
readonly protocols: string[];
|
|
48
|
+
/** Optional off-chain agent identifier. */
|
|
49
|
+
readonly agentId?: string | null;
|
|
50
|
+
/** Optional URI to extended metadata. */
|
|
51
|
+
readonly agentUri?: string | null;
|
|
52
|
+
/** Optional x402 payment endpoint. */
|
|
53
|
+
readonly x402Endpoint?: string | null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @interface UpdateAgentArgs
|
|
57
|
+
* @description Arguments for the `updateAgent` instruction.
|
|
58
|
+
*
|
|
59
|
+
* All fields are optional — pass only the fields you want to change.
|
|
60
|
+
* `null` values are ignored on-chain.
|
|
61
|
+
*
|
|
62
|
+
* @category Types
|
|
63
|
+
* @since v0.1.0
|
|
64
|
+
*/
|
|
65
|
+
export interface UpdateAgentArgs {
|
|
66
|
+
readonly name?: string | null;
|
|
67
|
+
readonly description?: string | null;
|
|
68
|
+
readonly capabilities?: Capability[] | null;
|
|
69
|
+
readonly pricing?: PricingTier[] | null;
|
|
70
|
+
readonly protocols?: string[] | null;
|
|
71
|
+
readonly agentId?: string | null;
|
|
72
|
+
readonly agentUri?: string | null;
|
|
73
|
+
readonly x402Endpoint?: string | null;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @interface GiveFeedbackArgs
|
|
77
|
+
* @description Arguments for the `giveFeedback` instruction.
|
|
78
|
+
*
|
|
79
|
+
* Submits a reputation score and tag for the target agent.
|
|
80
|
+
* Each reviewer can only submit one feedback per agent.
|
|
81
|
+
*
|
|
82
|
+
* @category Types
|
|
83
|
+
* @since v0.1.0
|
|
84
|
+
*/
|
|
85
|
+
export interface GiveFeedbackArgs {
|
|
86
|
+
/** Reputation score (1–100). */
|
|
87
|
+
readonly score: number;
|
|
88
|
+
/** Freeform tag / category for the feedback. */
|
|
89
|
+
readonly tag: string;
|
|
90
|
+
/** Optional SHA-256 hash of an off-chain comment. */
|
|
91
|
+
readonly commentHash?: number[] | null;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @interface UpdateFeedbackArgs
|
|
95
|
+
* @description Arguments for the `updateFeedback` instruction.
|
|
96
|
+
*
|
|
97
|
+
* Allows the original reviewer to revise their score and/or tag.
|
|
98
|
+
*
|
|
99
|
+
* @category Types
|
|
100
|
+
* @since v0.1.0
|
|
101
|
+
*/
|
|
102
|
+
export interface UpdateFeedbackArgs {
|
|
103
|
+
/** Updated reputation score (1–100). */
|
|
104
|
+
readonly newScore: number;
|
|
105
|
+
/** Updated tag (optional). */
|
|
106
|
+
readonly newTag?: string | null;
|
|
107
|
+
/** Updated off-chain comment hash (optional). */
|
|
108
|
+
readonly commentHash?: number[] | null;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* @interface PublishToolArgs
|
|
112
|
+
* @description Arguments for the `publishTool` instruction.
|
|
113
|
+
*
|
|
114
|
+
* Registers a new tool descriptor on-chain with hashed metadata.
|
|
115
|
+
* Hash fields are SHA-256 digests of the corresponding off-chain content.
|
|
116
|
+
*
|
|
117
|
+
* @category Types
|
|
118
|
+
* @since v0.1.0
|
|
119
|
+
*/
|
|
120
|
+
export interface PublishToolArgs {
|
|
121
|
+
/** Human-readable tool name. */
|
|
122
|
+
readonly toolName: string;
|
|
123
|
+
/** SHA-256 hash of the tool name (PDA seed). */
|
|
124
|
+
readonly toolNameHash: number[];
|
|
125
|
+
/** SHA-256 hash of the protocol identifier. */
|
|
126
|
+
readonly protocolHash: number[];
|
|
127
|
+
/** SHA-256 hash of the tool description. */
|
|
128
|
+
readonly descriptionHash: number[];
|
|
129
|
+
/** SHA-256 hash of the input JSON schema. */
|
|
130
|
+
readonly inputSchemaHash: number[];
|
|
131
|
+
/** SHA-256 hash of the output JSON schema. */
|
|
132
|
+
readonly outputSchemaHash: number[];
|
|
133
|
+
/** HTTP method discriminant index. */
|
|
134
|
+
readonly httpMethod: number;
|
|
135
|
+
/** Tool category discriminant index. */
|
|
136
|
+
readonly category: number;
|
|
137
|
+
/** Total number of parameters. */
|
|
138
|
+
readonly paramsCount: number;
|
|
139
|
+
/** Number of required parameters. */
|
|
140
|
+
readonly requiredParams: number;
|
|
141
|
+
/** Whether the tool is a compound (multi-step) operation. */
|
|
142
|
+
readonly isCompound: boolean;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* @interface UpdateToolArgs
|
|
146
|
+
* @description Arguments for the `updateTool` instruction.
|
|
147
|
+
*
|
|
148
|
+
* All fields are optional — only pass the fields to update.
|
|
149
|
+
*
|
|
150
|
+
* @category Types
|
|
151
|
+
* @since v0.1.0
|
|
152
|
+
*/
|
|
153
|
+
export interface UpdateToolArgs {
|
|
154
|
+
readonly descriptionHash?: number[] | null;
|
|
155
|
+
readonly inputSchemaHash?: number[] | null;
|
|
156
|
+
readonly outputSchemaHash?: number[] | null;
|
|
157
|
+
readonly httpMethod?: number | null;
|
|
158
|
+
readonly category?: number | null;
|
|
159
|
+
readonly paramsCount?: number | null;
|
|
160
|
+
readonly requiredParams?: number | null;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* @interface InscribeToolSchemaArgs
|
|
164
|
+
* @description Arguments for the `inscribeToolSchema` instruction.
|
|
165
|
+
*
|
|
166
|
+
* Writes a tool’s JSON schema (input, output, or description) on-chain
|
|
167
|
+
* as an inscription, with optional compression.
|
|
168
|
+
*
|
|
169
|
+
* @category Types
|
|
170
|
+
* @since v0.1.0
|
|
171
|
+
* @see {@link SchemaType} for schema type discriminants.
|
|
172
|
+
* @see {@link CompressionType} for compression discriminants.
|
|
173
|
+
*/
|
|
174
|
+
export interface InscribeToolSchemaArgs {
|
|
175
|
+
/** Schema type discriminant (input / output / description). */
|
|
176
|
+
readonly schemaType: number;
|
|
177
|
+
/** Raw (optionally compressed) schema bytes. */
|
|
178
|
+
readonly schemaData: Buffer;
|
|
179
|
+
/** SHA-256 hash of the uncompressed schema. */
|
|
180
|
+
readonly schemaHash: number[];
|
|
181
|
+
/** Compression algorithm discriminant. */
|
|
182
|
+
readonly compression: number;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* @interface InscribeMemoryArgs
|
|
186
|
+
* @description Arguments for the `inscribeMemory` instruction.
|
|
187
|
+
*
|
|
188
|
+
* Writes an encrypted memory fragment into a vault session.
|
|
189
|
+
* Supports multi-fragment inscriptions and epoch-based partitioning.
|
|
190
|
+
*
|
|
191
|
+
* @category Types
|
|
192
|
+
* @since v0.1.0
|
|
193
|
+
*/
|
|
194
|
+
export interface InscribeMemoryArgs {
|
|
195
|
+
/** Sequence number within the session. */
|
|
196
|
+
readonly sequence: number;
|
|
197
|
+
/** NaCl-encrypted payload. */
|
|
198
|
+
readonly encryptedData: Buffer;
|
|
199
|
+
/** Encryption nonce (12 bytes). */
|
|
200
|
+
readonly nonce: number[];
|
|
201
|
+
/** SHA-256 hash of the plaintext content. */
|
|
202
|
+
readonly contentHash: number[];
|
|
203
|
+
/** Total fragments in this inscription. */
|
|
204
|
+
readonly totalFragments: number;
|
|
205
|
+
/** Zero-based index of this fragment. */
|
|
206
|
+
readonly fragmentIndex: number;
|
|
207
|
+
/** Compression algorithm discriminant. */
|
|
208
|
+
readonly compression: number;
|
|
209
|
+
/** Target epoch index. */
|
|
210
|
+
readonly epochIndex: number;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* @interface CompactInscribeArgs
|
|
214
|
+
* @description Arguments for the `compactInscribe` instruction.
|
|
215
|
+
*
|
|
216
|
+
* A simplified inscription variant that omits fragmentation and epoch
|
|
217
|
+
* fields — ideal for small, single-fragment payloads.
|
|
218
|
+
*
|
|
219
|
+
* @category Types
|
|
220
|
+
* @since v0.1.0
|
|
221
|
+
*/
|
|
222
|
+
export interface CompactInscribeArgs {
|
|
223
|
+
/** Sequence number within the session. */
|
|
224
|
+
readonly sequence: number;
|
|
225
|
+
/** NaCl-encrypted payload. */
|
|
226
|
+
readonly encryptedData: Buffer;
|
|
227
|
+
/** Encryption nonce (12 bytes). */
|
|
228
|
+
readonly nonce: number[];
|
|
229
|
+
/** SHA-256 hash of the plaintext content. */
|
|
230
|
+
readonly contentHash: number[];
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* @interface CreateEscrowArgs
|
|
234
|
+
* @description Arguments for the `createEscrow` instruction.
|
|
235
|
+
*
|
|
236
|
+
* Creates a pre-funded escrow account for micropayments to an agent,
|
|
237
|
+
* optionally with volume-based discount breakpoints.
|
|
238
|
+
*
|
|
239
|
+
* @category Types
|
|
240
|
+
* @since v0.1.0
|
|
241
|
+
* @see {@link VolumeCurveBreakpoint} for discount curve details.
|
|
242
|
+
*/
|
|
243
|
+
export interface CreateEscrowArgs {
|
|
244
|
+
/** Base price per call in token base units. */
|
|
245
|
+
readonly pricePerCall: BN;
|
|
246
|
+
/** Maximum number of calls the escrow should fund. */
|
|
247
|
+
readonly maxCalls: BN;
|
|
248
|
+
/** Initial deposit amount. */
|
|
249
|
+
readonly initialDeposit: BN;
|
|
250
|
+
/** Unix timestamp when the escrow expires. */
|
|
251
|
+
readonly expiresAt: BN;
|
|
252
|
+
/** Volume discount breakpoints (pass `[]` for none). */
|
|
253
|
+
readonly volumeCurve: VolumeCurveBreakpoint[];
|
|
254
|
+
/** SPL token mint (pass `null` for native SOL). */
|
|
255
|
+
readonly tokenMint: PublicKey | null;
|
|
256
|
+
/** Decimal places for the token. */
|
|
257
|
+
readonly tokenDecimals: number;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* @interface CreateAttestationArgs
|
|
261
|
+
* @description Arguments for the `createAttestation` instruction.
|
|
262
|
+
*
|
|
263
|
+
* Issues a web-of-trust attestation for a target agent.
|
|
264
|
+
*
|
|
265
|
+
* @category Types
|
|
266
|
+
* @since v0.1.0
|
|
267
|
+
*/
|
|
268
|
+
export interface CreateAttestationArgs {
|
|
269
|
+
/** Freeform attestation type (e.g. `"kyc"`, `"audit"`). */
|
|
270
|
+
readonly attestationType: string;
|
|
271
|
+
/** SHA-256 hash of off-chain attestation metadata. */
|
|
272
|
+
readonly metadataHash: number[];
|
|
273
|
+
/** Unix timestamp when the attestation expires. */
|
|
274
|
+
readonly expiresAt: BN;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* @name DelegatePermission
|
|
278
|
+
* @description Bitmask constants for vault delegate permissions.
|
|
279
|
+
*
|
|
280
|
+
* Combine with bitwise OR to grant multiple permissions.
|
|
281
|
+
*
|
|
282
|
+
* | Bit | Value | Permission |
|
|
283
|
+
* | --- | ----- | ------------------- |
|
|
284
|
+
* | 0 | 1 | Inscribe memories |
|
|
285
|
+
* | 1 | 2 | Close sessions |
|
|
286
|
+
* | 2 | 4 | Open sessions |
|
|
287
|
+
* | — | 7 | All permissions |
|
|
288
|
+
*
|
|
289
|
+
* @category Types
|
|
290
|
+
* @since v0.1.0
|
|
291
|
+
*
|
|
292
|
+
* @example
|
|
293
|
+
* ```ts
|
|
294
|
+
* import { DelegatePermission } from "@synapse-sap/sdk";
|
|
295
|
+
*
|
|
296
|
+
* // Grant inscribe + open session
|
|
297
|
+
* const perms = DelegatePermission.Inscribe | DelegatePermission.OpenSession;
|
|
298
|
+
* ```
|
|
299
|
+
*/
|
|
300
|
+
export declare const DelegatePermission: {
|
|
301
|
+
readonly Inscribe: 1;
|
|
302
|
+
readonly CloseSession: 2;
|
|
303
|
+
readonly OpenSession: 4;
|
|
304
|
+
readonly All: 7;
|
|
305
|
+
};
|
|
306
|
+
/**
|
|
307
|
+
* @name DelegatePermissionBit
|
|
308
|
+
* @description Union of valid {@link DelegatePermission} bit values.
|
|
309
|
+
*/
|
|
310
|
+
export type DelegatePermissionBit = (typeof DelegatePermission)[keyof typeof DelegatePermission];
|
|
311
|
+
/**
|
|
312
|
+
* @name SchemaType
|
|
313
|
+
* @description Numeric discriminants for tool schema types.
|
|
314
|
+
*
|
|
315
|
+
* Used in the `inscribeToolSchema` instruction to specify which schema
|
|
316
|
+
* is being written on-chain.
|
|
317
|
+
*
|
|
318
|
+
* @category Types
|
|
319
|
+
* @since v0.1.0
|
|
320
|
+
*
|
|
321
|
+
* @example
|
|
322
|
+
* ```ts
|
|
323
|
+
* import { SchemaType } from "@synapse-sap/sdk";
|
|
324
|
+
*
|
|
325
|
+
* const args = { schemaType: SchemaType.Input, ... };
|
|
326
|
+
* ```
|
|
327
|
+
*/
|
|
328
|
+
export declare const SchemaType: {
|
|
329
|
+
readonly Input: 0;
|
|
330
|
+
readonly Output: 1;
|
|
331
|
+
readonly Description: 2;
|
|
332
|
+
};
|
|
333
|
+
/**
|
|
334
|
+
* @name SchemaTypeValue
|
|
335
|
+
* @description Union of valid {@link SchemaType} discriminant values.
|
|
336
|
+
*/
|
|
337
|
+
export type SchemaTypeValue = (typeof SchemaType)[keyof typeof SchemaType];
|
|
338
|
+
/**
|
|
339
|
+
* @name CompressionType
|
|
340
|
+
* @description Numeric discriminants for compression algorithms.
|
|
341
|
+
*
|
|
342
|
+
* Used in inscription instructions to declare the compression format
|
|
343
|
+
* of the payload so consumers can decompress correctly.
|
|
344
|
+
*
|
|
345
|
+
* @category Types
|
|
346
|
+
* @since v0.1.0
|
|
347
|
+
*
|
|
348
|
+
* @example
|
|
349
|
+
* ```ts
|
|
350
|
+
* import { CompressionType } from "@synapse-sap/sdk";
|
|
351
|
+
*
|
|
352
|
+
* const args = { compression: CompressionType.Gzip, ... };
|
|
353
|
+
* ```
|
|
354
|
+
*/
|
|
355
|
+
export declare const CompressionType: {
|
|
356
|
+
readonly None: 0;
|
|
357
|
+
readonly Deflate: 1;
|
|
358
|
+
readonly Gzip: 2;
|
|
359
|
+
readonly Brotli: 3;
|
|
360
|
+
};
|
|
361
|
+
/**
|
|
362
|
+
* @name CompressionTypeValue
|
|
363
|
+
* @description Union of valid {@link CompressionType} discriminant values.
|
|
364
|
+
*/
|
|
365
|
+
export type CompressionTypeValue = (typeof CompressionType)[keyof typeof CompressionType];
|
|
366
|
+
//# sourceMappingURL=instructions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../../src/types/instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAM/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7B,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sCAAsC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAMD;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACxC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACxC;AAMD;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,4CAA4C;IAC5C,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnC,6CAA6C;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACnC,8CAA8C;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IACpC,sCAAsC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAMD;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,yCAAyC;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0BAA0B;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;CAChC;AAMD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;IACtB,8BAA8B;IAC9B,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAC9C,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,oCAAoC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAMD;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAChC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAC/B,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAC9B,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module utils/hash
|
|
3
|
+
* @description Cryptographic hashing utilities.
|
|
4
|
+
*
|
|
5
|
+
* @category Utils
|
|
6
|
+
* @since v0.1.0
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Compute the SHA-256 hash of a UTF-8 string or byte buffer.
|
|
10
|
+
*
|
|
11
|
+
* Returns a 32-byte `Uint8Array` suitable for PDA seeds
|
|
12
|
+
* and Anchor instruction arguments.
|
|
13
|
+
*
|
|
14
|
+
* @name sha256
|
|
15
|
+
* @description Hashes the input using Node’s `crypto.createHash("sha256")`.
|
|
16
|
+
* @param input - A UTF-8 string, `Buffer`, or `Uint8Array` to hash.
|
|
17
|
+
* @returns {Uint8Array} 32-byte SHA-256 digest.
|
|
18
|
+
* @category Utils
|
|
19
|
+
* @since v0.1.0
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { sha256 } from "@synapse-sap/sdk/utils";
|
|
23
|
+
*
|
|
24
|
+
* const hash = sha256("jupiter:swap"); // Uint8Array (32 bytes)
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare const sha256: (input: string | Buffer | Uint8Array) => Uint8Array;
|
|
28
|
+
/**
|
|
29
|
+
* Convert a `Uint8Array` hash to a plain `number[]`.
|
|
30
|
+
*
|
|
31
|
+
* Anchor instruction argument types expect `number[]` for hash fields
|
|
32
|
+
* rather than typed arrays.
|
|
33
|
+
*
|
|
34
|
+
* @name hashToArray
|
|
35
|
+
* @description Converts a byte array (typically 32 bytes) to a plain JavaScript `number[]`.
|
|
36
|
+
* @param hash - The byte array to convert.
|
|
37
|
+
* @returns {number[]} Shallow copy as a plain array of numbers.
|
|
38
|
+
* @category Utils
|
|
39
|
+
* @since v0.1.0
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* import { sha256, hashToArray } from "@synapse-sap/sdk/utils";
|
|
43
|
+
*
|
|
44
|
+
* const arr = hashToArray(sha256("jupiter:swap")); // number[]
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare const hashToArray: (hash: Uint8Array) => number[];
|
|
48
|
+
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../src/utils/hash.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,UAAU,KAAG,UAM5D,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,UAAU,KAAG,MAAM,EAAsB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module utils
|
|
3
|
+
* @description Shared utilities used across SDK modules.
|
|
4
|
+
*
|
|
5
|
+
* @category Utils
|
|
6
|
+
* @since v0.1.0
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { sha256, hashToArray, assert } from "@synapse-sap/sdk/utils";
|
|
11
|
+
*
|
|
12
|
+
* const hash = sha256("jupiter:swap");
|
|
13
|
+
* const arr = hashToArray(hash); // number[] for Anchor args
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export { sha256, hashToArray } from "./hash";
|
|
17
|
+
export { assert } from "./validation";
|
|
18
|
+
export { serializeAccount, serializeValue } from "./serialization";
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module utils/serialization
|
|
3
|
+
* @description JSON-safe serialization helpers for on-chain account data.
|
|
4
|
+
*
|
|
5
|
+
* On-chain Anchor account objects contain `PublicKey` and `BN` instances
|
|
6
|
+
* that are not JSON-serializable. These helpers convert them to plain
|
|
7
|
+
* strings (`base58` and decimal `string`) recursively.
|
|
8
|
+
*
|
|
9
|
+
* @category Utils
|
|
10
|
+
* @since v0.1.0
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { serializeAccount } from "@synapse-sap/sdk/utils";
|
|
15
|
+
*
|
|
16
|
+
* const raw = await program.account.agent.fetch(pda);
|
|
17
|
+
* const json = serializeAccount(raw);
|
|
18
|
+
* // { authority: "GBL...", totalCalls: "42", ... }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Recursively convert a single value for JSON serialization.
|
|
23
|
+
*
|
|
24
|
+
* - `PublicKey` → base58 string
|
|
25
|
+
* - `BN` → decimal string
|
|
26
|
+
* - `Uint8Array` / `Buffer` → hex string
|
|
27
|
+
* - `Array` → recursed
|
|
28
|
+
* - plain `object` → recursed via {@link serializeAccount}
|
|
29
|
+
* - primitives → identity
|
|
30
|
+
*
|
|
31
|
+
* @name serializeValue
|
|
32
|
+
* @description Transforms a single Anchor-typed value into its JSON-safe equivalent.
|
|
33
|
+
* @param value - The value to serialize.
|
|
34
|
+
* @returns The JSON-safe representation of `value`.
|
|
35
|
+
* @category Utils
|
|
36
|
+
* @since v0.1.0
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { serializeValue } from "@synapse-sap/sdk/utils";
|
|
40
|
+
*
|
|
41
|
+
* serializeValue(new PublicKey("11111111111111111111111111111111")); // "1111..."
|
|
42
|
+
* serializeValue(new BN(42)); // "42"
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function serializeValue(value: unknown): any;
|
|
46
|
+
/**
|
|
47
|
+
* Serialize an entire on-chain account object to a JSON-safe shape.
|
|
48
|
+
*
|
|
49
|
+
* Iterates over each key and delegates to {@link serializeValue}.
|
|
50
|
+
* Handles `PublicKey` → base58, `BN` → string, and nested
|
|
51
|
+
* objects / arrays recursively.
|
|
52
|
+
*
|
|
53
|
+
* @name serializeAccount
|
|
54
|
+
* @description Converts all non-primitive fields in an Anchor account record to JSON-safe strings.
|
|
55
|
+
* @param obj - The raw account object returned by `program.account.<name>.fetch()`.
|
|
56
|
+
* @returns A new plain object with all values converted.
|
|
57
|
+
* @category Utils
|
|
58
|
+
* @since v0.1.0
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* import { serializeAccount } from "@synapse-sap/sdk/utils";
|
|
62
|
+
*
|
|
63
|
+
* const raw = await program.account.agent.fetch(pda);
|
|
64
|
+
* const safe = serializeAccount(raw);
|
|
65
|
+
* console.log(JSON.stringify(safe));
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function serializeAccount(obj: Record<string, any>): Record<string, any>;
|
|
69
|
+
//# sourceMappingURL=serialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../../src/utils/serialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAYlD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wBAAgB,gBAAgB,CAE9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAEvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAOrB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module utils/validation
|
|
3
|
+
* @description Runtime assertion helpers.
|
|
4
|
+
*
|
|
5
|
+
* @category Utils
|
|
6
|
+
* @since v0.1.0
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Assert that a condition holds, throwing a descriptive error otherwise.
|
|
10
|
+
*
|
|
11
|
+
* Uses TypeScript’s `asserts condition` return type so the compiler
|
|
12
|
+
* narrows the guarded value after the call.
|
|
13
|
+
*
|
|
14
|
+
* @name assert
|
|
15
|
+
* @description Runtime guard — throws `RangeError` with a `[SAP SDK]` prefix when the condition is falsy.
|
|
16
|
+
* @param condition - The boolean expression to verify.
|
|
17
|
+
* @param message - Human-readable message included in the thrown error.
|
|
18
|
+
* @throws {RangeError} When `condition` is `false`.
|
|
19
|
+
* @category Utils
|
|
20
|
+
* @since v0.1.0
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { assert } from "@synapse-sap/sdk/utils";
|
|
24
|
+
*
|
|
25
|
+
* assert(name.length <= 64, "Agent name exceeds MAX_NAME_LEN");
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function assert(condition: boolean, message: string): asserts condition;
|
|
29
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAInB"}
|