Validation
Pre-flight input validators mirroring the program's on-chain limits.
The validation namespace catches invalid inputs before you spend SOL on a
transaction that the program would reject. Each validator throws an Error with
a descriptive message; the limit constants match
programs/aura-core/src/constants.rs exactly.
Limit constants
| Constant | Value | Applies to |
|---|---|---|
MAX_AGENT_ID_LEN | 64 | agent id byte length |
MAX_DWALLET_ID_LEN | 64 | dWallet id byte length |
MAX_ADDRESS_LEN | 128 | blockchain address byte length |
MAX_SWARM_ID_LEN | 64 | swarm id byte length |
MAX_SWARM_MEMBER_LEN | 64 | swarm member agent id byte length |
MAX_GUARDIANS | 10 | emergency multisig guardians |
MAX_SWARM_MEMBERS | 16 | swarm members |
Validators
import {
validateAgentId,
validateDwalletId,
validateAddress,
validateSwarmId,
validateAmountUsd,
validateMultisigThreshold,
validateGuardians,
validateSwarmMembers,
} from "@aura-protocol/sdk-ts";
validateAgentId("agent-prod-1"); // non-empty, <= 64 bytes
validateDwalletId("dwallet-eth-1"); // non-empty, <= 64 bytes
validateAddress("0xabc..."); // non-empty, <= 128 bytes
validateSwarmId("trading-swarm-1"); // non-empty, <= 64 bytes
validateAmountUsd(new BN(1_000)); // > 0 (accepts number | bigint | BN)
validateMultisigThreshold(2, 3); // 0 < threshold <= guardianCount
validateGuardians([g1, g2]); // PublicKey[] — non-empty, <= 10
validateSwarmMembers(["agent-a", "agent-b"]); // string[] — <= 16, each <= 64 bytes| Validator | Checks |
|---|---|
validateAgentId(id) | non-empty, byte length ≤ MAX_AGENT_ID_LEN |
validateDwalletId(id) | non-empty, byte length ≤ MAX_DWALLET_ID_LEN |
validateAddress(addr) | non-empty, byte length ≤ MAX_ADDRESS_LEN |
validateSwarmId(id) | non-empty, byte length ≤ MAX_SWARM_ID_LEN |
validateAmountUsd(n) | strictly greater than zero |
validateMultisigThreshold(t, n) | 0 < t ≤ n |
validateGuardians(keys) | non-empty PublicKey[], length ≤ MAX_GUARDIANS |
validateSwarmMembers(ids) | non-empty string[], length ≤ MAX_SWARM_MEMBERS, each ≤ MAX_SWARM_MEMBER_LEN |
Validators are optional helpers — the program enforces these limits on-chain regardless. Use them to fail fast with clear messages in your UI or agent runtime.